altium-toolkit 1.1.41 → 1.2.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 (58) hide show
  1. package/README.md +113 -19
  2. package/docs/api.md +224 -18
  3. package/docs/capabilities.md +65 -0
  4. package/docs/migration/legacy-001.md +309 -0
  5. package/docs/migration/legacy-002.md +309 -0
  6. package/docs/migration/legacy-003.md +309 -0
  7. package/docs/migration/legacy-004.md +309 -0
  8. package/docs/migration/legacy-005.md +111 -0
  9. package/docs/migration.md +20 -0
  10. package/docs/model-format.md +28 -3
  11. package/docs/release-notes-v1.2.0.md +147 -0
  12. package/docs/testing.md +43 -1
  13. package/examples/arduino-uno/PcbThreeSceneRenderer.mjs +1 -1
  14. package/examples/arduino-uno/example.mjs +1 -1
  15. package/examples/cli-utils.mjs +1 -1
  16. package/examples/corpus-smoke.mjs +1 -1
  17. package/examples/inspect-board.mjs +1 -1
  18. package/examples/library-catalog.mjs +1 -1
  19. package/examples/validate-library.mjs +1 -1
  20. package/package.json +20 -5
  21. package/spec/api-baseline-v1.1.41.json +1 -0
  22. package/spec/asset-baseline-v1.1.41.json +1 -0
  23. package/spec/feature-preservation.json +1 -0
  24. package/spec/library-scope.md +14 -4
  25. package/spec/native-source-manifest-v1.1.41.json +1 -0
  26. package/src/capabilities.mjs +4 -0
  27. package/src/convergence/AltiumCircuitJsonProjection.mjs +230 -0
  28. package/src/convergence/AltiumDocumentBuilder.mjs +167 -0
  29. package/src/convergence/AltiumExtensionResolver.mjs +98 -0
  30. package/src/convergence/AltiumProjectDocumentResolver.mjs +324 -0
  31. package/src/convergence/AltiumSchematicCoordinateProjection.mjs +130 -0
  32. package/src/convergence/AltiumWorkerClient.mjs +95 -0
  33. package/src/convergence/Parser.mjs +285 -0
  34. package/src/convergence/ParserInput.mjs +282 -0
  35. package/src/convergence/ProjectLoader.mjs +916 -0
  36. package/src/convergence/SchematicSvgRenderer.mjs +126 -0
  37. package/src/convergence/ToolkitCapabilities.mjs +49 -0
  38. package/src/core/circuit-json/CircuitJsonSchematicDocumentGraphicBuilder.mjs +785 -0
  39. package/src/core/circuit-json/CircuitJsonSchematicGraphicBuilder.mjs +909 -0
  40. package/src/core/circuit-json/CircuitJsonSchematicImageProjection.mjs +277 -0
  41. package/src/core/circuit-json/CircuitJsonSchematicStrokeStyle.mjs +47 -0
  42. package/src/extensions.mjs +11 -0
  43. package/src/index.mjs +20 -4
  44. package/src/interaction.mjs +7 -0
  45. package/src/legacy-netlist-query.mjs +11 -0
  46. package/src/legacy-parser.mjs +141 -0
  47. package/src/legacy-renderers.mjs +25 -0
  48. package/src/legacy-scene3d.mjs +10 -0
  49. package/src/manufacturing.mjs +4 -0
  50. package/src/parser.mjs +12 -138
  51. package/src/project.mjs +11 -0
  52. package/src/query.mjs +4 -0
  53. package/src/renderers.mjs +4 -22
  54. package/src/scene3d.mjs +5 -8
  55. package/src/simulation.mjs +4 -0
  56. package/src/styles/renderers.css +27 -0
  57. package/src/testing.mjs +8 -0
  58. package/src/workers/parser.worker.mjs +37 -0
package/src/parser.mjs CHANGED
@@ -1,142 +1,16 @@
1
1
  // SPDX-FileCopyrightText: 2026 André Fiedler
