@holoscript/core 8.0.8 → 8.0.10

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 (463) hide show
  1. package/LICENSE +21 -0
  2. package/bin/holoscript.cjs +5 -1
  3. package/dist/GLTFPipeline-L76YTXKA.js +15 -0
  4. package/dist/GLTFPipeline-ZWJN7GI6.cjs +36 -0
  5. package/dist/HoloCompositionParser-K76KTEEE.js +12 -0
  6. package/dist/HoloCompositionParser-UZH6Y4HO.cjs +45 -0
  7. package/dist/HoloScriptCodeParser-2D4ERFUZ.js +6 -0
  8. package/dist/HoloScriptCodeParser-UDRLDA7I.cjs +23 -0
  9. package/dist/HoloScriptPlusParser-FTMCGWXD.js +13 -0
  10. package/dist/HoloScriptPlusParser-LQR5GIKF.cjs +30 -0
  11. package/dist/HoloScriptRuntime-UTRLJI5L.js +12 -0
  12. package/dist/HoloScriptRuntime-YBYXJHJN.cjs +21 -0
  13. package/dist/SceneIRCompiler-63KA3M2F.js +17 -0
  14. package/dist/SceneIRCompiler-KWUFHZ4O.cjs +42 -0
  15. package/dist/{USDZExporter-AUHZODOF.cjs → USDZExporter-ML4UMIGC.cjs} +3 -3
  16. package/dist/{USDZExporter-GXB4AUSG.js → USDZExporter-ZFKLQ76G.js} +3 -3
  17. package/dist/agents/index.cjs +1 -1
  18. package/dist/agents/index.js +1 -1
  19. package/dist/audit/AuditLogger.d.ts +106 -0
  20. package/dist/audit/AuditQueryBuilder.d.ts +79 -0
  21. package/dist/audit/ComplianceReporter.d.ts +90 -0
  22. package/dist/audit/index.d.ts +13 -0
  23. package/dist/{chunk-FGMDMJM7.js → chunk-2BYAUHBO.js} +3 -3
  24. package/dist/{chunk-EDPYCLRC.cjs → chunk-2E6PP5UE.cjs} +83 -59
  25. package/dist/{chunk-GASCWJK5.js → chunk-2EGGAZT3.js} +65 -287
  26. package/dist/{chunk-SIEXCILW.js → chunk-2I3XAGMF.js} +3 -3
  27. package/dist/{chunk-OS533P33.cjs → chunk-2KKOYZYI.cjs} +1074 -1655
  28. package/dist/chunk-2MQKNDNH.js +51 -0
  29. package/dist/{chunk-7DMMMBCY.cjs → chunk-2X3IPCBK.cjs} +10 -10
  30. package/dist/chunk-2ZOTBO25.cjs +202 -0
  31. package/dist/chunk-356N4NPM.cjs +152 -0
  32. package/dist/{chunk-X3GJPRVK.cjs → chunk-36NPLOI4.cjs} +92 -81
  33. package/dist/{chunk-SLU6UPJI.cjs → chunk-37HHY7RH.cjs} +5 -5
  34. package/dist/{chunk-YDPEHCCI.cjs → chunk-3CDDRUER.cjs} +3 -118
  35. package/dist/chunk-3F7ZZWIN.js +1651 -0
  36. package/dist/chunk-3ILD7TKP.cjs +187 -0
  37. package/dist/{chunk-X27QRG4C.cjs → chunk-3IUHTGDD.cjs} +153 -41
  38. package/dist/{chunk-PXNZ6TME.js → chunk-4376VHNJ.js} +60 -36
  39. package/dist/{chunk-YKGPCZEE.cjs → chunk-4FIBOJW6.cjs} +10 -10
  40. package/dist/chunk-4Q7RKQQI.cjs +14195 -0
  41. package/dist/{chunk-YCM6QQRT.cjs → chunk-566ZB4LZ.cjs} +180 -8
  42. package/dist/{chunk-2Y3V22SG.js → chunk-5CURIYGT.js} +3 -3
  43. package/dist/{chunk-QBWNJXNR.js → chunk-5FYMCVBY.js} +5 -5
  44. package/dist/{chunk-ZA34AN3R.js → chunk-5LVFTGKH.js} +841 -12
  45. package/dist/{chunk-Z6PMDS4G.js → chunk-5OUOMBKK.js} +1090 -53
  46. package/dist/chunk-63AUAIL6.js +48 -0
  47. package/dist/chunk-655FATJU.js +110 -0
  48. package/dist/{chunk-TQ377OLB.cjs → chunk-65S62L4D.cjs} +28 -22
  49. package/dist/chunk-6NTAZN5Z.cjs +502 -0
  50. package/dist/chunk-6TRX6AR2.js +9376 -0
  51. package/dist/chunk-6ZCCLKS2.cjs +51 -0
  52. package/dist/{chunk-MDR235RZ.js → chunk-734OB5SK.js} +721 -8
  53. package/dist/{chunk-Q2Q34NF3.js → chunk-77QI552M.js} +6 -6
  54. package/dist/{chunk-WKX5AMOY.js → chunk-7I74JWPW.js} +3 -3
  55. package/dist/{chunk-5FSKKMR7.cjs → chunk-7IDJDMPU.cjs} +232 -4
  56. package/dist/chunk-7VBKRGIZ.cjs +847 -0
  57. package/dist/{chunk-KCPHASCO.js → chunk-AATYYLYK.js} +5 -5
  58. package/dist/{chunk-DTGBOSEM.cjs → chunk-AWXFEAQL.cjs} +12 -12
  59. package/dist/{chunk-THCK6ECW.js → chunk-B3CWTCK2.js} +231 -3
  60. package/dist/chunk-BCP4E7MD.cjs +997 -0
  61. package/dist/chunk-BG7RPYJP.js +91 -0
  62. package/dist/{chunk-VF257YKO.js → chunk-BP4KTMLY.js} +117 -5
  63. package/dist/{chunk-YN6IETRZ.js → chunk-BQJ3YBF3.js} +6424 -987
  64. package/dist/{chunk-7X5PNIQJ.js → chunk-BXSOEQI3.js} +27 -25
  65. package/dist/{chunk-WFKVS2K4.cjs → chunk-C65C5VED.cjs} +1101 -55
  66. package/dist/{chunk-KOUAQL2B.cjs → chunk-CANAL6CT.cjs} +1569 -168
  67. package/dist/{chunk-FDSGHPAK.js → chunk-CBSDJF3B.js} +3 -3
  68. package/dist/{chunk-FEWUHQNM.cjs → chunk-CFVK26P4.cjs} +4 -4
  69. package/dist/{chunk-M7K4LE66.cjs → chunk-CI33NINL.cjs} +4 -4
  70. package/dist/{chunk-2OWDB4FB.js → chunk-CKV5NYAE.js} +6 -6
  71. package/dist/{chunk-LPS5AMQD.cjs → chunk-CM4NHXVO.cjs} +24 -24
  72. package/dist/chunk-D3HSRXYB.js +115 -0
  73. package/dist/{chunk-FNHJRI32.js → chunk-DBH3D2MU.js} +1561 -160
  74. package/dist/{chunk-GW3LKD5C.js → chunk-DJNH4HFW.js} +3 -3
  75. package/dist/{chunk-2GCNOI2U.cjs → chunk-DN6F4DHH.cjs} +9 -3
  76. package/dist/chunk-DQRJ5RJG.js +432 -0
  77. package/dist/{chunk-C7ZBSV2Q.js → chunk-DUG3OQAS.js} +106 -43
  78. package/dist/chunk-ECUYJOJ2.cjs +199 -0
  79. package/dist/chunk-EEMTCAK7.js +182 -0
  80. package/dist/{chunk-3SKLAUDD.cjs → chunk-EI3J6LTW.cjs} +359 -581
  81. package/dist/{chunk-SSSN7VAM.js → chunk-EM2OGPYE.js} +4 -4
  82. package/dist/{chunk-56VOWURB.cjs → chunk-ENZCIQZC.cjs} +522 -453
  83. package/dist/chunk-ESBXUYOC.cjs +836 -0
  84. package/dist/{chunk-L5U4W6JC.js → chunk-ESSEF6U2.js} +4 -4
  85. package/dist/chunk-ET3AN4W3.js +824 -0
  86. package/dist/chunk-EXKSFGSX.cjs +14 -14
  87. package/dist/{chunk-I76GIKN7.cjs → chunk-F3YT6GUF.cjs} +17 -17
  88. package/dist/{chunk-WRWEX5ZF.js → chunk-F75DZBBI.js} +3 -3
  89. package/dist/{chunk-4JGRWHZJ.js → chunk-FG6PYGIZ.js} +12 -6
  90. package/dist/chunk-FGGJQRLZ.js +14 -14
  91. package/dist/{chunk-SXOSDZD6.js → chunk-FWCHPCD4.js} +128 -10
  92. package/dist/{chunk-XW6IXEQH.cjs → chunk-G35CAQ7I.cjs} +5 -5
  93. package/dist/{chunk-7VMGP2FW.js → chunk-G6KACNMO.js} +132 -188
  94. package/dist/{chunk-FJPADH77.cjs → chunk-GAWJJAGT.cjs} +6 -6
  95. package/dist/chunk-GGR7QUKK.cjs +4724 -0
  96. package/dist/chunk-GIBF4BHH.js +14098 -0
  97. package/dist/{chunk-AWB7QYY6.cjs → chunk-GILYQ5VH.cjs} +6 -6
  98. package/dist/{chunk-FWVYAMNW.cjs → chunk-GKFCHGCM.cjs} +4 -4
  99. package/dist/{chunk-Y3ZFVUUU.js → chunk-GLEJ2TLS.js} +3 -3
  100. package/dist/{chunk-3GWWJT7L.js → chunk-GP3OKSKT.js} +13 -13
  101. package/dist/chunk-GTIPOEHN.js +196 -0
  102. package/dist/{chunk-LMJ5EBV7.cjs → chunk-GZPUA2TL.cjs} +16 -15
  103. package/dist/{chunk-IELX2OKI.js → chunk-H4LJ4HEA.js} +3 -115
  104. package/dist/{chunk-ACVWFGBI.cjs → chunk-HCX4SMFK.cjs} +3 -3
  105. package/dist/{chunk-HYNTS5CP.js → chunk-HHRZ6STP.js} +24 -2
  106. package/dist/chunk-HIDEIEFG.js +48 -0
  107. package/dist/{chunk-W6RW64BB.cjs → chunk-HSWBIDZM.cjs} +228 -5
  108. package/dist/{chunk-GSOUNWEL.js → chunk-HVX7QQYK.js} +1035 -1616
  109. package/dist/{chunk-TRCGG42I.cjs → chunk-IFW5IW4L.cjs} +6502 -1019
  110. package/dist/{chunk-F5LKJ6F5.cjs → chunk-IJU6AS67.cjs} +32 -28
  111. package/dist/{chunk-TVANHNJ7.js → chunk-IK6Z2HNC.js} +173 -3
  112. package/dist/{chunk-QGMUTVVH.cjs → chunk-IS7NTKY5.cjs} +20 -20
  113. package/dist/{chunk-YFVQWSNJ.js → chunk-IXWGYWH6.js} +3 -3
  114. package/dist/chunk-J2DAS2PL.js +148 -0
  115. package/dist/chunk-JBQXZIWB.js +148 -0
  116. package/dist/chunk-JBYBMBMW.js +261 -0
  117. package/dist/{chunk-LWUOUCYL.js → chunk-JEJ7TT54.js} +5 -5
  118. package/dist/{chunk-DUCB6LGL.js → chunk-JOTCTHN5.js} +211 -5
  119. package/dist/{chunk-47RUFYKR.js → chunk-K56UVEXV.js} +3 -3
  120. package/dist/{chunk-XSFNHP2E.js → chunk-KB26H447.js} +3 -3
  121. package/dist/{chunk-3NGDZZR4.js → chunk-KEYG7HGY.js} +430 -37
  122. package/dist/{chunk-DY72BMU5.js → chunk-KFVNCW4Q.js} +4 -4
  123. package/dist/chunk-KPGC7SK2.js +192 -0
  124. package/dist/chunk-KROXXBK5.cjs +53 -0
  125. package/dist/{chunk-ZPZAVHXL.cjs → chunk-LB3ZZMKT.cjs} +137 -19
  126. package/dist/chunk-LDYZWNJW.cjs +1654 -0
  127. package/dist/{chunk-UGXHYIWT.cjs → chunk-LHNHO27U.cjs} +28 -28
  128. package/dist/{chunk-ULMSSHCJ.cjs → chunk-LMB555QB.cjs} +405 -38
  129. package/dist/{chunk-CBJY23VL.js → chunk-MD4IVS42.js} +3 -3
  130. package/dist/{chunk-VMLKSV26.js → chunk-MDDWEBCX.js} +226 -3
  131. package/dist/chunk-MUWH4QK5.cjs +94 -0
  132. package/dist/{chunk-T6W3Z3SH.cjs → chunk-N2ILK7BF.cjs} +4 -4
  133. package/dist/{chunk-6EX3I5P4.cjs → chunk-N74QRJGP.cjs} +6 -6
  134. package/dist/chunk-NFFHLX37.cjs +132 -0
  135. package/dist/chunk-NJSYWX7H.js +190 -0
  136. package/dist/{chunk-SH5PPVK7.cjs → chunk-NQN5LFN4.cjs} +165 -221
  137. package/dist/chunk-NTQRFOPP.cjs +56 -0
  138. package/dist/{chunk-YFWRJW4B.js → chunk-NWMJPTVL.js} +51 -55
  139. package/dist/{chunk-63ZGNR2T.cjs → chunk-OC6GV5QH.cjs} +42 -42
  140. package/dist/{chunk-7E7GCQCK.js → chunk-OG3MBHM3.js} +9 -3
  141. package/dist/chunk-OMNHTCS4.cjs +264 -0
  142. package/dist/chunk-OQXB6NNC.cjs +117 -0
  143. package/dist/{chunk-Y57W2CT5.cjs → chunk-OV46CCA2.cjs} +51 -55
  144. package/dist/{chunk-6PRZIHGL.cjs → chunk-OV6HHKLE.cjs} +21 -266
  145. package/dist/{chunk-C37BHB7N.cjs → chunk-P26YYPOO.cjs} +5 -5
  146. package/dist/{chunk-2BZHWUSR.cjs → chunk-P7JEKJTZ.cjs} +16 -16
  147. package/dist/{chunk-NGBXXZLL.cjs → chunk-PDXX5UI4.cjs} +45 -45
  148. package/dist/{chunk-FHQFPYV4.js → chunk-PJFTTSKE.js} +8 -7
  149. package/dist/{chunk-GVFJ6T4S.cjs → chunk-PVODJEJ7.cjs} +721 -8
  150. package/dist/{chunk-ZZ7RO2UQ.js → chunk-Q265VZJ4.js} +3 -3
  151. package/dist/{chunk-E7JP3BS3.cjs → chunk-Q47JEE2C.cjs} +4 -4
  152. package/dist/chunk-QBY7LRN2.js +281 -0
  153. package/dist/{chunk-GH6C2QGW.cjs → chunk-QEDMOGF3.cjs} +857 -16
  154. package/dist/{chunk-5WUNN6ZN.cjs → chunk-QHSAVOOL.cjs} +24 -2
  155. package/dist/chunk-QJNCDVYM.cjs +137 -0
  156. package/dist/chunk-QM7FJB5W.js +4717 -0
  157. package/dist/chunk-QQFB4RT2.cjs +448 -0
  158. package/dist/chunk-QSYBHQAD.cjs +196 -0
  159. package/dist/{chunk-2YSNA2F2.cjs → chunk-QVJMDVYZ.cjs} +5 -5
  160. package/dist/chunk-RAJMAX6D.js +131 -0
  161. package/dist/{chunk-VVKVQZI6.js → chunk-RAN3ECAS.js} +3 -3
  162. package/dist/chunk-RKGUZBOC.js +79 -0
  163. package/dist/{chunk-HLFDZ35S.cjs → chunk-RRQIAJLQ.cjs} +8 -8
  164. package/dist/{chunk-PABONWKI.js → chunk-RXQNRZ5F.js} +3 -3
  165. package/dist/{chunk-7ZHYEITD.cjs → chunk-S4O7CFHQ.cjs} +10 -11
  166. package/dist/chunk-SE7ANBGN.js +128 -0
  167. package/dist/{chunk-X2AVEAZM.cjs → chunk-SJIRCTIS.cjs} +176 -2
  168. package/dist/{chunk-WXQ57LAO.js → chunk-SQXAZHDG.js} +4 -4
  169. package/dist/chunk-SR73L5ZP.cjs +84 -0
  170. package/dist/{chunk-OABEO6HH.js → chunk-SZOLTWWD.js} +2349 -214
  171. package/dist/{chunk-5JEU52DW.js → chunk-TPZ3BN2D.js} +3 -3
  172. package/dist/{chunk-QFU53KRH.js → chunk-TSTFYGGX.js} +4 -5
  173. package/dist/{chunk-EBS32AJI.cjs → chunk-TZCFKZ6Z.cjs} +5 -5
  174. package/dist/chunk-UCVZXQ63.js +724 -0
  175. package/dist/chunk-UGQ3QNV6.js +992 -0
  176. package/dist/chunk-UNMVGZVW.js +142 -0
  177. package/dist/{chunk-TEVX443G.js → chunk-UTUD6GJI.js} +178 -6
  178. package/dist/chunk-UXBYA7DV.cjs +155 -0
  179. package/dist/chunk-V6GXFSK7.cjs +443 -0
  180. package/dist/chunk-VHORVGCG.cjs +761 -0
  181. package/dist/{chunk-B4EKV6HQ.js → chunk-VKCTYLDN.js} +500 -442
  182. package/dist/{chunk-O3MGZDCT.cjs → chunk-VTEXJOSD.cjs} +63 -63
  183. package/dist/chunk-VVAAZITA.cjs +287 -0
  184. package/dist/{chunk-V7AKE5VT.cjs → chunk-W2GA3EQB.cjs} +435 -42
  185. package/dist/chunk-W4GABFCR.js +37 -0
  186. package/dist/chunk-WKEK4NCA.js +490 -0
  187. package/dist/{chunk-5A4TCHOC.cjs → chunk-WNYXT4TE.cjs} +4 -4
  188. package/dist/{chunk-S762UEV5.js → chunk-WTH23ISI.js} +6 -6
  189. package/dist/{chunk-BTKZGHAV.js → chunk-WWNCM473.js} +10 -6
  190. package/dist/{chunk-4YNYPHH3.cjs → chunk-X75H75UY.cjs} +2351 -213
  191. package/dist/{chunk-LYJJI7ZK.cjs → chunk-XCUDDFKC.cjs} +216 -9
  192. package/dist/chunk-YAO4HPJL.cjs +120 -0
  193. package/dist/chunk-YKY2JBER.cjs +9443 -0
  194. package/dist/chunk-YP5CHEYU.cjs +154 -0
  195. package/dist/{chunk-WRNEH5MO.js → chunk-YW3I2FQL.js} +18 -7
  196. package/dist/{chunk-BRNUPDHJ.js → chunk-Z557DVYN.js} +386 -19
  197. package/dist/{chunk-VSACG2AR.js → chunk-Z6LZUYZF.js} +21 -264
  198. package/dist/chunk-ZHPMP447.cjs +43 -0
  199. package/dist/{chunk-LODTHGST.cjs → chunk-ZK7KX5CD.cjs} +133 -70
  200. package/dist/{chunk-CCPSNT6B.cjs → chunk-ZRPALBQB.cjs} +5 -5
  201. package/dist/chunk-ZVFHPMC5.js +824 -0
  202. package/dist/chunk-ZVQMKUGJ.js +443 -0
  203. package/dist/cli/holoscript-runner.cjs +86 -48
  204. package/dist/cli/holoscript-runner.js +54 -16
  205. package/dist/codebase/index.cjs +1 -1
  206. package/dist/codebase/index.js +1 -1
  207. package/dist/compiler/agent-inference.cjs +11 -11
  208. package/dist/compiler/agent-inference.js +9 -6
  209. package/dist/compiler/android-xr.cjs +13 -12
  210. package/dist/compiler/android-xr.js +11 -10
  211. package/dist/compiler/android.cjs +12 -12
  212. package/dist/compiler/android.js +10 -10
  213. package/dist/compiler/business-quest.cjs +10 -10
  214. package/dist/compiler/business-quest.js +2 -2
  215. package/dist/compiler/coco.cjs +1 -1
  216. package/dist/compiler/coco.js +1 -1
  217. package/dist/compiler/context.cjs +9 -9
  218. package/dist/compiler/context.js +6 -6
  219. package/dist/compiler/daimon-seed.cjs +36 -0
  220. package/dist/compiler/daimon-seed.js +12 -0
  221. package/dist/compiler/domain-block-utils.cjs +205 -156
  222. package/dist/compiler/domain-block-utils.js +8 -7
  223. package/dist/compiler/dtdl.cjs +10 -10
  224. package/dist/compiler/dtdl.js +7 -7
  225. package/dist/compiler/gltf-pipeline.cjs +9 -9
  226. package/dist/compiler/gltf-pipeline.js +2 -2
  227. package/dist/compiler/godot.cjs +10 -9
  228. package/dist/compiler/godot.js +9 -8
  229. package/dist/compiler/incremental.cjs +11 -11
  230. package/dist/compiler/incremental.js +6 -6
  231. package/dist/compiler/index.cjs +2585 -3273
  232. package/dist/compiler/index.d.ts +149 -35
  233. package/dist/compiler/index.js +2197 -3102
  234. package/dist/compiler/ios.cjs +11 -11
  235. package/dist/compiler/ios.js +9 -9
  236. package/dist/compiler/llm-provider-capabilities.cjs +9 -9
  237. package/dist/compiler/llm-provider-capabilities.js +6 -6
  238. package/dist/compiler/nodetoy.cjs +1 -1
  239. package/dist/compiler/nodetoy.js +1 -1
  240. package/dist/compiler/openxr.cjs +11 -10
  241. package/dist/compiler/openxr.js +10 -9
  242. package/dist/compiler/remotion.cjs +1 -1
  243. package/dist/compiler/remotion.js +1 -1
  244. package/dist/compiler/reproducibility.cjs +1 -1
  245. package/dist/compiler/reproducibility.js +1 -1
  246. package/dist/compiler/sdf.cjs +11 -10
  247. package/dist/compiler/sdf.js +9 -8
  248. package/dist/compiler/semantic-scene.cjs +7 -7
  249. package/dist/compiler/semantic-scene.js +2 -2
  250. package/dist/compiler/state.cjs +9 -9
  251. package/dist/compiler/state.js +7 -7
  252. package/dist/compiler/trait-composition.cjs +11 -11
  253. package/dist/compiler/trait-composition.js +7 -7
  254. package/dist/compiler/traits/ProvenanceSemiring.d.ts +167 -0
  255. package/dist/compiler/traits/Semiring.d.ts +26 -0
  256. package/dist/compiler/unity.cjs +11 -10
  257. package/dist/compiler/unity.js +10 -9
  258. package/dist/compiler/unreal.cjs +12 -11
  259. package/dist/compiler/unreal.js +10 -9
  260. package/dist/compiler/urdf.cjs +18 -17
  261. package/dist/compiler/urdf.js +9 -8
  262. package/dist/compiler/usd-physics.cjs +11 -10
  263. package/dist/compiler/usd-physics.js +8 -7
  264. package/dist/compiler/visionos.cjs +11 -10
  265. package/dist/compiler/visionos.js +10 -9
  266. package/dist/compiler/vrchat.cjs +11 -10
  267. package/dist/compiler/vrchat.js +9 -8
  268. package/dist/compiler/wasm.cjs +14 -13
  269. package/dist/compiler/wasm.js +9 -8
  270. package/dist/compiler/webgpu.cjs +10 -9
  271. package/dist/compiler/webgpu.js +9 -8
  272. package/dist/constants.cjs +398 -0
  273. package/dist/constants.js +9 -0
  274. package/dist/coordinators/index.cjs +4 -1
  275. package/dist/coordinators/index.js +4 -1
  276. package/dist/debugger.cjs +11 -9
  277. package/dist/debugger.js +9 -7
  278. package/dist/{dist-ACXG6IH5.cjs → dist-GRMOP2UL.cjs} +341 -65
  279. package/dist/{dist-VD4L6V7Q.js → dist-ZBUKU2JG.js} +333 -63
  280. package/dist/entries/interop.cjs +23 -23
  281. package/dist/entries/interop.js +3 -3
  282. package/dist/entries/scripting.cjs +12 -11
  283. package/dist/entries/scripting.js +8 -7
  284. package/dist/evolution/index.cjs +66 -0
  285. package/dist/evolution/index.d.ts +162 -0
  286. package/dist/evolution/index.js +17 -0
  287. package/dist/hololand/index.cjs +41 -37
  288. package/dist/hololand/index.js +3 -3
  289. package/dist/index.cjs +12394 -3224
  290. package/dist/index.d.ts +260 -18
  291. package/dist/index.js +10755 -2182
  292. package/dist/keyword-registry/PluginKeywordRegistry.d.ts +138 -0
  293. package/dist/keyword-registry/index.cjs +29 -0
  294. package/dist/keyword-registry/index.d.ts +1 -0
  295. package/dist/keyword-registry/index.js +4 -0
  296. package/dist/math/tropical-spmv.cjs +11 -11
  297. package/dist/math/tropical-spmv.d.ts +1 -0
  298. package/dist/math/tropical-spmv.js +2 -2
  299. package/dist/math/tropicalSpmv.d.ts +43 -0
  300. package/dist/math/vec3.cjs +1 -1
  301. package/dist/math/vec3.js +1 -1
  302. package/dist/matter/StagedMatter.d.ts +82 -0
  303. package/dist/matter/index.cjs +17 -0
  304. package/dist/matter/index.d.ts +1 -0
  305. package/dist/matter/index.js +4 -0
  306. package/dist/{ml-dsa-Z7JDKW4L.js → ml-dsa-J6VKVT4K.js} +3 -3
  307. package/dist/{ml-dsa-FSKBTE3W.cjs → ml-dsa-MTIK4ZUQ.cjs} +23 -23
  308. package/dist/paper-0c-spike/index.cjs +1 -1
  309. package/dist/paper-0c-spike/index.js +1 -1
  310. package/dist/parameter-envelope/ParameterEnvelope.d.ts +128 -0
  311. package/dist/parameter-envelope/index.cjs +17 -0
  312. package/dist/parameter-envelope/index.d.ts +2 -0
  313. package/dist/parameter-envelope/index.js +4 -0
  314. package/dist/parser/HoloCompositionTypes.d.ts +2013 -0
  315. package/dist/parser/PipelineParser.d.ts +162 -0
  316. package/dist/parser.cjs +36 -20
  317. package/dist/parser.js +13 -9
  318. package/dist/plugin-manifest/ManifestAutoLoader.d.ts +35 -0
  319. package/dist/plugin-manifest/PluginManifest.d.ts +156 -0
  320. package/dist/plugin-manifest/index.cjs +25 -0
  321. package/dist/plugin-manifest/index.d.ts +2 -0
  322. package/dist/plugin-manifest/index.js +4 -0
  323. package/dist/plugin-solver-contract/PluginSolverContract.d.ts +288 -0
  324. package/dist/plugin-solver-contract/index.cjs +41 -0
  325. package/dist/plugin-solver-contract/index.d.ts +1 -0
  326. package/dist/plugin-solver-contract/index.js +4 -0
  327. package/dist/policy/ContentPolicyGate.d.ts +51 -0
  328. package/dist/policy/PolicyPack.d.ts +120 -0
  329. package/dist/policy/blocklist.d.ts +32 -0
  330. package/dist/policy/defaults.d.ts +44 -0
  331. package/dist/policy/index.cjs +106 -0
  332. package/dist/policy/index.d.ts +17 -0
  333. package/dist/policy/index.js +5 -0
  334. package/dist/policy/jsonLogic.d.ts +31 -0
  335. package/dist/policy/types.d.ts +174 -0
  336. package/dist/proof-composition/ProofCompositionLaw.d.ts +93 -0
  337. package/dist/proof-composition/index.cjs +25 -0
  338. package/dist/proof-composition/index.d.ts +1 -0
  339. package/dist/proof-composition/index.js +4 -0
  340. package/dist/receipts/hash-policy.d.ts +85 -0
  341. package/dist/reconstruction/index.cjs +75 -47
  342. package/dist/reconstruction/index.js +5 -5
  343. package/dist/runtime/plugin-trait-registrar.d.ts +36 -0
  344. package/dist/runtime.cjs +81 -79
  345. package/dist/runtime.js +9 -7
  346. package/dist/scene-presets-EDKYZ5GW.js +4 -0
  347. package/dist/scene-presets-NCW2CFRS.cjs +17 -0
  348. package/dist/self-improvement/index.cjs +1 -1
  349. package/dist/self-improvement/index.js +1 -1
  350. package/dist/{src-PT2FERDV.cjs → src-G3D7ZATQ.cjs} +545 -21
  351. package/dist/{src-J6CM4AUR.js → src-UXYA7HM6.js} +539 -16
  352. package/dist/storage/index.cjs +10 -10
  353. package/dist/storage/index.js +3 -3
  354. package/dist/testing.cjs +1 -1
  355. package/dist/testing.js +1 -1
  356. package/dist/tools/index.cjs +3631 -0
  357. package/dist/tools/index.js +3581 -0
  358. package/dist/traitDocs/traitDocs.cjs +9 -9
  359. package/dist/traitDocs/traitDocs.d.ts +1 -0
  360. package/dist/traitDocs/traitDocs.js +3 -3
  361. package/dist/traits/ControlLoopTrait.d.ts +154 -0
  362. package/dist/traits/KinematicChainTrait.d.ts +116 -0
  363. package/dist/traits/SensorSamplingTrait.d.ts +154 -0
  364. package/dist/traits/TraitTypes.d.ts +270 -0
  365. package/dist/traits/TransactionTrait.d.ts +121 -0
  366. package/dist/traits/botanical-lotus.cjs +54 -50
  367. package/dist/traits/botanical-lotus.js +2 -5
  368. package/dist/traits/control-loop.cjs +21 -0
  369. package/dist/traits/control-loop.d.ts +1 -0
  370. package/dist/traits/control-loop.js +4 -0
  371. package/dist/traits/engines/cloth-verlet.d.ts +65 -0
  372. package/dist/traits/engines/index.cjs +19 -19
  373. package/dist/traits/engines/index.d.ts +15 -275
  374. package/dist/traits/engines/index.js +3 -3
  375. package/dist/traits/engines/motion-data-schema.d.ts +119 -0
  376. package/dist/traits/engines/motion-matching.d.ts +102 -0
  377. package/dist/traits/engines/noise.d.ts +25 -0
  378. package/dist/traits/engines/onnx-adapter.d.ts +173 -0
  379. package/dist/traits/engines/onnx-motion-matching.d.ts +163 -0
  380. package/dist/traits/engines/pfnn-network.d.ts +92 -0
  381. package/dist/traits/engines/synthetic-walk-cycle.d.ts +38 -0
  382. package/dist/traits/engines/tensor-ops.d.ts +15 -0
  383. package/dist/traits/index.cjs +2789 -1259
  384. package/dist/traits/index.d.ts +35 -0
  385. package/dist/traits/index.js +1692 -411
  386. package/dist/traits/kinematic-chain.cjs +25 -0
  387. package/dist/traits/kinematic-chain.d.ts +1 -0
  388. package/dist/traits/kinematic-chain.js +4 -0
  389. package/dist/traits/sensor-sampling.cjs +33 -0
  390. package/dist/traits/sensor-sampling.d.ts +1 -0
  391. package/dist/traits/sensor-sampling.js +4 -0
  392. package/dist/traits/simulation-solver-factory.cjs +1 -1
  393. package/dist/traits/simulation-solver-factory.js +1 -1
  394. package/dist/traits/transaction.cjs +29 -0
  395. package/dist/traits/transaction.d.ts +1 -0
  396. package/dist/traits/transaction.js +4 -0
  397. package/dist/traits/webcam-gaze.cjs +1 -1
  398. package/dist/traits/webcam-gaze.js +1 -1
  399. package/dist/type-checker.cjs +7 -6
  400. package/dist/type-checker.js +5 -4
  401. package/dist/types/AdvancedTypeSystem.d.ts +489 -0
  402. package/dist/types/HoloScriptPlus.d.ts +810 -0
  403. package/dist/types/base.d.ts +248 -0
  404. package/dist/types.d.ts +799 -0
  405. package/dist/world/index.cjs +3 -4
  406. package/dist/world/index.js +3 -4
  407. package/dist/world-model/index.cjs +1 -1
  408. package/dist/world-model/index.js +1 -1
  409. package/dist/wot/index.cjs +1 -1
  410. package/dist/wot/index.js +1 -1
  411. package/package.json +135 -69
  412. package/dist/GLTFPipeline-3EJLL3TS.cjs +0 -38
  413. package/dist/GLTFPipeline-3OWJV2VK.js +0 -17
  414. package/dist/HoloScriptPlusParser-ADWRY5OS.cjs +0 -698
  415. package/dist/HoloScriptPlusParser-JLJDXHSC.js +0 -693
  416. package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +0 -27
  417. package/dist/HoloScriptPlusParser-WENAFEFV.js +0 -10
  418. package/dist/HoloScriptRuntime-GGRVEU4T.cjs +0 -19
  419. package/dist/HoloScriptRuntime-GJK6VJPH.js +0 -10
  420. package/dist/chunk-22Q5A6RV.js +0 -979
  421. package/dist/chunk-4C57PR42.js +0 -468
  422. package/dist/chunk-4W5G5QVL.cjs +0 -847
  423. package/dist/chunk-5ET6L4NS.js +0 -487
  424. package/dist/chunk-C4GSLCHE.cjs +0 -7153
  425. package/dist/chunk-F2G6CWFT.js +0 -7089
  426. package/dist/chunk-G6PNEASF.cjs +0 -814
  427. package/dist/chunk-GTA4Q3A3.js +0 -1491
  428. package/dist/chunk-HCCQLAA4.cjs +0 -74
  429. package/dist/chunk-HFSVMKM3.cjs +0 -72
  430. package/dist/chunk-KAIVDEIG.cjs +0 -4539
  431. package/dist/chunk-KQU64CIX.cjs +0 -1508
  432. package/dist/chunk-MSYSQ2AJ.js +0 -4533
  433. package/dist/chunk-NHJLP37F.js +0 -70
  434. package/dist/chunk-NHYRRAGI.cjs +0 -490
  435. package/dist/chunk-OIQYIIO3.cjs +0 -473
  436. package/dist/chunk-OL46QLBJ.js +0 -61
  437. package/dist/chunk-SKZPC5AG.cjs +0 -984
  438. package/dist/chunk-SLHLXUMO.js +0 -445
  439. package/dist/chunk-UOIGFQXC.cjs +0 -9750
  440. package/dist/chunk-UOL6Y5TD.cjs +0 -759
  441. package/dist/chunk-UVFI7XIR.cjs +0 -452
  442. package/dist/chunk-VEPGBETF.js +0 -844
  443. package/dist/chunk-XQ5MWMP2.js +0 -756
  444. package/dist/chunk-XT6JY5W5.js +0 -9684
  445. package/dist/chunk-YRRAUB35.js +0 -811
  446. package/dist/compiler/GasOptimizationAnalyzer.d.ts +0 -73
  447. package/dist/compiler/NFTMarketplaceCompiler.d.ts +0 -23
  448. package/dist/compiler/ar.cjs +0 -23
  449. package/dist/compiler/ar.js +0 -11
  450. package/dist/compiler/babylon.cjs +0 -21
  451. package/dist/compiler/babylon.js +0 -15
  452. package/dist/compiler/multi-layer.cjs +0 -24
  453. package/dist/compiler/multi-layer.js +0 -15
  454. package/dist/compiler/playcanvas.cjs +0 -19
  455. package/dist/compiler/playcanvas.js +0 -13
  456. package/dist/compiler/r3f.cjs +0 -39
  457. package/dist/compiler/r3f.d.ts +0 -22
  458. package/dist/compiler/r3f.js +0 -17
  459. package/dist/compiler/vrr.cjs +0 -24
  460. package/dist/compiler/vrr.js +0 -12
  461. package/dist/parser/NFTMarketplaceTypes.d.ts +0 -191
  462. package/dist/playwright-3AT3AKTV.cjs +0 -98673
  463. 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