@hatiolab/figure-model 0.1.92 → 0.1.93

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 (296) hide show
  1. package/CHANGELOG.md +12 -12
  2. package/README.md +25 -25
  3. package/dist/{v3-asset-types.d.ts → asset-types.d.ts} +67 -67
  4. package/dist/asset-types.d.ts.map +1 -0
  5. package/dist/asset-types.js +2 -0
  6. package/dist/asset-types.js.map +1 -0
  7. package/dist/asset.d.ts +8 -0
  8. package/dist/asset.d.ts.map +1 -0
  9. package/dist/{v3-asset.js → asset.js} +23 -23
  10. package/dist/asset.js.map +1 -0
  11. package/dist/{v3-authoring-actions.d.ts → authoring-actions.d.ts} +66 -66
  12. package/dist/authoring-actions.d.ts.map +1 -0
  13. package/dist/{v3-authoring-actions.js → authoring-actions.js} +77 -77
  14. package/dist/authoring-actions.js.map +1 -0
  15. package/dist/{v3-authoring-session.d.ts → authoring-session.d.ts} +21 -21
  16. package/dist/authoring-session.d.ts.map +1 -0
  17. package/dist/{v3-authoring-session.js → authoring-session.js} +4 -4
  18. package/dist/authoring-session.js.map +1 -0
  19. package/dist/capabilities.d.ts +3 -0
  20. package/dist/capabilities.d.ts.map +1 -0
  21. package/dist/{v3-capabilities.js → capabilities.js} +8 -8
  22. package/dist/capabilities.js.map +1 -0
  23. package/dist/contract.d.ts +7 -0
  24. package/dist/contract.d.ts.map +1 -0
  25. package/dist/contract.js +12 -0
  26. package/dist/contract.js.map +1 -0
  27. package/dist/{v3-cost.d.ts → cost.d.ts} +5 -5
  28. package/dist/cost.d.ts.map +1 -0
  29. package/dist/{v3-cost.js → cost.js} +11 -11
  30. package/dist/cost.js.map +1 -0
  31. package/dist/{v3-create.d.ts → create.d.ts} +8 -8
  32. package/dist/{v3-create.d.ts.map → create.d.ts.map} +1 -1
  33. package/dist/{v3-create.js → create.js} +26 -26
  34. package/dist/create.js.map +1 -0
  35. package/dist/document.d.ts +5 -0
  36. package/dist/document.d.ts.map +1 -0
  37. package/dist/document.js +31 -0
  38. package/dist/document.js.map +1 -0
  39. package/dist/{v3-driver.d.ts → driver.d.ts} +10 -10
  40. package/dist/driver.d.ts.map +1 -0
  41. package/dist/{v3-driver.js → driver.js} +10 -10
  42. package/dist/driver.js.map +1 -0
  43. package/dist/{v3-editor-workspace.d.ts → editor-workspace.d.ts} +73 -73
  44. package/dist/editor-workspace.d.ts.map +1 -0
  45. package/dist/{v3-editor-workspace.js → editor-workspace.js} +29 -29
  46. package/dist/editor-workspace.js.map +1 -0
  47. package/dist/{v3-examples.d.ts → examples.d.ts} +5 -5
  48. package/dist/examples.d.ts.map +1 -0
  49. package/dist/{v3-examples.js → examples.js} +11 -11
  50. package/dist/examples.js.map +1 -0
  51. package/dist/{v3-follow.d.ts → follow.d.ts} +5 -5
  52. package/dist/follow.d.ts.map +1 -0
  53. package/dist/{v3-follow.js → follow.js} +2 -2
  54. package/dist/follow.js.map +1 -0
  55. package/dist/{v3-gate.d.ts → gate.d.ts} +28 -28
  56. package/dist/gate.d.ts.map +1 -0
  57. package/dist/{v3-gate.js → gate.js} +42 -42
  58. package/dist/gate.js.map +1 -0
  59. package/dist/{v3-graph-types.d.ts → graph-types.d.ts} +33 -33
  60. package/dist/graph-types.d.ts.map +1 -0
  61. package/dist/graph-types.js +2 -0
  62. package/dist/graph-types.js.map +1 -0
  63. package/dist/{v3-graph.d.ts → graph.d.ts} +14 -14
  64. package/dist/graph.d.ts.map +1 -0
  65. package/dist/{v3-graph.js → graph.js} +16 -16
  66. package/dist/graph.js.map +1 -0
  67. package/dist/index.d.ts +33 -33
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +33 -33
  70. package/dist/index.js.map +1 -1
  71. package/dist/{v3-instance-size.d.ts → instance-size.d.ts} +14 -14
  72. package/dist/instance-size.d.ts.map +1 -0
  73. package/dist/{v3-instance-size.js → instance-size.js} +13 -13
  74. package/dist/instance-size.js.map +1 -0
  75. package/dist/json.d.ts +12 -0
  76. package/dist/json.d.ts.map +1 -0
  77. package/dist/{v3-json.js → json.js} +13 -13
  78. package/dist/json.js.map +1 -0
  79. package/dist/kernel-version.d.ts +8 -0
  80. package/dist/kernel-version.d.ts.map +1 -0
  81. package/dist/{v3-kernel-version.js → kernel-version.js} +4 -4
  82. package/dist/kernel-version.js.map +1 -0
  83. package/dist/{v3-part-edit.d.ts → part-edit.d.ts} +10 -10
  84. package/dist/part-edit.d.ts.map +1 -0
  85. package/dist/{v3-part-edit.js → part-edit.js} +65 -65
  86. package/dist/part-edit.js.map +1 -0
  87. package/dist/proposal.d.ts +42 -0
  88. package/dist/proposal.d.ts.map +1 -0
  89. package/dist/{v3-proposal.js → proposal.js} +21 -21
  90. package/dist/proposal.js.map +1 -0
  91. package/dist/{v3-public-inputs.d.ts → public-inputs.d.ts} +4 -4
  92. package/dist/public-inputs.d.ts.map +1 -0
  93. package/dist/{v3-public-inputs.js → public-inputs.js} +3 -3
  94. package/dist/public-inputs.js.map +1 -0
  95. package/dist/recipe-build.d.ts +27 -0
  96. package/dist/recipe-build.d.ts.map +1 -0
  97. package/dist/{v3-recipe-build.js → recipe-build.js} +9 -9
  98. package/dist/recipe-build.js.map +1 -0
  99. package/dist/recipe-from-parts.d.ts +8 -0
  100. package/dist/recipe-from-parts.d.ts.map +1 -0
  101. package/dist/{v3-recipe-from-parts.js → recipe-from-parts.js} +9 -9
  102. package/dist/recipe-from-parts.js.map +1 -0
  103. package/dist/{v3-recipe.d.ts → recipe.d.ts} +25 -25
  104. package/dist/recipe.d.ts.map +1 -0
  105. package/dist/{v3-recipe.js → recipe.js} +30 -30
  106. package/dist/recipe.js.map +1 -0
  107. package/dist/release-contract.d.ts +19 -0
  108. package/dist/release-contract.d.ts.map +1 -0
  109. package/dist/{v3-release-contract.js → release-contract.js} +5 -5
  110. package/dist/release-contract.js.map +1 -0
  111. package/dist/{v3-render-batches.d.ts → render-batches.d.ts} +8 -8
  112. package/dist/render-batches.d.ts.map +1 -0
  113. package/dist/{v3-render-batches.js → render-batches.js} +4 -4
  114. package/dist/render-batches.js.map +1 -0
  115. package/dist/{v3-score.d.ts → score.d.ts} +19 -19
  116. package/dist/score.d.ts.map +1 -0
  117. package/dist/{v3-score.js → score.js} +32 -32
  118. package/dist/score.js.map +1 -0
  119. package/dist/{v3-shape-sampling.d.ts → shape-sampling.d.ts} +4 -4
  120. package/dist/shape-sampling.d.ts.map +1 -0
  121. package/dist/{v3-shape-sampling.js → shape-sampling.js} +3 -3
  122. package/dist/shape-sampling.js.map +1 -0
  123. package/dist/{v3-surface.d.ts → surface.d.ts} +5 -5
  124. package/dist/surface.d.ts.map +1 -0
  125. package/dist/{v3-surface.js → surface.js} +7 -7
  126. package/dist/surface.js.map +1 -0
  127. package/dist/{v3-words.d.ts → words.d.ts} +3 -3
  128. package/dist/words.d.ts.map +1 -0
  129. package/dist/{v3-words.js → words.js} +3 -3
  130. package/dist/words.js.map +1 -0
  131. package/docs/{assembly-constraints-v3.md → assembly-constraints.md} +1 -1
  132. package/docs/{v3-asset-persistence.md → asset-persistence.md} +8 -8
  133. package/docs/{v3-authoring-transactions.md → authoring-transactions.md} +2 -2
  134. package/docs/{v3-capability-bindings.md → capability-bindings.md} +8 -8
  135. package/docs/{v3-common-kernel-experiment.md → common-kernel-experiment.md} +4 -4
  136. package/docs/{v3-core-semantics.md → core-semantics.md} +5 -5
  137. package/docs/{v3-cutover.md → cutover.md} +4 -4
  138. package/docs/{v3-design.md → design.md} +11 -11
  139. package/docs/{v3-document-contract.md → document-contract.md} +9 -9
  140. package/docs/{v3-dryroom-profile-validation.md → dryroom-profile-validation.md} +4 -4
  141. package/docs/{v3-editor-integration.md → editor-integration.md} +6 -6
  142. package/docs/{v3-full-conveyor-validation.md → full-conveyor-validation.md} +4 -4
  143. package/docs/{v3-full-dryroom-validation.md → full-dryroom-validation.md} +4 -4
  144. package/docs/{v3-full-forklift-validation.md → full-forklift-validation.md} +5 -5
  145. package/docs/{v3-full-robot-validation.md → full-robot-validation.md} +4 -4
  146. package/docs/{v3-layout-system.md → layout-system.md} +4 -4
  147. package/docs/{v3-legacy-risk-audit-2026-09-23.md → legacy-risk-audit-2026-09-23.md} +5 -5
  148. package/docs/{v3-minimal-model.md → minimal-model.md} +6 -6
  149. package/docs/{v3-motion-contract.md → motion-contract.md} +3 -3
  150. package/docs/{v3-openusd-review.md → openusd-review.md} +8 -8
  151. package/docs/{v3-operator-contracts.md → operator-contracts.md} +6 -6
  152. package/docs/{v3-payload-collision-validation.md → payload-collision-validation.md} +4 -4
  153. package/docs/{v3-payload-contact-validation.md → payload-contact-validation.md} +5 -5
  154. package/docs/prototypes/README.md +10 -10
  155. package/docs/prototypes/{v3-asset-samples.mjs → asset-samples.mjs} +6 -6
  156. package/docs/prototypes/{v3-asset-store.mjs → asset-store.mjs} +3 -3
  157. package/docs/prototypes/{v3-asset-store.test.mjs → asset-store.test.mjs} +6 -6
  158. package/docs/prototypes/asset.mjs +1 -0
  159. package/docs/prototypes/{v3-asset.schema.json → asset.schema.json} +2 -2
  160. package/docs/prototypes/{v3-asset.test.mjs → asset.test.mjs} +10 -10
  161. package/docs/prototypes/authoring-session.mjs +1 -0
  162. package/docs/prototypes/{v3-authoring-session.test.mjs → authoring-session.test.mjs} +6 -6
  163. package/docs/prototypes/capability-plan.mjs +1 -0
  164. package/docs/prototypes/{v3-capability-plan.test.mjs → capability-plan.test.mjs} +5 -5
  165. package/docs/prototypes/{v3-capability-samples.mjs → capability-samples.mjs} +2 -2
  166. package/docs/prototypes/document.mjs +2 -0
  167. package/docs/prototypes/{v3-document.schema.json → document.schema.json} +1 -1
  168. package/docs/prototypes/{v3-document.test.mjs → document.test.mjs} +7 -7
  169. package/docs/prototypes/{v3-dryroom-mesh.mjs → dryroom-mesh.mjs} +1 -1
  170. package/docs/prototypes/{v3-dryroom-mesh.test.mjs → dryroom-mesh.test.mjs} +1 -1
  171. package/docs/prototypes/{v3-editor-browser.mjs → editor-browser.mjs} +13 -13
  172. package/docs/prototypes/editor-workspace.mjs +1 -0
  173. package/docs/prototypes/{v3-editor-workspace.test.mjs → editor-workspace.test.mjs} +3 -3
  174. package/docs/prototypes/{v3-feature-pattern.test.mjs → feature-pattern.test.mjs} +1 -1
  175. package/docs/prototypes/{v3-full-conveyor.mjs → full-conveyor.mjs} +2 -2
  176. package/docs/prototypes/{v3-full-conveyor.test.mjs → full-conveyor.test.mjs} +3 -3
  177. package/docs/prototypes/{v3-full-dryroom.mjs → full-dryroom.mjs} +2 -2
  178. package/docs/prototypes/{v3-full-dryroom.test.mjs → full-dryroom.test.mjs} +3 -3
  179. package/docs/prototypes/{v3-full-forklift.mjs → full-forklift.mjs} +2 -2
  180. package/docs/prototypes/{v3-full-forklift.test.mjs → full-forklift.test.mjs} +3 -3
  181. package/docs/prototypes/{v3-full-robot.mjs → full-robot.mjs} +2 -2
  182. package/docs/prototypes/{v3-full-robot.test.mjs → full-robot.test.mjs} +4 -4
  183. package/docs/prototypes/{v3-kernel.test.mjs → kernel.test.mjs} +1 -1
  184. package/docs/prototypes/{v3-layout.test.mjs → layout.test.mjs} +1 -1
  185. package/docs/prototypes/{v3-more-samples.test.mjs → more-samples.test.mjs} +2 -2
  186. package/docs/prototypes/{v3-payload-collision.mjs → payload-collision.mjs} +2 -2
  187. package/docs/prototypes/{v3-payload-collision.test.mjs → payload-collision.test.mjs} +3 -3
  188. package/docs/prototypes/{v3-payload-fit.mjs → payload-fit.mjs} +2 -2
  189. package/docs/prototypes/{v3-payload-fit.test.mjs → payload-fit.test.mjs} +4 -4
  190. package/docs/prototypes/render-full-dryroom.mjs +12 -12
  191. package/docs/prototypes/{v3-repeated-binding.mjs → repeated-binding.mjs} +1 -1
  192. package/docs/prototypes/{v3-repeated-binding.test.mjs → repeated-binding.test.mjs} +6 -6
  193. package/docs/prototypes/{v3-runtime-browser.mjs → runtime-browser.mjs} +26 -26
  194. package/docs/prototypes/{v3-samples.test.mjs → samples.test.mjs} +1 -1
  195. package/docs/prototypes/{v3-spatial-plan.test.mjs → spatial-plan.test.mjs} +1 -1
  196. package/docs/prototypes/typed-plan.mjs +3 -0
  197. package/docs/prototypes/{v3-typed-plan.test.mjs → typed-plan.test.mjs} +1 -1
  198. package/docs/prototypes/{v3-typed-repeat.test.mjs → typed-repeat.test.mjs} +2 -2
  199. package/docs/{v3-repeated-binding-validation.md → repeated-binding-validation.md} +4 -4
  200. package/docs/{v3-research-review.md → research-review.md} +2 -2
  201. package/docs/{v3-review-2026-09-22.md → review-2026-09-22.md} +10 -10
  202. package/docs/{v3-runtime-extraction.md → runtime-extraction.md} +16 -16
  203. package/docs/{v3-sample-validation-expanded.md → sample-validation-expanded.md} +5 -5
  204. package/docs/{v3-sample-validation.md → sample-validation.md} +3 -3
  205. package/docs/{v3-shape-dimension-contract.md → shape-dimension-contract.md} +12 -12
  206. package/docs/{v3-shapeassembly-reproduction.md → shapeassembly-reproduction.md} +4 -4
  207. package/docs/{v3-spatial-contracts.md → spatial-contracts.md} +5 -5
  208. package/docs/status.md +12 -0
  209. package/docs/{v3-storage-integration.md → storage-integration.md} +5 -5
  210. package/docs/{v3-typed-repeat-contracts.md → typed-repeat-contracts.md} +3 -3
  211. package/package.json +3 -3
  212. package/dist/v3-asset-types.d.ts.map +0 -1
  213. package/dist/v3-asset-types.js +0 -2
  214. package/dist/v3-asset-types.js.map +0 -1
  215. package/dist/v3-asset.d.ts +0 -8
  216. package/dist/v3-asset.d.ts.map +0 -1
  217. package/dist/v3-asset.js.map +0 -1
  218. package/dist/v3-authoring-actions.d.ts.map +0 -1
  219. package/dist/v3-authoring-actions.js.map +0 -1
  220. package/dist/v3-authoring-session.d.ts.map +0 -1
  221. package/dist/v3-authoring-session.js.map +0 -1
  222. package/dist/v3-capabilities.d.ts +0 -3
  223. package/dist/v3-capabilities.d.ts.map +0 -1
  224. package/dist/v3-capabilities.js.map +0 -1
  225. package/dist/v3-contract.d.ts +0 -7
  226. package/dist/v3-contract.d.ts.map +0 -1
  227. package/dist/v3-contract.js +0 -12
  228. package/dist/v3-contract.js.map +0 -1
  229. package/dist/v3-cost.d.ts.map +0 -1
  230. package/dist/v3-cost.js.map +0 -1
  231. package/dist/v3-create.js.map +0 -1
  232. package/dist/v3-document.d.ts +0 -5
  233. package/dist/v3-document.d.ts.map +0 -1
  234. package/dist/v3-document.js +0 -31
  235. package/dist/v3-document.js.map +0 -1
  236. package/dist/v3-driver.d.ts.map +0 -1
  237. package/dist/v3-driver.js.map +0 -1
  238. package/dist/v3-editor-workspace.d.ts.map +0 -1
  239. package/dist/v3-editor-workspace.js.map +0 -1
  240. package/dist/v3-examples.d.ts.map +0 -1
  241. package/dist/v3-examples.js.map +0 -1
  242. package/dist/v3-follow.d.ts.map +0 -1
  243. package/dist/v3-follow.js.map +0 -1
  244. package/dist/v3-gate.d.ts.map +0 -1
  245. package/dist/v3-gate.js.map +0 -1
  246. package/dist/v3-graph-types.d.ts.map +0 -1
  247. package/dist/v3-graph-types.js +0 -2
  248. package/dist/v3-graph-types.js.map +0 -1
  249. package/dist/v3-graph.d.ts.map +0 -1
  250. package/dist/v3-graph.js.map +0 -1
  251. package/dist/v3-instance-size.d.ts.map +0 -1
  252. package/dist/v3-instance-size.js.map +0 -1
  253. package/dist/v3-json.d.ts +0 -12
  254. package/dist/v3-json.d.ts.map +0 -1
  255. package/dist/v3-json.js.map +0 -1
  256. package/dist/v3-kernel-version.d.ts +0 -8
  257. package/dist/v3-kernel-version.d.ts.map +0 -1
  258. package/dist/v3-kernel-version.js.map +0 -1
  259. package/dist/v3-part-edit.d.ts.map +0 -1
  260. package/dist/v3-part-edit.js.map +0 -1
  261. package/dist/v3-proposal.d.ts +0 -42
  262. package/dist/v3-proposal.d.ts.map +0 -1
  263. package/dist/v3-proposal.js.map +0 -1
  264. package/dist/v3-public-inputs.d.ts.map +0 -1
  265. package/dist/v3-public-inputs.js.map +0 -1
  266. package/dist/v3-recipe-build.d.ts +0 -27
  267. package/dist/v3-recipe-build.d.ts.map +0 -1
  268. package/dist/v3-recipe-build.js.map +0 -1
  269. package/dist/v3-recipe-from-parts.d.ts +0 -8
  270. package/dist/v3-recipe-from-parts.d.ts.map +0 -1
  271. package/dist/v3-recipe-from-parts.js.map +0 -1
  272. package/dist/v3-recipe.d.ts.map +0 -1
  273. package/dist/v3-recipe.js.map +0 -1
  274. package/dist/v3-release-contract.d.ts +0 -19
  275. package/dist/v3-release-contract.d.ts.map +0 -1
  276. package/dist/v3-release-contract.js.map +0 -1
  277. package/dist/v3-render-batches.d.ts.map +0 -1
  278. package/dist/v3-render-batches.js.map +0 -1
  279. package/dist/v3-score.d.ts.map +0 -1
  280. package/dist/v3-score.js.map +0 -1
  281. package/dist/v3-shape-sampling.d.ts.map +0 -1
  282. package/dist/v3-shape-sampling.js.map +0 -1
  283. package/dist/v3-surface.d.ts.map +0 -1
  284. package/dist/v3-surface.js.map +0 -1
  285. package/dist/v3-words.d.ts.map +0 -1
  286. package/dist/v3-words.js.map +0 -1
  287. package/docs/prototypes/v3-asset.mjs +0 -1
  288. package/docs/prototypes/v3-authoring-session.mjs +0 -1
  289. package/docs/prototypes/v3-capability-plan.mjs +0 -1
  290. package/docs/prototypes/v3-document.mjs +0 -2
  291. package/docs/prototypes/v3-editor-workspace.mjs +0 -1
  292. package/docs/prototypes/v3-typed-plan.mjs +0 -3
  293. package/docs/v3-status.md +0 -50
  294. /package/docs/prototypes/{v3-kernel.mjs → kernel.mjs} +0 -0
  295. /package/docs/prototypes/{v3-linear-comparison.py → linear-comparison.py} +0 -0
  296. /package/docs/prototypes/{v3-semantics.test.mjs → semantics.test.mjs} +0 -0