2
- //
3
2
  // SPDX-License-Identifier: GPL-3.0-or-later
4
3
 
5
- export { BinaryReader, BinaryReaderCursor } from './core/BinaryReader.mjs'
6
- export { OleCompoundDocument } from './core/ole/OleCompoundDocument.mjs'
7
- export { OleConstants } from './core/ole/OleConstants.mjs'
8
- export { OleDirectoryEntry } from './core/ole/OleDirectoryEntry.mjs'
9
- export { OleCompoundDocumentWriter } from './core/ole/OleCompoundDocumentWriter.mjs'
10
- export { AltiumLibraryBatchExporter } from './core/altium/AltiumLibraryBatchExporter.mjs'
11
- export { AltiumLibraryRecordBuilder } from './core/altium/AltiumLibraryRecordBuilder.mjs'
12
- export { AltiumPcbLibExporter } from './core/altium/AltiumPcbLibExporter.mjs'
13
- export { AltiumSchLibExporter } from './core/altium/AltiumSchLibExporter.mjs'
14
- export { SelectedPartAltiumExportAdapter } from './core/altium/SelectedPartAltiumExportAdapter.mjs'
15
- export { AltiumUnits } from './core/altium/AltiumUnits.mjs'
16
- export { SourceBundleExporter } from './core/altium/SourceBundleExporter.mjs'
17
- export { SourceComponentBundleNormalizer } from './core/altium/SourceComponentBundleNormalizer.mjs'
18
- export { SourceComponentClient } from './core/altium/SourceComponentClient.mjs'
19
- export { AltiumParser } from './core/altium/AltiumParser.mjs'
20
- export { AltiumSchematicArcAngleNormalizer } from './core/altium/AltiumSchematicArcAngleNormalizer.mjs'
21
- export { AltiumSchematicFreeGraphicStrokeNormalizer } from './core/altium/AltiumSchematicFreeGraphicStrokeNormalizer.mjs'
22
- export { AltiumSchematicHiddenDesignatorResolver } from './core/altium/AltiumSchematicHiddenDesignatorResolver.mjs'
23
- export { AltiumSchematicPackedImageResolver } from './core/altium/AltiumSchematicPackedImageResolver.mjs'
24
- export { AltiumSchematicSheetBoundsNormalizer } from './core/altium/AltiumSchematicSheetBoundsNormalizer.mjs'
25
- export { AltiumLayoutParser } from './core/altium/AltiumLayoutParser.mjs'
26
- export { AsciiRecordParser } from './core/altium/AsciiRecordParser.mjs'
27
- export { HostCapabilityDiagnosticsBuilder } from './core/altium/HostCapabilityDiagnosticsBuilder.mjs'
28
- export { IntLibModelParser } from './core/altium/IntLibModelParser.mjs'
29
- export { IntLibStreamExtractor } from './core/altium/IntLibStreamExtractor.mjs'
30
- export { EmbeddedAssetReportBuilder } from './core/altium/EmbeddedAssetReportBuilder.mjs'
31
- export { EmbeddedFileInventoryBuilder } from './core/altium/EmbeddedFileInventoryBuilder.mjs'
32
- export { FixtureCoverageMatrixBuilder } from './core/altium/FixtureCoverageMatrixBuilder.mjs'
33
- export { GeometryBoundsReportBuilder } from './core/altium/GeometryBoundsReportBuilder.mjs'
34
4
  export {
35
- ParameterCollection,
36
- ParameterValue
37
- } from './core/altium/ParameterCollection.mjs'
38
- export {
39
- AltiumFileError,
40
- AltiumParseError,
41
- AltiumCorruptFileError,
42
- AltiumUnsupportedFeatureError
43
- } from './core/altium/ParserErrors.mjs'
44
- export { CiArtifactBundleBuilder } from './core/altium/CiArtifactBundleBuilder.mjs'
45
- export { ContractGateReportBuilder } from './core/altium/ContractGateReportBuilder.mjs'
46
- export { DraftsmanBoardViewMetadataBuilder } from './core/altium/DraftsmanBoardViewMetadataBuilder.mjs'
47
- export { DraftsmanDigestParser } from './core/altium/DraftsmanDigestParser.mjs'
48
- export { LibraryRenderManifestBuilder } from './core/altium/LibraryRenderManifestBuilder.mjs'
49
- export { LibraryCatalogArtifactBuilder } from './core/altium/LibraryCatalogArtifactBuilder.mjs'
50
- export { LibraryCompatibilityReportBuilder } from './core/altium/LibraryCompatibilityReportBuilder.mjs'
51
- export { LibraryDiffReportBuilder } from './core/altium/LibraryDiffReportBuilder.mjs'
52
- export { LibraryInspectionReportBuilder } from './core/altium/LibraryInspectionReportBuilder.mjs'
53
- export { LibraryQaReportBuilder } from './core/altium/LibraryQaReportBuilder.mjs'
54
- export { LibrarySearchIndex } from './core/altium/LibrarySearchIndex.mjs'
55
- export { NativeStreamInventoryBuilder } from './core/altium/NativeStreamInventoryBuilder.mjs'
56
- export { ParserUtils } from './core/altium/ParserUtils.mjs'
57
- export { ParameterRecordInventoryBuilder } from './core/altium/ParameterRecordInventoryBuilder.mjs'
58
- export { ParserCompatibilityFuzzer } from './core/altium/ParserCompatibilityFuzzer.mjs'
59
- export { ParserDiagnosticNormalizer } from './core/altium/ParserDiagnosticNormalizer.mjs'
60
- export { ParserFieldCoverageReportBuilder } from './core/altium/ParserFieldCoverageReportBuilder.mjs'
61
- export { ParserValueVerificationReportBuilder } from './core/altium/ParserValueVerificationReportBuilder.mjs'
62
- export { NormalizedModelSchema } from './core/altium/NormalizedModelSchema.mjs'
63
- export { ProjectDesignBundleBuilder } from './core/altium/ProjectDesignBundleBuilder.mjs'
64
- export { ProjectDocumentGraphBuilder } from './core/altium/ProjectDocumentGraphBuilder.mjs'
65
- export { ProjectHierarchyReportBuilder } from './core/altium/ProjectHierarchyReportBuilder.mjs'
66
- export { ProjectAnnotationParser } from './core/altium/ProjectAnnotationParser.mjs'
67
- export { ProjectNetlistExporter } from './core/altium/ProjectNetlistExporter.mjs'
68
- export { ProjectVariantViewBuilder } from './core/altium/ProjectVariantViewBuilder.mjs'
69
- export { CircuitJsonModelSchema } from './core/circuit-json/CircuitJsonModelSchema.mjs'
70
- export { CircuitJsonModelAdapter } from './core/circuit-json/CircuitJsonModelAdapter.mjs'
71
- export { PcbBinaryPrimitiveParser } from './core/altium/PcbBinaryPrimitiveParser.mjs'
72
- export { PcbBomProfileBuilder } from './core/altium/PcbBomProfileBuilder.mjs'
73
- export { PcbBoardRegionSemanticsParser } from './core/altium/PcbBoardRegionSemanticsParser.mjs'
74
- export { PcbComponentKindPolicy } from './core/altium/PcbComponentKindPolicy.mjs'
75
- export { PcbComponentPrimitiveIndexer } from './core/altium/PcbComponentPrimitiveIndexer.mjs'
76
- export { PcbCustomPadShapeParser } from './core/altium/PcbCustomPadShapeParser.mjs'
77
- export { PcbDimensionParser } from './core/altium/PcbDimensionParser.mjs'
78
- export { PcbDimensionReportBuilder } from './core/altium/PcbDimensionReportBuilder.mjs'
79
- export { PcbEmbeddedFontExtractor } from './core/altium/PcbEmbeddedFontExtractor.mjs'
80
- export { PcbEmbeddedModelExtractor } from './core/altium/PcbEmbeddedModelExtractor.mjs'
81
- export { PcbExtendedPrimitiveInformationParser } from './core/altium/PcbExtendedPrimitiveInformationParser.mjs'
82
- export { PcbFabricationReadinessReportBuilder } from './core/altium/PcbFabricationReadinessReportBuilder.mjs'
83
- export { PcbFontMetricsParser } from './core/altium/PcbFontMetricsParser.mjs'
84
- export { PcbLayerIdCodec } from './core/altium/PcbLayerIdCodec.mjs'
85
- export { PcbLayerGroups } from './core/altium/PcbLayerGroups.mjs'
86
- export { PcbLayerStackFidelityReportBuilder } from './core/altium/PcbLayerStackFidelityReportBuilder.mjs'
87
- export { PcbLayerStackInterchangeParser } from './core/altium/PcbLayerStackInterchangeParser.mjs'
88
- export { PcbLayerStackQueryHelper } from './core/altium/PcbLayerStackQueryHelper.mjs'
89
- export { PcbLibModelParser } from './core/altium/PcbLibModelParser.mjs'
90
- export { PcbLibParityReportBuilder } from './core/altium/PcbLibParityReportBuilder.mjs'
91
- export { PcbLibStreamExtractor } from './core/altium/PcbLibStreamExtractor.mjs'
92
- export { PcbMechanicalLayerPairParser } from './core/altium/PcbMechanicalLayerPairParser.mjs'
93
- export { PcbModelParser } from './core/altium/PcbModelParser.mjs'
94
- export { PcbOutlineRasterizer } from './core/altium/PcbOutlineRasterizer.mjs'
95
- export { PcbOutlineRecovery } from './core/altium/PcbOutlineRecovery.mjs'
96
- export { PcbOwnershipGraphBuilder } from './core/altium/PcbOwnershipGraphBuilder.mjs'
97
- export { PcbPadStackParser } from './core/altium/PcbPadStackParser.mjs'
98
- export { PcbPlacedFootprintManifestBuilder } from './core/altium/PcbPlacedFootprintManifestBuilder.mjs'
99
- export { PcbPickPlacePositionResolver } from './core/altium/PcbPickPlacePositionResolver.mjs'
100
- export { PcbPolygonRecordParser } from './core/altium/PcbPolygonRecordParser.mjs'
101
- export { PcbPrimitiveFieldOffsetReportBuilder } from './core/altium/PcbPrimitiveFieldOffsetReportBuilder.mjs'
102
- export { PcbRawRecordRegistry } from './core/altium/PcbRawRecordRegistry.mjs'
103
- export { PcbReviewMetadataBuilder } from './core/altium/PcbReviewMetadataBuilder.mjs'
104
- export { PcbReviewPolygonRealizationBuilder } from './core/altium/PcbReviewPolygonRealizationBuilder.mjs'
105
- export { PcbClassReportBuilder } from './core/altium/PcbClassReportBuilder.mjs'
106
- export { PcbInspectionReportBuilder } from './core/altium/PcbInspectionReportBuilder.mjs'
107
- export { PcbNetMembershipReportBuilder } from './core/altium/PcbNetMembershipReportBuilder.mjs'
108
- export { PcbRouteAnalysisBuilder } from './core/altium/PcbRouteAnalysisBuilder.mjs'
109
- export { PcbRuleImpactReportBuilder } from './core/altium/PcbRuleImpactReportBuilder.mjs'
110
- export { PcbRuleParser } from './core/altium/PcbRuleParser.mjs'
111
- export { PcbSidecarRecordParser } from './core/altium/PcbSidecarRecordParser.mjs'
112
- export { PcbSpecialStringResolver } from './core/altium/PcbSpecialStringResolver.mjs'
113
- export { PcbStatisticsBuilder } from './core/altium/PcbStatisticsBuilder.mjs'
114
- export { PcbStreamExtractor } from './core/altium/PcbStreamExtractor.mjs'
115
- export { PcbUnionParser } from './core/altium/PcbUnionParser.mjs'
116
- export { PcbViaStackParser } from './core/altium/PcbViaStackParser.mjs'
117
- export { PcbViaStructureParser } from './core/altium/PcbViaStructureParser.mjs'
118
- export { PrintableTextDecoder } from './core/altium/PrintableTextDecoder.mjs'
119
- export { PrjPcbModelParser } from './core/altium/PrjPcbModelParser.mjs'
120
- export { PrjScrModelParser } from './core/altium/PrjScrModelParser.mjs'
121
- export { ProjectBomPnpReconciliationBuilder } from './core/altium/ProjectBomPnpReconciliationBuilder.mjs'
122
- export { RawDataPreservationReportBuilder } from './core/altium/RawDataPreservationReportBuilder.mjs'
123
- export { SchLibModelParser } from './core/altium/SchLibModelParser.mjs'
124
- export { SchLibStreamExtractor } from './core/altium/SchLibStreamExtractor.mjs'
125
- export { SchematicMultipartOwnerMatcher } from './core/altium/SchematicMultipartOwnerMatcher.mjs'
126
- export { SchematicCrossSheetConnectorParser } from './core/altium/SchematicCrossSheetConnectorParser.mjs'
127
- export { SchematicCodeSymbolParser } from './core/altium/SchematicCodeSymbolParser.mjs'
128
- export { SchematicConnectivityQaBuilder } from './core/altium/SchematicConnectivityQaBuilder.mjs'
129
- export { SchematicHarnessParser } from './core/altium/SchematicHarnessParser.mjs'
130
- export { SchematicImplementationParser } from './core/altium/SchematicImplementationParser.mjs'
131
- export { SchematicImageDiagnosticsBuilder } from './core/altium/SchematicImageDiagnosticsBuilder.mjs'
132
- export { SchematicOwnershipGraphParser } from './core/altium/SchematicOwnershipGraphParser.mjs'
133
- export { SchematicProjectParameterResolver } from './core/altium/SchematicProjectParameterResolver.mjs'
134
- export { SchematicQaReportBuilder } from './core/altium/SchematicQaReportBuilder.mjs'
135
- export { SchematicRecordStreamParser } from './core/altium/SchematicRecordStreamParser.mjs'
136
- export { SchematicRecordTypeRegistry } from './core/altium/SchematicRecordTypeRegistry.mjs'
137
- export { SchematicRepeatedChannelParser } from './core/altium/SchematicRepeatedChannelParser.mjs'
138
- export { SchematicTemplateParser } from './core/altium/SchematicTemplateParser.mjs'
139
- export { UnsupportedFeatureReportBuilder } from './core/altium/UnsupportedFeatureReportBuilder.mjs'
140
- export { SchematicTextRunParser } from './core/altium/SchematicTextRunParser.mjs'
141
- export { SchematicStandaloneCalloutNormalizer } from './core/altium/SchematicStandaloneCalloutNormalizer.mjs'
142
- export { SvgModelCrossLinkValidator } from './core/altium/SvgModelCrossLinkValidator.mjs'
5
+ CircuitJsonDocumentContext,
6
+ DocumentResult,
7
+ ParserWorkerClient,
8
+ ToolkitAsset,
9
+ ToolkitDiagnostic,
10
+ ToolkitError,
11
+ ToolkitProgress,
12
+ TOOLKIT_WORKER_PROTOCOL,
13
+ ToolkitWorkerProtocol
14
+ } from 'circuitjson-toolkit/parser'
15
+
16
+ export { Parser } from './convergence/Parser.mjs'
@@ -0,0 +1,11 @@
1
+ // SPDX-FileCopyrightText: 2026 André Fiedler
2
+ // SPDX-License-Identifier: GPL-3.0-or-later
3
+
4
+ export {
5
+ ArchiveEntryPath,
6
+ ArchiveLimits,
7
+ ProjectResult,
8
+ ZipArchiveInspector
9
+ } from 'circuitjson-toolkit/project'
10
+
11
+ export { ProjectLoader } from './convergence/ProjectLoader.mjs'
package/src/query.mjs ADDED
@@ -0,0 +1,4 @@
1
+ // SPDX-FileCopyrightText: 2026 André Fiedler
2
+ // SPDX-License-Identifier: GPL-3.0-or-later
3
+
4
+ export { QueryService } from 'circuitjson-toolkit/query'
package/src/renderers.mjs CHANGED
@@ -1,26 +1,8 @@
1
1
  // SPDX-FileCopyrightText: 2026 André Fiedler
