@vessel-dsp/compiler 0.18.1 → 0.21.0

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 (63) hide show
  1. package/dist/compile.d.ts +16 -0
  2. package/dist/compile.d.ts.map +1 -1
  3. package/dist/compile.js +93 -12
  4. package/dist/compile.js.map +1 -1
  5. package/dist/device-laws.d.ts +60 -1
  6. package/dist/device-laws.d.ts.map +1 -1
  7. package/dist/device-laws.js +230 -4
  8. package/dist/device-laws.js.map +1 -1
  9. package/dist/fixtures/circuits.d.ts +40 -0
  10. package/dist/fixtures/circuits.d.ts.map +1 -1
  11. package/dist/fixtures/circuits.js +477 -0
  12. package/dist/fixtures/circuits.js.map +1 -1
  13. package/dist/index.d.ts +2 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/link.d.ts.map +1 -1
  18. package/dist/link.js +4 -3
  19. package/dist/link.js.map +1 -1
  20. package/dist/lower.d.ts.map +1 -1
  21. package/dist/lower.js +10 -0
  22. package/dist/lower.js.map +1 -1
  23. package/dist/netlist.d.ts.map +1 -1
  24. package/dist/netlist.js +92 -1
  25. package/dist/netlist.js.map +1 -1
  26. package/dist/part-catalog.d.ts.map +1 -1
  27. package/dist/part-catalog.js +24 -0
  28. package/dist/part-catalog.js.map +1 -1
  29. package/dist/registry-data/bjt.d.ts.map +1 -1
  30. package/dist/registry-data/bjt.js +1422 -21
  31. package/dist/registry-data/bjt.js.map +1 -1
  32. package/dist/registry-data/diode.d.ts.map +1 -1
  33. package/dist/registry-data/diode.js +293 -0
  34. package/dist/registry-data/diode.js.map +1 -1
  35. package/dist/registry-data/index.d.ts +1 -1
  36. package/dist/registry-data/index.d.ts.map +1 -1
  37. package/dist/registry-data/index.js.map +1 -1
  38. package/dist/registry-data/jfet.d.ts.map +1 -1
  39. package/dist/registry-data/jfet.js +79 -0
  40. package/dist/registry-data/jfet.js.map +1 -1
  41. package/dist/registry-data/led.d.ts.map +1 -1
  42. package/dist/registry-data/led.js +16 -0
  43. package/dist/registry-data/led.js.map +1 -1
  44. package/dist/registry-data/loader.d.ts +19 -1
  45. package/dist/registry-data/loader.d.ts.map +1 -1
  46. package/dist/registry-data/loader.js +32 -1
  47. package/dist/registry-data/loader.js.map +1 -1
  48. package/dist/registry-data/mosfet.d.ts.map +1 -1
  49. package/dist/registry-data/mosfet.js +12 -0
  50. package/dist/registry-data/mosfet.js.map +1 -1
  51. package/dist/registry-data/schema.d.ts +14 -1
  52. package/dist/registry-data/schema.d.ts.map +1 -1
  53. package/dist/registry-data/schema.js +6 -2
  54. package/dist/registry-data/schema.js.map +1 -1
  55. package/dist/registry-data/zener.d.ts.map +1 -1
  56. package/dist/registry-data/zener.js +68 -0
  57. package/dist/registry-data/zener.js.map +1 -1
  58. package/dist/registry.d.ts +9 -0
  59. package/dist/registry.d.ts.map +1 -1
  60. package/dist/registry.js.map +1 -1
  61. package/dist/types.d.ts +82 -2
  62. package/dist/types.d.ts.map +1 -1
  63. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"part-catalog.d.ts","sourceRoot":"","sources":["../src/part-catalog.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAgBN,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAoIzD,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CA+B5D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAkC9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAkC5D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,GAAG,QAAQ,GACpB,SAAS,CAkEX;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CA6B5D;AA+BD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAInD,CAAC;AA6QF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAgE9D;AAi9SD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,IAAI,GAAE,SAAS,mBAAmB,EAAyB,EAC3D,UAAU,GAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAA0B,GAClH,SAAS,SAAS,EAAE,CAgHtB;AAeD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAUlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAE9B,CAAC"}