package/dist/index.js CHANGED
@@ -3,38 +3,38 @@
3
3
  *
4
4
  * @hatiolab/figure-model
5
5
  *
6
- * The figure format (`figure-v3-asset-1`): its kernel, authoring commands, release gate and score. No dependencies --
7
- * the server judges with it, the modeller authors with it, the scene draws from it. Design: docs/v3-design.md.
6
+ * The figure format (`figure-asset-1`): its kernel, authoring commands, release gate and score. No dependencies --
7
+ * the server judges with it, the modeller authors with it, the scene draws from it. Design: docs/design.md.
8
8
  */
9
- export * from "./v3-words.js";
10
- export { V3ContractError } from "./v3-contract.js";
11
- export { compileV3Graph } from "./v3-graph.js";
12
- export { editV3Part, removePart } from "./v3-part-edit.js";
13
- export { createV3Asset, addV3Box, addV3Primitive } from "./v3-create.js";
14
- export { createV3AuthoringSession } from "./v3-authoring-session.js";
15
- export { createV3EditorWorkspace } from "./v3-editor-workspace.js";
16
- export { compileV3Capabilities } from "./v3-capabilities.js";
17
- export { compileV3Document, parseV3Document, serializeV3Document } from "./v3-document.js";
18
- export { compileV3Asset, parseV3Asset, serializeV3Asset, captureV3AuthoredInputs } from "./v3-asset.js";
19
- export { publicInputRefusal } from "./v3-public-inputs.js";
20
- export { inspectV3Asset, cornerExtremalBasis, V3_DESIGN_EXTREME_BASIS, v3WorldBoxesOf, v3OccupiedBoxesOf, v3WritersOf, v3PartsExtentOf } from "./v3-gate.js";
21
- export { driverValue, driverStates, normalisePhase, validateV3Drivers, validateV3StateInputs, advanceStateValue, stateInputPolicy } from "./v3-driver.js";
22
- export { v3ShapePoints, transformPoints } from "./v3-shape-sampling.js";
23
- export { V3_OPERATORS, V3_NON_AFFINE_OPERATORS, V3_STATE_NON_AFFINE_OPERATORS, V3_OPERATOR_STATE_POLICY, V3_OPERATOR_PURITY, v3ShapeFaces } from "./v3-graph.js";
24
- export { V3_KERNEL_VERSION } from "./v3-kernel-version.js";
25
- export { V3_FACE_NORMALS } from "./v3-surface.js";
26
- export { v3CostOf, v3TrianglesOf } from "./v3-cost.js";
27
- export { v3RenderBatchesOf } from "./v3-render-batches.js";
28
- export { v3ScoreOf, v3PartCountOf, v3PartBudgetOf, v3GradeOf, v3MaterialKeyOf, v3IndependentBodiesOf, V3_GRADE_SCALE, V3_BUDGET_KEYS, V3_PER_INSTANCE } from "./v3-score.js";
29
- export { applyV3Authoring, proposeV3Occupancy, proposeV3Proportion, v3AttachmentsOf, v3BindingsOf, V3_FACES, V3_JOINT_TYPES, checkV3Joints } from "./v3-authoring-actions.js";
30
- export { V3_PLACEMENTS } from "./v3-asset-types.js";
31
- export { applyV3Proposal, V3_PROPOSAL_GRAMMAR, V3_PROPOSAL_KINDS } from "./v3-proposal.js";
32
- export { v3FollowOf } from "./v3-follow.js";
33
- export { v3RecipeFromParts } from "./v3-recipe-from-parts.js";
34
- export { buildV3Recipe } from "./v3-recipe-build.js";
35
- export { applyV3Recipe, checkV3Recipe, describeV3Recipe, holdsV3When, parseV3Recipe, resolveV3Recipe, v3RecipeIdFor, v3RecipeTestRoom } from "./v3-recipe.js";
36
- export { assertV3Json, parseV3Json, v3Utf8ByteLength, V3_JSON_MAX_BYTES, V3_JSON_MAX_DEPTH } from "./v3-json.js";
37
- export { V3_INSTANCE_SIZE_DEFAULT, V3_INSTANCE_SIZE_INPUTS, V3_SIZE_POSITIVE_STEP, defaultInstanceSizeRange, foldInstanceSizeRange, v3InstanceSizeLimitsOf } from "./v3-instance-size.js";
38
- export { v3ContractChanges } from "./v3-release-contract.js";
39
- export { robotArmV3, ROBOT_ARM_CHAIN } from "./v3-examples.js";
9
+ export * from "./words.js";
10
+ export { FigureContractError } from "./contract.js";
11
+ export { compileFigureGraph } from "./graph.js";
12
+ export { editFigurePart, removePart } from "./part-edit.js";
13
+ export { createFigureAsset, addFigureBox, addFigurePrimitive } from "./create.js";
14
+ export { createFigureAuthoringSession } from "./authoring-session.js";
15
+ export { createFigureEditorWorkspace } from "./editor-workspace.js";
16
+ export { compileFigureCapabilities } from "./capabilities.js";
17
+ export { compileFigureDocument, parseFigureDocument, serializeFigureDocument } from "./document.js";
18
+ export { compileFigureAsset, parseFigureAsset, serializeFigureAsset, captureFigureAuthoredInputs } from "./asset.js";
19
+ export { publicInputRefusal } from "./public-inputs.js";
20
+ export { inspectFigureAsset, cornerExtremalBasis, FIGURE_DESIGN_EXTREME_BASIS, figureWorldBoxesOf, figureOccupiedBoxesOf, figureWritersOf, figurePartsExtentOf } from "./gate.js";
21
+ export { driverValue, driverStates, normalisePhase, validateFigureDrivers, validateFigureStateInputs, advanceStateValue, stateInputPolicy } from "./driver.js";
22
+ export { figureShapePoints, transformPoints } from "./shape-sampling.js";
23
+ export { FIGURE_OPERATORS, FIGURE_NON_AFFINE_OPERATORS, FIGURE_STATE_NON_AFFINE_OPERATORS, FIGURE_OPERATOR_STATE_POLICY, FIGURE_OPERATOR_PURITY, figureShapeFaces } from "./graph.js";
24
+ export { FIGURE_KERNEL_VERSION } from "./kernel-version.js";
25
+ export { FIGURE_FACE_NORMALS } from "./surface.js";
26
+ export { figureCostOf, figureTrianglesOf } from "./cost.js";
27
+ export { figureRenderBatchesOf } from "./render-batches.js";
28
+ export { figureScoreOf, figurePartCountOf, figurePartBudgetOf, figureGradeOf, figureMaterialKeyOf, figureIndependentBodiesOf, FIGURE_GRADE_SCALE, FIGURE_BUDGET_KEYS, FIGURE_PER_INSTANCE } from "./score.js";
29
+ export { applyFigureAuthoring, proposeFigureOccupancy, proposeFigureProportion, figureAttachmentsOf, figureBindingsOf, FIGURE_FACES, FIGURE_JOINT_TYPES, checkFigureJoints } from "./authoring-actions.js";
30
+ export { FIGURE_PLACEMENTS } from "./asset-types.js";
31
+ export { applyFigureProposal, FIGURE_PROPOSAL_GRAMMAR, FIGURE_PROPOSAL_KINDS } from "./proposal.js";
32
+ export { figureFollowOf } from "./follow.js";
33
+ export { figureRecipeFromParts } from "./recipe-from-parts.js";
34
+ export { buildFigureRecipe } from "./recipe-build.js";
35
+ export { applyFigureRecipe, checkFigureRecipe, describeFigureRecipe, holdsFigureWhen, parseFigureRecipe, resolveFigureRecipe, figureRecipeIdFor, figureRecipeTestRoom } from "./recipe.js";
36
+ export { assertFigureJson, parseFigureJson, figureUtf8ByteLength, FIGURE_JSON_MAX_BYTES, FIGURE_JSON_MAX_DEPTH } from "./json.js";
37
+ export { FIGURE_INSTANCE_SIZE_DEFAULT, FIGURE_INSTANCE_SIZE_INPUTS, FIGURE_SIZE_POSITIVE_STEP, defaultInstanceSizeRange, foldInstanceSizeRange, figureInstanceSizeLimitsOf } from "./instance-size.js";
38
+ export { figureContractChanges } from "./release-contract.js";
39
+ export { robotArmFigure, ROBOT_ARM_CHAIN } from "./examples.js";
40
40
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAgD,MAAM,gBAAgB,CAAA;AACtH,OAAO,EAAE,wBAAwB,EAAuF,MAAM,2BAA2B,CAAA;AACzJ,OAAO,EAAE,uBAAuB,EAA6F,MAAM,0BAA0B,CAAA;AAC7J,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC1F,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAgG,MAAM,cAAc,CAAA;AAC1P,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACzJ,OAAO,EAAE,aAAa,EAAE,eAAe,EAAc,MAAM,wBAAwB,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,kBAAkB,EAAsB,YAAY,EAAoB,MAAM,eAAe,CAAA;AACtM,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAe,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAiE,MAAM,wBAAwB,CAAA;AACzH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAoD,MAAM,eAAe,CAAA;AAC9N,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAyB,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAgP,cAAc,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAElb,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAA4C,MAAM,kBAAkB,CAAA;AACpI,OAAO,EAAE,UAAU,EAAiB,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAA+D,MAAM,sBAAsB,CAAA;AACjH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAA4B,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAiF,MAAM,gBAAgB,CAAA;AAEtQ,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAA;AAClI,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,sBAAsB,EAA4D,MAAM,uBAAuB,CAAA;AACnP,OAAO,EAAE,iBAAiB,EAAoD,MAAM,0BAA0B,CAAA;AAC9G,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import type { V3Asset } from './v3-asset-types.ts';
1
+ import type { FigureAsset } from './asset-types.ts';
2
2
  type Axis = 'x' | 'y' | 'z';