2
- //
3
2
  // SPDX-License-Identifier: GPL-3.0-or-later
4
3
 
5
- export { BomTableRenderer } from './ui/BomTableRenderer.mjs'
6
- export { AltiumPcbBottomViewMirror } from './ui/AltiumPcbBottomViewMirror.mjs'
7
- export { PcbArcUtils } from './ui/PcbArcUtils.mjs'
8
- export { PcbEdgeFacingGlyphNormalizer } from './ui/PcbEdgeFacingGlyphNormalizer.mjs'
9
- export { PcbFootprintPrimitiveSelector } from './ui/PcbFootprintPrimitiveSelector.mjs'
10
- export { PcbFootprintPadAxisNormalizer } from './ui/PcbFootprintPadAxisNormalizer.mjs'
11
- export { PcbInteractionIndex } from './ui/PcbInteractionIndex.mjs'
12
- export { PcbInteractionItemRegistry } from './ui/PcbInteractionItemRegistry.mjs'
13
- export { PcbInteractionLayerModel } from './ui/PcbInteractionLayerModel.mjs'
14
- export { PcbLayerGroups } from './core/altium/PcbLayerGroups.mjs'
15
4
  export {
16
- PcbSideResolvedRenderModel,
17
- isCopperPrimitive,
18
- preparePcbSideResolvedRenderModel
19
- } from './ui/PcbSideResolvedRenderModel.mjs'
20
- export { PcbSvgRenderer } from './ui/PcbSvgRenderer.mjs'
21
- export { SchematicColorResolver } from './ui/SchematicColorResolver.mjs'
22
- export { SchematicContentLayout } from './ui/SchematicContentLayout.mjs'
23
- export { SchematicOwnerPinLabelLayout } from './ui/SchematicOwnerPinLabelLayout.mjs'
24
- export { SchematicSvgRenderer } from './ui/SchematicSvgRenderer.mjs'
25
- export { SchematicSvgUtils } from './ui/SchematicSvgUtils.mjs'
26
- export { SchematicTypography } from './ui/SchematicTypography.mjs'
5
+ BomTableRenderer,
6
+ PcbSvgRenderer,
7
+ SchematicSvgRenderer
8
+ } from 'circuitjson-toolkit/renderers'
package/src/scene3d.mjs CHANGED
@@ -1,11 +1,8 @@
1
1
  // SPDX-FileCopyrightText: 2026 André Fiedler
