@snaptrude/plugin-core 0.2.9 → 0.5.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/AGENTS.md +128 -50
- package/CHANGELOG.md +52 -6
- package/api-manifest.full.json +3999 -0
- package/api-manifest.json +3845 -0
- package/dist/api/core/buildings.d.ts +427 -0
- package/dist/api/core/buildings.d.ts.map +1 -0
- package/dist/api/core/comment/index.d.ts +230 -0
- package/dist/api/core/comment/index.d.ts.map +1 -0
- package/dist/api/core/geom/create/index.d.ts +247 -0
- package/dist/api/core/geom/create/index.d.ts.map +1 -0
- package/dist/api/core/geom/delete/index.d.ts +72 -0
- package/dist/api/core/geom/delete/index.d.ts.map +1 -0
- package/dist/api/core/geom/index.d.ts +24 -23
- package/dist/api/core/geom/index.d.ts.map +1 -1
- package/dist/api/core/geom/query/arc.d.ts +169 -0
- package/dist/api/core/geom/query/arc.d.ts.map +1 -0
- package/dist/api/core/geom/query/brep.d.ts +402 -0
- package/dist/api/core/geom/query/brep.d.ts.map +1 -0
- package/dist/api/core/geom/query/circle.d.ts +378 -0
- package/dist/api/core/geom/query/circle.d.ts.map +1 -0
- package/dist/api/core/geom/query/contour.d.ts +450 -0
- package/dist/api/core/geom/query/contour.d.ts.map +1 -0
- package/dist/api/core/geom/query/curve.d.ts +918 -0
- package/dist/api/core/geom/query/curve.d.ts.map +1 -0
- package/dist/api/core/geom/query/edge.d.ts +128 -0
- package/dist/api/core/geom/query/edge.d.ts.map +1 -0
- package/dist/api/core/geom/query/face.d.ts +363 -0
- package/dist/api/core/geom/query/face.d.ts.map +1 -0
- package/dist/api/core/geom/query/halfedge.d.ts +206 -0
- package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
- package/dist/api/core/geom/query/index.d.ts +61 -0
- package/dist/api/core/geom/query/index.d.ts.map +1 -0
- package/dist/api/core/geom/query/profile.d.ts +410 -0
- package/dist/api/core/geom/query/profile.d.ts.map +1 -0
- package/dist/api/core/geom/query/vertex.d.ts +187 -0
- package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
- package/dist/api/core/geom/update/contour.d.ts +272 -0
- package/dist/api/core/geom/update/contour.d.ts.map +1 -0
- package/dist/api/core/geom/update/curve.d.ts +180 -0
- package/dist/api/core/geom/update/curve.d.ts.map +1 -0
- package/dist/api/core/geom/update/index.d.ts +27 -0
- package/dist/api/core/geom/update/index.d.ts.map +1 -0
- package/dist/api/core/geom/update/profile.d.ts +329 -0
- package/dist/api/core/geom/update/profile.d.ts.map +1 -0
- package/dist/api/core/groups.d.ts +485 -0
- package/dist/api/core/groups.d.ts.map +1 -0
- package/dist/api/core/history/index.d.ts +78 -0
- package/dist/api/core/history/index.d.ts.map +1 -0
- package/dist/api/core/index.d.ts +46 -1
- package/dist/api/core/index.d.ts.map +1 -1
- package/dist/api/core/layers.d.ts +402 -0
- package/dist/api/core/layers.d.ts.map +1 -0
- package/dist/api/core/math/quat.d.ts +111 -128
- package/dist/api/core/math/quat.d.ts.map +1 -1
- package/dist/api/core/math/vec3.d.ts +120 -102
- package/dist/api/core/math/vec3.d.ts.map +1 -1
- package/dist/api/core/project/index.d.ts +399 -0
- package/dist/api/core/project/index.d.ts.map +1 -0
- package/dist/api/core/tags.d.ts +755 -0
- package/dist/api/core/tags.d.ts.map +1 -0
- package/dist/api/core/units/index.d.ts +175 -0
- package/dist/api/core/units/index.d.ts.map +1 -0
- package/dist/api/core/zoom/index.d.ts +45 -0
- package/dist/api/core/zoom/index.d.ts.map +1 -0
- package/dist/api/design/boolean/index.d.ts +168 -0
- package/dist/api/design/boolean/index.d.ts.map +1 -0
- package/dist/api/design/create/index.d.ts +828 -0
- package/dist/api/design/create/index.d.ts.map +1 -0
- package/dist/api/design/delete/index.d.ts +63 -0
- package/dist/api/design/delete/index.d.ts.map +1 -0
- package/dist/api/design/doors/index.d.ts +268 -0
- package/dist/api/design/doors/index.d.ts.map +1 -0
- package/dist/api/design/edit/index.d.ts +49 -0
- package/dist/api/design/edit/index.d.ts.map +1 -0
- package/dist/api/design/erase/index.d.ts +160 -0
- package/dist/api/design/erase/index.d.ts.map +1 -0
- package/dist/api/design/furniture/index.d.ts +123 -0
- package/dist/api/design/furniture/index.d.ts.map +1 -0
- package/dist/api/design/index.d.ts +153 -0
- package/dist/api/design/index.d.ts.map +1 -0
- package/dist/api/design/lock.d.ts +41 -0
- package/dist/api/design/lock.d.ts.map +1 -0
- package/dist/api/design/materials/index.d.ts +297 -0
- package/dist/api/design/materials/index.d.ts.map +1 -0
- package/dist/api/design/query/geometry/index.d.ts +140 -0
- package/dist/api/design/query/geometry/index.d.ts.map +1 -0
- package/dist/api/design/query/index.d.ts +1011 -0
- package/dist/api/design/query/index.d.ts.map +1 -0
- package/dist/api/design/query/spaces.d.ts +221 -0
- package/dist/api/design/query/spaces.d.ts.map +1 -0
- package/dist/api/design/selection/index.d.ts +138 -0
- package/dist/api/design/selection/index.d.ts.map +1 -0
- package/dist/api/design/shared.d.ts +38 -0
- package/dist/api/design/shared.d.ts.map +1 -0
- package/dist/api/design/transform/index.d.ts +87 -0
- package/dist/api/design/transform/index.d.ts.map +1 -0
- package/dist/api/design/update/index.d.ts +178 -0
- package/dist/api/design/update/index.d.ts.map +1 -0
- package/dist/api/design/windows/index.d.ts +189 -0
- package/dist/api/design/windows/index.d.ts.map +1 -0
- package/dist/api/entity/buildableEnvelope.d.ts +51 -23
- package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
- package/dist/api/entity/department.d.ts +0 -98
- package/dist/api/entity/department.d.ts.map +1 -1
- package/dist/api/entity/index.d.ts +4 -9
- package/dist/api/entity/index.d.ts.map +1 -1
- package/dist/api/entity/referenceLine.d.ts +49 -106
- package/dist/api/entity/referenceLine.d.ts.map +1 -1
- package/dist/api/entity/space.d.ts +76 -828
- package/dist/api/entity/space.d.ts.map +1 -1
- package/dist/api/entity/story.d.ts +47 -37
- package/dist/api/entity/story.d.ts.map +1 -1
- package/dist/api/index.d.ts +17 -17
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/presentation/aiInspiration.d.ts +440 -0
- package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
- package/dist/api/presentation/diagrams.d.ts +81 -0
- package/dist/api/presentation/diagrams.d.ts.map +1 -0
- package/dist/api/presentation/import.d.ts +113 -0
- package/dist/api/presentation/import.d.ts.map +1 -0
- package/dist/api/presentation/index.d.ts +46 -0
- package/dist/api/presentation/index.d.ts.map +1 -0
- package/dist/api/presentation/sheets.d.ts +176 -0
- package/dist/api/presentation/sheets.d.ts.map +1 -0
- package/dist/api/presentation/views.d.ts +296 -0
- package/dist/api/presentation/views.d.ts.map +1 -0
- package/dist/api/program/adjacency.d.ts +155 -0
- package/dist/api/program/adjacency.d.ts.map +1 -0
- package/dist/api/program/areas.d.ts +360 -0
- package/dist/api/program/areas.d.ts.map +1 -0
- package/dist/api/program/classification.d.ts +135 -0
- package/dist/api/program/classification.d.ts.map +1 -0
- package/dist/api/program/cores.d.ts +174 -0
- package/dist/api/program/cores.d.ts.map +1 -0
- package/dist/api/program/departments.d.ts +431 -0
- package/dist/api/program/departments.d.ts.map +1 -0
- package/dist/api/program/index.d.ts +69 -0
- package/dist/api/program/index.d.ts.map +1 -0
- package/dist/api/program/layout.d.ts +63 -0
- package/dist/api/program/layout.d.ts.map +1 -0
- package/dist/api/program/metrics.d.ts +108 -0
- package/dist/api/program/metrics.d.ts.map +1 -0
- package/dist/api/program/site.d.ts +367 -0
- package/dist/api/program/site.d.ts.map +1 -0
- package/dist/api/program/spreadsheet.d.ts +2041 -0
- package/dist/api/program/spreadsheet.d.ts.map +1 -0
- package/dist/handles.d.ts +138 -0
- package/dist/handles.d.ts.map +1 -0
- package/dist/host-utils.d.ts +7 -5
- package/dist/host-utils.d.ts.map +1 -1
- package/dist/index.cjs +3897 -1542
- 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 +3326 -1462
- package/dist/index.js.map +1 -1
- package/package.json +6 -2
- package/scripts/generate-manifest.mjs +193 -0
- package/scripts/generate-manifest.test.mjs +193 -0
- package/src/api/core/buildings.ts +485 -0
- package/src/api/core/comment/index.ts +258 -0
- package/src/api/core/geom/create/index.ts +293 -0
- package/src/api/core/geom/delete/index.ts +78 -0
- package/src/api/core/geom/index.ts +24 -23
- package/src/api/core/geom/query/arc.ts +169 -0
- package/src/api/core/geom/query/brep.ts +444 -0
- package/src/api/core/geom/query/circle.ts +404 -0
- package/src/api/core/geom/query/contour.ts +540 -0
- package/src/api/core/geom/query/curve.ts +1078 -0
- package/src/api/core/geom/query/edge.ts +130 -0
- package/src/api/core/geom/query/face.ts +403 -0
- package/src/api/core/geom/query/halfedge.ts +210 -0
- package/src/api/core/geom/query/index.ts +63 -0
- package/src/api/core/geom/query/profile.ts +473 -0
- package/src/api/core/geom/query/vertex.ts +205 -0
- package/src/api/core/geom/update/contour.ts +315 -0
- package/src/api/core/geom/update/curve.ts +209 -0
- package/src/api/core/geom/update/index.ts +29 -0
- package/src/api/core/geom/update/profile.ts +377 -0
- package/src/api/core/groups.ts +521 -0
- package/src/api/core/history/index.ts +84 -0
- package/src/api/core/index.ts +46 -1
- package/src/api/core/layers.ts +333 -0
- package/src/api/core/math/quat.ts +112 -235
- package/src/api/core/math/vec3.ts +124 -159
- package/src/api/core/project/index.ts +418 -0
- package/src/api/core/tags.ts +808 -0
- package/src/api/core/units/index.ts +164 -0
- package/src/api/core/zoom/index.ts +47 -0
- package/src/api/design/boolean/index.ts +179 -0
- package/src/api/design/create/index.ts +886 -0
- package/src/api/design/delete/index.ts +67 -0
- package/src/api/design/doors/index.ts +285 -0
- package/src/api/design/edit/index.ts +54 -0
- package/src/api/design/erase/index.ts +151 -0
- package/src/api/design/furniture/index.ts +130 -0
- package/src/api/design/index.ts +162 -0
- package/src/api/design/lock.ts +42 -0
- package/src/api/design/materials/index.ts +301 -0
- package/src/api/design/query/geometry/index.ts +166 -0
- package/src/api/design/query/index.ts +937 -0
- package/src/api/design/query/spaces.ts +132 -0
- package/src/api/design/selection/index.ts +144 -0
- package/src/api/design/shared.ts +40 -0
- package/src/api/design/transform/index.ts +93 -0
- package/src/api/design/update/index.ts +117 -0
- package/src/api/design/windows/index.ts +207 -0
- package/src/api/entity/buildableEnvelope.ts +64 -23
- package/src/api/entity/department.ts +0 -113
- package/src/api/entity/index.ts +4 -9
- package/src/api/entity/referenceLine.ts +50 -38
- package/src/api/entity/space.ts +84 -440
- package/src/api/entity/story.ts +53 -42
- package/src/api/index.ts +17 -17
- package/src/api/presentation/aiInspiration.ts +362 -0
- package/src/api/presentation/diagrams.ts +84 -0
- package/src/api/presentation/import.ts +112 -0
- package/src/api/presentation/index.ts +48 -0
- package/src/api/presentation/sheets.ts +198 -0
- package/src/api/presentation/views.ts +303 -0
- package/src/api/program/adjacency.ts +164 -0
- package/src/api/program/areas.ts +335 -0
- package/src/api/program/classification.ts +138 -0
- package/src/api/program/cores.ts +171 -0
- package/src/api/program/departments.ts +465 -0
- package/src/api/program/index.ts +71 -0
- package/src/api/program/layout.ts +68 -0
- package/src/api/program/metrics.ts +120 -0
- package/src/api/program/site.ts +326 -0
- package/src/api/program/spreadsheet.ts +2075 -0
- package/src/handles.ts +148 -0
- package/src/host-utils.ts +10 -6
- package/src/index.ts +1 -0
- package/dist/api/core/geom/arc.d.ts +0 -81
- package/dist/api/core/geom/arc.d.ts.map +0 -1
- package/dist/api/core/geom/curve.d.ts +0 -70
- package/dist/api/core/geom/curve.d.ts.map +0 -1
- package/dist/api/core/geom/line.d.ts +0 -56
- package/dist/api/core/geom/line.d.ts.map +0 -1
- package/dist/api/core/geom/profile.d.ts +0 -121
- package/dist/api/core/geom/profile.d.ts.map +0 -1
- package/dist/api/documentation/aiInspiration.d.ts +0 -2155
- package/dist/api/documentation/aiInspiration.d.ts.map +0 -1
- package/dist/api/documentation/index.d.ts +0 -13
- package/dist/api/documentation/index.d.ts.map +0 -1
- package/dist/api/tools/copy.d.ts +0 -59
- package/dist/api/tools/copy.d.ts.map +0 -1
- package/dist/api/tools/index.d.ts +0 -29
- package/dist/api/tools/index.d.ts.map +0 -1
- package/dist/api/tools/offset.d.ts +0 -43
- package/dist/api/tools/offset.d.ts.map +0 -1
- package/dist/api/tools/selection.d.ts +0 -48
- package/dist/api/tools/selection.d.ts.map +0 -1
- package/dist/api/tools/transform.d.ts +0 -114
- package/dist/api/tools/transform.d.ts.map +0 -1
- package/dist/api/units/index.d.ts +0 -163
- package/dist/api/units/index.d.ts.map +0 -1
- package/src/api/core/geom/arc.ts +0 -70
- package/src/api/core/geom/curve.ts +0 -41
- package/src/api/core/geom/line.ts +0 -53
- package/src/api/core/geom/profile.ts +0 -94
- package/src/api/documentation/aiInspiration.ts +0 -871
- package/src/api/documentation/index.ts +0 -15
- package/src/api/tools/copy.ts +0 -55
- package/src/api/tools/index.ts +0 -35
- package/src/api/tools/offset.ts +0 -43
- package/src/api/tools/selection.ts +0 -51
- package/src/api/tools/transform.ts +0 -117
- package/src/api/units/index.ts +0 -163
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import { PluginApiReturn } from "../../types";
|
|
3
|
+
/**
|
|
4
|
+
* Buildings — read and edit the buildings of the active project.
|
|
5
|
+
*
|
|
6
|
+
* A **building** is the top of the project's spatial hierarchy: a named container
|
|
7
|
+
* of storeys, positioned by its base elevation. This namespace reads a building's
|
|
8
|
+
* identity and base elevation and lists the storeys it holds; storey detail is
|
|
9
|
+
* read through the entity story surface (`snaptrude.entity.story`).
|
|
10
|
+
*
|
|
11
|
+
* Reads return plain records and never throw for a missing building (`get` and
|
|
12
|
+
* `getActive` return `null`, `list` returns `[]`). Ids are stable public strings.
|
|
13
|
+
*
|
|
14
|
+
* Sub-namespace members typed as optional (`?`) are **authored ahead of the
|
|
15
|
+
* host** — declared so plugins and codegen can see the shape, but kept out of the
|
|
16
|
+
* discovery manifest until the host lands them (at which point they are promoted
|
|
17
|
+
* to required `abstract` members).
|
|
18
|
+
*
|
|
19
|
+
* Accessed via `snaptrude.core.buildings`.
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class PluginCoreBuildingsApi {
|
|
22
|
+
constructor();
|
|
23
|
+
/**
|
|
24
|
+
* List the buildings in the active project.
|
|
25
|
+
*
|
|
26
|
+
* @returns A {@linkcode PluginCoreBuildingsListResult} with a `buildings` array
|
|
27
|
+
* (empty when the project has none).
|
|
28
|
+
*
|
|
29
|
+
* @examplePrompt List all the buildings in my project
|
|
30
|
+
* @examplePrompt How many buildings are in this model?
|
|
31
|
+
* @examplePrompt Show every building with its base elevation
|
|
32
|
+
*
|
|
33
|
+
* # Example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const { buildings } = await snaptrude.core.buildings.list()
|
|
36
|
+
* for (const b of buildings) console.log(b.name, b.baseElevation)
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
abstract list(): PluginApiReturn<PluginCoreBuildingsListResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Get a single building by id.
|
|
42
|
+
*
|
|
43
|
+
* @param buildingId - The id of the building to read.
|
|
44
|
+
* @returns The matching {@linkcode PluginCoreBuildingRef}, or `null` if no
|
|
45
|
+
* building has that id.
|
|
46
|
+
*
|
|
47
|
+
* @examplePrompt Get the building with id blg_1
|
|
48
|
+
* @examplePrompt Look up a single building by its id
|
|
49
|
+
* @examplePrompt What is the base elevation of building blg_2?
|
|
50
|
+
*
|
|
51
|
+
* # Example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const building = await snaptrude.core.buildings.get("blg_1")
|
|
54
|
+
* if (building) console.log(building.name, building.baseElevation)
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
abstract get(buildingId: string): PluginApiReturn<PluginCoreBuildingsGetResult>;
|
|
58
|
+
/**
|
|
59
|
+
* List the storeys of a building.
|
|
60
|
+
*
|
|
61
|
+
* Returns the building's storeys as stable storey ids, in the project's storey
|
|
62
|
+
* order. Read each storey's detail through `snaptrude.entity.story`.
|
|
63
|
+
*
|
|
64
|
+
* @param buildingId - The id of the building whose storeys to list.
|
|
65
|
+
* @returns A {@linkcode PluginCoreBuildingsListStoreysResult} with a `storeyIds`
|
|
66
|
+
* array (empty when the building is missing or has no storeys).
|
|
67
|
+
*
|
|
68
|
+
* @examplePrompt List the storeys in building blg_1
|
|
69
|
+
* @examplePrompt How many floors does this building have?
|
|
70
|
+
* @examplePrompt Get the storey ids of the active building
|
|
71
|
+
*
|
|
72
|
+
* # Example
|
|
73
|
+
* ```ts
|
|
74
|
+
* const { storeyIds } = await snaptrude.core.buildings.listStoreys("blg_1")
|
|
75
|
+
* console.log(`${storeyIds.length} storeys`)
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
abstract listStoreys(buildingId: string): PluginApiReturn<PluginCoreBuildingsListStoreysResult>;
|
|
79
|
+
/**
|
|
80
|
+
* Get the active building.
|
|
81
|
+
*
|
|
82
|
+
* The active building is the one new storeys and edits target. Paired with
|
|
83
|
+
* {@linkcode PluginCoreBuildingsApi.setActive}.
|
|
84
|
+
*
|
|
85
|
+
* @returns A {@linkcode PluginCoreBuildingsGetActiveResult} with the active
|
|
86
|
+
* `buildingId`, or `null` if there is no active building.
|
|
87
|
+
*
|
|
88
|
+
* @examplePrompt Which building is active?
|
|
89
|
+
* @examplePrompt Get the current building
|
|
90
|
+
* @examplePrompt What building am I working in?
|
|
91
|
+
*
|
|
92
|
+
* # Example
|
|
93
|
+
* ```ts
|
|
94
|
+
* const active = await snaptrude.core.buildings.getActive()
|
|
95
|
+
* if (active) console.log(active.buildingId)
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
abstract getActive(): PluginApiReturn<PluginCoreBuildingsGetActiveResult>;
|
|
99
|
+
/**
|
|
100
|
+
* Make a building the active building.
|
|
101
|
+
*
|
|
102
|
+
* Paired with {@linkcode PluginCoreBuildingsApi.getActive}.
|
|
103
|
+
*
|
|
104
|
+
* @param buildingId - The id of the building to activate.
|
|
105
|
+
* @returns The id of the now-active building.
|
|
106
|
+
* @throws If no building has the given id.
|
|
107
|
+
*
|
|
108
|
+
* @examplePrompt Switch to building blg_2
|
|
109
|
+
* @examplePrompt Make this building the active one
|
|
110
|
+
* @examplePrompt Set the active building to blg_1
|
|
111
|
+
*
|
|
112
|
+
* # Example
|
|
113
|
+
* ```ts
|
|
114
|
+
* await snaptrude.core.buildings.setActive("blg_2")
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
abstract setActive(buildingId: string): PluginApiReturn<PluginCoreBuildingsSetActiveResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Create a new building.
|
|
120
|
+
*
|
|
121
|
+
* Adds a named building at the given base elevation (defaults to `0`). The new
|
|
122
|
+
* building starts empty — add storeys through the storeys namespace.
|
|
123
|
+
*
|
|
124
|
+
* @param name - Display name of the new building.
|
|
125
|
+
* @param baseElevation - Base elevation in meters (defaults to `0`).
|
|
126
|
+
* @returns The new building's id (read the full record back with
|
|
127
|
+
* {@linkcode PluginCoreBuildingsApi.get}).
|
|
128
|
+
* @throws If the building could not be created.
|
|
129
|
+
*
|
|
130
|
+
* @examplePrompt Create a building called Tower B
|
|
131
|
+
* @examplePrompt Add a new building at elevation 12 meters
|
|
132
|
+
* @examplePrompt Make a second building named Annex
|
|
133
|
+
*
|
|
134
|
+
* # Example
|
|
135
|
+
* ```ts
|
|
136
|
+
* const { buildingId } = await snaptrude.core.buildings.create("Tower B", 0)
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
abstract create(name: string, baseElevation?: number): PluginApiReturn<PluginCoreBuildingsCreateResult>;
|
|
140
|
+
/**
|
|
141
|
+
* Update a building's name and/or base elevation.
|
|
142
|
+
*
|
|
143
|
+
* A **sparse** update: omitted fields are left unchanged.
|
|
144
|
+
*
|
|
145
|
+
* @param buildingId - The id of the building to update.
|
|
146
|
+
* @param options - Any of `name`, `baseElevation`; omitted fields are left
|
|
147
|
+
* unchanged.
|
|
148
|
+
* @returns The updated {@linkcode PluginCoreBuildingRef}.
|
|
149
|
+
* @throws If no building has the given id.
|
|
150
|
+
*
|
|
151
|
+
* @examplePrompt Rename building blg_1 to Tower A
|
|
152
|
+
* @examplePrompt Move the building up to elevation 6 meters
|
|
153
|
+
* @examplePrompt Change the base elevation of blg_2
|
|
154
|
+
*
|
|
155
|
+
* # Example
|
|
156
|
+
* ```ts
|
|
157
|
+
* const building = await snaptrude.core.buildings.update("blg_1", { name: "Tower A" })
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
abstract update(buildingId: string, options?: {
|
|
161
|
+
name?: string;
|
|
162
|
+
baseElevation?: number;
|
|
163
|
+
}): PluginApiReturn<PluginCoreBuildingsUpdateResult>;
|
|
164
|
+
/**
|
|
165
|
+
* Copy a building.
|
|
166
|
+
*
|
|
167
|
+
* Copies the building — its storeys, components, and drawing layers — into a new
|
|
168
|
+
* building. `asInstances` controls the copy's geometry: `true` shares the source
|
|
169
|
+
* geometry as instances (low memory), `false` makes independent editable copies
|
|
170
|
+
* (the host defaults to `true`). Optionally override the copy's `name` and
|
|
171
|
+
* `baseElevation`.
|
|
172
|
+
*
|
|
173
|
+
* @param buildingId - The id of the building to copy.
|
|
174
|
+
* @param options - Optional `name`, `baseElevation`, `asInstances` overrides
|
|
175
|
+
* for the copy.
|
|
176
|
+
* @returns The new building's id.
|
|
177
|
+
* @throws If no building has the given id.
|
|
178
|
+
*
|
|
179
|
+
* @examplePrompt Copy building blg_1
|
|
180
|
+
* @examplePrompt Make an independent editable copy of this building
|
|
181
|
+
* @examplePrompt Copy Tower A as instances to save memory
|
|
182
|
+
*
|
|
183
|
+
* # Example
|
|
184
|
+
* ```ts
|
|
185
|
+
* const { buildingId } = await snaptrude.core.buildings.copy("blg_1", {
|
|
186
|
+
* name: "Tower A Copy",
|
|
187
|
+
* asInstances: false,
|
|
188
|
+
* })
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
abstract copy(buildingId: string, options?: {
|
|
192
|
+
name?: string;
|
|
193
|
+
baseElevation?: number;
|
|
194
|
+
asInstances?: boolean;
|
|
195
|
+
}): PluginApiReturn<PluginCoreBuildingsCopyResult>;
|
|
196
|
+
/**
|
|
197
|
+
* Delete a building.
|
|
198
|
+
*
|
|
199
|
+
* **Gated and destructive.** Deleting a building cascades through its meshes,
|
|
200
|
+
* storeys, and the building itself, and removes its saved views — **saved views
|
|
201
|
+
* are not restored on undo.** The project's only remaining building cannot be
|
|
202
|
+
* deleted.
|
|
203
|
+
*
|
|
204
|
+
* @param buildingId - The id of the building to delete.
|
|
205
|
+
* @returns Confirmation that the building was deleted.
|
|
206
|
+
* @throws If no building has the given id, or it is the only building.
|
|
207
|
+
*
|
|
208
|
+
* @examplePrompt Delete building blg_2
|
|
209
|
+
* @examplePrompt Remove the Annex building and everything in it
|
|
210
|
+
* @examplePrompt Delete this building
|
|
211
|
+
*
|
|
212
|
+
* # Example
|
|
213
|
+
* ```ts
|
|
214
|
+
* await snaptrude.core.buildings.delete("blg_2")
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
abstract delete(buildingId: string): PluginApiReturn<PluginCoreBuildingsDeleteResult>;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* A building in the active project.
|
|
221
|
+
*
|
|
222
|
+
* | Property | Type | Description |
|
|
223
|
+
* |---|---|---|
|
|
224
|
+
* | `id` | `string` | Stable public building id (e.g. `"blg_1"`) |
|
|
225
|
+
* | `name` | `string` | Display name |
|
|
226
|
+
* | `baseElevation` | `number` | Base elevation in meters, positive up (default `0`) |
|
|
227
|
+
*/
|
|
228
|
+
export declare const PluginCoreBuildingRef: z.ZodObject<{
|
|
229
|
+
id: z.ZodString;
|
|
230
|
+
name: z.ZodString;
|
|
231
|
+
baseElevation: z.ZodNumber;
|
|
232
|
+
}, z.core.$strip>;
|
|
233
|
+
export type PluginCoreBuildingRef = z.infer<typeof PluginCoreBuildingRef>;
|
|
234
|
+
/**
|
|
235
|
+
* Result of {@linkcode PluginCoreBuildingsApi.list}.
|
|
236
|
+
*
|
|
237
|
+
* | Property | Type | Description |
|
|
238
|
+
* |---|---|---|
|
|
239
|
+
* | `buildings` | {@linkcode PluginCoreBuildingRef}`[]` | Every building in the active project |
|
|
240
|
+
*/
|
|
241
|
+
export declare const PluginCoreBuildingsListResult: z.ZodObject<{
|
|
242
|
+
buildings: z.ZodArray<z.ZodObject<{
|
|
243
|
+
id: z.ZodString;
|
|
244
|
+
name: z.ZodString;
|
|
245
|
+
baseElevation: z.ZodNumber;
|
|
246
|
+
}, z.core.$strip>>;
|
|
247
|
+
}, z.core.$strip>;
|
|
248
|
+
export type PluginCoreBuildingsListResult = z.infer<typeof PluginCoreBuildingsListResult>;
|
|
249
|
+
/**
|
|
250
|
+
* Arguments for {@linkcode PluginCoreBuildingsApi.get}.
|
|
251
|
+
*
|
|
252
|
+
* | Property | Type | Description |
|
|
253
|
+
* |---|---|---|
|
|
254
|
+
* | `buildingId` | `string` | The id of the building to read |
|
|
255
|
+
*/
|
|
256
|
+
export declare const PluginCoreBuildingsGetArgs: z.ZodObject<{
|
|
257
|
+
buildingId: z.ZodString;
|
|
258
|
+
}, z.core.$strip>;
|
|
259
|
+
export type PluginCoreBuildingsGetArgs = z.infer<typeof PluginCoreBuildingsGetArgs>;
|
|
260
|
+
/**
|
|
261
|
+
* Result of {@linkcode PluginCoreBuildingsApi.get} — the building, or `null` when
|
|
262
|
+
* no building has the given id.
|
|
263
|
+
*/
|
|
264
|
+
export declare const PluginCoreBuildingsGetResult: z.ZodNullable<z.ZodObject<{
|
|
265
|
+
id: z.ZodString;
|
|
266
|
+
name: z.ZodString;
|
|
267
|
+
baseElevation: z.ZodNumber;
|
|
268
|
+
}, z.core.$strip>>;
|
|
269
|
+
export type PluginCoreBuildingsGetResult = z.infer<typeof PluginCoreBuildingsGetResult>;
|
|
270
|
+
/**
|
|
271
|
+
* Arguments for {@linkcode PluginCoreBuildingsApi.listStoreys}.
|
|
272
|
+
*
|
|
273
|
+
* | Property | Type | Description |
|
|
274
|
+
* |---|---|---|
|
|
275
|
+
* | `buildingId` | `string` | The id of the building whose storeys to list |
|
|
276
|
+
*/
|
|
277
|
+
export declare const PluginCoreBuildingsListStoreysArgs: z.ZodObject<{
|
|
278
|
+
buildingId: z.ZodString;
|
|
279
|
+
}, z.core.$strip>;
|
|
280
|
+
export type PluginCoreBuildingsListStoreysArgs = z.infer<typeof PluginCoreBuildingsListStoreysArgs>;
|
|
281
|
+
/**
|
|
282
|
+
* Result of {@linkcode PluginCoreBuildingsApi.listStoreys}.
|
|
283
|
+
*
|
|
284
|
+
* | Property | Type | Description |
|
|
285
|
+
* |---|---|---|
|
|
286
|
+
* | `storeyIds` | `string[]` | The building's storey ids in storey order (empty when missing or none) |
|
|
287
|
+
*/
|
|
288
|
+
export declare const PluginCoreBuildingsListStoreysResult: z.ZodObject<{
|
|
289
|
+
storeyIds: z.ZodArray<z.ZodString>;
|
|
290
|
+
}, z.core.$strip>;
|
|
291
|
+
export type PluginCoreBuildingsListStoreysResult = z.infer<typeof PluginCoreBuildingsListStoreysResult>;
|
|
292
|
+
/**
|
|
293
|
+
* Result of {@linkcode PluginCoreBuildingsApi.getActive} — the active building's
|
|
294
|
+
* id, or `null` when there is no active building.
|
|
295
|
+
*
|
|
296
|
+
* | Property | Type | Description |
|
|
297
|
+
* |---|---|---|
|
|
298
|
+
* | `buildingId` | `string` | The id of the active building |
|
|
299
|
+
*/
|
|
300
|
+
export declare const PluginCoreBuildingsGetActiveResult: z.ZodNullable<z.ZodObject<{
|
|
301
|
+
buildingId: z.ZodString;
|
|
302
|
+
}, z.core.$strip>>;
|
|
303
|
+
export type PluginCoreBuildingsGetActiveResult = z.infer<typeof PluginCoreBuildingsGetActiveResult>;
|
|
304
|
+
/**
|
|
305
|
+
* Arguments for {@linkcode PluginCoreBuildingsApi.setActive}.
|
|
306
|
+
*
|
|
307
|
+
* | Property | Type | Description |
|
|
308
|
+
* |---|---|---|
|
|
309
|
+
* | `buildingId` | `string` | The id of the building to activate |
|
|
310
|
+
*/
|
|
311
|
+
export declare const PluginCoreBuildingsSetActiveArgs: z.ZodObject<{
|
|
312
|
+
buildingId: z.ZodString;
|
|
313
|
+
}, z.core.$strip>;
|
|
314
|
+
export type PluginCoreBuildingsSetActiveArgs = z.infer<typeof PluginCoreBuildingsSetActiveArgs>;
|
|
315
|
+
/**
|
|
316
|
+
* Result of {@linkcode PluginCoreBuildingsApi.setActive} — the now-active
|
|
317
|
+
* building's id.
|
|
318
|
+
*
|
|
319
|
+
* | Property | Type | Description |
|
|
320
|
+
* |---|---|---|
|
|
321
|
+
* | `buildingId` | `string` | The id of the now-active building |
|
|
322
|
+
*/
|
|
323
|
+
export declare const PluginCoreBuildingsSetActiveResult: z.ZodObject<{
|
|
324
|
+
buildingId: z.ZodString;
|
|
325
|
+
}, z.core.$strip>;
|
|
326
|
+
export type PluginCoreBuildingsSetActiveResult = z.infer<typeof PluginCoreBuildingsSetActiveResult>;
|
|
327
|
+
/**
|
|
328
|
+
* Arguments for {@linkcode PluginCoreBuildingsApi.create}.
|
|
329
|
+
*
|
|
330
|
+
* | Property | Type | Description |
|
|
331
|
+
* |---|---|---|
|
|
332
|
+
* | `name` | `string` | Display name of the new building |
|
|
333
|
+
* | `baseElevation` | `number \| undefined` | Base elevation in meters (defaults to `0`) |
|
|
334
|
+
*/
|
|
335
|
+
export declare const PluginCoreBuildingsCreateArgs: z.ZodObject<{
|
|
336
|
+
name: z.ZodString;
|
|
337
|
+
baseElevation: z.ZodOptional<z.ZodNumber>;
|
|
338
|
+
}, z.core.$strip>;
|
|
339
|
+
export type PluginCoreBuildingsCreateArgs = z.infer<typeof PluginCoreBuildingsCreateArgs>;
|
|
340
|
+
/**
|
|
341
|
+
* Result of {@linkcode PluginCoreBuildingsApi.create} — the id of the new
|
|
342
|
+
* building.
|
|
343
|
+
*
|
|
344
|
+
* | Property | Type | Description |
|
|
345
|
+
* |---|---|---|
|
|
346
|
+
* | `buildingId` | `string` | The id of the newly created building |
|
|
347
|
+
*/
|
|
348
|
+
export declare const PluginCoreBuildingsCreateResult: z.ZodObject<{
|
|
349
|
+
buildingId: z.ZodString;
|
|
350
|
+
}, z.core.$strip>;
|
|
351
|
+
export type PluginCoreBuildingsCreateResult = z.infer<typeof PluginCoreBuildingsCreateResult>;
|
|
352
|
+
/**
|
|
353
|
+
* Arguments for {@linkcode PluginCoreBuildingsApi.update}. Sparse — only the
|
|
354
|
+
* provided fields are changed.
|
|
355
|
+
*
|
|
356
|
+
* | Property | Type | Description |
|
|
357
|
+
* |---|---|---|
|
|
358
|
+
* | `buildingId` | `string` | The id of the building to update |
|
|
359
|
+
* | `name` | `string \| undefined` | New display name (unchanged if omitted) |
|
|
360
|
+
* | `baseElevation` | `number \| undefined` | New base elevation in meters (unchanged if omitted) |
|
|
361
|
+
*/
|
|
362
|
+
export declare const PluginCoreBuildingsUpdateArgs: z.ZodObject<{
|
|
363
|
+
buildingId: z.ZodString;
|
|
364
|
+
name: z.ZodOptional<z.ZodString>;
|
|
365
|
+
baseElevation: z.ZodOptional<z.ZodNumber>;
|
|
366
|
+
}, z.core.$strip>;
|
|
367
|
+
export type PluginCoreBuildingsUpdateArgs = z.infer<typeof PluginCoreBuildingsUpdateArgs>;
|
|
368
|
+
/** Result of {@linkcode PluginCoreBuildingsApi.update} — the updated record. */
|
|
369
|
+
export declare const PluginCoreBuildingsUpdateResult: z.ZodObject<{
|
|
370
|
+
id: z.ZodString;
|
|
371
|
+
name: z.ZodString;
|
|
372
|
+
baseElevation: z.ZodNumber;
|
|
373
|
+
}, z.core.$strip>;
|
|
374
|
+
export type PluginCoreBuildingsUpdateResult = z.infer<typeof PluginCoreBuildingsUpdateResult>;
|
|
375
|
+
/**
|
|
376
|
+
* Arguments for {@linkcode PluginCoreBuildingsApi.copy}.
|
|
377
|
+
*
|
|
378
|
+
* | Property | Type | Description |
|
|
379
|
+
* |---|---|---|
|
|
380
|
+
* | `buildingId` | `string` | The id of the building to copy |
|
|
381
|
+
* | `name` | `string \| undefined` | Name for the copy (auto-generated if omitted) |
|
|
382
|
+
* | `baseElevation` | `number \| undefined` | Base elevation for the copy in meters (source's if omitted) |
|
|
383
|
+
* | `asInstances` | `boolean \| undefined` | `true` shares source geometry as instances; `false` makes independent copies (host default `true`) |
|
|
384
|
+
*/
|
|
385
|
+
export declare const PluginCoreBuildingsCopyArgs: z.ZodObject<{
|
|
386
|
+
buildingId: z.ZodString;
|
|
387
|
+
name: z.ZodOptional<z.ZodString>;
|
|
388
|
+
baseElevation: z.ZodOptional<z.ZodNumber>;
|
|
389
|
+
asInstances: z.ZodOptional<z.ZodBoolean>;
|
|
390
|
+
}, z.core.$strip>;
|
|
391
|
+
export type PluginCoreBuildingsCopyArgs = z.infer<typeof PluginCoreBuildingsCopyArgs>;
|
|
392
|
+
/**
|
|
393
|
+
* Result of {@linkcode PluginCoreBuildingsApi.copy} — the id of the new
|
|
394
|
+
* building.
|
|
395
|
+
*
|
|
396
|
+
* | Property | Type | Description |
|
|
397
|
+
* |---|---|---|
|
|
398
|
+
* | `buildingId` | `string` | The id of the copied building |
|
|
399
|
+
*/
|
|
400
|
+
export declare const PluginCoreBuildingsCopyResult: z.ZodObject<{
|
|
401
|
+
buildingId: z.ZodString;
|
|
402
|
+
}, z.core.$strip>;
|
|
403
|
+
export type PluginCoreBuildingsCopyResult = z.infer<typeof PluginCoreBuildingsCopyResult>;
|
|
404
|
+
/**
|
|
405
|
+
* Arguments for {@linkcode PluginCoreBuildingsApi.delete}.
|
|
406
|
+
*
|
|
407
|
+
* | Property | Type | Description |
|
|
408
|
+
* |---|---|---|
|
|
409
|
+
* | `buildingId` | `string` | The id of the building to delete |
|
|
410
|
+
*/
|
|
411
|
+
export declare const PluginCoreBuildingsDeleteArgs: z.ZodObject<{
|
|
412
|
+
buildingId: z.ZodString;
|
|
413
|
+
}, z.core.$strip>;
|
|
414
|
+
export type PluginCoreBuildingsDeleteArgs = z.infer<typeof PluginCoreBuildingsDeleteArgs>;
|
|
415
|
+
/**
|
|
416
|
+
* Result of {@linkcode PluginCoreBuildingsApi.delete} — confirmation that the
|
|
417
|
+
* building was deleted.
|
|
418
|
+
*
|
|
419
|
+
* | Property | Type | Description |
|
|
420
|
+
* |---|---|---|
|
|
421
|
+
* | `deleted` | `true` | Always `true` on success |
|
|
422
|
+
*/
|
|
423
|
+
export declare const PluginCoreBuildingsDeleteResult: z.ZodObject<{
|
|
424
|
+
deleted: z.ZodLiteral<true>;
|
|
425
|
+
}, z.core.$strip>;
|
|
426
|
+
export type PluginCoreBuildingsDeleteResult = z.infer<typeof PluginCoreBuildingsDeleteResult>;
|
|
427
|
+
//# sourceMappingURL=buildings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildings.d.ts","sourceRoot":"","sources":["../../../src/api/core/buildings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import { PluginApiReturn } from "../../../types";
|
|
3
|
+
import { Vec3Handle, ComponentHandle } from "../../../handles";
|
|
4
|
+
/**
|
|
5
|
+
* Comments — create, edit, resolve, tag, and list scene/project comments.
|
|
6
|
+
*
|
|
7
|
+
* A comment is an opaque {@link CommentHandle} (its server id). Comments may be
|
|
8
|
+
* anchored to a component at a 3D point, carry @mentions (by email) and emojis,
|
|
9
|
+
* and be resolved / reopened. Accessed via `snaptrude.core.comment`.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class PluginCommentApi {
|
|
12
|
+
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Create a comment in the project — optionally pinned to a component at a 3D
|
|
15
|
+
* point — with optional @mentions that notify teammates by email.
|
|
16
|
+
*
|
|
17
|
+
* @param message - Comment text (emojis = plain unicode).
|
|
18
|
+
* @param component - Optional component to anchor the comment to.
|
|
19
|
+
* @param position - Optional pin point; defaults to the component's center.
|
|
20
|
+
* @param mentions - Optional user emails to @mention (appended as real @mention tags).
|
|
21
|
+
* @returns the new {@link CommentHandle}.
|
|
22
|
+
*
|
|
23
|
+
* @examplePrompt Add a comment on this wall saying the height looks wrong
|
|
24
|
+
* @examplePrompt Leave a note on the selected room for the design team
|
|
25
|
+
* @examplePrompt Comment "verify the door swing" and tag alex@acme.com
|
|
26
|
+
* @examplePrompt Pin a review note at this point on the slab
|
|
27
|
+
*
|
|
28
|
+
* # Example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const c = await snaptrude.core.comment.create(
|
|
31
|
+
* "Check this wall 🎉",
|
|
32
|
+
* spaceId,
|
|
33
|
+
* undefined,
|
|
34
|
+
* ["alex@acme.com"],
|
|
35
|
+
* )
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
abstract create(message: string, component?: ComponentHandle, position?: Vec3Handle, mentions?: string[]): PluginApiReturn<CommentHandle>;
|
|
39
|
+
/**
|
|
40
|
+
* Edit a comment's message (and optional @mentions).
|
|
41
|
+
*
|
|
42
|
+
* @param comment - The comment to edit.
|
|
43
|
+
* @param message - New message text.
|
|
44
|
+
* @param mentions - Optional user emails to @mention.
|
|
45
|
+
*
|
|
46
|
+
* @examplePrompt Edit my comment to say the beam depth is 600mm
|
|
47
|
+
* @examplePrompt Change the text of this comment
|
|
48
|
+
* @examplePrompt Update the note on the wall and mention priya@studio.com
|
|
49
|
+
* @examplePrompt Reword the comment I just added
|
|
50
|
+
*
|
|
51
|
+
* # Example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const c = await snaptrude.core.comment.create("Beam depth TBD")
|
|
54
|
+
* await snaptrude.core.comment.update(c, "Beam depth is 600mm", ["priya@studio.com"])
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
abstract update(comment: CommentHandle, message: string, mentions?: string[]): PluginApiReturn<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Mark a comment resolved. Paired with {@link PluginCommentApi.reopen}.
|
|
60
|
+
*
|
|
61
|
+
* @param comment - The target comment.
|
|
62
|
+
*
|
|
63
|
+
* @examplePrompt Mark this comment as resolved
|
|
64
|
+
* @examplePrompt Resolve the comment about the staircase
|
|
65
|
+
* @examplePrompt Close out this review note
|
|
66
|
+
* @examplePrompt Set that comment to done
|
|
67
|
+
*
|
|
68
|
+
* # Example
|
|
69
|
+
* ```ts
|
|
70
|
+
* const c = await snaptrude.core.comment.create("Verify the door swing")
|
|
71
|
+
* await snaptrude.core.comment.resolve(c)
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
abstract resolve(comment: CommentHandle): PluginApiReturn<boolean>;
|
|
75
|
+
/**
|
|
76
|
+
* Reopen a resolved comment. Paired with {@link PluginCommentApi.resolve}.
|
|
77
|
+
*
|
|
78
|
+
* @param comment - The target comment.
|
|
79
|
+
*
|
|
80
|
+
* @examplePrompt Reopen this resolved comment
|
|
81
|
+
* @examplePrompt Mark the comment as unresolved again
|
|
82
|
+
* @examplePrompt Bring back the closed note about the window heights
|
|
83
|
+
* @examplePrompt Un-resolve that comment so we can keep discussing it
|
|
84
|
+
*
|
|
85
|
+
* # Example
|
|
86
|
+
* ```ts
|
|
87
|
+
* const [comment] = await snaptrude.core.comment.list()
|
|
88
|
+
* await snaptrude.core.comment.reopen(comment)
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
abstract reopen(comment: CommentHandle): PluginApiReturn<boolean>;
|
|
92
|
+
/**
|
|
93
|
+
* Check whether a comment has been marked resolved.
|
|
94
|
+
*
|
|
95
|
+
* @param comment - The target comment.
|
|
96
|
+
*
|
|
97
|
+
* @examplePrompt Is this comment resolved yet?
|
|
98
|
+
* @examplePrompt Check if the note about the roof has been closed
|
|
99
|
+
* @examplePrompt Has my comment been resolved?
|
|
100
|
+
* @examplePrompt Tell me whether that comment is still open
|
|
101
|
+
*
|
|
102
|
+
* # Example
|
|
103
|
+
* ```ts
|
|
104
|
+
* const [comment] = await snaptrude.core.comment.list()
|
|
105
|
+
* const resolved = await snaptrude.core.comment.isResolved(comment)
|
|
106
|
+
* console.log(resolved ? "resolved" : "still open")
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
abstract isResolved(comment: CommentHandle): PluginApiReturn<boolean>;
|
|
110
|
+
/**
|
|
111
|
+
* Tag (mention) a user on an existing comment, by email.
|
|
112
|
+
*
|
|
113
|
+
* @param comment - The comment to add a mention to.
|
|
114
|
+
* @param email - The user's email to @mention.
|
|
115
|
+
*
|
|
116
|
+
* @examplePrompt Tag alex@acme.com on this comment
|
|
117
|
+
* @examplePrompt Mention the structural engineer in that note
|
|
118
|
+
* @examplePrompt Add priya@studio.com to the comment about the lobby
|
|
119
|
+
* @examplePrompt Notify a teammate about an existing comment
|
|
120
|
+
*
|
|
121
|
+
* # Example
|
|
122
|
+
* ```ts
|
|
123
|
+
* const [comment] = await snaptrude.core.comment.list()
|
|
124
|
+
* await snaptrude.core.comment.tag(comment, "alex@acme.com")
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
abstract tag(comment: CommentHandle, email: string): PluginApiReturn<boolean>;
|
|
128
|
+
/**
|
|
129
|
+
* Permanently remove a comment from the project.
|
|
130
|
+
*
|
|
131
|
+
* @param comment - The target comment.
|
|
132
|
+
*
|
|
133
|
+
* @examplePrompt Delete this comment
|
|
134
|
+
* @examplePrompt Remove the note about the old layout
|
|
135
|
+
* @examplePrompt Get rid of my last comment
|
|
136
|
+
* @examplePrompt Clear that resolved comment off the wall
|
|
137
|
+
*
|
|
138
|
+
* # Example
|
|
139
|
+
* ```ts
|
|
140
|
+
* const [comment] = await snaptrude.core.comment.list()
|
|
141
|
+
* await snaptrude.core.comment.delete(comment)
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
abstract delete(comment: CommentHandle): PluginApiReturn<boolean>;
|
|
145
|
+
/**
|
|
146
|
+
* List every comment in the project (deleted ones are excluded), returned as
|
|
147
|
+
* comment handles you can pass to the other comment methods.
|
|
148
|
+
*
|
|
149
|
+
* @examplePrompt List all the comments in this project
|
|
150
|
+
* @examplePrompt How many comments are on this model?
|
|
151
|
+
* @examplePrompt Show every note in the file
|
|
152
|
+
* @examplePrompt Get all comments so I can check which are resolved
|
|
153
|
+
*
|
|
154
|
+
* # Example
|
|
155
|
+
* ```ts
|
|
156
|
+
* const comments = await snaptrude.core.comment.list()
|
|
157
|
+
* console.log(`${comments.length} comments in the project`)
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
abstract list(): PluginApiReturn<CommentHandle[]>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Opaque handle to a comment — its server-assigned id (entity-style: a raw,
|
|
164
|
+
* persistable string resolved live, not a registry-minted value handle).
|
|
165
|
+
*/
|
|
166
|
+
export type CommentHandle = string & {
|
|
167
|
+
readonly __handle: "comment";
|
|
168
|
+
};
|
|
169
|
+
export declare const CommentHandle: z.ZodPipe<z.ZodString, z.ZodTransform<CommentHandle, string>>;
|
|
170
|
+
/** `ComponentHandle` is defined in `handles.ts` (imported above) and exported from the
|
|
171
|
+
* package root via `export * from "./handles"`. Not re-exported here to avoid an
|
|
172
|
+
* ambiguous double `export *` at the barrel. */
|
|
173
|
+
/**
|
|
174
|
+
* Arguments for {@link PluginCommentApi.create}.
|
|
175
|
+
*
|
|
176
|
+
* | Property | Type | Description |
|
|
177
|
+
* |---|---|---|
|
|
178
|
+
* | `component` | {@link ComponentHandle}? | Component to anchor the comment to |
|
|
179
|
+
* | `position` | {@link Vec3Handle}? | Pin point; defaults to the component's center |
|
|
180
|
+
* | `message` | `string` | Comment text (emojis = unicode) |
|
|
181
|
+
* | `mentions` | `string[]`? | User emails to @mention |
|
|
182
|
+
*/
|
|
183
|
+
export declare const PluginCommentCreateArgs: z.ZodObject<{
|
|
184
|
+
component: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
|
|
185
|
+
position: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
|
|
186
|
+
message: z.ZodString;
|
|
187
|
+
mentions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
188
|
+
}, z.core.$strip>;
|
|
189
|
+
export type PluginCommentCreateArgs = z.infer<typeof PluginCommentCreateArgs>;
|
|
190
|
+
/**
|
|
191
|
+
* Arguments for {@link PluginCommentApi.update}.
|
|
192
|
+
*
|
|
193
|
+
* | Property | Type | Description |
|
|
194
|
+
* |---|---|---|
|
|
195
|
+
* | `comment` | {@link CommentHandle} | The comment to edit |
|
|
196
|
+
* | `message` | `string` | New message text |
|
|
197
|
+
* | `mentions` | `string[]`? | User emails to @mention |
|
|
198
|
+
*/
|
|
199
|
+
export declare const PluginCommentUpdateArgs: z.ZodObject<{
|
|
200
|
+
comment: z.ZodPipe<z.ZodString, z.ZodTransform<CommentHandle, string>>;
|
|
201
|
+
message: z.ZodString;
|
|
202
|
+
mentions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
203
|
+
}, z.core.$strip>;
|
|
204
|
+
export type PluginCommentUpdateArgs = z.infer<typeof PluginCommentUpdateArgs>;
|
|
205
|
+
/**
|
|
206
|
+
* Arguments for {@link PluginCommentApi.resolve} / {@link PluginCommentApi.reopen}
|
|
207
|
+
* / {@link PluginCommentApi.isResolved} / {@link PluginCommentApi.delete}.
|
|
208
|
+
*
|
|
209
|
+
* | Property | Type | Description |
|
|
210
|
+
* |---|---|---|
|
|
211
|
+
* | `comment` | {@link CommentHandle} | The target comment |
|
|
212
|
+
*/
|
|
213
|
+
export declare const PluginCommentRefArgs: z.ZodObject<{
|
|
214
|
+
comment: z.ZodPipe<z.ZodString, z.ZodTransform<CommentHandle, string>>;
|
|
215
|
+
}, z.core.$strip>;
|
|
216
|
+
export type PluginCommentRefArgs = z.infer<typeof PluginCommentRefArgs>;
|
|
217
|
+
/**
|
|
218
|
+
* Arguments for {@link PluginCommentApi.tag}.
|
|
219
|
+
*
|
|
220
|
+
* | Property | Type | Description |
|
|
221
|
+
* |---|---|---|
|
|
222
|
+
* | `comment` | {@link CommentHandle} | The comment to add a mention to |
|
|
223
|
+
* | `email` | `string` | The user's email to @mention |
|
|
224
|
+
*/
|
|
225
|
+
export declare const PluginCommentTagArgs: z.ZodObject<{
|
|
226
|
+
comment: z.ZodPipe<z.ZodString, z.ZodTransform<CommentHandle, string>>;
|
|
227
|
+
email: z.ZodString;
|
|
228
|
+
}, z.core.$strip>;
|
|
229
|
+
export type PluginCommentTagArgs = z.infer<typeof PluginCommentTagArgs>;
|
|
230
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/comment/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE9D;;;;;;GAMG;AACH,8BAAsB,gBAAgB;;IAGpC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,MAAM,CACpB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,eAAe,EAC3B,QAAQ,CAAC,EAAE,UAAU,EACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,eAAe,CAAC,aAAa,CAAC;IAEjC;;;;;;;;;;;;;;;;;OAiBG;aACa,MAAM,CACpB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,eAAe,CAAC,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;OAeG;aACa,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC;IAEzE;;;;;;;;;;;;;;;OAeG;aACa,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC;IAExE;;;;;;;;;;;;;;;;OAgBG;aACa,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC;IAE5E;;;;;;;;;;;;;;;;OAgBG;aACa,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;IAEpF;;;;;;;;;;;;;;;OAeG;aACa,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC;IAExE;;;;;;;;;;;;;;OAcG;aACa,IAAI,IAAI,eAAe,CAAC,aAAa,EAAE,CAAC;CACzD;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAA;AACrE,eAAO,MAAM,aAAa,+DAGa,CAAA;AAEvC;;iDAEiD;AAEjD;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
|