@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
|
@@ -4,15 +4,21 @@ import { PluginApiReturn } from "../../types";
|
|
|
4
4
|
* Program site — read the planning context of the project's site/plot.
|
|
5
5
|
*
|
|
6
6
|
* The **site** is the set of plot/parcel footprints the program is planned
|
|
7
|
-
* against: their total area, per-parcel footprints (
|
|
8
|
-
*
|
|
7
|
+
* against: their total area, per-parcel footprints (world XZ plan coordinates
|
|
8
|
+
* in Snaptrude units — the same plan space as a space's `planPoints`), and —
|
|
9
|
+
* when the project is geo-located on terrain — their geographic
|
|
9
10
|
* (latitude/longitude) rings. This is the program-planning view of the site;
|
|
10
|
-
* zoning numbers (
|
|
11
|
-
*
|
|
11
|
+
* zoning numbers (FAR/FSI, height limits) live in the Site Analysis sheet and
|
|
12
|
+
* are available through `getSiteAnalysis`, not the site-context reads. One
|
|
13
|
+
* context exception is `listEdges`: it reads each parcel's per-edge
|
|
14
|
+
* front/side/rear classification and effective base setbacks, the same
|
|
15
|
+
* resolution the buildable-envelope setback pills show on canvas.
|
|
12
16
|
*
|
|
13
|
-
*
|
|
14
|
-
* returns an empty snapshot (zero totals) when there is no site,
|
|
15
|
-
* methods return `[]`.
|
|
17
|
+
* Site context methods are total reads: they return plain records and never
|
|
18
|
+
* throw — `get` returns an empty snapshot (zero totals) when there is no site,
|
|
19
|
+
* and the `list` methods return `[]`. Site Analysis is the exception:
|
|
20
|
+
* `getSiteAnalysis` reads the active proposal's persisted analysis sheet and
|
|
21
|
+
* `updateSiteAnalysis` performs a safe merge/append write to that sheet.
|
|
16
22
|
*
|
|
17
23
|
* Accessed via `snaptrude.program.site`.
|
|
18
24
|
*/
|
|
@@ -59,7 +65,8 @@ export declare abstract class PluginProgramSiteApi {
|
|
|
59
65
|
*/
|
|
60
66
|
abstract getArea(): PluginApiReturn<PluginProgramSiteAreaResult>;
|
|
61
67
|
/**
|
|
62
|
-
* List the site parcels with their footprints (
|
|
68
|
+
* List the site parcels with their footprints (world XZ plan coordinates,
|
|
69
|
+
* Snaptrude units).
|
|
63
70
|
*
|
|
64
71
|
* @returns A {@linkcode PluginProgramSiteListPolygonsResult} with each parcel's
|
|
65
72
|
* id, area, label, and 2D footprint (XZ ground-plane points). Empty when the
|
|
@@ -77,12 +84,52 @@ export declare abstract class PluginProgramSiteApi {
|
|
|
77
84
|
* ```
|
|
78
85
|
*/
|
|
79
86
|
abstract listPolygons(): PluginApiReturn<PluginProgramSiteListPolygonsResult>;
|
|
87
|
+
/**
|
|
88
|
+
* List each site parcel's boundary edges with their front / side / rear
|
|
89
|
+
* classification — the same per-edge roles the buildable-envelope setback
|
|
90
|
+
* pills show on canvas, so a plugin can pick up the user's edge tagging
|
|
91
|
+
* without asking them to set it up again.
|
|
92
|
+
*
|
|
93
|
+
* Role resolution mirrors the canvas exactly: the user's per-edge overrides
|
|
94
|
+
* (set via the setback pills) win over the tangent heuristic
|
|
95
|
+
* (`roleSource: "override"` vs `"heuristic"`). `"street"` never appears — it
|
|
96
|
+
* resolves to `front`. When a parcel has a linked zoning buildable envelope,
|
|
97
|
+
* `setbackMeters` is the effective base setback of the edge (a per-edge
|
|
98
|
+
* exception when one exists, else the role's value); parcels without a
|
|
99
|
+
* zoning envelope classify by heuristic alone and report
|
|
100
|
+
* `setbackMeters: null`.
|
|
101
|
+
*
|
|
102
|
+
* Coordinates are **world meters** (`lengthUnit: "m"`) — unlike
|
|
103
|
+
* {@linkcode PluginProgramSiteApi.listPolygons} footprints, which are
|
|
104
|
+
* Snaptrude units. `edgeIndex` is keyed to the canonicalized (sanitized,
|
|
105
|
+
* CCW) boundary, the same index space the envelope's `edgeOverrides` use.
|
|
106
|
+
* `staleOverridesDropped: true` means the site was edited after the
|
|
107
|
+
* envelope was configured and the persisted overrides no longer align with
|
|
108
|
+
* the live boundary — the heuristic classification is reported instead.
|
|
109
|
+
*
|
|
110
|
+
* @returns A {@linkcode PluginProgramSiteListEdgesResult} with one entry per
|
|
111
|
+
* parcel. Empty when the project has no site.
|
|
112
|
+
*
|
|
113
|
+
* @examplePrompt Which edge of my site is the front?
|
|
114
|
+
* @examplePrompt Read the front / side / rear edges of the plot
|
|
115
|
+
* @examplePrompt What setback applies to each site edge?
|
|
116
|
+
* @examplePrompt Get the site edges the way the setback pills show them
|
|
117
|
+
*
|
|
118
|
+
* # Example
|
|
119
|
+
* ```ts
|
|
120
|
+
* const { sites } = await snaptrude.program.site.listEdges()
|
|
121
|
+
* for (const site of sites)
|
|
122
|
+
* for (const e of site.edges)
|
|
123
|
+
* console.log(e.edgeIndex, e.role, e.roleSource, e.setbackMeters)
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
abstract listEdges(): PluginApiReturn<PluginProgramSiteListEdgesResult>;
|
|
80
127
|
/**
|
|
81
128
|
* List the site parcels as geographic latitude/longitude rings.
|
|
82
129
|
*
|
|
83
130
|
* Only available when the project is geo-located on terrain; returns `[]` (no
|
|
84
131
|
* rings) otherwise. Use {@linkcode PluginProgramSiteApi.listPolygons} for the
|
|
85
|
-
*
|
|
132
|
+
* world-coordinate footprints that are always available.
|
|
86
133
|
*
|
|
87
134
|
* @returns A {@linkcode PluginProgramSiteListGeoPolygonsResult} with one ring
|
|
88
135
|
* of `{ lat, lng, alt }` points per parcel.
|
|
@@ -120,15 +167,227 @@ export declare abstract class PluginProgramSiteApi {
|
|
|
120
167
|
* ```
|
|
121
168
|
*/
|
|
122
169
|
abstract getContext(): PluginApiReturn<PluginProgramSiteContextResult>;
|
|
170
|
+
/**
|
|
171
|
+
* Get the project's geographic location.
|
|
172
|
+
*
|
|
173
|
+
* The latitude/longitude the site is geo-located at — the location the
|
|
174
|
+
* `analysis.*` sun and daylight studies compute against. Returns `null`
|
|
175
|
+
* when the project is not geo-located on terrain (there is no fallback
|
|
176
|
+
* location).
|
|
177
|
+
*
|
|
178
|
+
* Note the spelling: this result uses the full `{ latitude, longitude }`
|
|
179
|
+
* keys, while the older site reads
|
|
180
|
+
* ({@linkcode PluginProgramSiteApi.getContext},
|
|
181
|
+
* {@linkcode PluginProgramSiteApi.listGeoPolygons}) use the abbreviated
|
|
182
|
+
* `{ lat, lng }`.
|
|
183
|
+
*
|
|
184
|
+
* @returns A {@linkcode PluginProgramSiteLocationResult} —
|
|
185
|
+
* `{ latitude, longitude }`, or `null` when the project has no
|
|
186
|
+
* geo-located site.
|
|
187
|
+
*
|
|
188
|
+
* @examplePrompt What's the project's latitude and longitude?
|
|
189
|
+
* @examplePrompt Where is this site located?
|
|
190
|
+
* @examplePrompt Get the geographic coordinates of the project
|
|
191
|
+
*
|
|
192
|
+
* # Example
|
|
193
|
+
* ```ts
|
|
194
|
+
* const location = await snaptrude.program.site.getLocation()
|
|
195
|
+
* if (location) console.log(location.latitude, location.longitude)
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
abstract getLocation(): PluginApiReturn<PluginProgramSiteLocationResult>;
|
|
199
|
+
/**
|
|
200
|
+
* Get the site's true-north angle.
|
|
201
|
+
*
|
|
202
|
+
* The angle in degrees the model's north (the scene's +Z axis) is rotated
|
|
203
|
+
* from true north, derived from the terrain's rotation. `0` means the
|
|
204
|
+
* model is aligned to true north. Reported in `[0, 360)`,
|
|
205
|
+
* **clockwise-positive** viewed from above (Babylon's +Y rotation sign) —
|
|
206
|
+
* note this is the opposite sign convention to `design.transform.rotate`,
|
|
207
|
+
* where positive = CCW. Returns `null` when the project is not
|
|
208
|
+
* geo-located on terrain.
|
|
209
|
+
*
|
|
210
|
+
* @returns A {@linkcode PluginProgramSiteNorthAngleResult} — the angle in
|
|
211
|
+
* degrees (`[0, 360)`, clockwise-positive), or `null` when the project
|
|
212
|
+
* has no geo-located site.
|
|
213
|
+
*
|
|
214
|
+
* @examplePrompt What's the north angle of the site?
|
|
215
|
+
* @examplePrompt How far is the model rotated from true north?
|
|
216
|
+
* @examplePrompt Get the project's true north direction
|
|
217
|
+
*
|
|
218
|
+
* # Example
|
|
219
|
+
* ```ts
|
|
220
|
+
* const northAngle = await snaptrude.program.site.getNorthAngle()
|
|
221
|
+
* if (northAngle !== null) console.log(`${northAngle}° from true north`)
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
abstract getNorthAngle(): PluginApiReturn<PluginProgramSiteNorthAngleResult>;
|
|
225
|
+
/**
|
|
226
|
+
* Get the IANA timezone of the project's geographic location.
|
|
227
|
+
*
|
|
228
|
+
* The timezone identifier (e.g. `"America/New_York"`, `"Asia/Kolkata"`)
|
|
229
|
+
* looked up from the same geo-location
|
|
230
|
+
* {@linkcode PluginProgramSiteApi.getLocation} returns. Returns `null` when
|
|
231
|
+
* the project is not geo-located on terrain.
|
|
232
|
+
*
|
|
233
|
+
* @returns A {@linkcode PluginProgramSiteTimezoneResult} — the IANA timezone
|
|
234
|
+
* id string, or `null` when the project has no geo-located site.
|
|
235
|
+
*
|
|
236
|
+
* @examplePrompt What timezone is this project in?
|
|
237
|
+
* @examplePrompt Get the site's IANA timezone
|
|
238
|
+
* @examplePrompt What's the local time zone at the project location?
|
|
239
|
+
* @examplePrompt Which timezone should I use for the sun study schedule?
|
|
240
|
+
*
|
|
241
|
+
* # Example
|
|
242
|
+
* ```ts
|
|
243
|
+
* const timezone = await snaptrude.program.site.getTimezone()
|
|
244
|
+
* if (timezone) console.log(`Project timezone: ${timezone}`)
|
|
245
|
+
* ```
|
|
246
|
+
*/
|
|
247
|
+
abstract getTimezone(): PluginApiReturn<PluginProgramSiteTimezoneResult>;
|
|
248
|
+
/**
|
|
249
|
+
* Get the weather file resolved for the project site.
|
|
250
|
+
*
|
|
251
|
+
* A lightweight read of the EPW weather file the `analysis.*` sun and
|
|
252
|
+
* daylight studies compute against — its catalog id, station name, content
|
|
253
|
+
* checksum, and how it was selected. This is the same file (same
|
|
254
|
+
* `weatherFileId`) that {@linkcode PluginAnalysisWeatherApi.getSeries} reads
|
|
255
|
+
* rows from and that a daylight run echoes in its provenance. Returns `null`
|
|
256
|
+
* when the project has no geo-located site (no weather file to resolve).
|
|
257
|
+
*
|
|
258
|
+
* @returns A {@linkcode PluginProgramSiteWeatherResult} —
|
|
259
|
+
* `{ weatherFileId, station, checksum, selectionMethod }`, or `null` when
|
|
260
|
+
* the project has no geo-located site.
|
|
261
|
+
*
|
|
262
|
+
* @examplePrompt Which weather file is my project using?
|
|
263
|
+
* @examplePrompt What EPW station was resolved for this site?
|
|
264
|
+
* @examplePrompt Get the weather file id for the daylight analysis
|
|
265
|
+
*
|
|
266
|
+
* # Example
|
|
267
|
+
* ```ts
|
|
268
|
+
* const weather = await snaptrude.program.site.getWeather()
|
|
269
|
+
* if (weather) console.log(weather.station, weather.selectionMethod)
|
|
270
|
+
* ```
|
|
271
|
+
*/
|
|
272
|
+
abstract getWeather(): PluginApiReturn<PluginProgramSiteWeatherResult>;
|
|
273
|
+
/**
|
|
274
|
+
* Read the persisted Site Analysis sheet for the active proposal.
|
|
275
|
+
*
|
|
276
|
+
* The read works without Program mode open. When a Program tab is open, the
|
|
277
|
+
* host first makes a best-effort attempt to flush its pending edits. The
|
|
278
|
+
* active proposal's sheet is preferred, with the base `"Site Analysis"`
|
|
279
|
+
* sheet as fallback. Returns `null` when no parseable sheet is persisted.
|
|
280
|
+
*
|
|
281
|
+
* @returns The persisted site location, polygon, and constraint rows, or
|
|
282
|
+
* `null` when no Site Analysis data exists. This read never throws.
|
|
283
|
+
*
|
|
284
|
+
* @examplePrompt Read the current Site Analysis sheet
|
|
285
|
+
* @examplePrompt What zoning constraints are recorded for this proposal?
|
|
286
|
+
*
|
|
287
|
+
* # Example
|
|
288
|
+
* ```ts
|
|
289
|
+
* const analysis = await snaptrude.program.site.getSiteAnalysis()
|
|
290
|
+
* if (analysis) console.log(analysis.sheetName, analysis.rows)
|
|
291
|
+
* ```
|
|
292
|
+
*/
|
|
293
|
+
abstract getSiteAnalysis(): PluginApiReturn<PluginProgramSiteAnalysisResult>;
|
|
294
|
+
/**
|
|
295
|
+
* Merge sourced site/zoning constraints into the active proposal's persisted
|
|
296
|
+
* Site Analysis sheet.
|
|
297
|
+
*
|
|
298
|
+
* Rows match by trimmed, case-insensitive Category + Description. Matched
|
|
299
|
+
* rows update only Quantity/Unit; unmatched rows append. Existing labels,
|
|
300
|
+
* formatting, and unrelated rows remain intact. There is deliberately no
|
|
301
|
+
* replace/reset mode — an appended duplicate row can NEVER be removed, so
|
|
302
|
+
* there is no "write now, fix later". Send only the rows that were actually
|
|
303
|
+
* sourced, ALWAYS call `getSiteAnalysis` first and reuse the sheet's exact
|
|
304
|
+
* labels, and never use `program.spreadsheet.setValues` for Site Analysis
|
|
305
|
+
* data — this method is the only correct writer. Check the result:
|
|
306
|
+
* `updatedRows` should account for every row that had a template match; an
|
|
307
|
+
* unexpected `appendedRows` usually means a label did not match the read's
|
|
308
|
+
* vocabulary.
|
|
309
|
+
*
|
|
310
|
+
* When Program mode is open, the host writes through the live sheet. Without
|
|
311
|
+
* a live tab it safely merges the persisted document. The call rejects rather
|
|
312
|
+
* than risk overwriting unflushed live edits or an unparseable existing sheet.
|
|
313
|
+
*
|
|
314
|
+
* @param rows - One or more sourced constraint rows to merge or append.
|
|
315
|
+
* @param options - Optional site location and JSON-encoded site polygon.
|
|
316
|
+
* @returns The target sheet name and merge counts.
|
|
317
|
+
* @throws PRECONDITION_FAILED when proposals exist but none is active, or
|
|
318
|
+
* when live Program edits cannot be flushed safely.
|
|
319
|
+
*
|
|
320
|
+
* @examplePrompt Save these zoning constraints to Site Analysis
|
|
321
|
+
* @examplePrompt Update the FAR and setbacks in the Site Analysis sheet
|
|
322
|
+
*
|
|
323
|
+
* # Example
|
|
324
|
+
* ```ts
|
|
325
|
+
* const result = await snaptrude.program.site.updateSiteAnalysis([
|
|
326
|
+
* { category: "FAR", description: "Floor Area Ratio", quantity: 3.5, unit: "ratio" },
|
|
327
|
+
* { category: "Set backs", description: "Front setbacks", quantity: 6, unit: "m" },
|
|
328
|
+
* ])
|
|
329
|
+
* console.log(result.sheetName, result.updatedRows, result.appendedRows)
|
|
330
|
+
* ```
|
|
331
|
+
*/
|
|
332
|
+
abstract updateSiteAnalysis(rows: PluginSiteAnalysisRow[], options?: PluginSiteAnalysisUpdateOptions): PluginApiReturn<PluginProgramSiteAnalysisUpdateResult>;
|
|
123
333
|
}
|
|
124
334
|
/**
|
|
125
|
-
* A
|
|
126
|
-
*
|
|
335
|
+
* A constraint row stored in the Site Analysis sheet. A `quantity` of `"-"`
|
|
336
|
+
* means the value is not recorded yet — never echo `"-"` back as a sourced
|
|
337
|
+
* value.
|
|
338
|
+
*/
|
|
339
|
+
export declare const PluginSiteAnalysisRow: z.ZodObject<{
|
|
340
|
+
category: z.ZodString;
|
|
341
|
+
description: z.ZodString;
|
|
342
|
+
quantity: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
343
|
+
unit: z.ZodString;
|
|
344
|
+
}, z.core.$strip>;
|
|
345
|
+
export type PluginSiteAnalysisRow = z.infer<typeof PluginSiteAnalysisRow>;
|
|
346
|
+
/**
|
|
347
|
+
* Optional site context persisted alongside Site Analysis constraint rows.
|
|
348
|
+
* `null` and `undefined` are both accepted as "no options".
|
|
349
|
+
*/
|
|
350
|
+
export declare const PluginSiteAnalysisUpdateOptions: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
351
|
+
siteLocation: z.ZodOptional<z.ZodObject<{
|
|
352
|
+
lat: z.ZodNumber;
|
|
353
|
+
lng: z.ZodNumber;
|
|
354
|
+
}, z.core.$strip>>;
|
|
355
|
+
sitePolygon: z.ZodOptional<z.ZodString>;
|
|
356
|
+
}, z.core.$strip>>>;
|
|
357
|
+
export type PluginSiteAnalysisUpdateOptions = z.infer<typeof PluginSiteAnalysisUpdateOptions>;
|
|
358
|
+
/** Persisted Site Analysis data for the active proposal. */
|
|
359
|
+
export declare const PluginProgramSiteAnalysisResult: z.ZodNullable<z.ZodObject<{
|
|
360
|
+
sheetName: z.ZodString;
|
|
361
|
+
siteLocation: z.ZodNullable<z.ZodObject<{
|
|
362
|
+
lat: z.ZodNumber;
|
|
363
|
+
lng: z.ZodNumber;
|
|
364
|
+
}, z.core.$strip>>;
|
|
365
|
+
sitePolygon: z.ZodNullable<z.ZodString>;
|
|
366
|
+
rows: z.ZodArray<z.ZodObject<{
|
|
367
|
+
category: z.ZodString;
|
|
368
|
+
description: z.ZodString;
|
|
369
|
+
quantity: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
370
|
+
unit: z.ZodString;
|
|
371
|
+
}, z.core.$strip>>;
|
|
372
|
+
}, z.core.$strip>>;
|
|
373
|
+
export type PluginProgramSiteAnalysisResult = z.infer<typeof PluginProgramSiteAnalysisResult>;
|
|
374
|
+
/** Result of a merge/append Site Analysis write. */
|
|
375
|
+
export declare const PluginProgramSiteAnalysisUpdateResult: z.ZodObject<{
|
|
376
|
+
sheetName: z.ZodString;
|
|
377
|
+
rowCount: z.ZodNumber;
|
|
378
|
+
updatedRows: z.ZodNumber;
|
|
379
|
+
appendedRows: z.ZodNumber;
|
|
380
|
+
}, z.core.$strip>;
|
|
381
|
+
export type PluginProgramSiteAnalysisUpdateResult = z.infer<typeof PluginProgramSiteAnalysisUpdateResult>;
|
|
382
|
+
/**
|
|
383
|
+
* A 2D ground-plane point of a site parcel footprint, in world XZ plan
|
|
384
|
+
* coordinates (Snaptrude units) — the same plan space as a space's
|
|
385
|
+
* `planPoints`, so site parcels overlay space footprints directly.
|
|
127
386
|
*
|
|
128
387
|
* | Property | Type | Description |
|
|
129
388
|
* |---|---|---|
|
|
130
|
-
* | `x` | `number` | X coordinate (
|
|
131
|
-
* | `z` | `number` | Z coordinate (
|
|
389
|
+
* | `x` | `number` | X coordinate (world, Snaptrude units) |
|
|
390
|
+
* | `z` | `number` | Z coordinate (world, Snaptrude units) |
|
|
132
391
|
*/
|
|
133
392
|
export declare const PluginSiteFootprintPoint: z.ZodObject<{
|
|
134
393
|
x: z.ZodNumber;
|
|
@@ -364,4 +623,201 @@ export declare const PluginProgramSiteContextResult: z.ZodNullable<z.ZodObject<{
|
|
|
364
623
|
}, z.core.$strip>>;
|
|
365
624
|
}, z.core.$strip>>;
|
|
366
625
|
export type PluginProgramSiteContextResult = z.infer<typeof PluginProgramSiteContextResult>;
|
|
626
|
+
/**
|
|
627
|
+
* The project's geographic location (WGS84).
|
|
628
|
+
*
|
|
629
|
+
* | Property | Type | Description |
|
|
630
|
+
* |---|---|---|
|
|
631
|
+
* | `latitude` | `number` | Latitude (degrees) |
|
|
632
|
+
* | `longitude` | `number` | Longitude (degrees) |
|
|
633
|
+
*/
|
|
634
|
+
export declare const PluginProgramSiteLocation: z.ZodObject<{
|
|
635
|
+
latitude: z.ZodNumber;
|
|
636
|
+
longitude: z.ZodNumber;
|
|
637
|
+
}, z.core.$strip>;
|
|
638
|
+
export type PluginProgramSiteLocation = z.infer<typeof PluginProgramSiteLocation>;
|
|
639
|
+
/**
|
|
640
|
+
* Result of {@linkcode PluginProgramSiteApi.getLocation} — the location, or
|
|
641
|
+
* `null` when the project is not geo-located.
|
|
642
|
+
*/
|
|
643
|
+
export declare const PluginProgramSiteLocationResult: z.ZodNullable<z.ZodObject<{
|
|
644
|
+
latitude: z.ZodNumber;
|
|
645
|
+
longitude: z.ZodNumber;
|
|
646
|
+
}, z.core.$strip>>;
|
|
647
|
+
export type PluginProgramSiteLocationResult = z.infer<typeof PluginProgramSiteLocationResult>;
|
|
648
|
+
/**
|
|
649
|
+
* Result of {@linkcode PluginProgramSiteApi.getNorthAngle} — the true-north
|
|
650
|
+
* angle in degrees (`[0, 360)`, clockwise-positive), or `null` when the
|
|
651
|
+
* project is not geo-located.
|
|
652
|
+
*/
|
|
653
|
+
export declare const PluginProgramSiteNorthAngleResult: z.ZodNullable<z.ZodNumber>;
|
|
654
|
+
export type PluginProgramSiteNorthAngleResult = z.infer<typeof PluginProgramSiteNorthAngleResult>;
|
|
655
|
+
/**
|
|
656
|
+
* Result of {@linkcode PluginProgramSiteApi.getTimezone} — the IANA timezone
|
|
657
|
+
* id of the project's geo-location (e.g. `"Europe/London"`), or `null` when
|
|
658
|
+
* the project is not geo-located.
|
|
659
|
+
*/
|
|
660
|
+
export declare const PluginProgramSiteTimezoneResult: z.ZodNullable<z.ZodString>;
|
|
661
|
+
export type PluginProgramSiteTimezoneResult = z.infer<typeof PluginProgramSiteTimezoneResult>;
|
|
662
|
+
/**
|
|
663
|
+
* A summary of the weather file resolved for the project site. Matches the
|
|
664
|
+
* relevant fields of `analysis.weather`'s `PluginWeatherSourceMeta`;
|
|
665
|
+
* `selectionMethod` is one of `"nearest-station"`, `"user-upload"`, or
|
|
666
|
+
* `"project-override"`.
|
|
667
|
+
*
|
|
668
|
+
* | Property | Type | Description |
|
|
669
|
+
* |---|---|---|
|
|
670
|
+
* | `weatherFileId` | `string` | Catalog id (same key as `core.io.import.epw`) |
|
|
671
|
+
* | `station` | `string` | Station/file name |
|
|
672
|
+
* | `checksum` | `string` | sha256 of the EPW file |
|
|
673
|
+
* | `selectionMethod` | `"nearest-station" \| "user-upload" \| "project-override"` | How the file was matched |
|
|
674
|
+
*/
|
|
675
|
+
export declare const PluginProgramSiteWeather: z.ZodObject<{
|
|
676
|
+
weatherFileId: z.ZodString;
|
|
677
|
+
station: z.ZodString;
|
|
678
|
+
checksum: z.ZodString;
|
|
679
|
+
selectionMethod: z.ZodEnum<{
|
|
680
|
+
"nearest-station": "nearest-station";
|
|
681
|
+
"user-upload": "user-upload";
|
|
682
|
+
"project-override": "project-override";
|
|
683
|
+
}>;
|
|
684
|
+
}, z.core.$strip>;
|
|
685
|
+
export type PluginProgramSiteWeather = z.infer<typeof PluginProgramSiteWeather>;
|
|
686
|
+
/**
|
|
687
|
+
* Result of {@linkcode PluginProgramSiteApi.getWeather} — the resolved weather
|
|
688
|
+
* file summary, or `null` when the project has no geo-located site.
|
|
689
|
+
*/
|
|
690
|
+
export declare const PluginProgramSiteWeatherResult: z.ZodNullable<z.ZodObject<{
|
|
691
|
+
weatherFileId: z.ZodString;
|
|
692
|
+
station: z.ZodString;
|
|
693
|
+
checksum: z.ZodString;
|
|
694
|
+
selectionMethod: z.ZodEnum<{
|
|
695
|
+
"nearest-station": "nearest-station";
|
|
696
|
+
"user-upload": "user-upload";
|
|
697
|
+
"project-override": "project-override";
|
|
698
|
+
}>;
|
|
699
|
+
}, z.core.$strip>>;
|
|
700
|
+
export type PluginProgramSiteWeatherResult = z.infer<typeof PluginProgramSiteWeatherResult>;
|
|
701
|
+
/**
|
|
702
|
+
* Front / side / rear classification of one site-boundary edge. `"street"`
|
|
703
|
+
* never appears — the backend synonym resolves to `front`.
|
|
704
|
+
*/
|
|
705
|
+
export declare const PluginProgramSiteEdgeRole: z.ZodEnum<{
|
|
706
|
+
front: "front";
|
|
707
|
+
side: "side";
|
|
708
|
+
rear: "rear";
|
|
709
|
+
}>;
|
|
710
|
+
export type PluginProgramSiteEdgeRole = z.infer<typeof PluginProgramSiteEdgeRole>;
|
|
711
|
+
/**
|
|
712
|
+
* One boundary edge of a site parcel, as {@linkcode PluginProgramSiteApi.listEdges}
|
|
713
|
+
* returns it. Coordinates and lengths are world meters.
|
|
714
|
+
*
|
|
715
|
+
* | Property | Type | Description |
|
|
716
|
+
* |---|---|---|
|
|
717
|
+
* | `edgeIndex` | `number` | Index in the canonicalized (sanitized, CCW) boundary — the same index space the envelope's `edgeOverrides` use |
|
|
718
|
+
* | `start` / `end` | `{ x, z }` | Edge endpoints, world XZ meters |
|
|
719
|
+
* | `lengthMeters` | `number` | Edge length in meters |
|
|
720
|
+
* | `role` | `"front" \| "side" \| "rear"` | Resolved classification (user override wins over the heuristic) |
|
|
721
|
+
* | `roleSource` | `"override" \| "heuristic"` | Whether the user reassigned this edge's role or the tangent heuristic classified it |
|
|
722
|
+
* | `setbackMeters` | `number \| null` | Effective base setback (per-edge exception ?? role value); `null` when the parcel has no zoning envelope |
|
|
723
|
+
*/
|
|
724
|
+
export declare const PluginProgramSiteEdge: z.ZodObject<{
|
|
725
|
+
edgeIndex: z.ZodNumber;
|
|
726
|
+
start: z.ZodObject<{
|
|
727
|
+
x: z.ZodNumber;
|
|
728
|
+
z: z.ZodNumber;
|
|
729
|
+
}, z.core.$strip>;
|
|
730
|
+
end: z.ZodObject<{
|
|
731
|
+
x: z.ZodNumber;
|
|
732
|
+
z: z.ZodNumber;
|
|
733
|
+
}, z.core.$strip>;
|
|
734
|
+
lengthMeters: z.ZodNumber;
|
|
735
|
+
role: z.ZodEnum<{
|
|
736
|
+
front: "front";
|
|
737
|
+
side: "side";
|
|
738
|
+
rear: "rear";
|
|
739
|
+
}>;
|
|
740
|
+
roleSource: z.ZodEnum<{
|
|
741
|
+
override: "override";
|
|
742
|
+
heuristic: "heuristic";
|
|
743
|
+
}>;
|
|
744
|
+
setbackMeters: z.ZodNullable<z.ZodNumber>;
|
|
745
|
+
}, z.core.$strip>;
|
|
746
|
+
export type PluginProgramSiteEdge = z.infer<typeof PluginProgramSiteEdge>;
|
|
747
|
+
/**
|
|
748
|
+
* Per-parcel entry of {@linkcode PluginProgramSiteApi.listEdges}.
|
|
749
|
+
*
|
|
750
|
+
* | Property | Type | Description |
|
|
751
|
+
* |---|---|---|
|
|
752
|
+
* | `siteId` | `string` | The parcel's component id (same id space as `listPolygons`) |
|
|
753
|
+
* | `buildableEnvelopeId` | `string \| null` | Linked zoning envelope, when one exists |
|
|
754
|
+
* | `usingLiveSiteBoundary` | `boolean` | `true` when edges come from the live site boundary; `false` when only the envelope's persisted source polygon was resolvable |
|
|
755
|
+
* | `staleOverridesDropped` | `boolean` | `true` when persisted edge overrides no longer index-align with the live boundary and were ignored |
|
|
756
|
+
* | `edges` | `PluginProgramSiteEdge[]` | The classified boundary edges |
|
|
757
|
+
*/
|
|
758
|
+
export declare const PluginProgramSiteEdgesEntry: z.ZodObject<{
|
|
759
|
+
siteId: z.ZodString;
|
|
760
|
+
buildableEnvelopeId: z.ZodNullable<z.ZodString>;
|
|
761
|
+
usingLiveSiteBoundary: z.ZodBoolean;
|
|
762
|
+
staleOverridesDropped: z.ZodBoolean;
|
|
763
|
+
edges: z.ZodArray<z.ZodObject<{
|
|
764
|
+
edgeIndex: z.ZodNumber;
|
|
765
|
+
start: z.ZodObject<{
|
|
766
|
+
x: z.ZodNumber;
|
|
767
|
+
z: z.ZodNumber;
|
|
768
|
+
}, z.core.$strip>;
|
|
769
|
+
end: z.ZodObject<{
|
|
770
|
+
x: z.ZodNumber;
|
|
771
|
+
z: z.ZodNumber;
|
|
772
|
+
}, z.core.$strip>;
|
|
773
|
+
lengthMeters: z.ZodNumber;
|
|
774
|
+
role: z.ZodEnum<{
|
|
775
|
+
front: "front";
|
|
776
|
+
side: "side";
|
|
777
|
+
rear: "rear";
|
|
778
|
+
}>;
|
|
779
|
+
roleSource: z.ZodEnum<{
|
|
780
|
+
override: "override";
|
|
781
|
+
heuristic: "heuristic";
|
|
782
|
+
}>;
|
|
783
|
+
setbackMeters: z.ZodNullable<z.ZodNumber>;
|
|
784
|
+
}, z.core.$strip>>;
|
|
785
|
+
}, z.core.$strip>;
|
|
786
|
+
export type PluginProgramSiteEdgesEntry = z.infer<typeof PluginProgramSiteEdgesEntry>;
|
|
787
|
+
/**
|
|
788
|
+
* Result of {@linkcode PluginProgramSiteApi.listEdges} — one entry per site
|
|
789
|
+
* parcel; empty when the project has no site. `lengthUnit` is always `"m"`.
|
|
790
|
+
*/
|
|
791
|
+
export declare const PluginProgramSiteListEdgesResult: z.ZodObject<{
|
|
792
|
+
lengthUnit: z.ZodLiteral<"m">;
|
|
793
|
+
sites: z.ZodArray<z.ZodObject<{
|
|
794
|
+
siteId: z.ZodString;
|
|
795
|
+
buildableEnvelopeId: z.ZodNullable<z.ZodString>;
|
|
796
|
+
usingLiveSiteBoundary: z.ZodBoolean;
|
|
797
|
+
staleOverridesDropped: z.ZodBoolean;
|
|
798
|
+
edges: z.ZodArray<z.ZodObject<{
|
|
799
|
+
edgeIndex: z.ZodNumber;
|
|
800
|
+
start: z.ZodObject<{
|
|
801
|
+
x: z.ZodNumber;
|
|
802
|
+
z: z.ZodNumber;
|
|
803
|
+
}, z.core.$strip>;
|
|
804
|
+
end: z.ZodObject<{
|
|
805
|
+
x: z.ZodNumber;
|
|
806
|
+
z: z.ZodNumber;
|
|
807
|
+
}, z.core.$strip>;
|
|
808
|
+
lengthMeters: z.ZodNumber;
|
|
809
|
+
role: z.ZodEnum<{
|
|
810
|
+
front: "front";
|
|
811
|
+
side: "side";
|
|
812
|
+
rear: "rear";
|
|
813
|
+
}>;
|
|
814
|
+
roleSource: z.ZodEnum<{
|
|
815
|
+
override: "override";
|
|
816
|
+
heuristic: "heuristic";
|
|
817
|
+
}>;
|
|
818
|
+
setbackMeters: z.ZodNullable<z.ZodNumber>;
|
|
819
|
+
}, z.core.$strip>>;
|
|
820
|
+
}, z.core.$strip>>;
|
|
821
|
+
}, z.core.$strip>;
|
|
822
|
+
export type PluginProgramSiteListEdgesResult = z.infer<typeof PluginProgramSiteListEdgesResult>;
|
|
367
823
|
//# sourceMappingURL=site.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../../src/api/program/site.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C
|
|
1
|
+
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../../src/api/program/site.ts"],"names":[],"mappings":"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"}
|