@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,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkLXJ4667L_cjs = require('./chunk-LXJ4667L.cjs');
4
- var chunkBF2235SI_cjs = require('./chunk-BF2235SI.cjs');
5
- var chunk3SAK5KFL_cjs = require('./chunk-3SAK5KFL.cjs');
6
- var platform = require('@holoscript/platform');
3
+ var chunkHGVXZDSK_cjs = require('./chunk-HGVXZDSK.cjs');
4
+ var chunkRMHC2VG7_cjs = require('./chunk-RMHC2VG7.cjs');
5
+ var chunkHCCQLAA4_cjs = require('./chunk-HCCQLAA4.cjs');
6
+ var ans = require('@holoscript/core-types/ans');
7
7
 
8
8
  // src/compiler/WASMCompiler.ts
9
9
  var WASMCompiler_exports = {};
10
- chunk3SAK5KFL_cjs.__export(WASMCompiler_exports, {
10
+ chunkHCCQLAA4_cjs.__export(WASMCompiler_exports, {
11
11
  WASMCompiler: () => exports.WASMCompiler,
12
12
  compileASTToWASM: () => compileASTToWASM,
13
13
  compileToWASM: () => compileToWASM,
@@ -19,18 +19,28 @@ function createWASMCompiler(options) {
19
19
  }
20
20
  function compileToWASM(composition, options) {
21
21
  const compiler = new exports.WASMCompiler(options);
22
- return compiler.compile(composition, chunkBF2235SI_cjs.createTestCompilerToken());
22
+ return compiler.compile(composition, chunkRMHC2VG7_cjs.createTestCompilerToken());
23
23
  }
24
24
  function compileASTToWASM(ast, options) {
25
25
  const compiler = new exports.WASMCompiler(options);
26
26
  return compiler.compileAST(ast);
27
27
  }
28
- exports.WASMCompiler = void 0; exports.WASMCompiler_default = void 0;
29
- var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
28
+ var WASM_WAT_LIMITATIONS, WASM_BINARY_LIMITATIONS; exports.WASMCompiler = void 0; exports.WASMCompiler_default = void 0;
29
+ var init_WASMCompiler = chunkHCCQLAA4_cjs.__esm({
30
30
  "src/compiler/WASMCompiler.ts"() {
31
- chunkBF2235SI_cjs.init_CompilerBase();
32
- chunkLXJ4667L_cjs.init_DomainBlockCompilerMixin();
33
- exports.WASMCompiler = class extends chunkBF2235SI_cjs.CompilerBase {
31
+ chunkRMHC2VG7_cjs.init_CompilerBase();
32
+ chunkHGVXZDSK_cjs.init_DomainBlockCompilerMixin();
33
+ WASM_WAT_LIMITATIONS = [
34
+ "Emits WebAssembly Text Format scaffolding only.",
35
+ 'Does not return instantiable bytes unless format is set to "wasm".',
36
+ "Lowers trait/lifecycle/event hooks to deterministic host event calls, not arbitrary user code."
37
+ ];
38
+ WASM_BINARY_LIMITATIONS = [
39
+ "Returns an instantiable WebAssembly binary for the compiler-supported runtime subset.",
40
+ "Lowers trait/lifecycle/event hooks to deterministic host event calls, not arbitrary user code.",
41
+ "Does not run a general-purpose WAT parser for unsupported custom WAT extensions."
42
+ ];
43
+ exports.WASMCompiler = class extends chunkRMHC2VG7_cjs.CompilerBase {
34
44
  constructor(options = {}) {
35
45
  super();
36
46
  this.compilerName = "WASMCompiler";
@@ -56,19 +66,22 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
56
66
  stringsSize: 0,
57
67
  totalSize: 0
58
68
  };
69
+ const { generateDocs, docsOptions, provenanceHash, ...wasmRest } = options;
70
+ this.docGenerationOptions = { generateDocs, docsOptions, provenanceHash };
71
+ const w = wasmRest;
59
72
  this.options = {
60
- format: options.format || "wat",
61
- debug: options.debug ?? false,
62
- memoryPages: options.memoryPages || 16,
73
+ format: w.format || "wat",
74
+ debug: w.debug ?? false,
75
+ memoryPages: w.memoryPages || 16,
63
76
  // 1MB default
64
- simd: options.simd ?? false,
65
- threads: options.threads ?? false,
66
- generateBindings: options.generateBindings ?? true,
67
- moduleName: options.moduleName || "holoscript"
77
+ simd: w.simd ?? false,
78
+ threads: w.threads ?? false,
79
+ generateBindings: w.generateBindings ?? true,
80
+ moduleName: w.moduleName || "holoscript"
68
81
  };
69
82
  }
70
83
  getRequiredCapability() {
71
- return platform.ANSCapabilityPath.WASM;
84
+ return ans.ANSCapabilityPath.WASM;
72
85
  }
73
86
  // ===========================================================================
74
87
  // MAIN COMPILATION
@@ -77,8 +90,6 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
77
90
  * Compile HoloComposition AST to WASM
78
91
  */
79
92
  compile(composition, agentToken, outputPath) {
80
- this.validateCompilerAccess(agentToken, outputPath);
81
- this.reset();
82
93
  this.validateCompilerAccess(agentToken, outputPath);
83
94
  this.reset();
84
95
  this.analyzeState(composition.state);
@@ -89,11 +100,11 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
89
100
  if (domainBlocks.length > 0) {
90
101
  this.emit("");
91
102
  this.emit(" ;; === v4.2 Domain Blocks ===");
92
- chunkLXJ4667L_cjs.compileDomainBlocks(
103
+ chunkHGVXZDSK_cjs.compileDomainBlocks(
93
104
  domainBlocks,
94
105
  {
95
106
  material: (block) => {
96
- const mat = chunkLXJ4667L_cjs.compileMaterialBlock(block);
107
+ const mat = chunkHGVXZDSK_cjs.compileMaterialBlock(block);
97
108
  this.emit(
98
109
  ` ;; Material: "${this.escapeStringValue(mat.name, "TypeScript")}" type=${mat.type}`
99
110
  );
@@ -112,13 +123,19 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
112
123
  );
113
124
  }
114
125
  const bindings = this.options.generateBindings ? this.generateBindings(composition) : "";
115
- return {
126
+ const wasm = this.options.format === "wasm" ? this.emitWASMBytes(this.lowerCompositionObjectUpdates(composition.objects || [])) : void 0;
127
+ const result = {
128
+ artifactKind: wasm ? "wasm-binary" : "wat-scaffold",
129
+ format: this.options.format,
116
130
  wat: this.lines.join("\n"),
131
+ ...wasm ? { wasm } : {},
117
132
  bindings,
118
133
  memoryLayout: this.memoryLayout,
119
134
  exports: this.exports,
120
- imports: this.imports
135
+ imports: this.imports,
136
+ limitations: wasm ? [...WASM_BINARY_LIMITATIONS] : [...WASM_WAT_LIMITATIONS]
121
137
  };
138
+ return this.withTripleOutputIfRequested(composition, result, this.docGenerationOptions);
122
139
  }
123
140
  /**
124
141
  * Compile HSPlusAST to WASM
@@ -130,12 +147,17 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
130
147
  this.calculateMemoryLayout();
131
148
  this.emitModuleFromAST(ast);
132
149
  const bindings = this.options.generateBindings ? this.generateBindingsFromAST(ast) : "";
150
+ const wasm = this.options.format === "wasm" ? this.emitWASMBytes(this.lowerASTObjectUpdates(ast.root.children || [])) : void 0;
133
151
  return {
152
+ artifactKind: wasm ? "wasm-binary" : "wat-scaffold",
153
+ format: this.options.format,
134
154
  wat: this.lines.join("\n"),
155
+ ...wasm ? { wasm } : {},
135
156
  bindings,
136
157
  memoryLayout: this.memoryLayout,
137
158
  exports: this.exports,
138
- imports: this.imports
159
+ imports: this.imports,
160
+ limitations: wasm ? [...WASM_BINARY_LIMITATIONS] : [...WASM_WAT_LIMITATIONS]
139
161
  };
140
162
  }
141
163
  reset() {
@@ -418,6 +440,14 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
418
440
  signature: `(${v.type}) -> void`
419
441
  });
420
442
  }
443
+ this.emit('(func $get_frame_count (export "get_frame_count") (result i32)');
444
+ this.emit(" (global.get $frame_count)");
445
+ this.emit(")");
446
+ this.exports.push({
447
+ name: "get_frame_count",
448
+ kind: "function",
449
+ signature: "() -> i32"
450
+ });
421
451
  this.emit("");
422
452
  }
423
453
  emitObjectFunctions() {
@@ -468,7 +498,8 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
468
498
  this.emit(")");
469
499
  this.emit("");
470
500
  }
471
- emitUpdateFunction(_composition) {
501
+ emitUpdateFunction(composition) {
502
+ const objectUpdates = this.lowerCompositionObjectUpdates(composition.objects || []);
472
503
  this.emit(";; Main update function");
473
504
  this.emit('(func $update (export "update") (param $dt f32)');
474
505
  this.indent();
@@ -494,13 +525,14 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
494
525
  const safeName = this.sanitizeName(obj.id);
495
526
  this.emit(`(func $update_object_${i} (param $dt f32)`);
496
527
  this.emit(` ;; Update logic for ${safeName}`);
497
- this.emit(" ;; (custom logic would be generated here based on traits/lifecycle)");
528
+ this.emitLoweredObjectUpdateBody(objectUpdates[i] || [], i);
498
529
  this.emit(")");
499
530
  }
500
531
  this.exports.push({ name: "update", kind: "function", signature: "(f32) -> void" });
501
532
  this.emit("");
502
533
  }
503
- emitUpdateFunctionFromAST(_ast) {
534
+ emitUpdateFunctionFromAST(ast) {
535
+ const objectUpdates = this.lowerASTObjectUpdates(ast.root.children || []);
504
536
  this.emit(";; Main update function");
505
537
  this.emit('(func $update (export "update") (param $dt f32)');
506
538
  this.indent();
@@ -526,11 +558,84 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
526
558
  const safeName = this.sanitizeName(obj.id);
527
559
  this.emit(`(func $update_object_${i} (param $dt f32)`);
528
560
  this.emit(` ;; Update logic for ${safeName}`);
561
+ this.emitLoweredObjectUpdateBody(objectUpdates[i] || [], i);
529
562
  this.emit(")");
530
563
  }
531
564
  this.exports.push({ name: "update", kind: "function", signature: "(f32) -> void" });
532
565
  this.emit("");
533
566
  }
567
+ emitLoweredObjectUpdateBody(updates, objectIndex) {
568
+ if (updates.length === 0) {
569
+ this.emit(" ;; No WASM-lowerable trait/lifecycle/event hooks for this object");
570
+ return;
571
+ }
572
+ for (const update of updates) {
573
+ this.emit(` ;; ${this.escapeStringValue(update.label, "TypeScript")}`);
574
+ this.emit(` (call $emit_event (i32.const ${update.eventId}) (i32.const ${objectIndex}))`);
575
+ }
576
+ }
577
+ lowerCompositionObjectUpdates(objects) {
578
+ return objects.map((obj) => {
579
+ const events = [];
580
+ for (const trait of obj.traits || []) {
581
+ events.push(this.createLoweredUpdate(`trait:${trait.name}`));
582
+ }
583
+ for (const eventHandler of this.getUnknownArray(obj, "eventHandlers")) {
584
+ const event = this.getUnknownString(eventHandler, "event");
585
+ if (event) events.push(this.createLoweredUpdate(`event:${event}`));
586
+ }
587
+ for (const directive of this.getUnknownArray(obj, "directives")) {
588
+ const directiveType = this.getUnknownString(directive, "type");
589
+ const hook = this.getUnknownString(directive, "hook") || this.getUnknownString(directive, "name");
590
+ if (directiveType === "lifecycle" && hook) {
591
+ events.push(this.createLoweredUpdate(`lifecycle:${hook}`));
592
+ }
593
+ }
594
+ return events;
595
+ });
596
+ }
597
+ lowerASTObjectUpdates(nodes) {
598
+ return nodes.map((node) => {
599
+ const events = [];
600
+ for (const directive of node.directives || []) {
601
+ const directiveType = this.getUnknownString(directive, "type");
602
+ const name = this.getUnknownString(directive, "name") || this.getUnknownString(directive, "hook");
603
+ if (directiveType === "trait" && name) {
604
+ events.push(this.createLoweredUpdate(`trait:${name}`));
605
+ } else if (directiveType === "lifecycle" && name) {
606
+ events.push(this.createLoweredUpdate(`lifecycle:${name}`));
607
+ }
608
+ }
609
+ for (const [key] of Object.entries(node.properties || {})) {
610
+ if (key.startsWith("on_")) events.push(this.createLoweredUpdate(`event:${key}`));
611
+ }
612
+ return events;
613
+ });
614
+ }
615
+ createLoweredUpdate(label) {
616
+ return {
617
+ label,
618
+ eventId: this.stableEventId(label)
619
+ };
620
+ }
621
+ stableEventId(label) {
622
+ let hash = 2166136261;
623
+ for (let i = 0; i < label.length; i++) {
624
+ hash ^= label.charCodeAt(i);
625
+ hash = Math.imul(hash, 16777619);
626
+ }
627
+ return hash >>> 1;
628
+ }
629
+ getUnknownArray(source, key) {
630
+ if (!source || typeof source !== "object") return [];
631
+ const value = source[key];
632
+ return Array.isArray(value) ? value : [];
633
+ }
634
+ getUnknownString(source, key) {
635
+ if (!source || typeof source !== "object") return void 0;
636
+ const value = source[key];
637
+ return typeof value === "string" ? value : void 0;
638
+ }
534
639
  emitDataSections() {
535
640
  if (this.stringPool.size === 0) return;
536
641
  this.emit(";; Data sections");
@@ -697,6 +802,317 @@ var init_WASMCompiler = chunk3SAK5KFL_cjs.__esm({
697
802
  return this.generateBindings(minimalComposition);
698
803
  }
699
804
  // ===========================================================================
805
+ // WASM BINARY GENERATION
806
+ // ===========================================================================
807
+ emitWASMBytes(objectUpdates) {
808
+ const types = [];
809
+ const typeIndexes = /* @__PURE__ */ new Map();
810
+ const typeIndex = (params, results = []) => {
811
+ const key = `${params.join(",")}->${results.join(",")}`;
812
+ const existing = typeIndexes.get(key);
813
+ if (existing !== void 0) return existing;
814
+ const next = types.length;
815
+ types.push({ params, results });
816
+ typeIndexes.set(key, next);
817
+ return next;
818
+ };
819
+ const imports = [
820
+ { module: "env", name: "log_i32", typeIndex: typeIndex(["i32"]) },
821
+ { module: "env", name: "log_f32", typeIndex: typeIndex(["f32"]) },
822
+ { module: "env", name: "log_str", typeIndex: typeIndex(["i32", "i32"]) },
823
+ { module: "env", name: "emit_event", typeIndex: typeIndex(["i32", "i32"]) },
824
+ { module: "env", name: "get_time", typeIndex: typeIndex([], ["f64"]) }
825
+ ];
826
+ const functions = [];
827
+ const functionIndexes = /* @__PURE__ */ new Map();
828
+ const addFunction = (name, params, results, body) => {
829
+ functionIndexes.set(name, imports.length + functions.length);
830
+ functions.push({ name, typeIndex: typeIndex(params, results), body });
831
+ };
832
+ addFunction("init", [], [], () => this.binaryInitBody());
833
+ for (const stateVar of this.stateVars) {
834
+ const safeName = this.sanitizeName(stateVar.name);
835
+ addFunction(
836
+ `get_${safeName}`,
837
+ [],
838
+ [stateVar.type],
839
+ () => this.binaryStateGetterBody(stateVar)
840
+ );
841
+ addFunction(
842
+ `set_${safeName}`,
843
+ [stateVar.type],
844
+ [],
845
+ () => this.binaryStateSetterBody(stateVar)
846
+ );
847
+ }
848
+ addFunction("get_frame_count", [], ["i32"], () => [0, 35, ...this.encodeULEB(0), 11]);
849
+ addFunction("get_object_count", [], ["i32"], () => [0, 35, ...this.encodeULEB(3), 11]);
850
+ addFunction("is_object_active", ["i32"], ["i32"], () => this.binaryIsObjectActiveBody());
851
+ addFunction("set_object_active", ["i32", "i32"], [], () => this.binarySetObjectActiveBody());
852
+ addFunction(
853
+ "update",
854
+ ["f32"],
855
+ [],
856
+ () => this.binaryUpdateBody(functionIndexes, objectUpdates.length)
857
+ );
858
+ for (let i = 0; i < this.objects.length; i++) {
859
+ addFunction(
860
+ `update_object_${i}`,
861
+ ["f32"],
862
+ [],
863
+ () => this.binaryUpdateObjectBody(objectUpdates[i] || [], i)
864
+ );
865
+ }
866
+ const bytes = [
867
+ 0,
868
+ 97,
869
+ 115,
870
+ 109,
871
+ 1,
872
+ 0,
873
+ 0,
874
+ 0,
875
+ ...this.binarySection(1, this.binaryTypeSection(types)),
876
+ ...this.binarySection(2, this.binaryImportSection(imports)),
877
+ ...this.binarySection(3, this.binaryFunctionSection(functions)),
878
+ ...this.binarySection(5, this.binaryMemorySection()),
879
+ ...this.binarySection(6, this.binaryGlobalSection()),
880
+ ...this.binarySection(7, this.binaryExportSection(functions, imports.length)),
881
+ ...this.binarySection(10, this.binaryCodeSection(functions))
882
+ ];
883
+ return new Uint8Array(bytes);
884
+ }
885
+ binaryTypeSection(types) {
886
+ return this.binaryVector(
887
+ types.map((type) => [
888
+ 96,
889
+ ...this.binaryVector(type.params.map((param) => [this.wasmBinaryValueType(param)])),
890
+ ...this.binaryVector(type.results.map((result) => [this.wasmBinaryValueType(result)]))
891
+ ])
892
+ );
893
+ }
894
+ binaryImportSection(imports) {
895
+ return this.binaryVector(
896
+ imports.map((entry) => [
897
+ ...this.encodeString(entry.module),
898
+ ...this.encodeString(entry.name),
899
+ 0,
900
+ ...this.encodeULEB(entry.typeIndex)
901
+ ])
902
+ );
903
+ }
904
+ binaryFunctionSection(functions) {
905
+ return this.binaryVector(functions.map((fn) => this.encodeULEB(fn.typeIndex)));
906
+ }
907
+ binaryMemorySection() {
908
+ if (this.options.threads) {
909
+ return this.binaryVector([
910
+ [
911
+ 3,
912
+ ...this.encodeULEB(this.options.memoryPages),
913
+ ...this.encodeULEB(this.options.memoryPages * 2)
914
+ ]
915
+ ]);
916
+ }
917
+ return this.binaryVector([[0, ...this.encodeULEB(this.options.memoryPages)]]);
918
+ }
919
+ binaryGlobalSection() {
920
+ return this.binaryVector([
921
+ [127, 1, 65, ...this.encodeSLEB(0), 11],
922
+ [125, 1, 67, ...this.f32Bytes(0), 11],
923
+ [124, 1, 68, ...this.f64Bytes(0), 11],
924
+ [127, 0, 65, ...this.encodeSLEB(this.objects.length), 11]
925
+ ]);
926
+ }
927
+ binaryExportSection(functions, importedFunctionCount) {
928
+ const exports$1 = [
929
+ [...this.encodeString("memory"), 2, ...this.encodeULEB(0)],
930
+ ...functions.filter((fn) => !fn.name.startsWith("update_object_")).map((fn, index) => [
931
+ ...this.encodeString(fn.name),
932
+ 0,
933
+ ...this.encodeULEB(importedFunctionCount + index)
934
+ ])
935
+ ];
936
+ return this.binaryVector(exports$1);
937
+ }
938
+ binaryCodeSection(functions) {
939
+ return this.binaryVector(
940
+ functions.map((fn) => {
941
+ const body = fn.body();
942
+ return [...this.encodeULEB(body.length), ...body];
943
+ })
944
+ );
945
+ }
946
+ binaryInitBody() {
947
+ const body = [0];
948
+ for (const stateVar of this.stateVars) {
949
+ const offset = this.memoryLayout.stateOffset + stateVar.offset;
950
+ body.push(65, ...this.encodeSLEB(offset));
951
+ this.pushWASMConst(body, stateVar.type, stateVar.initialValue);
952
+ this.pushWASMStore(body, stateVar.type);
953
+ }
954
+ for (const obj of this.objects) {
955
+ const baseOffset = this.memoryLayout.objectsOffset + obj.offset;
956
+ this.pushI32StoreConst(body, baseOffset, obj.typeIndex);
957
+ this.pushI32StoreConst(body, baseOffset + 4, 1);
958
+ this.pushI32StoreConst(body, baseOffset + 8, -1);
959
+ }
960
+ body.push(11);
961
+ return body;
962
+ }
963
+ binaryStateGetterBody(stateVar) {
964
+ const offset = this.memoryLayout.stateOffset + stateVar.offset;
965
+ const body = [0, 65, ...this.encodeSLEB(offset)];
966
+ this.pushWASMLoad(body, stateVar.type);
967
+ body.push(11);
968
+ return body;
969
+ }
970
+ binaryStateSetterBody(stateVar) {
971
+ const offset = this.memoryLayout.stateOffset + stateVar.offset;
972
+ const body = [0, 65, ...this.encodeSLEB(offset), 32, 0];
973
+ this.pushWASMStore(body, stateVar.type);
974
+ body.push(11);
975
+ return body;
976
+ }
977
+ binaryIsObjectActiveBody() {
978
+ const body = [0];
979
+ this.pushObjectActiveAddress(body, 0);
980
+ body.push(40, 2, 0, 11);
981
+ return body;
982
+ }
983
+ binarySetObjectActiveBody() {
984
+ const body = [0];
985
+ this.pushObjectActiveAddress(body, 0);
986
+ body.push(32, 1, 54, 2, 0, 11);
987
+ return body;
988
+ }
989
+ binaryUpdateBody(functionIndexes, loweredObjectCount) {
990
+ const body = [0];
991
+ body.push(32, 0, 36, ...this.encodeULEB(1));
992
+ body.push(35, ...this.encodeULEB(0), 65, ...this.encodeSLEB(1), 106);
993
+ body.push(36, ...this.encodeULEB(0));
994
+ const isActiveIndex = functionIndexes.get("is_object_active");
995
+ if (isActiveIndex === void 0) throw new Error("missing is_object_active function index");
996
+ for (let i = 0; i < loweredObjectCount; i++) {
997
+ const updateObjectIndex = functionIndexes.get(`update_object_${i}`);
998
+ if (updateObjectIndex === void 0) continue;
999
+ body.push(65, ...this.encodeSLEB(i), 16, ...this.encodeULEB(isActiveIndex));
1000
+ body.push(4, 64);
1001
+ body.push(32, 0, 16, ...this.encodeULEB(updateObjectIndex));
1002
+ body.push(11);
1003
+ }
1004
+ body.push(11);
1005
+ return body;
1006
+ }
1007
+ binaryUpdateObjectBody(updates, objectIndex) {
1008
+ const body = [0];
1009
+ for (const update of updates) {
1010
+ body.push(
1011
+ 65,
1012
+ ...this.encodeSLEB(update.eventId),
1013
+ 65,
1014
+ ...this.encodeSLEB(objectIndex),
1015
+ 16,
1016
+ ...this.encodeULEB(3)
1017
+ );
1018
+ }
1019
+ body.push(11);
1020
+ return body;
1021
+ }
1022
+ pushObjectActiveAddress(body, localIndex) {
1023
+ body.push(65, ...this.encodeSLEB(this.memoryLayout.objectsOffset));
1024
+ body.push(32, ...this.encodeULEB(localIndex));
1025
+ body.push(65, ...this.encodeSLEB(64), 108);
1026
+ body.push(65, ...this.encodeSLEB(4), 106);
1027
+ body.push(106);
1028
+ }
1029
+ pushI32StoreConst(body, offset, value) {
1030
+ body.push(65, ...this.encodeSLEB(offset), 65, ...this.encodeSLEB(value), 54, 2, 0);
1031
+ }
1032
+ pushWASMConst(body, type, value) {
1033
+ switch (type) {
1034
+ case "i32":
1035
+ body.push(65, ...this.encodeSLEB(Number(value)));
1036
+ break;
1037
+ case "i64":
1038
+ body.push(66, ...this.encodeSLEB(value));
1039
+ break;
1040
+ case "f32":
1041
+ body.push(67, ...this.f32Bytes(Number(value)));
1042
+ break;
1043
+ case "f64":
1044
+ body.push(68, ...this.f64Bytes(Number(value)));
1045
+ break;
1046
+ }
1047
+ }
1048
+ pushWASMLoad(body, type) {
1049
+ const opcode = { i32: 40, i64: 41, f32: 42, f64: 43 }[type];
1050
+ const align = type === "i64" || type === "f64" ? 3 : 2;
1051
+ body.push(opcode, align, 0);
1052
+ }
1053
+ pushWASMStore(body, type) {
1054
+ const opcode = { i32: 54, i64: 55, f32: 56, f64: 57 }[type];
1055
+ const align = type === "i64" || type === "f64" ? 3 : 2;
1056
+ body.push(opcode, align, 0);
1057
+ }
1058
+ binarySection(id, payload) {
1059
+ return [id, ...this.encodeULEB(payload.length), ...payload];
1060
+ }
1061
+ binaryVector(items) {
1062
+ return [...this.encodeULEB(items.length), ...items.flat()];
1063
+ }
1064
+ encodeString(value) {
1065
+ const bytes = Array.from(new TextEncoder().encode(value));
1066
+ return [...this.encodeULEB(bytes.length), ...bytes];
1067
+ }
1068
+ encodeULEB(value) {
1069
+ const bytes = [];
1070
+ let next = value >>> 0;
1071
+ do {
1072
+ let byte = next & 127;
1073
+ next >>>= 7;
1074
+ if (next !== 0) byte |= 128;
1075
+ bytes.push(byte);
1076
+ } while (next !== 0);
1077
+ return bytes;
1078
+ }
1079
+ encodeSLEB(value) {
1080
+ const bytes = [];
1081
+ let next = BigInt(value);
1082
+ let more = true;
1083
+ while (more) {
1084
+ let byte = Number(next & 0x7fn);
1085
+ next >>= 7n;
1086
+ const signBitSet = (byte & 64) !== 0;
1087
+ more = !(next === 0n && !signBitSet || next === -1n && signBitSet);
1088
+ if (more) byte |= 128;
1089
+ bytes.push(byte);
1090
+ }
1091
+ return bytes;
1092
+ }
1093
+ f32Bytes(value) {
1094
+ const bytes = new Uint8Array(4);
1095
+ new DataView(bytes.buffer).setFloat32(0, value, true);
1096
+ return Array.from(bytes);
1097
+ }
1098
+ f64Bytes(value) {
1099
+ const bytes = new Uint8Array(8);
1100
+ new DataView(bytes.buffer).setFloat64(0, value, true);
1101
+ return Array.from(bytes);
1102
+ }
1103
+ wasmBinaryValueType(type) {
1104
+ switch (type) {
1105
+ case "i32":
1106
+ return 127;
1107
+ case "i64":
1108
+ return 126;
1109
+ case "f32":
1110
+ return 125;
1111
+ case "f64":
1112
+ return 124;
1113
+ }
1114
+ }
1115
+ // ===========================================================================
700
1116
  // HELPERS
701
1117
  // ===========================================================================
702
1118
  emit(line) {
@@ -769,5 +1185,5 @@ exports.compileASTToWASM = compileASTToWASM;
769
1185
  exports.compileToWASM = compileToWASM;
770
1186
  exports.createWASMCompiler = createWASMCompiler;
771
1187
  exports.init_WASMCompiler = init_WASMCompiler;
772
- //# sourceMappingURL=chunk-6UEHYZ7V.cjs.map
773
- //# sourceMappingURL=chunk-6UEHYZ7V.cjs.map
1188
+ //# sourceMappingURL=chunk-MXJ5SS53.cjs.map
1189
+ //# sourceMappingURL=chunk-MXJ5SS53.cjs.map