@snaptrude/plugin-core 0.0.0-dev-20260708130115 → 0.0.0-dev-20260827135706
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 +152 -1
- package/api-manifest.json +3620 -276
- package/dist/api/analysis/daylight.d.ts +603 -0
- package/dist/api/analysis/daylight.d.ts.map +1 -0
- package/dist/api/analysis/heatmaps.d.ts +658 -0
- package/dist/api/analysis/heatmaps.d.ts.map +1 -0
- package/dist/api/analysis/illuminance.d.ts +145 -0
- package/dist/api/analysis/illuminance.d.ts.map +1 -0
- package/dist/api/analysis/index.d.ts +59 -0
- package/dist/api/analysis/index.d.ts.map +1 -0
- package/dist/api/analysis/shadows.d.ts +165 -0
- package/dist/api/analysis/shadows.d.ts.map +1 -0
- package/dist/api/analysis/solar.d.ts +249 -0
- package/dist/api/analysis/solar.d.ts.map +1 -0
- package/dist/api/analysis/sunlightHours.d.ts +208 -0
- package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
- package/dist/api/analysis/sunpath.d.ts +80 -0
- package/dist/api/analysis/sunpath.d.ts.map +1 -0
- package/dist/api/analysis/weather.d.ts +193 -0
- package/dist/api/analysis/weather.d.ts.map +1 -0
- package/dist/api/core/camera/index.d.ts +261 -0
- package/dist/api/core/camera/index.d.ts.map +1 -0
- package/dist/api/core/comment/index.d.ts +105 -2
- package/dist/api/core/comment/index.d.ts.map +1 -1
- package/dist/api/core/geom/create/index.d.ts +840 -14
- package/dist/api/core/geom/create/index.d.ts.map +1 -1
- package/dist/api/core/geom/delete/index.d.ts +8 -2
- package/dist/api/core/geom/delete/index.d.ts.map +1 -1
- package/dist/api/core/geom/query/arc.d.ts +5 -5
- package/dist/api/core/geom/query/brep.d.ts +130 -18
- package/dist/api/core/geom/query/brep.d.ts.map +1 -1
- package/dist/api/core/geom/query/circle.d.ts +18 -18
- package/dist/api/core/geom/query/contour.d.ts +20 -20
- package/dist/api/core/geom/query/curve.d.ts +49 -49
- package/dist/api/core/geom/query/edge.d.ts +5 -5
- package/dist/api/core/geom/query/face.d.ts +16 -16
- package/dist/api/core/geom/query/halfedge.d.ts +8 -8
- package/dist/api/core/geom/query/profile.d.ts +19 -19
- package/dist/api/core/geom/query/vertex.d.ts +8 -8
- package/dist/api/core/geom/update/contour.d.ts +14 -14
- package/dist/api/core/geom/update/curve.d.ts +7 -7
- package/dist/api/core/geom/update/profile.d.ts +16 -16
- package/dist/api/core/handles/index.d.ts +210 -0
- package/dist/api/core/handles/index.d.ts.map +1 -0
- package/dist/api/core/index.d.ts +34 -0
- package/dist/api/core/index.d.ts.map +1 -1
- package/dist/api/core/io/export/index.d.ts +134 -0
- package/dist/api/core/io/export/index.d.ts.map +1 -0
- package/dist/api/core/io/import/index.d.ts +453 -0
- package/dist/api/core/io/import/index.d.ts.map +1 -0
- package/dist/api/core/io/index.d.ts +40 -0
- package/dist/api/core/io/index.d.ts.map +1 -0
- package/dist/api/core/io/job/index.d.ts +139 -0
- package/dist/api/core/io/job/index.d.ts.map +1 -0
- package/dist/api/core/io/query/index.d.ts +74 -0
- package/dist/api/core/io/query/index.d.ts.map +1 -0
- package/dist/api/core/io/terrain/index.d.ts +341 -0
- package/dist/api/core/io/terrain/index.d.ts.map +1 -0
- package/dist/api/core/io/underlay/index.d.ts +805 -0
- package/dist/api/core/io/underlay/index.d.ts.map +1 -0
- package/dist/api/core/layers.d.ts +7 -7
- package/dist/api/core/mode/index.d.ts +99 -0
- package/dist/api/core/mode/index.d.ts.map +1 -0
- package/dist/api/core/project/index.d.ts +68 -1
- package/dist/api/core/project/index.d.ts.map +1 -1
- package/dist/api/core/proposals/index.d.ts +531 -0
- package/dist/api/core/proposals/index.d.ts.map +1 -0
- package/dist/api/core/storeys/index.d.ts +265 -0
- package/dist/api/core/storeys/index.d.ts.map +1 -0
- package/dist/api/core/tags.d.ts +24 -0
- package/dist/api/core/tags.d.ts.map +1 -1
- package/dist/api/core/user.d.ts +44 -0
- package/dist/api/core/user.d.ts.map +1 -0
- package/dist/api/core/zoom/index.d.ts +4 -0
- package/dist/api/core/zoom/index.d.ts.map +1 -1
- package/dist/api/design/boolean/index.d.ts +4 -4
- package/dist/api/design/create/index.d.ts +568 -45
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/delete/index.d.ts +3 -0
- package/dist/api/design/delete/index.d.ts.map +1 -1
- package/dist/api/design/doors/index.d.ts +195 -0
- package/dist/api/design/doors/index.d.ts.map +1 -1
- package/dist/api/design/edit/index.d.ts +1 -1
- package/dist/api/design/erase/index.d.ts +2 -2
- package/dist/api/design/family.d.ts +349 -0
- package/dist/api/design/family.d.ts.map +1 -0
- package/dist/api/design/furniture/index.d.ts +181 -8
- package/dist/api/design/furniture/index.d.ts.map +1 -1
- package/dist/api/design/index.d.ts +98 -0
- package/dist/api/design/index.d.ts.map +1 -1
- package/dist/api/design/lock.d.ts +26 -0
- package/dist/api/design/lock.d.ts.map +1 -1
- package/dist/api/design/materials/index.d.ts +270 -16
- package/dist/api/design/materials/index.d.ts.map +1 -1
- package/dist/api/design/query/geometry/index.d.ts +112 -0
- package/dist/api/design/query/geometry/index.d.ts.map +1 -1
- package/dist/api/design/query/index.d.ts +282 -11
- package/dist/api/design/query/index.d.ts.map +1 -1
- package/dist/api/design/query/referenceLines.d.ts +45 -0
- package/dist/api/design/query/referenceLines.d.ts.map +1 -0
- package/dist/api/design/query/spaces.d.ts +181 -8
- package/dist/api/design/query/spaces.d.ts.map +1 -1
- package/dist/api/design/selection/index.d.ts +144 -0
- package/dist/api/design/selection/index.d.ts.map +1 -1
- package/dist/api/design/transform/index.d.ts +172 -10
- package/dist/api/design/transform/index.d.ts.map +1 -1
- package/dist/api/design/types/index.d.ts +181 -0
- package/dist/api/design/types/index.d.ts.map +1 -0
- package/dist/api/design/update/index.d.ts +553 -2
- package/dist/api/design/update/index.d.ts.map +1 -1
- package/dist/api/design/visibility.d.ts +126 -0
- package/dist/api/design/visibility.d.ts.map +1 -0
- package/dist/api/design/windows/index.d.ts +113 -2
- package/dist/api/design/windows/index.d.ts.map +1 -1
- package/dist/api/entity/buildableEnvelope.d.ts +4 -0
- package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
- package/dist/api/entity/referenceLine.d.ts +10 -2
- package/dist/api/entity/referenceLine.d.ts.map +1 -1
- package/dist/api/entity/space.d.ts +21 -21
- package/dist/api/entity/story.d.ts +242 -15
- package/dist/api/entity/story.d.ts.map +1 -1
- package/dist/api/index.d.ts +10 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/presentation/aiInspiration.d.ts +25 -25
- package/dist/api/presentation/annotate.d.ts +467 -0
- package/dist/api/presentation/annotate.d.ts.map +1 -0
- package/dist/api/presentation/diagrams.d.ts +111 -8
- package/dist/api/presentation/diagrams.d.ts.map +1 -1
- package/dist/api/presentation/export.d.ts +108 -0
- package/dist/api/presentation/export.d.ts.map +1 -0
- package/dist/api/presentation/import.d.ts +55 -4
- package/dist/api/presentation/import.d.ts.map +1 -1
- package/dist/api/presentation/index.d.ts +58 -1
- package/dist/api/presentation/index.d.ts.map +1 -1
- package/dist/api/presentation/placedViews.d.ts +1139 -0
- package/dist/api/presentation/placedViews.d.ts.map +1 -0
- package/dist/api/presentation/shapes.d.ts +481 -0
- package/dist/api/presentation/shapes.d.ts.map +1 -0
- package/dist/api/presentation/sheets.d.ts +452 -13
- package/dist/api/presentation/sheets.d.ts.map +1 -1
- package/dist/api/presentation/slideshow.d.ts +125 -0
- package/dist/api/presentation/slideshow.d.ts.map +1 -0
- package/dist/api/presentation/tables.d.ts +81 -0
- package/dist/api/presentation/tables.d.ts.map +1 -0
- package/dist/api/presentation/views.d.ts +367 -7
- package/dist/api/presentation/views.d.ts.map +1 -1
- package/dist/api/program/areas.d.ts +102 -12
- package/dist/api/program/areas.d.ts.map +1 -1
- package/dist/api/program/cores.d.ts +3 -99
- package/dist/api/program/cores.d.ts.map +1 -1
- package/dist/api/program/index.d.ts +7 -15
- package/dist/api/program/index.d.ts.map +1 -1
- package/dist/api/program/layout.d.ts +346 -11
- package/dist/api/program/layout.d.ts.map +1 -1
- package/dist/api/program/site.d.ts +469 -13
- package/dist/api/program/site.d.ts.map +1 -1
- package/dist/api/program/spreadsheet.d.ts +365 -41
- package/dist/api/program/spreadsheet.d.ts.map +1 -1
- package/dist/api/workspace/index.d.ts +505 -0
- package/dist/api/workspace/index.d.ts.map +1 -0
- package/dist/errors/codes.d.ts +34 -0
- package/dist/errors/codes.d.ts.map +1 -0
- package/dist/errors/envelope.d.ts +56 -0
- package/dist/errors/envelope.d.ts.map +1 -0
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/plugin-error.d.ts +69 -0
- package/dist/errors/plugin-error.d.ts.map +1 -0
- package/dist/handles.d.ts +97 -25
- package/dist/handles.d.ts.map +1 -1
- package/dist/host-utils.d.ts +4 -0
- package/dist/host-utils.d.ts.map +1 -1
- package/dist/index.cjs +4582 -1422
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4171 -1411
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
- package/scripts/generate-manifest.mjs +45 -0
- package/scripts/generate-manifest.test.mjs +103 -4
- package/src/api/analysis/daylight.ts +470 -0
- package/src/api/analysis/heatmaps.ts +683 -0
- package/src/api/analysis/illuminance.ts +155 -0
- package/src/api/analysis/index.ts +61 -0
- package/src/api/analysis/shadows.ts +183 -0
- package/src/api/analysis/solar.ts +237 -0
- package/src/api/analysis/sunlightHours.ts +211 -0
- package/src/api/analysis/sunpath.ts +83 -0
- package/src/api/analysis/weather.ts +179 -0
- package/src/api/core/camera/index.ts +268 -0
- package/src/api/core/comment/index.ts +120 -2
- package/src/api/core/geom/create/index.ts +912 -1
- package/src/api/core/geom/delete/index.ts +6 -0
- package/src/api/core/geom/query/brep.ts +119 -0
- package/src/api/core/handles/index.ts +233 -0
- package/src/api/core/index.ts +34 -0
- package/src/api/core/io/export/index.ts +126 -0
- package/src/api/core/io/import/index.ts +496 -0
- package/src/api/core/io/index.ts +42 -0
- package/src/api/core/io/job/index.ts +140 -0
- package/src/api/core/io/query/index.ts +71 -0
- package/src/api/core/io/terrain/index.ts +360 -0
- package/src/api/core/io/underlay/index.ts +705 -0
- package/src/api/core/mode/index.ts +96 -0
- package/src/api/core/project/index.ts +62 -1
- package/src/api/core/proposals/index.ts +569 -0
- package/src/api/core/storeys/index.ts +294 -0
- package/src/api/core/tags.ts +27 -0
- package/src/api/core/user.ts +46 -0
- package/src/api/core/zoom/index.ts +4 -0
- package/src/api/design/create/index.ts +670 -30
- package/src/api/design/delete/index.ts +3 -0
- package/src/api/design/doors/index.ts +208 -0
- package/src/api/design/erase/index.ts +1 -1
- package/src/api/design/family.ts +388 -0
- package/src/api/design/furniture/index.ts +197 -8
- package/src/api/design/index.ts +102 -0
- package/src/api/design/lock.ts +27 -0
- package/src/api/design/materials/index.ts +334 -27
- package/src/api/design/query/geometry/index.ts +125 -3
- package/src/api/design/query/index.ts +217 -7
- package/src/api/design/query/referenceLines.ts +52 -0
- package/src/api/design/query/spaces.ts +143 -0
- package/src/api/design/selection/index.ts +129 -0
- package/src/api/design/transform/index.ts +170 -9
- package/src/api/design/types/index.ts +156 -0
- package/src/api/design/update/index.ts +631 -3
- package/src/api/design/visibility.ts +143 -0
- package/src/api/design/windows/index.ts +128 -2
- package/src/api/entity/buildableEnvelope.ts +4 -0
- package/src/api/entity/referenceLine.ts +8 -0
- package/src/api/entity/story.ts +259 -15
- package/src/api/index.ts +10 -0
- package/src/api/presentation/annotate.ts +385 -0
- package/src/api/presentation/diagrams.ts +118 -8
- package/src/api/presentation/export.ts +108 -0
- package/src/api/presentation/import.ts +51 -4
- package/src/api/presentation/index.ts +66 -1
- package/src/api/presentation/placedViews.ts +1120 -0
- package/src/api/presentation/shapes.ts +274 -0
- package/src/api/presentation/sheets.ts +400 -13
- package/src/api/presentation/slideshow.ts +134 -0
- package/src/api/presentation/tables.ts +84 -0
- package/src/api/presentation/views.ts +376 -8
- package/src/api/program/areas.ts +88 -15
- package/src/api/program/cores.ts +3 -91
- package/src/api/program/index.ts +7 -15
- package/src/api/program/layout.ts +365 -11
- package/src/api/program/site.ts +435 -13
- package/src/api/program/spreadsheet.ts +376 -35
- package/src/api/workspace/index.ts +563 -0
- package/src/errors/codes.ts +136 -0
- package/src/errors/envelope.ts +75 -0
- package/src/errors/index.ts +21 -0
- package/src/errors/plugin-error.ts +134 -0
- package/src/handles.ts +123 -13
- package/src/host-utils.ts +4 -0
- package/src/index.ts +1 -0
- package/test/errors.test.mjs +184 -0
- package/tsconfig.json +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EACL,eAAe,EACf,aAAa,EACb,aAAa,EACb,UAAU,EACX,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/create/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,9 @@ export declare abstract class PluginDesignDeleteApi {
|
|
|
49
49
|
* @examplePrompt Delete all the furniture I picked
|
|
50
50
|
* @examplePrompt Remove the door and window I just created
|
|
51
51
|
*
|
|
52
|
+
* @performance Array delete — pass every target in one call (one host round-trip). There is
|
|
53
|
+
* no per-item delete; collect the whole set and never loop this per entity.
|
|
54
|
+
*
|
|
52
55
|
* # Example
|
|
53
56
|
* ```ts
|
|
54
57
|
* // Hard-delete every furniture item on storey 2 (a single undo entry)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/delete/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB;;IAGzC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/delete/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,8BAA8B;;iBAEzC,CAAA;AACF,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAE3F;;;;;;;;;GASG;AACH,8BAAsB,qBAAqB;;IAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;aACa,QAAQ,CACtB,UAAU,EAAE,eAAe,EAAE,GAC5B,eAAe,CAAC,wBAAwB,CAAC;CAC7C"}
|
|
@@ -11,6 +11,13 @@ import { PluginDesignChangeResult } from "../lock";
|
|
|
11
11
|
* mesh reflection state. `mirror` reflects the door across an axis (undoable, one
|
|
12
12
|
* command); `setType` is intentionally absent (the engine has no in-place re-type —
|
|
13
13
|
* it would require delete+recreate).
|
|
14
|
+
*
|
|
15
|
+
* The **catalog** reads (`listCatalogGroups`/`listCatalog`/`getCatalogItem`/`exists`)
|
|
16
|
+
* browse the placeable door library — plain value records keyed by a library id
|
|
17
|
+
* (team `_id` or general `fullName`), NOT handles — and feed `design.create.door`.
|
|
18
|
+
* They are network-backed but carry no `Async` suffix (§6.6) and never throw
|
|
19
|
+
* (`[]`/`null`). The {@linkcode PluginObjectCatalogGroup} / {@linkcode PluginObjectCatalogItem}
|
|
20
|
+
* DTOs are shared with `design.windows`.
|
|
14
21
|
*/
|
|
15
22
|
export declare abstract class PluginDesignDoorsApi {
|
|
16
23
|
constructor();
|
|
@@ -92,6 +99,27 @@ export declare abstract class PluginDesignDoorsApi {
|
|
|
92
99
|
* ```
|
|
93
100
|
*/
|
|
94
101
|
abstract getHeight(door: ComponentHandle): PluginApiReturn<number | null>;
|
|
102
|
+
/**
|
|
103
|
+
* Get a door's full dimensions in one call — width along the wall, vertical
|
|
104
|
+
* height, and thickness through the wall — measured in the door's local
|
|
105
|
+
* oriented space. Parity with {@linkcode PluginDesignWindowsApi.getDimensions}.
|
|
106
|
+
*
|
|
107
|
+
* @param door The door to query
|
|
108
|
+
* @returns The dimensions, or `null`
|
|
109
|
+
*
|
|
110
|
+
* @examplePrompt What are the dimensions of this door?
|
|
111
|
+
* @examplePrompt How big is the selected door?
|
|
112
|
+
* @examplePrompt Give me the width, height and depth of this door
|
|
113
|
+
* @examplePrompt Measure the entrance door including its thickness through the wall
|
|
114
|
+
*
|
|
115
|
+
* # Example
|
|
116
|
+
* ```ts
|
|
117
|
+
* const [door] = await snaptrude.design.query.listDoors({ isSelected: true })
|
|
118
|
+
* const dims = await snaptrude.design.doors.getDimensions(door)
|
|
119
|
+
* if (dims) console.log(dims.width, dims.height, dims.thickness)
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
abstract getDimensions(door: ComponentHandle): PluginApiReturn<PluginDoorDimensions | null>;
|
|
95
123
|
/**
|
|
96
124
|
* Get the floor a door is hosted on — the storey/level component that
|
|
97
125
|
* supports the door.
|
|
@@ -203,6 +231,82 @@ export declare abstract class PluginDesignDoorsApi {
|
|
|
203
231
|
* ```
|
|
204
232
|
*/
|
|
205
233
|
abstract setHeight(doors: ComponentHandle[], height: number): PluginApiReturn<PluginDesignChangeResult>;
|
|
234
|
+
/**
|
|
235
|
+
* List the door catalog **groups** — the placement families (Swing, Sliding,
|
|
236
|
+
* Folding, Pivot, …), built-in groups merged with any team-custom types.
|
|
237
|
+
*
|
|
238
|
+
* @returns The groups as {@linkcode PluginObjectCatalogGroup}`[]` (`[]` when empty)
|
|
239
|
+
*
|
|
240
|
+
* @examplePrompt What kinds of doors can I place?
|
|
241
|
+
* @examplePrompt List the door groups in the catalog
|
|
242
|
+
* @examplePrompt Show me the door families available in this project
|
|
243
|
+
* @examplePrompt Which door types does this project support?
|
|
244
|
+
*
|
|
245
|
+
* # Example
|
|
246
|
+
* ```ts
|
|
247
|
+
* const groups = await snaptrude.design.doors.listCatalogGroups()
|
|
248
|
+
* for (const g of groups) console.log(g.dbType, g.label, g.source)
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
abstract listCatalogGroups(): PluginApiReturn<PluginObjectCatalogGroup[]>;
|
|
252
|
+
/**
|
|
253
|
+
* List the placeable door catalog (team + general libraries), optionally
|
|
254
|
+
* restricted to one group by its `dbType` token.
|
|
255
|
+
*
|
|
256
|
+
* @param group Restrict to one group's `dbType` (optional; e.g. `"singleDoor"`)
|
|
257
|
+
* @returns The catalog as {@linkcode PluginObjectCatalogItem}`[]` (`[]` when empty)
|
|
258
|
+
*
|
|
259
|
+
* @examplePrompt What doors can I place in this project?
|
|
260
|
+
* @examplePrompt List every door in the library
|
|
261
|
+
* @examplePrompt Show me the sliding doors I can add
|
|
262
|
+
* @examplePrompt Browse the door catalog
|
|
263
|
+
*
|
|
264
|
+
* # Example
|
|
265
|
+
* ```ts
|
|
266
|
+
* const [group] = await snaptrude.design.doors.listCatalogGroups()
|
|
267
|
+
* const items = await snaptrude.design.doors.listCatalog(group?.dbType)
|
|
268
|
+
* for (const item of items) console.log(item.id, item.name, item.thumbnailUrl)
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
abstract listCatalog(group?: string): PluginApiReturn<PluginObjectCatalogItem[]>;
|
|
272
|
+
/**
|
|
273
|
+
* Get a single door catalog item by its library id.
|
|
274
|
+
*
|
|
275
|
+
* @param id The catalog library id
|
|
276
|
+
* @returns The item, or `null` if no catalog item matches
|
|
277
|
+
*
|
|
278
|
+
* @examplePrompt Get the details of this door from the library
|
|
279
|
+
* @examplePrompt Look up the catalog entry for this door id
|
|
280
|
+
* @examplePrompt What is the cost of this door item?
|
|
281
|
+
* @examplePrompt Show me the family name of this door in the catalog
|
|
282
|
+
*
|
|
283
|
+
* # Example
|
|
284
|
+
* ```ts
|
|
285
|
+
* const [entry] = await snaptrude.design.doors.listCatalog()
|
|
286
|
+
* const item = await snaptrude.design.doors.getCatalogItem(entry.id)
|
|
287
|
+
* if (item) console.log(item.name, item.source, item.dbType)
|
|
288
|
+
* ```
|
|
289
|
+
*/
|
|
290
|
+
abstract getCatalogItem(id: string): PluginApiReturn<PluginObjectCatalogItem | null>;
|
|
291
|
+
/**
|
|
292
|
+
* Test whether a door catalog item exists for the given library id.
|
|
293
|
+
*
|
|
294
|
+
* @param id The catalog library id
|
|
295
|
+
* @returns `true` if it exists, otherwise `false`
|
|
296
|
+
*
|
|
297
|
+
* @examplePrompt Is this door still in the library?
|
|
298
|
+
* @examplePrompt Check whether a door catalog item with this id exists
|
|
299
|
+
* @examplePrompt Does my team library have this door?
|
|
300
|
+
* @examplePrompt Verify the door is available before placing it
|
|
301
|
+
*
|
|
302
|
+
* # Example
|
|
303
|
+
* ```ts
|
|
304
|
+
* const [entry] = await snaptrude.design.doors.listCatalog()
|
|
305
|
+
* const stillAvailable = await snaptrude.design.doors.exists(entry.id)
|
|
306
|
+
* console.log(stillAvailable ? "safe to place" : "removed from library")
|
|
307
|
+
* ```
|
|
308
|
+
*/
|
|
309
|
+
abstract exists(id: string): PluginApiReturn<boolean>;
|
|
206
310
|
}
|
|
207
311
|
/**
|
|
208
312
|
* Arguments for the single-door read methods.
|
|
@@ -215,6 +319,21 @@ export declare const PluginDesignDoorArgs: z.ZodObject<{
|
|
|
215
319
|
door: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
|
|
216
320
|
}, z.core.$strip>;
|
|
217
321
|
export type PluginDesignDoorArgs = z.infer<typeof PluginDesignDoorArgs>;
|
|
322
|
+
/**
|
|
323
|
+
* A door's dimensions (engine units), symmetric with {@linkcode PluginWindowDimensions}.
|
|
324
|
+
*
|
|
325
|
+
* | Property | Type | Description |
|
|
326
|
+
* |---|---|---|
|
|
327
|
+
* | `width` | `number` | Along the wall |
|
|
328
|
+
* | `height` | `number` | Vertical |
|
|
329
|
+
* | `thickness` | `number` | Through the wall (engine `length` axis) |
|
|
330
|
+
*/
|
|
331
|
+
export declare const PluginDoorDimensions: z.ZodObject<{
|
|
332
|
+
width: z.ZodNumber;
|
|
333
|
+
height: z.ZodNumber;
|
|
334
|
+
thickness: z.ZodNumber;
|
|
335
|
+
}, z.core.$strip>;
|
|
336
|
+
export type PluginDoorDimensions = z.infer<typeof PluginDoorDimensions>;
|
|
218
337
|
/** Mirror axis — tokens mirror the engine `FlipDirection` verbatim (§6.1). */
|
|
219
338
|
export declare const PluginMirrorAxis: z.ZodEnum<{
|
|
220
339
|
x: "x";
|
|
@@ -265,4 +384,80 @@ export declare const PluginDesignDoorSetHeightArgs: z.ZodObject<{
|
|
|
265
384
|
height: z.ZodNumber;
|
|
266
385
|
}, z.core.$strip>;
|
|
267
386
|
export type PluginDesignDoorSetHeightArgs = z.infer<typeof PluginDesignDoorSetHeightArgs>;
|
|
387
|
+
/**
|
|
388
|
+
* A door/window catalog **group** — a placement family (e.g. Swing, Sliding,
|
|
389
|
+
* Casement). Shared by `design.doors` and `design.windows`.
|
|
390
|
+
*
|
|
391
|
+
* | Property | Type | Description |
|
|
392
|
+
* |---|---|---|
|
|
393
|
+
* | `dbType` | `string` | Stable engine token (e.g. `singleDoor`, `casementDouble`) |
|
|
394
|
+
* | `label` | `string` | Human-readable group label (e.g. `"Swing - 1 Shutter"`) |
|
|
395
|
+
* | `source` | `'default' \| 'team'` | Built-in group or a team-custom type |
|
|
396
|
+
*/
|
|
397
|
+
export declare const PluginObjectCatalogGroup: z.ZodObject<{
|
|
398
|
+
dbType: z.ZodString;
|
|
399
|
+
label: z.ZodString;
|
|
400
|
+
source: z.ZodEnum<{
|
|
401
|
+
default: "default";
|
|
402
|
+
team: "team";
|
|
403
|
+
}>;
|
|
404
|
+
}, z.core.$strip>;
|
|
405
|
+
export type PluginObjectCatalogGroup = z.infer<typeof PluginObjectCatalogGroup>;
|
|
406
|
+
/**
|
|
407
|
+
* A placeable door/window catalog **item** (value record — not a scene
|
|
408
|
+
* entity/handle). Shared by `design.doors` and `design.windows`; symmetric with
|
|
409
|
+
* {@linkcode PluginFurnitureCatalogItem}. The raw mesh (`.babylon`) URL is never
|
|
410
|
+
* exposed — only `thumbnailUrl`.
|
|
411
|
+
*
|
|
412
|
+
* | Property | Type | Description |
|
|
413
|
+
* |---|---|---|
|
|
414
|
+
* | `id` | `string` | Library id (team `_id` or general `fullName`) — pass to `design.create.door`/`window` |
|
|
415
|
+
* | `name` | `string` | Display name |
|
|
416
|
+
* | `source` | `'team' \| 'general'` | Which library it came from |
|
|
417
|
+
* | `dbType` | `string` | The group token it belongs to (e.g. `singleDoor`) |
|
|
418
|
+
* | `subType` | `string`? | Engine sub-type (optional) |
|
|
419
|
+
* | `thumbnailUrl` | `string`? | Preview thumbnail URL (optional) |
|
|
420
|
+
* | `cost` | `number`? | Cost (optional; team items) |
|
|
421
|
+
* | `familyName` | `string`? | Family name (optional) |
|
|
422
|
+
*/
|
|
423
|
+
export declare const PluginObjectCatalogItem: z.ZodObject<{
|
|
424
|
+
id: z.ZodString;
|
|
425
|
+
name: z.ZodString;
|
|
426
|
+
source: z.ZodEnum<{
|
|
427
|
+
team: "team";
|
|
428
|
+
general: "general";
|
|
429
|
+
}>;
|
|
430
|
+
dbType: z.ZodString;
|
|
431
|
+
subType: z.ZodOptional<z.ZodString>;
|
|
432
|
+
thumbnailUrl: z.ZodOptional<z.ZodString>;
|
|
433
|
+
cost: z.ZodOptional<z.ZodNumber>;
|
|
434
|
+
familyName: z.ZodOptional<z.ZodString>;
|
|
435
|
+
}, z.core.$strip>;
|
|
436
|
+
export type PluginObjectCatalogItem = z.infer<typeof PluginObjectCatalogItem>;
|
|
437
|
+
/**
|
|
438
|
+
* Arguments for {@linkcode PluginDesignDoorsApi.listCatalog}.
|
|
439
|
+
*
|
|
440
|
+
* | Property | Type | Description |
|
|
441
|
+
* |---|---|---|
|
|
442
|
+
* | `group` | `string`? | Restrict to one group's `dbType` token (optional) |
|
|
443
|
+
*/
|
|
444
|
+
export declare const PluginDesignDoorListCatalogArgs: z.ZodObject<{
|
|
445
|
+
group: z.ZodOptional<z.ZodString>;
|
|
446
|
+
}, z.core.$strip>;
|
|
447
|
+
export type PluginDesignDoorListCatalogArgs = z.infer<typeof PluginDesignDoorListCatalogArgs>;
|
|
448
|
+
/**
|
|
449
|
+
* Arguments for {@linkcode PluginDesignDoorsApi.getCatalogItem} / {@linkcode PluginDesignDoorsApi.exists}.
|
|
450
|
+
*
|
|
451
|
+
* | Property | Type | Description |
|
|
452
|
+
* |---|---|---|
|
|
453
|
+
* | `id` | `string` | The catalog library id |
|
|
454
|
+
*/
|
|
455
|
+
export declare const PluginDesignDoorGetCatalogItemArgs: z.ZodObject<{
|
|
456
|
+
id: z.ZodString;
|
|
457
|
+
}, z.core.$strip>;
|
|
458
|
+
export type PluginDesignDoorGetCatalogItemArgs = z.infer<typeof PluginDesignDoorGetCatalogItemArgs>;
|
|
459
|
+
export declare const PluginDesignDoorExistsArgs: z.ZodObject<{
|
|
460
|
+
id: z.ZodString;
|
|
461
|
+
}, z.core.$strip>;
|
|
462
|
+
export type PluginDesignDoorExistsArgs = z.infer<typeof PluginDesignDoorExistsArgs>;
|
|
268
463
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/doors/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/doors/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@ export declare abstract class PluginDesignEditApi {
|
|
|
43
43
|
export declare const PluginDesignOffsetSplitArgs: z.ZodObject<{
|
|
44
44
|
component: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
|
|
45
45
|
offsetDistance: z.ZodNumber;
|
|
46
|
-
profilePickPoint: z.ZodOptional<z.ZodPipe<z.
|
|
46
|
+
profilePickPoint: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
|
|
47
47
|
}, z.core.$strip>;
|
|
48
48
|
export type PluginDesignOffsetSplitArgs = z.infer<typeof PluginDesignOffsetSplitArgs>;
|
|
49
49
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -38,7 +38,7 @@ export declare const ErasableEdgeRef: z.ZodObject<{
|
|
|
38
38
|
}>;
|
|
39
39
|
edgeWeight: z.ZodNumber;
|
|
40
40
|
components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
|
|
41
|
-
snapPoint: z.ZodPipe<z.
|
|
41
|
+
snapPoint: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
|
|
42
42
|
}, z.core.$strip>;
|
|
43
43
|
export type ErasableEdgeRef = z.infer<typeof ErasableEdgeRef>;
|
|
44
44
|
/**
|
|
@@ -77,7 +77,7 @@ export declare const PluginDesignEraseEdgeArgs: z.ZodObject<{
|
|
|
77
77
|
}>;
|
|
78
78
|
edgeWeight: z.ZodNumber;
|
|
79
79
|
components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
|
|
80
|
-
snapPoint: z.ZodPipe<z.
|
|
80
|
+
snapPoint: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
|
|
81
81
|
}, z.core.$strip>;
|
|
82
82
|
}, z.core.$strip>;
|
|
83
83
|
export type PluginDesignEraseEdgeArgs = z.infer<typeof PluginDesignEraseEdgeArgs>;
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import { PluginApiReturn } from "../../types";
|
|
3
|
+
/**
|
|
4
|
+
* `snaptrude.design.family.*` — author NATIVE parametric families from a JSON spec.
|
|
5
|
+
*
|
|
6
|
+
* A parametric family is a reusable, parameter-driven building component: a
|
|
7
|
+
* curtain-wall panel, a louvre screen, a balustrade, a shading fin. Unlike the
|
|
8
|
+
* rest of `design.*`, you do not build one out of geometry calls — you write a
|
|
9
|
+
* JSON **spec** describing its parameters and its geometry rules, and the host
|
|
10
|
+
* compiles that into a live parametric definition the user can place, flex and
|
|
11
|
+
* save to their library.
|
|
12
|
+
*
|
|
13
|
+
* ## Workflow
|
|
14
|
+
*
|
|
15
|
+
* ```
|
|
16
|
+
* getReference() read the spec DSL once — grammar, ops, expressions, example
|
|
17
|
+
* prepare({ bundle }) validate + compile + show a live ghost; nothing committed
|
|
18
|
+
* flex({ values }) re-run at new values; returns the geometry delta
|
|
19
|
+
* place() arm placement — the USER clicks to drop it
|
|
20
|
+
* create({ name }) commit it to the project's family library
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ## Read getReference() first
|
|
24
|
+
*
|
|
25
|
+
* The spec DSL is a closed expression language with its own op set, coordinate
|
|
26
|
+
* convention (**+Y up, integer millimetres** — not Snaptrude's babylon units)
|
|
27
|
+
* and part-naming law. It is deliberately NOT duplicated in these types:
|
|
28
|
+
* {@linkcode PluginDesignFamilyApi.getReference} returns the whole reference,
|
|
29
|
+
* generated from a family that is actually registered in the host, so the
|
|
30
|
+
* documentation cannot drift from what the compiler accepts.
|
|
31
|
+
*
|
|
32
|
+
* ## The repair contract
|
|
33
|
+
*
|
|
34
|
+
* {@linkcode PluginDesignFamilyApi.prepare} does **not** throw on an invalid
|
|
35
|
+
* spec — it returns `{ ok: false, errors }` where each error carries a JSON
|
|
36
|
+
* pointer into the bundle you sent (e.g. `"/root/geometry/2/body/0/w"`). Read
|
|
37
|
+
* `errors[0].path`, fix that node, and call `prepare` again. A failed `prepare`
|
|
38
|
+
* leaves the previous good draft standing, so it costs nothing but the node you
|
|
39
|
+
* broke. Re-authoring from scratch throws away everything already correct.
|
|
40
|
+
*
|
|
41
|
+
* Accessed via `snaptrude.design.family`.
|
|
42
|
+
*/
|
|
43
|
+
export declare abstract class PluginDesignFamilyApi {
|
|
44
|
+
constructor();
|
|
45
|
+
/**
|
|
46
|
+
* Read the family-spec DSL reference: grammar, the op table, the expression
|
|
47
|
+
* whitelist, the coordinate convention, the repair contract, and a worked
|
|
48
|
+
* example taken from a registered family.
|
|
49
|
+
*
|
|
50
|
+
* Read this before authoring a family for the first time in a session. The
|
|
51
|
+
* DSL is a closed language — a guessed op or function is a rejected spec.
|
|
52
|
+
*
|
|
53
|
+
* @returns The reference text
|
|
54
|
+
*
|
|
55
|
+
* @examplePrompt How do I write a parametric family spec?
|
|
56
|
+
* @examplePrompt Show me the family DSL
|
|
57
|
+
*
|
|
58
|
+
* # Example
|
|
59
|
+
* ```ts
|
|
60
|
+
* const { reference } = await snaptrude.design.family.getReference()
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
abstract getReference(): PluginApiReturn<PluginFamilyReference>;
|
|
64
|
+
/**
|
|
65
|
+
* Validate, compile and preview a family spec. Nothing is committed to the
|
|
66
|
+
* model or the library — call {@linkcode PluginDesignFamilyApi.place} or
|
|
67
|
+
* {@linkcode PluginDesignFamilyApi.create} for that.
|
|
68
|
+
*
|
|
69
|
+
* Safe to call repeatedly while iterating. On success, check `partCount` and
|
|
70
|
+
* `bbox` against what you intended before treating the family as correct — a
|
|
71
|
+
* facade that built 3 parts, or a 3 m screen reporting 40 m of height, is a
|
|
72
|
+
* visible bug the validator cannot catch.
|
|
73
|
+
*
|
|
74
|
+
* @param args The spec bundle, as `{ bundle }` or `{ spec }`
|
|
75
|
+
* @returns Build report, or `{ ok: false, errors }` with JSON-pointer paths
|
|
76
|
+
*
|
|
77
|
+
* @examplePrompt Make a louvre screen with adjustable blade count and tilt
|
|
78
|
+
* @examplePrompt Design a curtain wall panel family with 8 bays
|
|
79
|
+
* @examplePrompt Create a railing family I can adjust
|
|
80
|
+
*
|
|
81
|
+
* # Example
|
|
82
|
+
* ```ts
|
|
83
|
+
* const r = await snaptrude.design.family.prepare({ bundle })
|
|
84
|
+
* if (!r.ok) console.error(r.errors[0].path, r.errors[0].message)
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
abstract prepare(args: PluginDesignFamilyPrepareArgs): PluginApiReturn<PluginFamilyPrepareResult>;
|
|
88
|
+
/**
|
|
89
|
+
* Re-run the prepared family's recipe at new parameter values.
|
|
90
|
+
*
|
|
91
|
+
* Values are merged over the current ones and clamped to the parameter
|
|
92
|
+
* sheet's min/max, so a partial `{ bays: 6 }` is fine. The returned `changed`
|
|
93
|
+
* buckets are the host's own diff of what the geometry did — flexing a
|
|
94
|
+
* driving parameter and reporting them demonstrates the family is parametric.
|
|
95
|
+
*
|
|
96
|
+
* @param args The parameter values to change
|
|
97
|
+
* @returns The new build plus the geometry delta
|
|
98
|
+
*
|
|
99
|
+
* @examplePrompt Change it to 6 bays
|
|
100
|
+
* @examplePrompt Show me what happens with 20 blades
|
|
101
|
+
*
|
|
102
|
+
* # Example
|
|
103
|
+
* ```ts
|
|
104
|
+
* const { changed } = await snaptrude.design.family.flex({ values: { bays: 6 } })
|
|
105
|
+
* console.log(`removed ${changed.removed}, rebuilt ${changed.rebuilt}`)
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
abstract flex(args: PluginDesignFamilyFlexArgs): PluginApiReturn<PluginFamilyFlexResult>;
|
|
109
|
+
/**
|
|
110
|
+
* The prepared family's spec bundle, or `null` when nothing is prepared.
|
|
111
|
+
*
|
|
112
|
+
* @returns The draft bundle, or `null`
|
|
113
|
+
*
|
|
114
|
+
* # Example
|
|
115
|
+
* ```ts
|
|
116
|
+
* const bundle = await snaptrude.design.family.get()
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
abstract get(): PluginApiReturn<PluginFamilyBundle | null>;
|
|
120
|
+
/**
|
|
121
|
+
* Every parametric family registered in this session — native and imported.
|
|
122
|
+
*
|
|
123
|
+
* @returns One summary per family
|
|
124
|
+
*
|
|
125
|
+
* @examplePrompt What families are available?
|
|
126
|
+
*
|
|
127
|
+
* # Example
|
|
128
|
+
* ```ts
|
|
129
|
+
* const families = await snaptrude.design.family.list()
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
abstract list(): PluginApiReturn<PluginFamilySummary[]>;
|
|
133
|
+
/**
|
|
134
|
+
* Arm placement with the prepared family.
|
|
135
|
+
*
|
|
136
|
+
* This does **not** create geometry. It puts the editor into placement mode
|
|
137
|
+
* with a ghost on the cursor; the user clicks in the canvas to drop it, the
|
|
138
|
+
* same as for any other family. Tell the user to click.
|
|
139
|
+
*
|
|
140
|
+
* @returns Which family was armed
|
|
141
|
+
*
|
|
142
|
+
* @examplePrompt Place it in the model
|
|
143
|
+
* @examplePrompt Let me put this on the facade
|
|
144
|
+
*
|
|
145
|
+
* # Example
|
|
146
|
+
* ```ts
|
|
147
|
+
* await snaptrude.design.family.place()
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
abstract place(): PluginApiReturn<PluginFamilyPlaceResult>;
|
|
151
|
+
/**
|
|
152
|
+
* Commit the prepared bundle to the project's parametric-definition library,
|
|
153
|
+
* so it survives the session and appears in the Families panel.
|
|
154
|
+
*
|
|
155
|
+
* @param args Optional library name and team scope
|
|
156
|
+
* @returns The catalogued definition's id and version
|
|
157
|
+
*
|
|
158
|
+
* @examplePrompt Save this as a family called Vertical Louvre
|
|
159
|
+
* @examplePrompt Add it to my library
|
|
160
|
+
*
|
|
161
|
+
* # Example
|
|
162
|
+
* ```ts
|
|
163
|
+
* const { definitionId } = await snaptrude.design.family.create({ name: "Louvre Screen" })
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
abstract create(args?: PluginDesignFamilyCreateArgs): PluginApiReturn<PluginFamilyCreateResult>;
|
|
167
|
+
}
|
|
168
|
+
/** The family-spec DSL reference returned by `getReference`. */
|
|
169
|
+
export interface PluginFamilyReference {
|
|
170
|
+
/** Grammar, op table, expression whitelist, repair contract, worked example. */
|
|
171
|
+
reference: string;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* A family spec bundle. `root` is the family; `deps` carries every spec
|
|
175
|
+
* reachable through an `instance` op, keyed by spec id, so a saved family is
|
|
176
|
+
* self-contained and reloads anywhere.
|
|
177
|
+
*
|
|
178
|
+
* The internal shape of a spec is documented by
|
|
179
|
+
* {@linkcode PluginDesignFamilyApi.getReference}, not by these types — it is a
|
|
180
|
+
* data DSL whose grammar changes independently of this API surface.
|
|
181
|
+
*/
|
|
182
|
+
export interface PluginFamilyBundle {
|
|
183
|
+
root: Record<string, unknown>;
|
|
184
|
+
deps?: Record<string, Record<string, unknown>>;
|
|
185
|
+
}
|
|
186
|
+
/** Axis-aligned extents of a built family. Integer millimetres, +Y up. */
|
|
187
|
+
export interface PluginFamilyBBox {
|
|
188
|
+
min: [number, number, number];
|
|
189
|
+
max: [number, number, number];
|
|
190
|
+
/** `[width, height, depth]` in millimetres. */
|
|
191
|
+
size: [number, number, number];
|
|
192
|
+
}
|
|
193
|
+
/** One row of a family's parameter sheet. */
|
|
194
|
+
export interface PluginFamilyParameter {
|
|
195
|
+
key: string;
|
|
196
|
+
label: string;
|
|
197
|
+
type: "length" | "integer" | "enum" | "text" | "boolean";
|
|
198
|
+
/** Current value. `length`/`integer` are numbers; the rest are strings. */
|
|
199
|
+
value: string | number;
|
|
200
|
+
default: string | number;
|
|
201
|
+
/**
|
|
202
|
+
* Whether this parameter actually drives geometry — INFERRED by the host from
|
|
203
|
+
* which names the spec's expressions reference. `false` means the value is
|
|
204
|
+
* stored and round-tripped but moves nothing.
|
|
205
|
+
*/
|
|
206
|
+
drivesGeometry: boolean;
|
|
207
|
+
min?: number;
|
|
208
|
+
max?: number;
|
|
209
|
+
options?: readonly string[];
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* A validation diagnostic. `path` is a JSON pointer into the submitted bundle —
|
|
213
|
+
* fix that node and re-`prepare`.
|
|
214
|
+
*/
|
|
215
|
+
export interface PluginFamilyDiagnostic {
|
|
216
|
+
/** JSON pointer, e.g. `"/root/geometry/2/body/0/w"`. */
|
|
217
|
+
path: string;
|
|
218
|
+
code: "schema" | "bad-expression" | "unknown-name" | "unknown-def" | "cycle" | "duplicate-name" | "unbounded-repeat" | "depth" | "bad-dimension";
|
|
219
|
+
message: string;
|
|
220
|
+
hint?: string;
|
|
221
|
+
}
|
|
222
|
+
/** What `prepare` reports. */
|
|
223
|
+
export interface PluginFamilyPrepareResult {
|
|
224
|
+
/** `false` means the spec was rejected — read `errors`, fix, re-prepare. */
|
|
225
|
+
ok: boolean;
|
|
226
|
+
familyId?: string;
|
|
227
|
+
version?: number;
|
|
228
|
+
label?: string;
|
|
229
|
+
/** How many parts the family built. Sanity-check against intent. */
|
|
230
|
+
partCount?: number;
|
|
231
|
+
/** Extents in millimetres. Sanity-check against intent. */
|
|
232
|
+
bbox?: PluginFamilyBBox;
|
|
233
|
+
evalMs?: number;
|
|
234
|
+
parameters?: PluginFamilyParameter[];
|
|
235
|
+
/** Computed quantities, when the spec declares a `takeoff` block. */
|
|
236
|
+
takeoff?: Record<string, number | string>;
|
|
237
|
+
/** The first few part names — enough to check the naming came out right. */
|
|
238
|
+
sampleParts?: string[];
|
|
239
|
+
errors: PluginFamilyDiagnostic[];
|
|
240
|
+
warnings: PluginFamilyDiagnostic[];
|
|
241
|
+
/** Set when the bundle validated but threw while building. */
|
|
242
|
+
error?: string;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* The host's diff of what a flex did to the geometry. This is the evidence that
|
|
246
|
+
* a family is parametric.
|
|
247
|
+
*/
|
|
248
|
+
export interface PluginFamilyChangeBuckets {
|
|
249
|
+
added: number;
|
|
250
|
+
removed: number;
|
|
251
|
+
moved: number;
|
|
252
|
+
rebuilt: number;
|
|
253
|
+
addedNames: string[];
|
|
254
|
+
removedNames: string[];
|
|
255
|
+
}
|
|
256
|
+
/** What `flex` reports. */
|
|
257
|
+
export interface PluginFamilyFlexResult {
|
|
258
|
+
ok: boolean;
|
|
259
|
+
/** The RESOLVED values after merge + clamping — not necessarily what was sent. */
|
|
260
|
+
values?: Record<string, number | string>;
|
|
261
|
+
partCount?: number;
|
|
262
|
+
bbox?: PluginFamilyBBox;
|
|
263
|
+
evalMs?: number;
|
|
264
|
+
changed?: PluginFamilyChangeBuckets;
|
|
265
|
+
takeoff?: Record<string, number | string>;
|
|
266
|
+
error?: string;
|
|
267
|
+
}
|
|
268
|
+
/** One registered parametric family. */
|
|
269
|
+
export interface PluginFamilySummary {
|
|
270
|
+
id: string;
|
|
271
|
+
version: number;
|
|
272
|
+
label: string;
|
|
273
|
+
category?: string;
|
|
274
|
+
/** Number of rows on the family's parameter sheet. */
|
|
275
|
+
parameters: number;
|
|
276
|
+
}
|
|
277
|
+
/** What `place` reports. */
|
|
278
|
+
export interface PluginFamilyPlaceResult {
|
|
279
|
+
ok: boolean;
|
|
280
|
+
familyId?: string;
|
|
281
|
+
version?: number;
|
|
282
|
+
error?: string;
|
|
283
|
+
}
|
|
284
|
+
/** What `create` reports. */
|
|
285
|
+
export interface PluginFamilyCreateResult {
|
|
286
|
+
ok: boolean;
|
|
287
|
+
definitionId?: string;
|
|
288
|
+
version?: number;
|
|
289
|
+
guid?: string;
|
|
290
|
+
error?: string;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* A spec bundle as it crosses the boundary: `root` plus optional `deps`.
|
|
294
|
+
*
|
|
295
|
+
* Loose by design — the spec grammar is a data DSL validated by the host's own
|
|
296
|
+
* validator, which returns JSON-pointer diagnostics far more useful than a Zod
|
|
297
|
+
* shape error. This schema only guarantees the envelope is an object.
|
|
298
|
+
*/
|
|
299
|
+
export declare const PluginFamilyBundleSchema: z.ZodObject<{
|
|
300
|
+
root: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
301
|
+
deps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
302
|
+
}, z.core.$strip>;
|
|
303
|
+
/**
|
|
304
|
+
* Arguments for {@linkcode PluginDesignFamilyApi.prepare}.
|
|
305
|
+
*
|
|
306
|
+
* | Property | Type | Description |
|
|
307
|
+
* |---|---|---|
|
|
308
|
+
* | `bundle` | {@linkcode PluginFamilyBundle} | The family spec bundle |
|
|
309
|
+
* | `spec` | {@linkcode PluginFamilyBundle} | Alias for `bundle` |
|
|
310
|
+
*
|
|
311
|
+
* Exactly one of `bundle` / `spec` is required. A bare `FamilySpec` (no `root`
|
|
312
|
+
* wrapper) is also accepted by the host and wrapped for the caller.
|
|
313
|
+
*/
|
|
314
|
+
export declare const PluginDesignFamilyPrepareArgs: z.ZodObject<{
|
|
315
|
+
bundle: z.ZodOptional<z.ZodObject<{
|
|
316
|
+
root: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
317
|
+
deps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
318
|
+
}, z.core.$strip>>;
|
|
319
|
+
spec: z.ZodOptional<z.ZodObject<{
|
|
320
|
+
root: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
321
|
+
deps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
322
|
+
}, z.core.$strip>>;
|
|
323
|
+
}, z.core.$strip>;
|
|
324
|
+
export type PluginDesignFamilyPrepareArgs = z.infer<typeof PluginDesignFamilyPrepareArgs>;
|
|
325
|
+
/**
|
|
326
|
+
* Arguments for {@linkcode PluginDesignFamilyApi.flex}.
|
|
327
|
+
*
|
|
328
|
+
* | Property | Type | Description |
|
|
329
|
+
* |---|---|---|
|
|
330
|
+
* | `values` | `Record<string, number \| string>` | Parameter values to change (partial) |
|
|
331
|
+
*/
|
|
332
|
+
export declare const PluginDesignFamilyFlexArgs: z.ZodObject<{
|
|
333
|
+
values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
334
|
+
}, z.core.$strip>;
|
|
335
|
+
export type PluginDesignFamilyFlexArgs = z.infer<typeof PluginDesignFamilyFlexArgs>;
|
|
336
|
+
/**
|
|
337
|
+
* Arguments for {@linkcode PluginDesignFamilyApi.create}.
|
|
338
|
+
*
|
|
339
|
+
* | Property | Type | Description |
|
|
340
|
+
* |---|---|---|
|
|
341
|
+
* | `name` | `string` | Library name; defaults to the spec's own label |
|
|
342
|
+
* | `teamId` | `string` | Team library to save into; omit for personal |
|
|
343
|
+
*/
|
|
344
|
+
export declare const PluginDesignFamilyCreateArgs: z.ZodObject<{
|
|
345
|
+
name: z.ZodOptional<z.ZodString>;
|
|
346
|
+
teamId: z.ZodOptional<z.ZodString>;
|
|
347
|
+
}, z.core.$strip>;
|
|
348
|
+
export type PluginDesignFamilyCreateArgs = z.infer<typeof PluginDesignFamilyCreateArgs>;
|
|
349
|
+
//# sourceMappingURL=family.d.ts.map
|