@snaptrude/plugin-client 0.9.1 → 0.9.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @snaptrude/plugin-client
2
2
 
3
+ ## 0.9.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 3584bde: Expose configured BIM creation and Site Analysis sheet APIs: `design.create.opening` (catalog door/window with width/height/sillHeight), staircase `dimensions` overrides (strict-validated, quarter-turn rotation), and `program.site.getSiteAnalysis`/`updateSiteAnalysis` with merge/append semantics. `PluginSiteAnalysisUpdateOptions` accepts `null` as "no options".
8
+ - Updated dependencies [3584bde]
9
+ - @snaptrude/plugin-core@0.9.3
10
+
11
+ ## 0.9.2
12
+
13
+ ### Patch Changes
14
+
15
+ - 5b91c7b: OCC geometry batch: new `core.geom.create` brep constructors — `brepFromFillet`, `brepFromChamfer`, `brepFromOffset`, `brepFromShell`, `brepsFromSplit`, `brepFromSweep`, `brepFromRevolution`; `brepFromLoft` widened with optional `intermediateContours` (multi-section lofts); new `core.geom.query.brep.getDistance` (minimum distance between two solids with witness points).
16
+ - Updated dependencies [5b91c7b]
17
+ - @snaptrude/plugin-core@0.9.2
18
+
3
19
  ## 0.9.0
4
20
 
5
21
  ### Minor Changes
@@ -12,7 +28,6 @@
12
28
 
13
29
  - More additions to the APIs, infra changes.
14
30
  - Plugin API 0.8.0 — the 0.8 API wave, handle lifecycle, and worker events.
15
-
16
31
  - **Events** — `PluginWorker.subscribe("model:changed", handler)`: debounced model-change notifications delivered to the worker for user and plugin edits alike; subscriptions live for the plugin's lifetime and are cleared automatically on stop.
17
32
  - **The 0.8 API wave** — client types/passthrough for export, element editing, camera, storey management, visibility, dimensions, locale/user reads, and the behavior corrections in the host (world-unit `program.site` footprints, real beam/column geometry, live-only `design.query.list*`); see `@snaptrude/plugin-core@0.8.0` and `upgrade-notes/0.7.1-to-0.8.0.md`.
18
33
  - **Handle lifecycle (`core.handles.*`) + GC-backed `Handle` objects** — `Handle` is now a class wrapping the wire id (public type names unchanged): `handle.id`, `toString()` stays the bare id, `equals()` compares by id, and `toJSON()` emits the `{__h: id}` wire tag — `JSON.stringify` output containing handles changes shape. New namespace: `core.handles.release(handles[])` (batched, arena-agnostic, silent no-op on unknown/released ids), `core.handles.releaseAll(kind?)`, mint-recording scopes `beginScope()` / `endScope(scope, retain?)` (token-addressed, retain promotes to the enclosing scope), and `core.handles.stats()`. The client runs a FinalizationRegistry-backed auto-release queue, so unreferenced handles are reclaimed host-side without explicit code. `core.geom.delete.profile/contour` are retained as deprecated aliases of `core.handles.release`. Entity-style kinds (component/material/underlay/terrain/importJob) remain branded strings.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snaptrude/plugin-client",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -23,7 +23,7 @@
23
23
  ],
24
24
  "dependencies": {
25
25
  "comlink": "^4.4.2",
26
- "@snaptrude/plugin-core": "0.9.1"
26
+ "@snaptrude/plugin-core": "0.9.3"
27
27
  },
