@tobisk/pcbs 1.0.0 → 1.1.1

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.
File without changes
@@ -60,6 +60,15 @@ export declare class Kicad3DModel {
60
60
  sphere(opts: SphereOptions): SolidBuilder;
61
61
  /** Create a cylinder primitive. */
62
62
  cylinder(opts: CylinderOptions): SolidBuilder;
63
+ /**
64
+ * Create a pipe (a cylinder with a concentric hole).
65
+ */
66
+ pipe(opts: {
67
+ r: number;
68
+ wallThickness: number;
69
+ h: number;
70
+ center?: boolean;
71
+ }): SolidBuilder;
63
72
  /**
64
73
  * Create a box with rounded edges (box + fillet on all edges).
65
74
  */
@@ -170,6 +170,18 @@ class Kicad3DModel {
170
170
  this._solids.push(handle);
171
171
  return new SolidBuilder(this.oc, handle);
172
172
  }
173
+ /**
174
+ * Create a pipe (a cylinder with a concentric hole).
175
+ */
176
+ pipe(opts) {
177
+ const outer = (0, primitives_1.makeCylinder)(this.oc, { r: opts.r, h: opts.h, center: opts.center });
178
+ // Make the inner cylinder slightly longer to avoid Z-fighting/coplanar faces during cut
179
+ const inner = (0, primitives_1.makeCylinder)(this.oc, { r: opts.r - opts.wallThickness, h: opts.h + 0.1, center: opts.center });
180
+ const shape = (0, booleans_1.cutShapes)(this.oc, outer, inner);
181
+ const handle = { shape };
182
+ this._solids.push(handle);
183
+ return new SolidBuilder(this.oc, handle);
184
+ }
173
185
  /**
174
186
  * Create a box with rounded edges (box + fillet on all edges).
175
187
  */
@@ -184,30 +196,24 @@ class Kicad3DModel {
184
196
  /** Fuse (union) two solids. Replaces both with the result, returns new builder. */
185
197
  union(a, b) {
186
198
  const fused = (0, booleans_1.fuseShapes)(this.oc, a._handle.shape, b._handle.shape);
187
- const handle = { shape: fused, color: a._handle.color, name: a._handle.name };
199
+ a._handle.shape = fused;
188
200
  // Remove the original handles
189
- this._removeSolid(a._handle);
190
201
  this._removeSolid(b._handle);
191
- this._solids.push(handle);
192
- return new SolidBuilder(this.oc, handle);
202
+ return a;
193
203
  }
194
204
  /** Subtract solid `b` from solid `a`. Removes `b` from model, replaces `a`. */
195
205
  subtract(a, b) {
196
206
  const cut = (0, booleans_1.cutShapes)(this.oc, a._handle.shape, b._handle.shape);
197
- const handle = { shape: cut, color: a._handle.color, name: a._handle.name };
198
- this._removeSolid(a._handle);
207
+ a._handle.shape = cut;
199
208
  this._removeSolid(b._handle);
200
- this._solids.push(handle);
201
- return new SolidBuilder(this.oc, handle);
209
+ return a;
202
210
  }
203
211
  /** Intersect two solids. Returns their common volume. */
204
212
  intersect(a, b) {
205
213
  const common = (0, booleans_1.intersectShapes)(this.oc, a._handle.shape, b._handle.shape);
206
- const handle = { shape: common, color: a._handle.color, name: a._handle.name };
207
- this._removeSolid(a._handle);
214
+ a._handle.shape = common;
208
215
  this._removeSolid(b._handle);
209
- this._solids.push(handle);
210
- return new SolidBuilder(this.oc, handle);
216
+ return a;
211
217
  }
212
218
  // ── Export ─────────────────────────────────────────────────────────
213
219
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Kicad3DModel.js","sourceRoot":"","sources":["../../../../src/synth/3d/Kicad3DModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Kicad3DModel.js","sourceRoot":"","sources":["../../../../src/synth/3d/Kicad3DModel.ts"],"names":[],"mappings":"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"}
@@ -35,3 +35,16 @@ export declare class VBoxLayout extends Layout {
35
35
  });
36
36
  apply(items: LayoutItem[]): void;
37
37
  }
