@snaptrude/plugin-core 0.0.0-bimsvg-20260928124803

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.
Files changed (383) hide show
  1. package/AGENTS.md +231 -0
  2. package/CHANGELOG.md +341 -0
  3. package/CLAUDE.md +11 -0
  4. package/api-manifest.json +9120 -0
  5. package/dist/api/analysis/daylight.d.ts +603 -0
  6. package/dist/api/analysis/daylight.d.ts.map +1 -0
  7. package/dist/api/analysis/heatmaps.d.ts +658 -0
  8. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  9. package/dist/api/analysis/illuminance.d.ts +145 -0
  10. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  11. package/dist/api/analysis/index.d.ts +59 -0
  12. package/dist/api/analysis/index.d.ts.map +1 -0
  13. package/dist/api/analysis/shadows.d.ts +165 -0
  14. package/dist/api/analysis/shadows.d.ts.map +1 -0
  15. package/dist/api/analysis/solar.d.ts +249 -0
  16. package/dist/api/analysis/solar.d.ts.map +1 -0
  17. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  18. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  19. package/dist/api/analysis/sunpath.d.ts +80 -0
  20. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  21. package/dist/api/analysis/weather.d.ts +193 -0
  22. package/dist/api/analysis/weather.d.ts.map +1 -0
  23. package/dist/api/core/buildings.d.ts +427 -0
  24. package/dist/api/core/buildings.d.ts.map +1 -0
  25. package/dist/api/core/camera/index.d.ts +261 -0
  26. package/dist/api/core/camera/index.d.ts.map +1 -0
  27. package/dist/api/core/comment/index.d.ts +333 -0
  28. package/dist/api/core/comment/index.d.ts.map +1 -0
  29. package/dist/api/core/geom/create/index.d.ts +1073 -0
  30. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  31. package/dist/api/core/geom/delete/index.d.ts +78 -0
  32. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  33. package/dist/api/core/geom/index.d.ts +33 -0
  34. package/dist/api/core/geom/index.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/arc.d.ts +169 -0
  36. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  37. package/dist/api/core/geom/query/brep.d.ts +514 -0
  38. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  39. package/dist/api/core/geom/query/circle.d.ts +378 -0
  40. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  41. package/dist/api/core/geom/query/contour.d.ts +450 -0
  42. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  43. package/dist/api/core/geom/query/curve.d.ts +918 -0
  44. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  45. package/dist/api/core/geom/query/edge.d.ts +128 -0
  46. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  47. package/dist/api/core/geom/query/face.d.ts +363 -0
  48. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  49. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  50. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  51. package/dist/api/core/geom/query/index.d.ts +61 -0
  52. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  53. package/dist/api/core/geom/query/profile.d.ts +410 -0
  54. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  55. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  56. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  57. package/dist/api/core/geom/update/contour.d.ts +272 -0
  58. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  59. package/dist/api/core/geom/update/curve.d.ts +180 -0
  60. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  61. package/dist/api/core/geom/update/index.d.ts +27 -0
  62. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  63. package/dist/api/core/geom/update/profile.d.ts +329 -0
  64. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  65. package/dist/api/core/groups.d.ts +485 -0
  66. package/dist/api/core/groups.d.ts.map +1 -0
  67. package/dist/api/core/handles/index.d.ts +210 -0
  68. package/dist/api/core/handles/index.d.ts.map +1 -0
  69. package/dist/api/core/history/index.d.ts +78 -0
  70. package/dist/api/core/history/index.d.ts.map +1 -0
  71. package/dist/api/core/index.d.ts +97 -0
  72. package/dist/api/core/index.d.ts.map +1 -0
  73. package/dist/api/core/io/export/index.d.ts +134 -0
  74. package/dist/api/core/io/export/index.d.ts.map +1 -0
  75. package/dist/api/core/io/import/index.d.ts +455 -0
  76. package/dist/api/core/io/import/index.d.ts.map +1 -0
  77. package/dist/api/core/io/index.d.ts +40 -0
  78. package/dist/api/core/io/index.d.ts.map +1 -0
  79. package/dist/api/core/io/job/index.d.ts +139 -0
  80. package/dist/api/core/io/job/index.d.ts.map +1 -0
  81. package/dist/api/core/io/query/index.d.ts +74 -0
  82. package/dist/api/core/io/query/index.d.ts.map +1 -0
  83. package/dist/api/core/io/terrain/index.d.ts +341 -0
  84. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  85. package/dist/api/core/io/underlay/index.d.ts +805 -0
  86. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  87. package/dist/api/core/layers.d.ts +402 -0
  88. package/dist/api/core/layers.d.ts.map +1 -0
  89. package/dist/api/core/math/index.d.ts +18 -0
  90. package/dist/api/core/math/index.d.ts.map +1 -0
  91. package/dist/api/core/math/quat.d.ts +170 -0
  92. package/dist/api/core/math/quat.d.ts.map +1 -0
  93. package/dist/api/core/math/vec3.d.ts +174 -0
  94. package/dist/api/core/math/vec3.d.ts.map +1 -0
  95. package/dist/api/core/mode/index.d.ts +111 -0
  96. package/dist/api/core/mode/index.d.ts.map +1 -0
  97. package/dist/api/core/project/index.d.ts +466 -0
  98. package/dist/api/core/project/index.d.ts.map +1 -0
  99. package/dist/api/core/proposals/index.d.ts +531 -0
  100. package/dist/api/core/proposals/index.d.ts.map +1 -0
  101. package/dist/api/core/storeys/index.d.ts +265 -0
  102. package/dist/api/core/storeys/index.d.ts.map +1 -0
  103. package/dist/api/core/tags.d.ts +860 -0
  104. package/dist/api/core/tags.d.ts.map +1 -0
  105. package/dist/api/core/units/index.d.ts +175 -0
  106. package/dist/api/core/units/index.d.ts.map +1 -0
  107. package/dist/api/core/user.d.ts +44 -0
  108. package/dist/api/core/user.d.ts.map +1 -0
  109. package/dist/api/core/zoom/index.d.ts +49 -0
  110. package/dist/api/core/zoom/index.d.ts.map +1 -0
  111. package/dist/api/design/boolean/index.d.ts +168 -0
  112. package/dist/api/design/boolean/index.d.ts.map +1 -0
  113. package/dist/api/design/create/bulk-items.d.ts +185 -0
  114. package/dist/api/design/create/bulk-items.d.ts.map +1 -0
  115. package/dist/api/design/create/grids.d.ts +132 -0
  116. package/dist/api/design/create/grids.d.ts.map +1 -0
  117. package/dist/api/design/create/index.d.ts +1747 -0
  118. package/dist/api/design/create/index.d.ts.map +1 -0
  119. package/dist/api/design/create/opening-fields.d.ts +37 -0
  120. package/dist/api/design/create/opening-fields.d.ts.map +1 -0
  121. package/dist/api/design/delete/index.d.ts +70 -0
  122. package/dist/api/design/delete/index.d.ts.map +1 -0
  123. package/dist/api/design/dimensions.d.ts +427 -0
  124. package/dist/api/design/dimensions.d.ts.map +1 -0
  125. package/dist/api/design/doors/index.d.ts +470 -0
  126. package/dist/api/design/doors/index.d.ts.map +1 -0
  127. package/dist/api/design/edit/index.d.ts +49 -0
  128. package/dist/api/design/edit/index.d.ts.map +1 -0
  129. package/dist/api/design/erase/index.d.ts +160 -0
  130. package/dist/api/design/erase/index.d.ts.map +1 -0
  131. package/dist/api/design/family.d.ts +611 -0
  132. package/dist/api/design/family.d.ts.map +1 -0
  133. package/dist/api/design/furniture/index.d.ts +296 -0
  134. package/dist/api/design/furniture/index.d.ts.map +1 -0
  135. package/dist/api/design/grids.d.ts +237 -0
  136. package/dist/api/design/grids.d.ts.map +1 -0
  137. package/dist/api/design/index.d.ts +260 -0
  138. package/dist/api/design/index.d.ts.map +1 -0
  139. package/dist/api/design/lock.d.ts +67 -0
  140. package/dist/api/design/lock.d.ts.map +1 -0
  141. package/dist/api/design/materials/index.d.ts +551 -0
  142. package/dist/api/design/materials/index.d.ts.map +1 -0
  143. package/dist/api/design/query/geometry/index.d.ts +252 -0
  144. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  145. package/dist/api/design/query/grids.d.ts +287 -0
  146. package/dist/api/design/query/grids.d.ts.map +1 -0
  147. package/dist/api/design/query/index.d.ts +1318 -0
  148. package/dist/api/design/query/index.d.ts.map +1 -0
  149. package/dist/api/design/query/referenceLines.d.ts +45 -0
  150. package/dist/api/design/query/referenceLines.d.ts.map +1 -0
  151. package/dist/api/design/query/spaces.d.ts +394 -0
  152. package/dist/api/design/query/spaces.d.ts.map +1 -0
  153. package/dist/api/design/selection/index.d.ts +282 -0
  154. package/dist/api/design/selection/index.d.ts.map +1 -0
  155. package/dist/api/design/shared.d.ts +38 -0
  156. package/dist/api/design/shared.d.ts.map +1 -0
  157. package/dist/api/design/transform/index.d.ts +249 -0
  158. package/dist/api/design/transform/index.d.ts.map +1 -0
  159. package/dist/api/design/types/index.d.ts +181 -0
  160. package/dist/api/design/types/index.d.ts.map +1 -0
  161. package/dist/api/design/update/index.d.ts +803 -0
  162. package/dist/api/design/update/index.d.ts.map +1 -0
  163. package/dist/api/design/visibility.d.ts +126 -0
  164. package/dist/api/design/visibility.d.ts.map +1 -0
  165. package/dist/api/design/windows/index.d.ts +300 -0
  166. package/dist/api/design/windows/index.d.ts.map +1 -0
  167. package/dist/api/entity/buildableEnvelope.d.ts +265 -0
  168. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  169. package/dist/api/entity/department.d.ts +1 -0
  170. package/dist/api/entity/department.d.ts.map +1 -0
  171. package/dist/api/entity/index.d.ts +28 -0
  172. package/dist/api/entity/index.d.ts.map +1 -0
  173. package/dist/api/entity/referenceLine.d.ts +210 -0
  174. package/dist/api/entity/referenceLine.d.ts.map +1 -0
  175. package/dist/api/entity/space.d.ts +846 -0
  176. package/dist/api/entity/space.d.ts.map +1 -0
  177. package/dist/api/entity/story.d.ts +476 -0
  178. package/dist/api/entity/story.d.ts.map +1 -0
  179. package/dist/api/index.d.ts +45 -0
  180. package/dist/api/index.d.ts.map +1 -0
  181. package/dist/api/presentation/aiInspiration.d.ts +2400 -0
  182. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  183. package/dist/api/presentation/annotate.d.ts +483 -0
  184. package/dist/api/presentation/annotate.d.ts.map +1 -0
  185. package/dist/api/presentation/diagrams.d.ts +184 -0
  186. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  187. package/dist/api/presentation/drawings.d.ts +2900 -0
  188. package/dist/api/presentation/drawings.d.ts.map +1 -0
  189. package/dist/api/presentation/export.d.ts +126 -0
  190. package/dist/api/presentation/export.d.ts.map +1 -0
  191. package/dist/api/presentation/import.d.ts +164 -0
  192. package/dist/api/presentation/import.d.ts.map +1 -0
  193. package/dist/api/presentation/index.d.ts +114 -0
  194. package/dist/api/presentation/index.d.ts.map +1 -0
  195. package/dist/api/presentation/placedViews.d.ts +1232 -0
  196. package/dist/api/presentation/placedViews.d.ts.map +1 -0
  197. package/dist/api/presentation/shapes.d.ts +481 -0
  198. package/dist/api/presentation/shapes.d.ts.map +1 -0
  199. package/dist/api/presentation/sheets.d.ts +643 -0
  200. package/dist/api/presentation/sheets.d.ts.map +1 -0
  201. package/dist/api/presentation/slideshow.d.ts +125 -0
  202. package/dist/api/presentation/slideshow.d.ts.map +1 -0
  203. package/dist/api/presentation/tables.d.ts +81 -0
  204. package/dist/api/presentation/tables.d.ts.map +1 -0
  205. package/dist/api/presentation/viewPresets.d.ts +70 -0
  206. package/dist/api/presentation/viewPresets.d.ts.map +1 -0
  207. package/dist/api/presentation/views.d.ts +741 -0
  208. package/dist/api/presentation/views.d.ts.map +1 -0
  209. package/dist/api/program/adjacency.d.ts +155 -0
  210. package/dist/api/program/adjacency.d.ts.map +1 -0
  211. package/dist/api/program/areas.d.ts +450 -0
  212. package/dist/api/program/areas.d.ts.map +1 -0
  213. package/dist/api/program/classification.d.ts +135 -0
  214. package/dist/api/program/classification.d.ts.map +1 -0
  215. package/dist/api/program/cores.d.ts +78 -0
  216. package/dist/api/program/cores.d.ts.map +1 -0
  217. package/dist/api/program/departments.d.ts +487 -0
  218. package/dist/api/program/departments.d.ts.map +1 -0
  219. package/dist/api/program/index.d.ts +71 -0
  220. package/dist/api/program/index.d.ts.map +1 -0
  221. package/dist/api/program/labels.d.ts +355 -0
  222. package/dist/api/program/labels.d.ts.map +1 -0
  223. package/dist/api/program/layout.d.ts +398 -0
  224. package/dist/api/program/layout.d.ts.map +1 -0
  225. package/dist/api/program/metadata.d.ts +328 -0
  226. package/dist/api/program/metadata.d.ts.map +1 -0
  227. package/dist/api/program/metrics.d.ts +108 -0
  228. package/dist/api/program/metrics.d.ts.map +1 -0
  229. package/dist/api/program/site.d.ts +823 -0
  230. package/dist/api/program/site.d.ts.map +1 -0
  231. package/dist/api/program/spreadsheet.d.ts +2628 -0
  232. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  233. package/dist/api/workspace/index.d.ts +552 -0
  234. package/dist/api/workspace/index.d.ts.map +1 -0
  235. package/dist/errors/codes.d.ts +34 -0
  236. package/dist/errors/codes.d.ts.map +1 -0
  237. package/dist/errors/envelope.d.ts +56 -0
  238. package/dist/errors/envelope.d.ts.map +1 -0
  239. package/dist/errors/index.d.ts +6 -0
  240. package/dist/errors/index.d.ts.map +1 -0
  241. package/dist/errors/plugin-error.d.ts +69 -0
  242. package/dist/errors/plugin-error.d.ts.map +1 -0
  243. package/dist/handles.d.ts +229 -0
  244. package/dist/handles.d.ts.map +1 -0
  245. package/dist/host-utils.d.ts +47 -0
  246. package/dist/host-utils.d.ts.map +1 -0
  247. package/dist/index.cjs +8836 -0
  248. package/dist/index.cjs.map +1 -0
  249. package/dist/index.d.ts +6 -0
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +7568 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/types.d.ts +16 -0
  254. package/dist/types.d.ts.map +1 -0
  255. package/package.json +41 -0
  256. package/scripts/generate-manifest.mjs +238 -0
  257. package/scripts/generate-manifest.test.mjs +292 -0
  258. package/src/api/analysis/daylight.ts +470 -0
  259. package/src/api/analysis/heatmaps.ts +683 -0
  260. package/src/api/analysis/illuminance.ts +155 -0
  261. package/src/api/analysis/index.ts +61 -0
  262. package/src/api/analysis/shadows.ts +183 -0
  263. package/src/api/analysis/solar.ts +237 -0
  264. package/src/api/analysis/sunlightHours.ts +211 -0
  265. package/src/api/analysis/sunpath.ts +83 -0
  266. package/src/api/analysis/weather.ts +179 -0
  267. package/src/api/core/buildings.ts +485 -0
  268. package/src/api/core/camera/index.ts +268 -0
  269. package/src/api/core/comment/index.ts +376 -0
  270. package/src/api/core/geom/create/index.ts +1204 -0
  271. package/src/api/core/geom/delete/index.ts +84 -0
  272. package/src/api/core/geom/index.ts +35 -0
  273. package/src/api/core/geom/query/arc.ts +169 -0
  274. package/src/api/core/geom/query/brep.ts +563 -0
  275. package/src/api/core/geom/query/circle.ts +404 -0
  276. package/src/api/core/geom/query/contour.ts +540 -0
  277. package/src/api/core/geom/query/curve.ts +1078 -0
  278. package/src/api/core/geom/query/edge.ts +130 -0
  279. package/src/api/core/geom/query/face.ts +403 -0
  280. package/src/api/core/geom/query/halfedge.ts +210 -0
  281. package/src/api/core/geom/query/index.ts +63 -0
  282. package/src/api/core/geom/query/profile.ts +473 -0
  283. package/src/api/core/geom/query/vertex.ts +205 -0
  284. package/src/api/core/geom/update/contour.ts +315 -0
  285. package/src/api/core/geom/update/curve.ts +209 -0
  286. package/src/api/core/geom/update/index.ts +29 -0
  287. package/src/api/core/geom/update/profile.ts +377 -0
  288. package/src/api/core/groups.ts +521 -0
  289. package/src/api/core/handles/index.ts +233 -0
  290. package/src/api/core/history/index.ts +84 -0
  291. package/src/api/core/index.ts +99 -0
  292. package/src/api/core/io/export/index.ts +126 -0
  293. package/src/api/core/io/import/index.ts +504 -0
  294. package/src/api/core/io/index.ts +42 -0
  295. package/src/api/core/io/job/index.ts +140 -0
  296. package/src/api/core/io/query/index.ts +71 -0
  297. package/src/api/core/io/terrain/index.ts +360 -0
  298. package/src/api/core/io/underlay/index.ts +705 -0
  299. package/src/api/core/layers.ts +333 -0
  300. package/src/api/core/math/index.ts +20 -0
  301. package/src/api/core/math/quat.ts +172 -0
  302. package/src/api/core/math/vec3.ts +179 -0
  303. package/src/api/core/mode/index.ts +108 -0
  304. package/src/api/core/project/index.ts +479 -0
  305. package/src/api/core/proposals/index.ts +569 -0
  306. package/src/api/core/storeys/index.ts +294 -0
  307. package/src/api/core/tags.ts +911 -0
  308. package/src/api/core/units/index.ts +164 -0
  309. package/src/api/core/user.ts +46 -0
  310. package/src/api/core/zoom/index.ts +51 -0
  311. package/src/api/design/boolean/index.ts +179 -0
  312. package/src/api/design/create/bulk-items.ts +186 -0
  313. package/src/api/design/create/grids.ts +137 -0
  314. package/src/api/design/create/index.ts +1954 -0
  315. package/src/api/design/create/opening-fields.ts +37 -0
  316. package/src/api/design/delete/index.ts +74 -0
  317. package/src/api/design/dimensions.ts +453 -0
  318. package/src/api/design/doors/index.ts +500 -0
  319. package/src/api/design/edit/index.ts +54 -0
  320. package/src/api/design/erase/index.ts +151 -0
  321. package/src/api/design/family.ts +646 -0
  322. package/src/api/design/furniture/index.ts +319 -0
  323. package/src/api/design/grids.ts +237 -0
  324. package/src/api/design/index.ts +274 -0
  325. package/src/api/design/lock.ts +69 -0
  326. package/src/api/design/materials/index.ts +608 -0
  327. package/src/api/design/query/geometry/index.ts +288 -0
  328. package/src/api/design/query/grids.ts +197 -0
  329. package/src/api/design/query/index.ts +1176 -0
  330. package/src/api/design/query/referenceLines.ts +52 -0
  331. package/src/api/design/query/spaces.ts +275 -0
  332. package/src/api/design/selection/index.ts +273 -0
  333. package/src/api/design/shared.ts +40 -0
  334. package/src/api/design/transform/index.ts +254 -0
  335. package/src/api/design/types/index.ts +156 -0
  336. package/src/api/design/update/index.ts +798 -0
  337. package/src/api/design/visibility.ts +143 -0
  338. package/src/api/design/windows/index.ts +333 -0
  339. package/src/api/entity/buildableEnvelope.ts +322 -0
  340. package/src/api/entity/department.ts +0 -0
  341. package/src/api/entity/index.ts +30 -0
  342. package/src/api/entity/referenceLine.ts +235 -0
  343. package/src/api/entity/space.ts +612 -0
  344. package/src/api/entity/story.ts +517 -0
  345. package/src/api/index.ts +47 -0
  346. package/src/api/presentation/aiInspiration.ts +1116 -0
  347. package/src/api/presentation/annotate.ts +417 -0
  348. package/src/api/presentation/diagrams.ts +194 -0
  349. package/src/api/presentation/drawings.ts +529 -0
  350. package/src/api/presentation/export.ts +133 -0
  351. package/src/api/presentation/import.ts +159 -0
  352. package/src/api/presentation/index.ts +129 -0
  353. package/src/api/presentation/placedViews.ts +1203 -0
  354. package/src/api/presentation/shapes.ts +274 -0
  355. package/src/api/presentation/sheets.ts +616 -0
  356. package/src/api/presentation/slideshow.ts +134 -0
  357. package/src/api/presentation/tables.ts +84 -0
  358. package/src/api/presentation/viewPresets.ts +83 -0
  359. package/src/api/presentation/views.ts +698 -0
  360. package/src/api/program/adjacency.ts +164 -0
  361. package/src/api/program/areas.ts +408 -0
  362. package/src/api/program/classification.ts +138 -0
  363. package/src/api/program/cores.ts +83 -0
  364. package/src/api/program/departments.ts +517 -0
  365. package/src/api/program/index.ts +73 -0
  366. package/src/api/program/labels.ts +332 -0
  367. package/src/api/program/layout.ts +422 -0
  368. package/src/api/program/metadata.ts +364 -0
  369. package/src/api/program/metrics.ts +120 -0
  370. package/src/api/program/site.ts +748 -0
  371. package/src/api/program/spreadsheet.ts +2698 -0
  372. package/src/api/workspace/index.ts +612 -0
  373. package/src/errors/codes.ts +136 -0
  374. package/src/errors/envelope.ts +75 -0
  375. package/src/errors/index.ts +21 -0
  376. package/src/errors/plugin-error.ts +134 -0
  377. package/src/handles.ts +282 -0
  378. package/src/host-utils.ts +68 -0
  379. package/src/index.ts +5 -0
  380. package/src/types.ts +16 -0
  381. package/test/errors.test.mjs +184 -0
  382. package/tsconfig.json +22 -0
  383. package/tsup.config.ts +12 -0
