@holoscript/core 8.0.8 → 8.0.9

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 (462) hide show
  1. package/bin/holoscript.cjs +5 -1
  2. package/dist/GLTFPipeline-L76YTXKA.js +15 -0
  3. package/dist/GLTFPipeline-ZWJN7GI6.cjs +36 -0
  4. package/dist/HoloCompositionParser-K76KTEEE.js +12 -0
  5. package/dist/HoloCompositionParser-UZH6Y4HO.cjs +45 -0
  6. package/dist/HoloScriptCodeParser-2D4ERFUZ.js +6 -0
  7. package/dist/HoloScriptCodeParser-UDRLDA7I.cjs +23 -0
  8. package/dist/HoloScriptPlusParser-FTMCGWXD.js +13 -0
  9. package/dist/HoloScriptPlusParser-LQR5GIKF.cjs +30 -0
  10. package/dist/HoloScriptRuntime-UTRLJI5L.js +12 -0
  11. package/dist/HoloScriptRuntime-YBYXJHJN.cjs +21 -0
  12. package/dist/SceneIRCompiler-63KA3M2F.js +17 -0
  13. package/dist/SceneIRCompiler-KWUFHZ4O.cjs +42 -0
  14. package/dist/{USDZExporter-AUHZODOF.cjs → USDZExporter-ML4UMIGC.cjs} +3 -3
  15. package/dist/{USDZExporter-GXB4AUSG.js → USDZExporter-ZFKLQ76G.js} +3 -3
  16. package/dist/agents/index.cjs +1 -1
  17. package/dist/agents/index.js +1 -1
  18. package/dist/audit/AuditLogger.d.ts +106 -0
  19. package/dist/audit/AuditQueryBuilder.d.ts +79 -0
  20. package/dist/audit/ComplianceReporter.d.ts +90 -0
  21. package/dist/audit/index.d.ts +13 -0
  22. package/dist/{chunk-FGMDMJM7.js → chunk-2BYAUHBO.js} +3 -3
  23. package/dist/{chunk-EDPYCLRC.cjs → chunk-2E6PP5UE.cjs} +83 -59
  24. package/dist/{chunk-GASCWJK5.js → chunk-2EGGAZT3.js} +65 -287
  25. package/dist/{chunk-SIEXCILW.js → chunk-2I3XAGMF.js} +3 -3
  26. package/dist/{chunk-OS533P33.cjs → chunk-2KKOYZYI.cjs} +1074 -1655
  27. package/dist/chunk-2MQKNDNH.js +51 -0
  28. package/dist/{chunk-7DMMMBCY.cjs → chunk-2X3IPCBK.cjs} +10 -10
  29. package/dist/chunk-2ZOTBO25.cjs +202 -0
  30. package/dist/chunk-356N4NPM.cjs +152 -0
  31. package/dist/{chunk-X3GJPRVK.cjs → chunk-36NPLOI4.cjs} +92 -81
  32. package/dist/{chunk-SLU6UPJI.cjs → chunk-37HHY7RH.cjs} +5 -5
  33. package/dist/{chunk-YDPEHCCI.cjs → chunk-3CDDRUER.cjs} +3 -118
  34. package/dist/chunk-3F7ZZWIN.js +1651 -0
  35. package/dist/chunk-3ILD7TKP.cjs +187 -0
  36. package/dist/{chunk-X27QRG4C.cjs → chunk-3IUHTGDD.cjs} +153 -41
  37. package/dist/{chunk-PXNZ6TME.js → chunk-4376VHNJ.js} +60 -36
  38. package/dist/{chunk-YKGPCZEE.cjs → chunk-4FIBOJW6.cjs} +10 -10
  39. package/dist/chunk-4Q7RKQQI.cjs +14195 -0
  40. package/dist/{chunk-YCM6QQRT.cjs → chunk-566ZB4LZ.cjs} +180 -8
  41. package/dist/{chunk-2Y3V22SG.js → chunk-5CURIYGT.js} +3 -3
  42. package/dist/{chunk-QBWNJXNR.js → chunk-5FYMCVBY.js} +5 -5
  43. package/dist/{chunk-ZA34AN3R.js → chunk-5LVFTGKH.js} +841 -12
  44. package/dist/chunk-63AUAIL6.js +48 -0
  45. package/dist/chunk-655FATJU.js +110 -0
  46. package/dist/{chunk-TQ377OLB.cjs → chunk-65S62L4D.cjs} +28 -22
  47. package/dist/chunk-6NTAZN5Z.cjs +502 -0
  48. package/dist/chunk-6TRX6AR2.js +9376 -0
  49. package/dist/chunk-6ZCCLKS2.cjs +51 -0
  50. package/dist/{chunk-MDR235RZ.js → chunk-734OB5SK.js} +721 -8
  51. package/dist/{chunk-Q2Q34NF3.js → chunk-77QI552M.js} +6 -6
  52. package/dist/{chunk-WKX5AMOY.js → chunk-7I74JWPW.js} +3 -3
  53. package/dist/{chunk-5FSKKMR7.cjs → chunk-7IDJDMPU.cjs} +232 -4
  54. package/dist/chunk-7VBKRGIZ.cjs +847 -0
  55. package/dist/{chunk-KCPHASCO.js → chunk-AATYYLYK.js} +5 -5
  56. package/dist/{chunk-WFKVS2K4.cjs → chunk-AUZRKIHQ.cjs} +1101 -55
  57. package/dist/{chunk-DTGBOSEM.cjs → chunk-AWXFEAQL.cjs} +12 -12
  58. package/dist/{chunk-THCK6ECW.js → chunk-B3CWTCK2.js} +231 -3
  59. package/dist/chunk-BCP4E7MD.cjs +997 -0
  60. package/dist/chunk-BG7RPYJP.js +91 -0
  61. package/dist/{chunk-VF257YKO.js → chunk-BP4KTMLY.js} +117 -5
  62. package/dist/{chunk-YN6IETRZ.js → chunk-BQJ3YBF3.js} +6424 -987
  63. package/dist/{chunk-KOUAQL2B.cjs → chunk-CANAL6CT.cjs} +1569 -168
  64. package/dist/{chunk-FDSGHPAK.js → chunk-CBSDJF3B.js} +3 -3
  65. package/dist/{chunk-FEWUHQNM.cjs → chunk-CFVK26P4.cjs} +4 -4
  66. package/dist/{chunk-M7K4LE66.cjs → chunk-CI33NINL.cjs} +4 -4
  67. package/dist/{chunk-2OWDB4FB.js → chunk-CKV5NYAE.js} +6 -6
  68. package/dist/{chunk-LPS5AMQD.cjs → chunk-CM4NHXVO.cjs} +24 -24
  69. package/dist/chunk-D3HSRXYB.js +115 -0
  70. package/dist/{chunk-FNHJRI32.js → chunk-DBH3D2MU.js} +1561 -160
  71. package/dist/{chunk-GW3LKD5C.js → chunk-DJNH4HFW.js} +3 -3
  72. package/dist/{chunk-2GCNOI2U.cjs → chunk-DN6F4DHH.cjs} +9 -3
  73. package/dist/chunk-DQRJ5RJG.js +432 -0
  74. package/dist/{chunk-C7ZBSV2Q.js → chunk-DUG3OQAS.js} +106 -43
  75. package/dist/chunk-ECUYJOJ2.cjs +199 -0
  76. package/dist/chunk-EEMTCAK7.js +182 -0
  77. package/dist/{chunk-3SKLAUDD.cjs → chunk-EI3J6LTW.cjs} +359 -581
  78. package/dist/{chunk-SSSN7VAM.js → chunk-EM2OGPYE.js} +4 -4
  79. package/dist/{chunk-56VOWURB.cjs → chunk-ENZCIQZC.cjs} +522 -453
  80. package/dist/chunk-ESBXUYOC.cjs +836 -0
  81. package/dist/{chunk-L5U4W6JC.js → chunk-ESSEF6U2.js} +4 -4
  82. package/dist/chunk-ET3AN4W3.js +824 -0
  83. package/dist/chunk-EXKSFGSX.cjs +14 -14
  84. package/dist/{chunk-I76GIKN7.cjs → chunk-F3YT6GUF.cjs} +17 -17
  85. package/dist/{chunk-WRWEX5ZF.js → chunk-F75DZBBI.js} +3 -3
  86. package/dist/{chunk-4JGRWHZJ.js → chunk-FG6PYGIZ.js} +12 -6
  87. package/dist/chunk-FGGJQRLZ.js +14 -14
  88. package/dist/{chunk-SXOSDZD6.js → chunk-FWCHPCD4.js} +128 -10
  89. package/dist/{chunk-XW6IXEQH.cjs → chunk-G35CAQ7I.cjs} +5 -5
  90. package/dist/{chunk-7VMGP2FW.js → chunk-G6KACNMO.js} +132 -188
  91. package/dist/{chunk-FJPADH77.cjs → chunk-GAWJJAGT.cjs} +6 -6
  92. package/dist/chunk-GGR7QUKK.cjs +4724 -0
  93. package/dist/chunk-GIBF4BHH.js +14098 -0
  94. package/dist/{chunk-AWB7QYY6.cjs → chunk-GILYQ5VH.cjs} +6 -6
  95. package/dist/{chunk-FWVYAMNW.cjs → chunk-GKFCHGCM.cjs} +4 -4
  96. package/dist/{chunk-Y3ZFVUUU.js → chunk-GLEJ2TLS.js} +3 -3
  97. package/dist/{chunk-3GWWJT7L.js → chunk-GP3OKSKT.js} +13 -13
  98. package/dist/chunk-GTIPOEHN.js +196 -0
  99. package/dist/{chunk-LMJ5EBV7.cjs → chunk-GZPUA2TL.cjs} +16 -15
  100. package/dist/{chunk-IELX2OKI.js → chunk-H4LJ4HEA.js} +3 -115
  101. package/dist/{chunk-ACVWFGBI.cjs → chunk-HCX4SMFK.cjs} +3 -3
  102. package/dist/{chunk-HYNTS5CP.js → chunk-HHRZ6STP.js} +24 -2
  103. package/dist/chunk-HIDEIEFG.js +48 -0
  104. package/dist/{chunk-W6RW64BB.cjs → chunk-HSWBIDZM.cjs} +228 -5
  105. package/dist/{chunk-GSOUNWEL.js → chunk-HVX7QQYK.js} +1035 -1616
  106. package/dist/{chunk-TRCGG42I.cjs → chunk-IFW5IW4L.cjs} +6502 -1019
  107. package/dist/{chunk-F5LKJ6F5.cjs → chunk-IJU6AS67.cjs} +32 -28
  108. package/dist/{chunk-TVANHNJ7.js → chunk-IK6Z2HNC.js} +173 -3
  109. package/dist/{chunk-QGMUTVVH.cjs → chunk-IS7NTKY5.cjs} +20 -20
  110. package/dist/{chunk-YFVQWSNJ.js → chunk-IXWGYWH6.js} +3 -3
  111. package/dist/chunk-J2DAS2PL.js +148 -0
  112. package/dist/chunk-JBQXZIWB.js +148 -0
  113. package/dist/chunk-JBYBMBMW.js +261 -0
  114. package/dist/{chunk-LWUOUCYL.js → chunk-JEJ7TT54.js} +5 -5
  115. package/dist/{chunk-DUCB6LGL.js → chunk-JOTCTHN5.js} +211 -5
  116. package/dist/{chunk-47RUFYKR.js → chunk-K56UVEXV.js} +3 -3
  117. package/dist/{chunk-XSFNHP2E.js → chunk-KB26H447.js} +3 -3
  118. package/dist/{chunk-3NGDZZR4.js → chunk-KEYG7HGY.js} +430 -37
  119. package/dist/{chunk-DY72BMU5.js → chunk-KFVNCW4Q.js} +4 -4
  120. package/dist/chunk-KPGC7SK2.js +192 -0
  121. package/dist/chunk-KROXXBK5.cjs +53 -0
  122. package/dist/{chunk-ZPZAVHXL.cjs → chunk-LB3ZZMKT.cjs} +137 -19
  123. package/dist/chunk-LDYZWNJW.cjs +1654 -0
  124. package/dist/{chunk-ULMSSHCJ.cjs → chunk-LMB555QB.cjs} +405 -38
  125. package/dist/{chunk-CBJY23VL.js → chunk-MD4IVS42.js} +3 -3
  126. package/dist/{chunk-VMLKSV26.js → chunk-MDDWEBCX.js} +226 -3
  127. package/dist/chunk-MUWH4QK5.cjs +94 -0
  128. package/dist/{chunk-T6W3Z3SH.cjs → chunk-N2ILK7BF.cjs} +4 -4
  129. package/dist/{chunk-6EX3I5P4.cjs → chunk-N74QRJGP.cjs} +6 -6
  130. package/dist/chunk-NFFHLX37.cjs +132 -0
  131. package/dist/chunk-NJSYWX7H.js +190 -0
  132. package/dist/{chunk-SH5PPVK7.cjs → chunk-NQN5LFN4.cjs} +165 -221
  133. package/dist/chunk-NTQRFOPP.cjs +56 -0
  134. package/dist/{chunk-YFWRJW4B.js → chunk-NWMJPTVL.js} +51 -55
  135. package/dist/{chunk-63ZGNR2T.cjs → chunk-OC6GV5QH.cjs} +42 -42
  136. package/dist/{chunk-7E7GCQCK.js → chunk-OG3MBHM3.js} +9 -3
  137. package/dist/chunk-OMNHTCS4.cjs +264 -0
  138. package/dist/chunk-OQXB6NNC.cjs +117 -0
  139. package/dist/{chunk-Y57W2CT5.cjs → chunk-OV46CCA2.cjs} +51 -55
  140. package/dist/{chunk-6PRZIHGL.cjs → chunk-OV6HHKLE.cjs} +21 -266
  141. package/dist/{chunk-C37BHB7N.cjs → chunk-P26YYPOO.cjs} +5 -5
  142. package/dist/{chunk-2BZHWUSR.cjs → chunk-P7JEKJTZ.cjs} +16 -16
  143. package/dist/{chunk-NGBXXZLL.cjs → chunk-PDXX5UI4.cjs} +45 -45
  144. package/dist/{chunk-FHQFPYV4.js → chunk-PJFTTSKE.js} +8 -7
  145. package/dist/{chunk-GVFJ6T4S.cjs → chunk-PVODJEJ7.cjs} +721 -8
  146. package/dist/{chunk-ZZ7RO2UQ.js → chunk-Q265VZJ4.js} +3 -3
  147. package/dist/{chunk-E7JP3BS3.cjs → chunk-Q47JEE2C.cjs} +4 -4
  148. package/dist/chunk-QBY7LRN2.js +281 -0
  149. package/dist/{chunk-Z6PMDS4G.js → chunk-QDQWKSU3.js} +1090 -53
  150. package/dist/{chunk-GH6C2QGW.cjs → chunk-QEDMOGF3.cjs} +857 -16
  151. package/dist/{chunk-5WUNN6ZN.cjs → chunk-QHSAVOOL.cjs} +24 -2
  152. package/dist/chunk-QJNCDVYM.cjs +137 -0
  153. package/dist/chunk-QM7FJB5W.js +4717 -0
  154. package/dist/chunk-QQFB4RT2.cjs +448 -0
  155. package/dist/chunk-QSYBHQAD.cjs +196 -0
  156. package/dist/{chunk-UGXHYIWT.cjs → chunk-QUJ3ZB55.cjs} +28 -28
  157. package/dist/{chunk-2YSNA2F2.cjs → chunk-QVJMDVYZ.cjs} +5 -5
  158. package/dist/chunk-RAJMAX6D.js +131 -0
  159. package/dist/{chunk-VVKVQZI6.js → chunk-RAN3ECAS.js} +3 -3
  160. package/dist/chunk-RKGUZBOC.js +79 -0
  161. package/dist/{chunk-HLFDZ35S.cjs → chunk-RRQIAJLQ.cjs} +8 -8
  162. package/dist/{chunk-PABONWKI.js → chunk-RXQNRZ5F.js} +3 -3
  163. package/dist/{chunk-7ZHYEITD.cjs → chunk-S4O7CFHQ.cjs} +10 -11
  164. package/dist/chunk-SE7ANBGN.js +128 -0
  165. package/dist/{chunk-X2AVEAZM.cjs → chunk-SJIRCTIS.cjs} +176 -2
  166. package/dist/{chunk-WXQ57LAO.js → chunk-SQXAZHDG.js} +4 -4
  167. package/dist/chunk-SR73L5ZP.cjs +84 -0
  168. package/dist/{chunk-OABEO6HH.js → chunk-SZOLTWWD.js} +2349 -214
  169. package/dist/{chunk-5JEU52DW.js → chunk-TPZ3BN2D.js} +3 -3
  170. package/dist/{chunk-QFU53KRH.js → chunk-TSTFYGGX.js} +4 -5
  171. package/dist/{chunk-EBS32AJI.cjs → chunk-TZCFKZ6Z.cjs} +5 -5
  172. package/dist/chunk-UCVZXQ63.js +724 -0
  173. package/dist/chunk-UGQ3QNV6.js +992 -0
  174. package/dist/chunk-UNMVGZVW.js +142 -0
  175. package/dist/{chunk-TEVX443G.js → chunk-UTUD6GJI.js} +178 -6
  176. package/dist/chunk-UXBYA7DV.cjs +155 -0
  177. package/dist/chunk-V6GXFSK7.cjs +443 -0
  178. package/dist/chunk-VHORVGCG.cjs +761 -0
  179. package/dist/{chunk-B4EKV6HQ.js → chunk-VKCTYLDN.js} +500 -442
  180. package/dist/{chunk-O3MGZDCT.cjs → chunk-VTEXJOSD.cjs} +63 -63
  181. package/dist/chunk-VVAAZITA.cjs +287 -0
  182. package/dist/{chunk-V7AKE5VT.cjs → chunk-W2GA3EQB.cjs} +435 -42
  183. package/dist/chunk-W4GABFCR.js +37 -0
  184. package/dist/chunk-WKEK4NCA.js +490 -0
  185. package/dist/{chunk-5A4TCHOC.cjs → chunk-WNYXT4TE.cjs} +4 -4
  186. package/dist/{chunk-S762UEV5.js → chunk-WTH23ISI.js} +6 -6
  187. package/dist/{chunk-BTKZGHAV.js → chunk-WWNCM473.js} +10 -6
  188. package/dist/{chunk-7X5PNIQJ.js → chunk-X3YFRH6K.js} +27 -25
  189. package/dist/{chunk-4YNYPHH3.cjs → chunk-X75H75UY.cjs} +2351 -213
  190. package/dist/{chunk-LYJJI7ZK.cjs → chunk-XCUDDFKC.cjs} +216 -9
  191. package/dist/chunk-YAO4HPJL.cjs +120 -0
  192. package/dist/chunk-YKY2JBER.cjs +9443 -0
  193. package/dist/chunk-YP5CHEYU.cjs +154 -0
  194. package/dist/{chunk-WRNEH5MO.js → chunk-YW3I2FQL.js} +18 -7
  195. package/dist/{chunk-BRNUPDHJ.js → chunk-Z557DVYN.js} +386 -19
  196. package/dist/{chunk-VSACG2AR.js → chunk-Z6LZUYZF.js} +21 -264
  197. package/dist/chunk-ZHPMP447.cjs +43 -0
  198. package/dist/{chunk-LODTHGST.cjs → chunk-ZK7KX5CD.cjs} +133 -70
  199. package/dist/{chunk-CCPSNT6B.cjs → chunk-ZRPALBQB.cjs} +5 -5
  200. package/dist/chunk-ZVFHPMC5.js +824 -0
  201. package/dist/chunk-ZVQMKUGJ.js +443 -0
  202. package/dist/cli/holoscript-runner.cjs +86 -48
  203. package/dist/cli/holoscript-runner.js +54 -16
  204. package/dist/codebase/index.cjs +1 -1
  205. package/dist/codebase/index.js +1 -1
  206. package/dist/compiler/agent-inference.cjs +11 -11
  207. package/dist/compiler/agent-inference.js +9 -6
  208. package/dist/compiler/android-xr.cjs +13 -12
  209. package/dist/compiler/android-xr.js +11 -10
  210. package/dist/compiler/android.cjs +12 -12
  211. package/dist/compiler/android.js +10 -10
  212. package/dist/compiler/business-quest.cjs +10 -10
  213. package/dist/compiler/business-quest.js +2 -2
  214. package/dist/compiler/coco.cjs +1 -1
  215. package/dist/compiler/coco.js +1 -1
  216. package/dist/compiler/context.cjs +9 -9
  217. package/dist/compiler/context.js +6 -6
  218. package/dist/compiler/daimon-seed.cjs +36 -0
  219. package/dist/compiler/daimon-seed.js +12 -0
  220. package/dist/compiler/domain-block-utils.cjs +205 -156
  221. package/dist/compiler/domain-block-utils.js +8 -7
  222. package/dist/compiler/dtdl.cjs +10 -10
  223. package/dist/compiler/dtdl.js +7 -7
  224. package/dist/compiler/gltf-pipeline.cjs +9 -9
  225. package/dist/compiler/gltf-pipeline.js +2 -2
  226. package/dist/compiler/godot.cjs +10 -9
  227. package/dist/compiler/godot.js +9 -8
  228. package/dist/compiler/incremental.cjs +11 -11
  229. package/dist/compiler/incremental.js +6 -6
  230. package/dist/compiler/index.cjs +2585 -3273
  231. package/dist/compiler/index.d.ts +149 -35
  232. package/dist/compiler/index.js +2197 -3102
  233. package/dist/compiler/ios.cjs +11 -11
  234. package/dist/compiler/ios.js +9 -9
  235. package/dist/compiler/llm-provider-capabilities.cjs +9 -9
  236. package/dist/compiler/llm-provider-capabilities.js +6 -6
  237. package/dist/compiler/nodetoy.cjs +1 -1
  238. package/dist/compiler/nodetoy.js +1 -1
  239. package/dist/compiler/openxr.cjs +11 -10
  240. package/dist/compiler/openxr.js +10 -9
  241. package/dist/compiler/remotion.cjs +1 -1
  242. package/dist/compiler/remotion.js +1 -1
  243. package/dist/compiler/reproducibility.cjs +1 -1
  244. package/dist/compiler/reproducibility.js +1 -1
  245. package/dist/compiler/sdf.cjs +11 -10
  246. package/dist/compiler/sdf.js +9 -8
  247. package/dist/compiler/semantic-scene.cjs +7 -7
  248. package/dist/compiler/semantic-scene.js +2 -2
  249. package/dist/compiler/state.cjs +9 -9
  250. package/dist/compiler/state.js +7 -7
  251. package/dist/compiler/trait-composition.cjs +11 -11
  252. package/dist/compiler/trait-composition.js +7 -7
  253. package/dist/compiler/traits/ProvenanceSemiring.d.ts +167 -0
  254. package/dist/compiler/traits/Semiring.d.ts +26 -0
  255. package/dist/compiler/unity.cjs +11 -10
  256. package/dist/compiler/unity.js +10 -9
  257. package/dist/compiler/unreal.cjs +12 -11
  258. package/dist/compiler/unreal.js +10 -9
  259. package/dist/compiler/urdf.cjs +18 -17
  260. package/dist/compiler/urdf.js +9 -8
  261. package/dist/compiler/usd-physics.cjs +11 -10
  262. package/dist/compiler/usd-physics.js +8 -7
  263. package/dist/compiler/visionos.cjs +11 -10
  264. package/dist/compiler/visionos.js +10 -9
  265. package/dist/compiler/vrchat.cjs +11 -10
  266. package/dist/compiler/vrchat.js +9 -8
  267. package/dist/compiler/wasm.cjs +14 -13
  268. package/dist/compiler/wasm.js +9 -8
  269. package/dist/compiler/webgpu.cjs +10 -9
  270. package/dist/compiler/webgpu.js +9 -8
  271. package/dist/constants.cjs +398 -0
  272. package/dist/constants.js +9 -0
  273. package/dist/coordinators/index.cjs +4 -1
  274. package/dist/coordinators/index.js +4 -1
  275. package/dist/debugger.cjs +11 -9
  276. package/dist/debugger.js +9 -7
  277. package/dist/{dist-ACXG6IH5.cjs → dist-GRMOP2UL.cjs} +341 -65
  278. package/dist/{dist-VD4L6V7Q.js → dist-ZBUKU2JG.js} +333 -63
  279. package/dist/entries/interop.cjs +23 -23
  280. package/dist/entries/interop.js +3 -3
  281. package/dist/entries/scripting.cjs +12 -11
  282. package/dist/entries/scripting.js +8 -7
  283. package/dist/evolution/index.cjs +66 -0
  284. package/dist/evolution/index.d.ts +162 -0
  285. package/dist/evolution/index.js +17 -0
  286. package/dist/hololand/index.cjs +41 -37
  287. package/dist/hololand/index.js +3 -3
  288. package/dist/index.cjs +12394 -3224
  289. package/dist/index.d.ts +260 -18
  290. package/dist/index.js +10755 -2182
  291. package/dist/keyword-registry/PluginKeywordRegistry.d.ts +138 -0
  292. package/dist/keyword-registry/index.cjs +29 -0
  293. package/dist/keyword-registry/index.d.ts +1 -0
  294. package/dist/keyword-registry/index.js +4 -0
  295. package/dist/math/tropical-spmv.cjs +11 -11
  296. package/dist/math/tropical-spmv.d.ts +1 -0
  297. package/dist/math/tropical-spmv.js +2 -2
  298. package/dist/math/tropicalSpmv.d.ts +43 -0
  299. package/dist/math/vec3.cjs +1 -1
  300. package/dist/math/vec3.js +1 -1
  301. package/dist/matter/StagedMatter.d.ts +82 -0
  302. package/dist/matter/index.cjs +17 -0
  303. package/dist/matter/index.d.ts +1 -0
  304. package/dist/matter/index.js +4 -0
  305. package/dist/{ml-dsa-Z7JDKW4L.js → ml-dsa-J6VKVT4K.js} +3 -3
  306. package/dist/{ml-dsa-FSKBTE3W.cjs → ml-dsa-MTIK4ZUQ.cjs} +23 -23
  307. package/dist/paper-0c-spike/index.cjs +1 -1
  308. package/dist/paper-0c-spike/index.js +1 -1
  309. package/dist/parameter-envelope/ParameterEnvelope.d.ts +128 -0
  310. package/dist/parameter-envelope/index.cjs +17 -0
  311. package/dist/parameter-envelope/index.d.ts +2 -0
  312. package/dist/parameter-envelope/index.js +4 -0
  313. package/dist/parser/HoloCompositionTypes.d.ts +2013 -0
  314. package/dist/parser/PipelineParser.d.ts +162 -0
  315. package/dist/parser.cjs +36 -20
  316. package/dist/parser.js +13 -9
  317. package/dist/plugin-manifest/ManifestAutoLoader.d.ts +35 -0
  318. package/dist/plugin-manifest/PluginManifest.d.ts +156 -0
  319. package/dist/plugin-manifest/index.cjs +25 -0
  320. package/dist/plugin-manifest/index.d.ts +2 -0
  321. package/dist/plugin-manifest/index.js +4 -0
  322. package/dist/plugin-solver-contract/PluginSolverContract.d.ts +288 -0
  323. package/dist/plugin-solver-contract/index.cjs +41 -0
  324. package/dist/plugin-solver-contract/index.d.ts +1 -0
  325. package/dist/plugin-solver-contract/index.js +4 -0
  326. package/dist/policy/ContentPolicyGate.d.ts +51 -0
  327. package/dist/policy/PolicyPack.d.ts +120 -0
  328. package/dist/policy/blocklist.d.ts +32 -0
  329. package/dist/policy/defaults.d.ts +44 -0
  330. package/dist/policy/index.cjs +106 -0
  331. package/dist/policy/index.d.ts +17 -0
  332. package/dist/policy/index.js +5 -0
  333. package/dist/policy/jsonLogic.d.ts +31 -0
  334. package/dist/policy/types.d.ts +174 -0
  335. package/dist/proof-composition/ProofCompositionLaw.d.ts +93 -0
  336. package/dist/proof-composition/index.cjs +25 -0
  337. package/dist/proof-composition/index.d.ts +1 -0
  338. package/dist/proof-composition/index.js +4 -0
  339. package/dist/receipts/hash-policy.d.ts +85 -0
  340. package/dist/reconstruction/index.cjs +75 -47
  341. package/dist/reconstruction/index.js +5 -5
  342. package/dist/runtime/plugin-trait-registrar.d.ts +36 -0
  343. package/dist/runtime.cjs +81 -79
  344. package/dist/runtime.js +9 -7
  345. package/dist/scene-presets-EDKYZ5GW.js +4 -0
  346. package/dist/scene-presets-NCW2CFRS.cjs +17 -0
  347. package/dist/self-improvement/index.cjs +1 -1
  348. package/dist/self-improvement/index.js +1 -1
  349. package/dist/{src-PT2FERDV.cjs → src-G3D7ZATQ.cjs} +545 -21
  350. package/dist/{src-J6CM4AUR.js → src-UXYA7HM6.js} +539 -16
  351. package/dist/storage/index.cjs +10 -10
  352. package/dist/storage/index.js +3 -3
  353. package/dist/testing.cjs +1 -1
  354. package/dist/testing.js +1 -1
  355. package/dist/tools/index.cjs +3631 -0
  356. package/dist/tools/index.js +3581 -0
  357. package/dist/traitDocs/traitDocs.cjs +9 -9
  358. package/dist/traitDocs/traitDocs.d.ts +1 -0
  359. package/dist/traitDocs/traitDocs.js +3 -3
  360. package/dist/traits/ControlLoopTrait.d.ts +154 -0
  361. package/dist/traits/KinematicChainTrait.d.ts +116 -0
  362. package/dist/traits/SensorSamplingTrait.d.ts +154 -0
  363. package/dist/traits/TraitTypes.d.ts +270 -0
  364. package/dist/traits/TransactionTrait.d.ts +121 -0
  365. package/dist/traits/botanical-lotus.cjs +54 -50
  366. package/dist/traits/botanical-lotus.js +2 -5
  367. package/dist/traits/control-loop.cjs +21 -0
  368. package/dist/traits/control-loop.d.ts +1 -0
  369. package/dist/traits/control-loop.js +4 -0
  370. package/dist/traits/engines/cloth-verlet.d.ts +65 -0
  371. package/dist/traits/engines/index.cjs +19 -19
  372. package/dist/traits/engines/index.d.ts +15 -275
  373. package/dist/traits/engines/index.js +3 -3
  374. package/dist/traits/engines/motion-data-schema.d.ts +119 -0
  375. package/dist/traits/engines/motion-matching.d.ts +102 -0
  376. package/dist/traits/engines/noise.d.ts +25 -0
  377. package/dist/traits/engines/onnx-adapter.d.ts +173 -0
  378. package/dist/traits/engines/onnx-motion-matching.d.ts +163 -0
  379. package/dist/traits/engines/pfnn-network.d.ts +92 -0
  380. package/dist/traits/engines/synthetic-walk-cycle.d.ts +38 -0
  381. package/dist/traits/engines/tensor-ops.d.ts +15 -0
  382. package/dist/traits/index.cjs +2789 -1259
  383. package/dist/traits/index.d.ts +35 -0
  384. package/dist/traits/index.js +1692 -411
  385. package/dist/traits/kinematic-chain.cjs +25 -0
  386. package/dist/traits/kinematic-chain.d.ts +1 -0
  387. package/dist/traits/kinematic-chain.js +4 -0
  388. package/dist/traits/sensor-sampling.cjs +33 -0
  389. package/dist/traits/sensor-sampling.d.ts +1 -0
  390. package/dist/traits/sensor-sampling.js +4 -0
  391. package/dist/traits/simulation-solver-factory.cjs +1 -1
  392. package/dist/traits/simulation-solver-factory.js +1 -1
  393. package/dist/traits/transaction.cjs +29 -0
  394. package/dist/traits/transaction.d.ts +1 -0
  395. package/dist/traits/transaction.js +4 -0
  396. package/dist/traits/webcam-gaze.cjs +1 -1
  397. package/dist/traits/webcam-gaze.js +1 -1
  398. package/dist/type-checker.cjs +7 -6
  399. package/dist/type-checker.js +5 -4
  400. package/dist/types/AdvancedTypeSystem.d.ts +489 -0
  401. package/dist/types/HoloScriptPlus.d.ts +810 -0
  402. package/dist/types/base.d.ts +248 -0
  403. package/dist/types.d.ts +799 -0
  404. package/dist/world/index.cjs +3 -4
  405. package/dist/world/index.js +3 -4
  406. package/dist/world-model/index.cjs +1 -1
  407. package/dist/world-model/index.js +1 -1
  408. package/dist/wot/index.cjs +1 -1
  409. package/dist/wot/index.js +1 -1
  410. package/package.json +113 -46
  411. package/dist/GLTFPipeline-3EJLL3TS.cjs +0 -38
  412. package/dist/GLTFPipeline-3OWJV2VK.js +0 -17
  413. package/dist/HoloScriptPlusParser-ADWRY5OS.cjs +0 -698
  414. package/dist/HoloScriptPlusParser-JLJDXHSC.js +0 -693
  415. package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +0 -27
  416. package/dist/HoloScriptPlusParser-WENAFEFV.js +0 -10
  417. package/dist/HoloScriptRuntime-GGRVEU4T.cjs +0 -19
  418. package/dist/HoloScriptRuntime-GJK6VJPH.js +0 -10
  419. package/dist/chunk-22Q5A6RV.js +0 -979
  420. package/dist/chunk-4C57PR42.js +0 -468
  421. package/dist/chunk-4W5G5QVL.cjs +0 -847
  422. package/dist/chunk-5ET6L4NS.js +0 -487
  423. package/dist/chunk-C4GSLCHE.cjs +0 -7153
  424. package/dist/chunk-F2G6CWFT.js +0 -7089
  425. package/dist/chunk-G6PNEASF.cjs +0 -814
  426. package/dist/chunk-GTA4Q3A3.js +0 -1491
  427. package/dist/chunk-HCCQLAA4.cjs +0 -74
  428. package/dist/chunk-HFSVMKM3.cjs +0 -72
  429. package/dist/chunk-KAIVDEIG.cjs +0 -4539
  430. package/dist/chunk-KQU64CIX.cjs +0 -1508
  431. package/dist/chunk-MSYSQ2AJ.js +0 -4533
  432. package/dist/chunk-NHJLP37F.js +0 -70
  433. package/dist/chunk-NHYRRAGI.cjs +0 -490
  434. package/dist/chunk-OIQYIIO3.cjs +0 -473
  435. package/dist/chunk-OL46QLBJ.js +0 -61
  436. package/dist/chunk-SKZPC5AG.cjs +0 -984
  437. package/dist/chunk-SLHLXUMO.js +0 -445
  438. package/dist/chunk-UOIGFQXC.cjs +0 -9750
  439. package/dist/chunk-UOL6Y5TD.cjs +0 -759
  440. package/dist/chunk-UVFI7XIR.cjs +0 -452
  441. package/dist/chunk-VEPGBETF.js +0 -844
  442. package/dist/chunk-XQ5MWMP2.js +0 -756
  443. package/dist/chunk-XT6JY5W5.js +0 -9684
  444. package/dist/chunk-YRRAUB35.js +0 -811
  445. package/dist/compiler/GasOptimizationAnalyzer.d.ts +0 -73
  446. package/dist/compiler/NFTMarketplaceCompiler.d.ts +0 -23
  447. package/dist/compiler/ar.cjs +0 -23
  448. package/dist/compiler/ar.js +0 -11
  449. package/dist/compiler/babylon.cjs +0 -21
  450. package/dist/compiler/babylon.js +0 -15
  451. package/dist/compiler/multi-layer.cjs +0 -24
  452. package/dist/compiler/multi-layer.js +0 -15
  453. package/dist/compiler/playcanvas.cjs +0 -19
  454. package/dist/compiler/playcanvas.js +0 -13
  455. package/dist/compiler/r3f.cjs +0 -39
  456. package/dist/compiler/r3f.d.ts +0 -22
  457. package/dist/compiler/r3f.js +0 -17
  458. package/dist/compiler/vrr.cjs +0 -24
  459. package/dist/compiler/vrr.js +0 -12
  460. package/dist/parser/NFTMarketplaceTypes.d.ts +0 -191
  461. package/dist/playwright-3AT3AKTV.cjs +0 -98673
  462. package/dist/playwright-VZPDVUEQ.js +0 -98660