38
+ /**
39
+ * Arranges items using a force-directed (gravity) layout based on their net connections.
40
+ */
41
+ export declare class GravityLayout extends Layout {
42
+ private options;
43
+ constructor(options?: {
44
+ spacing?: number;
45
+ iterations?: number;
46
+ x?: number;
47
+ y?: number;
48
+ });
49
+ apply(items: LayoutItem[]): void;
50
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VBoxLayout = exports.HBoxLayout = exports.Layout = void 0;
3
+ exports.GravityLayout = exports.VBoxLayout = exports.HBoxLayout = exports.Layout = void 0;
4
4
  /**
5
5
  * Base class for all layouts.
6
6
  *
@@ -55,4 +55,147 @@ class VBoxLayout extends Layout {
55
55
  }
56
56
  }
57
57
  exports.VBoxLayout = VBoxLayout;
58
+ /**
59
+ * Arranges items using a force-directed (gravity) layout based on their net connections.
60
+ */
61
+ class GravityLayout extends Layout {
62
+ constructor(options = {}) {
63
+ super();
64
+ this.options = options;
65
+ }
66
+ apply(items) {
67
+ const numItems = items.length;
68
+ if (numItems === 0)
69
+ return;
70
+ const iterations = this.options.iterations ?? 100;
71
+ const spacing = this.options.spacing ?? 500; // Optimal distance
72
+ // Initialize positions with some pseudo-random jitter
73
+ const positions = new Map();
74
+ items.forEach((item, i) => {
75
+ const currentX = item.schematicPosition?.x ?? 0;
76
+ const currentY = item.schematicPosition?.y ?? 0;
77
+ positions.set(item, {
78
+ x: currentX + (i % 5) * 10 - 20,
79
+ y: currentY + (i % 7) * 10 - 30,
80
+ dx: 0,
81
+ dy: 0
82
+ });
83
+ });
84
+ // Determine edges (connections via shared nets)
85
+ const netToItems = new Map();
86
+ items.forEach(item => {
87
+ const allPins = item.allPins;
88
+ if (allPins instanceof Map) {
89
+ allPins.forEach((pin) => {
90
+ if (pin && pin.net && typeof pin.net.name === 'string') {
91
+ let itemsOnNet = netToItems.get(pin.net.name);
92
+ if (!itemsOnNet) {
93
+ itemsOnNet = new Set();
94
+ netToItems.set(pin.net.name, itemsOnNet);
95
+ }
96
+ itemsOnNet.add(item);
97
+ }
98
+ });
99
+ }
100
+ });
101
+ // Edges: Set of connected item pairs
102
+ const edges = [];
103
+ const seenPairs = new Set();
104
+ netToItems.forEach((connectedItems) => {
105
+ const arr = Array.from(connectedItems);
106
+ for (let i = 0; i < arr.length; i++) {
107
+ for (let j = i + 1; j < arr.length; j++) {
108
+ const u = arr[i];
109
+ const v = arr[j];
110
+ const pairId = u.ref < v.ref ? `${u.ref}-${v.ref}` : `${v.ref}-${u.ref}`;
111
+ if (!seenPairs.has(pairId)) {
112
+ seenPairs.add(pairId);
113
+ edges.push([u, v]);
114
+ }
115
+ }
116
+ }
117
+ });
118
+ // Fruchterman-Reingold algorithm
119
+ const k = spacing;
120
+ const k2 = k * k;
121
+ let t = spacing * 10; // Initial temperature
122
+ const dt = t / (iterations + 1);
123
+ const repulse = (d) => k2 / Math.max(d, 0.01);
124
+ const attract = (d) => (d * d) / k;
125
+ for (let iter = 0; iter < iterations; iter++) {
126
+ // Reset displacements
127
+ positions.forEach(pos => { pos.dx = 0; pos.dy = 0; });
128
+ // Calculate repulsive forces
129
+ for (let i = 0; i < items.length; i++) {
130
+ const u = items[i];
131
+ const posU = positions.get(u);
132
+ for (let j = i + 1; j < items.length; j++) {
133
+ const v = items[j];
134
+ const posV = positions.get(v);
135
+ const dx = posU.x - posV.x;
136
+ const dy = posU.y - posV.y;
137
+ const dist = Math.sqrt(dx * dx + dy * dy) || 0.01;
138
+ const f = repulse(dist);
139
+ const fx = (dx / dist) * f;
140
+ const fy = (dy / dist) * f;
141
+ posU.dx += fx;
142
+ posU.dy += fy;
143
+ posV.dx -= fx;
144
+ posV.dy -= fy;
145
+ }
146
+ }
147
+ // Calculate attractive forces
148
+ edges.forEach(([u, v]) => {
149
+ const posU = positions.get(u);
150
+ const posV = positions.get(v);
151
+ const dx = posU.x - posV.x;
152
+ const dy = posU.y - posV.y;
153
+ const dist = Math.sqrt(dx * dx + dy * dy) || 0.01;
154
+ const f = attract(dist);
155
+ const fx = (dx / dist) * f;
156
+ const fy = (dy / dist) * f;
157
+ posU.dx -= fx;
158
+ posU.dy -= fy;
159
+ posV.dx += fx;
160
+ posV.dy += fy;
161
+ });
162
+ // Apply displacements
163
+ positions.forEach(pos => {
164
+ const dist = Math.sqrt(pos.dx * pos.dx + pos.dy * pos.dy) || 0.01;
165
+ const moveDist = Math.min(dist, t);
166
+ pos.x += (pos.dx / dist) * moveDist;
167
+ pos.y += (pos.dy / dist) * moveDist;
168
+ });
169
+ t -= dt;
170
+ }
171
+ // Center the layout
172
+ let minX = Infinity, minY = Infinity;
173
+ let maxX = -Infinity, maxY = -Infinity;
174
+ positions.forEach(pos => {
175
+ if (pos.x < minX)
176
+ minX = pos.x;
177
+ if (pos.y < minY)
178
+ minY = pos.y;
179
+ if (pos.x > maxX)
180
+ maxX = pos.x;
181
+ if (pos.y > maxY)
182
+ maxY = pos.y;
183
+ });
184
+ const centerX = (minX + maxX) / 2;
185
+ const centerY = (minY + maxY) / 2;
186
+ const targetX = this.options.x ?? 0;
187
+ const targetY = this.options.y ?? 0;
188
+ const offsetX = targetX - centerX;
189
+ const offsetY = targetY - centerY;
190
+ for (const item of items) {
191
+ const pos = positions.get(item);
192
+ item.schematicPosition = {
193
+ x: Math.round(pos.x + offsetX),
194
+ y: Math.round(pos.y + offsetY),
195
+ rotation: item.schematicPosition?.rotation ?? 0
196
+ }; // Added semi-colon
197
+ }
198
+ }
199
+ }
200
+ exports.GravityLayout = GravityLayout;
58
201
  //# sourceMappingURL=Layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../src/synth/Layout.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAsB,MAAM;CAM3B;AAND,wBAMC;AAED;;GAEG;AACH,MAAa,UAAW,SAAQ,MAAM;IAClC,YAAoB,UAAwD,EAAE;QAC1E,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO,CAAmD;IAE9E,CAAC;IAED,KAAK,CAAC,KAAmB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,gCAAgC;QAC5E,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACtB,IAAY,CAAC,iBAAiB,GAAG;gBAC9B,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,QAAQ;gBACX,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,IAAI,CAAC;aAClD,CAAC;YACF,QAAQ,IAAI,OAAO,CAAC;QACxB,CAAC;IACL,CAAC;CACJ;AAnBD,gCAmBC;AAED;;GAEG;AACH,MAAa,UAAW,SAAQ,MAAM;IAClC,YAAoB,UAAwD,EAAE;QAC1E,KAAK,EAAE,CAAC;QADQ,YAAO,GAAP,OAAO,CAAmD;IAE9E,CAAC;IAED,KAAK,CAAC,KAAmB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACtB,IAAY,CAAC,iBAAiB,GAAG;gBAC9B,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,QAAQ;gBACX,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,IAAI,CAAC;aAClD,CAAC;YACF,QAAQ,IAAI,OAAO,CAAC;QACxB,CAAC;IACL,CAAC;CACJ;AAnBD,gCAmBC"}
1
+ {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../src/synth/Layout.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export { DNC, TP } from "./Markers";
14
14
  export { KicadFootprint } from "./KicadFootprint";
15
15
  export { KicadSymbol } from "./KicadSymbol";
16
16
  export { KicadLibrary } from "./KicadLibrary";
17
- export { HBoxLayout, VBoxLayout, Layout } from "./Layout";
17
+ export { HBoxLayout, VBoxLayout, GravityLayout, Layout } from "./Layout";
18
18
  export { generatePython, CircuitSnapshot } from "../cli/codegen";
19
19
  export { runSynthesis } from "../cli/synthesis";
20
20
  export { Kicad3DModel, SolidBuilder } from "./3d";
@@ -5,7 +5,7 @@
5
5
  * Type-safe TypeScript framework for PCB design with circuit-synth.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.SolidBuilder = exports.Kicad3DModel = exports.runSynthesis = exports.generatePython = exports.Layout = exports.VBoxLayout = exports.HBoxLayout = exports.KicadLibrary = exports.KicadSymbol = exports.KicadFootprint = exports.TP = exports.DNC = exports.Module = exports.Composable = exports.Component = exports.Net = exports.Schematic = exports.Registry = exports.Pin = void 0;
8
+ exports.SolidBuilder = exports.Kicad3DModel = exports.runSynthesis = exports.generatePython = exports.Layout = exports.GravityLayout = exports.VBoxLayout = exports.HBoxLayout = exports.KicadLibrary = exports.KicadSymbol = exports.KicadFootprint = exports.TP = exports.DNC = exports.Module = exports.Composable = exports.Component = exports.Net = exports.Schematic = exports.Registry = exports.Pin = void 0;
9
9
  // Core types
10
10
  var types_1 = require("./types");
11
11
  Object.defineProperty(exports, "Pin", { enumerable: true, get: function () { return types_1.Pin; } });
@@ -34,6 +34,7 @@ Object.defineProperty(exports, "KicadLibrary", { enumerable: true, get: function
34
34
  var Layout_1 = require("./Layout");
35
35
  Object.defineProperty(exports, "HBoxLayout", { enumerable: true, get: function () { return Layout_1.HBoxLayout; } });
36
36
  Object.defineProperty(exports, "VBoxLayout", { enumerable: true, get: function () { return Layout_1.VBoxLayout; } });
37
+ Object.defineProperty(exports, "GravityLayout", { enumerable: true, get: function () { return Layout_1.GravityLayout; } });
37
38
  Object.defineProperty(exports, "Layout", { enumerable: true, get: function () { return Layout_1.Layout; } });
38
39
  var codegen_1 = require("../cli/codegen");
39
40
  Object.defineProperty(exports, "generatePython", { enumerable: true, get: function () { return codegen_1.generatePython; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/synth/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,aAAa;AACb,4CAAmO;AAA1N,4FAAA,GAAG,OAAA;AACZ,kDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AAEjB,UAAU;AACV,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,wCAAuC;AAA9B,0FAAA,GAAG,OAAA;AACZ,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,sDAAqD;AAA5C,wGAAA,UAAU,OAAA;AACnB,8CAA6C;AAApC,gGAAA,MAAM,OAAA;AACf,gDAA+C;AAAtC,8FAAA,GAAG,OAAA;AAAE,6FAAA,EAAE,OAAA;AAChB,8DAA6D;AAApD,gHAAA,cAAc,OAAA;AACvB,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,0DAAyD;AAAhD,4GAAA,YAAY,OAAA;AACrB,8CAAqE;AAA5D,oGAAA,UAAU,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,gGAAA,MAAM,OAAA;AACvC,oDAA2E;AAAlE,yGAAA,cAAc,OAAA;AACvB,wDAA0D;AAAjD,yGAAA,YAAY,OAAA;AAErB,oBAAoB;AACpB,uCAA6D;AAApD,mGAAA,YAAY,OAAA;AAAE,mGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/synth/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,aAAa;AACb,4CAAmO;AAA1N,4FAAA,GAAG,OAAA;AACZ,kDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AAEjB,UAAU;AACV,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,wCAAuC;AAA9B,0FAAA,GAAG,OAAA;AACZ,oDAAmD;AAA1C,sGAAA,SAAS,OAAA;AAClB,sDAAqD;AAA5C,wGAAA,UAAU,OAAA;AACnB,8CAA6C;AAApC,gGAAA,MAAM,OAAA;AACf,gDAA+C;AAAtC,8FAAA,GAAG,OAAA;AAAE,6FAAA,EAAE,OAAA;AAChB,8DAA6D;AAApD,gHAAA,cAAc,OAAA;AACvB,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,0DAAyD;AAAhD,4GAAA,YAAY,OAAA;AACrB,8CAAoF;AAA3E,oGAAA,UAAU,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,gGAAA,MAAM,OAAA;AACtD,oDAA2E;AAAlE,yGAAA,cAAc,OAAA;AACvB,wDAA0D;AAAjD,yGAAA,YAAY,OAAA;AAErB,oBAAoB;AACpB,uCAA6D;AAApD,mGAAA,YAAY,OAAA;AAAE,mGAAA,YAAY,OAAA"}
@@ -86,6 +86,18 @@ let oc;
86
86
  const cyl = model.cylinder({ r: 3, h: 10, center: true });
87
87
  (0, vitest_1.expect)(cyl._handle.shape).toBeTruthy();
88
88
  });
89
+ (0, vitest_1.it)("creates a pipe", () => {
90
+ const model = new Kicad3DModel_1.Kicad3DModel();
91
+ model.setOC(oc);
92
+ const p = model.pipe({ r: 5, wallThickness: 1, h: 10 });
93
+ (0, vitest_1.expect)(p._handle.shape).toBeTruthy();
94
+ });
95
+ (0, vitest_1.it)("creates a centered pipe", () => {
96
+ const model = new Kicad3DModel_1.Kicad3DModel();
97
+ model.setOC(oc);
98
+ const p = model.pipe({ r: 5, wallThickness: 1, h: 10, center: true });
99
+ (0, vitest_1.expect)(p._handle.shape).toBeTruthy();
100
+ });
89
101
  });
90
102
  // ─── Transforms ──────────────────────────────────────────────────────
91
103
  (0, vitest_1.describe)("Transforms", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"3d-model.test.js","sourceRoot":"","sources":["../../../src/tests/3d-model.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"3d-model.test.js","sourceRoot":"","sources":["../../../src/tests/3d-model.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;GAQG;AACH,mCAAyD;AACzD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,4DAAyD;AACzD,2DAAwD;AACxD,yCAA0C;AAG1C,IAAI,EAAM,CAAC;AAEX,mDAAmD;AACnD,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;IACjB,EAAE,GAAG,MAAM,IAAA,aAAO,GAAE,CAAC;AACzB,CAAC,EAAE,KAAK,CAAC,CAAC;AAEV,wEAAwE;AAExE,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;IACxB,IAAA,WAAE,EAAC,eAAe,EAAE,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gBAAgB,EAAE,GAAG,EAAE;QACtB,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,IAAA,eAAM,EAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,IAAA,eAAM,EAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;IACxB,IAAA,WAAE,EAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/E,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,eAAe,EAAE,GAAG,EAAE;QACrB,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aACtC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;aACpB,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;aACjB,KAAK,CAAC,SAAS,CAAC,CAAC;QAEtB,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QACvC,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,IAAA,WAAE,EAAC,iBAAiB,EAAE,GAAG,EAAE;QACvB,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAA,eAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEzC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAA,eAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aACrD,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAErC,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QAC1C,IAAA,eAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,IAAA,iBAAQ,EAAC,QAAQ,EAAE,GAAG,EAAE;IACpB,IAAA,WAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aACvD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;QACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAA,eAAM,EAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,IAAA,iBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IACzB,IAAA,WAAE,EAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAExE,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEhB,mEAAmE;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9E,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBACrD,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;iBACnB,KAAK,CAAC,SAAS,CAAC,CAAC;YAEtB,kDAAkD;YAClD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;gBAC9B,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,YAAY;gBACtB,OAAO,EAAE,CAAC,KAAK,CAAC;aACnB,CAAC,CAAC;YAEH,cAAc;YACd,IAAA,eAAM,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,IAAA,eAAM,EAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElD,0BAA0B;YAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,OAAQ,EAAE,OAAO,CAAC,CAAC;YAE1D,cAAc;YACd,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAE7C,qBAAqB;YACrB,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE1C,eAAe;YACf,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC5C,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACxC,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACP,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAEzE,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,2BAAY,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEhB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7E,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;iBACxC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;iBACnB,KAAK,CAAC,SAAS,CAAC;iBAChB,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;gBAC9B,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,YAAY;gBACtB,OAAO,EAAE,CAAC,KAAK,CAAC;aACnB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,OAAQ,EAAE,OAAO,CAAC,CAAC;YAE1D,sDAAsD;YACtD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/D,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE3B,4CAA4C;YAC5C,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAEhD,sBAAsB;YACtB,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnC,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACP,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,uEAAuE;AAEvE,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACnC,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,EAAE,GAAG,IAAI,+BAAc,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACtD,EAAE,CAAC,MAAM,CAAC;YACN,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;YACvC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;SAClC,CAAC,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,sCAAsC,EAAE,CAAC,CAAC;QAEhE,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAE3B,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACvE,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC9C,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC7C,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,8DAA8D,EAAE,GAAG,EAAE;QACpE,MAAM,EAAE,GAAG,IAAI,+BAAc,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACxD,EAAE,CAAC,MAAM,CAAC;YACN,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;YACvC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;SAClC,CAAC,CAAC;QACH,EAAE,CAAC,UAAU,CAAC;YACV,IAAI,EAAE,wCAAwC;YAC9C,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;YAChC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YAC3B,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;SAChC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAE3B,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAClD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,wDAAwD,EAAE,GAAG,EAAE;QAC9D,MAAM,EAAE,GAAG,IAAI,+BAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,EAAE,CAAC,MAAM,CAAC;YACN,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM;YACvC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;SAClC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAC3B,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,EAAE,GAAG,IAAI,+BAAc,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACtD,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAEpC,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEhD,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@tobisk/pcbs",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "TypeScript-based PCB Design Framework",
5
5
  "publishConfig": {
6
- "access": "public"
6
+ "access": "public",
7
+ "provenance": true
7
8
  },
8
9
  "repository": {
9
10
  "type": "git",
10
- "url": "https://github.com/kellertobias/pcbs-framework.git"
11
+ "url": "git+https://github.com/kellertobias/pcbs-framework.git"
11
12
  },
12
13
  "main": "./dist/src/synth/index.js",
13
14
  "types": "./dist/src/synth/index.d.ts",
@@ -1 +0,0 @@
1
- export {};
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const DmxNode_1 = require("../../src/schematics/dmx_node/DmxNode");
5
- const codegen_1 = require("../cli/codegen");
6
- (0, vitest_1.describe)("DMX Node Migration Verification", () => {
7
- (0, vitest_1.it)("should correctly instantiate DmxNode and register components", () => {
8
- const project = new DmxNode_1.DmxNode();
9
- const snapshot = project._generateWithCapture();
10
- const components = snapshot.components;
11
- // Check key components
12
- (0, vitest_1.expect)(components.some(c => c.ref === "U1")).toBe(true); // ESP32
13
- (0, vitest_1.expect)(components.some(c => c.ref === "U2")).toBe(true); // MAX3485 OUT
14
- (0, vitest_1.expect)(components.some(c => c.ref === "U3")).toBe(true); // MAX3485 IN
15
- (0, vitest_1.expect)(components.some(c => c.ref === "U4")).toBe(true); // Buck IC
16
- (0, vitest_1.expect)(components.some(c => c.ref === "J_PWR1")).toBe(true); // USB Power
17
- // Check mounting holes
18
- (0, vitest_1.expect)(components.filter(c => c.ref.startsWith("H")).length).toBeGreaterThanOrEqual(4);
19
- // Check nets
20
- const nets = snapshot.nets;
21
- (0, vitest_1.expect)(nets.some(n => n.name === "GND")).toBe(true);
22
- (0, vitest_1.expect)(nets.some(n => n.name === "+5V")).toBe(true);
23
- (0, vitest_1.expect)(nets.some(n => n.name === "+VIN")).toBe(true);
24
- // Check specific connection: TX2 (L_08) to Max3485 OUT DI
25
- const u1 = components.find(c => c.ref === "U1");
26
- const u2 = components.find(c => c.ref === "U2");
27
- const tx2Pin = u1.pins.L_08_TX2;
28
- const diPin = u2.pins.DI;
29
- (0, vitest_1.expect)(tx2Pin.net).toBeDefined();
30
- (0, vitest_1.expect)(tx2Pin.net).toBe(diPin.net);
31
- // Verify codegen has positions
32
- const python = (0, codegen_1.generatePython)(snapshot);
33
- (0, vitest_1.expect)(python).toContain('u1 = Component(');
34
- (0, vitest_1.expect)(python).toContain('at=(50, 100, 0)');
35
- (0, vitest_1.expect)(python).toContain('pcb_at=(18, 65, 0)');
36
- (0, vitest_1.expect)(python).toContain('j_dc1 = Component(');
37
- (0, vitest_1.expect)(python).toContain('pcb_at=(92, 85, 0)');
38
- (0, vitest_1.expect)(python).toContain('j_pwr_in = Component(');
39
- (0, vitest_1.expect)(python).toContain('pcb_at=(92, 85, 0)');
40
- });
41
- });
42
- //# sourceMappingURL=dmx_node.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dmx_node.test.js","sourceRoot":"","sources":["../../../src/tests/dmx_node.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const Max3485_1 = require("../../src/lib/Max3485");
5
- const BuckConverter_1 = require("../../src/lib/BuckConverter");
6
- const Registry_1 = require("../synth/Registry");
7
- (0, vitest_1.describe)("Component Migration Verification", () => {
8
- (0, vitest_1.it)("should correctly instantiate Max3485", () => {
9
- Registry_1.registry.start();
10
- const transceiver = new Max3485_1.Max3485({ ref: "U1" });
11
- (0, vitest_1.expect)(transceiver.ref).toBe("U1");
12
- (0, vitest_1.expect)(transceiver.symbol).toBe("Interface_UART:MAX3485");
13
- (0, vitest_1.expect)(transceiver.footprint).toBe("Package_SO:SOIC-8_3.9x4.9mm_P1.27mm");
14
- (0, vitest_1.expect)(transceiver.partNo).toBe("C18148");
15
- // Check pins
16
- (0, vitest_1.expect)(transceiver.pins.RO.name).toBe("1");
17
- (0, vitest_1.expect)(transceiver.pins.VCC.name).toBe("8");
18
- (0, vitest_1.expect)(transceiver.pins.GND.name).toBe("5");
19
- });
20
- (0, vitest_1.it)("should correctly instantiate BuckConverter with 5V target", () => {
21
- Registry_1.registry.start();
22
- const buck = new BuckConverter_1.BuckConverter({ ref: "U2", targetVoltage: 5.0 });
23
- (0, vitest_1.expect)(buck.ref).toBe("U2");
24
- // Internal components check
25
- const vinPin = buck.pins.VIN;
26
- const vinNet = vinPin.net;
27
- (0, vitest_1.expect)(vinNet).toBeDefined();
28
- (0, vitest_1.expect)(vinNet?.name).toBe("U2_VIN");
29
- // Check feedback resistors for 5V
30
- // R1 = 3000, R2 = 1000
31
- const components = Array.from(Registry_1.registry.getComponents());
32
- const r1 = components.find(c => c.ref === "R_FB1_U2");
33
- const r2 = components.find(c => c.ref === "R_FB2_U2");
34
- (0, vitest_1.expect)(r1?.value).toBe("3k");
35
- (0, vitest_1.expect)(r1?.partNo).toBe("C22965");
36
- (0, vitest_1.expect)(r2?.value).toBe("1k");
37
- (0, vitest_1.expect)(r2?.partNo).toBe("C21190");
38
- });
39
- (0, vitest_1.it)("should correctly instantiate BuckConverter with 12V target", () => {
40
- Registry_1.registry.start();
41
- new BuckConverter_1.BuckConverter({ ref: "U3", targetVoltage: 12.0 });
42
- const components = Array.from(Registry_1.registry.getComponents());
43
- const r1 = components.find(c => c.ref === "R_FB1_U3");
44
- const r2 = components.find(c => c.ref === "R_FB2_U3");
45
- (0, vitest_1.expect)(r1?.value).toBe("13k");
46
- (0, vitest_1.expect)(r1?.partNo).toBe("C24857");
47
- (0, vitest_1.expect)(r2?.value).toBe("1.50k");
48
- (0, vitest_1.expect)(r2?.partNo).toBe("C22843");
49
- });
50
- (0, vitest_1.it)("should work with test points in BuckConverter", () => {
51
- Registry_1.registry.start();
52
- new BuckConverter_1.BuckConverter({ ref: "U4", addTestPoints: true });
53
- const components = Array.from(Registry_1.registry.getComponents());
54
- (0, vitest_1.expect)(components.some(c => c.ref === "TP_VOUT_U4")).toBe(true);
55
- (0, vitest_1.expect)(components.some(c => c.ref === "TP_FB_U4")).toBe(true);
56
- });
57
- });
58
- //# sourceMappingURL=migration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.test.js","sourceRoot":"","sources":["../../../src/tests/migration.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,mDAAgD;AAChD,+DAA4D;AAC5D,gDAA6C;AAG7C,IAAA,iBAAQ,EAAC,kCAAkC,EAAE,GAAG,EAAE;IAC9C,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,mBAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,IAAI,iBAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAA,eAAM,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAA,eAAM,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC1D,IAAA,eAAM,EAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC1E,IAAA,eAAM,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1C,aAAa;QACb,IAAA,eAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,IAAA,eAAM,EAAE,WAAW,CAAC,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,IAAA,eAAM,EAAE,WAAW,CAAC,IAAI,CAAC,GAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACjE,mBAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,6BAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QAClE,IAAA,eAAM,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAU,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;QAC1B,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAA,eAAM,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEpC,kCAAkC;QAClC,uBAAuB;QACvB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;QAEtD,IAAA,eAAM,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAA,eAAM,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAA,eAAM,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAA,eAAM,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4DAA4D,EAAE,GAAG,EAAE;QAClE,mBAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,6BAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;QAEtD,IAAA,eAAM,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAA,eAAM,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAA,eAAM,EAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,IAAA,eAAM,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,mBAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,6BAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;QACxD,IAAA,eAAM,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,IAAA,eAAM,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}