28
28
  "devDependencies": {
29
29
  "tsup": "^8.5.1",
@@ -10,26 +10,7 @@ breaking: false
10
10
 
11
11
  ## Breaking changes
12
12
 
13
- None. All 0.9.0 moves are deprecate-in-place aliases; no signatures or result shapes changed on existing paths.
14
-
15
- ## Moved paths (deprecated → canonical)
16
-
17
- - `entity.story.get` → `core.storeys.get`
18
- - `entity.story.getAll` → `core.storeys.list` — the canonical result names the field `storeys` where `getAll` named it `stories`; the records are identical
19
- - `entity.story.create` → `core.storeys.create`
20
- - `entity.story.update` → `core.storeys.update`
21
- - `entity.story.delete` → `core.storeys.delete`
22
- - `entity.story.duplicate` → `core.storeys.copy`
23
- - `entity.story.setActive` → `core.storeys.setActive`
24
- - `entity.referenceLine.createMulti` → `design.create.referenceLines` — adds optional styling args and returns a `ComponentHandle[]` where `createMulti` returned `{ referenceLineIds }`
25
- - `entity.referenceLine.get` → `design.query.referenceLines.get`
26
- - `entity.referenceLine.getAll` → `design.query.listReferenceLines` — returns a filterable `ComponentHandle[]` where `getAll` returned `{ referenceLineIds }`
27
- - `entity.referenceLine.delete` → `design.delete.entities`
28
- - `entity.buildableEnvelope.create` → `design.create.buildableEnvelope`
29
- - `entity.buildableEnvelope.update` → `design.update.buildableEnvelope`
30
- - `core.zoom.extents` → `core.camera.zoomExtents`
31
- - `core.zoom.selection` → `core.camera.zoomSelection`
32
- - `core.tags.getTagsForComponent` → `core.tags.listForComponent`
13
+ _None._
33
14
 
34
15
  ## New APIs
35
16
 
@@ -56,6 +37,31 @@ None. All 0.9.0 moves are deprecate-in-place aliases; no signatures or result sh
56
37
  - **`design.create.massFromBrep(brep, label?)`** — commit a mass from any `core.geom.create` brep constructor's handle (scene-derived `getBrep` breps stay read-only → `PRECONDITION_FAILED`): generic mass at the authored coordinates, single undo step, collab-synced. Together with the constructors this closes the loop — author faces / extrude / loft / boolean, then place the result in the scene.
57
38
  - **`presentation.placedViews` — layout control over placed views.** Inspect and edit the LAYOUT of view shapes already placed on Present sheets (content refresh stays on `sheets.updatePlacedView`): `list(sheetId?)` / `get(shapeId)` return sheet, sheet-local position, size, architectural scale (`null` for 3D), rotation, crop and link state; `move(shapeId, position, { sheetId? })` repositions or reparents across sheets; `scale(shapeId, factor)` is a uniform corner-drag-equivalent resize; `setScale(shapeId, scale)` sets a standard architectural scale (2D views only); `setCrop(shapeId, crop | null)` crops with native tldraw fractions, keeping the visible region page-anchored — and the crop survives `updatePlacedView` refreshes. Identity is the shape id `sheets.place` returns.
58
39
 
40
+ ## Behavior changes
41
+
42
+ All 0.9.0 namespace moves are deprecate-in-place aliases — no signatures or
43
+ result shapes changed on existing paths; each deprecated path delegates to the
44
+ same implementation as its canonical replacement.
45
+
46
+ ### Moved paths (deprecated → canonical)
47
+
48
+ - `entity.story.get` → `core.storeys.get`
49
+ - `entity.story.getAll` → `core.storeys.list` — the canonical result names the field `storeys` where `getAll` named it `stories`; the records are identical
50
+ - `entity.story.create` → `core.storeys.create`
51
+ - `entity.story.update` → `core.storeys.update`
52
+ - `entity.story.delete` → `core.storeys.delete`
53
+ - `entity.story.duplicate` → `core.storeys.copy`
54
+ - `entity.story.setActive` → `core.storeys.setActive`
55
+ - `entity.referenceLine.createMulti` → `design.create.referenceLines` — adds optional styling args and returns a `ComponentHandle[]` where `createMulti` returned `{ referenceLineIds }`
56
+ - `entity.referenceLine.get` → `design.query.referenceLines.get`
57
+ - `entity.referenceLine.getAll` → `design.query.listReferenceLines` — returns a filterable `ComponentHandle[]` where `getAll` returned `{ referenceLineIds }`
58
+ - `entity.referenceLine.delete` → `design.delete.entities`
59
+ - `entity.buildableEnvelope.create` → `design.create.buildableEnvelope`
60
+ - `entity.buildableEnvelope.update` → `design.update.buildableEnvelope`
61
+ - `core.zoom.extents` → `core.camera.zoomExtents`
62
+ - `core.zoom.selection` → `core.camera.zoomSelection`
63
+ - `core.tags.getTagsForComponent` → `core.tags.listForComponent`
64
+
59
65
  ## No action needed
60
66
 
61
67
  All 0.9.0 changes are additive. Deprecated paths remain until at least the next major version, and removal is gated on call metrics showing zero live traffic plus a consumer sweep. To modernize a plugin: rename calls per the moved-paths list above (only `core.storeys.list` and the two reference-line list/create reads have different result shapes from their predecessors — everything else is a pure rename).