@@ -0,0 +1,612 @@
1
+ import * as z from "zod"
2
+ import { PluginApiReturn } from "../../types"
3
+
4
+ /**
5
+ * `snaptrude.workspace.*` — the dashboard surface: projects and teams outside the
6
+ * open canvas.
7
+ *
8
+ * This namespace reads and creates the containers a design lives in — the
9
+ * project itself and the team it belongs to — mirroring the Snaptrude dashboard.
10
+ * Teams are **read-only** here (no create/invite/delete in v1, a deliberate
11
+ * safety decision); there are no folders in v1. A `projectId` is the project's
12
+ * floorkey. Plan limits are enforced by the backend — a limit rejection surfaces
13
+ * as a normal host error. It also carries the workspace-level mode switches for
14
+ * Present mode ({@linkcode PluginWorkspaceApi.openPresentMode} /
15
+ * {@linkcode PluginWorkspaceApi.closePresentMode}) and Program mode
16
+ * ({@linkcode PluginWorkspaceApi.openProgramMode} /
17
+ * {@linkcode PluginWorkspaceApi.closeProgramMode}).
18
+ *
19
+ * - {@linkcode PluginWorkspaceApi.projects} — Create, copy, list, read & rename projects
20
+ * - {@linkcode PluginWorkspaceApi.teams} — Read teams and their members
21
+ * - {@linkcode PluginWorkspaceApi.openPresentMode} / {@linkcode PluginWorkspaceApi.closePresentMode} — Open/close the Present-mode documentation editor
22
+ * - {@linkcode PluginWorkspaceApi.openProgramMode} / {@linkcode PluginWorkspaceApi.closeProgramMode} — Open/close the Program tab (the spreadsheet the `program.spreadsheet.*` calls run in)
23
+ */
24
+ export abstract class PluginWorkspaceApi {
25
+ /** Projects — create, copy, list, read & rename. See {@linkcode PluginWorkspaceProjectsApi}. */
26
+ public abstract projects: PluginWorkspaceProjectsApi
27
+ /** Teams — read teams and their members. See {@linkcode PluginWorkspaceTeamsApi}. */
28
+ public abstract teams: PluginWorkspaceTeamsApi
29
+
30
+ /**
31
+ * Open Present mode — the documentation editor the `presentation.*`
32
+ * namespaces operate on.
33
+ *
34
+ * Switches the workspace into Present mode and resolves only once the
35
+ * Present canvas has finished mounting (waits up to ~15s; a mount that
36
+ * never completes is refused with a typed `PRECONDITION_FAILED`), so a
37
+ * `presentation.*` call issued right after this resolves finds Present
38
+ * mode open. Idempotent — resolves immediately when Present mode is
39
+ * already open. Write-gated: switching the mode under the user's feet is
40
+ * approval-controlled by design.
41
+ *
42
+ * @throws `PRECONDITION_FAILED` if the Present canvas does not mount within
43
+ * the timeout.
44
+ *
45
+ * @examplePrompt Open present mode
46
+ * @examplePrompt Switch to the presentation editor
47
+ * @examplePrompt Open the sheets so I can lay out views
48
+ *
49
+ * # Example
50
+ * ```ts
51
+ * await snaptrude.workspace.openPresentMode()
52
+ * const { sheets } = await snaptrude.presentation.sheets.list()
53
+ * ```
54
+ */
55
+ public abstract openPresentMode(): PluginApiReturn<void>
56
+
57
+ /**
58
+ * Close Present mode and return to the modeling canvas.
59
+ *
60
+ * Idempotent — a no-op when Present mode is not open. Write-gated, like
61
+ * {@linkcode PluginWorkspaceApi.openPresentMode}.
62
+ *
63
+ * @examplePrompt Close present mode
64
+ * @examplePrompt Exit the presentation editor
65
+ * @examplePrompt Go back to the modeling canvas
66
+ *
67
+ * # Example
68
+ * ```ts
69
+ * await snaptrude.workspace.closePresentMode()
70
+ * ```
71
+ */
72
+ public abstract closePresentMode(): PluginApiReturn<void>
73
+
74
+ /**
75
+ * Open Program mode — the Program tab the `program.spreadsheet.*` calls run in.
76
+ *
77
+ * Runs the top bar's own Program-button sequence (remember the preference,
78
+ * open or re-link the paired Program window) and resolves only once that tab
79
+ * has connected to the editor over its channel, so a `program.spreadsheet.*`
80
+ * call issued right after this resolves finds the tab open. The open happens
81
+ * outside a user gesture, so the browser may block the pop-up; the editor
82
+ * then shows its "Allow pop-up to continue" modal and this call keeps waiting
83
+ * (up to ~90s) for the user to confirm. Idempotent — resolves immediately
84
+ * when the Program tab is already connected, and is a no-op when the plugin is
85
+ * itself running in the Program tab. Write-gated.
86
+ *
87
+ * @throws `PRECONDITION_FAILED` if the user dismisses the pop-up modal or the
88
+ * Program tab does not connect within the timeout.
89
+ *
90
+ * @examplePrompt Open program mode
91
+ * @examplePrompt Open the Program tab so I can build a custom sheet
92
+ * @examplePrompt Switch to the program spreadsheet
93
+ *
94
+ * # Example
95
+ * ```ts
96
+ * await snaptrude.workspace.openProgramMode()
97
+ * const { sheets } = await snaptrude.program.spreadsheet.listSheets()
98
+ * ```
99
+ */
100
+ public abstract openProgramMode(): PluginApiReturn<void>
101
+
102
+ /**
103
+ * Close the Program tab.
104
+ *
105
+ * Idempotent — a no-op when no Program tab is connected. Write-gated, like
106
+ * {@linkcode PluginWorkspaceApi.openProgramMode}.
107
+ *
108
+ * @throws `PRECONDITION_FAILED` if the tab is still connected after ~15s.
109
+ *
110
+ * @examplePrompt Close program mode
111
+ * @examplePrompt Close the Program tab
112
+ *
113
+ * # Example
114
+ * ```ts
115
+ * await snaptrude.workspace.closeProgramMode()
116
+ * ```
117
+ */
118
+ public abstract closeProgramMode(): PluginApiReturn<void>
119
+
120
+ constructor() {}
121
+ }
122
+
123
+ /**
124
+ * `workspace.projects.*` — create, copy, list, read & rename projects.
125
+ *
126
+ * A **project** is a single Snaptrude model, identified by its `projectId`
127
+ * (floorkey). Reads never throw for a miss ({@linkcode PluginWorkspaceProjectsApi.get}
128
+ * returns `null`). Create/copy/rename go through the backend, which enforces plan
129
+ * limits — a rejection surfaces as a normal host error.
130
+ *
131
+ * Accessed via `snaptrude.workspace.projects`.
132
+ */
133
+ export abstract class PluginWorkspaceProjectsApi {
134
+ constructor() {}
135
+
136
+ /**
137
+ * Create a new, empty BIM project.
138
+ *
139
+ * Creates the project on the backend and returns its `projectId` (floorkey).
140
+ * Pass `options.teamId` to create it inside a team (otherwise it lands in the
141
+ * user's personal workspace) and `options.unit` to set the default length unit.
142
+ *
143
+ * @param name - Display name of the new project.
144
+ * @param options - Optional `unit` (default length unit) and `teamId` (owning team).
145
+ * @returns The new project's `projectId`.
146
+ * @throws If the backend rejects the create (e.g. a plan project limit).
147
+ *
148
+ * @examplePrompt Create a new project called Tower Study
149
+ * @examplePrompt Start a new project in the Acme team
150
+ * @examplePrompt Make a fresh project using millimeters
151
+ * @examplePrompt Create an empty project for me to work in
152
+ *
153
+ * # Example
154
+ * ```ts
155
+ * const { projectId } = await snaptrude.workspace.projects.create("Tower Study", {
156
+ * teamId: "team_1",
157
+ * unit: "mm",
158
+ * })
159
+ * ```
160
+ */
161
+ public abstract create(
162
+ name: string,
163
+ options?: { unit?: string; teamId?: string },
164
+ ): PluginApiReturn<PluginWorkspaceProjectsCreateResult>
165
+
166
+ /**
167
+ * Copy the **current** project into a new project — the dashboard's "Save As".
168
+ *
169
+ * Duplicates the project that is currently open into a new project with the
170
+ * given name, and returns the new `projectId`. Pass `options.teamId` to place
171
+ * the copy in a specific team.
172
+ *
173
+ * @param name - Display name for the copy.
174
+ * @param options - Optional `teamId` (team to place the copy in).
175
+ * @returns The new project's `projectId`.
176
+ * @throws If the backend rejects the copy (e.g. a plan project limit).
177
+ *
178
+ * @examplePrompt Save this project as a new copy called Tower Study v2
179
+ * @examplePrompt Duplicate the current project into the Acme team
180
+ * @examplePrompt Make a copy of this project so I can try changes
181
+ *
182
+ * # Example
183
+ * ```ts
184
+ * const { projectId } = await snaptrude.workspace.projects.copy("Tower Study v2")
185
+ * ```
186
+ */
187
+ public abstract copy(
188
+ name: string,
189
+ options?: { teamId?: string },
190
+ ): PluginApiReturn<PluginWorkspaceProjectsCopyResult>
191
+
192
+ /**
193
+ * List the projects the user can access.
194
+ *
195
+ * Returns a {@linkcode PluginProjectRef} per project. Pass `options.teamId` to
196
+ * scope the list to a single team; omit it for the user's accessible projects.
197
+ *
198
+ * @param options - Optional `teamId` filter.
199
+ * @returns A {@linkcode PluginWorkspaceProjectsListResult} with a `projects`
200
+ * array (empty when there are none).
201
+ *
202
+ * @examplePrompt List all my projects
203
+ * @examplePrompt Show the projects in the Acme team
204
+ * @examplePrompt How many projects do I have?
205
+ * @examplePrompt What projects can I open?
206
+ *
207
+ * # Example
208
+ * ```ts
209
+ * const { projects } = await snaptrude.workspace.projects.list({ teamId: "team_1" })
210
+ * for (const p of projects) console.log(p.id, p.name)
211
+ * ```
212
+ */
213
+ public abstract list(
214
+ options?: { teamId?: string },
215
+ ): PluginApiReturn<PluginWorkspaceProjectsListResult>
216
+
217
+ /**
218
+ * Get a single project by id.
219
+ *
220
+ * @param projectId - The project's `projectId` (floorkey).
221
+ * @returns The matching {@linkcode PluginProjectRef}, or `null` if no project
222
+ * has that id / the user cannot access it.
223
+ *
224
+ * @examplePrompt Get the project with this id
225
+ * @examplePrompt Look up a project by its floorkey
226
+ * @examplePrompt What is the name of this project?
227
+ *
228
+ * # Example
229
+ * ```ts
230
+ * const project = await snaptrude.workspace.projects.get("floorkey_123")
231
+ * if (project) console.log(project.name)
232
+ * ```
233
+ */
234
+ public abstract get(
235
+ projectId: string,
236
+ ): PluginApiReturn<PluginWorkspaceProjectsGetResult>
237
+
238
+ /**
239
+ * Rename a project.
240
+ *
241
+ * @param projectId - The project's `projectId` (floorkey).
242
+ * @param name - The project's new display name.
243
+ * @returns The renamed project's `projectId`.
244
+ * @throws If no project has the given id or the rename is rejected.
245
+ *
246
+ * @examplePrompt Rename this project to Tower Study Final
247
+ * @examplePrompt Change the name of project floorkey_123
248
+ * @examplePrompt Give this project a new name
249
+ *
250
+ * # Example
251
+ * ```ts
252
+ * const { projectId } = await snaptrude.workspace.projects.rename(
253
+ * "floorkey_123",
254
+ * "Tower Study Final",
255
+ * )
256
+ * ```
257
+ */
258
+ public abstract rename(
259
+ projectId: string,
260
+ name: string,
261
+ ): PluginApiReturn<PluginWorkspaceProjectsRenameResult>
262
+ }
263
+
264
+ /**
265
+ * `workspace.teams.*` — read teams and their members.
266
+ *
267
+ * A **team** is a shared workspace that owns projects and members. **Read-only**
268
+ * in v1: there is no create/invite/delete (a deliberate safety decision). Reads
269
+ * never throw for a miss ({@linkcode PluginWorkspaceTeamsApi.get} returns `null`).
270
+ *
271
+ * Accessed via `snaptrude.workspace.teams`.
272
+ */
273
+ export abstract class PluginWorkspaceTeamsApi {
274
+ constructor() {}
275
+
276
+ /**
277
+ * List the teams the user belongs to.
278
+ *
279
+ * @returns A {@linkcode PluginWorkspaceTeamsListResult} with a `teams` array
280
+ * (empty when the user belongs to none).
281
+ *
282
+ * @examplePrompt List all my teams
283
+ * @examplePrompt Which teams am I a member of?
284
+ * @examplePrompt Show every team I can access
285
+ *
286
+ * # Example
287
+ * ```ts
288
+ * const { teams } = await snaptrude.workspace.teams.list()
289
+ * for (const t of teams) console.log(t.id, t.name)
290
+ * ```
291
+ */
292
+ public abstract list(): PluginApiReturn<PluginWorkspaceTeamsListResult>
293
+
294
+ /**
295
+ * Get a single team by id.
296
+ *
297
+ * @param teamId - The id of the team to read.
298
+ * @returns The matching {@linkcode PluginTeamRef}, or `null` if no team has that
299
+ * id / the user is not a member.
300
+ *
301
+ * @examplePrompt Get the team with id team_1
302
+ * @examplePrompt Look up a team by its id
303
+ * @examplePrompt What is the name of this team?
304
+ *
305
+ * # Example
306
+ * ```ts
307
+ * const team = await snaptrude.workspace.teams.get("team_1")
308
+ * if (team) console.log(team.name)
309
+ * ```
310
+ */
311
+ public abstract get(
312
+ teamId: string,
313
+ ): PluginApiReturn<PluginWorkspaceTeamsGetResult>
314
+
315
+ /**
316
+ * List the members of a team.
317
+ *
318
+ * @param teamId - The id of the team whose members to list.
319
+ * @returns A {@linkcode PluginWorkspaceTeamsListMembersResult} with a `members`
320
+ * array (empty when the team has none / is missing).
321
+ *
322
+ * @examplePrompt List the members of the Acme team
323
+ * @examplePrompt Who is on team_1?
324
+ * @examplePrompt How many people are in this team?
325
+ *
326
+ * # Example
327
+ * ```ts
328
+ * const { members } = await snaptrude.workspace.teams.listMembers("team_1")
329
+ * for (const m of members) console.log(m.name, m.email)
330
+ * ```
331
+ */
332
+ public abstract listMembers(
333
+ teamId: string,
334
+ ): PluginApiReturn<PluginWorkspaceTeamsListMembersResult>
335
+ }
336
+
337
+ // ---------------------------------------------------------------------------
338
+ // DTOs — conservative, never raw backend payloads
339
+ // ---------------------------------------------------------------------------
340
+
341
+ /**
342
+ * A project reference — a conservative projection of a project, never the raw
343
+ * backend payload.
344
+ *
345
+ * | Property | Type | Description |
346
+ * |---|---|---|
347
+ * | `id` | `string` | The project's `projectId` (floorkey) |
348
+ * | `name` | `string` | Display name |
349
+ * | `teamId` | `string?` | Owning team id (absent for personal projects) |
350
+ * | `createdAt` | `string?` | Creation timestamp (ISO 8601) when known |
351
+ * | `modifiedAt` | `string?` | Last-modified timestamp (ISO 8601) when known |
352
+ */
353
+ export const PluginProjectRef = z.object({
354
+ id: z.string(),
355
+ name: z.string(),
356
+ teamId: z.string().optional(),
357
+ createdAt: z.string().optional(),
358
+ modifiedAt: z.string().optional(),
359
+ })
360
+ export type PluginProjectRef = z.infer<typeof PluginProjectRef>
361
+
362
+ /**
363
+ * A team reference — a conservative projection of a team, never the raw backend
364
+ * payload.
365
+ *
366
+ * | Property | Type | Description |
367
+ * |---|---|---|
368
+ * | `id` | `string` | Stable team id |
369
+ * | `name` | `string` | Display name |
370
+ * | `role` | `string?` | The user's role in the team when known |
371
+ */
372
+ export const PluginTeamRef = z.object({
373
+ id: z.string(),
374
+ name: z.string(),
375
+ role: z.string().optional(),
376
+ })
377
+ export type PluginTeamRef = z.infer<typeof PluginTeamRef>
378
+
379
+ /**
380
+ * A team member reference — a conservative projection of a member, never the raw
381
+ * backend payload.
382
+ *
383
+ * | Property | Type | Description |
384
+ * |---|---|---|
385
+ * | `id` | `string` | Stable user id |
386
+ * | `name` | `string` | Display name |
387
+ * | `email` | `string?` | Email address when known |
388
+ * | `role` | `string?` | The member's role in the team when known |
389
+ */
390
+ export const PluginTeamMemberRef = z.object({
391
+ id: z.string(),
392
+ name: z.string(),
393
+ email: z.string().optional(),
394
+ role: z.string().optional(),
395
+ })
396
+ export type PluginTeamMemberRef = z.infer<typeof PluginTeamMemberRef>
397
+
398
+ // ---------------------------------------------------------------------------
399
+ // projects — args + results
400
+ // ---------------------------------------------------------------------------
401
+
402
+ /**
403
+ * Arguments for {@linkcode PluginWorkspaceProjectsApi.create} (options flattened).
404
+ *
405
+ * | Property | Type | Description |
406
+ * |---|---|---|
407
+ * | `name` | `string` | Display name of the new project |
408
+ * | `unit` | `string?` | Default length unit |
409
+ * | `teamId` | `string?` | Owning team id (personal workspace if omitted) |
410
+ */
411
+ export const PluginWorkspaceProjectsCreateArgs = z.object({
412
+ name: z.string(),
413
+ unit: z.string().optional(),
414
+ teamId: z.string().optional(),
415
+ })
416
+ export type PluginWorkspaceProjectsCreateArgs = z.infer<
417
+ typeof PluginWorkspaceProjectsCreateArgs
418
+ >
419
+
420
+ /**
421
+ * Result of {@linkcode PluginWorkspaceProjectsApi.create}.
422
+ *
423
+ * | Property | Type | Description |
424
+ * |---|---|---|
425
+ * | `projectId` | `string` | The id (floorkey) of the created project |
426
+ */
427
+ export const PluginWorkspaceProjectsCreateResult = z.object({
428
+ projectId: z.string(),
429
+ })
430
+ export type PluginWorkspaceProjectsCreateResult = z.infer<
431
+ typeof PluginWorkspaceProjectsCreateResult
432
+ >
433
+
434
+ /**
435
+ * Arguments for {@linkcode PluginWorkspaceProjectsApi.copy} (options flattened).
436
+ *
437
+ * | Property | Type | Description |
438
+ * |---|---|---|
439
+ * | `name` | `string` | Display name for the copy |
440
+ * | `teamId` | `string?` | Team to place the copy in |
441
+ */
442
+ export const PluginWorkspaceProjectsCopyArgs = z.object({
443
+ name: z.string(),
444
+ teamId: z.string().optional(),
445
+ })
446
+ export type PluginWorkspaceProjectsCopyArgs = z.infer<
447
+ typeof PluginWorkspaceProjectsCopyArgs
448
+ >
449
+
450
+ /**
451
+ * Result of {@linkcode PluginWorkspaceProjectsApi.copy}.
452
+ *
453
+ * | Property | Type | Description |
454
+ * |---|---|---|
455
+ * | `projectId` | `string` | The id (floorkey) of the copied project |
456
+ */
457
+ export const PluginWorkspaceProjectsCopyResult = z.object({
458
+ projectId: z.string(),
459
+ })
460
+ export type PluginWorkspaceProjectsCopyResult = z.infer<
461
+ typeof PluginWorkspaceProjectsCopyResult
462
+ >
463
+
464
+ /**
465
+ * Arguments for {@linkcode PluginWorkspaceProjectsApi.list} (options flattened).
466
+ *
467
+ * | Property | Type | Description |
468
+ * |---|---|---|
469
+ * | `teamId` | `string?` | Scope the list to this team; omit for all accessible projects |
470
+ */
471
+ export const PluginWorkspaceProjectsListArgs = z.object({
472
+ teamId: z.string().optional(),
473
+ })
474
+ export type PluginWorkspaceProjectsListArgs = z.infer<
475
+ typeof PluginWorkspaceProjectsListArgs
476
+ >
477
+
478
+ /**
479
+ * Result of {@linkcode PluginWorkspaceProjectsApi.list}.
480
+ *
481
+ * | Property | Type | Description |
482
+ * |---|---|---|
483
+ * | `projects` | {@linkcode PluginProjectRef}`[]` | Accessible projects (empty when none) |
484
+ */
485
+ export const PluginWorkspaceProjectsListResult = z.object({
486
+ projects: z.array(PluginProjectRef),
487
+ })
488
+ export type PluginWorkspaceProjectsListResult = z.infer<
489
+ typeof PluginWorkspaceProjectsListResult
490
+ >
491
+
492
+ /**
493
+ * Arguments for {@linkcode PluginWorkspaceProjectsApi.get}.
494
+ *
495
+ * | Property | Type | Description |
496
+ * |---|---|---|
497
+ * | `projectId` | `string` | The project's `projectId` (floorkey) |
498
+ */
499
+ export const PluginWorkspaceProjectsGetArgs = z.object({
500
+ projectId: z.string(),
501
+ })
502
+ export type PluginWorkspaceProjectsGetArgs = z.infer<
503
+ typeof PluginWorkspaceProjectsGetArgs
504
+ >
505
+
506
+ /**
507
+ * Result of {@linkcode PluginWorkspaceProjectsApi.get} — the project, or `null`
508
+ * when no project has the given id.
509
+ */
510
+ export const PluginWorkspaceProjectsGetResult = PluginProjectRef.nullable()
511
+ export type PluginWorkspaceProjectsGetResult = z.infer<
512
+ typeof PluginWorkspaceProjectsGetResult
513
+ >
514
+
515
+ /**
516
+ * Arguments for {@linkcode PluginWorkspaceProjectsApi.rename}.
517
+ *
518
+ * | Property | Type | Description |
519
+ * |---|---|---|
520
+ * | `projectId` | `string` | The project's `projectId` (floorkey) |
521
+ * | `name` | `string` | The project's new display name |
522
+ */
523
+ export const PluginWorkspaceProjectsRenameArgs = z.object({
524
+ projectId: z.string(),
525
+ name: z.string(),
526
+ })
527
+ export type PluginWorkspaceProjectsRenameArgs = z.infer<
528
+ typeof PluginWorkspaceProjectsRenameArgs
529
+ >
530
+
531
+ /**
532
+ * Result of {@linkcode PluginWorkspaceProjectsApi.rename}.
533
+ *
534
+ * | Property | Type | Description |
535
+ * |---|---|---|
536
+ * | `projectId` | `string` | The id (floorkey) of the renamed project |
537
+ */
538
+ export const PluginWorkspaceProjectsRenameResult = z.object({
539
+ projectId: z.string(),
540
+ })
541
+ export type PluginWorkspaceProjectsRenameResult = z.infer<
542
+ typeof PluginWorkspaceProjectsRenameResult
543
+ >
544
+
545
+ // ---------------------------------------------------------------------------
546
+ // teams — args + results
547
+ // ---------------------------------------------------------------------------
548
+
549
+ /**
550
+ * Result of {@linkcode PluginWorkspaceTeamsApi.list}.
551
+ *
552
+ * | Property | Type | Description |
553
+ * |---|---|---|
554
+ * | `teams` | {@linkcode PluginTeamRef}`[]` | The user's teams (empty when none) |
555
+ */
556
+ export const PluginWorkspaceTeamsListResult = z.object({
557
+ teams: z.array(PluginTeamRef),
558
+ })
559
+ export type PluginWorkspaceTeamsListResult = z.infer<
560
+ typeof PluginWorkspaceTeamsListResult
561
+ >
562
+
563
+ /**
564
+ * Arguments for {@linkcode PluginWorkspaceTeamsApi.get}.
565
+ *
566
+ * | Property | Type | Description |
567
+ * |---|---|---|
568
+ * | `teamId` | `string` | The id of the team to read |
569
+ */
570
+ export const PluginWorkspaceTeamsGetArgs = z.object({
571
+ teamId: z.string(),
572
+ })
573
+ export type PluginWorkspaceTeamsGetArgs = z.infer<
574
+ typeof PluginWorkspaceTeamsGetArgs
575
+ >
576
+
577
+ /**
578
+ * Result of {@linkcode PluginWorkspaceTeamsApi.get} — the team, or `null` when no
579
+ * team has the given id.
580
+ */
581
+ export const PluginWorkspaceTeamsGetResult = PluginTeamRef.nullable()
582
+ export type PluginWorkspaceTeamsGetResult = z.infer<
583
+ typeof PluginWorkspaceTeamsGetResult
584
+ >
585
+
586
+ /**
587
+ * Arguments for {@linkcode PluginWorkspaceTeamsApi.listMembers}.
588
+ *
589
+ * | Property | Type | Description |
590
+ * |---|---|---|
591
+ * | `teamId` | `string` | The id of the team whose members to list |
592
+ */
593
+ export const PluginWorkspaceTeamsListMembersArgs = z.object({
594
+ teamId: z.string(),
595
+ })
596
+ export type PluginWorkspaceTeamsListMembersArgs = z.infer<
597
+ typeof PluginWorkspaceTeamsListMembersArgs
598
+ >
599
+
600
+ /**
601
+ * Result of {@linkcode PluginWorkspaceTeamsApi.listMembers}.
602
+ *
603
+ * | Property | Type | Description |
604
+ * |---|---|---|
605
+ * | `members` | {@linkcode PluginTeamMemberRef}`[]` | The team's members (empty when none) |
606
+ */
607
+ export const PluginWorkspaceTeamsListMembersResult = z.object({
608
+ members: z.array(PluginTeamMemberRef),
609
+ })
610
+ export type PluginWorkspaceTeamsListMembersResult = z.infer<
611
+ typeof PluginWorkspaceTeamsListMembersResult
612
+ >