@holoscript/core 6.0.2 → 6.0.4

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 (229) hide show
  1. package/README.md +38 -38
  2. package/dist/GLTFPipeline-DEN36VNK.js +12 -0
  3. package/dist/GLTFPipeline-YPCAK236.cjs +33 -0
  4. package/dist/{HoloScriptPlusParser-BZR5DELQ.js → HoloScriptPlusParser-BN6KVRCM.js} +5 -5
  5. package/dist/{HoloScriptPlusParser-SBMYDNXO.cjs → HoloScriptPlusParser-NC5FE6AL.cjs} +16 -16
  6. package/dist/{USDZExporter-YA55ZS35.js → USDZExporter-NTMBNTDB.js} +3 -3
  7. package/dist/{USDZExporter-MHEHXZB4.cjs → USDZExporter-UWGWNMMD.cjs} +3 -3
  8. package/dist/{chunk-32TWR3HE.js → chunk-2CWOLHTE.js} +3 -4
  9. package/dist/{chunk-2UX5LRAP.cjs → chunk-33LSUQDD.cjs} +33 -31
  10. package/dist/{chunk-LBPEZQAF.js → chunk-3FJCK5XA.js} +7 -7
  11. package/dist/{chunk-EGIZHYJP.cjs → chunk-3SAK5KFL.cjs} +2 -4
  12. package/dist/{chunk-PJMOXFPR.cjs → chunk-4XSNJCLC.cjs} +25 -27
  13. package/dist/{chunk-HKCVM6OK.cjs → chunk-5BGSECRJ.cjs} +21 -21
  14. package/dist/{chunk-EMO7HAKJ.cjs → chunk-5O6TQC6M.cjs} +26 -30
  15. package/dist/{chunk-XSUZMPVQ.cjs → chunk-5OEOHAAW.cjs} +26 -26
  16. package/dist/{chunk-EJA7G2C4.cjs → chunk-5WUNN6ZN.cjs} +2 -2
  17. package/dist/{chunk-CQDOF3G7.cjs → chunk-6TZPZCOJ.cjs} +18 -18
  18. package/dist/{chunk-NRUB55IT.cjs → chunk-6UEHYZ7V.cjs} +18 -16
  19. package/dist/{chunk-V42NTCFH.js → chunk-6XSERL6L.js} +4230 -2197
  20. package/dist/{chunk-X4YVN7H3.cjs → chunk-72EQECGT.cjs} +37 -17
  21. package/dist/{chunk-4KJ2R7VP.cjs → chunk-7AGYRWKW.cjs} +19 -19
  22. package/dist/{chunk-UQW6SLM5.js → chunk-A7PIMZGU.js} +110 -19
  23. package/dist/{chunk-RT7LJRSF.cjs → chunk-ATSKSYVE.cjs} +1013 -6708
  24. package/dist/{chunk-WN3YF33G.cjs → chunk-B5TCIAPQ.cjs} +9 -10
  25. package/dist/{chunk-AIUXRS74.cjs → chunk-BF2235SI.cjs} +4275 -2242
  26. package/dist/{chunk-DIEDKX5B.cjs → chunk-BND3ST2K.cjs} +18 -16
  27. package/dist/{chunk-EPWRXL6S.js → chunk-BU7VWW2K.js} +29 -29
  28. package/dist/{chunk-6OQBLABR.js → chunk-BWFJEM5A.js} +368 -189
  29. package/dist/{chunk-ARNKA274.cjs → chunk-CAUCGUEA.cjs} +6 -6
  30. package/dist/{chunk-YCMQQQ5U.cjs → chunk-CBJSLA2E.cjs} +398 -219
  31. package/dist/{chunk-BU5ZAFMC.js → chunk-CDPGV4DN.js} +6 -7
  32. package/dist/{chunk-CO2VM2DK.js → chunk-CS2EMTGF.js} +10 -9
  33. package/dist/{chunk-AW7WAELW.js → chunk-DMG7C4H2.js} +4 -4
  34. package/dist/{chunk-XSF76QRU.js → chunk-DXJQDCFL.js} +3 -3
  35. package/dist/{chunk-4FCZDTD5.js → chunk-E3FWRT3Z.js} +7 -9
  36. package/dist/{chunk-KYM4XRFG.js → chunk-E3UALNFA.js} +4 -4
  37. package/dist/{chunk-GC3YU46J.js → chunk-EONILVMF.js} +2 -2
  38. package/dist/{chunk-VJVCD5T5.cjs → chunk-EQV4R3EV.cjs} +22 -22
  39. package/dist/{chunk-FEFHPUEM.cjs → chunk-F3HH56EB.cjs} +74 -658
  40. package/dist/{chunk-WYH4GVZ5.js → chunk-F4IULT7N.js} +2 -2
  41. package/dist/{chunk-XDXZM3ZP.cjs → chunk-FFKU7BTK.cjs} +19 -19
  42. package/dist/{chunk-NKRKT6V2.js → chunk-FHQVYCH2.js} +11 -10
  43. package/dist/{chunk-7H5UNJZD.cjs → chunk-FSF7EQVA.cjs} +11 -10
  44. package/dist/{chunk-KUJRR4FJ.js → chunk-G4VZTCIB.js} +9 -7
  45. package/dist/{chunk-A6GO3DPZ.cjs → chunk-G7CT3EMP.cjs} +4 -4
  46. package/dist/{chunk-EUFLX2PI.js → chunk-GGHSW2NN.js} +989 -6611
  47. package/dist/chunk-GVUR45UF.cjs +777 -0
  48. package/dist/{chunk-ODGMVILH.js → chunk-H5Z7NASB.js} +3 -3
  49. package/dist/{chunk-7KPI4EKH.cjs → chunk-HE7ULERA.cjs} +45 -49
  50. package/dist/{chunk-26TLYBFD.js → chunk-HPS76H7Q.js} +3 -3
  51. package/dist/{chunk-RE3OKSYF.cjs → chunk-HQUEA5R6.cjs} +6 -6
  52. package/dist/{chunk-ZGTGVSTZ.js → chunk-HYNTS5CP.js} +2 -2
  53. package/dist/{chunk-PBA6NXCT.cjs → chunk-IBDG74G2.cjs} +6 -3
  54. package/dist/chunk-IFNQFCTM.js +3098 -0
  55. package/dist/{chunk-ZL6VJ6SN.js → chunk-IWI6J7FX.js} +5 -5
  56. package/dist/{chunk-3KEU5QYY.cjs → chunk-K3JDKWGI.cjs} +118 -23
  57. package/dist/{chunk-NLPSZT4C.js → chunk-K6EKD26I.js} +6 -6
  58. package/dist/chunk-KCQ5NDYC.cjs +3172 -0
  59. package/dist/{chunk-ELLQPFAF.js → chunk-KED34ILP.js} +11 -9
  60. package/dist/{chunk-BY3B7ZYV.cjs → chunk-KSGXLT74.cjs} +3 -3
  61. package/dist/{chunk-65RFOWZI.js → chunk-L4G4RLXX.js} +9 -7
  62. package/dist/{chunk-4SMUJFHL.js → chunk-LDP5OK6G.js} +6 -3
  63. package/dist/{chunk-VZNKJZTT.cjs → chunk-LGGRPKTV.cjs} +82 -96
  64. package/dist/{chunk-C2QHVHZF.js → chunk-LSW7P7ML.js} +23 -414
  65. package/dist/{chunk-HHS6FMOU.cjs → chunk-LXJ4667L.cjs} +83 -22
  66. package/dist/{chunk-H6WMMLQK.cjs → chunk-LZ266PCM.cjs} +20 -13
  67. package/dist/{chunk-V2ILLPHK.cjs → chunk-MD6KDHVE.cjs} +10 -10
  68. package/dist/{chunk-6WNCRE6F.js → chunk-MEASWI2Y.js} +5 -5
  69. package/dist/chunk-MPXBVFHQ.js +768 -0
  70. package/dist/{chunk-WUXIRGZP.cjs → chunk-NCUKG4SK.cjs} +304 -144
  71. package/dist/chunk-NDQNIJEH.js +1715 -0
  72. package/dist/{chunk-Y5MUAYTO.js → chunk-NOZZ46QU.js} +9 -8
  73. package/dist/{chunk-F5LVGHNT.js → chunk-OFKWH2IP.js} +3 -3
  74. package/dist/{chunk-SPDELRRV.cjs → chunk-PMGODDJA.cjs} +12 -12
  75. package/dist/{chunk-I3XGTIHM.cjs → chunk-Q4QX3AET.cjs} +2 -2
  76. package/dist/{chunk-Y7VK5TH3.cjs → chunk-Q5JT3YML.cjs} +10 -10
  77. package/dist/{chunk-TSWTWZ42.cjs → chunk-Q5SJOGHQ.cjs} +247 -205
  78. package/dist/{chunk-M6FU6S22.js → chunk-QGKNANZ3.js} +251 -91
  79. package/dist/{chunk-WFJIDI2N.cjs → chunk-QLEAOI3Q.cjs} +10 -10
  80. package/dist/{chunk-VK5AXKO3.js → chunk-R7MA7QWV.js} +70 -84
  81. package/dist/{chunk-W76ETJTI.js → chunk-RVYPEYPX.js} +6 -6
  82. package/dist/{chunk-MWEFR6YQ.js → chunk-S2N5TNMA.js} +7 -9
  83. package/dist/{chunk-NCUHGRTZ.js → chunk-S565K7NK.js} +7 -7
  84. package/dist/{chunk-AC4BSHFV.js → chunk-SDAMZIRE.js} +5 -5
  85. package/dist/{chunk-HBZYCASG.js → chunk-T36DDXSF.js} +75 -33
  86. package/dist/{chunk-BO2OKHIY.js → chunk-T4NKMBDL.js} +30 -611
  87. package/dist/{chunk-7X2IEJIE.cjs → chunk-T7LEXZUZ.cjs} +29 -29
  88. package/dist/{chunk-HUFNKFA6.js → chunk-TEWCN33Y.js} +8 -12
  89. package/dist/{chunk-L3Z2HIWJ.cjs → chunk-TQSZUOW5.cjs} +2 -2
  90. package/dist/chunk-TSH3MSQU.cjs +129 -0
  91. package/dist/{chunk-PLMYCCA4.js → chunk-UERJ3YJV.js} +6 -6
  92. package/dist/{chunk-7N3JIJMT.js → chunk-UPJBDCVF.js} +6 -6
  93. package/dist/{chunk-CMYAWUX3.js → chunk-V3NN3HPP.js} +12 -5
  94. package/dist/{chunk-SUCBB66F.js → chunk-WB4Z63GG.js} +3 -3
  95. package/dist/{chunk-PPULB4GG.cjs → chunk-WDW67DZB.cjs} +68 -68
  96. package/dist/chunk-WGMEAYBG.js +126 -0
  97. package/dist/{chunk-VSXOIUCF.cjs → chunk-X4ZF6CNE.cjs} +7 -7
  98. package/dist/{chunk-HF4OFY25.cjs → chunk-X6SEAXAX.cjs} +29 -445
  99. package/dist/{chunk-C7BNX4XJ.js → chunk-XCWFGZAA.js} +6 -6
  100. package/dist/{chunk-CNVM7J3M.js → chunk-XD6IYDUX.js} +34 -14
  101. package/dist/chunk-XG23EUQX.cjs +1717 -0
  102. package/dist/{chunk-DN7UFU63.cjs → chunk-XRKWN5PL.cjs} +12 -11
  103. package/dist/{chunk-XNMEH2BI.js → chunk-XUTX5CBW.js} +3 -3
  104. package/dist/{chunk-PQLGZKMC.cjs → chunk-XWPNTWDN.cjs} +26 -26
  105. package/dist/{chunk-NTMZSDXM.cjs → chunk-XXINBTZK.cjs} +43 -43
  106. package/dist/{chunk-74YCHHTE.js → chunk-YCXFCXDS.js} +8 -12
  107. package/dist/{chunk-KDB6BUMB.js → chunk-YQK5JNFK.js} +77 -18
  108. package/dist/{chunk-DH5G2JUA.cjs → chunk-Z34RLXRA.cjs} +44 -46
  109. package/dist/{chunk-XH7SE4HH.cjs → chunk-ZP4D3CSX.cjs} +19 -19
  110. package/dist/cli/holoscript-runner.cjs +33 -32
  111. package/dist/cli/holoscript-runner.js +13 -12
  112. package/dist/codebase/index.cjs +1 -1
  113. package/dist/codebase/index.d.ts +25 -0
  114. package/dist/codebase/index.js +1 -1
  115. package/dist/compiler/agent-inference.cjs +7 -8
  116. package/dist/compiler/agent-inference.js +3 -4
  117. package/dist/compiler/android-xr.cjs +7 -8
  118. package/dist/compiler/android-xr.js +5 -6
  119. package/dist/compiler/android.cjs +8 -9
  120. package/dist/compiler/android.js +6 -7
  121. package/dist/compiler/ar.cjs +6 -7
  122. package/dist/compiler/ar.js +4 -5
  123. package/dist/compiler/babylon.cjs +8 -9
  124. package/dist/compiler/babylon.js +7 -8
  125. package/dist/compiler/coco.cjs +1 -1
  126. package/dist/compiler/coco.js +1 -1
  127. package/dist/compiler/domain-block-utils.cjs +158 -151
  128. package/dist/compiler/domain-block-utils.js +4 -5
  129. package/dist/compiler/dtdl.cjs +7 -8
  130. package/dist/compiler/dtdl.js +4 -5
  131. package/dist/compiler/gltf-pipeline.cjs +9 -9
  132. package/dist/compiler/gltf-pipeline.js +2 -2
  133. package/dist/compiler/godot.cjs +6 -7
  134. package/dist/compiler/godot.js +5 -6
  135. package/dist/compiler/incremental.cjs +7 -8
  136. package/dist/compiler/incremental.js +2 -3
  137. package/dist/compiler/index.cjs +1934 -878
  138. package/dist/compiler/index.js +1904 -842
  139. package/dist/compiler/ios.cjs +8 -9
  140. package/dist/compiler/ios.js +6 -7
  141. package/dist/compiler/multi-layer.cjs +10 -17
  142. package/dist/compiler/multi-layer.js +9 -10
  143. package/dist/compiler/nodetoy.cjs +1 -1
  144. package/dist/compiler/nodetoy.js +1 -1
  145. package/dist/compiler/openxr.cjs +6 -7
  146. package/dist/compiler/openxr.js +5 -6
  147. package/dist/compiler/playcanvas.cjs +7 -8
  148. package/dist/compiler/playcanvas.js +6 -7
  149. package/dist/compiler/r3f.cjs +13 -14
  150. package/dist/compiler/r3f.js +8 -9
  151. package/dist/compiler/remotion.cjs +1 -1
  152. package/dist/compiler/remotion.js +1 -1
  153. package/dist/compiler/reproducibility.cjs +1 -1
  154. package/dist/compiler/reproducibility.js +1 -1
  155. package/dist/compiler/sdf.cjs +7 -8
  156. package/dist/compiler/sdf.js +5 -6
  157. package/dist/compiler/semantic-scene.cjs +7 -7
  158. package/dist/compiler/semantic-scene.js +2 -2
  159. package/dist/compiler/state.cjs +5 -6
  160. package/dist/compiler/state.js +3 -4
  161. package/dist/compiler/trait-composition.cjs +7 -8
  162. package/dist/compiler/trait-composition.js +3 -4
  163. package/dist/compiler/unity.cjs +6 -7
  164. package/dist/compiler/unity.js +5 -6
  165. package/dist/compiler/unreal.cjs +7 -8
  166. package/dist/compiler/unreal.js +5 -6
  167. package/dist/compiler/urdf.cjs +13 -14
  168. package/dist/compiler/urdf.js +5 -6
  169. package/dist/compiler/usd-physics.cjs +7 -8
  170. package/dist/compiler/usd-physics.js +4 -5
  171. package/dist/compiler/visionos.cjs +6 -7
  172. package/dist/compiler/visionos.js +5 -6
  173. package/dist/compiler/vrchat.cjs +7 -8
  174. package/dist/compiler/vrchat.js +5 -6
  175. package/dist/compiler/vrr.cjs +7 -8
  176. package/dist/compiler/vrr.js +5 -6
  177. package/dist/compiler/wasm.cjs +10 -11
  178. package/dist/compiler/wasm.js +5 -6
  179. package/dist/compiler/webgpu.cjs +6 -7
  180. package/dist/compiler/webgpu.js +5 -6
  181. package/dist/constants.d.ts +3 -0
  182. package/dist/debugger.cjs +7 -7
  183. package/dist/debugger.js +5 -5
  184. package/dist/entries/interop.cjs +1 -1
  185. package/dist/entries/interop.d.ts +9 -0
  186. package/dist/entries/interop.js +1 -1
  187. package/dist/entries/scripting.cjs +18 -17
  188. package/dist/entries/scripting.d.ts +7 -0
  189. package/dist/entries/scripting.js +8 -7
  190. package/dist/index.cjs +6773 -27555
  191. package/dist/index.d.ts +19 -0
  192. package/dist/index.js +5212 -26101
  193. package/dist/math/vec3.cjs +1 -1
  194. package/dist/math/vec3.js +1 -1
  195. package/dist/ml-dsa-PHCWUBPX.cjs +1178 -0
  196. package/dist/ml-dsa-WYLJHJO6.js +1178 -0
  197. package/dist/parser.cjs +11 -10
  198. package/dist/parser.js +8 -7
  199. package/dist/{playwright-BIZXMLD2.js → playwright-5OSAPTNH.js} +3 -3
  200. package/dist/{playwright-7DTEQCBD.cjs → playwright-RL6GY4F7.cjs} +1985 -1985
  201. package/dist/runtime.cjs +5 -5
  202. package/dist/runtime.js +4 -4
  203. package/dist/self-improvement/index.d.ts +0 -48
  204. package/dist/storage/index.cjs +1 -1
  205. package/dist/storage/index.d.ts +24 -0
  206. package/dist/storage/index.js +1 -1
  207. package/dist/tools/index.d.ts +12 -0
  208. package/dist/traits/index.cjs +925 -607
  209. package/dist/traits/index.js +137 -20
  210. package/dist/type-checker.cjs +4 -4
  211. package/dist/type-checker.js +2 -2
  212. package/package.json +54 -19
  213. package/LICENSE +0 -21
  214. package/dist/GLTFPipeline-3KLWWUQO.cjs +0 -34
  215. package/dist/GLTFPipeline-LYII2ZVQ.js +0 -13
  216. package/dist/chunk-CN4NOESF.cjs +0 -416
  217. package/dist/chunk-DXVCEFZB.js +0 -2027
  218. package/dist/chunk-ENV7K6XA.js +0 -282
  219. package/dist/chunk-H7XMORZI.js +0 -2731
  220. package/dist/chunk-HAN4V3PF.cjs +0 -2037
  221. package/dist/chunk-LER4WXW5.cjs +0 -286
  222. package/dist/chunk-QHVVVN47.cjs +0 -2033
  223. package/dist/chunk-QWKUKVRE.js +0 -2026
  224. package/dist/chunk-UITWA6DV.cjs +0 -2829
  225. package/dist/chunk-X67XRI2T.js +0 -410
  226. package/dist/post-quantum-JTTAAGO3.cjs +0 -6
  227. package/dist/post-quantum-RVPVDEPI.js +0 -4
  228. package/dist/wot/index.cjs +0 -29
  229. package/dist/wot/index.js +0 -4
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkQHVVVN47_cjs = require('./chunk-QHVVVN47.cjs');
4
- var chunkEGIZHYJP_cjs = require('./chunk-EGIZHYJP.cjs');
3
+ var chunkBF2235SI_cjs = require('./chunk-BF2235SI.cjs');
4
+ var chunk3SAK5KFL_cjs = require('./chunk-3SAK5KFL.cjs');
5
5
 
