altium-toolkit 1.0.10 → 1.1.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.
- package/docs/api.md +6 -2
- package/docs/model-format.md +29 -4
- package/docs/schemas/altium_toolkit/ci_artifact_bundle_a1.schema.json +4 -0
- package/docs/schemas/altium_toolkit/contract_gate_a1.schema.json +34 -0
- package/docs/schemas/altium_toolkit/draftsman_board_view_cache_a1.schema.json +115 -0
- package/docs/schemas/altium_toolkit/draftsman_digest_a1.schema.json +132 -1
- package/docs/schemas/altium_toolkit/host_capabilities_a1.schema.json +39 -0
- package/docs/schemas/altium_toolkit/library_merge_plan_a1.schema.json +56 -0
- package/docs/schemas/altium_toolkit/library_qa_a1.schema.json +70 -0
- package/docs/schemas/altium_toolkit/normalized_model_a1.schema.json +692 -2
- package/docs/schemas/altium_toolkit/pcb_bom_profile_a1.schema.json +48 -0
- package/docs/schemas/altium_toolkit/pcb_layer_stack_a1.schema.json +98 -0
- package/docs/schemas/altium_toolkit/pcb_layer_stack_fidelity_a1.schema.json +66 -0
- package/docs/schemas/altium_toolkit/pcb_placed_footprint_extraction_a1.schema.json +31 -0
- package/docs/schemas/altium_toolkit/pcb_review_metadata_a1.schema.json +62 -0
- package/docs/schemas/altium_toolkit/pcb_rigid_flex_topology_a1.schema.json +52 -0
- package/docs/schemas/altium_toolkit/pcblib_parity_a1.schema.json +24 -0
- package/docs/schemas/altium_toolkit/project_bom_pnp_reconciliation_a1.schema.json +63 -0
- package/docs/schemas/altium_toolkit/project_outjob_digest_a1.schema.json +46 -0
- package/docs/schemas/altium_toolkit/project_script_a1.schema.json +50 -0
- package/docs/schemas/altium_toolkit/schematic_render_ops_a1.schema.json +55 -0
- package/docs/schemas/altium_toolkit/schematic_template_extraction_a1.schema.json +37 -0
- package/package.json +1 -1
- package/src/core/altium/AltiumParser.mjs +7 -2
- package/src/core/altium/CiArtifactBundleBuilder.mjs +16 -5
- package/src/core/altium/ContractGateReportBuilder.mjs +351 -0
- package/src/core/altium/DraftsmanBoardViewMetadataBuilder.mjs +653 -0
- package/src/core/altium/DraftsmanDigestParser.mjs +246 -7
- package/src/core/altium/DraftsmanImagePayloadManifestBuilder.mjs +178 -0
- package/src/core/altium/HostCapabilityDiagnosticsBuilder.mjs +271 -0
- package/src/core/altium/LibraryQaReportBuilder.mjs +504 -0
- package/src/core/altium/LibraryRenderManifestBuilder.mjs +172 -2
- package/src/core/altium/PcbBomProfileBuilder.mjs +263 -0
- package/src/core/altium/PcbComponentKindPolicy.mjs +146 -0
- package/src/core/altium/PcbLayerStackFidelityReportBuilder.mjs +141 -0
- package/src/core/altium/PcbLayerStackInterchangeParser.mjs +453 -0
- package/src/core/altium/PcbLayerStackQueryHelper.mjs +195 -0
- package/src/core/altium/PcbLayerStackReadModelBuilder.mjs +906 -0
- package/src/core/altium/PcbLayerStackSourceMetadataParser.mjs +488 -0
- package/src/core/altium/PcbLibModelParser.mjs +2 -0
- package/src/core/altium/PcbLibParityReportBuilder.mjs +242 -0
- package/src/core/altium/PcbModelParser.mjs +182 -18
- package/src/core/altium/PcbPickPlacePositionResolver.mjs +3 -0
- package/src/core/altium/PcbPlacedFootprintManifestBuilder.mjs +338 -0
- package/src/core/altium/PcbPolygonRecordParser.mjs +120 -0
- package/src/core/altium/PcbReviewDrillMetadataBuilder.mjs +301 -0
- package/src/core/altium/PcbReviewMetadataBuilder.mjs +373 -0
- package/src/core/altium/PcbReviewPolygonRealizationBuilder.mjs +269 -0
- package/src/core/altium/PcbReviewRouteHighlightProfileBuilder.mjs +298 -0
- package/src/core/altium/PcbRigidFlexTopologyBuilder.mjs +171 -0
- package/src/core/altium/PrintableTextDecoder.mjs +70 -6
- package/src/core/altium/PrjPcbModelParser.mjs +45 -0
- package/src/core/altium/PrjScrModelParser.mjs +386 -0
- package/src/core/altium/ProjectBomPnpReconciliationBuilder.mjs +237 -0
- package/src/core/altium/ProjectDesignBundleBuilder.mjs +61 -2
- package/src/core/altium/ProjectOutJobDigestBuilder.mjs +424 -13
- package/src/core/altium/SvgModelCrossLinkValidator.mjs +35 -2
- package/src/core/circuit-json/CircuitJsonModelAdapter.mjs +164 -0
- package/src/parser.mjs +15 -0
- package/src/ui/PcbFootprintPrimitiveSelector.mjs +13 -1
- package/src/ui/PcbScene3dBuilder.mjs +26 -4
- package/src/ui/SchematicRenderOpsSidecarBuilder.mjs +554 -0
- package/src/ui/SchematicSvgRenderer.mjs +48 -2
package/docs/api.md
CHANGED
|
@@ -65,8 +65,8 @@ Specialized parser helpers are exported for lower-level integrations, including
|
|
|
65
65
|
`PcbDimensionParser`, `PcbEmbeddedFontExtractor`,
|
|
66
66
|
`PcbExtendedPrimitiveInformationParser`, `PcbFontMetricsParser`,
|
|
67
67
|
`LibraryRenderManifestBuilder`, `LibrarySearchIndex`,
|
|
68
|
-
`
|
|
69
|
-
`PcbPickPlacePositionResolver`,
|
|
68
|
+
`PcbBomProfileBuilder`, `PcbLayerStackFidelityReportBuilder`,
|
|
69
|
+
`PcbOwnershipGraphBuilder`, `PcbPadStackParser`, `PcbPickPlacePositionResolver`,
|
|
70
70
|
`ProjectAnnotationParser`, `ProjectDesignBundleBuilder`,
|
|
71
71
|
`ProjectNetlistExporter`, `ProjectVariantViewBuilder`,
|
|
72
72
|
`PcbMechanicalLayerPairParser`, `PcbSpecialStringResolver`, `PcbUnionParser`,
|
|
@@ -101,6 +101,10 @@ embedded font payload and metric shape that `.PcbDoc` and `.PcbLib` parsing adds
|
|
|
101
101
|
to normalized models. `PcbRawRecordRegistry` exposes immutable primitive stream
|
|
102
102
|
descriptors and the raw-record preservation helpers used by the PcbDoc/PcbLib
|
|
103
103
|
extractors.
|
|
104
|
+
`PcbBomProfileBuilder` exposes PCB-only BOM grouping and parameter alias
|
|
105
|
+
normalization. `PcbLayerStackFidelityReportBuilder` classifies layer-stack
|
|
106
|
+
source evidence and unsupported native-regeneration limits for deterministic
|
|
107
|
+
QA/reporting.
|
|
104
108
|
`LibraryRenderManifestBuilder` and `LibrarySearchIndex` expose deterministic
|
|
105
109
|
SchLib/PcbLib render/export manifests plus exact, keyword, and fuzzy lookup
|
|
106
110
|
helpers. `PcbStatisticsBuilder` emits board QA summaries used by `.PcbDoc`
|
package/docs/model-format.md
CHANGED
|
@@ -17,11 +17,22 @@ Every parser result is an array of elements with a `type` field. The adapter
|
|
|
17
17
|
emits Circuit JSON elements for source project metadata, source components,
|
|
18
18
|
ports, nets, schematic symbols, schematic lines, schematic text, PCB boards,
|
|
19
19
|
PCB components, PCB pads, PCB traces, and PCB vias where those structures are
|
|
20
|
-
available in the source document.
|
|
20
|
+
available in the source document. Altium Toolkit sidecar contracts that do not
|
|
21
|
+
map to upstream Circuit JSON element families are serialized as custom
|
|
22
|
+
`altium_toolkit_*` elements. Each sidecar element includes a stable
|
|
23
|
+
`altium_toolkit_sidecar_id`, a `source_document` identity block, the sidecar
|
|
24
|
+
`schema`, and the original normalized sidecar object in `payload`.
|
|
25
|
+
|
|
26
|
+
Current custom sidecar element types include PCB layer stacks, rigid-flex
|
|
27
|
+
topology, PCB review metadata, placed-footprint extraction manifests, PCB
|
|
28
|
+
library parity reports, project OutJob digests, project document graphs,
|
|
29
|
+
BOM/PnP reconciliation reports, Draftsman image payloads, Draftsman board-view
|
|
30
|
+
metadata, contract-gate reports, and host-capability diagnostics.
|
|
21
31
|
|
|
22
32
|
Use `CircuitJsonModelSchema.isModel(result)` to validate that a value is a
|
|
23
33
|
Circuit JSON array. `JSON.stringify(result)` serializes only the Circuit JSON
|
|
24
|
-
elements
|
|
34
|
+
elements, including custom `altium_toolkit_*` sidecar elements; compatibility
|
|
35
|
+
fields are intentionally omitted from serialized JSON.
|
|
25
36
|
|
|
26
37
|
## Renderer Compatibility Fields
|
|
27
38
|
|
|
@@ -294,6 +305,12 @@ component bodies. `pcbLibrary.renderManifest` exposes stable footprint SVG keys,
|
|
|
294
305
|
per-layer SVG keys, layer descriptors, and embedded asset descriptors. Asset
|
|
295
306
|
descriptors may include native format, wrapper type, byte size, checksum, and
|
|
296
307
|
structured diagnostics when extraction supplied that metadata.
|
|
308
|
+
`LibraryRenderManifestBuilder.buildSchematicExtractionManifest()` adds a
|
|
309
|
+
read-only database-library audit plan for placed schematic symbols, including
|
|
310
|
+
preserved versus stripped parameter names and stripped implementation keys.
|
|
311
|
+
`LibraryRenderManifestBuilder.buildSchematicTemplateExtractionManifest()`
|
|
312
|
+
summarizes template identity, owned records, fonts, title-block fields, and
|
|
313
|
+
missing template parameters without generating template files.
|
|
297
314
|
`LibrarySearchIndex` provides exact, keyword, and fuzzy symbol/footprint lookup
|
|
298
315
|
helpers over parsed library read models.
|
|
299
316
|
|
|
@@ -340,6 +357,13 @@ metadata sidecar as the composite SVG, with `view.kind` set to `layer`, a
|
|
|
340
357
|
single included layer id, and `layerSet.layerView` describing the exported
|
|
341
358
|
layer.
|
|
342
359
|
|
|
360
|
+
PCB documents expose `pcb.bomProfile` for PCB-only BOM grouping and parameter
|
|
361
|
+
alias normalization. `pcb.layerStackReadModel.fidelityReport` classifies
|
|
362
|
+
semantic layer-stack data, preserved native cache evidence, interchange-only
|
|
363
|
+
fields, and unsupported native-regeneration reasons. Draftsman digests preserve
|
|
364
|
+
typed font-style records, note geometry, note border/fill state, and picture
|
|
365
|
+
geometry when those fields are available in the container.
|
|
366
|
+
|
|
343
367
|
External model placements in the 3D scene description include a `projection`
|
|
344
368
|
diagnostic object. The `source` explains whether bounds came from an authored
|
|
345
369
|
projection override, resolved model bounds, nearby pad-span fallback,
|
|
@@ -367,5 +391,6 @@ Consumers should treat unknown fields as additive within the same schema id.
|
|
|
367
391
|
Parser fixes may add detail, but existing field names and shapes should stay
|
|
368
392
|
compatible unless a new schema id explicitly documents a model migration.
|
|
369
393
|
Focused machine-readable schemas are available under
|
|
370
|
-
`docs/schemas/altium_toolkit/` for the normalized root
|
|
371
|
-
|
|
394
|
+
`docs/schemas/altium_toolkit/` for the normalized root plus focused project,
|
|
395
|
+
netlist, SVG, PCB review, layer-stack, Draftsman, library, and CI/reporting
|
|
396
|
+
contracts.
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"schematicSvgs",
|
|
17
17
|
"pcbLayerSvgs",
|
|
18
18
|
"statistics",
|
|
19
|
+
"contractGate",
|
|
19
20
|
"diagnostics"
|
|
20
21
|
],
|
|
21
22
|
"properties": {
|
|
@@ -69,6 +70,9 @@
|
|
|
69
70
|
"statistics": {
|
|
70
71
|
"type": "object"
|
|
71
72
|
},
|
|
73
|
+
"contractGate": {
|
|
74
|
+
"$ref": "contract_gate_a1.schema.json"
|
|
75
|
+
},
|
|
72
76
|
"diagnostics": {
|
|
73
77
|
"type": "array"
|
|
74
78
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "altium-toolkit.contract-gate.a1",
|
|
4
|
+
"title": "Altium Toolkit Contract Gate A1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": ["schema", "status", "summary", "gates", "svgLinkReports"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema": {
|
|
10
|
+
"const": "altium-toolkit.contract-gate.a1"
|
|
11
|
+
},
|
|
12
|
+
"status": {
|
|
13
|
+
"enum": ["pass", "fail"]
|
|
14
|
+
},
|
|
15
|
+
"summary": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"additionalProperties": true
|
|
18
|
+
},
|
|
19
|
+
"gates": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": true
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"svgLinkReports": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"additionalProperties": true
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "altium-toolkit.draftsman.board-view-cache.a1",
|
|
4
|
+
"title": "Altium Toolkit Draftsman Board View Cache A1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema",
|
|
9
|
+
"summary",
|
|
10
|
+
"layerColors",
|
|
11
|
+
"pcbParameters",
|
|
12
|
+
"boardAssemblyViews",
|
|
13
|
+
"boardFabricationViews",
|
|
14
|
+
"boardProjections",
|
|
15
|
+
"generatedGeometry",
|
|
16
|
+
"cacheLayers",
|
|
17
|
+
"displayLayers",
|
|
18
|
+
"cachePrimitives",
|
|
19
|
+
"highlightGroups",
|
|
20
|
+
"layerTiles",
|
|
21
|
+
"diagnostics"
|
|
22
|
+
],
|
|
23
|
+
"properties": {
|
|
24
|
+
"schema": {
|
|
25
|
+
"const": "altium-toolkit.draftsman.board-view-cache.a1"
|
|
26
|
+
},
|
|
27
|
+
"summary": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": true
|
|
30
|
+
},
|
|
31
|
+
"layerColors": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"additionalProperties": true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"pcbParameters": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"additionalProperties": {
|
|
41
|
+
"type": "string"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"boardAssemblyViews": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"additionalProperties": true
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"boardFabricationViews": {
|
|
52
|
+
"type": "array",
|
|
53
|
+
"items": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"additionalProperties": true
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"boardProjections": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"additionalProperties": true
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"generatedGeometry": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"items": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"additionalProperties": true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"cacheLayers": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"additionalProperties": true
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"displayLayers": {
|
|
80
|
+
"type": "array",
|
|
81
|
+
"items": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"additionalProperties": true
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"cachePrimitives": {
|
|
87
|
+
"type": "array",
|
|
88
|
+
"items": {
|
|
89
|
+
"type": "object",
|
|
90
|
+
"additionalProperties": true
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"highlightGroups": {
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"additionalProperties": true
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"layerTiles": {
|
|
101
|
+
"type": "array",
|
|
102
|
+
"items": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"additionalProperties": true
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"diagnostics": {
|
|
108
|
+
"type": "array",
|
|
109
|
+
"items": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"additionalProperties": true
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -12,6 +12,23 @@
|
|
|
12
12
|
"sourceDocumentName": {
|
|
13
13
|
"type": "string"
|
|
14
14
|
},
|
|
15
|
+
"documentOptions": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"additionalProperties": true
|
|
18
|
+
},
|
|
19
|
+
"styles": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"additionalProperties": true,
|
|
22
|
+
"properties": {
|
|
23
|
+
"fontStyles": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"additionalProperties": true
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
15
32
|
"pages": {
|
|
16
33
|
"type": "array",
|
|
17
34
|
"items": {
|
|
@@ -23,10 +40,124 @@
|
|
|
23
40
|
"titleBlocks",
|
|
24
41
|
"notes",
|
|
25
42
|
"images",
|
|
43
|
+
"zones",
|
|
44
|
+
"items",
|
|
26
45
|
"unsupportedRawItems"
|
|
27
|
-
]
|
|
46
|
+
],
|
|
47
|
+
"properties": {
|
|
48
|
+
"pageSetup": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"additionalProperties": true
|
|
51
|
+
},
|
|
52
|
+
"zones": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"items": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"additionalProperties": true
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"items": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"items": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"additionalProperties": true
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
28
67
|
}
|
|
29
68
|
},
|
|
69
|
+
"imagePayloads": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"required": ["schema", "summary", "payloads", "diagnostics"],
|
|
72
|
+
"properties": {
|
|
73
|
+
"schema": {
|
|
74
|
+
"const": "altium-toolkit.draftsman.image-payloads.a1"
|
|
75
|
+
},
|
|
76
|
+
"summary": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"additionalProperties": true
|
|
79
|
+
},
|
|
80
|
+
"payloads": {
|
|
81
|
+
"type": "array",
|
|
82
|
+
"items": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"additionalProperties": true
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"diagnostics": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"additionalProperties": true
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"additionalProperties": true
|
|
96
|
+
},
|
|
97
|
+
"boardViewMetadata": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"required": [
|
|
100
|
+
"schema",
|
|
101
|
+
"summary",
|
|
102
|
+
"layerColors",
|
|
103
|
+
"pcbParameters",
|
|
104
|
+
"boardAssemblyViews",
|
|
105
|
+
"boardFabricationViews",
|
|
106
|
+
"boardProjections",
|
|
107
|
+
"generatedGeometry"
|
|
108
|
+
],
|
|
109
|
+
"properties": {
|
|
110
|
+
"schema": {
|
|
111
|
+
"const": "altium-toolkit.draftsman.board-view-cache.a1"
|
|
112
|
+
},
|
|
113
|
+
"summary": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": true
|
|
116
|
+
},
|
|
117
|
+
"layerColors": {
|
|
118
|
+
"type": "array",
|
|
119
|
+
"items": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"additionalProperties": true
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"pcbParameters": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"additionalProperties": {
|
|
127
|
+
"type": "string"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"boardAssemblyViews": {
|
|
131
|
+
"type": "array",
|
|
132
|
+
"items": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"additionalProperties": true
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"boardFabricationViews": {
|
|
138
|
+
"type": "array",
|
|
139
|
+
"items": {
|
|
140
|
+
"type": "object",
|
|
141
|
+
"additionalProperties": true
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"boardProjections": {
|
|
145
|
+
"type": "array",
|
|
146
|
+
"items": {
|
|
147
|
+
"type": "object",
|
|
148
|
+
"additionalProperties": true
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"generatedGeometry": {
|
|
152
|
+
"type": "array",
|
|
153
|
+
"items": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"additionalProperties": true
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"additionalProperties": true
|
|
160
|
+
},
|
|
30
161
|
"indexes": {
|
|
31
162
|
"type": "object",
|
|
32
163
|
"additionalProperties": true
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "altium-toolkit.host-capabilities.a1",
|
|
4
|
+
"title": "Altium Toolkit Host Capabilities A1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": ["schema", "host", "summary", "capabilities", "diagnostics"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema": {
|
|
10
|
+
"const": "altium-toolkit.host-capabilities.a1"
|
|
11
|
+
},
|
|
12
|
+
"host": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"additionalProperties": true
|
|
15
|
+
},
|
|
16
|
+
"summary": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"additionalProperties": true
|
|
19
|
+
},
|
|
20
|
+
"capabilities": {
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": true
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"readiness": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": true
|
|
30
|
+
},
|
|
31
|
+
"diagnostics": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"additionalProperties": true
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "altium-toolkit.library.merge-plan.a1",
|
|
4
|
+
"title": "Altium Toolkit Library Merge Plan A1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema",
|
|
9
|
+
"strategy",
|
|
10
|
+
"summary",
|
|
11
|
+
"duplicateSymbols",
|
|
12
|
+
"embeddedAssets",
|
|
13
|
+
"fontDependencies",
|
|
14
|
+
"diagnostics"
|
|
15
|
+
],
|
|
16
|
+
"properties": {
|
|
17
|
+
"schema": {
|
|
18
|
+
"const": "altium-toolkit.library.merge-plan.a1"
|
|
19
|
+
},
|
|
20
|
+
"strategy": {
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"summary": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"additionalProperties": true
|
|
26
|
+
},
|
|
27
|
+
"duplicateSymbols": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"additionalProperties": true
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"embeddedAssets": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"items": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"additionalProperties": true
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"fontDependencies": {
|
|
42
|
+
"type": "array",
|
|
43
|
+
"items": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"additionalProperties": true
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"diagnostics": {
|
|
49
|
+
"type": "array",
|
|
50
|
+
"items": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"additionalProperties": true
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "altium-toolkit.library.qa.a1",
|
|
4
|
+
"title": "Altium Toolkit Library QA A1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": true,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema",
|
|
9
|
+
"summary",
|
|
10
|
+
"duplicateSymbols",
|
|
11
|
+
"duplicateFootprints",
|
|
12
|
+
"staleImplementations",
|
|
13
|
+
"missingModels",
|
|
14
|
+
"multipartMismatches"
|
|
15
|
+
],
|
|
16
|
+
"properties": {
|
|
17
|
+
"schema": {
|
|
18
|
+
"const": "altium-toolkit.library.qa.a1"
|
|
19
|
+
},
|
|
20
|
+
"summary": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": true
|
|
23
|
+
},
|
|
24
|
+
"duplicateSymbols": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"items": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"duplicateFootprints": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"additionalProperties": true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"staleImplementations": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"items": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": true
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"missingModels": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": true
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"multipartMismatches": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"items": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"additionalProperties": true
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"mergePlan": {
|
|
60
|
+
"$ref": "library_merge_plan_a1.schema.json"
|
|
61
|
+
},
|
|
62
|
+
"issues": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"items": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"additionalProperties": true
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|