@holoscript/core 8.0.7 → 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.
- package/bin/holoscript.cjs +5 -1
- package/dist/GLTFPipeline-L76YTXKA.js +15 -0
- package/dist/GLTFPipeline-ZWJN7GI6.cjs +36 -0
- package/dist/HoloCompositionParser-K76KTEEE.js +12 -0
- package/dist/HoloCompositionParser-UZH6Y4HO.cjs +45 -0
- package/dist/HoloScriptCodeParser-2D4ERFUZ.js +6 -0
- package/dist/HoloScriptCodeParser-UDRLDA7I.cjs +23 -0
- package/dist/HoloScriptPlusParser-FTMCGWXD.js +13 -0
- package/dist/HoloScriptPlusParser-LQR5GIKF.cjs +30 -0
- package/dist/HoloScriptRuntime-UTRLJI5L.js +12 -0
- package/dist/HoloScriptRuntime-YBYXJHJN.cjs +21 -0
- package/dist/SceneIRCompiler-63KA3M2F.js +17 -0
- package/dist/SceneIRCompiler-KWUFHZ4O.cjs +42 -0
- package/dist/{USDZExporter-AUHZODOF.cjs → USDZExporter-ML4UMIGC.cjs} +3 -3
- package/dist/{USDZExporter-GXB4AUSG.js → USDZExporter-ZFKLQ76G.js} +3 -3
- package/dist/agents/index.cjs +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/audit/AuditLogger.d.ts +106 -0
- package/dist/audit/AuditQueryBuilder.d.ts +79 -0
- package/dist/audit/ComplianceReporter.d.ts +90 -0
- package/dist/audit/index.d.ts +13 -0
- package/dist/{chunk-FGMDMJM7.js → chunk-2BYAUHBO.js} +3 -3
- package/dist/{chunk-EDPYCLRC.cjs → chunk-2E6PP5UE.cjs} +83 -59
- package/dist/{chunk-GASCWJK5.js → chunk-2EGGAZT3.js} +65 -287
- package/dist/{chunk-SIEXCILW.js → chunk-2I3XAGMF.js} +3 -3
- package/dist/{chunk-OS533P33.cjs → chunk-2KKOYZYI.cjs} +1074 -1655
- package/dist/chunk-2MQKNDNH.js +51 -0
- package/dist/{chunk-7DMMMBCY.cjs → chunk-2X3IPCBK.cjs} +10 -10
- package/dist/chunk-2ZOTBO25.cjs +202 -0
- package/dist/chunk-356N4NPM.cjs +152 -0
- package/dist/{chunk-X3GJPRVK.cjs → chunk-36NPLOI4.cjs} +92 -81
- package/dist/{chunk-SLU6UPJI.cjs → chunk-37HHY7RH.cjs} +5 -5
- package/dist/{chunk-YDPEHCCI.cjs → chunk-3CDDRUER.cjs} +3 -118
- package/dist/chunk-3F7ZZWIN.js +1651 -0
- package/dist/chunk-3ILD7TKP.cjs +187 -0
- package/dist/{chunk-X27QRG4C.cjs → chunk-3IUHTGDD.cjs} +153 -41
- package/dist/{chunk-PXNZ6TME.js → chunk-4376VHNJ.js} +60 -36
- package/dist/{chunk-YKGPCZEE.cjs → chunk-4FIBOJW6.cjs} +10 -10
- package/dist/chunk-4Q7RKQQI.cjs +14195 -0
- package/dist/{chunk-YCM6QQRT.cjs → chunk-566ZB4LZ.cjs} +180 -8
- package/dist/{chunk-2Y3V22SG.js → chunk-5CURIYGT.js} +3 -3
- package/dist/{chunk-QBWNJXNR.js → chunk-5FYMCVBY.js} +5 -5
- package/dist/{chunk-ZA34AN3R.js → chunk-5LVFTGKH.js} +841 -12
- package/dist/chunk-63AUAIL6.js +48 -0
- package/dist/chunk-655FATJU.js +110 -0
- package/dist/{chunk-TQ377OLB.cjs → chunk-65S62L4D.cjs} +28 -22
- package/dist/chunk-6NTAZN5Z.cjs +502 -0
- package/dist/chunk-6TRX6AR2.js +9376 -0
- package/dist/chunk-6ZCCLKS2.cjs +51 -0
- package/dist/{chunk-MDR235RZ.js → chunk-734OB5SK.js} +721 -8
- package/dist/{chunk-Q2Q34NF3.js → chunk-77QI552M.js} +6 -6
- package/dist/{chunk-WKX5AMOY.js → chunk-7I74JWPW.js} +3 -3
- package/dist/{chunk-5FSKKMR7.cjs → chunk-7IDJDMPU.cjs} +232 -4
- package/dist/chunk-7VBKRGIZ.cjs +847 -0
- package/dist/{chunk-KCPHASCO.js → chunk-AATYYLYK.js} +5 -5
- package/dist/{chunk-WFKVS2K4.cjs → chunk-AUZRKIHQ.cjs} +1101 -55
- package/dist/{chunk-DTGBOSEM.cjs → chunk-AWXFEAQL.cjs} +12 -12
- package/dist/{chunk-THCK6ECW.js → chunk-B3CWTCK2.js} +231 -3
- package/dist/chunk-BCP4E7MD.cjs +997 -0
- package/dist/chunk-BG7RPYJP.js +91 -0
- package/dist/{chunk-VF257YKO.js → chunk-BP4KTMLY.js} +117 -5
- package/dist/{chunk-YN6IETRZ.js → chunk-BQJ3YBF3.js} +6424 -987
- package/dist/{chunk-KOUAQL2B.cjs → chunk-CANAL6CT.cjs} +1569 -168
- package/dist/{chunk-FDSGHPAK.js → chunk-CBSDJF3B.js} +3 -3
- package/dist/{chunk-FEWUHQNM.cjs → chunk-CFVK26P4.cjs} +4 -4
- package/dist/{chunk-M7K4LE66.cjs → chunk-CI33NINL.cjs} +4 -4
- package/dist/{chunk-2OWDB4FB.js → chunk-CKV5NYAE.js} +6 -6
- package/dist/{chunk-LPS5AMQD.cjs → chunk-CM4NHXVO.cjs} +24 -24
- package/dist/chunk-D3HSRXYB.js +115 -0
- package/dist/{chunk-FNHJRI32.js → chunk-DBH3D2MU.js} +1561 -160
- package/dist/{chunk-GW3LKD5C.js → chunk-DJNH4HFW.js} +3 -3
- package/dist/{chunk-2GCNOI2U.cjs → chunk-DN6F4DHH.cjs} +9 -3
- package/dist/chunk-DQRJ5RJG.js +432 -0
- package/dist/{chunk-C7ZBSV2Q.js → chunk-DUG3OQAS.js} +106 -43
- package/dist/chunk-ECUYJOJ2.cjs +199 -0
- package/dist/chunk-EEMTCAK7.js +182 -0
- package/dist/{chunk-3SKLAUDD.cjs → chunk-EI3J6LTW.cjs} +359 -581
- package/dist/{chunk-SSSN7VAM.js → chunk-EM2OGPYE.js} +4 -4
- package/dist/{chunk-56VOWURB.cjs → chunk-ENZCIQZC.cjs} +522 -453
- package/dist/chunk-ESBXUYOC.cjs +836 -0
- package/dist/{chunk-L5U4W6JC.js → chunk-ESSEF6U2.js} +4 -4
- package/dist/chunk-ET3AN4W3.js +824 -0
- package/dist/chunk-EXKSFGSX.cjs +14 -14
- package/dist/{chunk-I76GIKN7.cjs → chunk-F3YT6GUF.cjs} +17 -17
- package/dist/{chunk-WRWEX5ZF.js → chunk-F75DZBBI.js} +3 -3
- package/dist/{chunk-4JGRWHZJ.js → chunk-FG6PYGIZ.js} +12 -6
- package/dist/chunk-FGGJQRLZ.js +14 -14
- package/dist/{chunk-SXOSDZD6.js → chunk-FWCHPCD4.js} +128 -10
- package/dist/{chunk-XW6IXEQH.cjs → chunk-G35CAQ7I.cjs} +5 -5
- package/dist/{chunk-7VMGP2FW.js → chunk-G6KACNMO.js} +132 -188
- package/dist/{chunk-FJPADH77.cjs → chunk-GAWJJAGT.cjs} +6 -6
- package/dist/chunk-GGR7QUKK.cjs +4724 -0
- package/dist/chunk-GIBF4BHH.js +14098 -0
- package/dist/{chunk-AWB7QYY6.cjs → chunk-GILYQ5VH.cjs} +6 -6
- package/dist/{chunk-FWVYAMNW.cjs → chunk-GKFCHGCM.cjs} +4 -4
- package/dist/{chunk-Y3ZFVUUU.js → chunk-GLEJ2TLS.js} +3 -3
- package/dist/{chunk-3GWWJT7L.js → chunk-GP3OKSKT.js} +13 -13
- package/dist/chunk-GTIPOEHN.js +196 -0
- package/dist/{chunk-LMJ5EBV7.cjs → chunk-GZPUA2TL.cjs} +16 -15
- package/dist/{chunk-IELX2OKI.js → chunk-H4LJ4HEA.js} +3 -115
- package/dist/{chunk-ACVWFGBI.cjs → chunk-HCX4SMFK.cjs} +3 -3
- package/dist/{chunk-HYNTS5CP.js → chunk-HHRZ6STP.js} +24 -2
- package/dist/chunk-HIDEIEFG.js +48 -0
- package/dist/{chunk-W6RW64BB.cjs → chunk-HSWBIDZM.cjs} +228 -5
- package/dist/{chunk-GSOUNWEL.js → chunk-HVX7QQYK.js} +1035 -1616
- package/dist/{chunk-TRCGG42I.cjs → chunk-IFW5IW4L.cjs} +6502 -1019
- package/dist/{chunk-F5LKJ6F5.cjs → chunk-IJU6AS67.cjs} +32 -28
- package/dist/{chunk-TVANHNJ7.js → chunk-IK6Z2HNC.js} +173 -3
- package/dist/{chunk-QGMUTVVH.cjs → chunk-IS7NTKY5.cjs} +20 -20
- package/dist/{chunk-YFVQWSNJ.js → chunk-IXWGYWH6.js} +3 -3
- package/dist/chunk-J2DAS2PL.js +148 -0
- package/dist/chunk-JBQXZIWB.js +148 -0
- package/dist/chunk-JBYBMBMW.js +261 -0
- package/dist/{chunk-LWUOUCYL.js → chunk-JEJ7TT54.js} +5 -5
- package/dist/{chunk-DUCB6LGL.js → chunk-JOTCTHN5.js} +211 -5
- package/dist/{chunk-47RUFYKR.js → chunk-K56UVEXV.js} +3 -3
- package/dist/{chunk-XSFNHP2E.js → chunk-KB26H447.js} +3 -3
- package/dist/{chunk-3NGDZZR4.js → chunk-KEYG7HGY.js} +430 -37
- package/dist/{chunk-DY72BMU5.js → chunk-KFVNCW4Q.js} +4 -4
- package/dist/chunk-KPGC7SK2.js +192 -0
- package/dist/chunk-KROXXBK5.cjs +53 -0
- package/dist/{chunk-ZPZAVHXL.cjs → chunk-LB3ZZMKT.cjs} +137 -19
- package/dist/chunk-LDYZWNJW.cjs +1654 -0
- package/dist/{chunk-ULMSSHCJ.cjs → chunk-LMB555QB.cjs} +405 -38
- package/dist/{chunk-CBJY23VL.js → chunk-MD4IVS42.js} +3 -3
- package/dist/{chunk-VMLKSV26.js → chunk-MDDWEBCX.js} +226 -3
- package/dist/chunk-MUWH4QK5.cjs +94 -0
- package/dist/{chunk-T6W3Z3SH.cjs → chunk-N2ILK7BF.cjs} +4 -4
- package/dist/{chunk-6EX3I5P4.cjs → chunk-N74QRJGP.cjs} +6 -6
- package/dist/chunk-NFFHLX37.cjs +132 -0
- package/dist/chunk-NJSYWX7H.js +190 -0
- package/dist/{chunk-SH5PPVK7.cjs → chunk-NQN5LFN4.cjs} +165 -221
- package/dist/chunk-NTQRFOPP.cjs +56 -0
- package/dist/{chunk-YFWRJW4B.js → chunk-NWMJPTVL.js} +51 -55
- package/dist/{chunk-63ZGNR2T.cjs → chunk-OC6GV5QH.cjs} +42 -42
- package/dist/{chunk-7E7GCQCK.js → chunk-OG3MBHM3.js} +9 -3
- package/dist/chunk-OMNHTCS4.cjs +264 -0
- package/dist/chunk-OQXB6NNC.cjs +117 -0
- package/dist/{chunk-Y57W2CT5.cjs → chunk-OV46CCA2.cjs} +51 -55
- package/dist/{chunk-6PRZIHGL.cjs → chunk-OV6HHKLE.cjs} +21 -266
- package/dist/{chunk-C37BHB7N.cjs → chunk-P26YYPOO.cjs} +5 -5
- package/dist/{chunk-2BZHWUSR.cjs → chunk-P7JEKJTZ.cjs} +16 -16
- package/dist/{chunk-NGBXXZLL.cjs → chunk-PDXX5UI4.cjs} +45 -45
- package/dist/{chunk-FHQFPYV4.js → chunk-PJFTTSKE.js} +8 -7
- package/dist/{chunk-GVFJ6T4S.cjs → chunk-PVODJEJ7.cjs} +721 -8
- package/dist/{chunk-ZZ7RO2UQ.js → chunk-Q265VZJ4.js} +3 -3
- package/dist/{chunk-E7JP3BS3.cjs → chunk-Q47JEE2C.cjs} +4 -4
- package/dist/chunk-QBY7LRN2.js +281 -0
- package/dist/{chunk-Z6PMDS4G.js → chunk-QDQWKSU3.js} +1090 -53
- package/dist/{chunk-GH6C2QGW.cjs → chunk-QEDMOGF3.cjs} +857 -16
- package/dist/{chunk-5WUNN6ZN.cjs → chunk-QHSAVOOL.cjs} +24 -2
- package/dist/chunk-QJNCDVYM.cjs +137 -0
- package/dist/chunk-QM7FJB5W.js +4717 -0
- package/dist/chunk-QQFB4RT2.cjs +448 -0
- package/dist/chunk-QSYBHQAD.cjs +196 -0
- package/dist/{chunk-UGXHYIWT.cjs → chunk-QUJ3ZB55.cjs} +28 -28
- package/dist/{chunk-2YSNA2F2.cjs → chunk-QVJMDVYZ.cjs} +5 -5
- package/dist/chunk-RAJMAX6D.js +131 -0
- package/dist/{chunk-VVKVQZI6.js → chunk-RAN3ECAS.js} +3 -3
- package/dist/chunk-RKGUZBOC.js +79 -0
- package/dist/{chunk-HLFDZ35S.cjs → chunk-RRQIAJLQ.cjs} +8 -8
- package/dist/{chunk-PABONWKI.js → chunk-RXQNRZ5F.js} +3 -3
- package/dist/{chunk-7ZHYEITD.cjs → chunk-S4O7CFHQ.cjs} +10 -11
- package/dist/chunk-SE7ANBGN.js +128 -0
- package/dist/{chunk-X2AVEAZM.cjs → chunk-SJIRCTIS.cjs} +176 -2
- package/dist/{chunk-WXQ57LAO.js → chunk-SQXAZHDG.js} +4 -4
- package/dist/chunk-SR73L5ZP.cjs +84 -0
- package/dist/{chunk-OABEO6HH.js → chunk-SZOLTWWD.js} +2349 -214
- package/dist/{chunk-5JEU52DW.js → chunk-TPZ3BN2D.js} +3 -3
- package/dist/{chunk-QFU53KRH.js → chunk-TSTFYGGX.js} +4 -5
- package/dist/{chunk-EBS32AJI.cjs → chunk-TZCFKZ6Z.cjs} +5 -5
- package/dist/chunk-UCVZXQ63.js +724 -0
- package/dist/chunk-UGQ3QNV6.js +992 -0
- package/dist/chunk-UNMVGZVW.js +142 -0
- package/dist/{chunk-TEVX443G.js → chunk-UTUD6GJI.js} +178 -6
- package/dist/chunk-UXBYA7DV.cjs +155 -0
- package/dist/chunk-V6GXFSK7.cjs +443 -0
- package/dist/chunk-VHORVGCG.cjs +761 -0
- package/dist/{chunk-B4EKV6HQ.js → chunk-VKCTYLDN.js} +500 -442
- package/dist/{chunk-O3MGZDCT.cjs → chunk-VTEXJOSD.cjs} +63 -63
- package/dist/chunk-VVAAZITA.cjs +287 -0
- package/dist/{chunk-V7AKE5VT.cjs → chunk-W2GA3EQB.cjs} +435 -42
- package/dist/chunk-W4GABFCR.js +37 -0
- package/dist/chunk-WKEK4NCA.js +490 -0
- package/dist/{chunk-5A4TCHOC.cjs → chunk-WNYXT4TE.cjs} +4 -4
- package/dist/{chunk-S762UEV5.js → chunk-WTH23ISI.js} +6 -6
- package/dist/{chunk-BTKZGHAV.js → chunk-WWNCM473.js} +10 -6
- package/dist/{chunk-7X5PNIQJ.js → chunk-X3YFRH6K.js} +27 -25
- package/dist/{chunk-4YNYPHH3.cjs → chunk-X75H75UY.cjs} +2351 -213
- package/dist/{chunk-LYJJI7ZK.cjs → chunk-XCUDDFKC.cjs} +216 -9
- package/dist/chunk-YAO4HPJL.cjs +120 -0
- package/dist/chunk-YKY2JBER.cjs +9443 -0
- package/dist/chunk-YP5CHEYU.cjs +154 -0
- package/dist/{chunk-WRNEH5MO.js → chunk-YW3I2FQL.js} +18 -7
- package/dist/{chunk-BRNUPDHJ.js → chunk-Z557DVYN.js} +386 -19
- package/dist/{chunk-VSACG2AR.js → chunk-Z6LZUYZF.js} +21 -264
- package/dist/chunk-ZHPMP447.cjs +43 -0
- package/dist/{chunk-LODTHGST.cjs → chunk-ZK7KX5CD.cjs} +133 -70
- package/dist/{chunk-CCPSNT6B.cjs → chunk-ZRPALBQB.cjs} +5 -5
- package/dist/chunk-ZVFHPMC5.js +824 -0
- package/dist/chunk-ZVQMKUGJ.js +443 -0
- package/dist/cli/holoscript-runner.cjs +86 -48
- package/dist/cli/holoscript-runner.js +54 -16
- package/dist/codebase/index.cjs +1 -1
- package/dist/codebase/index.js +1 -1
- package/dist/compiler/agent-inference.cjs +11 -11
- package/dist/compiler/agent-inference.js +9 -6
- package/dist/compiler/android-xr.cjs +13 -12
- package/dist/compiler/android-xr.js +11 -10
- package/dist/compiler/android.cjs +12 -12
- package/dist/compiler/android.js +10 -10
- package/dist/compiler/business-quest.cjs +10 -10
- package/dist/compiler/business-quest.js +2 -2
- package/dist/compiler/coco.cjs +1 -1
- package/dist/compiler/coco.js +1 -1
- package/dist/compiler/context.cjs +9 -9
- package/dist/compiler/context.js +6 -6
- package/dist/compiler/daimon-seed.cjs +36 -0
- package/dist/compiler/daimon-seed.js +12 -0
- package/dist/compiler/domain-block-utils.cjs +205 -156
- package/dist/compiler/domain-block-utils.js +8 -7
- package/dist/compiler/dtdl.cjs +10 -10
- package/dist/compiler/dtdl.js +7 -7
- package/dist/compiler/gltf-pipeline.cjs +9 -9
- package/dist/compiler/gltf-pipeline.js +2 -2
- package/dist/compiler/godot.cjs +10 -9
- package/dist/compiler/godot.js +9 -8
- package/dist/compiler/incremental.cjs +11 -11
- package/dist/compiler/incremental.js +6 -6
- package/dist/compiler/index.cjs +2585 -3273
- package/dist/compiler/index.d.ts +149 -35
- package/dist/compiler/index.js +2197 -3102
- package/dist/compiler/ios.cjs +11 -11
- package/dist/compiler/ios.js +9 -9
- package/dist/compiler/llm-provider-capabilities.cjs +9 -9
- package/dist/compiler/llm-provider-capabilities.js +6 -6
- package/dist/compiler/nodetoy.cjs +1 -1
- package/dist/compiler/nodetoy.js +1 -1
- package/dist/compiler/openxr.cjs +11 -10
- package/dist/compiler/openxr.js +10 -9
- package/dist/compiler/remotion.cjs +1 -1
- package/dist/compiler/remotion.js +1 -1
- package/dist/compiler/reproducibility.cjs +1 -1
- package/dist/compiler/reproducibility.js +1 -1
- package/dist/compiler/sdf.cjs +11 -10
- package/dist/compiler/sdf.js +9 -8
- package/dist/compiler/semantic-scene.cjs +7 -7
- package/dist/compiler/semantic-scene.js +2 -2
- package/dist/compiler/state.cjs +9 -9
- package/dist/compiler/state.js +7 -7
- package/dist/compiler/trait-composition.cjs +11 -11
- package/dist/compiler/trait-composition.js +7 -7
- package/dist/compiler/traits/ProvenanceSemiring.d.ts +167 -0
- package/dist/compiler/traits/Semiring.d.ts +26 -0
- package/dist/compiler/unity.cjs +11 -10
- package/dist/compiler/unity.js +10 -9
- package/dist/compiler/unreal.cjs +12 -11
- package/dist/compiler/unreal.js +10 -9
- package/dist/compiler/urdf.cjs +18 -17
- package/dist/compiler/urdf.js +9 -8
- package/dist/compiler/usd-physics.cjs +11 -10
- package/dist/compiler/usd-physics.js +8 -7
- package/dist/compiler/visionos.cjs +11 -10
- package/dist/compiler/visionos.js +10 -9
- package/dist/compiler/vrchat.cjs +11 -10
- package/dist/compiler/vrchat.js +9 -8
- package/dist/compiler/wasm.cjs +14 -13
- package/dist/compiler/wasm.js +9 -8
- package/dist/compiler/webgpu.cjs +10 -9
- package/dist/compiler/webgpu.js +9 -8
- package/dist/constants.cjs +398 -0
- package/dist/constants.js +9 -0
- package/dist/coordinators/index.cjs +4 -1
- package/dist/coordinators/index.js +4 -1
- package/dist/debugger.cjs +11 -9
- package/dist/debugger.js +9 -7
- package/dist/{dist-ACXG6IH5.cjs → dist-GRMOP2UL.cjs} +341 -65
- package/dist/{dist-VD4L6V7Q.js → dist-ZBUKU2JG.js} +333 -63
- package/dist/entries/interop.cjs +23 -23
- package/dist/entries/interop.js +3 -3
- package/dist/entries/scripting.cjs +12 -11
- package/dist/entries/scripting.js +8 -7
- package/dist/evolution/index.cjs +66 -0
- package/dist/evolution/index.d.ts +162 -0
- package/dist/evolution/index.js +17 -0
- package/dist/hololand/index.cjs +41 -37
- package/dist/hololand/index.js +3 -3
- package/dist/index.cjs +12394 -3224
- package/dist/index.d.ts +260 -18
- package/dist/index.js +10755 -2182
- package/dist/keyword-registry/PluginKeywordRegistry.d.ts +138 -0
- package/dist/keyword-registry/index.cjs +29 -0
- package/dist/keyword-registry/index.d.ts +1 -0
- package/dist/keyword-registry/index.js +4 -0
- package/dist/math/tropical-spmv.cjs +11 -11
- package/dist/math/tropical-spmv.d.ts +1 -0
- package/dist/math/tropical-spmv.js +2 -2
- package/dist/math/tropicalSpmv.d.ts +43 -0
- package/dist/math/vec3.cjs +1 -1
- package/dist/math/vec3.js +1 -1
- package/dist/matter/StagedMatter.d.ts +82 -0
- package/dist/matter/index.cjs +17 -0
- package/dist/matter/index.d.ts +1 -0
- package/dist/matter/index.js +4 -0
- package/dist/{ml-dsa-Z7JDKW4L.js → ml-dsa-J6VKVT4K.js} +3 -3
- package/dist/{ml-dsa-FSKBTE3W.cjs → ml-dsa-MTIK4ZUQ.cjs} +23 -23
- package/dist/paper-0c-spike/index.cjs +1 -1
- package/dist/paper-0c-spike/index.js +1 -1
- package/dist/parameter-envelope/ParameterEnvelope.d.ts +128 -0
- package/dist/parameter-envelope/index.cjs +17 -0
- package/dist/parameter-envelope/index.d.ts +2 -0
- package/dist/parameter-envelope/index.js +4 -0
- package/dist/parser/HoloCompositionTypes.d.ts +2013 -0
- package/dist/parser/PipelineParser.d.ts +162 -0
- package/dist/parser.cjs +36 -20
- package/dist/parser.js +13 -9
- package/dist/plugin-manifest/ManifestAutoLoader.d.ts +35 -0
- package/dist/plugin-manifest/PluginManifest.d.ts +156 -0
- package/dist/plugin-manifest/index.cjs +25 -0
- package/dist/plugin-manifest/index.d.ts +2 -0
- package/dist/plugin-manifest/index.js +4 -0
- package/dist/plugin-solver-contract/PluginSolverContract.d.ts +288 -0
- package/dist/plugin-solver-contract/index.cjs +41 -0
- package/dist/plugin-solver-contract/index.d.ts +1 -0
- package/dist/plugin-solver-contract/index.js +4 -0
- package/dist/policy/ContentPolicyGate.d.ts +51 -0
- package/dist/policy/PolicyPack.d.ts +120 -0
- package/dist/policy/blocklist.d.ts +32 -0
- package/dist/policy/defaults.d.ts +44 -0
- package/dist/policy/index.cjs +106 -0
- package/dist/policy/index.d.ts +17 -0
- package/dist/policy/index.js +5 -0
- package/dist/policy/jsonLogic.d.ts +31 -0
- package/dist/policy/types.d.ts +174 -0
- package/dist/proof-composition/ProofCompositionLaw.d.ts +93 -0
- package/dist/proof-composition/index.cjs +25 -0
- package/dist/proof-composition/index.d.ts +1 -0
- package/dist/proof-composition/index.js +4 -0
- package/dist/receipts/hash-policy.d.ts +85 -0
- package/dist/reconstruction/index.cjs +75 -47
- package/dist/reconstruction/index.js +5 -5
- package/dist/runtime/plugin-trait-registrar.d.ts +36 -0
- package/dist/runtime.cjs +81 -79
- package/dist/runtime.js +9 -7
- package/dist/scene-presets-EDKYZ5GW.js +4 -0
- package/dist/scene-presets-NCW2CFRS.cjs +17 -0
- package/dist/self-improvement/index.cjs +1 -1
- package/dist/self-improvement/index.js +1 -1
- package/dist/{src-PT2FERDV.cjs → src-G3D7ZATQ.cjs} +545 -21
- package/dist/{src-J6CM4AUR.js → src-UXYA7HM6.js} +539 -16
- package/dist/storage/index.cjs +10 -10
- package/dist/storage/index.js +3 -3
- package/dist/testing.cjs +1 -1
- package/dist/testing.js +1 -1
- package/dist/tools/index.cjs +3631 -0
- package/dist/tools/index.js +3581 -0
- package/dist/traitDocs/traitDocs.cjs +9 -9
- package/dist/traitDocs/traitDocs.d.ts +1 -0
- package/dist/traitDocs/traitDocs.js +3 -3
- package/dist/traits/ControlLoopTrait.d.ts +154 -0
- package/dist/traits/KinematicChainTrait.d.ts +116 -0
- package/dist/traits/SensorSamplingTrait.d.ts +154 -0
- package/dist/traits/TraitTypes.d.ts +270 -0
- package/dist/traits/TransactionTrait.d.ts +121 -0
- package/dist/traits/botanical-lotus.cjs +54 -50
- package/dist/traits/botanical-lotus.js +2 -5
- package/dist/traits/control-loop.cjs +21 -0
- package/dist/traits/control-loop.d.ts +1 -0
- package/dist/traits/control-loop.js +4 -0
- package/dist/traits/engines/cloth-verlet.d.ts +65 -0
- package/dist/traits/engines/index.cjs +19 -19
- package/dist/traits/engines/index.d.ts +15 -275
- package/dist/traits/engines/index.js +3 -3
- package/dist/traits/engines/motion-data-schema.d.ts +119 -0
- package/dist/traits/engines/motion-matching.d.ts +102 -0
- package/dist/traits/engines/noise.d.ts +25 -0
- package/dist/traits/engines/onnx-adapter.d.ts +173 -0
- package/dist/traits/engines/onnx-motion-matching.d.ts +163 -0
- package/dist/traits/engines/pfnn-network.d.ts +92 -0
- package/dist/traits/engines/synthetic-walk-cycle.d.ts +38 -0
- package/dist/traits/engines/tensor-ops.d.ts +15 -0
- package/dist/traits/index.cjs +2789 -1259
- package/dist/traits/index.d.ts +35 -0
- package/dist/traits/index.js +1692 -411
- package/dist/traits/kinematic-chain.cjs +25 -0
- package/dist/traits/kinematic-chain.d.ts +1 -0
- package/dist/traits/kinematic-chain.js +4 -0
- package/dist/traits/sensor-sampling.cjs +33 -0
- package/dist/traits/sensor-sampling.d.ts +1 -0
- package/dist/traits/sensor-sampling.js +4 -0
- package/dist/traits/simulation-solver-factory.cjs +1 -1
- package/dist/traits/simulation-solver-factory.js +1 -1
- package/dist/traits/transaction.cjs +29 -0
- package/dist/traits/transaction.d.ts +1 -0
- package/dist/traits/transaction.js +4 -0
- package/dist/traits/webcam-gaze.cjs +1 -1
- package/dist/traits/webcam-gaze.js +1 -1
- package/dist/type-checker.cjs +7 -6
- package/dist/type-checker.js +5 -4
- package/dist/types/AdvancedTypeSystem.d.ts +489 -0
- package/dist/types/HoloScriptPlus.d.ts +810 -0
- package/dist/types/base.d.ts +248 -0
- package/dist/types.d.ts +799 -0
- package/dist/world/index.cjs +3 -4
- package/dist/world/index.js +3 -4
- package/dist/world-model/index.cjs +1 -1
- package/dist/world-model/index.js +1 -1
- package/dist/wot/index.cjs +1 -1
- package/dist/wot/index.js +1 -1
- package/package.json +80 -13
- package/dist/GLTFPipeline-3EJLL3TS.cjs +0 -38
- package/dist/GLTFPipeline-3OWJV2VK.js +0 -17
- package/dist/HoloScriptPlusParser-ADWRY5OS.cjs +0 -698
- package/dist/HoloScriptPlusParser-JLJDXHSC.js +0 -693
- package/dist/HoloScriptPlusParser-QCGFPWIL.cjs +0 -27
- package/dist/HoloScriptPlusParser-WENAFEFV.js +0 -10
- package/dist/HoloScriptRuntime-GGRVEU4T.cjs +0 -19
- package/dist/HoloScriptRuntime-GJK6VJPH.js +0 -10
- package/dist/chunk-22Q5A6RV.js +0 -979
- package/dist/chunk-4C57PR42.js +0 -468
- package/dist/chunk-4W5G5QVL.cjs +0 -847
- package/dist/chunk-5ET6L4NS.js +0 -487
- package/dist/chunk-C4GSLCHE.cjs +0 -7153
- package/dist/chunk-F2G6CWFT.js +0 -7089
- package/dist/chunk-G6PNEASF.cjs +0 -814
- package/dist/chunk-GTA4Q3A3.js +0 -1491
- package/dist/chunk-HCCQLAA4.cjs +0 -74
- package/dist/chunk-HFSVMKM3.cjs +0 -72
- package/dist/chunk-KAIVDEIG.cjs +0 -4539
- package/dist/chunk-KQU64CIX.cjs +0 -1508
- package/dist/chunk-MSYSQ2AJ.js +0 -4533
- package/dist/chunk-NHJLP37F.js +0 -70
- package/dist/chunk-NHYRRAGI.cjs +0 -490
- package/dist/chunk-OIQYIIO3.cjs +0 -473
- package/dist/chunk-OL46QLBJ.js +0 -61
- package/dist/chunk-SKZPC5AG.cjs +0 -984
- package/dist/chunk-SLHLXUMO.js +0 -445
- package/dist/chunk-UOIGFQXC.cjs +0 -9750
- package/dist/chunk-UOL6Y5TD.cjs +0 -759
- package/dist/chunk-UVFI7XIR.cjs +0 -452
- package/dist/chunk-VEPGBETF.js +0 -844
- package/dist/chunk-XQ5MWMP2.js +0 -756
- package/dist/chunk-XT6JY5W5.js +0 -9684
- package/dist/chunk-YRRAUB35.js +0 -811
- package/dist/compiler/GasOptimizationAnalyzer.d.ts +0 -73
- package/dist/compiler/NFTMarketplaceCompiler.d.ts +0 -23
- package/dist/compiler/ar.cjs +0 -23
- package/dist/compiler/ar.js +0 -11
- package/dist/compiler/babylon.cjs +0 -21
- package/dist/compiler/babylon.js +0 -15
- package/dist/compiler/multi-layer.cjs +0 -24
- package/dist/compiler/multi-layer.js +0 -15
- package/dist/compiler/playcanvas.cjs +0 -19
- package/dist/compiler/playcanvas.js +0 -13
- package/dist/compiler/r3f.cjs +0 -39
- package/dist/compiler/r3f.d.ts +0 -22
- package/dist/compiler/r3f.js +0 -17
- package/dist/compiler/vrr.cjs +0 -24
- package/dist/compiler/vrr.js +0 -12
- package/dist/parser/NFTMarketplaceTypes.d.ts +0 -191
- package/dist/playwright-3AT3AKTV.cjs +0 -98673
- 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
|