@@ -1,693 +0,0 @@
1
- import { MaterialTrait, LIGHTING_PRESETS, LightingTrait, RenderingTrait, SHADER_PRESETS, ShaderTrait } from './chunk-GTA4Q3A3.js';
2
- import { HoloScriptCodeParser } from './chunk-MDR235RZ.js';
3
- import './chunk-PHENW4MQ.js';
4
- import './chunk-VVKVQZI6.js';
5
- import './chunk-OL46QLBJ.js';
6
-
7
- // src/HoloScriptPlusParser.ts
8
- var HoloScriptPlusParser = class {
9
- constructor() {
10
- this.baseParser = new HoloScriptCodeParser();
11
- }
12
- /**
13
- * Parse HoloScript+ code with trait annotations
14
- */
15
- parse(code) {
16
- const baseResult = this.baseParser.parse(code);
17
- const ast = baseResult.ast;
18
- return this.enhanceWithTraits(ast, code);
19
- }
20
- /**
21
- * Enhance AST nodes with trait annotations
22
- */
23
- enhanceWithTraits(ast, code) {
24
- return ast.map((node) => {
25
- if (node.type === "orb") {
26
- return this.enhanceOrbNodeWithTraits(node, code);
27
- }
28
- return node;
29
- });
30
- }
31
- /**
32
- * Enhance OrbNode with trait annotations
33
- */
34
- enhanceOrbNodeWithTraits(node, code) {
35
- const orbNode = node;
36
- const enhanced = {
37
- ...orbNode,
38
- traits: [],
39
- graphics: {}
40
- };
41
- const traits = this.extractTraitAnnotations(code, node.line);
42
- enhanced.traits = traits;
43
- if (traits.length > 0) {
44
- enhanced.graphics = this.buildGraphicsConfig(traits);
45
- }
46
- return enhanced;
47
- }
48
- /**
49
- * Extract trait annotations from code
50
- */
51
- extractTraitAnnotations(code, _orbLine) {
52
- const traits = [];
53
- const traitRegex = /@(material|lighting|rendering|shader|networked|rpc|joint|ik)\s*\{((?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*)\}/g;
54
- let match;
55
- while ((match = traitRegex.exec(code)) !== null) {
56
- const type = match[1];
57
- const configStr = match[2];
58
- try {
59
- const config = this.parseTraitConfig(configStr, type);
60
- switch (type) {
61
- case "material":
62
- traits.push({
63
- type: "material",
64
- config
65
- });
66
- break;
67
- case "lighting":
68
- traits.push({
69
- type: "lighting",
70
- config
71
- });
72
- break;
73
- case "rendering":
74
- traits.push({
75
- type: "rendering",
76
- config
77
- });
78
- break;
79
- case "shader":
80
- traits.push({
81
- type: "shader",
82
- config
83
- });
84
- break;
85
- case "networked":
86
- traits.push({
87
- type: "networked",
88
- config
89
- });
90
- break;
91
- case "rpc":
92
- traits.push({
93
- type: "rpc",
94
- config
95
- });
96
- break;
97
- case "joint":
98
- traits.push({
99
- type: "joint",
100
- config
101
- });
102
- break;
103
- case "ik":
104
- traits.push({
105
- type: "ik",
106
- config
107
- });
108
- break;
109
- }
110
- } catch (e) {
111
- console.warn(`Failed to parse ${type} trait annotation:`, e);
112
- }
113
- }
114
- return traits;
115
- }
116
- /**
117
- * Parse trait configuration with support for inline code (backticks)
118
- */
119
- parseTraitConfig(str, traitType) {
120
- if (traitType === "shader") {
121
- return this.parseShaderConfig(str);
122
- }
123
- return this.parseObjectLiteral(str);
124
- }
125
- /**
126
- * Parse shader configuration with inline GLSL support
127
- */
128
- parseShaderConfig(str) {
129
- const config = {};
130
- const backtickStrings = [];
131
- const processedStr = str.replace(/`([^`]*)`/g, (_, content) => {
132
- backtickStrings.push(content);
133
- return `__BACKTICK_${backtickStrings.length - 1}__`;
134
- });
135
- const parsed = this.parseObjectLiteral(processedStr);
136
- for (const [key, value] of Object.entries(parsed)) {
137
- if (typeof value === "string" && value.startsWith("__BACKTICK_")) {
138
- const index = parseInt(value.replace("__BACKTICK_", "").replace("__", ""));
139
- config[key] = backtickStrings[index];
140
- } else {
141
- config[key] = value;
142
- }
143
- }
144
- return config;
145
- }
146
- /**
147
- * Parse object literal from string
148
- * Supports nested objects and arrays
149
- */
150
- parseObjectLiteral(str) {
151
- const config = {};
152
- let depth = 0;
153
- let current = "";
154
- const pairs = [];
155
- for (let i = 0; i < str.length; i++) {
156
- const char = str[i];
157
- if (char === "{" || char === "[") {
158
- depth++;
159
- } else if (char === "}" || char === "]") {
160
- depth--;
161
- } else if (char === "," && depth === 0) {
162
- pairs.push(current.trim());
163
- current = "";
164
- continue;
165
- }
166
- current += char;
167
- }
168
- if (current.trim()) {
169
- pairs.push(current.trim());
170
- }
171
- for (const pair of pairs) {
172
- const colonIndex = pair.indexOf(":");
173
- if (colonIndex === -1) continue;
174
- const key = pair.substring(0, colonIndex).trim();
175
- const value = pair.substring(colonIndex + 1).trim();
176
- config[key] = this.parseValue(value);
177
- }
178
- return config;
179
- }
180
- /**
181
- * Parse individual values
182
- */
183
- parseValue(str) {
184
- str = str.trim();
185
- if (str === "true") return true;
186
- if (str === "false") return false;
187
- if (/^-?\d+(\.\d+)?$/.test(str)) return parseFloat(str);
188
- if (str.startsWith('"') && str.endsWith('"') || str.startsWith("'") && str.endsWith("'")) {
189
- return str.slice(1, -1);
190
- }
191
- if (str.startsWith("{") && str.endsWith("}")) {
192
- return this.parseObjectLiteral(str.slice(1, -1));
193
- }
194
- if (str.startsWith("[") && str.endsWith("]")) {
195
- const items = str.slice(1, -1).split(",");
196
- return items.map((item) => this.parseValue(item));
197
- }
198
- return str;
199
- }
200
- /**
201
- * Build GraphicsConfiguration from trait annotations
202
- */
203
- buildGraphicsConfig(traits) {
204
- const config = {};
205
- for (const trait of traits) {
206
- switch (trait.type) {
207
- case "material":
208
- config.material = trait.config;
209
- break;
210
- case "lighting":
211
- config.lighting = trait.config;
212
- break;
213
- case "rendering":
214
- config.rendering = trait.config;
215
- break;
216
- case "shader":
217
- config.shader = trait.config;
218
- break;
219
- case "networked":
220
- config.networked = trait.config;
221
- break;
222
- case "rpc":
223
- config.rpc = trait.config;
224
- break;
225
- case "joint":
226
- config.joint = trait.config;
227
- break;
228
- case "ik":
229
- config.ik = trait.config;
230
- break;
231
- }
232
- }
233
- return config;
234
- }
235
- /**
236
- * Validate trait annotation configuration
237
- */
238
- validateTraitAnnotation(trait) {
239
- const errors = [];
240
- switch (trait.type) {
241
- case "material":
242
- errors.push(...this.validateMaterialTrait(trait));
243
- break;
244
- case "lighting":
245
- errors.push(...this.validateLightingTrait(trait));
246
- break;
247
- case "rendering":
248
- errors.push(...this.validateRenderingTrait(trait));
249
- break;
250
- case "shader":
251
- errors.push(...this.validateShaderTrait(trait));
252
- break;
253
- case "networked":
254
- errors.push(...this.validateNetworkedTrait(trait));
255
- break;
256
- case "joint":
257
- errors.push(...this.validateJointTrait(trait));
258
- break;
259
- case "ik":
260
- errors.push(...this.validateIKTrait(trait));
261
- break;
262
- }
263
- return {
264
- valid: errors.length === 0,
265
- errors
266
- };
267
- }
268
- /**
269
- * Validate material trait configuration
270
- */
271
- validateMaterialTrait(trait) {
272
- const errors = [];
273
- const { config } = trait;
274
- if (config.pbr) {
275
- if (config.pbr.metallic !== void 0 && (config.pbr.metallic < 0 || config.pbr.metallic > 1)) {
276
- errors.push("material.pbr.metallic must be between 0 and 1");
277
- }
278
- if (config.pbr.roughness !== void 0 && (config.pbr.roughness < 0 || config.pbr.roughness > 1)) {
279
- errors.push("material.pbr.roughness must be between 0 and 1");
280
- }
281
- }
282
- if (config.compression && !["none", "dxt", "astc", "basis"].includes(config.compression)) {
283
- errors.push(`material.compression must be one of: none, dxt, astc, basis`);
284
- }
285
- return errors;
286
- }
287
- /**
288
- * Validate lighting trait configuration
289
- */
290
- validateLightingTrait(trait) {
291
- const errors = [];
292
- const { config } = trait;
293
- if (config.preset && !["studio", "outdoor", "interior", "night", "sunset"].includes(config.preset)) {
294
- errors.push("lighting.preset must be one of: studio, outdoor, interior, night, sunset");
295
- }
296
- if (config.lights) {
297
- config.lights.forEach((light, index) => {
298
- if (!["directional", "point", "spot", "area", "ambient"].includes(light.type)) {
299
- errors.push(`lighting.lights[${index}].type must be a valid light type`);
300
- }
301
- if (light.intensity !== void 0 && light.intensity < 0) {
302
- errors.push(`lighting.lights[${index}].intensity must be >= 0`);
303
- }
304
- });
305
- }
306
- return errors;
307
- }
308
- /**
309
- * Validate rendering trait configuration
310
- */
311
- validateRenderingTrait(trait) {
312
- const errors = [];
313
- const { config } = trait;
314
- if (config.quality && !["low", "medium", "high", "ultra"].includes(config.quality)) {
315
- errors.push("rendering.quality must be one of: low, medium, high, ultra");
316
- }
317
- if (config.platform && !["mobile", "vr", "desktop"].includes(config.platform)) {
318
- errors.push("rendering.platform must be one of: mobile, vr, desktop");
319
- }
320
- if (config.compression && !["none", "dxt", "astc", "basis"].includes(config.compression)) {
321
- errors.push("rendering.compression must be one of: none, dxt, astc, basis");
322
- }
323
- if (config.maxTextureResolution && config.maxTextureResolution < 128) {
324
- errors.push("rendering.maxTextureResolution must be >= 128");
325
- }
326
- if (config.targetFPS && (config.targetFPS < 24 || config.targetFPS > 240)) {
327
- errors.push("rendering.targetFPS must be between 24 and 240");
328
- }
329
- return errors;
330
- }
331
- /**
332
- * Get trait annotations as graphics traits
333
- */
334
- createGraphicsTraits(config) {
335
- return {
336
- material: config.material ? this.createMaterialTrait(config.material) : null,
337
- lighting: config.lighting ? this.createLightingTrait(config.lighting) : null,
338
- rendering: config.rendering ? this.createRenderingTrait(config.rendering) : null,
339
- shader: config.shader ? this.createShaderTrait(config.shader) : null
340
- };
341
- }
342
- /**
343
- * Create MaterialTrait from config
344
- */
345
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- dynamic material config from parsed AST
346
- createMaterialTrait(config) {
347
- const material = new MaterialTrait({
348
- type: config.type || "pbr",
349
- pbr: config.pbr
350
- });
351
- if (config.compression) {
352
- material.setCompression(config.compression);
353
- }
354
- if (config.instancing) {
355
- material.setInstanced(true);
356
- }
357
- if (config.streaming) {
358
- material.setTextureStreaming(true);
359
- }
360
- if (config.textures) {
361
- config.textures.forEach((tex) => {
362
- material.addTexture(tex);
363
- });
364
- }
365
- return material;
366
- }
367
- /**
368
- * Create LightingTrait from config
369
- */
370
- createLightingTrait(config) {
371
- let lighting;
372
- if (config.preset) {
373
- const presetFactory = LIGHTING_PRESETS[config.preset];
374
- const presetConfig = presetFactory ? presetFactory() : void 0;
375
- lighting = new LightingTrait(presetConfig);
376
- } else {
377
- lighting = new LightingTrait();
378
- }
379
- if (config.globalIllumination) {
380
- lighting.setGlobalIllumination(config.globalIllumination);
381
- }
382
- if (config.lights) {
383
- config.lights.forEach((light) => {
384
- lighting.addLight(light);
385
- });
386
- }
387
- return lighting;
388
- }
389
- /**
390
- * Create RenderingTrait from config
391
- */
392
- createRenderingTrait(config) {
393
- const rendering = new RenderingTrait();
394
- if (config.quality) {
395
- rendering.applyQualityPreset(config.quality);
396
- }
397
- if (config.platform) {
398
- switch (config.platform) {
399
- case "mobile":
400
- rendering.optimizeForMobile();
401
- break;
402
- case "vr":
403
- rendering.optimizeForVRAR(config.targetFPS || 90);
404
- break;
405
- case "desktop":
406
- rendering.optimizeForDesktop();
407
- break;
408
- }
409
- }
410
- if (config.lod !== false) {
411
- rendering.setupLODLevels("automatic");
412
- }
413
- if (config.culling !== false) {
414
- rendering.setFrustumCulling(true);
415
- }
416
- if (config.compression) {
417
- rendering.setTextureCompression(config.compression);
418
- }
419
- if (config.maxTextureResolution) {
420
- rendering.setMaxTextureResolution(config.maxTextureResolution);
421
- }
422
- return rendering;
423
- }
424
- /**
425
- * Create ShaderTrait from config
426
- */
427
- createShaderTrait(config) {
428
- if (config.preset && SHADER_PRESETS[config.preset]) {
429
- const preset = SHADER_PRESETS[config.preset];
430
- return new ShaderTrait(preset);
431
- }
432
- const shaderConfig = {
433
- source: {
434
- language: config.language || "glsl",
435
- vertex: config.vertex,
436
- fragment: config.fragment
437
- },
438
- uniforms: config.uniforms,
439
- includes: config.includes?.map((path) => ({ path })),
440
- blendMode: config.blendMode,
441
- depthTest: config.depthTest,
442
- depthWrite: config.depthWrite,
443
- cullFace: config.cullFace
444
- };
445
- return new ShaderTrait(shaderConfig);
446
- }
447
- /**
448
- * Validate shader trait configuration
449
- */
450
- validateShaderTrait(trait) {
451
- const errors = [];
452
- const { config } = trait;
453
- if (!config.preset && !config.vertex && !config.fragment) {
454
- errors.push("shader must have either preset or vertex/fragment code");
455
- }
456
- if (config.preset && !SHADER_PRESETS[config.preset]) {
457
- errors.push(
458
- `shader.preset "${config.preset}" is not a valid preset. Available: hologram, forceField, dissolve`
459
- );
460
- }
461
- if (config.language && !["glsl", "hlsl", "wgsl"].includes(config.language)) {
462
- errors.push("shader.language must be one of: glsl, hlsl, wgsl");
463
- }
464
- if (config.blendMode && !["opaque", "blend", "additive", "multiply"].includes(config.blendMode)) {
465
- errors.push("shader.blendMode must be one of: opaque, blend, additive, multiply");
466
- }
467
- if (config.cullFace && !["none", "front", "back"].includes(config.cullFace)) {
468
- errors.push("shader.cullFace must be one of: none, front, back");
469
- }
470
- return errors;
471
- }
472
- /**
473
- * Validate networked trait configuration
474
- */
475
- validateNetworkedTrait(trait) {
476
- const errors = [];
477
- const { config } = trait;
478
- if (config.mode && !["owner", "shared", "server"].includes(config.mode)) {
479
- errors.push("networked.mode must be one of: owner, shared, server");
480
- }
481
- if (config.syncRate !== void 0 && (config.syncRate < 1 || config.syncRate > 60)) {
482
- errors.push("networked.syncRate must be between 1 and 60 Hz");
483
- }
484
- return errors;
485
- }
486
- /**
487
- * Validate joint trait configuration
488
- */
489
- validateJointTrait(trait) {
490
- const errors = [];
491
- const { config } = trait;
492
- if (!config.jointType) {
493
- errors.push("joint.jointType is required");
494
- } else if (!["fixed", "hinge", "ball", "slider", "spring"].includes(config.jointType)) {
495
- errors.push("joint.jointType must be one of: fixed, hinge, ball, slider, spring");
496
- }
497
- if (config.breakForce !== void 0 && config.breakForce < 0) {
498
- errors.push("joint.breakForce must be >= 0");
499
- }
500
- return errors;
501
- }
502
- /**
503
- * Validate IK trait configuration
504
- */
505
- validateIKTrait(trait) {
506
- const errors = [];
507
- const { config } = trait;
508
- if (!config.chain) {
509
- errors.push("ik.chain is required");
510
- }
511
- if (config.chainLength !== void 0 && config.chainLength < 1) {
512
- errors.push("ik.chainLength must be >= 1");
513
- }
514
- if (config.iterations !== void 0 && config.iterations < 1) {
515
- errors.push("ik.iterations must be >= 1");
516
- }
517
- if (config.weight !== void 0 && (config.weight < 0 || config.weight > 1)) {
518
- errors.push("ik.weight must be between 0 and 1");
519
- }
520
- return errors;
521
- }
522
- // ==========================================================================
523
- // Module System — @import / @export
524
- // ==========================================================================
525
- /**
526
- * Parse HoloScript+ code and also extract module-level @import / @export
527
- * declarations from the source header.
528
- *
529
- * Returns both the enhanced AST and a structured module header so callers
530
- * (e.g. ModuleResolver, SceneRunner) can understand the file's dependencies
531
- * without running a separate pass.
532
- */
533
- parseWithModules(code, fromFile = "<inline>") {
534
- const ast = this.parse(code);
535
- const { imports, exports: exports$1 } = this.parseModuleHeader(code, fromFile);
536
- return { ast, imports, exports: exports$1 };
537
- }
538
- /**
539
- * Scan the top of a source string and return all @import / @export
540
- * declarations before the first non-directive, non-comment line.
541
- */
542
- parseModuleHeader(code, _fromFile = "<inline>") {
543
- const imports = [];
544
- const exports$1 = [];
545
- for (const rawLine of code.split("\n")) {
546
- const line = rawLine.trim();
547
- if (!line || line.startsWith("//") || line.startsWith("#")) continue;
548
- const imp = this.parseImportDirective(line);
549
- if (imp) {
550
- imports.push(imp);
551
- continue;
552
- }
553
- const exp = this.parseExportDirective(line);
554
- if (exp) {
555
- exports$1.push(...exp);
556
- continue;
557
- }
558
- break;
559
- }
560
- return { imports, exports: exports$1 };
561
- }
562
- /**
563
- * Parse a single @import directive line.
564
- *
565
- * Accepted forms:
566
- * @import @physics, @ai_npc from "./physics.hs"
567
- * @import * from "./shared.hs"
568
- * @import @physics as @p from "./physics.hs"
569
- *
570
- * Returns null if the line is not an @import.
571
- */
572
- parseImportDirective(line) {
573
- const m = line.match(/^@import\s+([\w@*,\s]+?)(?:\s+as\s+(@\w+))?\s+from\s+["']([^"']+)["']/);
574
- if (!m) return null;
575
- const specifiersPart = m[1].trim();
576
- const alias = m[2]?.replace("@", "");
577
- const source = m[3];
578
- const specifiers = specifiersPart === "*" ? ["*"] : specifiersPart.split(",").map((s) => s.trim().replace("@", "")).filter(Boolean);
579
- return { specifiers, source, ...alias ? { alias } : {} };
580
- }
581
- /**
582
- * Parse a single @export directive line.
583
- *
584
- * @export @turret, @enemy
585
- *
586
- * Returns null if the line is not an @export.
587
- */
588
- parseExportDirective(line) {
589
- const m = line.match(/^@export\s+([\w@,\s]+)/);
590
- if (!m) return null;
591
- return m[1].split(",").map((s) => s.trim().replace("@", "")).filter(Boolean);
592
- }
593
- /**
594
- * Parse a single trait composition assignment line.
595
- *
596
- * @turret = @physics + @ai_npc + @targeting
597
- *
598
- * This can appear anywhere in a HoloScript+ file body.
599
- * Returns null if the line is not a composition assignment.
600
- *
601
- * The returned AST node type is `'trait_composition'` and can be
602
- * emitted by callers into the broader AST to register composed traits.
603
- */
604
- parseCompositionDirective(line) {
605
- const m = line.trim().match(/^@(\w+)\s*=\s*((?:@\w+\s*\+\s*)*@\w+)/);
606
- if (!m) return null;
607
- const name = m[1];
608
- const sources = m[2].split("+").map((s) => s.trim().replace("@", "")).filter(Boolean);
609
- return { type: "trait_composition", name, sources };
610
- }
611
- /**
612
- * Scan an entire source string for trait composition assignments and return
613
- * all found definitions in document order.
614
- *
615
- * @param code Full HoloScript+ source
616
- * @returns Array of composition definitions ready for TraitBinder registration
617
- */
618
- parseCompositionBlock(code) {
619
- const results = [];
620
- for (const rawLine of code.split("\n")) {
621
- const node = this.parseCompositionDirective(rawLine.trim());
622
- if (node) results.push(node);
623
- }
624
- return results;
625
- }
626
- // ==========================================================================
627
- // Reactive State — state { } / on event { } (Sprint 3)
628
- // ==========================================================================
629
- /**
630
- * Parse a `state { ... }` block from HoloScript+ source.
631
- *
632
- * Accepted syntax:
633
- * state {
634
- * hp = 100
635
- * speed = 5.5
636
- * alive = true
637
- * name = "hero"
638
- * }
639
- *
640
- * The block may appear inline or multi-line. Values are coerced to their
641
- * inferred JS types (number, boolean, string). The returned list is ordered
642
- * by declaration order and is suitable for `new ReactiveState(entries)`.
643
- *
644
- * Returns null if no `state {` opener is found in the source.
645
- */
646
- parseStateBlock(code) {
647
- const m = code.match(/\bstate\s*\{([^}]*)\}/s);
648
- if (!m) return null;
649
- const body = m[1];
650
- const vars = [];
651
- for (const rawLine of body.split("\n")) {
652
- const line = rawLine.trim();
653
- if (!line || line.startsWith("//")) continue;
654
- const pair = line.match(/^(\w+)\s*=\s*(.+?)[\s;,]*$/);
655
- if (!pair) continue;
656
- const [, varName, rawVal] = pair;
657
- let value = rawVal.trim();
658
- if (rawVal === "true") value = true;
659
- else if (rawVal === "false") value = false;
660
- else if (!isNaN(Number(rawVal))) value = Number(rawVal);
661
- else if (/^["'](.*)["']$/.test(rawVal)) value = rawVal.slice(1, -1);
662
- vars.push({ name: varName, value });
663
- }
664
- return vars;
665
- }
666
- /**
667
- * Parse all `on <event> { ... }` handler blocks from HoloScript+ source.
668
- *
669
- * Accepted syntax:
670
- * on collide { hp = hp - 10 }
671
- * on death { alive = false }
672
- *
673
- * Returns an array of `{ event, body }` records ordered by appearance.
674
- * The `body` string is the raw block content suitable for ExpressionEvaluator.
675
- * Returns an empty array if no `on` blocks are found.
676
- */
677
- parseOnBlock(code) {
678
- const results = [];
679
- const pattern = /\bon\s+(\w+)\s*\{([^}]*)\}/gs;
680
- let m;
681
- while ((m = pattern.exec(code)) !== null) {
682
- const event = m[1];
683
- const body = m[2].trim();
684
- results.push({ event, body });
685
- }
686
- return results;
687
- }
688
- };
689
- var HoloScriptPlusParser_default = HoloScriptPlusParser;
690
-
691
- export { HoloScriptPlusParser, HoloScriptPlusParser_default as default };
692
- //# sourceMappingURL=HoloScriptPlusParser-JLJDXHSC.js.map
693
- //# sourceMappingURL=HoloScriptPlusParser-JLJDXHSC.js.map