@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,698 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var chunkKQU64CIX_cjs = require('./chunk-KQU64CIX.cjs');
6
- var chunkGVFJ6T4S_cjs = require('./chunk-GVFJ6T4S.cjs');
7
- require('./chunk-ILRBGFVD.cjs');
8
- require('./chunk-E7JP3BS3.cjs');
9
- require('./chunk-HCCQLAA4.cjs');
10
-
11
- // src/HoloScriptPlusParser.ts
12
- var HoloScriptPlusParser = class {
13
- constructor() {
14
- this.baseParser = new chunkGVFJ6T4S_cjs.HoloScriptCodeParser();
15
- }
16
- /**
17
- * Parse HoloScript+ code with trait annotations
18
- */
19
- parse(code) {
20
- const baseResult = this.baseParser.parse(code);
21
- const ast = baseResult.ast;
22
- return this.enhanceWithTraits(ast, code);
23
- }
24
- /**
25
- * Enhance AST nodes with trait annotations
26
- */
27
- enhanceWithTraits(ast, code) {
28
- return ast.map((node) => {
29
- if (node.type === "orb") {
30
- return this.enhanceOrbNodeWithTraits(node, code);
31
- }
32
- return node;
33
- });
34
- }
35
- /**
36
- * Enhance OrbNode with trait annotations
37
- */
38
- enhanceOrbNodeWithTraits(node, code) {
39
- const orbNode = node;
40
- const enhanced = {
41
- ...orbNode,
42
- traits: [],
43
- graphics: {}
44
- };
45
- const traits = this.extractTraitAnnotations(code, node.line);
46
- enhanced.traits = traits;
47
- if (traits.length > 0) {
48
- enhanced.graphics = this.buildGraphicsConfig(traits);
49
- }
50
- return enhanced;
51
- }
52
- /**
53
- * Extract trait annotations from code
54
- */
55
- extractTraitAnnotations(code, _orbLine) {
56
- const traits = [];
57
- const traitRegex = /@(material|lighting|rendering|shader|networked|rpc|joint|ik)\s*\{((?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*)\}/g;
58
- let match;
59
- while ((match = traitRegex.exec(code)) !== null) {
60
- const type = match[1];
61
- const configStr = match[2];
62
- try {
63
- const config = this.parseTraitConfig(configStr, type);
64
- switch (type) {
65
- case "material":
66
- traits.push({
67
- type: "material",
68
- config
69
- });
70
- break;
71
- case "lighting":
72
- traits.push({
73
- type: "lighting",
74
- config
75
- });
76
- break;
77
- case "rendering":
78
- traits.push({
79
- type: "rendering",
80
- config
81
- });
82
- break;
83
- case "shader":
84
- traits.push({
85
- type: "shader",
86
- config
87
- });
88
- break;
89
- case "networked":
90
- traits.push({
91
- type: "networked",
92
- config
93
- });
94
- break;
95
- case "rpc":
96
- traits.push({
97
- type: "rpc",
98
- config
99
- });
100
- break;
101
- case "joint":
102
- traits.push({
103
- type: "joint",
104
- config
105
- });
106
- break;
107
- case "ik":
108
- traits.push({
109
- type: "ik",
110
- config
111
- });
112
- break;
113
- }
114
- } catch (e) {
115
- console.warn(`Failed to parse ${type} trait annotation:`, e);
116
- }
117
- }
118
- return traits;
119
- }
120
- /**
121
- * Parse trait configuration with support for inline code (backticks)
122
- */
123
- parseTraitConfig(str, traitType) {
124
- if (traitType === "shader") {
125
- return this.parseShaderConfig(str);
126
- }
127
- return this.parseObjectLiteral(str);
128
- }
129
- /**
130
- * Parse shader configuration with inline GLSL support
131
- */
132
- parseShaderConfig(str) {
133
- const config = {};
134
- const backtickStrings = [];
135
- const processedStr = str.replace(/`([^`]*)`/g, (_, content) => {
136
- backtickStrings.push(content);
137
- return `__BACKTICK_${backtickStrings.length - 1}__`;
138
- });
139
- const parsed = this.parseObjectLiteral(processedStr);
140
- for (const [key, value] of Object.entries(parsed)) {
141
- if (typeof value === "string" && value.startsWith("__BACKTICK_")) {
142
- const index = parseInt(value.replace("__BACKTICK_", "").replace("__", ""));
143
- config[key] = backtickStrings[index];
144
- } else {
145
- config[key] = value;
146
- }
147
- }
148
- return config;
149
- }
150
- /**
151
- * Parse object literal from string
152
- * Supports nested objects and arrays
153
- */
154
- parseObjectLiteral(str) {
155
- const config = {};
156
- let depth = 0;
157
- let current = "";
158
- const pairs = [];
159
- for (let i = 0; i < str.length; i++) {
160
- const char = str[i];
161
- if (char === "{" || char === "[") {
162
- depth++;
163
- } else if (char === "}" || char === "]") {
164
- depth--;
165
- } else if (char === "," && depth === 0) {
166
- pairs.push(current.trim());
167
- current = "";
168
- continue;
169
- }
170
- current += char;
171
- }
172
- if (current.trim()) {
173
- pairs.push(current.trim());
174
- }
175
- for (const pair of pairs) {
176
- const colonIndex = pair.indexOf(":");
177
- if (colonIndex === -1) continue;
178
- const key = pair.substring(0, colonIndex).trim();
179
- const value = pair.substring(colonIndex + 1).trim();
180
- config[key] = this.parseValue(value);
181
- }
182
- return config;
183
- }
184
- /**
185
- * Parse individual values
186
- */
187
- parseValue(str) {
188
- str = str.trim();
189
- if (str === "true") return true;
190
- if (str === "false") return false;
191
- if (/^-?\d+(\.\d+)?$/.test(str)) return parseFloat(str);
192
- if (str.startsWith('"') && str.endsWith('"') || str.startsWith("'") && str.endsWith("'")) {
193
- return str.slice(1, -1);
194
- }
195
- if (str.startsWith("{") && str.endsWith("}")) {
196
- return this.parseObjectLiteral(str.slice(1, -1));
197
- }
198
- if (str.startsWith("[") && str.endsWith("]")) {
199
- const items = str.slice(1, -1).split(",");
200
- return items.map((item) => this.parseValue(item));
201
- }
202
- return str;
203
- }
204
- /**
205
- * Build GraphicsConfiguration from trait annotations
206
- */
207
- buildGraphicsConfig(traits) {
208
- const config = {};
209
- for (const trait of traits) {
210
- switch (trait.type) {
211
- case "material":
212
- config.material = trait.config;
213
- break;
214
- case "lighting":
215
- config.lighting = trait.config;
216
- break;
217
- case "rendering":
218
- config.rendering = trait.config;
219
- break;
220
- case "shader":
221
- config.shader = trait.config;
222
- break;
223
- case "networked":
224
- config.networked = trait.config;
225
- break;
226
- case "rpc":
227
- config.rpc = trait.config;
228
- break;
229
- case "joint":
230
- config.joint = trait.config;
231
- break;
232
- case "ik":
233
- config.ik = trait.config;
234
- break;
235
- }
236
- }
237
- return config;
238
- }
239
- /**
240
- * Validate trait annotation configuration
241
- */
242
- validateTraitAnnotation(trait) {
243
- const errors = [];
244
- switch (trait.type) {
245
- case "material":
246
- errors.push(...this.validateMaterialTrait(trait));
247
- break;
248
- case "lighting":
249
- errors.push(...this.validateLightingTrait(trait));
250
- break;
251
- case "rendering":
252
- errors.push(...this.validateRenderingTrait(trait));
253
- break;
254
- case "shader":
255
- errors.push(...this.validateShaderTrait(trait));
256
- break;
257
- case "networked":
258
- errors.push(...this.validateNetworkedTrait(trait));
259
- break;
260
- case "joint":
261
- errors.push(...this.validateJointTrait(trait));
262
- break;
263
- case "ik":
264
- errors.push(...this.validateIKTrait(trait));
265
- break;
266
- }
267
- return {
268
- valid: errors.length === 0,
269
- errors
270
- };
271
- }
272
- /**
273
- * Validate material trait configuration
274
- */
275
- validateMaterialTrait(trait) {
276
- const errors = [];
277
- const { config } = trait;
278
- if (config.pbr) {
279
- if (config.pbr.metallic !== void 0 && (config.pbr.metallic < 0 || config.pbr.metallic > 1)) {
280
- errors.push("material.pbr.metallic must be between 0 and 1");
281
- }
282
- if (config.pbr.roughness !== void 0 && (config.pbr.roughness < 0 || config.pbr.roughness > 1)) {
283
- errors.push("material.pbr.roughness must be between 0 and 1");
284
- }
285
- }
286
- if (config.compression && !["none", "dxt", "astc", "basis"].includes(config.compression)) {
287
- errors.push(`material.compression must be one of: none, dxt, astc, basis`);
288
- }
289
- return errors;
290
- }
291
- /**
292
- * Validate lighting trait configuration
293
- */
294
- validateLightingTrait(trait) {
295
- const errors = [];
296
- const { config } = trait;
297
- if (config.preset && !["studio", "outdoor", "interior", "night", "sunset"].includes(config.preset)) {
298
- errors.push("lighting.preset must be one of: studio, outdoor, interior, night, sunset");
299
- }
300
- if (config.lights) {
301
- config.lights.forEach((light, index) => {
302
- if (!["directional", "point", "spot", "area", "ambient"].includes(light.type)) {
303
- errors.push(`lighting.lights[${index}].type must be a valid light type`);
304
- }
305
- if (light.intensity !== void 0 && light.intensity < 0) {
306
- errors.push(`lighting.lights[${index}].intensity must be >= 0`);
307
- }
308
- });
309
- }
310
- return errors;
311
- }
312
- /**
313
- * Validate rendering trait configuration
314
- */
315
- validateRenderingTrait(trait) {
316
- const errors = [];
317
- const { config } = trait;
318
- if (config.quality && !["low", "medium", "high", "ultra"].includes(config.quality)) {
319
- errors.push("rendering.quality must be one of: low, medium, high, ultra");
320
- }
321
- if (config.platform && !["mobile", "vr", "desktop"].includes(config.platform)) {
322
- errors.push("rendering.platform must be one of: mobile, vr, desktop");
323
- }
324
- if (config.compression && !["none", "dxt", "astc", "basis"].includes(config.compression)) {
325
- errors.push("rendering.compression must be one of: none, dxt, astc, basis");
326
- }
327
- if (config.maxTextureResolution && config.maxTextureResolution < 128) {
328
- errors.push("rendering.maxTextureResolution must be >= 128");
329
- }
330
- if (config.targetFPS && (config.targetFPS < 24 || config.targetFPS > 240)) {
331
- errors.push("rendering.targetFPS must be between 24 and 240");
332
- }
333
- return errors;
334
- }
335
- /**
336
- * Get trait annotations as graphics traits
337
- */
338
- createGraphicsTraits(config) {
339
- return {
340
- material: config.material ? this.createMaterialTrait(config.material) : null,
341
- lighting: config.lighting ? this.createLightingTrait(config.lighting) : null,
342
- rendering: config.rendering ? this.createRenderingTrait(config.rendering) : null,
343
- shader: config.shader ? this.createShaderTrait(config.shader) : null
344
- };
345
- }
346
- /**
347
- * Create MaterialTrait from config
348
- */
349
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- dynamic material config from parsed AST
350
- createMaterialTrait(config) {
351
- const material = new chunkKQU64CIX_cjs.MaterialTrait({
352
- type: config.type || "pbr",
353
- pbr: config.pbr
354
- });
355
- if (config.compression) {
356
- material.setCompression(config.compression);
357
- }
358
- if (config.instancing) {
359
- material.setInstanced(true);
360
- }
361
- if (config.streaming) {
362
- material.setTextureStreaming(true);
363
- }
364
- if (config.textures) {
365
- config.textures.forEach((tex) => {
366
- material.addTexture(tex);
367
- });
368
- }
369
- return material;
370
- }
371
- /**
372
- * Create LightingTrait from config
373
- */
374
- createLightingTrait(config) {
375
- let lighting;
376
- if (config.preset) {
377
- const presetFactory = chunkKQU64CIX_cjs.LIGHTING_PRESETS[config.preset];
378
- const presetConfig = presetFactory ? presetFactory() : void 0;
379
- lighting = new chunkKQU64CIX_cjs.LightingTrait(presetConfig);
380
- } else {
381
- lighting = new chunkKQU64CIX_cjs.LightingTrait();
382
- }
383
- if (config.globalIllumination) {
384
- lighting.setGlobalIllumination(config.globalIllumination);
385
- }
386
- if (config.lights) {
387
- config.lights.forEach((light) => {
388
- lighting.addLight(light);
389
- });
390
- }
391
- return lighting;
392
- }
393
- /**
394
- * Create RenderingTrait from config
395
- */
396
- createRenderingTrait(config) {
397
- const rendering = new chunkKQU64CIX_cjs.RenderingTrait();
398
- if (config.quality) {
399
- rendering.applyQualityPreset(config.quality);
400
- }
401
- if (config.platform) {
402
- switch (config.platform) {
403
- case "mobile":
404
- rendering.optimizeForMobile();
405
- break;
406
- case "vr":
407
- rendering.optimizeForVRAR(config.targetFPS || 90);
408
- break;
409
- case "desktop":
410
- rendering.optimizeForDesktop();
411
- break;
412
- }
413
- }
414
- if (config.lod !== false) {
415
- rendering.setupLODLevels("automatic");
416
- }
417
- if (config.culling !== false) {
418
- rendering.setFrustumCulling(true);
419
- }
420
- if (config.compression) {
421
- rendering.setTextureCompression(config.compression);
422
- }
423
- if (config.maxTextureResolution) {
424
- rendering.setMaxTextureResolution(config.maxTextureResolution);
425
- }
426
- return rendering;
427
- }
428
- /**
429
- * Create ShaderTrait from config
430
- */
431
- createShaderTrait(config) {
432
- if (config.preset && chunkKQU64CIX_cjs.SHADER_PRESETS[config.preset]) {
433
- const preset = chunkKQU64CIX_cjs.SHADER_PRESETS[config.preset];
434
- return new chunkKQU64CIX_cjs.ShaderTrait(preset);
435
- }
436
- const shaderConfig = {
437
- source: {
438
- language: config.language || "glsl",
439
- vertex: config.vertex,
440
- fragment: config.fragment
441
- },
442
- uniforms: config.uniforms,
443
- includes: config.includes?.map((path) => ({ path })),
444
- blendMode: config.blendMode,
445
- depthTest: config.depthTest,
446
- depthWrite: config.depthWrite,
447
- cullFace: config.cullFace
448
- };
449
- return new chunkKQU64CIX_cjs.ShaderTrait(shaderConfig);
450
- }
451
- /**
452
- * Validate shader trait configuration
453
- */
454
- validateShaderTrait(trait) {
455
- const errors = [];
456
- const { config } = trait;
457
- if (!config.preset && !config.vertex && !config.fragment) {
458
- errors.push("shader must have either preset or vertex/fragment code");
459
- }
460
- if (config.preset && !chunkKQU64CIX_cjs.SHADER_PRESETS[config.preset]) {
461
- errors.push(
462
- `shader.preset "${config.preset}" is not a valid preset. Available: hologram, forceField, dissolve`
463
- );
464
- }
465
- if (config.language && !["glsl", "hlsl", "wgsl"].includes(config.language)) {
466
- errors.push("shader.language must be one of: glsl, hlsl, wgsl");
467
- }
468
- if (config.blendMode && !["opaque", "blend", "additive", "multiply"].includes(config.blendMode)) {
469
- errors.push("shader.blendMode must be one of: opaque, blend, additive, multiply");
470
- }
471
- if (config.cullFace && !["none", "front", "back"].includes(config.cullFace)) {
472
- errors.push("shader.cullFace must be one of: none, front, back");
473
- }
474
- return errors;
475
- }
476
- /**
477
- * Validate networked trait configuration
478
- */
479
- validateNetworkedTrait(trait) {
480
- const errors = [];
481
- const { config } = trait;
482
- if (config.mode && !["owner", "shared", "server"].includes(config.mode)) {
483
- errors.push("networked.mode must be one of: owner, shared, server");
484
- }
485
- if (config.syncRate !== void 0 && (config.syncRate < 1 || config.syncRate > 60)) {
486
- errors.push("networked.syncRate must be between 1 and 60 Hz");
487
- }
488
- return errors;
489
- }
490
- /**
491
- * Validate joint trait configuration
492
- */
493
- validateJointTrait(trait) {
494
- const errors = [];
495
- const { config } = trait;
496
- if (!config.jointType) {
497
- errors.push("joint.jointType is required");
498
- } else if (!["fixed", "hinge", "ball", "slider", "spring"].includes(config.jointType)) {
499
- errors.push("joint.jointType must be one of: fixed, hinge, ball, slider, spring");
500
- }
501
- if (config.breakForce !== void 0 && config.breakForce < 0) {
502
- errors.push("joint.breakForce must be >= 0");
503
- }
504
- return errors;
505
- }
506
- /**
507
- * Validate IK trait configuration
508
- */
509
- validateIKTrait(trait) {
510
- const errors = [];
511
- const { config } = trait;
512
- if (!config.chain) {
513
- errors.push("ik.chain is required");
514
- }
515
- if (config.chainLength !== void 0 && config.chainLength < 1) {
516
- errors.push("ik.chainLength must be >= 1");
517
- }
518
- if (config.iterations !== void 0 && config.iterations < 1) {
519
- errors.push("ik.iterations must be >= 1");
520
- }
521
- if (config.weight !== void 0 && (config.weight < 0 || config.weight > 1)) {
522
- errors.push("ik.weight must be between 0 and 1");
523
- }
524
- return errors;
525
- }
526
- // ==========================================================================
527
- // Module System — @import / @export
528
- // ==========================================================================
529
- /**
530
- * Parse HoloScript+ code and also extract module-level @import / @export
531
- * declarations from the source header.
532
- *
533
- * Returns both the enhanced AST and a structured module header so callers
534
- * (e.g. ModuleResolver, SceneRunner) can understand the file's dependencies
535
- * without running a separate pass.
536
- */
537
- parseWithModules(code, fromFile = "<inline>") {
538
- const ast = this.parse(code);
539
- const { imports, exports: exports$1 } = this.parseModuleHeader(code, fromFile);
540
- return { ast, imports, exports: exports$1 };
541
- }
542
- /**
543
- * Scan the top of a source string and return all @import / @export
544
- * declarations before the first non-directive, non-comment line.
545
- */
546
- parseModuleHeader(code, _fromFile = "<inline>") {
547
- const imports = [];
548
- const exports$1 = [];
549
- for (const rawLine of code.split("\n")) {
550
- const line = rawLine.trim();
551
- if (!line || line.startsWith("//") || line.startsWith("#")) continue;
552
- const imp = this.parseImportDirective(line);
553
- if (imp) {
554
- imports.push(imp);
555
- continue;
556
- }
557
- const exp = this.parseExportDirective(line);
558
- if (exp) {
559
- exports$1.push(...exp);
560
- continue;
561
- }
562
- break;
563
- }
564
- return { imports, exports: exports$1 };
565
- }
566
- /**
567
- * Parse a single @import directive line.
568
- *
569
- * Accepted forms:
570
- * @import @physics, @ai_npc from "./physics.hs"
571
- * @import * from "./shared.hs"
572
- * @import @physics as @p from "./physics.hs"
573
- *
574
- * Returns null if the line is not an @import.
575
- */
576
- parseImportDirective(line) {
577
- const m = line.match(/^@import\s+([\w@*,\s]+?)(?:\s+as\s+(@\w+))?\s+from\s+["']([^"']+)["']/);
578
- if (!m) return null;
579
- const specifiersPart = m[1].trim();
580
- const alias = m[2]?.replace("@", "");
581
- const source = m[3];
582
- const specifiers = specifiersPart === "*" ? ["*"] : specifiersPart.split(",").map((s) => s.trim().replace("@", "")).filter(Boolean);
583
- return { specifiers, source, ...alias ? { alias } : {} };
584
- }
585
- /**
586
- * Parse a single @export directive line.
587
- *
588
- * @export @turret, @enemy
589
- *
590
- * Returns null if the line is not an @export.
591
- */
592
- parseExportDirective(line) {
593
- const m = line.match(/^@export\s+([\w@,\s]+)/);
594
- if (!m) return null;
595
- return m[1].split(",").map((s) => s.trim().replace("@", "")).filter(Boolean);
596
- }
597
- /**
598
- * Parse a single trait composition assignment line.
599
- *
600
- * @turret = @physics + @ai_npc + @targeting
601
- *
602
- * This can appear anywhere in a HoloScript+ file body.
603
- * Returns null if the line is not a composition assignment.
604
- *
605
- * The returned AST node type is `'trait_composition'` and can be
606
- * emitted by callers into the broader AST to register composed traits.
607
- */
608
- parseCompositionDirective(line) {
609
- const m = line.trim().match(/^@(\w+)\s*=\s*((?:@\w+\s*\+\s*)*@\w+)/);
610
- if (!m) return null;
611
- const name = m[1];
612
- const sources = m[2].split("+").map((s) => s.trim().replace("@", "")).filter(Boolean);
613
- return { type: "trait_composition", name, sources };
614
- }
615
- /**
616
- * Scan an entire source string for trait composition assignments and return
617
- * all found definitions in document order.
618
- *
619
- * @param code Full HoloScript+ source
620
- * @returns Array of composition definitions ready for TraitBinder registration
621
- */
622
- parseCompositionBlock(code) {
623
- const results = [];
624
- for (const rawLine of code.split("\n")) {
625
- const node = this.parseCompositionDirective(rawLine.trim());
626
- if (node) results.push(node);
627
- }
628
- return results;
629
- }
630
- // ==========================================================================
631
- // Reactive State — state { } / on event { } (Sprint 3)
632
- // ==========================================================================
633
- /**
634
- * Parse a `state { ... }` block from HoloScript+ source.
635
- *
636
- * Accepted syntax:
637
- * state {
638
- * hp = 100
639
- * speed = 5.5
640
- * alive = true
641
- * name = "hero"
642
- * }
643
- *
644
- * The block may appear inline or multi-line. Values are coerced to their
645
- * inferred JS types (number, boolean, string). The returned list is ordered
646
- * by declaration order and is suitable for `new ReactiveState(entries)`.
647
- *
648
- * Returns null if no `state {` opener is found in the source.
649
- */
650
- parseStateBlock(code) {
651
- const m = code.match(/\bstate\s*\{([^}]*)\}/s);
652
- if (!m) return null;
653
- const body = m[1];
654
- const vars = [];
655
- for (const rawLine of body.split("\n")) {
656
- const line = rawLine.trim();
657
- if (!line || line.startsWith("//")) continue;
658
- const pair = line.match(/^(\w+)\s*=\s*(.+?)[\s;,]*$/);
659
- if (!pair) continue;
660
- const [, varName, rawVal] = pair;
661
- let value = rawVal.trim();
662
- if (rawVal === "true") value = true;
663
- else if (rawVal === "false") value = false;
664
- else if (!isNaN(Number(rawVal))) value = Number(rawVal);
665
- else if (/^["'](.*)["']$/.test(rawVal)) value = rawVal.slice(1, -1);
666
- vars.push({ name: varName, value });
667
- }
668
- return vars;
669
- }
670
- /**
671
- * Parse all `on <event> { ... }` handler blocks from HoloScript+ source.
672
- *
673
- * Accepted syntax:
674
- * on collide { hp = hp - 10 }
675
- * on death { alive = false }
676
- *
677
- * Returns an array of `{ event, body }` records ordered by appearance.
678
- * The `body` string is the raw block content suitable for ExpressionEvaluator.
679
- * Returns an empty array if no `on` blocks are found.
680
- */
681
- parseOnBlock(code) {
682
- const results = [];
683
- const pattern = /\bon\s+(\w+)\s*\{([^}]*)\}/gs;
684
- let m;
685
- while ((m = pattern.exec(code)) !== null) {
686
- const event = m[1];
687
- const body = m[2].trim();
688
- results.push({ event, body });
689
- }
690
- return results;
691
- }
692
- };
693
- var HoloScriptPlusParser_default = HoloScriptPlusParser;
694
-
695
- exports.HoloScriptPlusParser = HoloScriptPlusParser;
696
- exports.default = HoloScriptPlusParser_default;
697
- //# sourceMappingURL=HoloScriptPlusParser-ADWRY5OS.cjs.map
698
- //# sourceMappingURL=HoloScriptPlusParser-ADWRY5OS.cjs.map