altium-toolkit 1.3.0 → 1.4.1
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/README.md +14 -0
- package/docs/api.md +9 -1
- package/docs/release-notes-v1.4.0.md +37 -0
- package/docs/release-notes-v1.4.1.md +29 -0
- package/package.json +2 -2
- package/src/convergence/AltiumDocumentBuilder.mjs +1 -1
- package/src/index.mjs +1 -0
package/README.md
CHANGED
|
@@ -39,6 +39,18 @@ missing-image placeholder for those unusable payloads without changing the
|
|
|
39
39
|
frozen native parser or healthy embedded images. See the
|
|
40
40
|
[1.3.0 release notes](docs/release-notes-v1.3.0.md).
|
|
41
41
|
|
|
42
|
+
Version 1.4.0 adopts newly decoded CircuitJSON and native extension graphs at
|
|
43
|
+
the shared validation boundary. Their ordinary nodes retain identity and are
|
|
44
|
+
deeply frozen without a redundant defensive graph copy. Parser parameters,
|
|
45
|
+
document envelopes, extension fields, and return shapes remain unchanged. See
|
|
46
|
+
the [1.4.0 release notes](docs/release-notes-v1.4.0.md).
|
|
47
|
+
|
|
48
|
+
Version 1.4.1 re-exports the canonical `SelfAdjustingComputation` runtime from
|
|
49
|
+
CircuitJSON Toolkit 1.4.1. Persistent Altium consumers can retain dependency
|
|
50
|
+
traces across input edits without changing parser, document, renderer, or
|
|
51
|
+
native-extension contracts. See the
|
|
52
|
+
[1.4.1 release notes](docs/release-notes-v1.4.1.md).
|
|
53
|
+
|
|
42
54
|
Default `extensions: 'canonical'` keeps compact Altium summary metadata.
|
|
43
55
|
Request the complete native read model with `extensions: 'full'`,
|
|
44
56
|
`preserveRaw: true`, or `extensions: ['altium.native-model']`. Project batches
|
|
@@ -206,6 +218,8 @@ const legacyCircuitJson = AltiumParser.parseArrayBuffer(file.name, arrayBuffer)
|
|
|
206
218
|
- [API](docs/api.md)
|
|
207
219
|
- [Capabilities](docs/capabilities.md)
|
|
208
220
|
- [Migration from 1.1.41](docs/migration.md)
|
|
221
|
+
- [1.4.1 release notes](docs/release-notes-v1.4.1.md)
|
|
222
|
+
- [1.4.0 release notes](docs/release-notes-v1.4.0.md)
|
|
209
223
|
- [1.3.0 release notes](docs/release-notes-v1.3.0.md)
|
|
210
224
|
- [1.2.1 release notes](docs/release-notes-v1.2.1.md)
|
|
211
225
|
- [1.2.0 release notes](docs/release-notes-v1.2.0.md)
|
package/docs/api.md
CHANGED
|
@@ -13,7 +13,7 @@ the method documents a narrower input.
|
|
|
13
13
|
|
|
14
14
|
## Entrypoints
|
|
15
15
|
|
|
16
|
-
The root exports exactly these
|
|
16
|
+
The root exports exactly these 18 shared classes:
|
|
17
17
|
|
|
18
18
|
- `Parser`, `ProjectLoader`, `CircuitJsonDocument`,
|
|
19
19
|
`CircuitJsonDocumentContext`, `CircuitJsonIndexer`, and `CircuitJsonUnits`
|
|
@@ -22,6 +22,7 @@ The root exports exactly these 17 shared classes:
|
|
|
22
22
|
- `ManufacturingService` and `SimulationService`
|
|
23
23
|
- `PcbScene3dBuilder` and `PcbScene3dPreparator`
|
|
24
24
|
- `ToolkitCapabilities` and `ToolkitError`
|
|
25
|
+
- `SelfAdjustingComputation`
|
|
25
26
|
|
|
26
27
|
Specialized entrypoints are also available:
|
|
27
28
|
|
|
@@ -111,6 +112,13 @@ metadata. The complete recovered native read model remains available through
|
|
|
111
112
|
`document.model` and do not require the full native extension.
|
|
112
113
|
`extensions: 'none'` or `extensions: []` returns exactly `extensions: {}`.
|
|
113
114
|
|
|
115
|
+
The convergence builder transfers its newly decoded ordinary CircuitJSON and
|
|
116
|
+
native extension graphs into the shared owned-document validator. Eligible
|
|
117
|
+
graph nodes retain identity and are deeply frozen in place, avoiding a second
|
|
118
|
+
full defensive copy. This is an internal ownership optimization after source
|
|
119
|
+
decoding: raw caller data remains untrusted, and every public parser parameter,
|
|
120
|
+
validation rule, document field, and return shape is unchanged.
|
|
121
|
+
|
|
114
122
|
Canonical `.SchDoc` models preserve native drawing order, ownership, geometry,
|
|
115
123
|
and style as shared `schematic_rect`, `schematic_circle`, `schematic_arc`,
|
|
116
124
|
`schematic_path`, `schematic_text`, `schematic_table`, and
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# altium-toolkit 1.4.0
|
|
2
|
+
|
|
3
|
+
Version 1.4.0 adopts parser-owned CircuitJSON and retained native extension
|
|
4
|
+
graphs through the CircuitJSON Toolkit 1.4 ownership boundary. It removes a
|
|
5
|
+
redundant defensive graph copy from successful document construction without
|
|
6
|
+
weakening validation or immutability.
|
|
7
|
+
|
|
8
|
+
## Owned convergence graphs
|
|
9
|
+
|
|
10
|
+
- The Altium convergence builder uses
|
|
11
|
+
`DocumentResult.createValidatedOwned(fields, runtime?)` for graphs it has
|
|
12
|
+
just constructed and exclusively owns.
|
|
13
|
+
- Ordinary CircuitJSON model and native extension nodes retain their identities
|
|
14
|
+
and are deeply frozen in place. Binary properties continue through the
|
|
15
|
+
shared defensive binary boundary.
|
|
16
|
+
- Raw input remains untrusted and is decoded and validated normally. The owned
|
|
17
|
+
path is applied only after the format parser has produced a new standard
|
|
18
|
+
local graph.
|
|
19
|
+
|
|
20
|
+
## API and compatibility
|
|
21
|
+
|
|
22
|
+
- Parser input, options, progress, cancellation, worker, and project contracts
|
|
23
|
+
are unchanged.
|
|
24
|
+
- Successful parsing returns the same `ecad-toolkit.document.v1` envelope with
|
|
25
|
+
the same `model`, `source`, `extensions`, `assets`, `diagnostics`, and
|
|
26
|
+
`statistics` fields.
|
|
27
|
+
- Canonical, metadata, full native-model, and empty extension selections retain
|
|
28
|
+
their existing behavior and return shapes.
|
|
29
|
+
- No class, method, parameter, package subpath, native extension, or renderer
|
|
30
|
+
behavior is removed or renamed.
|
|
31
|
+
|
|
32
|
+
## Performance verification
|
|
33
|
+
|
|
34
|
+
The shared ownership regressions verify retained identity, deep freeze,
|
|
35
|
+
bounded extension sealing, mutation isolation, binary protection, and direct
|
|
36
|
+
and worker result parity. The Altium parser and packed cross-toolkit suites
|
|
37
|
+
continue to validate the public envelope and renderer contracts.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# altium-toolkit 1.4.1
|
|
2
|
+
|
|
3
|
+
Version 1.4.1 exposes the shared self-adjusting computation runtime throughout
|
|
4
|
+
the ECAD toolkit family while preserving every Altium parsing and rendering
|
|
5
|
+
contract.
|
|
6
|
+
|
|
7
|
+
## Shared incremental runtime
|
|
8
|
+
|
|
9
|
+
- The root entrypoint re-exports `SelfAdjustingComputation` from
|
|
10
|
+
`circuitjson-toolkit` 1.4.1.
|
|
11
|
+
- The runtime records dynamic data and control dependencies, invalidates only
|
|
12
|
+
changed reader traces, replaces stale branches, and reclaims retired graph
|
|
13
|
+
nodes explicitly.
|
|
14
|
+
- Persistent consumers can update mutable input cells and stabilize affected
|
|
15
|
+
computations without rebuilding unrelated derived work.
|
|
16
|
+
|
|
17
|
+
## Compatibility
|
|
18
|
+
|
|
19
|
+
- Parser options, immutable document and project envelopes, native extension
|
|
20
|
+
namespaces, renderer output, workers, and service return shapes are
|
|
21
|
+
unchanged.
|
|
22
|
+
- The release contains no Altium-specific incremental special cases; it shares
|
|
23
|
+
the canonical runtime object used by the other toolkits.
|
|
24
|
+
|
|
25
|
+
## Verification
|
|
26
|
+
|
|
27
|
+
- API tests prove that the root export is the canonical CircuitJSON runtime.
|
|
28
|
+
- Release gates include the complete package suite, formatting, performance
|
|
29
|
+
checks, feature-preservation validation, and npm package dry run.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "altium-toolkit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "Altium document parsing and non-interactive rendering utilities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"altium",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"check:features": "node scripts/check-feature-preservation.mjs"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"circuitjson-toolkit": "^1.
|
|
70
|
+
"circuitjson-toolkit": "^1.4.1",
|
|
71
71
|
"fflate": "^0.8.2"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
@@ -57,7 +57,7 @@ export class AltiumDocumentBuilder {
|
|
|
57
57
|
normalized.options.retainSource === 'reference'
|
|
58
58
|
? { sourceReference: normalized.sourceReference }
|
|
59
59
|
: {}
|
|
60
|
-
return DocumentResult.
|
|
60
|
+
return DocumentResult.createValidatedOwned(
|
|
61
61
|
{
|
|
62
62
|
model,
|
|
63
63
|
source: {
|