nucleation 0.10.21 → 0.10.23

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 (314) hide show
  1. package/BlockPos.mjs +1 -0
  2. package/Dimensions.mjs +1 -0
  3. package/FieldRange.mjs +1 -0
  4. package/ItemScale.mjs +1 -0
  5. package/MeshBounds.mjs +1 -0
  6. package/MeshProgress.mjs +1 -0
  7. package/README.md +12 -0
  8. package/RegionBounds.mjs +1 -0
  9. package/Schematic.d.mts +32 -0
  10. package/Schematic.d.ts +32 -0
  11. package/Schematic.mjs +100 -0
  12. package/SdfBounds.mjs +1 -0
  13. package/SdfNormal.mjs +1 -0
  14. package/TextureInfo.mjs +1 -0
  15. package/diplomat-runtime.mjs +19 -14
  16. package/nucleation.wasm +0 -0
  17. package/package.json +7 -2
  18. package/renderer/AnimationEffect.d.mts +44 -0
  19. package/renderer/AnimationEffect.d.ts +44 -0
  20. package/renderer/AnimationEffect.mjs +204 -0
  21. package/renderer/Autostack.d.mts +43 -0
  22. package/renderer/Autostack.d.ts +43 -0
  23. package/renderer/Autostack.mjs +134 -0
  24. package/renderer/BlockPos.d.mts +28 -0
  25. package/renderer/BlockPos.d.ts +28 -0
  26. package/renderer/BlockPos.mjs +130 -0
  27. package/renderer/BlockState.d.mts +39 -0
  28. package/renderer/BlockState.d.ts +39 -0
  29. package/renderer/BlockState.mjs +134 -0
  30. package/renderer/Blocks.d.mts +91 -0
  31. package/renderer/Blocks.d.ts +91 -0
  32. package/renderer/Blocks.mjs +308 -0
  33. package/renderer/Brush.d.mts +99 -0
  34. package/renderer/Brush.d.ts +99 -0
  35. package/renderer/Brush.mjs +335 -0
  36. package/renderer/BuildAnimation.d.mts +179 -0
  37. package/renderer/BuildAnimation.d.ts +179 -0
  38. package/renderer/BuildAnimation.mjs +1148 -0
  39. package/renderer/BuildingTool.d.mts +46 -0
  40. package/renderer/BuildingTool.d.ts +46 -0
  41. package/renderer/BuildingTool.mjs +121 -0
  42. package/renderer/CellExecutor.d.mts +51 -0
  43. package/renderer/CellExecutor.d.ts +51 -0
  44. package/renderer/CellExecutor.mjs +171 -0
  45. package/renderer/CellularSdfConfig.d.mts +22 -0
  46. package/renderer/CellularSdfConfig.d.ts +22 -0
  47. package/renderer/CellularSdfConfig.mjs +69 -0
  48. package/renderer/ChunkMeshResult.d.mts +75 -0
  49. package/renderer/ChunkMeshResult.d.ts +75 -0
  50. package/renderer/ChunkMeshResult.mjs +253 -0
  51. package/renderer/CircuitBuilder.d.mts +118 -0
  52. package/renderer/CircuitBuilder.d.ts +118 -0
  53. package/renderer/CircuitBuilder.mjs +516 -0
  54. package/renderer/Curve3D.d.mts +27 -0
  55. package/renderer/Curve3D.d.ts +27 -0
  56. package/renderer/Curve3D.mjs +101 -0
  57. package/renderer/DefinitionRegion.d.mts +274 -0
  58. package/renderer/DefinitionRegion.d.ts +274 -0
  59. package/renderer/DefinitionRegion.mjs +973 -0
  60. package/renderer/Design.d.mts +348 -0
  61. package/renderer/Design.d.ts +348 -0
  62. package/renderer/Design.mjs +1334 -0
  63. package/renderer/Diff.d.mts +88 -0
  64. package/renderer/Diff.d.ts +88 -0
  65. package/renderer/Diff.mjs +316 -0
  66. package/renderer/Dimensions.d.mts +28 -0
  67. package/renderer/Dimensions.d.ts +28 -0
  68. package/renderer/Dimensions.mjs +130 -0
  69. package/renderer/DistanceField.d.mts +39 -0
  70. package/renderer/DistanceField.d.ts +39 -0
  71. package/renderer/DistanceField.mjs +114 -0
  72. package/renderer/ExecutionMode.d.mts +42 -0
  73. package/renderer/ExecutionMode.d.ts +42 -0
  74. package/renderer/ExecutionMode.mjs +127 -0
  75. package/renderer/Field3.d.mts +40 -0
  76. package/renderer/Field3.d.ts +40 -0
  77. package/renderer/Field3.mjs +160 -0
  78. package/renderer/FieldProgram.d.mts +40 -0
  79. package/renderer/FieldProgram.d.ts +40 -0
  80. package/renderer/FieldProgram.mjs +167 -0
  81. package/renderer/FieldProgramBinaryOp.d.mts +42 -0
  82. package/renderer/FieldProgramBinaryOp.d.ts +42 -0
  83. package/renderer/FieldProgramBinaryOp.mjs +118 -0
  84. package/renderer/FieldProgramBuilder.d.mts +104 -0
  85. package/renderer/FieldProgramBuilder.d.ts +104 -0
  86. package/renderer/FieldProgramBuilder.mjs +486 -0
  87. package/renderer/FieldProgramDistanceKind.d.mts +26 -0
  88. package/renderer/FieldProgramDistanceKind.d.ts +26 -0
  89. package/renderer/FieldProgramDistanceKind.mjs +78 -0
  90. package/renderer/FieldProgramUnaryOp.d.mts +34 -0
  91. package/renderer/FieldProgramUnaryOp.d.ts +34 -0
  92. package/renderer/FieldProgramUnaryOp.mjs +102 -0
  93. package/renderer/FieldProgramValueType.d.mts +25 -0
  94. package/renderer/FieldProgramValueType.d.ts +25 -0
  95. package/renderer/FieldProgramValueType.mjs +75 -0
  96. package/renderer/FieldRange.d.mts +15 -0
  97. package/renderer/FieldRange.d.ts +15 -0
  98. package/renderer/FieldRange.mjs +109 -0
  99. package/renderer/Fingerprint.d.mts +44 -0
  100. package/renderer/Fingerprint.d.ts +44 -0
  101. package/renderer/Fingerprint.mjs +197 -0
  102. package/renderer/GeneratedChunk.d.mts +35 -0
  103. package/renderer/GeneratedChunk.d.ts +35 -0
  104. package/renderer/GeneratedChunk.mjs +178 -0
  105. package/renderer/GeneratedChunkCoverage.d.mts +25 -0
  106. package/renderer/GeneratedChunkCoverage.d.ts +25 -0
  107. package/renderer/GeneratedChunkCoverage.mjs +75 -0
  108. package/renderer/GeneratedChunkOverlayMode.d.mts +24 -0
  109. package/renderer/GeneratedChunkOverlayMode.d.ts +24 -0
  110. package/renderer/GeneratedChunkOverlayMode.mjs +72 -0
  111. package/renderer/GeneratedWorldStream.d.mts +28 -0
  112. package/renderer/GeneratedWorldStream.d.ts +28 -0
  113. package/renderer/GeneratedWorldStream.mjs +86 -0
  114. package/renderer/Geo.d.mts +41 -0
  115. package/renderer/Geo.d.ts +41 -0
  116. package/renderer/Geo.mjs +121 -0
  117. package/renderer/Hdl.d.mts +56 -0
  118. package/renderer/Hdl.d.ts +56 -0
  119. package/renderer/Hdl.mjs +163 -0
  120. package/renderer/InterpolationSpace.d.mts +25 -0
  121. package/renderer/InterpolationSpace.d.ts +25 -0
  122. package/renderer/InterpolationSpace.mjs +73 -0
  123. package/renderer/IoLayout.d.mts +26 -0
  124. package/renderer/IoLayout.d.ts +26 -0
  125. package/renderer/IoLayout.mjs +81 -0
  126. package/renderer/IoLayoutBuilder.d.mts +73 -0
  127. package/renderer/IoLayoutBuilder.d.ts +73 -0
  128. package/renderer/IoLayoutBuilder.mjs +315 -0
  129. package/renderer/IoType.d.mts +41 -0
  130. package/renderer/IoType.d.ts +41 -0
  131. package/renderer/IoType.mjs +125 -0
  132. package/renderer/ItemModelConfig.d.mts +65 -0
  133. package/renderer/ItemModelConfig.d.ts +65 -0
  134. package/renderer/ItemModelConfig.mjs +223 -0
  135. package/renderer/ItemModelPackBuilder.d.mts +32 -0
  136. package/renderer/ItemModelPackBuilder.d.ts +32 -0
  137. package/renderer/ItemModelPackBuilder.mjs +104 -0
  138. package/renderer/ItemModelResult.d.mts +72 -0
  139. package/renderer/ItemModelResult.d.ts +72 -0
  140. package/renderer/ItemModelResult.mjs +268 -0
  141. package/renderer/ItemScale.d.mts +31 -0
  142. package/renderer/ItemScale.d.ts +31 -0
  143. package/renderer/ItemScale.mjs +133 -0
  144. package/renderer/LayoutFunction.d.mts +52 -0
  145. package/renderer/LayoutFunction.d.ts +52 -0
  146. package/renderer/LayoutFunction.mjs +159 -0
  147. package/renderer/MchprsWorld.d.mts +131 -0
  148. package/renderer/MchprsWorld.d.ts +131 -0
  149. package/renderer/MchprsWorld.mjs +423 -0
  150. package/renderer/MeshBounds.d.mts +40 -0
  151. package/renderer/MeshBounds.d.ts +40 -0
  152. package/renderer/MeshBounds.mjs +181 -0
  153. package/renderer/MeshConfig.d.mts +101 -0
  154. package/renderer/MeshConfig.d.ts +101 -0
  155. package/renderer/MeshConfig.mjs +306 -0
  156. package/renderer/MeshJob.d.mts +44 -0
  157. package/renderer/MeshJob.d.ts +44 -0
  158. package/renderer/MeshJob.mjs +116 -0
  159. package/renderer/MeshPhase.d.mts +38 -0
  160. package/renderer/MeshPhase.d.ts +38 -0
  161. package/renderer/MeshPhase.mjs +90 -0
  162. package/renderer/MeshProgress.d.mts +32 -0
  163. package/renderer/MeshProgress.d.ts +32 -0
  164. package/renderer/MeshProgress.mjs +134 -0
  165. package/renderer/MeshResult.d.mts +76 -0
  166. package/renderer/MeshResult.d.ts +76 -0
  167. package/renderer/MeshResult.mjs +269 -0
  168. package/renderer/MultiMeshResult.d.mts +50 -0
  169. package/renderer/MultiMeshResult.d.ts +50 -0
  170. package/renderer/MultiMeshResult.mjs +166 -0
  171. package/renderer/Nbt.d.mts +50 -0
  172. package/renderer/Nbt.d.ts +50 -0
  173. package/renderer/Nbt.mjs +161 -0
  174. package/renderer/NucleationError.d.mts +53 -0
  175. package/renderer/NucleationError.d.ts +53 -0
  176. package/renderer/NucleationError.mjs +136 -0
  177. package/renderer/OutputCondition.d.mts +45 -0
  178. package/renderer/OutputCondition.d.ts +45 -0
  179. package/renderer/OutputCondition.mjs +129 -0
  180. package/renderer/Palette.d.mts +157 -0
  181. package/renderer/Palette.d.ts +157 -0
  182. package/renderer/Palette.mjs +487 -0
  183. package/renderer/PaletteBuilder.d.mts +119 -0
  184. package/renderer/PaletteBuilder.d.ts +119 -0
  185. package/renderer/PaletteBuilder.mjs +457 -0
  186. package/renderer/README.md +67 -0
  187. package/renderer/RawMeshExport.d.mts +74 -0
  188. package/renderer/RawMeshExport.d.ts +74 -0
  189. package/renderer/RawMeshExport.mjs +243 -0
  190. package/renderer/RedstoneGraph.d.mts +58 -0
  191. package/renderer/RedstoneGraph.d.ts +58 -0
  192. package/renderer/RedstoneGraph.mjs +242 -0
  193. package/renderer/RegionBounds.d.mts +41 -0
  194. package/renderer/RegionBounds.d.ts +41 -0
  195. package/renderer/RegionBounds.mjs +182 -0
  196. package/renderer/RenderConfig.d.mts +101 -0
  197. package/renderer/RenderConfig.d.ts +101 -0
  198. package/renderer/RenderConfig.mjs +271 -0
  199. package/renderer/Renderer.d.mts +51 -0
  200. package/renderer/Renderer.d.ts +51 -0
  201. package/renderer/Renderer.mjs +219 -0
  202. package/renderer/ResourcePack.d.mts +105 -0
  203. package/renderer/ResourcePack.d.ts +105 -0
  204. package/renderer/ResourcePack.mjs +447 -0
  205. package/renderer/ResourcePackList.d.mts +32 -0
  206. package/renderer/ResourcePackList.d.ts +32 -0
  207. package/renderer/ResourcePackList.mjs +96 -0
  208. package/renderer/Routing.d.mts +66 -0
  209. package/renderer/Routing.d.ts +66 -0
  210. package/renderer/Routing.mjs +220 -0
  211. package/renderer/Schematic.d.mts +977 -0
  212. package/renderer/Schematic.d.ts +977 -0
  213. package/renderer/Schematic.mjs +3820 -0
  214. package/renderer/SchematicBuilder.d.mts +103 -0
  215. package/renderer/SchematicBuilder.d.ts +103 -0
  216. package/renderer/SchematicBuilder.mjs +401 -0
  217. package/renderer/SchematicRegions.d.mts +93 -0
  218. package/renderer/SchematicRegions.d.ts +93 -0
  219. package/renderer/SchematicRegions.mjs +411 -0
  220. package/renderer/SchematicSplitResult.d.mts +26 -0
  221. package/renderer/SchematicSplitResult.d.ts +26 -0
  222. package/renderer/SchematicSplitResult.mjs +84 -0
  223. package/renderer/Scripting.d.mts +40 -0
  224. package/renderer/Scripting.d.ts +40 -0
  225. package/renderer/Scripting.mjs +138 -0
  226. package/renderer/Sdf.d.mts +234 -0
  227. package/renderer/Sdf.d.ts +234 -0
  228. package/renderer/Sdf.mjs +1234 -0
  229. package/renderer/SdfAxis.d.mts +25 -0
  230. package/renderer/SdfAxis.d.ts +25 -0
  231. package/renderer/SdfAxis.mjs +75 -0
  232. package/renderer/SdfBounds.d.mts +19 -0
  233. package/renderer/SdfBounds.d.ts +19 -0
  234. package/renderer/SdfBounds.mjs +161 -0
  235. package/renderer/SdfCellMode.d.mts +26 -0
  236. package/renderer/SdfCellMode.d.ts +26 -0
  237. package/renderer/SdfCellMode.mjs +78 -0
  238. package/renderer/SdfNormal.d.mts +16 -0
  239. package/renderer/SdfNormal.d.ts +16 -0
  240. package/renderer/SdfNormal.mjs +122 -0
  241. package/renderer/Shape.d.mts +143 -0
  242. package/renderer/Shape.d.ts +143 -0
  243. package/renderer/Shape.mjs +458 -0
  244. package/renderer/SortStrategy.d.mts +86 -0
  245. package/renderer/SortStrategy.d.ts +86 -0
  246. package/renderer/SortStrategy.mjs +272 -0
  247. package/renderer/Store.d.mts +83 -0
  248. package/renderer/Store.d.ts +83 -0
  249. package/renderer/Store.mjs +369 -0
  250. package/renderer/StoreIo.d.mts +71 -0
  251. package/renderer/StoreIo.d.ts +71 -0
  252. package/renderer/StoreIo.mjs +292 -0
  253. package/renderer/TextureAtlas.d.mts +40 -0
  254. package/renderer/TextureAtlas.d.ts +40 -0
  255. package/renderer/TextureAtlas.mjs +122 -0
  256. package/renderer/TextureInfo.d.mts +34 -0
  257. package/renderer/TextureInfo.d.ts +34 -0
  258. package/renderer/TextureInfo.mjs +149 -0
  259. package/renderer/TickSettleMode.d.mts +34 -0
  260. package/renderer/TickSettleMode.d.ts +34 -0
  261. package/renderer/TickSettleMode.mjs +84 -0
  262. package/renderer/TickSimulation.d.mts +572 -0
  263. package/renderer/TickSimulation.d.ts +572 -0
  264. package/renderer/TickSimulation.mjs +1299 -0
  265. package/renderer/TypedCircuitExecutor.d.mts +101 -0
  266. package/renderer/TypedCircuitExecutor.d.ts +101 -0
  267. package/renderer/TypedCircuitExecutor.mjs +378 -0
  268. package/renderer/Value.d.mts +73 -0
  269. package/renderer/Value.d.ts +73 -0
  270. package/renderer/Value.mjs +275 -0
  271. package/renderer/VideoConfig.d.mts +15 -0
  272. package/renderer/VideoConfig.d.ts +15 -0
  273. package/renderer/VideoConfig.mjs +44 -0
  274. package/renderer/VoxelModel.d.mts +34 -0
  275. package/renderer/VoxelModel.d.ts +34 -0
  276. package/renderer/VoxelModel.mjs +113 -0
  277. package/renderer/Voxelizer.d.mts +80 -0
  278. package/renderer/Voxelizer.d.ts +80 -0
  279. package/renderer/Voxelizer.mjs +261 -0
  280. package/renderer/WorldChunkView.d.mts +75 -0
  281. package/renderer/WorldChunkView.d.ts +75 -0
  282. package/renderer/WorldChunkView.mjs +224 -0
  283. package/renderer/WorldGenerator.d.mts +75 -0
  284. package/renderer/WorldGenerator.d.ts +75 -0
  285. package/renderer/WorldGenerator.mjs +255 -0
  286. package/renderer/WorldSink.d.mts +50 -0
  287. package/renderer/WorldSink.d.ts +50 -0
  288. package/renderer/WorldSink.mjs +177 -0
  289. package/renderer/WorldStream.d.mts +45 -0
  290. package/renderer/WorldStream.d.ts +45 -0
  291. package/renderer/WorldStream.mjs +184 -0
  292. package/renderer/WsPartitionHints.d.mts +29 -0
  293. package/renderer/WsPartitionHints.d.ts +29 -0
  294. package/renderer/WsPartitionHints.mjs +102 -0
  295. package/renderer/WsProfile.d.mts +46 -0
  296. package/renderer/WsProfile.d.ts +46 -0
  297. package/renderer/WsProfile.mjs +152 -0
  298. package/renderer/WsRunResult.d.mts +83 -0
  299. package/renderer/WsRunResult.d.ts +83 -0
  300. package/renderer/WsRunResult.mjs +326 -0
  301. package/renderer/WsSegmentJob.d.mts +28 -0
  302. package/renderer/WsSegmentJob.d.ts +28 -0
  303. package/renderer/WsSegmentJob.mjs +81 -0
  304. package/renderer/diplomat-runtime.d.mts +15 -0
  305. package/renderer/diplomat-runtime.d.ts +15 -0
  306. package/renderer/diplomat-runtime.mjs +779 -0
  307. package/renderer/diplomat-wasm.mjs +52 -0
  308. package/renderer/diplomat.config.mjs +5 -0
  309. package/renderer/index.d.mts +193 -0
  310. package/renderer/index.d.ts +193 -0
  311. package/renderer/index.mjs +196 -0
  312. package/renderer/nucleation.wasm +0 -0
  313. package/renderer/veneer/design.d.ts +167 -0
  314. package/renderer/veneer/design.mjs +480 -0
