@modular-circuit/perc 0.0.57 → 0.0.59

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.
@@ -1,215 +1,147 @@
1
- var __values = (this && this.__values) || function(o) {
2
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
3
- if (m) return m.call(o);
4
- if (o && typeof o.length === "number") return {
5
- next: function () {
6
- if (o && i >= o.length) o = void 0;
7
- return { value: o && o[i++], done: !o };
8
- }
9
- };
10
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11
- };
12
- var __read = (this && this.__read) || function (o, n) {
13
- var m = typeof Symbol === "function" && o[Symbol.iterator];
14
- if (!m) return o;
15
- var i = m.call(o), r, ar = [], e;
16
- try {
17
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
18
- }
19
- catch (error) { e = { error: error }; }
20
- finally {
21
- try {
22
- if (r && !r.done && (m = i["return"])) m.call(i);
23
- }
24
- finally { if (e) throw e.error; }
25
- }
26
- return ar;
27
- };
28
1
  import { ConnectionNodeType, LinkType, PortType, gen_link_map, get_port_link_type, } from '@modular-circuit/electronics-model';
29
2
  import { PP_INAPPROPRIATE_FUNC } from '../../report';
30
3
  import { AnalogLinkTester, CanDiffLinkTester, CanLogicLinkTester, CrystalLinkTester, DigitalLinkTester, Dvp8LinkTester, GroundLinkTester, I2cLinkTester, I2sLinkTester, SpeakerLinkTester, SpiLinkTester, SwdLinkTester, TouchLinkTester, UartLinkTester, UsbCcLinkTester, UsbLinkTester, VoltageLinkTester, } from './link_testers';