2
- //
3
2
  // SPDX-License-Identifier: GPL-3.0-or-later
4
3
 
5
- export { PcbScene3dBuilder } from './ui/PcbScene3dBuilder.mjs'
6
- export { AltiumScene3dAuthoredBodyAnchorAdapter } from './ui/AltiumScene3dAuthoredBodyAnchorAdapter.mjs'
7
- export { PcbScene3dModelRegistry } from './ui/PcbScene3dModelRegistry.mjs'
8
- export { PcbScene3dPackages } from './ui/PcbScene3dPackages.mjs'
9
- export { PcbScene3dScenePreparator } from './ui/PcbScene3dScenePreparator.mjs'
10
- export { PcbScene3dSummaryRenderer } from './ui/PcbScene3dSummaryRenderer.mjs'
11
- export { PcbScene3dTextBoxLayoutResolver } from './ui/PcbScene3dTextBoxLayoutResolver.mjs'
4
+ export {
5
+ PcbScene3dBuilder,
6
+ PcbScene3dPreparator,
7
+ SceneAssetResolver
8
+ } from 'circuitjson-toolkit/scene3d'
@@ -0,0 +1,4 @@
1
+ // SPDX-FileCopyrightText: 2026 André Fiedler
2
+ // SPDX-License-Identifier: GPL-3.0-or-later
3
+
4
+ export { SimulationService } from 'circuitjson-toolkit/simulation'
@@ -0,0 +1,27 @@
1
+ /* SPDX-FileCopyrightText: 2026 André Fiedler */
2
+ /* SPDX-License-Identifier: GPL-3.0-or-later */
3
+
4
+ .pcb-svg,
5
+ .schematic-svg {
6
+ display: block;
7
+ width: 100%;
8
+ max-width: 100%;
9
+ height: auto;
10
+ }
11
+
12
+ .pcb-svg text,
13
+ .schematic-svg text {
14
+ font-family: ui-sans-serif, system-ui, sans-serif;
15
+ }
16
+
17
+ .bom-table {
18
+ width: 100%;
19
+ border-collapse: collapse;
20
+ }
21
+
22
+ .bom-table th,
23
+ .bom-table td {
24
+ padding: 0.35rem 0.5rem;
25
+ border: 1px solid currentColor;
26
+ text-align: left;
27
+ }
@@ -0,0 +1,8 @@
1
+ // SPDX-FileCopyrightText: 2026 André Fiedler
2
+ // SPDX-License-Identifier: GPL-3.0-or-later
3
+
4
+ export {
5
+ ToolkitContractFixtures,
6
+ ToolkitLoopbackWorker,
7
+ runToolkitContract
8
+ } from 'circuitjson-toolkit/testing'
@@ -0,0 +1,37 @@
1
+ // SPDX-FileCopyrightText: 2026 André Fiedler
2
+ // SPDX-License-Identifier: GPL-3.0-or-later
3
+
4
+ import { ToolkitWorkerProtocol } from 'circuitjson-toolkit/parser'
5
+
6
+ import { Parser } from '../convergence/Parser.mjs'
7
+ import { ProjectLoader } from '../convergence/ProjectLoader.mjs'
8
+
9
+ ToolkitWorkerProtocol.install(self, {
10
+ /**
11
+ * Parses one worker payload through the direct Altium path.
12
+ * @param {Record<string, any>} payload Protocol payload.
13
+ * @param {Record<string, any>} runtime Request runtime.
14
+ * @returns {Promise<Record<string, any>>} Canonical document.
15
+ */
16
+ parse: async (payload, runtime) =>
17
+ await Parser.parseAsync(payload.input, {
18
+ ...(payload.options || {}),
19
+ worker: false,
20
+ signal: runtime.signal,
21
+ onProgress: runtime.onProgress
22
+ }),
23
+
24
+ /**
25
+ * Loads one worker project through the direct Altium path.
26
+ * @param {Record<string, any>} payload Protocol payload.
27
+ * @param {Record<string, any>} runtime Request runtime.
28
+ * @returns {Promise<Record<string, any>>} Canonical project.
29
+ */
30
+ loadProject: async (payload, runtime) =>
31
+ await ProjectLoader.loadAsync(payload.entries, {
32
+ ...(payload.options || {}),
33
+ worker: false,
34
+ signal: runtime.signal,
35
+ onProgress: runtime.onProgress
36
+ })
37
+ })