6
6
  // src/compiler/DomainBlockCompilerMixin.ts
7
7
  function esc(value, target) {
8
- return chunkQHVVVN47_cjs.escapeStringValue(value, target);
8
+ return chunkBF2235SI_cjs.escapeStringValue(value, target);
9
9
  }
10
10
  function compileMaterialBlock(block) {
11
11
  const type = block.keyword === "unlit_material" ? "unlit" : block.keyword === "shader" ? "shader" : "pbr";
@@ -2153,7 +2153,9 @@ function paymentToR3F(paywall) {
2153
2153
  lines.push(` description: "${paywall.description}",`);
2154
2154
  }
2155
2155
  if (paywall.gatedContent && paywall.gatedContent.length > 0) {
2156
- lines.push(` gatedContent: [${paywall.gatedContent.map((g) => `"${esc(g, "TypeScript")}"`).join(", ")}],`);
2156
+ lines.push(
2157
+ ` gatedContent: [${paywall.gatedContent.map((g) => `"${esc(g, "TypeScript")}"`).join(", ")}],`
2158
+ );
2157
2159
  }
2158
2160
  if (paywall.revenueSplit) {
2159
2161
  lines.push(
@@ -2256,13 +2258,17 @@ function healthcareToR3F(healthcare) {
2256
2258
  );
2257
2259
  }
2258
2260
  if (healthcare.vitalSigns) {
2259
- lines.push(` vitalSigns: [${healthcare.vitalSigns.map((v) => `"${esc(v, "TypeScript")}"`).join(", ")}],`);
2261
+ lines.push(
2262
+ ` vitalSigns: [${healthcare.vitalSigns.map((v) => `"${esc(v, "TypeScript")}"`).join(", ")}],`
2263
+ );
2260
2264
  }
2261
2265
  if (healthcare.alertThresholds) {
2262
2266
  lines.push(` alertThresholds: ${JSON.stringify(healthcare.alertThresholds)},`);
2263
2267
  }
2264
2268
  if (healthcare.procedureSteps) {
2265
- lines.push(` steps: [${healthcare.procedureSteps.map((s) => `"${esc(s, "TypeScript")}"`).join(", ")}],`);
2269
+ lines.push(
2270
+ ` steps: [${healthcare.procedureSteps.map((s) => `"${esc(s, "TypeScript")}"`).join(", ")}],`
2271
+ );
2266
2272
  }
2267
2273
  lines.push("};");
2268
2274
  return lines.join("\n");
@@ -2620,7 +2626,9 @@ function iotToR3F(iot) {
2620
2626
  if (iot.deviceType) lines.push(` deviceType: "${iot.deviceType}",`);
2621
2627
  if (iot.protocol) lines.push(` protocol: "${esc(iot.protocol, "TypeScript")}",`);
2622
2628
  if (iot.telemetryFields)
2623
- lines.push(` telemetryFields: [${iot.telemetryFields.map((f) => `"${esc(f, "TypeScript")}"`).join(", ")}],`);
2629
+ lines.push(
2630
+ ` telemetryFields: [${iot.telemetryFields.map((f) => `"${esc(f, "TypeScript")}"`).join(", ")}],`
2631
+ );
2624
2632
  if (iot.updateInterval) lines.push(` updateInterval: ${iot.updateInterval},`);
2625
2633
  if (iot.twinModel) lines.push(` twinModel: "${esc(iot.twinModel, "TypeScript")}",`);
2626
2634
  lines.push("};");
@@ -2656,7 +2664,8 @@ function iotToGodot(iot) {
2656
2664
  lines.push(
2657
2665
  `@export var telemetry_fields: PackedStringArray = [${iot.telemetryFields.map((f) => `"${esc(f, "GDScript")}"`).join(", ")}]`
2658
2666
  );
2659
- if (iot.twinModel) lines.push(`@export var twin_model: String = "${esc(iot.twinModel, "GDScript")}"`);
2667
+ if (iot.twinModel)
2668
+ lines.push(`@export var twin_model: String = "${esc(iot.twinModel, "GDScript")}"`);
2660
2669
  lines.push("");
2661
2670
  lines.push("signal telemetry_received(field: String, value: float)");
2662
2671
  lines.push("signal connection_changed(connected: bool)");
@@ -2836,11 +2845,15 @@ function educationToR3F(edu) {
2836
2845
  lines.push(` type: "${edu.keyword}",`);
2837
2846
  if (edu.difficulty) lines.push(` difficulty: "${esc(edu.difficulty, "TypeScript")}",`);
2838
2847
  if (edu.objectives)
2839
- lines.push(` objectives: [${edu.objectives.map((o) => `"${esc(o, "TypeScript")}"`).join(", ")}],`);
2848
+ lines.push(
2849
+ ` objectives: [${edu.objectives.map((o) => `"${esc(o, "TypeScript")}"`).join(", ")}],`
2850
+ );
2840
2851
  if (edu.duration) lines.push(` duration: ${edu.duration},`);
2841
2852
  if (edu.questions) lines.push(` questions: ${JSON.stringify(edu.questions)},`);
2842
2853
  if (edu.prerequisites)
2843
- lines.push(` prerequisites: [${edu.prerequisites.map((p) => `"${esc(p, "TypeScript")}"`).join(", ")}],`);
2854
+ lines.push(
2855
+ ` prerequisites: [${edu.prerequisites.map((p) => `"${esc(p, "TypeScript")}"`).join(", ")}],`
2856
+ );
2844
2857
  lines.push("};");
2845
2858
  return lines.join("\n");
2846
2859
  }
@@ -2850,7 +2863,8 @@ function educationToUnity(edu) {
2850
2863
  lines.push(`// Education: ${edu.name}`);
2851
2864
  lines.push(`public class ${safeName}Education : MonoBehaviour {`);
2852
2865
  lines.push(` public string contentType = "${esc(edu.keyword, "CSharp")}";`);
2853
- if (edu.difficulty) lines.push(` public string difficulty = "${esc(edu.difficulty, "CSharp")}";`);
2866
+ if (edu.difficulty)
2867
+ lines.push(` public string difficulty = "${esc(edu.difficulty, "CSharp")}";`);
2854
2868
  if (edu.duration) lines.push(` public int durationMinutes = ${edu.duration};`);
2855
2869
  if (edu.objectives)
2856
2870
  lines.push(
@@ -2866,7 +2880,8 @@ function educationToGodot(edu) {
2866
2880
  lines.push("extends Node");
2867
2881
  lines.push("");
2868
2882
  lines.push(`@export var content_type: String = "${esc(edu.keyword, "GDScript")}"`);
2869
- if (edu.difficulty) lines.push(`@export var difficulty: String = "${esc(edu.difficulty, "GDScript")}"`);
2883
+ if (edu.difficulty)
2884
+ lines.push(`@export var difficulty: String = "${esc(edu.difficulty, "GDScript")}"`);
2870
2885
  if (edu.duration) lines.push(`@export var duration_minutes: int = ${edu.duration}`);
2871
2886
  if (edu.objectives)
2872
2887
  lines.push(
@@ -2939,7 +2954,8 @@ function musicToR3F(music) {
2939
2954
  if (music.bpm) lines.push(` bpm: ${music.bpm},`);
2940
2955
  if (music.timeSignature) lines.push(` timeSignature: [${music.timeSignature.join(", ")}],`);
2941
2956
  if (music.key) lines.push(` key: "${esc(music.key, "TypeScript")}",`);
2942
- if (music.effects) lines.push(` effects: [${music.effects.map((e) => `"${esc(e, "TypeScript")}"`).join(", ")}],`);
2957
+ if (music.effects)
2958
+ lines.push(` effects: [${music.effects.map((e) => `"${esc(e, "TypeScript")}"`).join(", ")}],`);
2943
2959
  if (music.pattern) lines.push(` pattern: "${esc(music.pattern, "TypeScript")}",`);
2944
2960
  if (music.bars) lines.push(` bars: ${music.bars},`);
2945
2961
  lines.push("};");
@@ -3130,9 +3146,12 @@ function web3ToR3F(web3) {
3130
3146
  lines.push(` type: "${web3.keyword}",`);
3131
3147
  if (web3.standard) lines.push(` standard: "${web3.standard}",`);
3132
3148
  if (web3.network) lines.push(` network: "${web3.network}",`);
3133
- if (web3.contractAddress) lines.push(` contractAddress: "${esc(web3.contractAddress, "TypeScript")}",`);
3149
+ if (web3.contractAddress)
3150
+ lines.push(` contractAddress: "${esc(web3.contractAddress, "TypeScript")}",`);
3134
3151
  if (web3.functions)
3135
- lines.push(` functions: [${web3.functions.map((f) => `"${esc(f, "TypeScript")}"`).join(", ")}],`);
3152
+ lines.push(
3153
+ ` functions: [${web3.functions.map((f) => `"${esc(f, "TypeScript")}"`).join(", ")}],`
3154
+ );
3136
3155
  if (web3.supply) lines.push(` supply: ${web3.supply},`);
3137
3156
  if (web3.votingThreshold) lines.push(` votingThreshold: ${web3.votingThreshold},`);
3138
3157
  lines.push("};");
@@ -3627,6 +3646,46 @@ function inputToUSDA(input) {
3627
3646
  lines.push("}");
3628
3647
  return lines.join("\n");
3629
3648
  }
3649
+ function compileSimulationBlock(block) {
3650
+ const traits = block.traits || [];
3651
+ let simulationType = "unknown";
3652
+ if (traits.includes("thermal_simulation")) simulationType = "thermal";
3653
+ else if (traits.includes("structural_fem")) simulationType = "structural";
3654
+ else if (traits.includes("hydraulic_pipe")) simulationType = "hydraulic";
3655
+ const overlays = [];
3656
+ for (const child of block.children || []) {
3657
+ const c = child;
3658
+ if (c.traits?.includes("scalar_field_overlay") || c.keyword === "scalar_field_overlay") {
3659
+ const p = c.properties || {};
3660
+ overlays.push({
3661
+ source: p.source ?? "",
3662
+ colormap: p.colormap ?? "turbo",
3663
+ range: p.range ?? [0, 1],
3664
+ opacity: p.opacity ?? 0.7,
3665
+ visible: p.visible ?? true,
3666
+ label: p.label ?? ""
3667
+ });
3668
+ }
3669
+ }
3670
+ return {
3671
+ keyword: block.keyword,
3672
+ name: block.name,
3673
+ simulationType,
3674
+ traits,
3675
+ config: block.properties || {},
3676
+ overlays
3677
+ };
3678
+ }
3679
+ function simulationToR3F(sim) {
3680
+ const configJSON = JSON.stringify(sim.config).replace(/"/g, "'").replace(/'/g, '"');
3681
+ const overlayJSX = sim.overlays.map(
3682
+ (o) => `<ScalarFieldOverlay colormap="${o.colormap}" range={[${o.range.join(", ")}]} opacity={${o.opacity}} visible={${o.visible}} label="${o.label}" />`
3683
+ ).join("\n ");
3684
+ return `{/* Simulation: ${sim.name} (${sim.simulationType}) */}
3685
+ <SimulationProvider type="${sim.simulationType}" config={${configJSON}}>
3686
+ ${overlayJSX}
3687
+ </SimulationProvider>`;
3688
+ }
3630
3689
  function compileDomainBlocks(blocks, handlers, fallback) {
3631
3690
  return blocks.map((block) => {
3632
3691
  const handler = handlers[block.domain];
@@ -3652,14 +3711,14 @@ function hexToRGBA(hex, alpha) {
3652
3711
  ];
3653
3712
  }
3654
3713
  function getRequiredCapability() {
3655
- return chunkQHVVVN47_cjs.ANSCapabilityPath.DOMAIN_BLOCK;
3714
+ return chunkBF2235SI_cjs.ANSCapabilityPath.DOMAIN_BLOCK;
3656
3715
  }
3657
3716
  exports.DOMAIN_BLOCK_COMPILER_MIXIN_CAPABILITY = void 0;
3658
- var init_DomainBlockCompilerMixin = chunkEGIZHYJP_cjs.__esm({
3717
+ var init_DomainBlockCompilerMixin = chunk3SAK5KFL_cjs.__esm({
3659
3718
  "src/compiler/DomainBlockCompilerMixin.ts"() {
3660
- chunkQHVVVN47_cjs.init_CompilerBase();
3661
- chunkQHVVVN47_cjs.init_ANSNamespace();
3662
- exports.DOMAIN_BLOCK_COMPILER_MIXIN_CAPABILITY = chunkQHVVVN47_cjs.ANSCapabilityPath.DOMAIN_BLOCK;
3719
+ chunkBF2235SI_cjs.init_CompilerBase();
3720
+ chunkBF2235SI_cjs.init_ANSNamespace();
3721
+ exports.DOMAIN_BLOCK_COMPILER_MIXIN_CAPABILITY = "/compile/mixin/domain-block";
3663
3722
  }
3664
3723
  });
3665
3724
 
@@ -3696,6 +3755,7 @@ exports.compilePostProcessingBlock = compilePostProcessingBlock;
3696
3755
  exports.compileProceduralBlock = compileProceduralBlock;
3697
3756
  exports.compileRenderingBlock = compileRenderingBlock;
3698
3757
  exports.compileRoboticsBlock = compileRoboticsBlock;
3758
+ exports.compileSimulationBlock = compileSimulationBlock;
3699
3759
  exports.compileWeatherBlock = compileWeatherBlock;
3700
3760
  exports.compileWeb3Block = compileWeb3Block;
3701
3761
  exports.datavizToGodot = datavizToGodot;
@@ -3798,6 +3858,7 @@ exports.roboticsToR3F = roboticsToR3F;
3798
3858
  exports.roboticsToUSDA = roboticsToUSDA;
3799
3859
  exports.roboticsToUnity = roboticsToUnity;
3800
3860
  exports.roboticsToVRChat = roboticsToVRChat;
3861
+ exports.simulationToR3F = simulationToR3F;
3801
3862
  exports.weatherToAndroidXR = weatherToAndroidXR;
3802
3863
  exports.weatherToGodot = weatherToGodot;
3803
3864
  exports.weatherToR3F = weatherToR3F;
@@ -3809,5 +3870,5 @@ exports.web3ToR3F = web3ToR3F;
3809
3870
  exports.web3ToUSDA = web3ToUSDA;
3810
3871
  exports.web3ToUnity = web3ToUnity;
3811
3872
  exports.web3ToVRChat = web3ToVRChat;
3812
- //# sourceMappingURL=chunk-HHS6FMOU.cjs.map
3813
- //# sourceMappingURL=chunk-HHS6FMOU.cjs.map
3873
+ //# sourceMappingURL=chunk-LXJ4667L.cjs.map
3874
+ //# sourceMappingURL=chunk-LXJ4667L.cjs.map
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkHAN4V3PF_cjs = require('./chunk-HAN4V3PF.cjs');
3
+ var chunkGVUR45UF_cjs = require('./chunk-GVUR45UF.cjs');
4
+ var chunkXG23EUQX_cjs = require('./chunk-XG23EUQX.cjs');
4
5
  var crypto = require('crypto');
5
6
 
6
7
  function _interopNamespace(e) {
@@ -768,7 +769,7 @@ function similarity(a, b) {
768
769
  function findSimilarTrait(input, threshold = 0.5) {
769
770
  let bestMatch;
770
771
  let bestScore = threshold;
771
- for (const trait of chunkHAN4V3PF_cjs.VR_TRAITS) {
772
+ for (const trait of chunkXG23EUQX_cjs.VR_TRAITS) {
772
773
  const score = similarity(input, trait);
773
774
  if (score > bestScore) {
774
775
  bestScore = score;
@@ -1573,7 +1574,7 @@ var HoloScriptPlusParser = class {
1573
1574
  this.hasVRTraits = false;
1574
1575
  this.hasControlFlow = false;
1575
1576
  this.compiledExpressions = /* @__PURE__ */ new Map();
1576
- this.errorRecovery = new chunkHAN4V3PF_cjs.ErrorRecovery();
1577
+ this.errorRecovery = new chunkGVUR45UF_cjs.ErrorRecovery();
1577
1578
  this.options = {
1578
1579
  enableVRTraits: true,
1579
1580
  enableTypeScriptImports: true,
@@ -1588,7 +1589,7 @@ var HoloScriptPlusParser = class {
1588
1589
  getQuickFixes() {
1589
1590
  const fixes = /* @__PURE__ */ new Map();
1590
1591
  for (const error of this.errors) {
1591
- const errorFixes = chunkHAN4V3PF_cjs.generateQuickFixes(
1592
+ const errorFixes = chunkGVUR45UF_cjs.generateQuickFixes(
1592
1593
  {
1593
1594
  code: error.code,
1594
1595
  message: error.message,
@@ -1609,7 +1610,7 @@ var HoloScriptPlusParser = class {
1609
1610
  */
1610
1611
  getEnrichedErrors() {
1611
1612
  return this.errors.map(
1612
- (error) => chunkHAN4V3PF_cjs.enrichErrorWithSuggestions(
1613
+ (error) => chunkGVUR45UF_cjs.enrichErrorWithSuggestions(
1613
1614
  {
1614
1615
  code: error.code,
1615
1616
  message: error.message,
@@ -2331,7 +2332,9 @@ var HoloScriptPlusParser = class {
2331
2332
  parseDirective() {
2332
2333
  this.expect("AT", "Expected @");
2333
2334
  const nameToken = this.current();
2334
- const isKeyword = ["STATE_MACHINE", "STATE", "ON_ENTRY", "ON_EXIT", "TRANSITION"].includes(nameToken.type);
2335
+ const isKeyword = ["STATE_MACHINE", "STATE", "ON_ENTRY", "ON_EXIT", "TRANSITION"].includes(
2336
+ nameToken.type
2337
+ );
2335
2338
  if (nameToken.type !== "IDENTIFIER" && !isKeyword) {
2336
2339
  this.error(
2337
2340
  `Expected directive name, got ${nameToken.type}. Directives start with @ followed by name (e.g., @grabbable)`,
@@ -2360,7 +2363,7 @@ var HoloScriptPlusParser = class {
2360
2363
  const body = this.check("LBRACE") ? this.parseCodeBlock() : "";
2361
2364
  return { type: "migrate", fromVersion, body };
2362
2365
  }
2363
- if (chunkHAN4V3PF_cjs.VR_TRAITS.includes(name)) {
2366
+ if (chunkXG23EUQX_cjs.VR_TRAITS.includes(name)) {
2364
2367
  if (!this.options.enableVRTraits) {
2365
2368
  this.warn(`VR trait @${name} is disabled`);
2366
2369
  return null;
@@ -2373,7 +2376,7 @@ var HoloScriptPlusParser = class {
2373
2376
  }
2374
2377
  return { type: "trait", name, config: config2 };
2375
2378
  }
2376
- if (chunkHAN4V3PF_cjs.LIFECYCLE_HOOKS.includes(name)) {
2379
+ if (chunkGVUR45UF_cjs.LIFECYCLE_HOOKS.includes(name)) {
2377
2380
  const params = [];
2378
2381
  if (this.check("LPAREN")) {
2379
2382
  this.advance();
@@ -2639,7 +2642,11 @@ var HoloScriptPlusParser = class {
2639
2642
  externalApiName = this.advance().value;
2640
2643
  }
2641
2644
  const config2 = this.check("LBRACE") ? this.parseBlockContent() : this.parseTraitConfig();
2642
- return { type: "external_api", name: externalApiName, ...config2 };
2645
+ return {
2646
+ type: "external_api",
2647
+ name: externalApiName,
2648
+ ...config2
2649
+ };
2643
2650
  }
2644
2651
  if (name === "generate") {
2645
2652
  const config2 = this.parseTraitConfig();
@@ -2678,7 +2685,7 @@ var HoloScriptPlusParser = class {
2678
2685
  return { type: "hololand_event", event: eventName, params };
2679
2686
  }
2680
2687
  }
2681
- if (chunkHAN4V3PF_cjs.STRUCTURAL_DIRECTIVES.includes(name)) {
2688
+ if (chunkGVUR45UF_cjs.STRUCTURAL_DIRECTIVES.includes(name)) {
2682
2689
  let nodeName;
2683
2690
  if (this.check("STRING")) {
2684
2691
  nodeName = this.advance().value;
@@ -4263,7 +4270,7 @@ var HoloScriptPlusParser = class {
4263
4270
  code: "HSP001"
4264
4271
  };
4265
4272
  }
4266
- if (current.type === "IDENTIFIER" && chunkHAN4V3PF_cjs.VR_TRAITS.includes(current.value)) {
4273
+ if (current.type === "IDENTIFIER" && chunkXG23EUQX_cjs.VR_TRAITS.includes(current.value)) {
4267
4274
  if (prev?.type !== "AT") {
4268
4275
  return {
4269
4276
  message: `'${current.value}' is a trait and requires '@' prefix`,
@@ -4488,5 +4495,5 @@ exports.getErrorCodeDocumentation = getErrorCodeDocumentation;
4488
4495
  exports.getSourceContext = getSourceContext;
4489
4496
  exports.globalParseCache = globalParseCache;
4490
4497
  exports.parse = parse;
4491
- //# sourceMappingURL=chunk-H6WMMLQK.cjs.map
4492
- //# sourceMappingURL=chunk-H6WMMLQK.cjs.map
4498
+ //# sourceMappingURL=chunk-LZ266PCM.cjs.map
4499
+ //# sourceMappingURL=chunk-LZ266PCM.cjs.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkEGIZHYJP_cjs = require('./chunk-EGIZHYJP.cjs');
3
+ var chunk3SAK5KFL_cjs = require('./chunk-3SAK5KFL.cjs');
4
4
 
5
5
  // src/traits/constants/mobile/ios-object-capture.ts
6
6
  exports.IOS_OBJECT_CAPTURE_TRAITS = void 0;
7
- var init_ios_object_capture = chunkEGIZHYJP_cjs.__esm({
7
+ var init_ios_object_capture = chunk3SAK5KFL_cjs.__esm({
8
8
  "src/traits/constants/mobile/ios-object-capture.ts"() {
9
9
  exports.IOS_OBJECT_CAPTURE_TRAITS = [
10
10
  "object_capture",
@@ -29,7 +29,7 @@ var init_ios_object_capture = chunkEGIZHYJP_cjs.__esm({
29
29
 
30
30
  // src/traits/constants/mobile/airpods-spatial-audio.ts
31
31
  exports.AIRPODS_SPATIAL_AUDIO_TRAITS = void 0;
32
- var init_airpods_spatial_audio = chunkEGIZHYJP_cjs.__esm({
32
+ var init_airpods_spatial_audio = chunk3SAK5KFL_cjs.__esm({
33
33
  "src/traits/constants/mobile/airpods-spatial-audio.ts"() {
34
34
  exports.AIRPODS_SPATIAL_AUDIO_TRAITS = [
35
35
  "spatial_audio_airpods",
@@ -52,7 +52,7 @@ var init_airpods_spatial_audio = chunkEGIZHYJP_cjs.__esm({
52
52
 
53
53
  // src/traits/constants/mobile/shareplay.ts
54
54
  exports.SHAREPLAY_TRAITS = void 0;
55
- var init_shareplay = chunkEGIZHYJP_cjs.__esm({
55
+ var init_shareplay = chunk3SAK5KFL_cjs.__esm({
56
56
  "src/traits/constants/mobile/shareplay.ts"() {
57
57
  exports.SHAREPLAY_TRAITS = [
58
58
  // --- Session ---
@@ -82,7 +82,7 @@ var init_shareplay = chunkEGIZHYJP_cjs.__esm({
82
82
 
83
83
  // src/traits/constants/mobile/uwb-positioning.ts
84
84
  exports.UWB_POSITIONING_TRAITS = void 0;
85
- var init_uwb_positioning = chunkEGIZHYJP_cjs.__esm({
85
+ var init_uwb_positioning = chunk3SAK5KFL_cjs.__esm({
86
86
  "src/traits/constants/mobile/uwb-positioning.ts"() {
87
87
  exports.UWB_POSITIONING_TRAITS = [
88
88
  "uwb_discover",
@@ -103,7 +103,7 @@ var init_uwb_positioning = chunkEGIZHYJP_cjs.__esm({
103
103
 
104
104
  // src/traits/constants/mobile/face-tracking.ts
105
105
  exports.FACE_TRACKING_TRAITS = void 0;
106
- var init_face_tracking = chunkEGIZHYJP_cjs.__esm({
106
+ var init_face_tracking = chunk3SAK5KFL_cjs.__esm({
107
107
  "src/traits/constants/mobile/face-tracking.ts"() {
108
108
  exports.FACE_TRACKING_TRAITS = [
109
109
  // --- Tracking ---
@@ -137,7 +137,7 @@ var init_face_tracking = chunkEGIZHYJP_cjs.__esm({
137
137
 
138
138
  // src/traits/constants/mobile/lidar-scanner.ts
139
139
  exports.LIDAR_SCANNER_TRAITS = void 0;
140
- var init_lidar_scanner = chunkEGIZHYJP_cjs.__esm({
140
+ var init_lidar_scanner = chunk3SAK5KFL_cjs.__esm({
141
141
  "src/traits/constants/mobile/lidar-scanner.ts"() {
142
142
  exports.LIDAR_SCANNER_TRAITS = [
143
143
  // --- Scanning ---
@@ -172,7 +172,7 @@ var init_lidar_scanner = chunkEGIZHYJP_cjs.__esm({
172
172
 
173
173
  // src/traits/constants/mobile/roomplan.ts
174
174
  exports.ROOMPLAN_TRAITS = void 0;
175
- var init_roomplan = chunkEGIZHYJP_cjs.__esm({
175
+ var init_roomplan = chunk3SAK5KFL_cjs.__esm({
176
176
  "src/traits/constants/mobile/roomplan.ts"() {
177
177
  exports.ROOMPLAN_TRAITS = [
178
178
  // --- Scanning ---
@@ -233,5 +233,5 @@ exports.init_lidar_scanner = init_lidar_scanner;
233
233
  exports.init_roomplan = init_roomplan;
234
234
  exports.init_shareplay = init_shareplay;
235
235
  exports.init_uwb_positioning = init_uwb_positioning;
236
- //# sourceMappingURL=chunk-V2ILLPHK.cjs.map
237
- //# sourceMappingURL=chunk-V2ILLPHK.cjs.map
236
+ //# sourceMappingURL=chunk-MD6KDHVE.cjs.map
237
+ //# sourceMappingURL=chunk-MD6KDHVE.cjs.map
@@ -1,5 +1,6 @@
1
- import { init_CompilerBase, init_ANSNamespace, CompilerBase, ANSCapabilityPath } from './chunk-QWKUKVRE.js';
2
- import { __export, __esm } from './chunk-32TWR3HE.js';
1
+ import { init_CompilerBase, CompilerBase } from './chunk-6XSERL6L.js';
2
+ import { __export, __esm } from './chunk-2CWOLHTE.js';
3
+ import { ANSCapabilityPath } from '@holoscript/platform';
3
4
 
4
5
  // src/compiler/ARCompiler.ts
5
6
  var ARCompiler_exports = {};
@@ -11,7 +12,6 @@ var ARCompiler, ARCompiler_default;
11
12
  var init_ARCompiler = __esm({
12
13
  "src/compiler/ARCompiler.ts"() {
13
14
  init_CompilerBase();
14
- init_ANSNamespace();
15
15
  ARCompiler = class extends CompilerBase {
16
16
  constructor(options) {
17
17
  super();
@@ -122,5 +122,5 @@ var init_ARCompiler = __esm({
122
122
  });
123
123
 
124
124
  export { ARCompiler, ARCompiler_default, ARCompiler_exports, init_ARCompiler };
125
- //# sourceMappingURL=chunk-6WNCRE6F.js.map
126
- //# sourceMappingURL=chunk-6WNCRE6F.js.map
125
+ //# sourceMappingURL=chunk-MEASWI2Y.js.map
126
+ //# sourceMappingURL=chunk-MEASWI2Y.js.map