1
+ {"version":3,"file":"part-catalog.d.ts","sourceRoot":"","sources":["../src/part-catalog.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAgBN,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAqIzD,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAgC5D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAmC9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAmC5D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,GAAG,QAAQ,GACpB,SAAS,CAkGX;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CA6B5D;AA+BD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAInD,CAAC;AA6QF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAgE9D;AAi9SD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,IAAI,GAAE,SAAS,mBAAmB,EAAyB,EAC3D,UAAU,GAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAA0B,GAClH,SAAS,SAAS,EAAE,CAgHtB;AAeD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAUlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAE9B,CAAC"}
@@ -110,6 +110,7 @@ function zenerLaw(record) {
110
110
  declaredTypes: [],
111
111
  terminalRoleGroups: [],
112
112
  ...provisionalArmOf(record),
113
+ ...(record.material === undefined ? {} : { material: record.material }),
113
114
  model: {
114
115
  kind: "law",
115
116
  law: {
@@ -187,6 +188,7 @@ export function bjtLawEntry(record) {
187
188
  terminalRoleGroups: [],
188
189
  ...provisionalArmOf(record),
189
190
  ...citedArmOf(record),
191
+ ...(record.material === undefined ? {} : { material: record.material }),
190
192
  model: {
191
193
  kind: "law",
192
194
  law: {
@@ -225,6 +227,7 @@ export function diodeLawEntry(record) {
225
227
  terminalRoleGroups: [],
226
228
  ...provisionalArmOf(record),
227
229
  ...citedArmOf(record),
230
+ ...(record.material === undefined ? {} : { material: record.material }),
228
231
  model: {
229
232
  kind: "law",
230
233
  law: {
@@ -267,6 +270,7 @@ export function ledLawEntry(record) {
267
270
  terminalRoleGroups: [],
268
271
  ...provisionalArmOf(record),
269
272
  ...citedArmOf(record),
273
+ ...(record.material === undefined ? {} : { material: record.material }),
270
274
  model: {
271
275
  kind: "law",
272
276
  law: {
@@ -312,6 +316,12 @@ export function fetLawEntry(record, cls) {
312
316
  gateSaturationCurrent: 0,
313
317
  gateOnsetVolts: 0,
314
318
  gateScaleVolts: 1,
319
+ // The body-diode defaults by value (see `device-laws.ts`): 1e-14 A
320
+ // and 1.0, ngspice's own MOS bulk-diode defaults, so the runtime
321
+ // and the emitted deck agree by construction. A drift between the
322
+ // two copies is caught by the sparse-record test.
323
+ bodySaturationCurrent: 1e-14,
324
+ bodyEmissionCoefficient: 1,
315
325
  };
316
326
  return {
317
327
  partIds: entryIdsOf(record),
@@ -338,6 +348,20 @@ export function fetLawEntry(record, cls) {
338
348
  channelDefaults.gateOnsetVolts,
339
349
  gateScaleVolts: citedValueOf(record, "gateScaleVolts") ??
340
350
  channelDefaults.gateScaleVolts,
351
+ // A JFET has no body diode and carries neither field, so its entry
352
+ // keeps its previous shape exactly. A MOSFET entry always carries
353
+ // both (cited record value when the record types it, else the class
354
+ // default above).
355
+ ...(cls === "mosfet"
356
+ ? {
357
+ bodySaturationCurrent: citedValueOf(record, "bodySaturationCurrent") ??
358
+ channelDefaults.bodySaturationCurrent ??
359
+ 1e-14,
360
+ bodyEmissionCoefficient: citedValueOf(record, "bodyEmissionCoefficient") ??
361
+ channelDefaults.bodyEmissionCoefficient ??
362
+ 1,
363
+ }
364
+ : {}),
341
365
  },
342
366
  },
343
367
  };