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 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 17 shared classes:
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.0",
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.2.0",
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.createValidated(
60
+ return DocumentResult.createValidatedOwned(
61
61
  {
62
62
  model,
63
63
  source: {
package/src/index.mjs CHANGED
@@ -14,6 +14,7 @@ export {
14
14
  PcbSvgRenderer,
15
15
  QueryService,
16
16
  SchematicSvgRenderer,
17
+ SelfAdjustingComputation,
17
18
  SimulationService,
18
19
  ToolkitError
19
20
  } from 'circuitjson-toolkit'