3
3
  /** The instance-size inputs, in mm. */
4
- export declare const V3_INSTANCE_SIZE_INPUTS: Readonly<Record<Axis, string>>;
4
+ export declare const FIGURE_INSTANCE_SIZE_INPUTS: Readonly<Record<Axis, string>>;
5
5
  /**
6
6
  * The default range: from 1 mm to ten times the authored size; the modeller prefills the same.
7
7
  */
8
- export declare const V3_INSTANCE_SIZE_DEFAULT: Readonly<{
8
+ export declare const FIGURE_INSTANCE_SIZE_DEFAULT: Readonly<{
9
9
  min: 1;
10
10
  times: 10;
11
11
  }>;
@@ -13,13 +13,13 @@ export declare const V3_INSTANCE_SIZE_DEFAULT: Readonly<{
13
13
  * The step above a spanned length's room at which the evaluated length is still positive in double precision at the
14
14
  * sizes figures have (mm, up to 10⁵). A numerical stability bound, not a minimum part size (designer's ruling 2).
15
15
  */
16
- export declare const V3_SIZE_POSITIVE_STEP = 0.000001;
17
- export type V3SizeRange = Record<Axis, {
16
+ export declare const FIGURE_SIZE_POSITIVE_STEP = 0.000001;
17
+ export type FigureSizeRange = Record<Axis, {
18
18
  min: number;
19
19
  max: number;
20
20
  }>;
21
21
  /** One edge a figure's size cannot cross, and on which axis. `part` names who sets it, when known. */
22
- export type V3SizeLimit = {
22
+ export type FigureSizeLimit = {
23
23
  axis: Axis;
24
24
  part?: string;
25
25
  } & (
@@ -40,8 +40,8 @@ export type V3SizeLimit = {
40
40
  max: number;
41
41
  });
42
42
  /** A bound the fold moved, with the range as it stood right after — what a report needs to say it. */
43
- export interface V3SizeRangeMove {
44
- limit: V3SizeLimit;
43
+ export interface FigureSizeRangeMove {
44
+ limit: FigureSizeLimit;
45
45
  bound: 'min' | 'max';
46
46
  range: {
47
47
  min: number;
@@ -49,14 +49,14 @@ export interface V3SizeRangeMove {
49
49
  };
50
50
  }
51
51
  /** The default range around an authored size. */
52
- export declare function defaultInstanceSizeRange(size: Record<Axis, number>): V3SizeRange;
52
+ export declare function defaultInstanceSizeRange(size: Record<Axis, number>): FigureSizeRange;
53
53
  /**
54
54
  * The range left once every limit is applied, in the order given, and each bound that moved. A repeat's floor at
55
55
  * one pitch is applied without a move: it is "at least one copy", not a narrowing.
56
56
  */
57
- export declare function foldInstanceSizeRange(start: V3SizeRange, limits: readonly V3SizeLimit[]): {
58
- range: V3SizeRange;
59
- moves: V3SizeRangeMove[];
57
+ export declare function foldInstanceSizeRange(start: FigureSizeRange, limits: readonly FigureSizeLimit[]): {
58
+ range: FigureSizeRange;
59
+ moves: FigureSizeRangeMove[];
60
60
  };
61
61
  /**
62
62
  * The edges of this asset's declared instance size, measured with the kernel: for each axis, the size below which
@@ -64,6 +64,6 @@ export declare function foldInstanceSizeRange(start: V3SizeRange, limits: readon
64
64
  * default. Only searched when the end of `within` fails, so a figure that holds over its range costs six
65
65
  * evaluations. `part` is read from the node the kernel refused.
66
66
  */
67
- export declare function v3InstanceSizeLimitsOf(asset: V3Asset, within: V3SizeRange): V3SizeLimit[];
67
+ export declare function figureInstanceSizeLimitsOf(asset: FigureAsset, within: FigureSizeRange): FigureSizeLimit[];
68
68
  export {};
69
- //# sourceMappingURL=v3-instance-size.d.ts.map
69
+ //# sourceMappingURL=instance-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-size.d.ts","sourceRoot":"","sources":["../src/instance-size.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAgBnD,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAG3B,uCAAuC;AACvC,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4D,CAAA;AAEnI;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;EAAuC,CAAA;AAEhF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,WAAO,CAAA;AAE7C,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAExE,sGAAsG;AACtG,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;AAC5D,oEAAoE;AAClE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAChC,mFAAmF;GACjF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAChD,uDAAuD;GACrD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAC/B,CAAA;AAED,sGAAsG;AACtG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE,KAAK,GAAG,KAAK,CAAA;IACpB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,iDAAiD;AACjD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,eAAe,CAIpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAwB1J;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CAyDzG"}
@@ -1,21 +1,21 @@
1
- import { compileV3Graph } from "./v3-graph.js";
1
+ import { compileFigureGraph } from "./graph.js";
2
2
  const AXES = ['x', 'y', 'z'];
3
3
  /** The instance-size inputs, in mm. */
4
- export const V3_INSTANCE_SIZE_INPUTS = Object.freeze({ x: 'size.x', y: 'size.y', z: 'size.z' });
4
+ export const FIGURE_INSTANCE_SIZE_INPUTS = Object.freeze({ x: 'size.x', y: 'size.y', z: 'size.z' });
5
5
  /**
6
6
  * The default range: from 1 mm to ten times the authored size; the modeller prefills the same.
7
7
  */
8
- export const V3_INSTANCE_SIZE_DEFAULT = Object.freeze({ min: 1, times: 10 });
8
+ export const FIGURE_INSTANCE_SIZE_DEFAULT = Object.freeze({ min: 1, times: 10 });
9
9
  /**
10
10
  * The step above a spanned length's room at which the evaluated length is still positive in double precision at the
11
11
  * sizes figures have (mm, up to 10⁵). A numerical stability bound, not a minimum part size (designer's ruling 2).
12
12
  */
13
- export const V3_SIZE_POSITIVE_STEP = 1e-6;
13
+ export const FIGURE_SIZE_POSITIVE_STEP = 1e-6;
14
14
  /** The default range around an authored size. */
15
15
  export function defaultInstanceSizeRange(size) {
16
16
  const out = {};
17
17
  for (const a of AXES)
18
- out[a] = { min: V3_INSTANCE_SIZE_DEFAULT.min, max: size[a] * V3_INSTANCE_SIZE_DEFAULT.times };
18
+ out[a] = { min: FIGURE_INSTANCE_SIZE_DEFAULT.min, max: size[a] * FIGURE_INSTANCE_SIZE_DEFAULT.times };
19
19
  return out;
20
20
  }
21
21
  /**
@@ -30,7 +30,7 @@ export function foldInstanceSizeRange(start, limits) {
30
30
  for (const limit of limits) {
31
31
  const r = range[limit.axis];
32
32
  if (limit.kind === 'span') {
33
- const floor = limit.room + V3_SIZE_POSITIVE_STEP;
33
+ const floor = limit.room + FIGURE_SIZE_POSITIVE_STEP;
34
34
  if (floor > r.min) {
35
35
  r.min = floor;
36
36
  moves.push({ limit, bound: 'min', range: { ...r } });
@@ -56,17 +56,17 @@ export function foldInstanceSizeRange(start, limits) {
56
56
  * default. Only searched when the end of `within` fails, so a figure that holds over its range costs six
57
57
  * evaluations. `part` is read from the node the kernel refused.
58
58
  */
59
- export function v3InstanceSizeLimitsOf(asset, within) {
59
+ export function figureInstanceSizeLimitsOf(asset, within) {
60
60
  const model = structuredClone(asset.document.model);
61
- const ids = new Set(Object.values(V3_INSTANCE_SIZE_INPUTS));
61
+ const ids = new Set(Object.values(FIGURE_INSTANCE_SIZE_INPUTS));
62
62
  for (const input of model.inputs)
63
63
  if (ids.has(input.id))
64
64
  Object.assign(input, { min: Number.MIN_VALUE, max: Number.MAX_VALUE });
65
- const graph = compileV3Graph(model);
65
+ const graph = compileFigureGraph(model);
66
66
  const base = { ...asset.designInputs, ...asset.stateDefaults };
67
67
  const limits = [];
68
68
  for (const axis of AXES) {
69
- const id = V3_INSTANCE_SIZE_INPUTS[axis];
69
+ const id = FIGURE_INSTANCE_SIZE_INPUTS[axis];
70
70
  const authored = asset.designInputs[id];
71
71
  if (typeof authored !== 'number')
72
72
  continue;
@@ -85,7 +85,7 @@ export function v3InstanceSizeLimitsOf(asset, within) {
85
85
  let lo = Math.min(within[axis].min, authored);
86
86
  let hi = authored;
87
87
  let at = low;
88
- for (let i = 0; i < 80 && hi - lo > V3_SIZE_POSITIVE_STEP / 4; i++) {
88
+ for (let i = 0; i < 80 && hi - lo > FIGURE_SIZE_POSITIVE_STEP / 4; i++) {
89
89
  const mid = (lo + hi) / 2;
90
90
  const r = refusal(mid);
91
91
  if (r === null)
@@ -102,7 +102,7 @@ export function v3InstanceSizeLimitsOf(asset, within) {
102
102
  let lo = authored;
103
103
  let hi = Math.max(within[axis].max, authored);
104
104
  let at = high;
105
- for (let i = 0; i < 80 && hi - lo > V3_SIZE_POSITIVE_STEP / 4; i++) {
105
+ for (let i = 0; i < 80 && hi - lo > FIGURE_SIZE_POSITIVE_STEP / 4; i++) {
106
106
  const mid = (lo + hi) / 2;
107
107
  const r = refusal(mid);
108
108
  if (r === null)
@@ -117,4 +117,4 @@ export function v3InstanceSizeLimitsOf(asset, within) {
117
117
  }
118
118
  return limits;
119
119
  }
120
- //# sourceMappingURL=v3-instance-size.js.map
120
+ //# sourceMappingURL=instance-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-size.js","sourceRoot":"","sources":["../src/instance-size.ts"],"names":[],"mappings":"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"}
package/dist/json.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export type FigureJsonValue = null | boolean | number | string | FigureJsonValue[] | {
2
+ [key: string]: FigureJsonValue;
3
+ };
4
+ /** Experimental resource limits, not a product storage quota. */
5
+ export declare const FIGURE_JSON_MAX_BYTES: number;
6
+ export declare const FIGURE_JSON_MAX_DEPTH = 64;
7
+ /** Identical UTF-8 accounting in browsers and Node, including lone surrogates. */
8
+ export declare function figureUtf8ByteLength(text: string): number;
9
+ export declare function assertFigureJson(value: unknown): asserts value is FigureJsonValue;
10
+ /** Strict JSON transport only; this is NOT model/asset semantic validation. */
11
+ export declare function parseFigureJson(text: string): FigureJsonValue;
12
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,CAAA;AAEvH,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,QAAc,CAAA;AAChD,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAMvC,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAkBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,eAAe,CA+BjF;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CA0B7D"}
@@ -1,12 +1,12 @@
1
- import { V3ContractError } from "./v3-contract.js";
1
+ import { FigureContractError } from "./contract.js";
2
2
  /** Experimental resource limits, not a product storage quota. */
3
- export const V3_JSON_MAX_BYTES = 1024 * 1024;
4
- export const V3_JSON_MAX_DEPTH = 64;
3
+ export const FIGURE_JSON_MAX_BYTES = 1024 * 1024;
4
+ export const FIGURE_JSON_MAX_DEPTH = 64;
5
5
  function fail(code, detail) {
6
- throw new V3ContractError(code, 'document', detail);
6
+ throw new FigureContractError(code, 'document', detail);
7
7
  }
8
8
  /** Identical UTF-8 accounting in browsers and Node, including lone surrogates. */
9
- export function v3Utf8ByteLength(text) {
9
+ export function figureUtf8ByteLength(text) {
10
10
  return new TextEncoder().encode(text).byteLength;
11
11
  }
12
12
  /** Reject values JSON.stringify would silently discard or transform. Does not invoke getters. */
@@ -25,10 +25,10 @@ function isPlainObject(value) {
25
25
  return true;
26
26
  return Object.getPrototypeOf(proto) === null && typeof proto.hasOwnProperty === 'function';
27
27
  }
28
- export function assertV3Json(value) {
28
+ export function assertFigureJson(value) {
29
29
  const active = new Set();
30
30
  function visit(current, depth) {
31
- if (depth > V3_JSON_MAX_DEPTH)
31
+ if (depth > FIGURE_JSON_MAX_DEPTH)
32
32
  fail('DOCUMENT_LIMIT', 'nesting exceeds 64');
33
33
  if (current === null || typeof current === 'string' || typeof current === 'boolean')
34
34
  return;
@@ -66,12 +66,12 @@ export function assertV3Json(value) {
66
66
  }
67
67
  visit(value, 0);
68
68
  }
69
- /** Strict JSON transport only; this is NOT V3 model/asset semantic validation. */
70
- export function parseV3Json(text) {
69
+ /** Strict JSON transport only; this is NOT model/asset semantic validation. */
70
+ export function parseFigureJson(text) {
71
71
  if (typeof text !== 'string')
72
72
  fail('JSON_VALUE', 'text required');
73
73
  // Cheap UTF-16 length bound avoids allocating an encoded copy of huge requests.
74
- if (text.length > V3_JSON_MAX_BYTES || v3Utf8ByteLength(text) > V3_JSON_MAX_BYTES) {
74
+ if (text.length > FIGURE_JSON_MAX_BYTES || figureUtf8ByteLength(text) > FIGURE_JSON_MAX_BYTES) {
75
75
  fail('DOCUMENT_LIMIT', 'over 1 MiB');
76
76
  }
77
77
  let parsed;
@@ -100,10 +100,10 @@ export function parseV3Json(text) {
100
100
  top.keys.add(key);
101
101
  top.expectingKey = false;
102
102
  }
103
- if (stack.length > V3_JSON_MAX_DEPTH + 1)
103
+ if (stack.length > FIGURE_JSON_MAX_DEPTH + 1)
104
104
  fail('DOCUMENT_LIMIT', 'nesting exceeds 64');
105
105
  }
106
- assertV3Json(parsed);
106
+ assertFigureJson(parsed);
107
107
  return parsed;
108
108
  }
109
- //# sourceMappingURL=v3-json.js.map
109
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The version of the kernel a consumer compiled a asset with. A compile cache keys on the asset's content
3
+ * fingerprint **and** this (ADR-0087, designer's ruling 4): the same source compiled by a different kernel is a
4
+ * different result. Kept equal to package.json's version by `npm version` (the `version` script rewrites this file)
5
+ * and by `kernel-version.test.ts`.
6
+ */
7
+ export declare const FIGURE_KERNEL_VERSION = "0.1.93";
8
+ //# sourceMappingURL=kernel-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-version.d.ts","sourceRoot":"","sources":["../src/kernel-version.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAA"}
@@ -2,10 +2,10 @@
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
4
  /**
5
- * The version of the kernel a consumer compiled a V3 asset with. A compile cache keys on the asset's content
5
+ * The version of the kernel a consumer compiled a asset with. A compile cache keys on the asset's content
6
6
  * fingerprint **and** this (ADR-0087, designer's ruling 4): the same source compiled by a different kernel is a
7
7
  * different result. Kept equal to package.json's version by `npm version` (the `version` script rewrites this file)
8
- * and by `v3-kernel-version.test.ts`.
8
+ * and by `kernel-version.test.ts`.
9
9
  */
10
- export const V3_KERNEL_VERSION = '0.1.92';
11
- //# sourceMappingURL=v3-kernel-version.js.map
10
+ export const FIGURE_KERNEL_VERSION = '0.1.93';
11
+ //# sourceMappingURL=kernel-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-version.js","sourceRoot":"","sources":["../src/kernel-version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAA"}
@@ -1,6 +1,6 @@
1
- import type { V3Asset, V3Material } from './v3-asset-types.ts';
2
- import { type RemovalNotice } from './v3-authoring-actions.ts';
3
- export type V3PartEdit =
1
+ import type { FigureAsset, FigureMaterial } from './asset-types.ts';
2
+ import { type RemovalNotice } from './authoring-actions.ts';
3
+ export type FigurePartEdit =
4
4
  /**
5
5
  * The part's material. `palette` adds the colours it names that the asset does not carry yet — a new asset carries
6
6
  * only its primary colour, and a role the palette lacks is refused. An entry never changes a colour the asset
@@ -9,7 +9,7 @@ export type V3PartEdit =
9
9
  {
10
10
  kind: 'set-material';
11
11
  target: string;
12
- material: V3Material;
12
+ material: FigureMaterial;
13
13
  palette?: Record<string, string>;
14
14
  }
15
15
  /** How finely a round body's rim is drawn. One of the presets the renderer draws; refused on a body with no rim. */
@@ -109,7 +109,7 @@ export type V3PartEdit =
109
109
  /**
110
110
  * "This part is shown while that control is at least so much" -- a lamp lit while a gate is open. The part keeps its
111
111
  * place, its size and every check; only whether it is drawn follows the control (the visibility contract,
112
- * `V3Appearance.visibility`). `null` shows it always. The comparison it had before, read by nothing else, goes.
112
+ * `FigureAppearance.visibility`). `null` shows it always. The comparison it had before, read by nothing else, goes.
113
113
  */
114
114
  | {
115
115
  kind: 'set-visibility';
@@ -120,17 +120,17 @@ export type V3PartEdit =
120
120
  } | null;
121
121
  };
122
122
  /** Pure, validated structural edit. References are never silently retargeted or cascaded. */
123
- export declare function editV3Part(source: V3Asset, edit: V3PartEdit): V3Asset;
123
+ export declare function editFigurePart(source: FigureAsset, edit: FigurePartEdit): FigureAsset;
124
124
  /**
125
125
  * Takes a part away, and says what else that changed (`RemovalNotice`): the parts let go, the values fixed, the
126
- * controls made, the mounting face given up. `editV3Part` is this without the notice.
126
+ * controls made, the mounting face given up. `editFigurePart` is this without the notice.
127
127
  */
128
- export declare function removePart(source: V3Asset, edit: {
128
+ export declare function removePart(source: FigureAsset, edit: {
129
129
  kind: 'remove-part';
130
130
  target: string;
131
131
  refitRoom?: boolean;
132
132
  }): {
133
- asset: V3Asset;
133
+ asset: FigureAsset;
134
134
  notice: RemovalNotice;
135
135
  };
136
- //# sourceMappingURL=v3-part-edit.d.ts.map
136
+ //# sourceMappingURL=part-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"part-edit.d.ts","sourceRoot":"","sources":["../src/part-edit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEnE,OAAO,EAA0I,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGnM,MAAM,MAAM,cAAc;AACxB;;;;GAIG;AACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE;AACtG,oHAAoH;GAClH;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC5D;;;GAGG;GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE;AAC9D,gIAAgI;GAC9H;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE;AAC/C;;;;GAIG;GACD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;AACxH,6FAA6F;GAC3F;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE;AAChE;;;;;GAKG;GACD;IACE,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/C,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AACH,6CAA6C;GAC3C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC1C,oGAAoG;GAClG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AACtE;;;GAGG;GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC5C,6GAA6G;GAC3G;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACnD;;;;GAIG;GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACvD;;;;GAIG;GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAA;AAEpG,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,WAAW,CA8LrF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CA+GjK"}