@tscircuit/core 0.0.1029 → 0.0.1031

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +207 -25
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -9996,13 +9996,31 @@ var NormalComponent3 = class extends PrimitiveComponent2 {
9996
9996
  if (!this.pcb_component_id) return;
9997
9997
  const { db } = this.root;
9998
9998
  const props = this._parsedProps;
9999
- const hasExplicitPcbPosition = props.pcbX !== void 0 || props.pcbY !== void 0;
9999
+ const rawProps = this.props;
10000
+ const pcbLeftEdgeX = props.pcbLeftEdgeX ?? rawProps.pcbLeftEdgeX;
10001
+ const pcbRightEdgeX = props.pcbRightEdgeX ?? rawProps.pcbRightEdgeX;
10002
+ const pcbTopEdgeY = props.pcbTopEdgeY ?? rawProps.pcbTopEdgeY;
10003
+ const pcbBottomEdgeY = props.pcbBottomEdgeY ?? rawProps.pcbBottomEdgeY;
10004
+ const hasExplicitPcbPosition = props.pcbX !== void 0 || props.pcbY !== void 0 || pcbLeftEdgeX !== void 0 || pcbRightEdgeX !== void 0 || pcbTopEdgeY !== void 0 || pcbBottomEdgeY !== void 0;
10000
10005
  if (!hasExplicitPcbPosition) return;
10006
+ if (pcbLeftEdgeX !== void 0 && pcbRightEdgeX !== void 0) {
10007
+ throw new Error(
10008
+ `${this.componentName} cannot set both pcbLeftEdgeX and pcbRightEdgeX`
10009
+ );
10010
+ }
10011
+ if (pcbTopEdgeY !== void 0 && pcbBottomEdgeY !== void 0) {
10012
+ throw new Error(
10013
+ `${this.componentName} cannot set both pcbTopEdgeY and pcbBottomEdgeY`
10014
+ );
10015
+ }
10016
+ const pcbComponent = db.pcb_component.get(this.pcb_component_id);
10017
+ const componentWidth = pcbComponent?.width ?? 0;
10018
+ const componentHeight = pcbComponent?.height ?? 0;
10001
10019
  const parentGroup = this.getGroup();
10002
10020
  const positionedRelativeToGroupId = parentGroup?.pcb_group_id ?? void 0;
10003
10021
  const positionedRelativeToBoardId = positionedRelativeToGroupId ? void 0 : this._getBoard()?.pcb_board_id ?? void 0;
10004
- const resolvedPcbX = this._resolvedPcbCalcOffsetX ?? (props.pcbX !== void 0 ? this._resolvePcbCoordinate(props.pcbX, "pcbX") : void 0);
10005
- const resolvedPcbY = this._resolvedPcbCalcOffsetY ?? (props.pcbY !== void 0 ? this._resolvePcbCoordinate(props.pcbY, "pcbY") : void 0);
10022
+ const resolvedPcbX = this._resolvedPcbCalcOffsetX ?? (props.pcbX !== void 0 ? this._resolvePcbCoordinate(props.pcbX, "pcbX") : pcbLeftEdgeX !== void 0 ? this._resolvePcbCoordinate(pcbLeftEdgeX, "pcbX") + componentWidth / 2 : pcbRightEdgeX !== void 0 ? this._resolvePcbCoordinate(pcbRightEdgeX, "pcbX") - componentWidth / 2 : void 0);
10023
+ const resolvedPcbY = this._resolvedPcbCalcOffsetY ?? (props.pcbY !== void 0 ? this._resolvePcbCoordinate(props.pcbY, "pcbY") : pcbTopEdgeY !== void 0 ? this._resolvePcbCoordinate(pcbTopEdgeY, "pcbY") - componentHeight / 2 : pcbBottomEdgeY !== void 0 ? this._resolvePcbCoordinate(pcbBottomEdgeY, "pcbY") + componentHeight / 2 : void 0);
10006
10024
  db.pcb_component.update(this.pcb_component_id, {
10007
10025
  position_mode: "relative_to_group_anchor",
10008
10026
  positioned_relative_to_pcb_group_id: positionedRelativeToGroupId,
@@ -10031,7 +10049,8 @@ var NormalComponent3 = class extends PrimitiveComponent2 {
10031
10049
  * and should not be moved by automatic packing/layout algorithms
10032
10050
  */
10033
10051
  isRelativelyPositioned() {
10034
- return this._parsedProps.pcbX !== void 0 || this._parsedProps.pcbY !== void 0;
10052
+ const rawProps = this.props;
10053
+ return this._parsedProps.pcbX !== void 0 || this._parsedProps.pcbY !== void 0 || this._parsedProps.pcbLeftEdgeX !== void 0 || this._parsedProps.pcbRightEdgeX !== void 0 || this._parsedProps.pcbTopEdgeY !== void 0 || this._parsedProps.pcbBottomEdgeY !== void 0 || rawProps.pcbLeftEdgeX !== void 0 || rawProps.pcbRightEdgeX !== void 0 || rawProps.pcbTopEdgeY !== void 0 || rawProps.pcbBottomEdgeY !== void 0;
10035
10054
  }
10036
10055
  };
10037
10056
 
@@ -11185,6 +11204,7 @@ var TraceHint = class extends PrimitiveComponent2 {
11185
11204
  };
11186
11205
 
11187
11206
  // lib/components/primitive-components/Group/Group_doInitialPcbCalcPlacementResolution.ts
11207
+ import { getBoundsOfPcbElements } from "@tscircuit/circuit-json-util";
11188
11208
  var SUPPORTED_COMPONENT_FIELDS = /* @__PURE__ */ new Set([
11189
11209
  "x",
11190
11210
  "y",
@@ -11209,8 +11229,8 @@ function Group_doInitialPcbCalcPlacementResolution(group) {
11209
11229
  const inDegree = /* @__PURE__ */ new Map();
11210
11230
  const dependents = /* @__PURE__ */ new Map();
11211
11231
  for (const component of allNormalComponents) {
11232
+ if (!shouldResolvePlacementInCalcPhase(component)) continue;
11212
11233
  const refs = getComponentRefsForCalcPlacement(component);
11213
- if (refs.size === 0) continue;
11214
11234
  if (!component.name) {
11215
11235
  throw new Error(
11216
11236
  `Invalid pcb position expression for ${component.getString()}: component-relative calc requires the component to have a name`
@@ -11221,29 +11241,24 @@ function Group_doInitialPcbCalcPlacementResolution(group) {
11221
11241
  }
11222
11242
  for (const [candidateName, candidate] of candidatesByName.entries()) {
11223
11243
  for (const token of candidate.refs) {
11224
- const { componentName, field } = parseComponentReferenceToken(token);
11244
+ const { referencePath, field } = parseComponentReferenceToken(token);
11225
11245
  if (!SUPPORTED_COMPONENT_FIELDS.has(field)) {
11226
11246
  throw new Error(
11227
11247
  `Invalid pcb position expression for ${candidate.component.getString()}: unsupported component field "${field}" in "${token}"`
11228
11248
  );
11229
11249
  }
11230
- const referencedComponents = normalComponentNameMap.get(componentName);
11231
- if (!referencedComponents || referencedComponents.length === 0) {
11232
- throw new Error(
11233
- `Invalid pcb position expression for ${candidate.component.getString()}: unknown component reference "${componentName}" in "${token}"`
11234
- );
11235
- }
11236
- if (referencedComponents.length > 1) {
11237
- throw new Error(
11238
- `Invalid pcb position expression for ${candidate.component.getString()}: ambiguous component reference "${componentName}" in "${token}"`
11239
- );
11240
- }
11241
- if (candidatesByName.has(componentName) && componentName !== candidateName) {
11250
+ const referencedComponentName = resolveReferencedComponentName({
11251
+ token,
11252
+ referencePath,
11253
+ candidate,
11254
+ normalComponentNameMap
11255
+ });
11256
+ if (candidatesByName.has(referencedComponentName) && referencedComponentName !== candidateName) {
11242
11257
  inDegree.set(candidateName, (inDegree.get(candidateName) ?? 0) + 1);
11243
- if (!dependents.has(componentName)) {
11244
- dependents.set(componentName, /* @__PURE__ */ new Set());
11258
+ if (!dependents.has(referencedComponentName)) {
11259
+ dependents.set(referencedComponentName, /* @__PURE__ */ new Set());
11245
11260
  }
11246
- dependents.get(componentName).add(candidateName);
11261
+ dependents.get(referencedComponentName).add(candidateName);
11247
11262
  }
11248
11263
  }
11249
11264
  }
@@ -11275,6 +11290,23 @@ function Group_doInitialPcbCalcPlacementResolution(group) {
11275
11290
  if (!pcbComponent) return;
11276
11291
  const rawPcbX = component._parsedProps.pcbX;
11277
11292
  const rawPcbY = component._parsedProps.pcbY;
11293
+ const rawComponentProps = component.props;
11294
+ const rawPcbLeftEdgeX = component._parsedProps.pcbLeftEdgeX ?? rawComponentProps.pcbLeftEdgeX;
11295
+ const rawPcbRightEdgeX = component._parsedProps.pcbRightEdgeX ?? rawComponentProps.pcbRightEdgeX;
11296
+ const rawPcbTopEdgeY = component._parsedProps.pcbTopEdgeY ?? rawComponentProps.pcbTopEdgeY;
11297
+ const rawPcbBottomEdgeY = component._parsedProps.pcbBottomEdgeY ?? rawComponentProps.pcbBottomEdgeY;
11298
+ if (rawPcbLeftEdgeX !== void 0 && rawPcbRightEdgeX !== void 0) {
11299
+ throw new Error(
11300
+ `${component.componentName} cannot set both pcbLeftEdgeX and pcbRightEdgeX`
11301
+ );
11302
+ }
11303
+ if (rawPcbTopEdgeY !== void 0 && rawPcbBottomEdgeY !== void 0) {
11304
+ throw new Error(
11305
+ `${component.componentName} cannot set both pcbTopEdgeY and pcbBottomEdgeY`
11306
+ );
11307
+ }
11308
+ const componentWidth = pcbComponent.width ?? 0;
11309
+ const componentHeight = pcbComponent.height ?? 0;
11278
11310
  const nextCenter = {
11279
11311
  x: pcbComponent.center.x,
11280
11312
  y: pcbComponent.center.y
@@ -11286,6 +11318,30 @@ function Group_doInitialPcbCalcPlacementResolution(group) {
11286
11318
  });
11287
11319
  component._resolvedPcbCalcOffsetX = resolvedPcbX;
11288
11320
  nextCenter.x = resolvedPcbX;
11321
+ } else if (rawPcbLeftEdgeX !== void 0) {
11322
+ const resolvedPcbLeftEdgeX = component.resolvePcbCoordinate(
11323
+ rawPcbLeftEdgeX,
11324
+ "pcbX",
11325
+ {
11326
+ allowComponentVariables: true,
11327
+ componentVariables: componentVars
11328
+ }
11329
+ );
11330
+ const resolvedPcbX = resolvedPcbLeftEdgeX + componentWidth / 2;
11331
+ component._resolvedPcbCalcOffsetX = resolvedPcbX;
11332
+ nextCenter.x = resolvedPcbX;
11333
+ } else if (rawPcbRightEdgeX !== void 0) {
11334
+ const resolvedPcbRightEdgeX = component.resolvePcbCoordinate(
11335
+ rawPcbRightEdgeX,
11336
+ "pcbX",
11337
+ {
11338
+ allowComponentVariables: true,
11339
+ componentVariables: componentVars
11340
+ }
11341
+ );
11342
+ const resolvedPcbX = resolvedPcbRightEdgeX - componentWidth / 2;
11343
+ component._resolvedPcbCalcOffsetX = resolvedPcbX;
11344
+ nextCenter.x = resolvedPcbX;
11289
11345
  }
11290
11346
  if (rawPcbY !== void 0) {
11291
11347
  const resolvedPcbY = component.resolvePcbCoordinate(rawPcbY, "pcbY", {
@@ -11294,11 +11350,49 @@ function Group_doInitialPcbCalcPlacementResolution(group) {
11294
11350
  });
11295
11351
  component._resolvedPcbCalcOffsetY = resolvedPcbY;
11296
11352
  nextCenter.y = resolvedPcbY;
11353
+ } else if (rawPcbTopEdgeY !== void 0) {
11354
+ const resolvedPcbTopEdgeY = component.resolvePcbCoordinate(
11355
+ rawPcbTopEdgeY,
11356
+ "pcbY",
11357
+ {
11358
+ allowComponentVariables: true,
11359
+ componentVariables: componentVars
11360
+ }
11361
+ );
11362
+ const resolvedPcbY = resolvedPcbTopEdgeY - componentHeight / 2;
11363
+ component._resolvedPcbCalcOffsetY = resolvedPcbY;
11364
+ nextCenter.y = resolvedPcbY;
11365
+ } else if (rawPcbBottomEdgeY !== void 0) {
11366
+ const resolvedPcbBottomEdgeY = component.resolvePcbCoordinate(
11367
+ rawPcbBottomEdgeY,
11368
+ "pcbY",
11369
+ {
11370
+ allowComponentVariables: true,
11371
+ componentVariables: componentVars
11372
+ }
11373
+ );
11374
+ const resolvedPcbY = resolvedPcbBottomEdgeY + componentHeight / 2;
11375
+ component._resolvedPcbCalcOffsetY = resolvedPcbY;
11376
+ nextCenter.y = resolvedPcbY;
11297
11377
  }
11298
11378
  component._repositionOnPcb(nextCenter);
11299
11379
  updateVarsForNamedComponent(component, componentVars);
11300
11380
  }
11301
11381
  }
11382
+ function shouldResolvePlacementInCalcPhase(component) {
11383
+ const parsedProps = component._parsedProps;
11384
+ const rawProps = component.props;
11385
+ const pcbX = parsedProps.pcbX;
11386
+ const pcbY = parsedProps.pcbY;
11387
+ const pcbLeftEdgeX = parsedProps.pcbLeftEdgeX ?? rawProps.pcbLeftEdgeX;
11388
+ const pcbRightEdgeX = parsedProps.pcbRightEdgeX ?? rawProps.pcbRightEdgeX;
11389
+ const pcbTopEdgeY = parsedProps.pcbTopEdgeY ?? rawProps.pcbTopEdgeY;
11390
+ const pcbBottomEdgeY = parsedProps.pcbBottomEdgeY ?? rawProps.pcbBottomEdgeY;
11391
+ if (pcbLeftEdgeX !== void 0 || pcbRightEdgeX !== void 0 || pcbTopEdgeY !== void 0 || pcbBottomEdgeY !== void 0) {
11392
+ return true;
11393
+ }
11394
+ return typeof pcbX === "string" || typeof pcbY === "string";
11395
+ }
11302
11396
  function collectNormalComponentsInSubcircuit(group) {
11303
11397
  const components = [];
11304
11398
  const walk = (node) => {
@@ -11318,6 +11412,11 @@ function getComponentRefsForCalcPlacement(component) {
11318
11412
  const refs = /* @__PURE__ */ new Set();
11319
11413
  const rawPcbX = component._parsedProps.pcbX;
11320
11414
  const rawPcbY = component._parsedProps.pcbY;
11415
+ const rawComponentProps = component.props;
11416
+ const rawPcbLeftEdgeX = component._parsedProps.pcbLeftEdgeX ?? rawComponentProps.pcbLeftEdgeX;
11417
+ const rawPcbRightEdgeX = component._parsedProps.pcbRightEdgeX ?? rawComponentProps.pcbRightEdgeX;
11418
+ const rawPcbTopEdgeY = component._parsedProps.pcbTopEdgeY ?? rawComponentProps.pcbTopEdgeY;
11419
+ const rawPcbBottomEdgeY = component._parsedProps.pcbBottomEdgeY ?? rawComponentProps.pcbBottomEdgeY;
11321
11420
  const addRefs = (rawValue) => {
11322
11421
  if (typeof rawValue !== "string") return;
11323
11422
  const identifiers = extractCalcIdentifiers(rawValue);
@@ -11329,6 +11428,10 @@ function getComponentRefsForCalcPlacement(component) {
11329
11428
  };
11330
11429
  addRefs(rawPcbX);
11331
11430
  addRefs(rawPcbY);
11431
+ addRefs(rawPcbLeftEdgeX);
11432
+ addRefs(rawPcbRightEdgeX);
11433
+ addRefs(rawPcbTopEdgeY);
11434
+ addRefs(rawPcbBottomEdgeY);
11332
11435
  return refs;
11333
11436
  }
11334
11437
  function parseComponentReferenceToken(token) {
@@ -11337,10 +11440,35 @@ function parseComponentReferenceToken(token) {
11337
11440
  throw new Error(`Invalid component reference token: "${token}"`);
11338
11441
  }
11339
11442
  return {
11340
- componentName: token.slice(0, dotIndex),
11443
+ referencePath: token.slice(0, dotIndex),
11341
11444
  field: token.slice(dotIndex + 1).toLowerCase()
11342
11445
  };
11343
11446
  }
11447
+ function resolveReferencedComponentName(params) {
11448
+ const { token, referencePath, candidate, normalComponentNameMap } = params;
11449
+ const directComponents = normalComponentNameMap.get(referencePath);
11450
+ if (directComponents && directComponents.length > 0) {
11451
+ if (directComponents.length > 1) {
11452
+ throw new Error(
11453
+ `Invalid pcb position expression for ${candidate.component.getString()}: ambiguous component reference "${referencePath}" in "${token}"`
11454
+ );
11455
+ }
11456
+ return referencePath;
11457
+ }
11458
+ let bestMatch = null;
11459
+ for (const componentName of normalComponentNameMap.keys()) {
11460
+ if (!referencePath.startsWith(`${componentName}.`)) continue;
11461
+ if (!bestMatch || componentName.length > bestMatch.length) {
11462
+ bestMatch = componentName;
11463
+ }
11464
+ }
11465
+ if (!bestMatch) {
11466
+ throw new Error(
11467
+ `Invalid pcb position expression for ${candidate.component.getString()}: unknown component reference "${referencePath}" in "${token}"`
11468
+ );
11469
+ }
11470
+ return bestMatch;
11471
+ }
11344
11472
  function updateVarsForNamedComponent(component, vars) {
11345
11473
  if (!component.name || !component.pcb_component_id || !component.root) return;
11346
11474
  const pcbComponent = component.root.db.pcb_component.get(
@@ -11359,6 +11487,58 @@ function updateVarsForNamedComponent(component, vars) {
11359
11487
  vars[`${component.name}.maxx`] = x + width / 2;
11360
11488
  vars[`${component.name}.miny`] = y - height / 2;
11361
11489
  vars[`${component.name}.maxy`] = y + height / 2;
11490
+ const padElementsByReference = collectPadElementsByReference(component);
11491
+ for (const [referencePath, elements] of padElementsByReference.entries()) {
11492
+ const bounds = getBoundsOfPcbElements(elements);
11493
+ const minX = bounds.minX;
11494
+ const maxX = bounds.maxX;
11495
+ const minY = bounds.minY;
11496
+ const maxY = bounds.maxY;
11497
+ vars[`${referencePath}.x`] = (minX + maxX) / 2;
11498
+ vars[`${referencePath}.y`] = (minY + maxY) / 2;
11499
+ vars[`${referencePath}.width`] = maxX - minX;
11500
+ vars[`${referencePath}.height`] = maxY - minY;
11501
+ vars[`${referencePath}.minx`] = minX;
11502
+ vars[`${referencePath}.maxx`] = maxX;
11503
+ vars[`${referencePath}.miny`] = minY;
11504
+ vars[`${referencePath}.maxy`] = maxY;
11505
+ }
11506
+ }
11507
+ function collectPadElementsByReference(component) {
11508
+ const refsToElements = /* @__PURE__ */ new Map();
11509
+ if (!component.name || !component.pcb_component_id || !component.root) {
11510
+ return refsToElements;
11511
+ }
11512
+ const { db } = component.root;
11513
+ const padElements = [
11514
+ ...db.pcb_smtpad.list({ pcb_component_id: component.pcb_component_id }),
11515
+ ...db.pcb_plated_hole.list({
11516
+ pcb_component_id: component.pcb_component_id
11517
+ })
11518
+ ];
11519
+ for (const pad of padElements) {
11520
+ const aliases = /* @__PURE__ */ new Set();
11521
+ for (const hint of pad.port_hints ?? []) {
11522
+ if (typeof hint === "string" && hint.length > 0) aliases.add(hint);
11523
+ }
11524
+ const pcbPortId = pad.pcb_port_id;
11525
+ if (pcbPortId) {
11526
+ const pcbPort = db.pcb_port.get(pcbPortId);
11527
+ const sourcePort = pcbPort?.source_port_id ? db.source_port.get(pcbPort.source_port_id) : null;
11528
+ if (sourcePort?.name) aliases.add(sourcePort.name);
11529
+ if (sourcePort?.pin_number != null) {
11530
+ aliases.add(`pin${sourcePort.pin_number}`);
11531
+ }
11532
+ }
11533
+ for (const alias of aliases) {
11534
+ const referencePath = `${component.name}.${alias}`;
11535
+ if (!refsToElements.has(referencePath)) {
11536
+ refsToElements.set(referencePath, []);
11537
+ }
11538
+ refsToElements.get(referencePath).push(pad);
11539
+ }
11540
+ }
11541
+ return refsToElements;
11362
11542
  }
11363
11543
 
11364
11544
  // lib/components/primitive-components/Group/Group_doInitialPcbComponentAnchorAlignment.ts
@@ -12351,7 +12531,7 @@ import { identity as identity4 } from "transformation-matrix";
12351
12531
  var package_default = {
12352
12532
  name: "@tscircuit/core",
12353
12533
  type: "module",
12354
- version: "0.0.1028",
12534
+ version: "0.0.1030",
12355
12535
  types: "dist/index.d.ts",
12356
12536
  main: "dist/index.js",
12357
12537
  module: "dist/index.js",
@@ -15963,6 +16143,7 @@ var Group = class extends NormalComponent3 {
15963
16143
  }
15964
16144
  _getPcbLayoutMode() {
15965
16145
  const props = this._parsedProps;
16146
+ const rawProps = this.props;
15966
16147
  if (this._isInflatedFromCircuitJson) return "none";
15967
16148
  if (props.pcbRelative) return "none";
15968
16149
  if (props.pcbLayout?.matchAdapt) return "match-adapt";
@@ -15976,7 +16157,7 @@ var Group = class extends NormalComponent3 {
15976
16157
  if (props.matchAdapt) return "match-adapt";
15977
16158
  if (props.flex) return "flex";
15978
16159
  if (props.grid) return "grid";
15979
- const groupHasCoords = props.pcbX !== void 0 || props.pcbY !== void 0;
16160
+ const groupHasCoords = props.pcbX !== void 0 || props.pcbY !== void 0 || props.pcbLeftEdgeX !== void 0 || props.pcbRightEdgeX !== void 0 || props.pcbTopEdgeY !== void 0 || props.pcbBottomEdgeY !== void 0 || rawProps.pcbLeftEdgeX !== void 0 || rawProps.pcbRightEdgeX !== void 0 || rawProps.pcbTopEdgeY !== void 0 || rawProps.pcbBottomEdgeY !== void 0;
15980
16161
  const hasManualEdits = (props.manualEdits?.pcb_placements?.length ?? 0) > 0;
15981
16162
  const unpositionedDirectChildrenCount = this.children.reduce(
15982
16163
  (count, child) => {
@@ -15984,7 +16165,8 @@ var Group = class extends NormalComponent3 {
15984
16165
  return count;
15985
16166
  }
15986
16167
  const childProps = child._parsedProps;
15987
- const hasCoords = childProps?.pcbX !== void 0 || childProps?.pcbY !== void 0;
16168
+ const rawChildProps = child.props;
16169
+ const hasCoords = childProps?.pcbX !== void 0 || childProps?.pcbY !== void 0 || childProps?.pcbLeftEdgeX !== void 0 || childProps?.pcbRightEdgeX !== void 0 || childProps?.pcbTopEdgeY !== void 0 || childProps?.pcbBottomEdgeY !== void 0 || rawChildProps?.pcbLeftEdgeX !== void 0 || rawChildProps?.pcbRightEdgeX !== void 0 || rawChildProps?.pcbTopEdgeY !== void 0 || rawChildProps?.pcbBottomEdgeY !== void 0;
15988
16170
  return count + (hasCoords ? 0 : 1);
15989
16171
  },
15990
16172
  0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.1029",
4
+ "version": "0.0.1031",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",