31
- var ParameterPropagationTester = /** @class */ (function () {
32
- function ParameterPropagationTester(ctx) {
4
+ export class ParameterPropagationTester {
5
+ ctx;
6
+ constructor(ctx) {
33
7
  this.ctx = ctx;
34
- this.has_passive_port = false;
35
8
  }
36
- ParameterPropagationTester.prototype.run_test = function (CtorClass, ports) {
9
+ link_map;
10
+ port_id;
11
+ has_passive_port = false;
12
+ run_test(CtorClass, ports) {
37
13
  return new CtorClass({
38
14
  report: this.ctx.report,
39
15
  port_id: this.port_id,
40
16
  has_passive_port: this.has_passive_port,
41
17
  }, ports).test();
42
- };
43
- ParameterPropagationTester.prototype.visit_cc = function (cc) {
44
- var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
18
+ }
19
+ visit_cc(cc) {
45
20
  if (cc.nodes.length < 2) {
46
21
  return;
47
22
  }
48
23
  this.link_map = gen_link_map();
49
- var ports = [];
50
- try {
51
- for (var _e = __values(cc.nodes), _f = _e.next(); !_f.done; _f = _e.next()) {
52
- var p = _f.value;
53
- switch (p.type) {
54
- case ConnectionNodeType.Port: {
55
- ports.push(p);
56
- break;
57
- }
58
- case ConnectionNodeType.Power: {
59
- ports.push({
60
- type: ConnectionNodeType.Port,
61
- param: p.param,
62
- label_shapes: {},
63
- uuid: p.uuid,
64
- });
65
- break;
66
- }
67
- case ConnectionNodeType.NetLabel: {
68
- break;
69
- }
70
- case ConnectionNodeType.Graphics: {
71
- break;
72
- }
24
+ const ports = [];
25
+ for (const p of cc.nodes) {
26
+ switch (p.type) {
27
+ case ConnectionNodeType.Port: {
28
+ ports.push(p);
29
+ break;
30
+ }
31
+ case ConnectionNodeType.Power: {
32
+ ports.push({
33
+ type: ConnectionNodeType.Port,
34
+ param: p.param,
35
+ label_shapes: {},
36
+ uuid: p.uuid,
37
+ });
38
+ break;
39
+ }
40
+ case ConnectionNodeType.NetLabel: {
41
+ break;
42
+ }
43
+ case ConnectionNodeType.Graphics: {
44
+ break;
73
45
  }
74
46
  }
75
47
  }
76
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
77
- finally {
78
- try {
79
- if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
80
- }
81
- finally { if (e_1) throw e_1.error; }
82
- }
83
48
  this.port_id = new Map();
84
- try {
85
- for (var ports_1 = __values(ports), ports_1_1 = ports_1.next(); !ports_1_1.done; ports_1_1 = ports_1.next()) {
86
- var p = ports_1_1.value;
87
- this.port_id.set(p.param, p.uuid);
88
- }
89
- }
90
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
91
- finally {
92
- try {
93
- if (ports_1_1 && !ports_1_1.done && (_b = ports_1.return)) _b.call(ports_1);
94
- }
95
- finally { if (e_2) throw e_2.error; }
96
- }
97
- try {
98
- for (var ports_2 = __values(ports), ports_2_1 = ports_2.next(); !ports_2_1.done; ports_2_1 = ports_2.next()) {
99
- var v = ports_2_1.value;
100
- var port = v.param;
101
- if (port.type === PortType.Passive)
102
- this.has_passive_port = true;
103
- var arr = this.link_map[get_port_link_type(port)];
104
- arr.push(port);
105
- }
49
+ for (const p of ports)
50
+ this.port_id.set(p.param, p.uuid);
51
+ for (const v of ports) {
52
+ const port = v.param;
53
+ if (port.type === PortType.Passive)
54
+ this.has_passive_port = true;
55
+ const arr = this.link_map[get_port_link_type(port)];
56
+ arr.push(port);
106
57
  }
107
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
108
- finally {
109
- try {
110
- if (ports_2_1 && !ports_2_1.done && (_c = ports_2.return)) _c.call(ports_2);
111
- }
112
- finally { if (e_3) throw e_3.error; }
113
- }
114
- var link_t = 0;
115
- try {
116
- for (var _g = __values(Object.entries(this.link_map)), _h = _g.next(); !_h.done; _h = _g.next()) {
117
- var _j = __read(_h.value, 2), k = _j[0], v = _j[1];
118
- if (!v || !v.length)
119
- continue;
120
- switch (k) {
121
- case LinkType.AnalogLink: {
122
- this.run_test(AnalogLinkTester, v);
123
- break;
124
- }
125
- case LinkType.DigitalLink: {
126
- this.run_test(DigitalLinkTester, v);
127
- break;
128
- }
129
- case LinkType.VoltageLink: {
130
- this.run_test(VoltageLinkTester, v);
131
- break;
132
- }
133
- case LinkType.GroundLink: {
134
- this.run_test(GroundLinkTester, v);
135
- break;
136
- }
137
- case LinkType.CanLogicLink: {
138
- this.run_test(CanLogicLinkTester, v);
139
- break;
140
- }
141
- case LinkType.CanDiffLink: {
142
- this.run_test(CanDiffLinkTester, v);
143
- break;
144
- }
145
- case LinkType.PassiveLink: {
146
- // Add the appropriate PassiveLinkTester and handle this case if needed
147
- break;
148
- }
149
- case LinkType.CrystalLink: {
150
- this.run_test(CrystalLinkTester, v);
151
- break;
152
- }
153
- case LinkType.SwdLink: {
154
- this.run_test(SwdLinkTester, v);
155
- break;
156
- }
157
- case LinkType.I2cLink: {
158
- this.run_test(I2cLinkTester, v);
159
- break;
160
- }
161
- case LinkType.I2sLink: {
162
- this.run_test(I2sLinkTester, v);
163
- break;
164
- }
165
- case LinkType.SpiLink: {
166
- this.run_test(SpiLinkTester, v);
167
- break;
168
- }
169
- case LinkType.SpeakerLink: {
170
- this.run_test(SpeakerLinkTester, v);
171
- break;
172
- }
173
- case LinkType.TouchLink: {
174
- this.run_test(TouchLinkTester, v);
175
- break;
176
- }
177
- case LinkType.UartLink: {
178
- this.run_test(UartLinkTester, v);
179
- break;
180
- }
181
- case LinkType.UsbLink: {
182
- this.run_test(UsbLinkTester, v);
183
- break;
184
- }
185
- case LinkType.UsbCcLink: {
186
- this.run_test(UsbCcLinkTester, v);
187
- break;
188
- }
189
- case LinkType.Dvp8Link: {
190
- this.run_test(Dvp8LinkTester, v);
191
- break;
192
- }
193
- default: {
194
- throw new Error("Unhandled link type: ".concat(k));
195
- }
196
- }
197
- if (v.length > 1)
198
- link_t += 1;
199
- }
200
- }
201
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
202
- finally {
203
- try {
204
- if (_h && !_h.done && (_d = _g.return)) _d.call(_g);
58
+ let link_t = 0;
59
+ for (const [k, v] of Object.entries(this.link_map)) {
60
+ if (!v || !v.length)
61
+ continue;
62
+ switch (k) {
63
+ case LinkType.AnalogLink: {
64
+ this.run_test(AnalogLinkTester, v);
65
+ break;
66
+ }
67
+ case LinkType.DigitalLink: {
68
+ this.run_test(DigitalLinkTester, v);
69
+ break;
70
+ }
71
+ case LinkType.VoltageLink: {
72
+ this.run_test(VoltageLinkTester, v);
73
+ break;
74
+ }
75
+ case LinkType.GroundLink: {
76
+ this.run_test(GroundLinkTester, v);
77
+ break;
78
+ }
79
+ case LinkType.CanLogicLink: {
80
+ this.run_test(CanLogicLinkTester, v);
81
+ break;
82
+ }
83
+ case LinkType.CanDiffLink: {
84
+ this.run_test(CanDiffLinkTester, v);
85
+ break;
86
+ }
87
+ case LinkType.PassiveLink: {
88
+ // Add the appropriate PassiveLinkTester and handle this case if needed
89
+ break;
90
+ }
91
+ case LinkType.CrystalLink: {
92
+ this.run_test(CrystalLinkTester, v);
93
+ break;
94
+ }
95
+ case LinkType.SwdLink: {
96
+ this.run_test(SwdLinkTester, v);
97
+ break;
98
+ }
99
+ case LinkType.I2cLink: {
100
+ this.run_test(I2cLinkTester, v);
101
+ break;
102
+ }
103
+ case LinkType.I2sLink: {
104
+ this.run_test(I2sLinkTester, v);
105
+ break;
106
+ }
107
+ case LinkType.SpiLink: {
108
+ this.run_test(SpiLinkTester, v);
109
+ break;
110
+ }
111
+ case LinkType.SpeakerLink: {
112
+ this.run_test(SpeakerLinkTester, v);
113
+ break;
114
+ }
115
+ case LinkType.TouchLink: {
116
+ this.run_test(TouchLinkTester, v);
117
+ break;
118
+ }
119
+ case LinkType.UartLink: {
120
+ this.run_test(UartLinkTester, v);
121
+ break;
122
+ }
123
+ case LinkType.UsbLink: {
124
+ this.run_test(UsbLinkTester, v);
125
+ break;
126
+ }
127
+ case LinkType.UsbCcLink: {
128
+ this.run_test(UsbCcLinkTester, v);
129
+ break;
130
+ }
131
+ case LinkType.Dvp8Link: {
132
+ this.run_test(Dvp8LinkTester, v);
133
+ break;
134
+ }
135
+ default: {
136
+ throw new Error(`Unhandled link type: ${k}`);
137
+ }
205
138
  }
206
- finally { if (e_4) throw e_4.error; }
139
+ if (v.length > 1)
140
+ link_t += 1;
207
141
  }
208
142
  // Expecting single link type or 2 link types including passive link
209
143
  if (link_t > 2 || (link_t === 2 && !this.has_passive_port)) {
210
- this.ctx.report.erc_errors.push(PP_INAPPROPRIATE_FUNC(cc.nodes.map(function (i) { return i.uuid; })));
144
+ this.ctx.report.erc_errors.push(PP_INAPPROPRIATE_FUNC(cc.nodes.map((i) => i.uuid)));
211
145
  }
212
- };
213
- return ParameterPropagationTester;
214
- }());
215
- export { ParameterPropagationTester };
146
+ }
147
+ }
@@ -1,29 +1,29 @@
1
- var _a;
2
1
  import { SEVERITY } from '../context/error_severity';
3
2
  import { ERCE_T } from './error_code';
4
3
  import { PIN_ERROR } from './pin_error';
5
- var ERC_SETTING = /** @class */ (function () {
6
- function ERC_SETTING(_a) {
7
- var pin_map = _a.pin_map, rule_severities = _a.rule_severities;
4
+ export class ERC_SETTING {
5
+ pin_map;
6
+ rule_severities;
7
+ constructor({ pin_map, rule_severities, }) {
8
8
  this.pin_map = pin_map;
9
9
  this.rule_severities = rule_severities;
10
10
  }
11
- ERC_SETTING.prototype.IsTestEnabled = function (code) {
11
+ IsTestEnabled(code) {
12
12
  return this.rule_severities[code] !== SEVERITY.RPT_SEVERITY_IGNORE;
13
- };
14
- ERC_SETTING.prototype.GetPinMapValue = function (aFirstType, aSecondType) {
13
+ }
14
+ GetPinMapValue(aFirstType, aSecondType) {
15
15
  return this.pin_map[aFirstType][aSecondType];
16
- };
17
- ERC_SETTING.prototype.SetPinMapValue = function (aFirstType, aSecondType, aValue) {
16
+ }
17
+ SetPinMapValue(aFirstType, aSecondType, aValue) {
18
18
  this.pin_map[aFirstType][aSecondType] = aValue;
19
- };
20
- ERC_SETTING.prototype.GetSeverity = function (code) {
19
+ }
20
+ GetSeverity(code) {
21
21
  return this.rule_severities[code];
22
- };
23
- ERC_SETTING.prototype.SetSeverity = function (code, severity) {
22
+ }
23
+ SetSeverity(code, severity) {
24
24
  this.rule_severities[code] = severity;
25
- };
26
- ERC_SETTING.prototype.toJSON = function () {
25
+ }
26
+ toJSON() {
27
27
  return {
28
28
  pin_map: this.pin_map,
29
29
  rule_severities: this.rule_severities,
@@ -32,14 +32,12 @@ var ERC_SETTING = /** @class */ (function () {
32
32
  version: 0,
33
33
  },
34
34
  };
35
- };
36
- return ERC_SETTING;
37
- }());
38
- export { ERC_SETTING };
39
- var OK = PIN_ERROR.OK;
40
- var WAR = PIN_ERROR.WARNING;
41
- var ERR = PIN_ERROR.PP_ERROR;
42
- export var DEFAULT_PIN_MAP = [
35
+ }
36
+ }
37
+ const OK = PIN_ERROR.OK;
38
+ const WAR = PIN_ERROR.WARNING;
39
+ const ERR = PIN_ERROR.PP_ERROR;
40
+ export const DEFAULT_PIN_MAP = [
43
41
  /* I, O, Bi, 3S, Pas, NIC, UnS, PwrI, PwrO, OC, OE, NC */
44
42
  /* I */ [OK, OK, OK, OK, OK, OK, WAR, OK, OK, OK, OK, ERR],
45
43
  /* O */ [OK, ERR, OK, WAR, OK, OK, WAR, OK, ERR, ERR, ERR, ERR],
@@ -54,57 +52,57 @@ export var DEFAULT_PIN_MAP = [
54
52
  /* OE */ [OK, ERR, WAR, WAR, OK, OK, WAR, OK, ERR, OK, OK, ERR],
55
53
  /* NC */ [ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR],
56
54
  ];
57
- export var DEFAULT_SEVERITY = (_a = {},
58
- _a[ERCE_T.ERCE_ENDPOINT_OFF_GRID] = SEVERITY.RPT_SEVERITY_WARNING,
59
- _a[ERCE_T.ERCE_PIN_TO_PIN_WARNING] = SEVERITY.RPT_SEVERITY_WARNING,
60
- _a[ERCE_T.ERCE_SIMILAR_LABELS] = SEVERITY.RPT_SEVERITY_WARNING,
61
- _a[ERCE_T.ERCE_SIMILAR_POWER] = SEVERITY.RPT_SEVERITY_WARNING,
62
- _a[ERCE_T.ERCE_SIMILAR_LABEL_AND_POWER] = SEVERITY.RPT_SEVERITY_WARNING,
63
- _a[ERCE_T.ERCE_SINGLE_GLOBAL_LABEL] = SEVERITY.RPT_SEVERITY_IGNORE,
64
- _a[ERCE_T.ERCE_SAME_LOCAL_GLOBAL_LABEL] = SEVERITY.RPT_SEVERITY_WARNING,
65
- _a[ERCE_T.ERCE_GLOBLABEL] = SEVERITY.RPT_SEVERITY_WARNING,
66
- _a[ERCE_T.ERCE_DRIVER_CONFLICT] = SEVERITY.RPT_SEVERITY_WARNING,
67
- _a[ERCE_T.ERCE_BUS_ENTRY_CONFLICT] = SEVERITY.RPT_SEVERITY_WARNING,
68
- _a[ERCE_T.ERCE_LIB_SYMBOL_ISSUES] = SEVERITY.RPT_SEVERITY_WARNING,
69
- _a[ERCE_T.ERCE_LIB_SYMBOL_MISMATCH] = SEVERITY.RPT_SEVERITY_WARNING,
70
- _a[ERCE_T.ERCE_FOOTPRINT_LINK_ISSUES] = SEVERITY.RPT_SEVERITY_WARNING,
71
- _a[ERCE_T.ERCE_FOOTPRINT_FILTERS] = SEVERITY.RPT_SEVERITY_IGNORE,
72
- _a[ERCE_T.ERCE_NOCONNECT_CONNECTED] = SEVERITY.RPT_SEVERITY_WARNING,
73
- _a[ERCE_T.ERCE_NOCONNECT_NOT_CONNECTED] = SEVERITY.RPT_SEVERITY_WARNING,
74
- _a[ERCE_T.ERCE_MISSING_UNIT] = SEVERITY.RPT_SEVERITY_WARNING,
75
- _a[ERCE_T.ERCE_MISSING_INPUT_PIN] = SEVERITY.RPT_SEVERITY_WARNING,
76
- _a[ERCE_T.ERCE_MISSING_BIDI_PIN] = SEVERITY.RPT_SEVERITY_WARNING,
77
- _a[ERCE_T.ERCE_SIMULATION_MODEL] = SEVERITY.RPT_SEVERITY_IGNORE,
78
- _a[ERCE_T.ERCE_FOUR_WAY_JUNCTION] = SEVERITY.RPT_SEVERITY_IGNORE,
79
- _a[ERCE_T.ERCE_LABEL_MULTIPLE_WIRES] = SEVERITY.RPT_SEVERITY_WARNING,
80
- _a[ERCE_T.ERCE_UNCONNECTED_WIRE_ENDPOINT] = SEVERITY.RPT_SEVERITY_WARNING,
81
- _a[ERCE_T.ERCE_PIN_NOT_CONNECTED] = SEVERITY.RPT_SEVERITY_ERROR,
82
- _a[ERCE_T.ERCE_PIN_NOT_DRIVEN] = SEVERITY.RPT_SEVERITY_ERROR,
83
- _a[ERCE_T.ERCE_POWERPIN_NOT_DRIVEN] = SEVERITY.RPT_SEVERITY_ERROR,
84
- _a[ERCE_T.ERCE_HIERACHICAL_LABEL] = SEVERITY.RPT_SEVERITY_ERROR,
85
- _a[ERCE_T.ERCE_LABEL_NOT_CONNECTED] = SEVERITY.RPT_SEVERITY_ERROR,
86
- _a[ERCE_T.ERCE_DIFFERENT_UNIT_FP] = SEVERITY.RPT_SEVERITY_ERROR,
87
- _a[ERCE_T.ERCE_MISSING_POWER_INPUT_PIN] = SEVERITY.RPT_SEVERITY_ERROR,
88
- _a[ERCE_T.ERCE_DIFFERENT_UNIT_NET] = SEVERITY.RPT_SEVERITY_ERROR,
89
- _a[ERCE_T.ERCE_BUS_ALIAS_CONFLICT] = SEVERITY.RPT_SEVERITY_ERROR,
90
- _a[ERCE_T.ERCE_BUS_TO_BUS_CONFLICT] = SEVERITY.RPT_SEVERITY_ERROR,
91
- _a[ERCE_T.ERCE_BUS_TO_NET_CONFLICT] = SEVERITY.RPT_SEVERITY_ERROR,
92
- _a[ERCE_T.ERCE_UNRESOLVED_VARIABLE] = SEVERITY.RPT_SEVERITY_ERROR,
93
- _a[ERCE_T.ERCE_UNDEFINED_NETCLASS] = SEVERITY.RPT_SEVERITY_ERROR,
94
- _a[ERCE_T.ERCE_WIRE_DANGLING] = SEVERITY.RPT_SEVERITY_ERROR,
95
- _a[ERCE_T.ERCE_UNANNOTATED] = SEVERITY.RPT_SEVERITY_ERROR,
96
- _a[ERCE_T.ERCE_EXTRA_UNITS] = SEVERITY.RPT_SEVERITY_ERROR,
97
- _a[ERCE_T.ERCE_DIFFERENT_UNIT_VALUE] = SEVERITY.RPT_SEVERITY_ERROR,
98
- _a[ERCE_T.ERCE_DUPLICATE_REFERENCE] = SEVERITY.RPT_SEVERITY_ERROR,
99
- _a[ERCE_T.ERCE_BUS_ENTRY_NEEDED] = SEVERITY.RPT_SEVERITY_ERROR,
100
- _a[ERCE_T.ERCE_DUPLICATE_PIN_ERROR] = SEVERITY.RPT_SEVERITY_ERROR,
101
- _a[ERCE_T.ERCE_PIN_TO_PIN_ERROR] = SEVERITY.RPT_SEVERITY_ERROR,
102
- _a[ERCE_T.ERCE_ANNOTATION_ACTION] = SEVERITY.RPT_SEVERITY_ERROR,
103
- _a[ERCE_T.ERCE_GENERIC_WARNING] = SEVERITY.RPT_SEVERITY_ERROR,
104
- _a[ERCE_T.ERCE_GENERIC_ERROR] = SEVERITY.RPT_SEVERITY_ERROR,
105
- _a[ERCE_T.ERCE_DUPLICATE_SHEET_NAME] = SEVERITY.RPT_SEVERITY_ERROR,
106
- _a);
107
- export var DEFAULT_ERC_SETTING = new ERC_SETTING({
55
+ export const DEFAULT_SEVERITY = {
56
+ [ERCE_T.ERCE_ENDPOINT_OFF_GRID]: SEVERITY.RPT_SEVERITY_WARNING,
57
+ [ERCE_T.ERCE_PIN_TO_PIN_WARNING]: SEVERITY.RPT_SEVERITY_WARNING,
58
+ [ERCE_T.ERCE_SIMILAR_LABELS]: SEVERITY.RPT_SEVERITY_WARNING,
59
+ [ERCE_T.ERCE_SIMILAR_POWER]: SEVERITY.RPT_SEVERITY_WARNING,
60
+ [ERCE_T.ERCE_SIMILAR_LABEL_AND_POWER]: SEVERITY.RPT_SEVERITY_WARNING,
61
+ [ERCE_T.ERCE_SINGLE_GLOBAL_LABEL]: SEVERITY.RPT_SEVERITY_IGNORE,
62
+ [ERCE_T.ERCE_SAME_LOCAL_GLOBAL_LABEL]: SEVERITY.RPT_SEVERITY_WARNING,
63
+ [ERCE_T.ERCE_GLOBLABEL]: SEVERITY.RPT_SEVERITY_WARNING,
64
+ [ERCE_T.ERCE_DRIVER_CONFLICT]: SEVERITY.RPT_SEVERITY_WARNING,
65
+ [ERCE_T.ERCE_BUS_ENTRY_CONFLICT]: SEVERITY.RPT_SEVERITY_WARNING,
66
+ [ERCE_T.ERCE_LIB_SYMBOL_ISSUES]: SEVERITY.RPT_SEVERITY_WARNING,
67
+ [ERCE_T.ERCE_LIB_SYMBOL_MISMATCH]: SEVERITY.RPT_SEVERITY_WARNING,
68
+ [ERCE_T.ERCE_FOOTPRINT_LINK_ISSUES]: SEVERITY.RPT_SEVERITY_WARNING,
69
+ [ERCE_T.ERCE_FOOTPRINT_FILTERS]: SEVERITY.RPT_SEVERITY_IGNORE,
70
+ [ERCE_T.ERCE_NOCONNECT_CONNECTED]: SEVERITY.RPT_SEVERITY_WARNING,
71
+ [ERCE_T.ERCE_NOCONNECT_NOT_CONNECTED]: SEVERITY.RPT_SEVERITY_WARNING,
72
+ [ERCE_T.ERCE_MISSING_UNIT]: SEVERITY.RPT_SEVERITY_WARNING,
73
+ [ERCE_T.ERCE_MISSING_INPUT_PIN]: SEVERITY.RPT_SEVERITY_WARNING,
74
+ [ERCE_T.ERCE_MISSING_BIDI_PIN]: SEVERITY.RPT_SEVERITY_WARNING,
75
+ [ERCE_T.ERCE_SIMULATION_MODEL]: SEVERITY.RPT_SEVERITY_IGNORE,
76
+ [ERCE_T.ERCE_FOUR_WAY_JUNCTION]: SEVERITY.RPT_SEVERITY_IGNORE,
77
+ [ERCE_T.ERCE_LABEL_MULTIPLE_WIRES]: SEVERITY.RPT_SEVERITY_WARNING,
78
+ [ERCE_T.ERCE_UNCONNECTED_WIRE_ENDPOINT]: SEVERITY.RPT_SEVERITY_WARNING,
79
+ [ERCE_T.ERCE_PIN_NOT_CONNECTED]: SEVERITY.RPT_SEVERITY_ERROR,
80
+ [ERCE_T.ERCE_PIN_NOT_DRIVEN]: SEVERITY.RPT_SEVERITY_ERROR,
81
+ [ERCE_T.ERCE_POWERPIN_NOT_DRIVEN]: SEVERITY.RPT_SEVERITY_ERROR,
82
+ [ERCE_T.ERCE_HIERACHICAL_LABEL]: SEVERITY.RPT_SEVERITY_ERROR,
83
+ [ERCE_T.ERCE_LABEL_NOT_CONNECTED]: SEVERITY.RPT_SEVERITY_ERROR,
84
+ [ERCE_T.ERCE_DIFFERENT_UNIT_FP]: SEVERITY.RPT_SEVERITY_ERROR,
85
+ [ERCE_T.ERCE_MISSING_POWER_INPUT_PIN]: SEVERITY.RPT_SEVERITY_ERROR,
86
+ [ERCE_T.ERCE_DIFFERENT_UNIT_NET]: SEVERITY.RPT_SEVERITY_ERROR,
87
+ [ERCE_T.ERCE_BUS_ALIAS_CONFLICT]: SEVERITY.RPT_SEVERITY_ERROR,
88
+ [ERCE_T.ERCE_BUS_TO_BUS_CONFLICT]: SEVERITY.RPT_SEVERITY_ERROR,
89
+ [ERCE_T.ERCE_BUS_TO_NET_CONFLICT]: SEVERITY.RPT_SEVERITY_ERROR,
90
+ [ERCE_T.ERCE_UNRESOLVED_VARIABLE]: SEVERITY.RPT_SEVERITY_ERROR,
91
+ [ERCE_T.ERCE_UNDEFINED_NETCLASS]: SEVERITY.RPT_SEVERITY_ERROR,
92
+ [ERCE_T.ERCE_WIRE_DANGLING]: SEVERITY.RPT_SEVERITY_ERROR,
93
+ [ERCE_T.ERCE_UNANNOTATED]: SEVERITY.RPT_SEVERITY_ERROR,
94
+ [ERCE_T.ERCE_EXTRA_UNITS]: SEVERITY.RPT_SEVERITY_ERROR,
95
+ [ERCE_T.ERCE_DIFFERENT_UNIT_VALUE]: SEVERITY.RPT_SEVERITY_ERROR,
96
+ [ERCE_T.ERCE_DUPLICATE_REFERENCE]: SEVERITY.RPT_SEVERITY_ERROR,
97
+ [ERCE_T.ERCE_BUS_ENTRY_NEEDED]: SEVERITY.RPT_SEVERITY_ERROR,
98
+ [ERCE_T.ERCE_DUPLICATE_PIN_ERROR]: SEVERITY.RPT_SEVERITY_ERROR,
99
+ [ERCE_T.ERCE_PIN_TO_PIN_ERROR]: SEVERITY.RPT_SEVERITY_ERROR,
100
+ [ERCE_T.ERCE_ANNOTATION_ACTION]: SEVERITY.RPT_SEVERITY_ERROR,
101
+ [ERCE_T.ERCE_GENERIC_WARNING]: SEVERITY.RPT_SEVERITY_ERROR,
102
+ [ERCE_T.ERCE_GENERIC_ERROR]: SEVERITY.RPT_SEVERITY_ERROR,
103
+ [ERCE_T.ERCE_DUPLICATE_SHEET_NAME]: SEVERITY.RPT_SEVERITY_ERROR,
104
+ };
105
+ export const DEFAULT_ERC_SETTING = new ERC_SETTING({
108
106
  pin_map: DEFAULT_PIN_MAP,
109
107
  rule_severities: DEFAULT_SEVERITY,
110
108
  });
@@ -1,23 +1,22 @@
1
1
  import { get_electrical_pin_type, node_is_electrical_node, } from '@modular-circuit/electronics-model';
2
2
  import { ERCE_PIN_TO_PIN_ERROR } from '../../report';
3
3
  import { PIN_ERROR } from './pin_error';
4
- var PIN_COMPATIBILITY_MATRIX_TESTER = /** @class */ (function () {
5
- function PIN_COMPATIBILITY_MATRIX_TESTER(ctx) {
4
+ export class PIN_COMPATIBILITY_MATRIX_TESTER {
5
+ ctx;
6
+ constructor(ctx) {
6
7
  this.ctx = ctx;
7
8
  }
8
- PIN_COMPATIBILITY_MATRIX_TESTER.prototype.visit_cc = function (cc) {
9
- var nodes = cc.nodes.filter(function (i) { return node_is_electrical_node(i); });
10
- for (var i = 0; i < nodes.length; i++) {
11
- var current = get_electrical_pin_type(nodes[i]);
12
- for (var j = i + 1; j < nodes.length; j++) {
13
- var other = get_electrical_pin_type(nodes[j]);
14
- var error = this.ctx.erc_setting.GetPinMapValue(current, other);
9
+ visit_cc(cc) {
10
+ const nodes = cc.nodes.filter((i) => node_is_electrical_node(i));
11
+ for (let i = 0; i < nodes.length; i++) {
12
+ const current = get_electrical_pin_type(nodes[i]);
13
+ for (let j = i + 1; j < nodes.length; j++) {
14
+ const other = get_electrical_pin_type(nodes[j]);
15
+ const error = this.ctx.erc_setting.GetPinMapValue(current, other);
15
16
  if (error !== PIN_ERROR.OK) {
16
17
  this.ctx.report.erc_errors.push(ERCE_PIN_TO_PIN_ERROR(nodes[i], nodes[j]));
17
18
  }
18
19
  }
19
20
  }
20
- };
21
- return PIN_COMPATIBILITY_MATRIX_TESTER;
22
- }());
23
- export { PIN_COMPATIBILITY_MATRIX_TESTER };
21
+ }
22
+ }
@@ -1,16 +1,15 @@
1
1
  import { DEFAULT_PP_ERROR_SEVERITY, DEFAULT_SEVERITY } from '../erc';
2
2
  export function fmt_erc_item_description(id, ctx) {
3
3
  if (id in ctx.pin_module_name_table)
4
- return "Module ".concat(ctx.pin_module_name_table[id], " port ").concat(ctx.pin_name_table[id]);
4
+ return `Module ${ctx.pin_module_name_table[id]} port ${ctx.pin_name_table[id]}`;
5
5
  // Shall be global power symbols
6
6
  return ctx.pin_name_table[id];
7
7
  }
8
8
  export function get_erc_severity(code, settings) {
9
- var _a;
10
- var erc_setting = (settings === null || settings === void 0 ? void 0 : settings.erc_setting) || DEFAULT_SEVERITY;
11
- var pp_erc_setting = (settings === null || settings === void 0 ? void 0 : settings.pp_erc_setting) || DEFAULT_PP_ERROR_SEVERITY;
12
- var severity = (_a = erc_setting[code]) !== null && _a !== void 0 ? _a : pp_erc_setting[code];
9
+ const erc_setting = settings?.erc_setting || DEFAULT_SEVERITY;
10
+ const pp_erc_setting = settings?.pp_erc_setting || DEFAULT_PP_ERROR_SEVERITY;
11
+ const severity = erc_setting[code] ?? pp_erc_setting[code];
13
12
  if (severity === undefined)
14
- throw new Error("Unknown ERC code: ".concat(code));
13
+ throw new Error(`Unknown ERC code: ${code}`);
15
14
  return severity;
16
15
  }