@holoscript/core 6.0.4 → 6.1.2

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 (351) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -3
  3. package/bin/holoscript.cjs +3 -0
  4. package/dist/GLTFPipeline-SFIORFJU.js +16 -0
  5. package/dist/GLTFPipeline-VNNDPONV.cjs +37 -0
  6. package/dist/{HoloScriptPlusParser-BN6KVRCM.js → HoloScriptPlusParser-7FBIFUFC.js} +6 -5
  7. package/dist/{HoloScriptPlusParser-NC5FE6AL.cjs → HoloScriptPlusParser-A2W7OCN2.cjs} +17 -16
  8. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  9. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  10. package/dist/{USDZExporter-UWGWNMMD.cjs → USDZExporter-3FWJ25JI.cjs} +344 -16
  11. package/dist/{USDZExporter-NTMBNTDB.js → USDZExporter-D2HQLQYK.js} +344 -16
  12. package/dist/agents/index.cjs +19 -0
  13. package/dist/agents/index.d.ts +100 -0
  14. package/dist/agents/index.js +17 -0
  15. package/dist/chunk-22W6NGYN.js +725 -0
  16. package/dist/{chunk-5OEOHAAW.cjs → chunk-27MPVJVZ.cjs} +64 -28
  17. package/dist/{chunk-RVYPEYPX.js → chunk-2A7FURVO.js} +44 -8
  18. package/dist/{chunk-XCWFGZAA.js → chunk-2B7WVIDZ.js} +11 -8
  19. package/dist/{chunk-NDQNIJEH.js → chunk-2BSMSUCE.js} +250 -24
  20. package/dist/chunk-2HLIGOKU.cjs +5546 -0
  21. package/dist/{chunk-EONILVMF.js → chunk-2M2DPHKB.js} +4 -4
  22. package/dist/{chunk-G7CT3EMP.cjs → chunk-2YSNA2F2.cjs} +319 -47
  23. package/dist/{chunk-IWI6J7FX.js → chunk-33XCOVE3.js} +5 -5
  24. package/dist/chunk-3FOKASKO.cjs +348 -0
  25. package/dist/{chunk-DXJQDCFL.js → chunk-4C57PR42.js} +3 -3
  26. package/dist/{chunk-MPXBVFHQ.js → chunk-4N4SXXWF.js} +4 -3
  27. package/dist/chunk-4PDEPEQW.cjs +41 -0
  28. package/dist/chunk-4R6HPSHJ.js +2176 -0
  29. package/dist/chunk-4R6SBXDB.js +45 -0
  30. package/dist/chunk-4SY77NA4.cjs +413 -0
  31. package/dist/{chunk-YCXFCXDS.js → chunk-4UUKPCY4.js} +668 -110
  32. package/dist/{chunk-LGGRPKTV.cjs → chunk-52ULD552.cjs} +114 -35
  33. package/dist/{chunk-L4G4RLXX.js → chunk-5CKA5SXU.js} +438 -22
  34. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  35. package/dist/{chunk-FF3Q7ADR.js → chunk-5JEU52DW.js} +5 -3
  36. package/dist/chunk-5N54COB6.cjs +327 -0
  37. package/dist/chunk-5S7RKFGR.cjs +446 -0
  38. package/dist/{chunk-KED34ILP.js → chunk-6ASWLXXN.js} +21 -9
  39. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  40. package/dist/{chunk-CAUCGUEA.cjs → chunk-6EX3I5P4.cjs} +6 -6
  41. package/dist/chunk-6FGQNDR4.js +5731 -0
  42. package/dist/{chunk-72EQECGT.cjs → chunk-6KMK2UXT.cjs} +122 -46
  43. package/dist/{chunk-G4VZTCIB.js → chunk-6L4VE27M.js} +33 -23
  44. package/dist/{chunk-ATSKSYVE.cjs → chunk-6S6TKNEA.cjs} +6478 -1738
  45. package/dist/chunk-77V4GTCA.js +596 -0
  46. package/dist/{chunk-ZP4D3CSX.cjs → chunk-7AD52FRS.cjs} +16 -16
  47. package/dist/chunk-A6KINLZJ.js +236 -0
  48. package/dist/chunk-AIA52I7T.cjs +543 -0
  49. package/dist/chunk-AIX25INK.cjs +602 -0
  50. package/dist/{chunk-B5TCIAPQ.cjs → chunk-AO4I2Z7M.cjs} +17 -18
  51. package/dist/{chunk-Q5SJOGHQ.cjs → chunk-BPICAGBV.cjs} +324 -199
  52. package/dist/chunk-BRQJKJGT.cjs +20 -0
  53. package/dist/{chunk-3FXV5S25.cjs → chunk-C37BHB7N.cjs} +6 -3
  54. package/dist/{chunk-XUTX5CBW.js → chunk-CBJY23VL.js} +3 -3
  55. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  56. package/dist/{chunk-XXINBTZK.cjs → chunk-DIL6DDDN.cjs} +101 -45
  57. package/dist/chunk-DMXC24WV.js +404 -0
  58. package/dist/{chunk-PMGODDJA.cjs → chunk-DTGBOSEM.cjs} +12 -12
  59. package/dist/chunk-E7JP3BS3.cjs +61 -0
  60. package/dist/{chunk-HJJLD366.js → chunk-EKBKLK7P.js} +3 -3
  61. package/dist/chunk-EKYL4PE3.cjs +404 -0
  62. package/dist/{chunk-UPJBDCVF.js → chunk-EMMC5CSQ.js} +12 -8
  63. package/dist/{chunk-GGHSW2NN.js → chunk-EOBB6A4B.js} +6389 -1718
  64. package/dist/chunk-EOFNVCM6.js +325 -0
  65. package/dist/{chunk-FHQVYCH2.js → chunk-ER4GATIU.js} +7 -7
  66. package/dist/{chunk-N5FTS757.cjs → chunk-EXKSFGSX.cjs} +7 -148
  67. package/dist/{chunk-LK5IAVH6.cjs → chunk-EXUP2BUM.cjs} +27 -27
  68. package/dist/chunk-FDSGHPAK.js +130 -0
  69. package/dist/chunk-FEWUHQNM.cjs +144 -0
  70. package/dist/{chunk-5TOFIR6L.js → chunk-FGGJQRLZ.js} +5 -142
  71. package/dist/chunk-FHP6LXJS.js +415 -0
  72. package/dist/{chunk-7LCYLPW2.cjs → chunk-FJPADH77.cjs} +7 -4
  73. package/dist/{chunk-T36DDXSF.js → chunk-FXKTYFYA.js} +150 -25
  74. package/dist/chunk-G2LS3RFO.js +623 -0
  75. package/dist/chunk-GCMWDSBZ.cjs +729 -0
  76. package/dist/chunk-GJNCFRJU.cjs +125 -0
  77. package/dist/{chunk-Q4QX3AET.cjs → chunk-GMP623FG.cjs} +16 -13
  78. package/dist/{chunk-XD6IYDUX.js → chunk-GN3KDX4W.js} +119 -43
  79. package/dist/{chunk-QLEAOI3Q.cjs → chunk-GQYKQSTC.cjs} +10 -10
  80. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  81. package/dist/chunk-GZG4KA4E.js +529 -0
  82. package/dist/{chunk-BND3ST2K.cjs → chunk-H3MGK7TX.cjs} +42 -32
  83. package/dist/{chunk-XRKWN5PL.cjs → chunk-H5DZIHJP.cjs} +14 -18
  84. package/dist/{chunk-Z34RLXRA.cjs → chunk-HANL7K2Q.cjs} +65 -50
  85. package/dist/{chunk-3SAK5KFL.cjs → chunk-HCCQLAA4.cjs} +2 -11
  86. package/dist/{chunk-LXJ4667L.cjs → chunk-HGVXZDSK.cjs} +108 -20
  87. package/dist/{chunk-3FJCK5XA.js → chunk-HRODTEEO.js} +30 -10
  88. package/dist/{chunk-HQUEA5R6.cjs → chunk-HZCQO4JM.cjs} +6 -6
  89. package/dist/{chunk-S565K7NK.js → chunk-I2O7TW6B.js} +12 -8
  90. package/dist/chunk-IHESJZSW.js +4490 -0
  91. package/dist/{chunk-FSF7EQVA.cjs → chunk-IRWWS72C.cjs} +63 -22
  92. package/dist/{chunk-5O6TQC6M.cjs → chunk-IVIA7K75.cjs} +689 -127
  93. package/dist/chunk-IVY74O6C.js +247 -0
  94. package/dist/chunk-J32ZJZJH.js +554 -0
  95. package/dist/chunk-J56PTA46.cjs +639 -0
  96. package/dist/chunk-JD7CIZ33.js +1949 -0
  97. package/dist/{chunk-T7LEXZUZ.cjs → chunk-JIYN45TV.cjs} +14 -15
  98. package/dist/{chunk-FFKU7BTK.cjs → chunk-KHPCJRI3.cjs} +24 -21
  99. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  100. package/dist/chunk-KPJL34Y7.cjs +186 -0
  101. package/dist/{chunk-HE7ULERA.cjs → chunk-KQTPCYTG.cjs} +128 -44
  102. package/dist/{chunk-OFKWH2IP.js → chunk-KX76JUQY.js} +3 -3
  103. package/dist/{chunk-33LSUQDD.cjs → chunk-L63H3SQ4.cjs} +43 -31
  104. package/dist/{chunk-K6EKD26I.js → chunk-LAOCQJ2M.js} +64 -8
  105. package/dist/chunk-LM2VU56C.cjs +37 -0
  106. package/dist/chunk-M56JSP4A.js +400 -0
  107. package/dist/chunk-MBOOR7X4.js +18 -0
  108. package/dist/{chunk-XWPNTWDN.cjs → chunk-MJVIRCUV.cjs} +31 -27
  109. package/dist/{chunk-SDAMZIRE.js → chunk-MSMIFMBL.js} +135 -18
  110. package/dist/{chunk-56IF4NTA.js → chunk-MXFUTKCO.js} +18 -18
  111. package/dist/{chunk-6UEHYZ7V.cjs → chunk-MXJ5SS53.cjs} +447 -31
  112. package/dist/chunk-MYY4PMWX.cjs +264 -0
  113. package/dist/chunk-N75IH2HY.js +258 -0
  114. package/dist/{chunk-GVUR45UF.cjs → chunk-NG77ATEW.cjs} +7 -6
  115. package/dist/chunk-NW5G5FBQ.js +215 -0
  116. package/dist/{chunk-E3FWRT3Z.js → chunk-OEFY723R.js} +28 -13
  117. package/dist/chunk-OEV5RMZO.cjs +3042 -0
  118. package/dist/{chunk-X4ZF6CNE.cjs → chunk-OIQYIIO3.cjs} +7 -7
  119. package/dist/{chunk-2CWOLHTE.js → chunk-OL46QLBJ.js} +3 -11
  120. package/dist/chunk-OPZ7XDDI.js +487 -0
  121. package/dist/chunk-OSYNRVOV.cjs +243 -0
  122. package/dist/{chunk-TEWCN33Y.js → chunk-P7YIA5LN.js} +91 -7
  123. package/dist/chunk-PGANYCAG.cjs +220 -0
  124. package/dist/{chunk-CS2EMTGF.js → chunk-QAVXL2IH.js} +62 -21
  125. package/dist/{chunk-T4NKMBDL.js → chunk-QCCBXSCE.js} +1666 -756
  126. package/dist/{chunk-F4IULT7N.js → chunk-QPOQ7VPI.js} +16 -13
  127. package/dist/{chunk-6XSERL6L.js → chunk-QTPMJRGS.js} +3108 -2827
  128. package/dist/{chunk-F3HH56EB.cjs → chunk-QWNQ523V.cjs} +1730 -823
  129. package/dist/{chunk-R7MA7QWV.js → chunk-R3IVNY6P.js} +102 -23
  130. package/dist/chunk-R75BSDH7.cjs +50 -0
  131. package/dist/chunk-RAXUF5DF.cjs +2196 -0
  132. package/dist/{chunk-BF2235SI.cjs → chunk-RMHC2VG7.cjs} +2876 -2592
  133. package/dist/chunk-RUXGBKPS.cjs +4517 -0
  134. package/dist/{chunk-UERJ3YJV.js → chunk-S5IFXW6E.js} +113 -9
  135. package/dist/{chunk-27LWW5FU.cjs → chunk-S6YWHCKV.cjs} +5 -5
  136. package/dist/{chunk-WB4Z63GG.js → chunk-SIEXCILW.js} +3 -3
  137. package/dist/{chunk-CLYEIWA5.cjs → chunk-SLU6UPJI.cjs} +5 -3
  138. package/dist/{chunk-LZ266PCM.cjs → chunk-T5J7ZKP3.cjs} +446 -60
  139. package/dist/chunk-TDCNJHWO.js +341 -0
  140. package/dist/{chunk-IHOUYQIA.js → chunk-TG7O4WBC.js} +5 -5
  141. package/dist/chunk-THCK6ECW.js +2085 -0
  142. package/dist/chunk-TJHVSBP2.js +439 -0
  143. package/dist/chunk-TK74TR4H.js +5541 -0
  144. package/dist/{chunk-CDPGV4DN.js → chunk-U4NBQJBY.js} +14 -15
  145. package/dist/{chunk-NOZZ46QU.js → chunk-UD3DSHZM.js} +10 -14
  146. package/dist/chunk-UDMYRFDZ.js +3038 -0
  147. package/dist/{chunk-WDW67DZB.cjs → chunk-UOIGFQXC.cjs} +90 -68
  148. package/dist/{chunk-BU7VWW2K.js → chunk-URG2SJLK.js} +14 -15
  149. package/dist/{chunk-EQV4R3EV.cjs → chunk-V73NPPTM.cjs} +152 -35
  150. package/dist/chunk-VECQYRXL.js +474 -0
  151. package/dist/chunk-VEXPG4WN.js +1989 -0
  152. package/dist/{chunk-LDP5OK6G.js → chunk-VMLKSV26.js} +5 -5
  153. package/dist/{chunk-5BGSECRJ.cjs → chunk-VSK7W3O5.cjs} +47 -27
  154. package/dist/chunk-VVKVQZI6.js +55 -0
  155. package/dist/{chunk-YQK5JNFK.js → chunk-W55Z7QIX.js} +103 -15
  156. package/dist/{chunk-KSGXLT74.cjs → chunk-W6P2GBHH.cjs} +3 -3
  157. package/dist/{chunk-IBDG74G2.cjs → chunk-W6RW64BB.cjs} +7 -7
  158. package/dist/chunk-WDT3JTGM.cjs +483 -0
  159. package/dist/{chunk-HPS76H7Q.js → chunk-WKX5AMOY.js} +3 -3
  160. package/dist/chunk-WNNE3PO3.js +34 -0
  161. package/dist/{chunk-XG23EUQX.cjs → chunk-WRLUBRKS.cjs} +538 -312
  162. package/dist/{chunk-IFNQFCTM.js → chunk-WRNEH5MO.js} +79 -8
  163. package/dist/{chunk-54FHG2MX.js → chunk-WRWEX5ZF.js} +7 -4
  164. package/dist/{chunk-KCQ5NDYC.cjs → chunk-X3GJPRVK.cjs} +154 -80
  165. package/dist/{chunk-7AGYRWKW.cjs → chunk-XFXGA5IW.cjs} +126 -22
  166. package/dist/{chunk-TQSZUOW5.cjs → chunk-XHIV6326.cjs} +4 -4
  167. package/dist/chunk-XJAN7CZG.cjs +432 -0
  168. package/dist/chunk-XL6INWKT.js +121 -0
  169. package/dist/{chunk-E3UALNFA.js → chunk-XMWZG36H.js} +4 -4
  170. package/dist/{chunk-BKIGPPVM.js → chunk-XSFNHP2E.js} +6 -3
  171. package/dist/{chunk-H5Z7NASB.js → chunk-XT6JY5W5.js} +25 -3
  172. package/dist/chunk-XXZJEFKW.cjs +490 -0
  173. package/dist/chunk-Y3MWXQSB.cjs +5737 -0
  174. package/dist/chunk-YF2I3MV3.js +46 -0
  175. package/dist/{chunk-V3NN3HPP.js → chunk-YIMN575O.js} +437 -52
  176. package/dist/chunk-YIVFJNYV.js +176 -0
  177. package/dist/{chunk-MD6KDHVE.cjs → chunk-YKGPCZEE.cjs} +10 -10
  178. package/dist/chunk-YQELFNJV.js +39 -0
  179. package/dist/chunk-Z5XMPRNC.cjs +5390 -0
  180. package/dist/{chunk-3FYZOR7S.cjs → chunk-ZDSYWBIE.cjs} +18 -18
  181. package/dist/{chunk-6TZPZCOJ.cjs → chunk-ZKSS47EV.cjs} +24 -19
  182. package/dist/chunk-ZUL5AVTX.cjs +1993 -0
  183. package/dist/chunk-ZXBZVXDW.js +5386 -0
  184. package/dist/{chunk-DMG7C4H2.js → chunk-ZZ7RO2UQ.js} +312 -44
  185. package/dist/cli/holoscript-runner.cjs +200 -204
  186. package/dist/cli/holoscript-runner.js +144 -148
  187. package/dist/codebase/index.cjs +1 -1
  188. package/dist/codebase/index.js +1 -1
  189. package/dist/compiler/agent-inference.cjs +10 -7
  190. package/dist/compiler/agent-inference.js +6 -3
  191. package/dist/compiler/android-xr.cjs +12 -7
  192. package/dist/compiler/android-xr.js +10 -5
  193. package/dist/compiler/android.cjs +12 -8
  194. package/dist/compiler/android.js +10 -6
  195. package/dist/compiler/ar.cjs +9 -6
  196. package/dist/compiler/ar.js +7 -4
  197. package/dist/compiler/babylon.cjs +12 -8
  198. package/dist/compiler/babylon.js +11 -7
  199. package/dist/compiler/business-quest.cjs +43 -0
  200. package/dist/compiler/business-quest.js +4 -0
  201. package/dist/compiler/coco.cjs +1 -1
  202. package/dist/compiler/coco.js +1 -1
  203. package/dist/compiler/context.cjs +25 -0
  204. package/dist/compiler/context.d.ts +28 -0
  205. package/dist/compiler/context.js +8 -0
  206. package/dist/compiler/domain-block-utils.cjs +155 -152
  207. package/dist/compiler/domain-block-utils.js +7 -4
  208. package/dist/compiler/dtdl.cjs +10 -7
  209. package/dist/compiler/dtdl.js +7 -4
  210. package/dist/compiler/gltf-pipeline.cjs +9 -9
  211. package/dist/compiler/gltf-pipeline.js +2 -2
  212. package/dist/compiler/godot.cjs +9 -6
  213. package/dist/compiler/godot.js +8 -5
  214. package/dist/compiler/incremental.cjs +12 -7
  215. package/dist/compiler/incremental.js +7 -2
  216. package/dist/compiler/index.cjs +3550 -268
  217. package/dist/compiler/index.d.ts +404 -21
  218. package/dist/compiler/index.js +3280 -138
  219. package/dist/compiler/ios.cjs +11 -8
  220. package/dist/compiler/ios.js +9 -6
  221. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  222. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  223. package/dist/compiler/llm-provider-capabilities.js +8 -0
  224. package/dist/compiler/multi-layer.cjs +14 -10
  225. package/dist/compiler/multi-layer.js +13 -9
  226. package/dist/compiler/nodetoy.cjs +5 -5
  227. package/dist/compiler/nodetoy.js +2 -2
  228. package/dist/compiler/openxr.cjs +10 -6
  229. package/dist/compiler/openxr.js +9 -5
  230. package/dist/compiler/playcanvas.cjs +10 -7
  231. package/dist/compiler/playcanvas.js +9 -6
  232. package/dist/compiler/r3f.cjs +17 -13
  233. package/dist/compiler/r3f.d.ts +22 -0
  234. package/dist/compiler/r3f.js +12 -8
  235. package/dist/compiler/remotion.cjs +1 -1
  236. package/dist/compiler/remotion.js +1 -1
  237. package/dist/compiler/reproducibility.cjs +1 -1
  238. package/dist/compiler/reproducibility.js +1 -1
  239. package/dist/compiler/sdf.cjs +10 -7
  240. package/dist/compiler/sdf.js +8 -5
  241. package/dist/compiler/semantic-scene.cjs +1 -1
  242. package/dist/compiler/semantic-scene.js +1 -1
  243. package/dist/compiler/state.cjs +9 -5
  244. package/dist/compiler/state.js +7 -3
  245. package/dist/compiler/trait-composition.cjs +11 -7
  246. package/dist/compiler/trait-composition.js +7 -3
  247. package/dist/compiler/unity.cjs +10 -6
  248. package/dist/compiler/unity.js +9 -5
  249. package/dist/compiler/unreal.cjs +11 -7
  250. package/dist/compiler/unreal.js +9 -5
  251. package/dist/compiler/urdf.cjs +20 -13
  252. package/dist/compiler/urdf.js +8 -5
  253. package/dist/compiler/usd-physics.cjs +10 -7
  254. package/dist/compiler/usd-physics.js +7 -4
  255. package/dist/compiler/visionos.cjs +10 -6
  256. package/dist/compiler/visionos.js +9 -5
  257. package/dist/compiler/vrchat.cjs +10 -7
  258. package/dist/compiler/vrchat.js +8 -5
  259. package/dist/compiler/vrr.cjs +10 -7
  260. package/dist/compiler/vrr.js +8 -5
  261. package/dist/compiler/wasm.cjs +13 -10
  262. package/dist/compiler/wasm.js +8 -5
  263. package/dist/compiler/webgpu.cjs +9 -6
  264. package/dist/compiler/webgpu.js +8 -5
  265. package/dist/constants.d.ts +3 -2
  266. package/dist/coordinators/index.cjs +1266 -0
  267. package/dist/coordinators/index.d.ts +260 -0
  268. package/dist/coordinators/index.js +1259 -0
  269. package/dist/debugger.cjs +9 -7
  270. package/dist/debugger.js +7 -5
  271. package/dist/entries/interop.cjs +23 -21
  272. package/dist/entries/interop.js +5 -3
  273. package/dist/entries/scripting.cjs +18 -18
  274. package/dist/entries/scripting.js +8 -8
  275. package/dist/hololand/index.cjs +146 -0
  276. package/dist/hololand/index.d.ts +70 -0
  277. package/dist/hololand/index.js +5 -0
  278. package/dist/index.cjs +20332 -18121
  279. package/dist/index.d.ts +1477 -40
  280. package/dist/index.js +19451 -17638
  281. package/dist/math/tropical-spmv.cjs +45 -0
  282. package/dist/math/tropical-spmv.js +4 -0
  283. package/dist/math/vec3.cjs +14 -14
  284. package/dist/math/vec3.js +2 -2
  285. package/dist/{ml-dsa-PHCWUBPX.cjs → ml-dsa-FSKBTE3W.cjs} +177 -90
  286. package/dist/{ml-dsa-WYLJHJO6.js → ml-dsa-Z7JDKW4L.js} +158 -71
  287. package/dist/paper-0c-spike/index.cjs +150 -0
  288. package/dist/paper-0c-spike/index.d.ts +29 -0
  289. package/dist/paper-0c-spike/index.js +141 -0
  290. package/dist/parser.cjs +45 -11
  291. package/dist/parser.d.ts +11 -0
  292. package/dist/parser.js +10 -8
  293. package/dist/{playwright-RL6GY4F7.cjs → playwright-3AT3AKTV.cjs} +1985 -1985
  294. package/dist/{playwright-5OSAPTNH.js → playwright-VZPDVUEQ.js} +3 -3
  295. package/dist/reconstruction/index.cjs +153 -0
  296. package/dist/reconstruction/index.d.ts +105 -0
  297. package/dist/reconstruction/index.js +8 -0
  298. package/dist/runtime.cjs +7 -5
  299. package/dist/runtime.js +6 -4
  300. package/dist/self-improvement/index.cjs +563 -0
  301. package/dist/self-improvement/index.js +545 -0
  302. package/dist/storage/index.cjs +10 -9
  303. package/dist/storage/index.js +3 -2
  304. package/dist/testing.cjs +25 -0
  305. package/dist/testing.d.ts +70 -0
  306. package/dist/testing.js +4 -0
  307. package/dist/tools/index.d.ts +22 -1
  308. package/dist/traitDocs/traitDocs.cjs +33 -0
  309. package/dist/traitDocs/traitDocs.d.ts +69 -0
  310. package/dist/traitDocs/traitDocs.js +7 -0
  311. package/dist/traits/botanical-lotus.cjs +41 -0
  312. package/dist/traits/botanical-lotus.d.ts +172 -0
  313. package/dist/traits/botanical-lotus.js +4 -0
  314. package/dist/traits/engines/index.cjs +520 -0
  315. package/dist/traits/engines/index.js +380 -0
  316. package/dist/traits/index.cjs +17630 -7881
  317. package/dist/traits/index.d.ts +197 -0
  318. package/dist/traits/index.js +16573 -7193
  319. package/dist/traits/simulation-solver-factory.cjs +13 -0
  320. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  321. package/dist/traits/simulation-solver-factory.js +4 -0
  322. package/dist/traits/webcam-gaze.cjs +35 -0
  323. package/dist/traits/webcam-gaze.d.ts +17 -0
  324. package/dist/traits/webcam-gaze.js +4 -0
  325. package/dist/type-checker.cjs +6 -5
  326. package/dist/type-checker.js +4 -3
  327. package/dist/world/index.cjs +947 -0
  328. package/dist/world/index.d.ts +147 -0
  329. package/dist/world/index.js +939 -0
  330. package/dist/world-model/index.cjs +1446 -0
  331. package/dist/world-model/index.d.ts +119 -0
  332. package/dist/world-model/index.js +1414 -0
  333. package/dist/wot/index.cjs +29 -0
  334. package/dist/wot/index.js +4 -0
  335. package/package.json +153 -61
  336. package/dist/GLTFPipeline-DEN36VNK.js +0 -12
  337. package/dist/GLTFPipeline-YPCAK236.cjs +0 -33
  338. package/dist/chunk-4XSNJCLC.cjs +0 -1859
  339. package/dist/chunk-A7PIMZGU.js +0 -263
  340. package/dist/chunk-BWFJEM5A.js +0 -5419
  341. package/dist/chunk-CBJSLA2E.cjs +0 -5423
  342. package/dist/chunk-K3JDKWGI.cjs +0 -270
  343. package/dist/chunk-LSW7P7ML.js +0 -3675
  344. package/dist/chunk-MEASWI2Y.js +0 -126
  345. package/dist/chunk-NCUKG4SK.cjs +0 -3075
  346. package/dist/chunk-Q5JT3YML.cjs +0 -129
  347. package/dist/chunk-QGKNANZ3.js +0 -3071
  348. package/dist/chunk-S2N5TNMA.js +0 -1855
  349. package/dist/chunk-TSH3MSQU.cjs +0 -129
  350. package/dist/chunk-WGMEAYBG.js +0 -126
  351. package/dist/chunk-X6SEAXAX.cjs +0 -3681