@@ -0,0 +1,88 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { Schematic } from "./Schematic.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * A computed diff between two schematics.
10
+ */
11
+ export class Diff {
12
+ /** @internal */
13
+ get ffiValue(): pointer;
14
+ /** @internal */
15
+ constructor();
16
+
17
+
18
+ /**
19
+ * Diff two schematics with the given preset (default cost model).
20
+ * Errors with `InvalidArgument` on an unknown preset.
21
+ */
22
+ static compute(a: Schematic, b: Schematic, preset: string): Diff;
23
+
24
+ /**
25
+ * Diff two schematics with optional cost/symmetry overrides. Negative
26
+ * cost ints mean "unset" (use the preset default); an empty `symmetry`
27
+ * string means "unset". Errors with `InvalidArgument` on an unknown
28
+ * preset or symmetry name.
29
+ */
30
+ static computeWithOpts(a: Schematic, b: Schematic, preset: string, costAdd: number, costDelete: number, costChange: number, costSwap: number, symmetry: string): Diff;
31
+
32
+ /**
33
+ * Reconstruct a diff from its JSON representation.
34
+ */
35
+ static fromJson(json: string): Diff;
36
+
37
+ /**
38
+ * The edit distance of the diff.
39
+ */
40
+ distance(): bigint;
41
+
42
+ /**
43
+ * The support (alignment confidence) of the diff.
44
+ */
45
+ support(): number;
46
+
47
+ /**
48
+ * Serialize the diff to its full JSON representation.
49
+ */
50
+ toJson(): string;
51
+
52
+ /**
53
+ * Serialize the diff to its compact summary JSON.
54
+ */
55
+ summaryJson(): string;
56
+
57
+ /**
58
+ * A new schematic containing only the blocks added in this diff.
59
+ */
60
+ added(): Schematic;
61
+
62
+ /**
63
+ * A new schematic containing only the blocks removed in this diff.
64
+ */
65
+ removed(): Schematic;
66
+
67
+ /**
68
+ * A new schematic containing only the blocks changed in this diff.
69
+ */
70
+ changed(): Schematic;
71
+
72
+ /**
73
+ * A new schematic containing only the blocks swapped in this diff.
74
+ */
75
+ swapped(): Schematic;
76
+
77
+ /**
78
+ * A new schematic with marker blocks summarizing this diff.
79
+ */
80
+ markers(): Schematic;
81
+
82
+ /**
83
+ * Render a diff overlay on top of an "after" GLB buffer, returning the
84
+ * new GLB as base64 (PORTING rule 6). Requires the `meshing` feature;
85
+ * errors with `Mesh` when compiled without it.
86
+ */
87
+ toOverlayGlbB64(afterGlb: Array<number>): string;
88
+ }
@@ -0,0 +1,88 @@
1
+ // generated by diplomat-tool
2
+ import type { NucleationError } from "./NucleationError.mjs"
3
+ import type { Schematic } from "./Schematic.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * A computed diff between two schematics.
10
+ */
11
+ export class Diff {
12
+ /** @internal */
13
+ get ffiValue(): pointer;
14
+ /** @internal */
15
+ constructor();
16
+
17
+
18
+ /**
19
+ * Diff two schematics with the given preset (default cost model).
20
+ * Errors with `InvalidArgument` on an unknown preset.
21
+ */
22
+ static compute(a: Schematic, b: Schematic, preset: string): Diff;
23
+
24
+ /**
25
+ * Diff two schematics with optional cost/symmetry overrides. Negative
26
+ * cost ints mean "unset" (use the preset default); an empty `symmetry`
27
+ * string means "unset". Errors with `InvalidArgument` on an unknown
28
+ * preset or symmetry name.
29
+ */
30
+ static computeWithOpts(a: Schematic, b: Schematic, preset: string, costAdd: number, costDelete: number, costChange: number, costSwap: number, symmetry: string): Diff;
31
+
32
+ /**
33
+ * Reconstruct a diff from its JSON representation.
34
+ */
35
+ static fromJson(json: string): Diff;
36
+
37
+ /**
38
+ * The edit distance of the diff.
39
+ */
40
+ distance(): bigint;
41
+
42
+ /**
43
+ * The support (alignment confidence) of the diff.
44
+ */
45
+ support(): number;
46
+
47
+ /**
48
+ * Serialize the diff to its full JSON representation.
49
+ */
50
+ toJson(): string;
51
+
52
+ /**
53
+ * Serialize the diff to its compact summary JSON.
54
+ */
55
+ summaryJson(): string;
56
+
57
+ /**
58
+ * A new schematic containing only the blocks added in this diff.
59
+ */
60
+ added(): Schematic;
61
+
62
+ /**
63
+ * A new schematic containing only the blocks removed in this diff.
64
+ */
65
+ removed(): Schematic;
66
+
67
+ /**
68
+ * A new schematic containing only the blocks changed in this diff.
69
+ */
70
+ changed(): Schematic;
71
+
72
+ /**
73
+ * A new schematic containing only the blocks swapped in this diff.
74
+ */
75
+ swapped(): Schematic;
76
+
77
+ /**
78
+ * A new schematic with marker blocks summarizing this diff.
79
+ */
80
+ markers(): Schematic;
81
+
82
+ /**
83
+ * Render a diff overlay on top of an "after" GLB buffer, returning the
84
+ * new GLB as base64 (PORTING rule 6). Requires the `meshing` feature;
85
+ * errors with `Mesh` when compiled without it.
86
+ */
87
+ toOverlayGlbB64(afterGlb: Array<number>): string;
88
+ }
@@ -0,0 +1,316 @@
1
+ // generated by diplomat-tool
2
+ import { NucleationError } from "./NucleationError.mjs"
3
+ import { Schematic } from "./Schematic.mjs"
4
+ import wasm from "./diplomat-wasm.mjs";
5
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
6
+
7
+ const Diff_box_destroy_registry = new FinalizationRegistry((ptr) => {
8
+ wasm.Diff_destroy(ptr);
9
+ });
10
+
11
+ /**
12
+ * A computed diff between two schematics.
13
+ */
14
+ export class Diff {
15
+ // Internal ptr reference:
16
+ #ptr = null;
17
+
18
+ // Lifetimes are only to keep dependencies alive.
19
+ // Since JS won't garbage collect until there are no incoming edges.
20
+ #selfEdge = [];
21
+
22
+ #internalConstructor(symbol, ptr, selfEdge) {
23
+ if (symbol !== diplomatRuntime.internalConstructor) {
24
+ console.error("Diff is an Opaque type. You cannot call its constructor.");
25
+ return;
26
+ }
27
+ this.#ptr = ptr;
28
+ this.#selfEdge = selfEdge;
29
+
30
+ // Are we being borrowed? If not, we can register.
31
+ if (this.#selfEdge.length === 0) {
32
+ Diff_box_destroy_registry.register(this, this.#ptr);
33
+ }
34
+
35
+ return this;
36
+ }
37
+ /** @internal */
38
+ get ffiValue() {
39
+ return this.#ptr;
40
+ }
41
+
42
+
43
+ /**
44
+ * Diff two schematics with the given preset (default cost model).
45
+ * Errors with `InvalidArgument` on an unknown preset.
46
+ */
47
+ static compute(a, b, preset) {
48
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
49
+
50
+ const presetSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, preset)));
51
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
52
+
53
+
54
+ const result = wasm.Diff_compute(diplomatReceive.buffer, a.ffiValue, b.ffiValue, presetSlice.ptr);
55
+
56
+ try {
57
+ if (!diplomatReceive.resultFlag) {
58
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
59
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
60
+ }
61
+ return new Diff(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
62
+ }
63
+
64
+ finally {
65
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
66
+ functionCleanupArena.free();
67
+
68
+ diplomatReceive.free();
69
+ }
70
+ }
71
+
72
+ /**
73
+ * Diff two schematics with optional cost/symmetry overrides. Negative
74
+ * cost ints mean "unset" (use the preset default); an empty `symmetry`
75
+ * string means "unset". Errors with `InvalidArgument` on an unknown
76
+ * preset or symmetry name.
77
+ */
78
+ static computeWithOpts(a, b, preset, costAdd, costDelete, costChange, costSwap, symmetry) {
79
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
80
+
81
+ const presetSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, preset)));
82
+ const symmetrySlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, symmetry)));
83
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
84
+
85
+
86
+ const result = wasm.Diff_compute_with_opts(diplomatReceive.buffer, a.ffiValue, b.ffiValue, presetSlice.ptr, costAdd, costDelete, costChange, costSwap, symmetrySlice.ptr);
87
+
88
+ try {
89
+ if (!diplomatReceive.resultFlag) {
90
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
91
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
92
+ }
93
+ return new Diff(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
94
+ }
95
+
96
+ finally {
97
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
98
+ functionCleanupArena.free();
99
+
100
+ diplomatReceive.free();
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Reconstruct a diff from its JSON representation.
106
+ */
107
+ static fromJson(json) {
108
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
109
+
110
+ const jsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, json)));
111
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
112
+
113
+
114
+ const result = wasm.Diff_from_json(diplomatReceive.buffer, jsonSlice.ptr);
115
+
116
+ try {
117
+ if (!diplomatReceive.resultFlag) {
118
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
119
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
120
+ }
121
+ return new Diff(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
122
+ }
123
+
124
+ finally {
125
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
126
+ functionCleanupArena.free();
127
+
128
+ diplomatReceive.free();
129
+ }
130
+ }
131
+
132
+ /**
133
+ * The edit distance of the diff.
134
+ */
135
+ distance() {
136
+
137
+ const result = wasm.Diff_distance(this.ffiValue);
138
+
139
+ try {
140
+ return result;
141
+ }
142
+
143
+ finally {
144
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
145
+ }
146
+ }
147
+
148
+ /**
149
+ * The support (alignment confidence) of the diff.
150
+ */
151
+ support() {
152
+
153
+ const result = wasm.Diff_support(this.ffiValue);
154
+
155
+ try {
156
+ return result;
157
+ }
158
+
159
+ finally {
160
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
161
+ }
162
+ }
163
+
164
+ /**
165
+ * Serialize the diff to its full JSON representation.
166
+ */
167
+ toJson() {
168
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
169
+
170
+ wasm.Diff_to_json(this.ffiValue, write.buffer);
171
+
172
+ try {
173
+ return write.readString8();
174
+ }
175
+
176
+ finally {
177
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
178
+ write.free();
179
+ }
180
+ }
181
+
182
+ /**
183
+ * Serialize the diff to its compact summary JSON.
184
+ */
185
+ summaryJson() {
186
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
187
+
188
+ wasm.Diff_summary_json(this.ffiValue, write.buffer);
189
+
190
+ try {
191
+ return write.readString8();
192
+ }
193
+
194
+ finally {
195
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
196
+ write.free();
197
+ }
198
+ }
199
+
200
+ /**
201
+ * A new schematic containing only the blocks added in this diff.
202
+ */
203
+ added() {
204
+
205
+ const result = wasm.Diff_added(this.ffiValue);
206
+
207
+ try {
208
+ return new Schematic(diplomatRuntime.internalConstructor, result, []);
209
+ }
210
+
211
+ finally {
212
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
213
+ }
214
+ }
215
+
216
+ /**
217
+ * A new schematic containing only the blocks removed in this diff.
218
+ */
219
+ removed() {
220
+
221
+ const result = wasm.Diff_removed(this.ffiValue);
222
+
223
+ try {
224
+ return new Schematic(diplomatRuntime.internalConstructor, result, []);
225
+ }
226
+
227
+ finally {
228
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
229
+ }
230
+ }
231
+
232
+ /**
233
+ * A new schematic containing only the blocks changed in this diff.
234
+ */
235
+ changed() {
236
+
237
+ const result = wasm.Diff_changed(this.ffiValue);
238
+
239
+ try {
240
+ return new Schematic(diplomatRuntime.internalConstructor, result, []);
241
+ }
242
+
243
+ finally {
244
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
245
+ }
246
+ }
247
+
248
+ /**
249
+ * A new schematic containing only the blocks swapped in this diff.
250
+ */
251
+ swapped() {
252
+
253
+ const result = wasm.Diff_swapped(this.ffiValue);
254
+
255
+ try {
256
+ return new Schematic(diplomatRuntime.internalConstructor, result, []);
257
+ }
258
+
259
+ finally {
260
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
261
+ }
262
+ }
263
+
264
+ /**
265
+ * A new schematic with marker blocks summarizing this diff.
266
+ */
267
+ markers() {
268
+
269
+ const result = wasm.Diff_markers(this.ffiValue);
270
+
271
+ try {
272
+ return new Schematic(diplomatRuntime.internalConstructor, result, []);
273
+ }
274
+
275
+ finally {
276
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
277
+ }
278
+ }
279
+
280
+ /**
281
+ * Render a diff overlay on top of an "after" GLB buffer, returning the
282
+ * new GLB as base64 (PORTING rule 6). Requires the `meshing` feature;
283
+ * errors with `Mesh` when compiled without it.
284
+ */
285
+ toOverlayGlbB64(afterGlb) {
286
+ let functionCleanupArena = new diplomatRuntime.CleanupArena();
287
+
288
+ const afterGlbSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.slice(wasm, afterGlb, "u8")));
289
+ const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
290
+
291
+ const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
292
+
293
+
294
+ const result = wasm.Diff_to_overlay_glb_b64(diplomatReceive.buffer, this.ffiValue, afterGlbSlice.ptr, write.buffer);
295
+
296
+ try {
297
+ if (!diplomatReceive.resultFlag) {
298
+ const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
299
+ throw new globalThis.Error('NucleationError.' + cause.value, { cause });
300
+ }
301
+ return write.readString8();
302
+ }
303
+
304
+ finally {
305
+ diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
306
+ functionCleanupArena.free();
307
+
308
+ diplomatReceive.free();
309
+ write.free();
310
+ }
311
+ }
312
+
313
+ constructor(symbol, ptr, selfEdge) {
314
+ return this.#internalConstructor(...arguments)
315
+ }
316
+ }
@@ -0,0 +1,28 @@
1
+ // generated by diplomat-tool
2
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
3
+
4
+ export type Dimensions_obj = {
5
+ x: number;
6
+ y: number;
7
+ z: number;
8
+ };
9
+
10
+
11
+
12
+ export class Dimensions {
13
+ get x(): number;
14
+ set x(value: number);
15
+ get y(): number;
16
+ set y(value: number);
17
+ get z(): number;
18
+ set z(value: number);
19
+ /** @internal */
20
+ static fromFields(structObj : Dimensions_obj) : Dimensions;
21
+
22
+ /**
23
+ * Create `Dimensions` from an object that contains all of `Dimensions`s fields.
24
+ * Optional fields do not need to be included in the provided object.
25
+ */
26
+ constructor(structObj: Dimensions_obj);
27
+
28
+ }
@@ -0,0 +1,28 @@
1
+ // generated by diplomat-tool
2
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
3
+
4
+ export type Dimensions_obj = {
5
+ x: number;
6
+ y: number;
7
+ z: number;
8
+ };
9
+
10
+
11
+
12
+ export class Dimensions {
13
+ get x(): number;
14
+ set x(value: number);
15
+ get y(): number;
16
+ set y(value: number);
17
+ get z(): number;
18
+ set z(value: number);
19
+ /** @internal */
20
+ static fromFields(structObj : Dimensions_obj) : Dimensions;
21
+
22
+ /**
23
+ * Create `Dimensions` from an object that contains all of `Dimensions`s fields.
24
+ * Optional fields do not need to be included in the provided object.
25
+ */
26
+ constructor(structObj: Dimensions_obj);
27
+
28
+ }
@@ -0,0 +1,130 @@
1
+ // generated by diplomat-tool
2
+ import wasm from "./diplomat-wasm.mjs";
3
+ import * as diplomatRuntime from "./diplomat-runtime.mjs";
4
+
5
+
6
+
7
+ export class Dimensions {
8
+ #x;
9
+ get x() {
10
+ return this.#x;
11
+ }
12
+ set x(value){
13
+ this.#x = value;
14
+ }
15
+ #y;
16
+ get y() {
17
+ return this.#y;
18
+ }
19
+ set y(value){
20
+ this.#y = value;
21
+ }
22
+ #z;
23
+ get z() {
24
+ return this.#z;
25
+ }
26
+ set z(value){
27
+ this.#z = value;
28
+ }
29
+ /** @internal */
30
+ static fromFields(structObj) {
31
+ return new Dimensions(structObj);
32
+ }
33
+
34
+ #internalConstructor(structObj) {
35
+ if (typeof structObj !== "object") {
36
+ throw new Error("Dimensions's constructor takes an object of Dimensions's fields.");
37
+ }
38
+
39
+ if ("x" in structObj) {
40
+ this.#x = structObj.x;
41
+ } else {
42
+ throw new Error("Missing required field x.");
43
+ }
44
+
45
+ if ("y" in structObj) {
46
+ this.#y = structObj.y;
47
+ } else {
48
+ throw new Error("Missing required field y.");
49
+ }
50
+
51
+ if ("z" in structObj) {
52
+ this.#z = structObj.z;
53
+ } else {
54
+ throw new Error("Missing required field z.");
55
+ }
56
+
57
+ return this;
58
+ }
59
+
60
+ // Return this struct in FFI function friendly format.
61
+ // Returns an array that can be expanded with spread syntax (...)
62
+ _intoFFI(
63
+ dst,
64
+ functionCleanupArena,
65
+ appendArrayMap
66
+ ) {
67
+
68
+ this._writeToArrayBuffer(wasm.memory.buffer, dst, functionCleanupArena, appendArrayMap);
69
+
70
+ return dst;
71
+ }
72
+
73
+ static get _sizeBytes() {
74
+ return 12;
75
+ }
76
+
77
+ /// Currently unused, we may want to use later on though:
78
+ static get _sizeAlign() {
79
+ return 4;
80
+ }
81
+
82
+ static _fromSuppliedValue(internalConstructor, obj) {
83
+ if (internalConstructor !== diplomatRuntime.internalConstructor) {
84
+ throw new Error("_fromSuppliedValue cannot be called externally.");
85
+ }
86
+
87
+ if (obj instanceof Dimensions) {
88
+ return obj;
89
+ }
90
+
91
+ return Dimensions.fromFields(obj);
92
+ }
93
+
94
+ _writeToArrayBuffer(
95
+ arrayBuffer,
96
+ offset,
97
+ functionCleanupArena,
98
+ appendArrayMap
99
+ ) {
100
+ diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#x, Int32Array);
101
+ diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#y, Int32Array);
102
+ diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 8, this.#z, Int32Array);
103
+ }
104
+
105
+ // This struct contains borrowed fields, so this takes in a list of
106
+ // "edges" corresponding to where each lifetime's data may have been borrowed from
107
+ // and passes it down to individual fields containing the borrow.
108
+ // This method does not attempt to handle any dependencies between lifetimes, the caller
109
+ // should handle this when constructing edge arrays.
110
+ static _fromFFI(internalConstructor, ptr) {
111
+ ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
112
+ if (internalConstructor !== diplomatRuntime.internalConstructor) {
113
+ throw new Error("Dimensions._fromFFI is not meant to be called externally. Please use the default constructor.");
114
+ }
115
+ let structObj = {};
116
+ const xDeref = (new Int32Array(wasm.memory.buffer, ptr, 1))[0];
117
+ structObj.x = xDeref;
118
+ const yDeref = (new Int32Array(wasm.memory.buffer, ptr + 4, 1))[0];
119
+ structObj.y = yDeref;
120
+ const zDeref = (new Int32Array(wasm.memory.buffer, ptr + 8, 1))[0];
121
+ structObj.z = zDeref;
122
+
123
+ return new Dimensions(structObj);
124
+ }
125
+
126
+
127
+ constructor(structObj) {
128
+ return this.#internalConstructor(...arguments)
129
+ }
130
+ }