@vessel-dsp/core 0.6.13 → 0.6.15

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.
@@ -8,7 +8,7 @@ export type ParsedQuantity = Readonly<{
8
8
  value: number;
9
9
  unit: string;
10
10
  }>;
11
- export type ComponentKind = "resistor" | "capacitor" | "inductor" | "diode" | "led" | "bjt" | "jfet" | "mosfet" | "opamp" | "ota" | "triode" | "pentode" | "tube-diode" | "transformer" | "potentiometer" | "variable-resistor" | "switch" | "optocoupler" | "voltage-source" | "current-source" | "battery" | "ground" | "rail" | "jack" | "bbd" | "delay-ic" | "power-amp" | "regulator" | "analog-switch" | "flipflop" | "ic" | "label" | "named-wire" | "port" | "unsupported";
11
+ export type ComponentKind = "resistor" | "capacitor" | "inductor" | "diode" | "led" | "bjt" | "jfet" | "mosfet" | "opamp" | "ota" | "triode" | "pentode" | "tube-diode" | "transformer" | "potentiometer" | "variable-resistor" | "switch" | "optocoupler" | "voltage-source" | "current-source" | "battery" | "ground" | "rail" | "jack" | "bbd" | "delay-ic" | "power-amp" | "regulator" | "power-converter" | "analog-switch" | "flipflop" | "ic" | "label" | "named-wire" | "port" | "unsupported";
12
12
  export type Terminal = Readonly<{
13
13
  name: string;
14
14
  position: Point;
@@ -290,6 +290,7 @@ export type CircuitPowerRailBinding = VdspBuildDataObject & Readonly<{
290
290
  derivation: CircuitPowerRailDerivation;
291
291
  parentRailComponentId?: string;
292
292
  converterComponentId?: string;
293
+ nominalVoltage?: ParsedQuantity;
293
294
  }>;
294
295
  export type CircuitPowerDomain = VdspBuildDataObject & Readonly<{
295
296
  id: string;
@@ -328,12 +329,124 @@ export type BuildBom = VdspBuildDataObject & Readonly<{
328
329
  export type BuildPartProfile = VdspBuildDataObject & Readonly<{
329
330
  id: string;
330
331
  kind?: string;
332
+ profileSchema?: string;
331
333
  }>;
334
+ export type ProfileResponseRef = VdspBuildDataObject & Readonly<{
335
+ id: string;
336
+ kind: string;
337
+ assetRef: string;
338
+ mimeType?: string;
339
+ sha256?: string;
340
+ }>;
341
+ export type PhysicalProfileIdentity = VdspBuildDataObject & Readonly<{
342
+ manufacturer?: string;
343
+ model?: string;
344
+ revision?: string;
345
+ }>;
346
+ export type PhysicalProfileBase = BuildPartProfile & Readonly<{
347
+ profileSchema: string;
348
+ kind: string;
349
+ displayName?: string;
350
+ identity?: PhysicalProfileIdentity;
351
+ responseRefs?: readonly ProfileResponseRef[];
352
+ extensions?: Readonly<Record<string, VdspBuildDataObject>>;
353
+ }>;
354
+ export type SpeakerDriverSmallSignal = VdspBuildDataObject & Readonly<{
355
+ nominalImpedanceOhms?: number;
356
+ reOhms?: number;
357
+ leHenries?: number;
358
+ fsHz?: number;
359
+ qms?: number;
360
+ qes?: number;
361
+ qts?: number;
362
+ vasM3?: number;
363
+ mmsKg?: number;
364
+ cmsMetersPerNewton?: number;
365
+ rmsKgPerSecond?: number;
366
+ blTeslaMeters?: number;
367
+ }>;
368
+ export type SpeakerDriverGeometry = VdspBuildDataObject & Readonly<{
369
+ radiatingAreaM2?: number;
370
+ xmaxM?: number;
371
+ }>;
372
+ export type SpeakerDriverProfile = PhysicalProfileBase & Readonly<{
373
+ profileSchema: "speaker-driver-profile/v1";
374
+ kind: "speaker-driver";
375
+ smallSignal?: SpeakerDriverSmallSignal;
376
+ geometry?: SpeakerDriverGeometry;
377
+ }>;
378
+ export type CabinetEnclosureType = "closed-back" | "open-back" | "ported" | "infinite-baffle" | "transmission-line" | "unknown";
379
+ export type CabinetDimensionsM = VdspBuildDataObject & Readonly<{
380
+ width?: number;
381
+ height?: number;
382
+ depth?: number;
383
+ }>;
384
+ export type CabinetPort = VdspBuildDataObject & Readonly<{
385
+ areaM2?: number;
386
+ lengthM?: number;
387
+ tuningHz?: number;
388
+ }>;
389
+ export type CabinetEnclosure = VdspBuildDataObject & Readonly<{
390
+ type: CabinetEnclosureType;
391
+ netVolumeM3?: number;
392
+ dimensionsM?: CabinetDimensionsM;
393
+ lossQ?: number;
394
+ ports?: readonly CabinetPort[];
395
+ }>;
396
+ export type CabinetDriverLoadout = VdspBuildDataObject & Readonly<{
397
+ driverProfileId: string;
398
+ count: number;
399
+ wiring?: string;
400
+ }>;
401
+ export type CabinetEnclosureProfile = PhysicalProfileBase & Readonly<{
402
+ profileSchema: "cabinet-enclosure-profile/v1";
403
+ kind: "cabinet-enclosure";
404
+ enclosure?: CabinetEnclosure;
405
+ loadout?: readonly CabinetDriverLoadout[];
406
+ }>;
407
+ export type MicrophoneTransducerPrinciple = "dynamic" | "ribbon" | "condenser" | "electret-condenser" | "measurement" | "unknown";
408
+ export type MicrophoneAcousticCoupling = "pressure" | "pressure-gradient" | "mixed" | "unknown";
409
+ export type MicrophoneTransducer = VdspBuildDataObject & Readonly<{
410
+ principle?: MicrophoneTransducerPrinciple;
411
+ acousticCoupling?: MicrophoneAcousticCoupling;
412
+ polarPattern?: string;
413
+ }>;
414
+ export type MicrophoneElectrical = VdspBuildDataObject & Readonly<{
415
+ nominalImpedanceOhms?: number;
416
+ sensitivityDbVPerPa?: number;
417
+ }>;
418
+ export type MicrophoneTransducerProfile = PhysicalProfileBase & Readonly<{
419
+ profileSchema: "microphone-transducer-profile/v1";
420
+ kind: "microphone-transducer";
421
+ transducer?: MicrophoneTransducer;
422
+ electrical?: MicrophoneElectrical;
423
+ }>;
424
+ export type KnownPhysicalProfile = SpeakerDriverProfile | CabinetEnclosureProfile | MicrophoneTransducerProfile;
332
425
  export type BuildPartProfileCatalog = VdspBuildDataObject & Readonly<{
333
426
  schema: "part-profile-catalog/v1";
334
427
  resolution?: string;
335
428
  units?: string;
336
- profiles: readonly BuildPartProfile[];
429
+ profiles: readonly (KnownPhysicalProfile | BuildPartProfile)[];
430
+ }>;
431
+ export type SimulationProfile = VdspBuildDataObject & Readonly<{
432
+ profileSchema: string;
433
+ kind: string;
434
+ id: string;
435
+ targetProfileIds: readonly string[];
436
+ domain: string;
437
+ representation: string;
438
+ operatingRegime?: string;
439
+ coupling?: string;
440
+ parameters?: VdspBuildDataObject;
441
+ dataRef?: string;
442
+ assetRefs?: readonly ProfileResponseRef[];
443
+ extensions?: Readonly<Record<string, VdspBuildDataObject>>;
444
+ }>;
445
+ export type SimulationProfileCatalog = VdspBuildDataObject & Readonly<{
446
+ schema: "simulation-profile-catalog/v1";
447
+ resolution?: string;
448
+ units?: string;
449
+ profiles: readonly SimulationProfile[];
337
450
  }>;
338
451
  export type BoardFootprint = VdspBuildDataObject & Readonly<{
339
452
  id: string;
@@ -510,6 +623,7 @@ export type CircuitDocument = Readonly<{
510
623
  build?: BuildScope;
511
624
  bom?: BuildBom;
512
625
  partProfiles?: BuildPartProfileCatalog;
626
+ simulationProfiles?: SimulationProfileCatalog;
513
627
  footprints?: BoardFootprintCatalog;
514
628
  offBoardWiring?: OffBoardWiringPlan;
515
629
  boards?: readonly BoardRealization[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AA2xBA,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACvD,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE;CACjB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAq8BA,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC9C,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACvD,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE;CACjB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { CircuitDocument, Component, ComponentKind } from "./types";
2
2
  export type ValidationSeverity = "error" | "warning";
3
- export type ValidationCode = "value-required" | "model-required" | "value-unparseable" | "value-out-of-range" | "unit-mismatch" | "unsupported-component" | "invalid-jack-role" | "invalid-jack-interface" | "invalid-jack-audio-role" | "descriptor-control-empty" | "descriptor-mode-label-mismatch" | "firmware-id-missing" | "runtime-match-key-missing" | "runtime-match-key-incomplete" | "firmware-chip-missing" | "invalid-control-role" | "duplicate-device-interface-control-id" | "invalid-device-interface-token" | "control-group-context-unresolved" | "control-group-member-unresolved" | "control-group-member-context-unresolved" | "control-group-member-order-duplicate" | "device-interface-group-unresolved" | "device-interface-context-unresolved" | "device-interface-audio-binding-invalid" | "device-interface-binding-unresolved" | "device-interface-duplicate-role" | "appearance-invalid" | "panel-interface-control-unresolved" | "panel-binding-unresolved" | "panel-control-unresolved" | "panel-kind-mismatch" | "panel-cell-collision" | "panel-mount-orphan" | "panel-mount-inconsistent" | "build-board-unresolved" | "build-harness-unresolved" | "bom-ref-unresolved" | "offboard-endpoint-unresolved" | "offboard-signal-unresolved" | "board-source-hash-invalid" | "board-terminal-unresolved" | "board-route-feature-invalid" | "board-net-unrouted" | "power-source-unresolved" | "power-rail-unresolved" | "power-rail-parent-unresolved" | "power-rail-parent-cycle" | "power-domain-duplicate-id" | "power-rail-duplicate-ownership" | "power-coverage-domains-mismatch" | "duplicate-id" | "degenerate-wire";
3
+ export type ValidationCode = "value-required" | "model-required" | "value-unparseable" | "value-out-of-range" | "unit-mismatch" | "unsupported-component" | "invalid-jack-role" | "invalid-jack-interface" | "invalid-jack-audio-role" | "descriptor-control-empty" | "descriptor-mode-label-mismatch" | "firmware-id-missing" | "runtime-match-key-missing" | "runtime-match-key-incomplete" | "firmware-chip-missing" | "invalid-control-role" | "duplicate-device-interface-control-id" | "invalid-device-interface-token" | "control-group-context-unresolved" | "control-group-member-unresolved" | "control-group-member-context-unresolved" | "control-group-member-order-duplicate" | "device-interface-group-unresolved" | "device-interface-context-unresolved" | "device-interface-audio-binding-invalid" | "device-interface-binding-unresolved" | "device-interface-duplicate-role" | "appearance-invalid" | "panel-interface-control-unresolved" | "panel-binding-unresolved" | "panel-control-unresolved" | "panel-kind-mismatch" | "panel-cell-collision" | "panel-mount-orphan" | "panel-mount-inconsistent" | "build-board-unresolved" | "build-harness-unresolved" | "bom-ref-unresolved" | "part-profile-duplicate-id" | "part-profile-reference-unresolved" | "part-profile-quantity-invalid" | "simulation-profile-duplicate-id" | "simulation-profile-reference-unresolved" | "offboard-endpoint-unresolved" | "offboard-signal-unresolved" | "board-source-hash-invalid" | "board-terminal-unresolved" | "board-route-feature-invalid" | "board-net-unrouted" | "power-source-unresolved" | "power-rail-unresolved" | "power-rail-parent-unresolved" | "power-rail-parent-cycle" | "power-domain-duplicate-id" | "power-rail-duplicate-ownership" | "power-coverage-domains-mismatch" | "power-rail-converter-required" | "power-rail-converter-invalid-kind" | "power-rail-role-derivation-mismatch" | "power-rail-duplicate-converter-role" | "power-converter-missing-part-number" | "power-rail-missing-nominal-voltage" | "duplicate-id" | "degenerate-wire";
4
4
  export type ValidationIssue = Readonly<{
5
5
  code: ValidationCode | (string & {});
6
6
  severity: ValidationSeverity;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/model/validation.ts"],"names":[],"mappings":"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"}
@@ -263,6 +263,13 @@ const KIND_RULES = {
263
263
  aliases: [...MODEL_ALIASES],
264
264
  },
265
265
  ],
266
+ "power-converter": [
267
+ {
268
+ kind: "string",
269
+ name: "ConverterKind",
270
+ required: true,
271
+ },
272
+ ],
266
273
  "analog-switch": [
267
274
  {
268
275
  kind: "string",
@@ -421,6 +428,9 @@ export function validateDocument(doc, options = {}) {
421
428
  for (const issue of validateCircuitPower(doc, seen)) {
422
429
  issues.push(issue);
423
430
  }
431
+ for (const issue of validatePowerConverterComponents(doc)) {
432
+ issues.push(issue);
433
+ }
424
434
  const context = {
425
435
  playbackClaim,
426
436
  controlRoles: CONTROL_ROLES,
@@ -1443,6 +1453,7 @@ function validateV3BuildMetadata(doc, componentIds) {
1443
1453
  }
1444
1454
  }
1445
1455
  }
1456
+ issues.push(...validateProfileCatalogs(doc));
1446
1457
  for (const board of boards) {
1447
1458
  issues.push(...validateBoardRealization(board, componentsById, boardNetsByBoardId));
1448
1459
  }
@@ -1458,6 +1469,137 @@ function validateV3BuildMetadata(doc, componentIds) {
1458
1469
  }
1459
1470
  return issues;
1460
1471
  }
1472
+ function validateProfileCatalogs(doc) {
1473
+ const issues = [];
1474
+ const partProfiles = doc.partProfiles?.profiles ?? [];
1475
+ const partProfileIds = new Set();
1476
+ for (const profile of partProfiles) {
1477
+ if (partProfileIds.has(profile.id)) {
1478
+ issues.push({
1479
+ code: "part-profile-duplicate-id",
1480
+ severity: "error",
1481
+ message: `Duplicate part profile id "${profile.id}"`,
1482
+ componentId: profile.id,
1483
+ });
1484
+ }
1485
+ partProfileIds.add(profile.id);
1486
+ issues.push(...validateKnownPhysicalProfile(profile));
1487
+ }
1488
+ for (const profile of partProfiles) {
1489
+ if (profile.profileSchema !== "cabinet-enclosure-profile/v1") {
1490
+ continue;
1491
+ }
1492
+ for (const loadout of dataObjectArray(profile, "loadout")) {
1493
+ const driverProfileId = dataString(loadout, "driverProfileId");
1494
+ if (driverProfileId !== undefined && !partProfileIds.has(driverProfileId)) {
1495
+ issues.push(unresolvedIssue("part-profile-reference-unresolved", "error", `Cabinet profile "${profile.id}" references missing driver profile "${driverProfileId}"`, profile.id, "loadout.driverProfileId"));
1496
+ }
1497
+ }
1498
+ }
1499
+ const simulationProfileIds = new Set();
1500
+ for (const profile of doc.simulationProfiles?.profiles ?? []) {
1501
+ if (simulationProfileIds.has(profile.id)) {
1502
+ issues.push({
1503
+ code: "simulation-profile-duplicate-id",
1504
+ severity: "error",
1505
+ message: `Duplicate simulation profile id "${profile.id}"`,
1506
+ componentId: profile.id,
1507
+ });
1508
+ }
1509
+ simulationProfileIds.add(profile.id);
1510
+ issues.push(...validateSimulationProfile(profile, partProfileIds));
1511
+ }
1512
+ return issues;
1513
+ }
1514
+ function validateKnownPhysicalProfile(profile) {
1515
+ switch (profile.profileSchema) {
1516
+ case "speaker-driver-profile/v1":
1517
+ return validatePositiveDataNumbers(profile, profile.id, [
1518
+ ["smallSignal", "nominalImpedanceOhms"],
1519
+ ["smallSignal", "reOhms"],
1520
+ ["smallSignal", "leHenries"],
1521
+ ["smallSignal", "fsHz"],
1522
+ ["smallSignal", "qms"],
1523
+ ["smallSignal", "qes"],
1524
+ ["smallSignal", "qts"],
1525
+ ["smallSignal", "vasM3"],
1526
+ ["smallSignal", "mmsKg"],
1527
+ ["smallSignal", "cmsMetersPerNewton"],
1528
+ ["smallSignal", "rmsKgPerSecond"],
1529
+ ["smallSignal", "blTeslaMeters"],
1530
+ ["geometry", "radiatingAreaM2"],
1531
+ ["geometry", "xmaxM"],
1532
+ ]);
1533
+ case "cabinet-enclosure-profile/v1":
1534
+ return [
1535
+ ...validatePositiveDataNumbers(profile, profile.id, [
1536
+ ["enclosure", "netVolumeM3"],
1537
+ ["enclosure", "lossQ"],
1538
+ ]),
1539
+ ...validateCabinetNestedQuantities(profile),
1540
+ ];
1541
+ case "microphone-transducer-profile/v1":
1542
+ return validatePositiveDataNumbers(profile, profile.id, [
1543
+ ["electrical", "nominalImpedanceOhms"],
1544
+ ]);
1545
+ default:
1546
+ return [];
1547
+ }
1548
+ }
1549
+ function validateCabinetNestedQuantities(profile) {
1550
+ const issues = [];
1551
+ const enclosure = dataObject(profile, "enclosure");
1552
+ const dimensions = dataObject(enclosure, "dimensionsM");
1553
+ for (const key of ["width", "height", "depth"]) {
1554
+ const value = dataNumber(dimensions, key);
1555
+ if (value !== undefined && value <= 0) {
1556
+ issues.push(invalidProfileQuantity(profile.id, `enclosure.dimensionsM.${key}`));
1557
+ }
1558
+ }
1559
+ for (const [index, port] of dataObjectArray(enclosure, "ports").entries()) {
1560
+ for (const key of ["areaM2", "lengthM", "tuningHz"]) {
1561
+ const value = dataNumber(port, key);
1562
+ if (value !== undefined && value <= 0) {
1563
+ issues.push(invalidProfileQuantity(profile.id, `enclosure.ports[${index}].${key}`));
1564
+ }
1565
+ }
1566
+ }
1567
+ for (const [index, loadout] of dataObjectArray(profile, "loadout").entries()) {
1568
+ const count = dataNumber(loadout, "count");
1569
+ if (count !== undefined && (!Number.isInteger(count) || count <= 0)) {
1570
+ issues.push(invalidProfileQuantity(profile.id, `loadout[${index}].count`));
1571
+ }
1572
+ }
1573
+ return issues;
1574
+ }
1575
+ function validateSimulationProfile(profile, partProfileIds) {
1576
+ const issues = [];
1577
+ for (const targetProfileId of profile.targetProfileIds) {
1578
+ if (!partProfileIds.has(targetProfileId)) {
1579
+ issues.push(unresolvedIssue("simulation-profile-reference-unresolved", "error", `Simulation profile "${profile.id}" references missing target profile "${targetProfileId}"`, profile.id, "targetProfileIds"));
1580
+ }
1581
+ }
1582
+ return issues;
1583
+ }
1584
+ function validatePositiveDataNumbers(profile, profileId, paths) {
1585
+ const issues = [];
1586
+ for (const [objectKey, valueKey] of paths) {
1587
+ const value = dataNumber(dataObject(profile, objectKey), valueKey);
1588
+ if (value !== undefined && value <= 0) {
1589
+ issues.push(invalidProfileQuantity(profileId, `${objectKey}.${valueKey}`));
1590
+ }
1591
+ }
1592
+ return issues;
1593
+ }
1594
+ function invalidProfileQuantity(profileId, property) {
1595
+ return {
1596
+ code: "part-profile-quantity-invalid",
1597
+ severity: "error",
1598
+ message: `Part profile "${profileId}" has invalid non-positive quantity "${property}"`,
1599
+ componentId: profileId,
1600
+ property,
1601
+ };
1602
+ }
1461
1603
  function validateCircuitPower(doc, componentIds) {
1462
1604
  const power = doc.power;
1463
1605
  if (power === undefined) {
@@ -1466,6 +1608,8 @@ function validateCircuitPower(doc, componentIds) {
1466
1608
  const issues = [];
1467
1609
  const domainIds = new Set();
1468
1610
  const railOwners = new Map();
1611
+ const converterRoleOwners = new Map();
1612
+ const componentsById = new Map(doc.components.map((component) => [component.id, component]));
1469
1613
  const expectsDomains = power.coverage === "explicit-topology" ||
1470
1614
  power.coverage === "declared-rails";
1471
1615
  if (!expectsDomains && power.domains.length > 0) {
@@ -1510,9 +1654,75 @@ function validateCircuitPower(doc, componentIds) {
1510
1654
  !railsById.has(rail.parentRailComponentId)) {
1511
1655
  issues.push(unresolvedIssue("power-rail-parent-unresolved", "error", `Rail "${rail.railComponentId}" parentRailComponentId references a rail not declared in domain "${domain.id}"`, rail.parentRailComponentId, "parentRailComponentId"));
1512
1656
  }
1513
- if (rail.converterComponentId !== undefined &&
1514
- !componentIds.has(rail.converterComponentId)) {
1515
- issues.push(unresolvedIssue("power-rail-unresolved", "error", `Rail "${rail.railComponentId}" converterComponentId references missing component "${rail.converterComponentId}"`, rail.converterComponentId, "converterComponentId"));
1657
+ const isChargePumpDerivation = rail.derivation === "doubler" || rail.derivation === "inverter";
1658
+ if (rail.converterComponentId === undefined) {
1659
+ if (isChargePumpDerivation) {
1660
+ issues.push({
1661
+ code: "power-rail-converter-required",
1662
+ severity: "error",
1663
+ message: `Rail "${rail.railComponentId}" derivation "${rail.derivation}" requires converterComponentId`,
1664
+ componentId: rail.railComponentId,
1665
+ });
1666
+ }
1667
+ }
1668
+ else {
1669
+ const converterComponent = componentsById.get(rail.converterComponentId);
1670
+ if (converterComponent === undefined) {
1671
+ issues.push(unresolvedIssue("power-rail-unresolved", "error", `Rail "${rail.railComponentId}" converterComponentId references missing component "${rail.converterComponentId}"`, rail.converterComponentId, "converterComponentId"));
1672
+ }
1673
+ else if (converterComponent.kind !== "power-converter") {
1674
+ issues.push({
1675
+ code: "power-rail-converter-invalid-kind",
1676
+ severity: "error",
1677
+ message: `Rail "${rail.railComponentId}" converterComponentId "${rail.converterComponentId}" references a "${converterComponent.kind}" component, not a power-converter`,
1678
+ componentId: rail.converterComponentId,
1679
+ });
1680
+ }
1681
+ const converterRoleKey = `${rail.converterComponentId}::${rail.role}`;
1682
+ const existingConverterRoleOwner = converterRoleOwners.get(converterRoleKey);
1683
+ if (existingConverterRoleOwner !== undefined &&
1684
+ existingConverterRoleOwner !== rail.railComponentId) {
1685
+ issues.push({
1686
+ code: "power-rail-duplicate-converter-role",
1687
+ severity: "error",
1688
+ message: `Converter "${rail.converterComponentId}" already has a rail with role "${rail.role}" (rail "${existingConverterRoleOwner}"); rail "${rail.railComponentId}" duplicates it`,
1689
+ componentId: rail.railComponentId,
1690
+ });
1691
+ }
1692
+ converterRoleOwners.set(converterRoleKey, rail.railComponentId);
1693
+ }
1694
+ if (rail.role === "main-supply" && rail.derivation !== "direct") {
1695
+ issues.push({
1696
+ code: "power-rail-role-derivation-mismatch",
1697
+ severity: "error",
1698
+ message: `Rail "${rail.railComponentId}" role "main-supply" is incompatible with derivation "${rail.derivation}"`,
1699
+ componentId: rail.railComponentId,
1700
+ });
1701
+ }
1702
+ if (rail.role === "regulated-output" &&
1703
+ rail.derivation !== "regulator") {
1704
+ issues.push({
1705
+ code: "power-rail-role-derivation-mismatch",
1706
+ severity: "error",
1707
+ message: `Rail "${rail.railComponentId}" role "regulated-output" is incompatible with derivation "${rail.derivation}"`,
1708
+ componentId: rail.railComponentId,
1709
+ });
1710
+ }
1711
+ if (rail.role === "charge-pump-output" && !isChargePumpDerivation) {
1712
+ issues.push({
1713
+ code: "power-rail-role-derivation-mismatch",
1714
+ severity: "error",
1715
+ message: `Rail "${rail.railComponentId}" role "charge-pump-output" is incompatible with derivation "${rail.derivation}"`,
1716
+ componentId: rail.railComponentId,
1717
+ });
1718
+ }
1719
+ if (isChargePumpDerivation && rail.nominalVoltage === undefined) {
1720
+ issues.push({
1721
+ code: "power-rail-missing-nominal-voltage",
1722
+ severity: "warning",
1723
+ message: `Rail "${rail.railComponentId}" derivation "${rail.derivation}" has no nominalVoltage`,
1724
+ componentId: rail.railComponentId,
1725
+ });
1516
1726
  }
1517
1727
  }
1518
1728
  const reportedCycleMembers = new Set();
@@ -1550,12 +1760,31 @@ function findPowerRailParentCycle(start, railsById) {
1550
1760
  }
1551
1761
  return undefined;
1552
1762
  }
1763
+ function validatePowerConverterComponents(doc) {
1764
+ const issues = [];
1765
+ for (const component of doc.components) {
1766
+ if (component.kind !== "power-converter") {
1767
+ continue;
1768
+ }
1769
+ const hasPartNumber = MODEL_ALIASES.some((alias) => propertyStringValue(component.properties[alias]) !== null);
1770
+ if (!hasPartNumber) {
1771
+ issues.push({
1772
+ code: "power-converter-missing-part-number",
1773
+ severity: "warning",
1774
+ message: `Component "${component.id}" is a power-converter with no PartNumber`,
1775
+ componentId: component.id,
1776
+ });
1777
+ }
1778
+ }
1779
+ return issues;
1780
+ }
1553
1781
  function hasV3BuildMetadata(doc) {
1554
1782
  return (doc.appearance !== undefined ||
1555
1783
  doc.mechanical !== undefined ||
1556
1784
  doc.build !== undefined ||
1557
1785
  doc.bom !== undefined ||
1558
1786
  doc.partProfiles !== undefined ||
1787
+ doc.simulationProfiles !== undefined ||
1559
1788
  doc.footprints !== undefined ||
1560
1789
  doc.offBoardWiring !== undefined ||
1561
1790
  doc.boards !== undefined ||
@@ -1797,10 +2026,18 @@ function dataString(object, key) {
1797
2026
  const value = object?.[key];
1798
2027
  return typeof value === "string" ? value : undefined;
1799
2028
  }
2029
+ function dataNumber(object, key) {
2030
+ const value = object?.[key];
2031
+ return typeof value === "number" ? value : undefined;
2032
+ }
1800
2033
  function dataObject(object, key) {
1801
2034
  const value = object?.[key];
1802
2035
  return isBuildDataObject(value) ? value : undefined;
1803
2036
  }
2037
+ function dataObjectArray(object, key) {
2038
+ const value = object?.[key];
2039
+ return Array.isArray(value) ? value.filter(isBuildDataObject) : [];
2040
+ }
1804
2041
  function isBuildDataObject(value) {
1805
2042
  return typeof value === "object" && value !== null && !Array.isArray(value);
1806
2043
  }