@@ -1,7 +1,7 @@
1
- import { init_DomainBlockCompilerMixin, compileDomainBlocks, compileMaterialBlock } from './chunk-YQK5JNFK.js';
2
- import { createTestCompilerToken, init_CompilerBase, CompilerBase } from './chunk-6XSERL6L.js';
3
- import { __export, __esm } from './chunk-2CWOLHTE.js';
4
- import { ANSCapabilityPath } from '@holoscript/platform';
1
+ import { init_DomainBlockCompilerMixin, compileDomainBlocks, compileMaterialBlock } from './chunk-W55Z7QIX.js';
2
+ import { createTestCompilerToken, init_CompilerBase, CompilerBase } from './chunk-QTPMJRGS.js';
3
+ import { __export, __esm } from './chunk-OL46QLBJ.js';
4
+ import { ANSCapabilityPath } from '@holoscript/core-types/ans';
5
5
 
6
6
  // src/compiler/WASMCompiler.ts
7
7
  var WASMCompiler_exports = {};
@@ -23,11 +23,21 @@ function compileASTToWASM(ast, options) {
23
23
  const compiler = new WASMCompiler(options);
24
24
  return compiler.compileAST(ast);
25
25
  }
26
- var WASMCompiler, WASMCompiler_default;
26
+ var WASM_WAT_LIMITATIONS, WASM_BINARY_LIMITATIONS, WASMCompiler, WASMCompiler_default;
27
27
  var init_WASMCompiler = __esm({
28
28
  "src/compiler/WASMCompiler.ts"() {
29
29
  init_CompilerBase();
30
30
  init_DomainBlockCompilerMixin();
31
+ WASM_WAT_LIMITATIONS = [
32
+ "Emits WebAssembly Text Format scaffolding only.",
33
+ 'Does not return instantiable bytes unless format is set to "wasm".',
34
+ "Lowers trait/lifecycle/event hooks to deterministic host event calls, not arbitrary user code."
35
+ ];
36
+ WASM_BINARY_LIMITATIONS = [
37
+ "Returns an instantiable WebAssembly binary for the compiler-supported runtime subset.",
38
+ "Lowers trait/lifecycle/event hooks to deterministic host event calls, not arbitrary user code.",
39
+ "Does not run a general-purpose WAT parser for unsupported custom WAT extensions."
40
+ ];
31
41
  WASMCompiler = class extends CompilerBase {
32
42
  constructor(options = {}) {
33
43
  super();
@@ -54,15 +64,18 @@ var init_WASMCompiler = __esm({
54
64
  stringsSize: 0,
55
65
  totalSize: 0
56
66
  };
67
+ const { generateDocs, docsOptions, provenanceHash, ...wasmRest } = options;
68
+ this.docGenerationOptions = { generateDocs, docsOptions, provenanceHash };
69
+ const w = wasmRest;
57
70
  this.options = {
58
- format: options.format || "wat",
59
- debug: options.debug ?? false,
60
- memoryPages: options.memoryPages || 16,
71
+ format: w.format || "wat",
72
+ debug: w.debug ?? false,
73
+ memoryPages: w.memoryPages || 16,
61
74
  // 1MB default
62
- simd: options.simd ?? false,
63
- threads: options.threads ?? false,
64
- generateBindings: options.generateBindings ?? true,
65
- moduleName: options.moduleName || "holoscript"
75
+ simd: w.simd ?? false,
76
+ threads: w.threads ?? false,
77
+ generateBindings: w.generateBindings ?? true,
78
+ moduleName: w.moduleName || "holoscript"
66
79
  };
67
80
  }
68
81
  getRequiredCapability() {
@@ -75,8 +88,6 @@ var init_WASMCompiler = __esm({
75
88
  * Compile HoloComposition AST to WASM
76
89
  */
77
90
  compile(composition, agentToken, outputPath) {
78
- this.validateCompilerAccess(agentToken, outputPath);
79
- this.reset();
80
91
  this.validateCompilerAccess(agentToken, outputPath);
81
92
  this.reset();
82
93
  this.analyzeState(composition.state);
@@ -110,13 +121,19 @@ var init_WASMCompiler = __esm({
110
121
  );
111
122
  }
112
123
  const bindings = this.options.generateBindings ? this.generateBindings(composition) : "";
113
- return {
124
+ const wasm = this.options.format === "wasm" ? this.emitWASMBytes(this.lowerCompositionObjectUpdates(composition.objects || [])) : void 0;
125
+ const result = {
126
+ artifactKind: wasm ? "wasm-binary" : "wat-scaffold",
127
+ format: this.options.format,
114
128
  wat: this.lines.join("\n"),
129
+ ...wasm ? { wasm } : {},
115
130
  bindings,
116
131
  memoryLayout: this.memoryLayout,
117
132
  exports: this.exports,
118
- imports: this.imports
133
+ imports: this.imports,
134
+ limitations: wasm ? [...WASM_BINARY_LIMITATIONS] : [...WASM_WAT_LIMITATIONS]
119
135
  };
136
+ return this.withTripleOutputIfRequested(composition, result, this.docGenerationOptions);
120
137
  }
121
138
  /**
122
139
  * Compile HSPlusAST to WASM
@@ -128,12 +145,17 @@ var init_WASMCompiler = __esm({
128
145
  this.calculateMemoryLayout();
129
146
  this.emitModuleFromAST(ast);
130
147
  const bindings = this.options.generateBindings ? this.generateBindingsFromAST(ast) : "";
148
+ const wasm = this.options.format === "wasm" ? this.emitWASMBytes(this.lowerASTObjectUpdates(ast.root.children || [])) : void 0;
131
149
  return {
150
+ artifactKind: wasm ? "wasm-binary" : "wat-scaffold",
151
+ format: this.options.format,
132
152
  wat: this.lines.join("\n"),
153
+ ...wasm ? { wasm } : {},
133
154
  bindings,
134
155
  memoryLayout: this.memoryLayout,
135
156
  exports: this.exports,
136
- imports: this.imports
157
+ imports: this.imports,
158
+ limitations: wasm ? [...WASM_BINARY_LIMITATIONS] : [...WASM_WAT_LIMITATIONS]
137
159
  };
138
160
  }
139
161
  reset() {
@@ -416,6 +438,14 @@ var init_WASMCompiler = __esm({
416
438
  signature: `(${v.type}) -> void`
417
439
  });
418
440
  }
441
+ this.emit('(func $get_frame_count (export "get_frame_count") (result i32)');
442
+ this.emit(" (global.get $frame_count)");
443
+ this.emit(")");
444
+ this.exports.push({
445
+ name: "get_frame_count",
446
+ kind: "function",
447
+ signature: "() -> i32"
448
+ });
419
449
  this.emit("");
420
450
  }
421
451
  emitObjectFunctions() {
@@ -466,7 +496,8 @@ var init_WASMCompiler = __esm({
466
496
  this.emit(")");
467
497
  this.emit("");
468
498
  }
469
- emitUpdateFunction(_composition) {
499
+ emitUpdateFunction(composition) {
500
+ const objectUpdates = this.lowerCompositionObjectUpdates(composition.objects || []);
470
501
  this.emit(";; Main update function");
471
502
  this.emit('(func $update (export "update") (param $dt f32)');
472
503
  this.indent();
@@ -492,13 +523,14 @@ var init_WASMCompiler = __esm({
492
523
  const safeName = this.sanitizeName(obj.id);
493
524
  this.emit(`(func $update_object_${i} (param $dt f32)`);
494
525
  this.emit(` ;; Update logic for ${safeName}`);
495
- this.emit(" ;; (custom logic would be generated here based on traits/lifecycle)");
526
+ this.emitLoweredObjectUpdateBody(objectUpdates[i] || [], i);
496
527
  this.emit(")");
497
528
  }
498
529
  this.exports.push({ name: "update", kind: "function", signature: "(f32) -> void" });
499
530
  this.emit("");
500
531
  }
501
- emitUpdateFunctionFromAST(_ast) {
532
+ emitUpdateFunctionFromAST(ast) {
533
+ const objectUpdates = this.lowerASTObjectUpdates(ast.root.children || []);
502
534
  this.emit(";; Main update function");
503
535
  this.emit('(func $update (export "update") (param $dt f32)');
504
536
  this.indent();
@@ -524,11 +556,84 @@ var init_WASMCompiler = __esm({
524
556
  const safeName = this.sanitizeName(obj.id);
525
557
  this.emit(`(func $update_object_${i} (param $dt f32)`);
526
558
  this.emit(` ;; Update logic for ${safeName}`);
559
+ this.emitLoweredObjectUpdateBody(objectUpdates[i] || [], i);
527
560
  this.emit(")");
528
561
  }
529
562
  this.exports.push({ name: "update", kind: "function", signature: "(f32) -> void" });
530
563
  this.emit("");
531
564
  }
565
+ emitLoweredObjectUpdateBody(updates, objectIndex) {
566
+ if (updates.length === 0) {
567
+ this.emit(" ;; No WASM-lowerable trait/lifecycle/event hooks for this object");
568
+ return;
569
+ }
570
+ for (const update of updates) {
571
+ this.emit(` ;; ${this.escapeStringValue(update.label, "TypeScript")}`);
572
+ this.emit(` (call $emit_event (i32.const ${update.eventId}) (i32.const ${objectIndex}))`);
573
+ }
574
+ }
575
+ lowerCompositionObjectUpdates(objects) {
576
+ return objects.map((obj) => {
577
+ const events = [];
578
+ for (const trait of obj.traits || []) {
579
+ events.push(this.createLoweredUpdate(`trait:${trait.name}`));
580
+ }
581
+ for (const eventHandler of this.getUnknownArray(obj, "eventHandlers")) {
582
+ const event = this.getUnknownString(eventHandler, "event");
583
+ if (event) events.push(this.createLoweredUpdate(`event:${event}`));
584
+ }
585
+ for (const directive of this.getUnknownArray(obj, "directives")) {
586
+ const directiveType = this.getUnknownString(directive, "type");
587
+ const hook = this.getUnknownString(directive, "hook") || this.getUnknownString(directive, "name");
588
+ if (directiveType === "lifecycle" && hook) {
589
+ events.push(this.createLoweredUpdate(`lifecycle:${hook}`));
590
+ }
591
+ }
592
+ return events;
593
+ });
594
+ }
595
+ lowerASTObjectUpdates(nodes) {
596
+ return nodes.map((node) => {
597
+ const events = [];
598
+ for (const directive of node.directives || []) {
599
+ const directiveType = this.getUnknownString(directive, "type");
600
+ const name = this.getUnknownString(directive, "name") || this.getUnknownString(directive, "hook");
601
+ if (directiveType === "trait" && name) {
602
+ events.push(this.createLoweredUpdate(`trait:${name}`));
603
+ } else if (directiveType === "lifecycle" && name) {
604
+ events.push(this.createLoweredUpdate(`lifecycle:${name}`));
605
+ }
606
+ }
607
+ for (const [key] of Object.entries(node.properties || {})) {
608
+ if (key.startsWith("on_")) events.push(this.createLoweredUpdate(`event:${key}`));
609
+ }
610
+ return events;
611
+ });
612
+ }
613
+ createLoweredUpdate(label) {
614
+ return {
615
+ label,
616
+ eventId: this.stableEventId(label)
617
+ };
618
+ }
619
+ stableEventId(label) {
620
+ let hash = 2166136261;
621
+ for (let i = 0; i < label.length; i++) {
622
+ hash ^= label.charCodeAt(i);
623
+ hash = Math.imul(hash, 16777619);
624
+ }
625
+ return hash >>> 1;
626
+ }
627
+ getUnknownArray(source, key) {
628
+ if (!source || typeof source !== "object") return [];
629
+ const value = source[key];
630
+ return Array.isArray(value) ? value : [];
631
+ }
632
+ getUnknownString(source, key) {
633
+ if (!source || typeof source !== "object") return void 0;
634
+ const value = source[key];
635
+ return typeof value === "string" ? value : void 0;
636
+ }
532
637
  emitDataSections() {
533
638
  if (this.stringPool.size === 0) return;
534
639
  this.emit(";; Data sections");
@@ -695,6 +800,317 @@ var init_WASMCompiler = __esm({
695
800
  return this.generateBindings(minimalComposition);
696
801
  }
697
802
  // ===========================================================================
803
+ // WASM BINARY GENERATION
804
+ // ===========================================================================
805
+ emitWASMBytes(objectUpdates) {
806
+ const types = [];
807
+ const typeIndexes = /* @__PURE__ */ new Map();
808
+ const typeIndex = (params, results = []) => {
809
+ const key = `${params.join(",")}->${results.join(",")}`;
810
+ const existing = typeIndexes.get(key);
811
+ if (existing !== void 0) return existing;
812
+ const next = types.length;
813
+ types.push({ params, results });
814
+ typeIndexes.set(key, next);
815
+ return next;
816
+ };
817
+ const imports = [
818
+ { module: "env", name: "log_i32", typeIndex: typeIndex(["i32"]) },
819
+ { module: "env", name: "log_f32", typeIndex: typeIndex(["f32"]) },
820
+ { module: "env", name: "log_str", typeIndex: typeIndex(["i32", "i32"]) },
821
+ { module: "env", name: "emit_event", typeIndex: typeIndex(["i32", "i32"]) },
822
+ { module: "env", name: "get_time", typeIndex: typeIndex([], ["f64"]) }
823
+ ];
824
+ const functions = [];
825
+ const functionIndexes = /* @__PURE__ */ new Map();
826
+ const addFunction = (name, params, results, body) => {
827
+ functionIndexes.set(name, imports.length + functions.length);
828
+ functions.push({ name, typeIndex: typeIndex(params, results), body });
829
+ };
830
+ addFunction("init", [], [], () => this.binaryInitBody());
831
+ for (const stateVar of this.stateVars) {
832
+ const safeName = this.sanitizeName(stateVar.name);
833
+ addFunction(
834
+ `get_${safeName}`,
835
+ [],
836
+ [stateVar.type],
837
+ () => this.binaryStateGetterBody(stateVar)
838
+ );
839
+ addFunction(
840
+ `set_${safeName}`,
841
+ [stateVar.type],
842
+ [],
843
+ () => this.binaryStateSetterBody(stateVar)
844
+ );
845
+ }
846
+ addFunction("get_frame_count", [], ["i32"], () => [0, 35, ...this.encodeULEB(0), 11]);
847
+ addFunction("get_object_count", [], ["i32"], () => [0, 35, ...this.encodeULEB(3), 11]);
848
+ addFunction("is_object_active", ["i32"], ["i32"], () => this.binaryIsObjectActiveBody());
849
+ addFunction("set_object_active", ["i32", "i32"], [], () => this.binarySetObjectActiveBody());
850
+ addFunction(
851
+ "update",
852
+ ["f32"],
853
+ [],
854
+ () => this.binaryUpdateBody(functionIndexes, objectUpdates.length)
855
+ );
856
+ for (let i = 0; i < this.objects.length; i++) {
857
+ addFunction(
858
+ `update_object_${i}`,
859
+ ["f32"],
860
+ [],
861
+ () => this.binaryUpdateObjectBody(objectUpdates[i] || [], i)
862
+ );
863
+ }
864
+ const bytes = [
865
+ 0,
866
+ 97,
867
+ 115,
868
+ 109,
869
+ 1,
870
+ 0,
871
+ 0,
872
+ 0,
873
+ ...this.binarySection(1, this.binaryTypeSection(types)),
874
+ ...this.binarySection(2, this.binaryImportSection(imports)),
875
+ ...this.binarySection(3, this.binaryFunctionSection(functions)),
876
+ ...this.binarySection(5, this.binaryMemorySection()),
877
+ ...this.binarySection(6, this.binaryGlobalSection()),
878
+ ...this.binarySection(7, this.binaryExportSection(functions, imports.length)),
879
+ ...this.binarySection(10, this.binaryCodeSection(functions))
880
+ ];
881
+ return new Uint8Array(bytes);
882
+ }
883
+ binaryTypeSection(types) {
884
+ return this.binaryVector(
885
+ types.map((type) => [
886
+ 96,
887
+ ...this.binaryVector(type.params.map((param) => [this.wasmBinaryValueType(param)])),
888
+ ...this.binaryVector(type.results.map((result) => [this.wasmBinaryValueType(result)]))
889
+ ])
890
+ );
891
+ }
892
+ binaryImportSection(imports) {
893
+ return this.binaryVector(
894
+ imports.map((entry) => [
895
+ ...this.encodeString(entry.module),
896
+ ...this.encodeString(entry.name),
897
+ 0,
898
+ ...this.encodeULEB(entry.typeIndex)
899
+ ])
900
+ );
901
+ }
902
+ binaryFunctionSection(functions) {
903
+ return this.binaryVector(functions.map((fn) => this.encodeULEB(fn.typeIndex)));
904
+ }
905
+ binaryMemorySection() {
906
+ if (this.options.threads) {
907
+ return this.binaryVector([
908
+ [
909
+ 3,
910
+ ...this.encodeULEB(this.options.memoryPages),
911
+ ...this.encodeULEB(this.options.memoryPages * 2)
912
+ ]
913
+ ]);
914
+ }
915
+ return this.binaryVector([[0, ...this.encodeULEB(this.options.memoryPages)]]);
916
+ }
917
+ binaryGlobalSection() {
918
+ return this.binaryVector([
919
+ [127, 1, 65, ...this.encodeSLEB(0), 11],
920
+ [125, 1, 67, ...this.f32Bytes(0), 11],
921
+ [124, 1, 68, ...this.f64Bytes(0), 11],
922
+ [127, 0, 65, ...this.encodeSLEB(this.objects.length), 11]
923
+ ]);
924
+ }
925
+ binaryExportSection(functions, importedFunctionCount) {
926
+ const exports$1 = [
927
+ [...this.encodeString("memory"), 2, ...this.encodeULEB(0)],
928
+ ...functions.filter((fn) => !fn.name.startsWith("update_object_")).map((fn, index) => [
929
+ ...this.encodeString(fn.name),
930
+ 0,
931
+ ...this.encodeULEB(importedFunctionCount + index)
932
+ ])
933
+ ];
934
+ return this.binaryVector(exports$1);
935
+ }
936
+ binaryCodeSection(functions) {
937
+ return this.binaryVector(
938
+ functions.map((fn) => {
939
+ const body = fn.body();
940
+ return [...this.encodeULEB(body.length), ...body];
941
+ })
942
+ );
943
+ }
944
+ binaryInitBody() {
945
+ const body = [0];
946
+ for (const stateVar of this.stateVars) {
947
+ const offset = this.memoryLayout.stateOffset + stateVar.offset;
948
+ body.push(65, ...this.encodeSLEB(offset));
949
+ this.pushWASMConst(body, stateVar.type, stateVar.initialValue);
950
+ this.pushWASMStore(body, stateVar.type);
951
+ }
952
+ for (const obj of this.objects) {
953
+ const baseOffset = this.memoryLayout.objectsOffset + obj.offset;
954
+ this.pushI32StoreConst(body, baseOffset, obj.typeIndex);
955
+ this.pushI32StoreConst(body, baseOffset + 4, 1);
956
+ this.pushI32StoreConst(body, baseOffset + 8, -1);
957
+ }
958
+ body.push(11);
959
+ return body;
960
+ }
961
+ binaryStateGetterBody(stateVar) {
962
+ const offset = this.memoryLayout.stateOffset + stateVar.offset;
963
+ const body = [0, 65, ...this.encodeSLEB(offset)];
964
+ this.pushWASMLoad(body, stateVar.type);
965
+ body.push(11);
966
+ return body;
967
+ }
968
+ binaryStateSetterBody(stateVar) {
969
+ const offset = this.memoryLayout.stateOffset + stateVar.offset;
970
+ const body = [0, 65, ...this.encodeSLEB(offset), 32, 0];
971
+ this.pushWASMStore(body, stateVar.type);
972
+ body.push(11);
973
+ return body;
974
+ }
975
+ binaryIsObjectActiveBody() {
976
+ const body = [0];
977
+ this.pushObjectActiveAddress(body, 0);
978
+ body.push(40, 2, 0, 11);
979
+ return body;
980
+ }
981
+ binarySetObjectActiveBody() {
982
+ const body = [0];
983
+ this.pushObjectActiveAddress(body, 0);
984
+ body.push(32, 1, 54, 2, 0, 11);
985
+ return body;
986
+ }
987
+ binaryUpdateBody(functionIndexes, loweredObjectCount) {
988
+ const body = [0];
989
+ body.push(32, 0, 36, ...this.encodeULEB(1));
990
+ body.push(35, ...this.encodeULEB(0), 65, ...this.encodeSLEB(1), 106);
991
+ body.push(36, ...this.encodeULEB(0));
992
+ const isActiveIndex = functionIndexes.get("is_object_active");
993
+ if (isActiveIndex === void 0) throw new Error("missing is_object_active function index");
994
+ for (let i = 0; i < loweredObjectCount; i++) {
995
+ const updateObjectIndex = functionIndexes.get(`update_object_${i}`);
996
+ if (updateObjectIndex === void 0) continue;
997
+ body.push(65, ...this.encodeSLEB(i), 16, ...this.encodeULEB(isActiveIndex));
998
+ body.push(4, 64);
999
+ body.push(32, 0, 16, ...this.encodeULEB(updateObjectIndex));
1000
+ body.push(11);
1001
+ }
1002
+ body.push(11);
1003
+ return body;
1004
+ }
1005
+ binaryUpdateObjectBody(updates, objectIndex) {
1006
+ const body = [0];
1007
+ for (const update of updates) {
1008
+ body.push(
1009
+ 65,
1010
+ ...this.encodeSLEB(update.eventId),
1011
+ 65,
1012
+ ...this.encodeSLEB(objectIndex),
1013
+ 16,
1014
+ ...this.encodeULEB(3)
1015
+ );
1016
+ }
1017
+ body.push(11);
1018
+ return body;
1019
+ }
1020
+ pushObjectActiveAddress(body, localIndex) {
1021
+ body.push(65, ...this.encodeSLEB(this.memoryLayout.objectsOffset));
1022
+ body.push(32, ...this.encodeULEB(localIndex));
1023
+ body.push(65, ...this.encodeSLEB(64), 108);
1024
+ body.push(65, ...this.encodeSLEB(4), 106);
1025
+ body.push(106);
1026
+ }
1027
+ pushI32StoreConst(body, offset, value) {
1028
+ body.push(65, ...this.encodeSLEB(offset), 65, ...this.encodeSLEB(value), 54, 2, 0);
1029
+ }
1030
+ pushWASMConst(body, type, value) {
1031
+ switch (type) {
1032
+ case "i32":
1033
+ body.push(65, ...this.encodeSLEB(Number(value)));
1034
+ break;
1035
+ case "i64":
1036
+ body.push(66, ...this.encodeSLEB(value));
1037
+ break;
1038
+ case "f32":
1039
+ body.push(67, ...this.f32Bytes(Number(value)));
1040
+ break;
1041
+ case "f64":
1042
+ body.push(68, ...this.f64Bytes(Number(value)));
1043
+ break;
1044
+ }
1045
+ }
1046
+ pushWASMLoad(body, type) {
1047
+ const opcode = { i32: 40, i64: 41, f32: 42, f64: 43 }[type];
1048
+ const align = type === "i64" || type === "f64" ? 3 : 2;
1049
+ body.push(opcode, align, 0);
1050
+ }
1051
+ pushWASMStore(body, type) {
1052
+ const opcode = { i32: 54, i64: 55, f32: 56, f64: 57 }[type];
1053
+ const align = type === "i64" || type === "f64" ? 3 : 2;
1054
+ body.push(opcode, align, 0);
1055
+ }
1056
+ binarySection(id, payload) {
1057
+ return [id, ...this.encodeULEB(payload.length), ...payload];
1058
+ }
1059
+ binaryVector(items) {
1060
+ return [...this.encodeULEB(items.length), ...items.flat()];
1061
+ }
1062
+ encodeString(value) {
1063
+ const bytes = Array.from(new TextEncoder().encode(value));
1064
+ return [...this.encodeULEB(bytes.length), ...bytes];
1065
+ }
1066
+ encodeULEB(value) {
1067
+ const bytes = [];
1068
+ let next = value >>> 0;
1069
+ do {
1070
+ let byte = next & 127;
1071
+ next >>>= 7;
1072
+ if (next !== 0) byte |= 128;
1073
+ bytes.push(byte);
1074
+ } while (next !== 0);
1075
+ return bytes;
1076
+ }
1077
+ encodeSLEB(value) {
1078
+ const bytes = [];
1079
+ let next = BigInt(value);
1080
+ let more = true;
1081
+ while (more) {
1082
+ let byte = Number(next & 0x7fn);
1083
+ next >>= 7n;
1084
+ const signBitSet = (byte & 64) !== 0;
1085
+ more = !(next === 0n && !signBitSet || next === -1n && signBitSet);
1086
+ if (more) byte |= 128;
1087
+ bytes.push(byte);
1088
+ }
1089
+ return bytes;
1090
+ }
1091
+ f32Bytes(value) {
1092
+ const bytes = new Uint8Array(4);
1093
+ new DataView(bytes.buffer).setFloat32(0, value, true);
1094
+ return Array.from(bytes);
1095
+ }
1096
+ f64Bytes(value) {
1097
+ const bytes = new Uint8Array(8);
1098
+ new DataView(bytes.buffer).setFloat64(0, value, true);
1099
+ return Array.from(bytes);
1100
+ }
1101
+ wasmBinaryValueType(type) {
1102
+ switch (type) {
1103
+ case "i32":
1104
+ return 127;
1105
+ case "i64":
1106
+ return 126;
1107
+ case "f32":
1108
+ return 125;
1109
+ case "f64":
1110
+ return 124;
1111
+ }
1112
+ }
1113
+ // ===========================================================================
698
1114
  // HELPERS
699
1115
  // ===========================================================================
700
1116
  emit(line) {
@@ -763,5 +1179,5 @@ var init_WASMCompiler = __esm({
763
1179
  });
764
1180
 
765
1181
  export { WASMCompiler, WASMCompiler_default, WASMCompiler_exports, compileASTToWASM, compileToWASM, createWASMCompiler, init_WASMCompiler };
766
- //# sourceMappingURL=chunk-L4G4RLXX.js.map
767
- //# sourceMappingURL=chunk-L4G4RLXX.js.map
1182
+ //# sourceMappingURL=chunk-5CKA5SXU.js.map
1183
+ //# sourceMappingURL=chunk-5CKA5SXU.js.map