@modular-circuit/transpiler 0.0.88 → 0.0.90

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.
@@ -6,6 +6,7 @@ export declare function get_power_pos(pwr_number: number): {
6
6
  y: number;
7
7
  };
8
8
  export declare const BLOCK_PIN_GAP: number;
9
+ export declare const BLOCK_PIN_TB_MARGIN: number;
9
10
  export declare const WIRE_PADDING: number;
10
11
  export interface LabelPadding {
11
12
  l_side: number;
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/converter/netlist_to_kicad/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAI9D,eAAO,MAAM,SAAS,QAAiB,CAAA;AAEvC,eAAO,MAAM,SAAS,QAAY,CAAA;AAQlC,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM;;;EAE/C;AAKD,eAAO,MAAM,aAAa,QAAgB,CAAA;AAQ1C,eAAO,MAAM,YAAY,QAAY,CAAA;AAErC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,YAAY,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,IAAI,CAAA;IACT,YAAY,EAAE,IAAI,CAAA;CACnB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,UAAU,CAAI;IAEf,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW;CAoDlE"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/converter/netlist_to_kicad/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAI9D,eAAO,MAAM,SAAS,QAAiB,CAAA;AAEvC,eAAO,MAAM,SAAS,QAAY,CAAA;AAQlC,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM;;;EAE/C;AAKD,eAAO,MAAM,aAAa,QAAgB,CAAA;AAE1C,eAAO,MAAM,mBAAmB,QAAgB,CAAA;AAQhD,eAAO,MAAM,YAAY,QAAY,CAAA;AAErC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,CAAA;IACtB,KAAK,EAAE,YAAY,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,IAAI,CAAA;IACT,YAAY,EAAE,IAAI,CAAA;CACnB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,UAAU,CAAI;IAEf,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW;CAoDlE"}
@@ -11,6 +11,7 @@ export function get_power_pos(pwr_number) {
11
11
  var BLOCK_START_Y = 36 * GRID_SIZE;
12
12
  var BLOCK_START_X = BLOCK_START_Y;
13
13
  export var BLOCK_PIN_GAP = 4 * GRID_SIZE;
14
+ export var BLOCK_PIN_TB_MARGIN = 2 * GRID_SIZE;
14
15
  var BLOCK_MARGIN_TOP = 8 * GRID_SIZE;
15
16
  var MIN_BLOCK_WIDTH = 8 * GRID_SIZE;
16
17
  var BLOCK_MARGIN_LEFT = 16 * GRID_SIZE;
@@ -24,7 +25,7 @@ var Layout = /** @class */ (function () {
24
25
  this.max_height = 0;
25
26
  }
26
27
  Layout.prototype.get_block_geometry = function (factor) {
27
- var block_height = Math.ceil(factor.total_pin_num / 2) * BLOCK_PIN_GAP;
28
+ var block_height = Math.floor(factor.total_pin_num / 2) * BLOCK_PIN_GAP + 2 * BLOCK_PIN_TB_MARGIN;
28
29
  var block_width = Math.max(MIN_BLOCK_WIDTH, factor.internal.l_side + factor.internal.r_side + INTERNAL_LABEL_MARGIN);
29
30
  var block_bounding_width = Math.max(block_width, factor.internal.l_side +
30
31
  factor.internal.r_side +
@@ -32,7 +32,7 @@ import { gen_hierarchical_label, gen_net_label, gen_sheet_pin } from '../../kica
32
32
  import { gen_sch_sheet } from '../../kicad/sheet';
33
33
  import { gen_lib_gnd, gen_lib_vcc, gen_sch_gnd, gen_sch_vcc } from '../../kicad/symbols';
34
34
  import { GENERATOR_NAME, GENERATOR_VERSION, SCH_VERSION } from '../../utils/constraints';
35
- import { BLOCK_PIN_GAP, FONT_SIZE, Layout, WIRE_PADDING, get_power_pos } from './layout';
35
+ import { BLOCK_PIN_GAP, BLOCK_PIN_TB_MARGIN, FONT_SIZE, Layout, WIRE_PADDING, get_power_pos } from './layout';
36
36
  import { gen_wire } from '../../kicad/wire/gen_wire';
37
37
  var NetListConverter = /** @class */ (function () {
38
38
  function NetListConverter(ctx) {
@@ -255,11 +255,11 @@ var NetListConverter = /** @class */ (function () {
255
255
  NetListConverter.prototype.convert_sheet_symbol = function (sheet_sym, rect, sch, sheet_names_count) {
256
256
  var port_count = sheet_sym.pins.length;
257
257
  var pins = [];
258
- var h_count = Math.ceil(port_count / 2);
258
+ var h_count = Math.floor(port_count / 2);
259
259
  for (var i = 0; i < port_count; i++) {
260
260
  var is_left = i < h_count;
261
261
  var x = is_left ? rect.pos.x : rect.pos.x + rect.size.x;
262
- var y = rect.pos.y + BLOCK_PIN_GAP * Math.abs(i - h_count);
262
+ var y = rect.pos.y + BLOCK_PIN_GAP * Math.abs(i < h_count ? i : i - h_count) + BLOCK_PIN_TB_MARGIN;
263
263
  var justify = is_left ? 'left' : 'right';
264
264
  var rotation = is_left ? 180 : 0;
265
265
  pins.push(this.convert_sheet_pin(sheet_sym.pins[i], { x: x, y: y }, sch, justify, rotation, is_left));
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/builder/index.ts","../src/builder/graph_to_kicad/do_convert_graph_to_kicad_project.ts","../src/builder/graph_to_kicad/index.ts","../src/converter/index.ts","../src/converter/graph_to_netlist/context.ts","../src/converter/graph_to_netlist/graph_converter.ts","../src/converter/graph_to_netlist/index.ts","../src/converter/kicad_sexpr/index.ts","../src/converter/kicad_sexpr/eeschema/index.ts","../src/converter/kicad_sexpr/eeschema/printer.ts","../src/converter/kicad_sexpr/eeschema/drawing_sheet/index.ts","../src/converter/kicad_sexpr/eeschema/drawing_sheet/sch_default_drawing_sheet.ts","../src/converter/kicad_sexpr/pcb/index.ts","../src/converter/link_to_netlist/context.ts","../src/converter/link_to_netlist/converter.ts","../src/converter/link_to_netlist/index.ts","../src/converter/link_to_netlist/links/converter_base.ts","../src/converter/link_to_netlist/links/converters.ts","../src/converter/link_to_netlist/links/index.ts","../src/converter/netlist_to_kicad/context.ts","../src/converter/netlist_to_kicad/index.ts","../src/converter/netlist_to_kicad/layout.ts","../src/converter/netlist_to_kicad/netlist_converter.ts","../src/converter/netlist_to_kicad/place_blocks.ts","../src/kicad/index.ts","../src/kicad/constraints/index.ts","../src/kicad/label/index.ts","../src/kicad/label/net_label.ts","../src/kicad/label/sheet_pin.ts","../src/kicad/project/index.ts","../src/kicad/project/kicad_prl.ts","../src/kicad/project/kicad_pro.ts","../src/kicad/project/kicad_project_achieve.ts","../src/kicad/project/wildcards_and_files_ext.ts","../src/kicad/sheet/index.ts","../src/kicad/sheet/sheet.ts","../src/kicad/symbols/index.ts","../src/kicad/symbols/symbol_utils.ts","../src/kicad/symbols/lib_symbol/gnd.ts","../src/kicad/symbols/lib_symbol/index.ts","../src/kicad/symbols/lib_symbol/vcc.ts","../src/kicad/symbols/sch_symbol/gnd.ts","../src/kicad/symbols/sch_symbol/index.ts","../src/kicad/symbols/sch_symbol/vcc.ts","../src/kicad/wire/gen_wire.ts","../src/utils/collect_sub_sheets.ts","../src/utils/constraints.ts","../src/utils/filter_null_undefined.ts","../src/utils/index.ts","../src/utils/string_formatter.ts"],"version":"5.8.3"}
1
+ {"root":["../src/index.ts","../src/builder/index.ts","../src/builder/graph_to_kicad/do_convert_graph_to_kicad_project.ts","../src/builder/graph_to_kicad/index.ts","../src/converter/index.ts","../src/converter/graph_to_netlist/context.ts","../src/converter/graph_to_netlist/graph_converter.ts","../src/converter/graph_to_netlist/index.ts","../src/converter/kicad_sexpr/index.ts","../src/converter/kicad_sexpr/eeschema/index.ts","../src/converter/kicad_sexpr/eeschema/printer.ts","../src/converter/kicad_sexpr/eeschema/drawing_sheet/index.ts","../src/converter/kicad_sexpr/eeschema/drawing_sheet/sch_default_drawing_sheet.ts","../src/converter/kicad_sexpr/pcb/index.ts","../src/converter/link_to_netlist/context.ts","../src/converter/link_to_netlist/converter.ts","../src/converter/link_to_netlist/index.ts","../src/converter/link_to_netlist/links/converter_base.ts","../src/converter/link_to_netlist/links/converters.ts","../src/converter/link_to_netlist/links/index.ts","../src/converter/netlist_to_kicad/context.ts","../src/converter/netlist_to_kicad/index.ts","../src/converter/netlist_to_kicad/layout.ts","../src/converter/netlist_to_kicad/netlist_converter.ts","../src/converter/netlist_to_kicad/place_blocks.ts","../src/kicad/index.ts","../src/kicad/constraints/index.ts","../src/kicad/label/index.ts","../src/kicad/label/net_label.ts","../src/kicad/label/sheet_pin.ts","../src/kicad/project/index.ts","../src/kicad/project/kicad_prl.ts","../src/kicad/project/kicad_pro.ts","../src/kicad/project/kicad_project_achieve.ts","../src/kicad/project/wildcards_and_files_ext.ts","../src/kicad/sheet/index.ts","../src/kicad/sheet/sheet.ts","../src/kicad/symbols/index.ts","../src/kicad/symbols/symbol_utils.ts","../src/kicad/symbols/lib_symbol/gnd.ts","../src/kicad/symbols/lib_symbol/index.ts","../src/kicad/symbols/lib_symbol/vcc.ts","../src/kicad/symbols/sch_symbol/gnd.ts","../src/kicad/symbols/sch_symbol/index.ts","../src/kicad/symbols/sch_symbol/vcc.ts","../src/kicad/wire/gen_wire.ts","../src/utils/collect_sub_sheets.ts","../src/utils/collect_sub_sheets_by_id.ts","../src/utils/constraints.ts","../src/utils/filter_null_undefined.ts","../src/utils/index.ts","../src/utils/string_formatter.ts"],"version":"5.8.3"}
@@ -0,0 +1,7 @@
1
+ import type { ModuleCircuit, ModuleResolver } from '@modular-circuit/ir';
2
+ export declare function collect_sub_sheets_by_id(module_ids: string[], module_resolver: ModuleResolver): Promise<{
3
+ sheets: Record<string, string>;
4
+ module_main_sheet: Record<string, string>;
5
+ modules: Record<string, ModuleCircuit>;
6
+ }>;
7
+ //# sourceMappingURL=collect_sub_sheets_by_id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect_sub_sheets_by_id.d.ts","sourceRoot":"","sources":["../../src/utils/collect_sub_sheets_by_id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AASxE,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,cAAc;;;;GA+CnG"}
@@ -0,0 +1,150 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ var __values = (this && this.__values) || function(o) {
38
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
39
+ if (m) return m.call(o);
40
+ if (o && typeof o.length === "number") return {
41
+ next: function () {
42
+ if (o && i >= o.length) o = void 0;
43
+ return { value: o && o[i++], done: !o };
44
+ }
45
+ };
46
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
47
+ };
48
+ var __read = (this && this.__read) || function (o, n) {
49
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
50
+ if (!m) return o;
51
+ var i = m.call(o), r, ar = [], e;
52
+ try {
53
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54
+ }
55
+ catch (error) { e = { error: error }; }
56
+ finally {
57
+ try {
58
+ if (r && !r.done && (m = i["return"])) m.call(i);
59
+ }
60
+ finally { if (e) throw e.error; }
61
+ }
62
+ return ar;
63
+ };
64
+ import { fmt_module_name, KICAD_SHC_FILE_EXT, parse_module_name, remove_filename_path_prefix, unzipFile, } from '@modular-circuit/utils';
65
+ export function collect_sub_sheets_by_id(module_ids, module_resolver) {
66
+ return __awaiter(this, void 0, void 0, function () {
67
+ var sheets, module_main_sheet, modules, module_ids_1, module_ids_1_1, id, zip_achieve_url, module_circuit, k, zip_achieve, files, _a, _b, _c, name, content, fileName, e_1_1;
68
+ var e_1, _d, e_2, _e;
69
+ return __generator(this, function (_f) {
70
+ switch (_f.label) {
71
+ case 0:
72
+ sheets = {};
73
+ module_main_sheet = {};
74
+ modules = {};
75
+ _f.label = 1;
76
+ case 1:
77
+ _f.trys.push([1, 9, 10, 11]);
78
+ module_ids_1 = __values(module_ids), module_ids_1_1 = module_ids_1.next();
79
+ _f.label = 2;
80
+ case 2:
81
+ if (!!module_ids_1_1.done) return [3 /*break*/, 8];
82
+ id = module_ids_1_1.value;
83
+ return [4 /*yield*/, module_resolver.get_module_achieve_by_id(id)];
84
+ case 3:
85
+ zip_achieve_url = _f.sent();
86
+ return [4 /*yield*/, module_resolver.get_module_circuit_by_id(id)];
87
+ case 4:
88
+ module_circuit = _f.sent();
89
+ if (!module_circuit) {
90
+ console.error("Module ".concat(id, " not found"));
91
+ return [3 /*break*/, 7];
92
+ }
93
+ if (!zip_achieve_url || !module_circuit) {
94
+ console.error("Module ".concat(module_circuit.author, "/").concat(module_circuit.name, " not found"));
95
+ return [3 /*break*/, 7];
96
+ }
97
+ if (!module_circuit.main) {
98
+ console.error("Missing main entry in module".concat(module_circuit.author, "/").concat(module_circuit.name));
99
+ return [3 /*break*/, 7];
100
+ }
101
+ k = fmt_module_name(module_circuit);
102
+ module_main_sheet[k] = module_circuit.main;
103
+ modules[k] = module_circuit;
104
+ return [4 /*yield*/, fetch(zip_achieve_url).then(function (res) { return res.arrayBuffer(); })];
105
+ case 5:
106
+ zip_achieve = _f.sent();
107
+ return [4 /*yield*/, unzipFile(zip_achieve)];
108
+ case 6:
109
+ files = _f.sent();
110
+ try {
111
+ for (_a = (e_2 = void 0, __values(Object.entries(files))), _b = _a.next(); !_b.done; _b = _a.next()) {
112
+ _c = __read(_b.value, 2), name = _c[0], content = _c[1];
113
+ if (name.endsWith(KICAD_SHC_FILE_EXT)) {
114
+ fileName = remove_filename_path_prefix(name);
115
+ // FIXME : Should auto rename the sheets and remapping them
116
+ if (fileName in sheets) {
117
+ console.error("Duplicate sheet name: ".concat(fileName));
118
+ continue;
119
+ }
120
+ sheets[fileName] = content;
121
+ }
122
+ }
123
+ }
124
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
125
+ finally {
126
+ try {
127
+ if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
128
+ }
129
+ finally { if (e_2) throw e_2.error; }
130
+ }
131
+ _f.label = 7;
132
+ case 7:
133
+ module_ids_1_1 = module_ids_1.next();
134
+ return [3 /*break*/, 2];
135
+ case 8: return [3 /*break*/, 11];
136
+ case 9:
137
+ e_1_1 = _f.sent();
138
+ e_1 = { error: e_1_1 };
139
+ return [3 /*break*/, 11];
140
+ case 10:
141
+ try {
142
+ if (module_ids_1_1 && !module_ids_1_1.done && (_d = module_ids_1.return)) _d.call(module_ids_1);
143
+ }
144
+ finally { if (e_1) throw e_1.error; }
145
+ return [7 /*endfinally*/];
146
+ case 11: return [2 /*return*/, { sheets: sheets, module_main_sheet: module_main_sheet, modules: modules }];
147
+ }
148
+ });
149
+ });
150
+ }
@@ -2,4 +2,5 @@ export * from './collect_sub_sheets';
2
2
  export * from './constraints';
3
3
  export * from './filter_null_undefined';
4
4
  export * from './string_formatter';
5
+ export * from './collect_sub_sheets_by_id';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA"}
@@ -2,3 +2,4 @@ export * from './collect_sub_sheets';
2
2
  export * from './constraints';
3
3
  export * from './filter_null_undefined';
4
4
  export * from './string_formatter';
5
+ export * from './collect_sub_sheets_by_id';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modular-circuit/transpiler",
3
- "version": "0.0.88",
3
+ "version": "0.0.90",
4
4
  "description": "Intermediate representation of the modular circuit",
5
5
  "main": "./build/index.js",
6
6
  "files": [
@@ -27,9 +27,9 @@
27
27
  "js-base64": "^3.7.7",
28
28
  "jszip": "^3.10.1",
29
29
  "@modular-circuit/electronics-model": "0.0.54",
30
+ "@modular-circuit/perc": "0.0.61",
30
31
  "@modular-circuit/utils": "0.0.40",
31
- "@modular-circuit/ir": "0.0.61",
32
- "@modular-circuit/perc": "0.0.61"
32
+ "@modular-circuit/ir": "0.0.62"
33
33
  },
34
34
  "scripts": {
35
35
  "clean": "rimraf build",