@holoscript/core 7.0.0 → 8.0.0

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 (345) hide show
  1. package/README.md +2 -2
  2. package/bin/holoscript.cjs +3 -0
  3. package/dist/GLTFPipeline-276GE64O.js +16 -0
  4. package/dist/GLTFPipeline-M7WSSJED.cjs +37 -0
  5. package/dist/HoloScriptPlusParser-7FBIFUFC.js +693 -0
  6. package/dist/HoloScriptPlusParser-A2W7OCN2.cjs +698 -0
  7. package/dist/HoloScriptPlusParser-F2Z56FJR.js +10 -0
  8. package/dist/HoloScriptPlusParser-WKHRIH6T.cjs +27 -0
  9. package/dist/HoloScriptRuntime-3URVTKPJ.js +10 -0
  10. package/dist/HoloScriptRuntime-SXEAEU2N.cjs +19 -0
  11. package/dist/USDZExporter-3FWJ25JI.cjs +1037 -0
  12. package/dist/USDZExporter-D2HQLQYK.js +1035 -0
  13. package/dist/agents/index.cjs +19 -0
  14. package/dist/agents/index.d.ts +100 -0
  15. package/dist/agents/index.js +17 -0
  16. package/dist/chunk-23J755AR.js +1046 -0
  17. package/dist/chunk-253GBQZY.cjs +627 -0
  18. package/dist/chunk-25IQCHTO.cjs +781 -0
  19. package/dist/chunk-2BSMSUCE.js +1941 -0
  20. package/dist/chunk-2M2DPHKB.js +762 -0
  21. package/dist/chunk-2YSNA2F2.cjs +1274 -0
  22. package/dist/chunk-3AO425MZ.cjs +886 -0
  23. package/dist/chunk-3FOKASKO.cjs +348 -0
  24. package/dist/chunk-3HYYMEXI.cjs +56578 -0
  25. package/dist/chunk-3NFFOWGG.js +4287 -0
  26. package/dist/chunk-3WZEJHUQ.cjs +116 -0
  27. package/dist/chunk-4C57PR42.js +468 -0
  28. package/dist/chunk-4N4SXXWF.js +769 -0
  29. package/dist/chunk-4PDEPEQW.cjs +41 -0
  30. package/dist/chunk-4R6SBXDB.js +45 -0
  31. package/dist/chunk-4V2E7U7Q.cjs +2015 -0
  32. package/dist/chunk-5FSKKMR7.cjs +2092 -0
  33. package/dist/chunk-5GLCTO44.js +161 -0
  34. package/dist/chunk-5JEU52DW.js +382 -0
  35. package/dist/chunk-5S7RKFGR.cjs +446 -0
  36. package/dist/chunk-5WUNN6ZN.cjs +428 -0
  37. package/dist/chunk-62FBK3B7.js +70 -0
  38. package/dist/chunk-6CTRH7HT.cjs +1985 -0
  39. package/dist/chunk-6DPSFNJB.cjs +847 -0
  40. package/dist/chunk-6EX3I5P4.cjs +130 -0
  41. package/dist/chunk-73FELZVJ.cjs +611 -0
  42. package/dist/chunk-7CUEMLDZ.cjs +6445 -0
  43. package/dist/chunk-7HIASF7S.cjs +814 -0
  44. package/dist/chunk-A6KINLZJ.js +236 -0
  45. package/dist/chunk-AIA52I7T.cjs +543 -0
  46. package/dist/chunk-ANXZFVY2.js +113 -0
  47. package/dist/chunk-AYBXB26F.js +2176 -0
  48. package/dist/chunk-B4TFTDG4.js +449 -0
  49. package/dist/chunk-BE4UJCQT.js +623 -0
  50. package/dist/chunk-BRQJKJGT.cjs +20 -0
  51. package/dist/chunk-C2A5DUMF.cjs +689 -0
  52. package/dist/chunk-C37BHB7N.cjs +636 -0
  53. package/dist/chunk-CBJY23VL.js +126 -0
  54. package/dist/chunk-CIWWXYHZ.cjs +50 -0
  55. package/dist/chunk-CXFDRBQU.cjs +672 -0
  56. package/dist/chunk-D54CNIAJ.cjs +413 -0
  57. package/dist/chunk-DAJXW4KX.js +725 -0
  58. package/dist/chunk-DTGBOSEM.cjs +319 -0
  59. package/dist/chunk-E7JP3BS3.cjs +61 -0
  60. package/dist/chunk-EKBKLK7P.js +1169 -0
  61. package/dist/chunk-EKYL4PE3.cjs +404 -0
  62. package/dist/chunk-EUDQTK7N.cjs +4310 -0
  63. package/dist/chunk-EXKSFGSX.cjs +274 -0
  64. package/dist/chunk-EXUP2BUM.cjs +1173 -0
  65. package/dist/chunk-F43YAA34.js +623 -0
  66. package/dist/chunk-FDSGHPAK.js +130 -0
  67. package/dist/chunk-FEWUHQNM.cjs +144 -0
  68. package/dist/chunk-FGGJQRLZ.js +270 -0
  69. package/dist/chunk-FHP6LXJS.js +415 -0
  70. package/dist/chunk-FJPADH77.cjs +666 -0
  71. package/dist/chunk-FYSPZT4V.cjs +169 -0
  72. package/dist/chunk-GIOYPNTH.js +5575 -0
  73. package/dist/chunk-GJNCFRJU.cjs +125 -0
  74. package/dist/chunk-GMP623FG.cjs +1508 -0
  75. package/dist/chunk-GQHQOPXZ.cjs +5580 -0
  76. package/dist/chunk-GQT4TYKY.cjs +4381 -0
  77. package/dist/chunk-GTU2Z2WW.cjs +262 -0
  78. package/dist/chunk-GYZE55MO.js +2007 -0
  79. package/dist/chunk-GZG4KA4E.js +529 -0
  80. package/dist/chunk-H652NHX5.js +600 -0
  81. package/dist/chunk-HCCQLAA4.cjs +74 -0
  82. package/dist/chunk-HINXWAOD.cjs +1049 -0
  83. package/dist/chunk-HYNTS5CP.js +422 -0
  84. package/dist/chunk-HZSPDCXV.cjs +457 -0
  85. package/dist/chunk-HZTDET3N.js +1399 -0
  86. package/dist/chunk-I6XZ5DZF.cjs +488 -0
  87. package/dist/chunk-ILRBGFVD.cjs +72 -0
  88. package/dist/chunk-IPWSXCCN.js +1183 -0
  89. package/dist/chunk-IUTY5WQ2.cjs +424 -0
  90. package/dist/chunk-IVSZDECV.js +882 -0
  91. package/dist/chunk-IVY74O6C.js +247 -0
  92. package/dist/chunk-IZM5VQZD.js +714 -0
  93. package/dist/chunk-J32ZJZJH.js +554 -0
  94. package/dist/chunk-J6M4FPK5.js +421 -0
  95. package/dist/chunk-JC5YBPSF.cjs +984 -0
  96. package/dist/chunk-JCLBKPMX.js +3813 -0
  97. package/dist/chunk-JD7CIZ33.js +1949 -0
  98. package/dist/chunk-JIYN45TV.cjs +2525 -0
  99. package/dist/chunk-JJBE3TIH.cjs +1189 -0
  100. package/dist/chunk-JX7YL6ZE.js +2252 -0
  101. package/dist/chunk-K4VVR7CN.cjs +2433 -0
  102. package/dist/chunk-KEFNV2WM.cjs +2257 -0
  103. package/dist/chunk-KH4CNH66.cjs +424 -0
  104. package/dist/chunk-KJLB4OPV.js +5731 -0
  105. package/dist/chunk-KKFZ3B6J.cjs +557 -0
  106. package/dist/chunk-KKP7JKN4.cjs +6002 -0
  107. package/dist/chunk-KPJL34Y7.cjs +186 -0
  108. package/dist/chunk-KQCN6AKJ.cjs +3042 -0
  109. package/dist/chunk-KVRSTFNH.cjs +72 -0
  110. package/dist/chunk-LICPB5HZ.cjs +1409 -0
  111. package/dist/chunk-LM2VU56C.cjs +37 -0
  112. package/dist/chunk-M56JSP4A.js +400 -0
  113. package/dist/chunk-MBOOR7X4.js +18 -0
  114. package/dist/chunk-MGE5Z4GS.js +608 -0
  115. package/dist/chunk-MXFUTKCO.js +56 -0
  116. package/dist/chunk-MYY4PMWX.cjs +264 -0
  117. package/dist/chunk-N75IH2HY.js +258 -0
  118. package/dist/chunk-NBMHU6SW.js +669 -0
  119. package/dist/chunk-NG77ATEW.cjs +778 -0
  120. package/dist/chunk-NGKREZ36.js +6384 -0
  121. package/dist/chunk-NHWSN2SD.cjs +718 -0
  122. package/dist/chunk-NV4VMVXU.js +421 -0
  123. package/dist/chunk-NW5G5FBQ.js +215 -0
  124. package/dist/chunk-NXZFOPVD.cjs +5737 -0
  125. package/dist/chunk-OBIYPYYS.cjs +1993 -0
  126. package/dist/chunk-OIQYIIO3.cjs +473 -0
  127. package/dist/chunk-OL46QLBJ.js +61 -0
  128. package/dist/chunk-OMXII44L.js +5386 -0
  129. package/dist/chunk-OR4Q2BGL.cjs +759 -0
  130. package/dist/chunk-OSYNRVOV.cjs +243 -0
  131. package/dist/chunk-PGANYCAG.cjs +220 -0
  132. package/dist/chunk-PHENW4MQ.js +65 -0
  133. package/dist/chunk-PHVRG4I2.js +844 -0
  134. package/dist/chunk-Q56TT7IL.js +483 -0
  135. package/dist/chunk-QPOQ7VPI.js +1491 -0
  136. package/dist/chunk-QPSKHBJP.js +5963 -0
  137. package/dist/chunk-QXH7QDSZ.js +1989 -0
  138. package/dist/chunk-R75BSDH7.cjs +50 -0
  139. package/dist/chunk-RARB3MBR.js +207 -0
  140. package/dist/chunk-RVBHAXFG.js +56160 -0
  141. package/dist/chunk-S3MDHNKB.cjs +490 -0
  142. package/dist/chunk-S4W6Z2MN.js +2426 -0
  143. package/dist/chunk-S6YWHCKV.cjs +410 -0
  144. package/dist/chunk-SIEXCILW.js +229 -0
  145. package/dist/chunk-SJBGLS25.cjs +2196 -0
  146. package/dist/chunk-SLU6UPJI.cjs +410 -0
  147. package/dist/chunk-SMIWS6DE.cjs +212 -0
  148. package/dist/chunk-T2QCTZMO.js +811 -0
  149. package/dist/chunk-T5J7ZKP3.cjs +4885 -0
  150. package/dist/chunk-TDCNJHWO.js +341 -0
  151. package/dist/chunk-TG7O4WBC.js +406 -0
  152. package/dist/chunk-THCK6ECW.js +2085 -0
  153. package/dist/chunk-TJHVSBP2.js +439 -0
  154. package/dist/chunk-TVHSPJ4N.cjs +606 -0
  155. package/dist/chunk-U44IKGG7.cjs +5390 -0
  156. package/dist/chunk-UJXISJBN.js +487 -0
  157. package/dist/chunk-UM6C3CGK.js +4375 -0
  158. package/dist/chunk-UMABK6SI.js +686 -0
  159. package/dist/chunk-UOIGFQXC.cjs +9750 -0
  160. package/dist/chunk-URG2SJLK.js +2521 -0
  161. package/dist/chunk-V6MKC2FZ.js +979 -0
  162. package/dist/chunk-VECQYRXL.js +474 -0
  163. package/dist/chunk-VJ3L7CHT.cjs +169 -0
  164. package/dist/chunk-VMLKSV26.js +1216 -0
  165. package/dist/chunk-VVKVQZI6.js +55 -0
  166. package/dist/chunk-W6RW64BB.cjs +1219 -0
  167. package/dist/chunk-W7VDOASB.cjs +639 -0
  168. package/dist/chunk-WDT3JTGM.cjs +483 -0
  169. package/dist/chunk-WJIHFLMJ.js +404 -0
  170. package/dist/chunk-WKX5AMOY.js +309 -0
  171. package/dist/chunk-WNNE3PO3.js +34 -0
  172. package/dist/chunk-WRKUDAZJ.js +3038 -0
  173. package/dist/chunk-WRLUBRKS.cjs +1943 -0
  174. package/dist/chunk-WRNEH5MO.js +3169 -0
  175. package/dist/chunk-WRWEX5ZF.js +658 -0
  176. package/dist/chunk-X3GJPRVK.cjs +3246 -0
  177. package/dist/chunk-XHIV6326.cjs +793 -0
  178. package/dist/chunk-XIVIE43A.cjs +729 -0
  179. package/dist/chunk-XJAN7CZG.cjs +432 -0
  180. package/dist/chunk-XKTPFXGA.js +164 -0
  181. package/dist/chunk-XL6INWKT.js +121 -0
  182. package/dist/chunk-XSFNHP2E.js +632 -0
  183. package/dist/chunk-XT6JY5W5.js +9684 -0
  184. package/dist/chunk-XUILI4KB.cjs +430 -0
  185. package/dist/chunk-XUUVDHIF.cjs +3962 -0
  186. package/dist/chunk-YF2I3MV3.js +46 -0
  187. package/dist/chunk-YIMN575O.js +4847 -0
  188. package/dist/chunk-YIVFJNYV.js +176 -0
  189. package/dist/chunk-YKGPCZEE.cjs +237 -0
  190. package/dist/chunk-YN6V7R3L.cjs +327 -0
  191. package/dist/chunk-YQELFNJV.js +39 -0
  192. package/dist/chunk-YYXH45E2.js +426 -0
  193. package/dist/chunk-ZBQXLH2L.js +756 -0
  194. package/dist/chunk-ZDSYWBIE.cjs +69 -0
  195. package/dist/chunk-ZU7NIRT6.js +325 -0
  196. package/dist/chunk-ZZ7RO2UQ.js +1243 -0
  197. package/dist/chunk-ZZEI7MV4.js +778 -0
  198. package/dist/cli/holoscript-runner.cjs +2255 -0
  199. package/dist/cli/holoscript-runner.js +2230 -0
  200. package/dist/codebase/index.cjs +336 -0
  201. package/dist/codebase/index.js +331 -0
  202. package/dist/compiler/agent-inference.cjs +31 -0
  203. package/dist/compiler/agent-inference.js +8 -0
  204. package/dist/compiler/android-xr.cjs +24 -0
  205. package/dist/compiler/android-xr.js +14 -0
  206. package/dist/compiler/android.cjs +24 -0
  207. package/dist/compiler/android.js +14 -0
  208. package/dist/compiler/ar.cjs +23 -0
  209. package/dist/compiler/ar.js +11 -0
  210. package/dist/compiler/babylon.cjs +21 -0
  211. package/dist/compiler/babylon.js +15 -0
  212. package/dist/compiler/business-quest.cjs +43 -0
  213. package/dist/compiler/business-quest.js +4 -0
  214. package/dist/compiler/coco.cjs +27 -0
  215. package/dist/compiler/coco.js +4 -0
  216. package/dist/compiler/context.cjs +25 -0
  217. package/dist/compiler/context.d.ts +28 -0
  218. package/dist/compiler/context.js +8 -0
  219. package/dist/compiler/domain-block-utils.cjs +605 -0
  220. package/dist/compiler/domain-block-utils.js +11 -0
  221. package/dist/compiler/dtdl.cjs +27 -0
  222. package/dist/compiler/dtdl.js +11 -0
  223. package/dist/compiler/gltf-pipeline.cjs +39 -0
  224. package/dist/compiler/gltf-pipeline.js +4 -0
  225. package/dist/compiler/godot.cjs +18 -0
  226. package/dist/compiler/godot.js +12 -0
  227. package/dist/compiler/incremental.cjs +34 -0
  228. package/dist/compiler/incremental.js +9 -0
  229. package/dist/compiler/index.cjs +5860 -0
  230. package/dist/compiler/index.d.ts +322 -21
  231. package/dist/compiler/index.js +5525 -0
  232. package/dist/compiler/ios.cjs +23 -0
  233. package/dist/compiler/ios.js +13 -0
  234. package/dist/compiler/llm-provider-capabilities.cjs +25 -0
  235. package/dist/compiler/llm-provider-capabilities.d.ts +43 -0
  236. package/dist/compiler/llm-provider-capabilities.js +8 -0
  237. package/dist/compiler/multi-layer.cjs +24 -0
  238. package/dist/compiler/multi-layer.js +15 -0
  239. package/dist/compiler/nodetoy.cjs +23 -0
  240. package/dist/compiler/nodetoy.js +4 -0
  241. package/dist/compiler/openxr.cjs +19 -0
  242. package/dist/compiler/openxr.js +13 -0
  243. package/dist/compiler/playcanvas.cjs +19 -0
  244. package/dist/compiler/playcanvas.js +13 -0
  245. package/dist/compiler/r3f.cjs +38 -0
  246. package/dist/compiler/r3f.d.ts +22 -0
  247. package/dist/compiler/r3f.js +16 -0
  248. package/dist/compiler/remotion.cjs +23 -0
  249. package/dist/compiler/remotion.js +4 -0
  250. package/dist/compiler/reproducibility.cjs +39 -0
  251. package/dist/compiler/reproducibility.js +4 -0
  252. package/dist/compiler/sdf.cjs +24 -0
  253. package/dist/compiler/sdf.js +12 -0
  254. package/dist/compiler/semantic-scene.cjs +31 -0
  255. package/dist/compiler/semantic-scene.js +4 -0
  256. package/dist/compiler/state.cjs +21 -0
  257. package/dist/compiler/state.js +11 -0
  258. package/dist/compiler/trait-composition.cjs +30 -0
  259. package/dist/compiler/trait-composition.js +9 -0
  260. package/dist/compiler/unity.cjs +19 -0
  261. package/dist/compiler/unity.js +13 -0
  262. package/dist/compiler/unreal.cjs +23 -0
  263. package/dist/compiler/unreal.js +13 -0
  264. package/dist/compiler/urdf.cjs +52 -0
  265. package/dist/compiler/urdf.js +12 -0
  266. package/dist/compiler/usd-physics.cjs +26 -0
  267. package/dist/compiler/usd-physics.js +9 -0
  268. package/dist/compiler/visionos.cjs +19 -0
  269. package/dist/compiler/visionos.js +13 -0
  270. package/dist/compiler/vrchat.cjs +22 -0
  271. package/dist/compiler/vrchat.js +12 -0
  272. package/dist/compiler/vrr.cjs +24 -0
  273. package/dist/compiler/vrr.js +12 -0
  274. package/dist/compiler/wasm.cjs +36 -0
  275. package/dist/compiler/wasm.js +12 -0
  276. package/dist/compiler/webgpu.cjs +18 -0
  277. package/dist/compiler/webgpu.js +12 -0
  278. package/dist/coordinators/index.cjs +1266 -0
  279. package/dist/coordinators/index.d.ts +72 -1
  280. package/dist/coordinators/index.js +1259 -0
  281. package/dist/debugger.cjs +24 -0
  282. package/dist/debugger.js +11 -0
  283. package/dist/entries/interop.cjs +64 -0
  284. package/dist/entries/interop.js +7 -0
  285. package/dist/entries/scripting.cjs +55 -0
  286. package/dist/entries/scripting.js +10 -0
  287. package/dist/hololand/index.cjs +146 -0
  288. package/dist/hololand/index.d.ts +70 -0
  289. package/dist/hololand/index.js +5 -0
  290. package/dist/index.cjs +43233 -0
  291. package/dist/index.d.ts +976 -21
  292. package/dist/index.js +39995 -0
  293. package/dist/math/tropical-spmv.cjs +45 -0
  294. package/dist/math/tropical-spmv.js +4 -0
  295. package/dist/math/vec3.cjs +57 -0
  296. package/dist/math/vec3.js +4 -0
  297. package/dist/ml-dsa-FSKBTE3W.cjs +1265 -0
  298. package/dist/ml-dsa-Z7JDKW4L.js +1265 -0
  299. package/dist/paper-0c-spike/index.cjs +150 -0
  300. package/dist/paper-0c-spike/index.js +141 -0
  301. package/dist/parser.cjs +61 -0
  302. package/dist/parser.d.ts +11 -0
  303. package/dist/parser.js +12 -0
  304. package/dist/playwright-3AT3AKTV.cjs +98673 -0
  305. package/dist/playwright-VZPDVUEQ.js +98660 -0
  306. package/dist/reconstruction/index.cjs +153 -0
  307. package/dist/reconstruction/index.d.ts +29 -2
  308. package/dist/reconstruction/index.js +8 -0
  309. package/dist/runtime.cjs +316 -0
  310. package/dist/runtime.d.ts +61 -0
  311. package/dist/runtime.js +31 -0
  312. package/dist/self-improvement/index.cjs +563 -0
  313. package/dist/self-improvement/index.js +545 -0
  314. package/dist/storage/index.cjs +38 -0
  315. package/dist/storage/index.js +5 -0
  316. package/dist/testing.cjs +25 -0
  317. package/dist/testing.d.ts +70 -0
  318. package/dist/testing.js +4 -0
  319. package/dist/traitDocs/traitDocs.cjs +33 -0
  320. package/dist/traitDocs/traitDocs.js +7 -0
  321. package/dist/traits/botanical-lotus.cjs +41 -0
  322. package/dist/traits/botanical-lotus.d.ts +172 -0
  323. package/dist/traits/botanical-lotus.js +4 -0
  324. package/dist/traits/engines/index.cjs +520 -0
  325. package/dist/traits/engines/index.js +380 -0
  326. package/dist/traits/index.cjs +24409 -0
  327. package/dist/traits/index.d.ts +171 -35
  328. package/dist/traits/index.js +21634 -0
  329. package/dist/traits/simulation-solver-factory.cjs +13 -0
  330. package/dist/traits/simulation-solver-factory.d.ts +23 -0
  331. package/dist/traits/simulation-solver-factory.js +4 -0
  332. package/dist/traits/webcam-gaze.cjs +35 -0
  333. package/dist/traits/webcam-gaze.d.ts +17 -0
  334. package/dist/traits/webcam-gaze.js +4 -0
  335. package/dist/type-checker.cjs +19 -0
  336. package/dist/type-checker.js +6 -0
  337. package/dist/world/index.cjs +947 -0
  338. package/dist/world/index.d.ts +147 -0
  339. package/dist/world/index.js +939 -0
  340. package/dist/world-model/index.cjs +1446 -0
  341. package/dist/world-model/index.d.ts +119 -0
  342. package/dist/world-model/index.js +1414 -0
  343. package/dist/wot/index.cjs +29 -0
  344. package/dist/wot/index.js +4 -0
  345. package/package.json +93 -49
@@ -0,0 +1,161 @@
1
+ // src/compiler/ReproducibilityMode.ts
2
+ var DEFAULT_FIXED_TIMESTAMP = "2026-01-01T00:00:00.000Z";
3
+ var DEFAULT_SEED = 42;
4
+ var DEFAULT_GENERATOR = "holoscript-compiler";
5
+ var COMPILER_VERSION = "6.0.0";
6
+ function createSeededRNG(seed = DEFAULT_SEED) {
7
+ let state = seed | 0;
8
+ const initialSeed = state;
9
+ function next() {
10
+ state = state + 1831565813 | 0;
11
+ let t = Math.imul(state ^ state >>> 15, 1 | state);
12
+ t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
13
+ return ((t ^ t >>> 14) >>> 0) / 4294967296;
14
+ }
15
+ function nextInt(min, max) {
16
+ return Math.floor(next() * (max - min + 1)) + min;
17
+ }
18
+ function nextUUID() {
19
+ const hex = (n, len) => Array.from({ length: len }, () => nextInt(0, 15).toString(16)).join("");
20
+ return `${hex(0, 8)}-${hex(0, 4)}-4${hex(0, 3)}-${(8 + nextInt(0, 3)).toString(16)}${hex(0, 3)}-${hex(0, 12)}`;
21
+ }
22
+ function reset() {
23
+ state = initialSeed;
24
+ }
25
+ function getState() {
26
+ return state;
27
+ }
28
+ return { next, nextInt, nextUUID, reset, getState };
29
+ }
30
+ function sortKeysDeep(value) {
31
+ if (value === null || value === void 0) return value;
32
+ if (Array.isArray(value)) {
33
+ return value.map((item) => sortKeysDeep(item));
34
+ }
35
+ if (typeof value === "object") {
36
+ const sorted = {};
37
+ const keys = Object.keys(value).sort();
38
+ for (const key of keys) {
39
+ sorted[key] = sortKeysDeep(value[key]);
40
+ }
41
+ return sorted;
42
+ }
43
+ return value;
44
+ }
45
+ function fnv1a32(input) {
46
+ let hash = 2166136261;
47
+ for (let i = 0; i < input.length; i++) {
48
+ hash ^= input.charCodeAt(i);
49
+ hash = Math.imul(hash, 16777619);
50
+ }
51
+ return (hash >>> 0).toString(16).padStart(8, "0");
52
+ }
53
+ function hashComposition(composition) {
54
+ const sorted = sortKeysDeep(composition);
55
+ const serialized = JSON.stringify(sorted);
56
+ const h1 = fnv1a32(serialized);
57
+ const h2 = fnv1a32(serialized + h1);
58
+ const h3 = fnv1a32(serialized + h2);
59
+ const h4 = fnv1a32(serialized + h3);
60
+ const h5 = fnv1a32(serialized + h4);
61
+ const h6 = fnv1a32(serialized + h5);
62
+ const h7 = fnv1a32(serialized + h6);
63
+ const h8 = fnv1a32(serialized + h7);
64
+ return `${h1}${h2}${h3}${h4}${h5}${h6}${h7}${h8}`;
65
+ }
66
+ function createReproducibilityContext(config) {
67
+ const fullConfig = {
68
+ enabled: config.enabled,
69
+ fixedTimestamp: config.fixedTimestamp ?? DEFAULT_FIXED_TIMESTAMP,
70
+ randomSeed: config.randomSeed ?? DEFAULT_SEED,
71
+ sortKeys: config.sortKeys ?? config.enabled,
72
+ deterministicIds: config.deterministicIds ?? config.enabled,
73
+ generatorString: config.generatorString ?? DEFAULT_GENERATOR,
74
+ includeManifest: config.includeManifest ?? false
75
+ };
76
+ const rng = createSeededRNG(fullConfig.randomSeed);
77
+ function random() {
78
+ return fullConfig.enabled ? rng.next() : Math.random();
79
+ }
80
+ function randomInt(min, max) {
81
+ return fullConfig.enabled ? rng.nextInt(min, max) : Math.floor(Math.random() * (max - min + 1)) + min;
82
+ }
83
+ function timestamp() {
84
+ return fullConfig.enabled ? fullConfig.fixedTimestamp : (/* @__PURE__ */ new Date()).toISOString();
85
+ }
86
+ function timestampDate() {
87
+ return fullConfig.enabled ? new Date(fullConfig.fixedTimestamp) : /* @__PURE__ */ new Date();
88
+ }
89
+ function uuid() {
90
+ if (!fullConfig.enabled || !fullConfig.deterministicIds) {
91
+ return crypto?.randomUUID?.() ?? rng.nextUUID();
92
+ }
93
+ return rng.nextUUID();
94
+ }
95
+ function generator() {
96
+ return fullConfig.generatorString;
97
+ }
98
+ function stabilize(value) {
99
+ if (!fullConfig.enabled || !fullConfig.sortKeys) return value;
100
+ return sortKeysDeep(value);
101
+ }
102
+ function manifest(composition) {
103
+ return {
104
+ reproducible: true,
105
+ seed: fullConfig.randomSeed,
106
+ timestamp: fullConfig.fixedTimestamp,
107
+ inputHash: hashComposition(composition),
108
+ compilerVersion: COMPILER_VERSION
109
+ };
110
+ }
111
+ function reset() {
112
+ rng.reset();
113
+ }
114
+ function stringify(value, indent = 2) {
115
+ const processed = fullConfig.enabled && fullConfig.sortKeys ? sortKeysDeep(value) : value;
116
+ return JSON.stringify(processed, null, indent);
117
+ }
118
+ return {
119
+ enabled: fullConfig.enabled,
120
+ config: fullConfig,
121
+ random,
122
+ randomInt,
123
+ timestamp,
124
+ timestampDate,
125
+ uuid,
126
+ generator,
127
+ stabilize,
128
+ manifest,
129
+ reset,
130
+ stringify
131
+ };
132
+ }
133
+ function parseReproducibilityFlags(args) {
134
+ const config = { enabled: false };
135
+ for (const arg of args) {
136
+ if (arg === "--reproducible") {
137
+ config.enabled = true;
138
+ }
139
+ if (arg === "--no-reproducible") {
140
+ config.enabled = false;
141
+ }
142
+ if (arg.startsWith("--reproducible-seed=")) {
143
+ config.enabled = true;
144
+ config.randomSeed = parseInt(arg.split("=")[1], 10);
145
+ if (isNaN(config.randomSeed)) config.randomSeed = DEFAULT_SEED;
146
+ }
147
+ if (arg.startsWith("--reproducible-timestamp=")) {
148
+ config.enabled = true;
149
+ config.fixedTimestamp = arg.split("=")[1].replace(/"/g, "");
150
+ }
151
+ if (arg === "--reproducible-manifest") {
152
+ config.includeManifest = true;
153
+ }
154
+ }
155
+ return config;
156
+ }
157
+ var ReproducibilityMode_default = createReproducibilityContext;
158
+
159
+ export { ReproducibilityMode_default, createReproducibilityContext, createSeededRNG, fnv1a32, hashComposition, parseReproducibilityFlags, sortKeysDeep };
160
+ //# sourceMappingURL=chunk-5GLCTO44.js.map
161
+ //# sourceMappingURL=chunk-5GLCTO44.js.map
@@ -0,0 +1,382 @@
1
+ import { init_safeJsonParse, readJson } from './chunk-VVKVQZI6.js';
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+
5
+ // src/interop/Interoperability.ts
6
+ init_safeJsonParse();
7
+ var ModuleResolver = class {
8
+ constructor(basePath = process.cwd()) {
9
+ this.cache = /* @__PURE__ */ new Map();
10
+ this.resolvedPaths = /* @__PURE__ */ new Map();
11
+ this.basePath = basePath;
12
+ }
13
+ /**
14
+ * Resolve module path
15
+ */
16
+ resolveModule(modulePath, fromPath) {
17
+ const cacheKey = `${modulePath}:${fromPath || "root"}`;
18
+ if (this.resolvedPaths.has(cacheKey)) {
19
+ return this.resolvedPaths.get(cacheKey);
20
+ }
21
+ const resolved = this.performResolve(modulePath, fromPath);
22
+ this.resolvedPaths.set(cacheKey, resolved);
23
+ return resolved;
24
+ }
25
+ /**
26
+ * Perform actual module resolution
27
+ */
28
+ performResolve(modulePath, fromPath) {
29
+ if (this.isBuiltinModule(modulePath)) {
30
+ return modulePath;
31
+ }
32
+ if (modulePath.startsWith(".")) {
33
+ const basePath = fromPath ? path.dirname(fromPath) : this.basePath;
34
+ const resolved = path.resolve(basePath, modulePath);
35
+ return this.findModuleFile(resolved);
36
+ }
37
+ if (modulePath.startsWith("@")) {
38
+ return this.resolveNodeModule(modulePath);
39
+ }
40
+ return this.resolveNodeModule(modulePath);
41
+ }
42
+ /**
43
+ * Check if built-in module
44
+ */
45
+ isBuiltinModule(modulePath) {
46
+ const builtins = ["fs", "path", "crypto", "util", "stream", "events"];
47
+ return builtins.includes(modulePath);
48
+ }
49
+ /**
50
+ * Resolve from node_modules
51
+ */
52
+ resolveNodeModule(modulePath) {
53
+ let current = this.basePath;
54
+ while (current !== path.dirname(current)) {
55
+ const nodeModulesPath = path.join(current, "node_modules", modulePath);
56
+ if (fs.existsSync(nodeModulesPath)) {
57
+ return nodeModulesPath;
58
+ }
59
+ const packageJsonPath = path.join(nodeModulesPath, "package.json");
60
+ if (fs.existsSync(packageJsonPath)) {
61
+ const packageJson = readJson(fs.readFileSync(packageJsonPath, "utf-8"));
62
+ return this.findModuleFile(path.join(nodeModulesPath, packageJson.main || "index.js"));
63
+ }
64
+ current = path.dirname(current);
65
+ }
66
+ throw new Error(`Module not found: ${modulePath}`);
67
+ }
68
+ /**
69
+ * Find module file with various extensions
70
+ */
71
+ findModuleFile(basePath) {
72
+ const extensions = [".ts", ".tsx", ".js", ".jsx", ".json"];
73
+ if (fs.existsSync(basePath)) {
74
+ return basePath;
75
+ }
76
+ for (const ext of extensions) {
77
+ const withExt = basePath + ext;
78
+ if (fs.existsSync(withExt)) {
79
+ return withExt;
80
+ }
81
+ }
82
+ const indexPath = path.join(basePath, "index");
83
+ for (const ext of extensions) {
84
+ const withExt = indexPath + ext;
85
+ if (fs.existsSync(withExt)) {
86
+ return withExt;
87
+ }
88
+ }
89
+ throw new Error(`Cannot resolve file: ${basePath}`);
90
+ }
91
+ /**
92
+ * Load module (with caching)
93
+ */
94
+ loadModule(modulePath, fromPath) {
95
+ const resolved = this.resolveModule(modulePath, fromPath);
96
+ const cacheKey = resolved;
97
+ if (this.cache.has(cacheKey)) {
98
+ return this.cache.get(cacheKey);
99
+ }
100
+ const module = {
101
+ path: resolved,
102
+ exports: {}
103
+ };
104
+ this.cache.set(cacheKey, module);
105
+ return module;
106
+ }
107
+ /**
108
+ * Clear cache
109
+ */
110
+ clearCache() {
111
+ this.cache.clear();
112
+ this.resolvedPaths.clear();
113
+ }
114
+ };
115
+ var ExportImportHandler = class {
116
+ constructor() {
117
+ this.exports = /* @__PURE__ */ new Map();
118
+ }
119
+ /**
120
+ * Define named export
121
+ */
122
+ defineExport(modulePath, name, value) {
123
+ if (!this.exports.has(modulePath)) {
124
+ this.exports.set(modulePath, /* @__PURE__ */ new Map());
125
+ }
126
+ this.exports.get(modulePath).set(name, value);
127
+ }
128
+ /**
129
+ * Get named export
130
+ */
131
+ getExport(modulePath, name) {
132
+ const moduleExports = this.exports.get(modulePath);
133
+ if (!moduleExports) {
134
+ throw new Error(`Module not found: ${modulePath}`);
135
+ }
136
+ if (!moduleExports.has(name)) {
137
+ throw new Error(`Named export '${name}' not found in ${modulePath}`);
138
+ }
139
+ return moduleExports.get(name);
140
+ }
141
+ /**
142
+ * Get all exports from module
143
+ */
144
+ getAllExports(modulePath) {
145
+ const moduleExports = this.exports.get(modulePath);
146
+ if (!moduleExports) {
147
+ return {};
148
+ }
149
+ const result = {};
150
+ for (const [name, value] of moduleExports) {
151
+ result[name] = value;
152
+ }
153
+ return result;
154
+ }
155
+ /**
156
+ * Check if export exists
157
+ */
158
+ hasExport(modulePath, name) {
159
+ return this.exports.has(modulePath) && this.exports.get(modulePath).has(name);
160
+ }
161
+ };
162
+ var AsyncFunctionHandler = class {
163
+ /**
164
+ * Wrap async function for HoloScript
165
+ */
166
+ wrapAsyncFunction(fn) {
167
+ return async (...args) => {
168
+ try {
169
+ return await fn(...args);
170
+ } catch (error) {
171
+ throw this.normalizeError(error);
172
+ }
173
+ };
174
+ }
175
+ /**
176
+ * Check if function is async
177
+ */
178
+ isAsync(fn) {
179
+ if (typeof fn !== "function") {
180
+ return false;
181
+ }
182
+ const fnStr = fn.toString().trim();
183
+ return fnStr.startsWith("async ") || fn.constructor.name === "AsyncFunction";
184
+ }
185
+ /**
186
+ * Convert callback to promise
187
+ */
188
+ callbackToPromise(fn) {
189
+ return new Promise((resolve2, reject) => {
190
+ fn((err, result) => {
191
+ if (err) {
192
+ reject(err);
193
+ } else {
194
+ resolve2(result);
195
+ }
196
+ });
197
+ });
198
+ }
199
+ /**
200
+ * Normalize error from async function
201
+ */
202
+ normalizeError(error) {
203
+ if (error instanceof Error) {
204
+ return error;
205
+ }
206
+ if (typeof error === "string") {
207
+ return new Error(error);
208
+ }
209
+ return new Error(JSON.stringify(error));
210
+ }
211
+ };
212
+ var ErrorBoundary = class {
213
+ constructor(onError) {
214
+ this.errors = [];
215
+ this.onError = onError;
216
+ }
217
+ /**
218
+ * Wrap function with error boundary
219
+ */
220
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
221
+ wrap(fn) {
222
+ return ((...args) => {
223
+ try {
224
+ const result = fn(...args);
225
+ if (result instanceof Promise) {
226
+ return result.catch((error) => {
227
+ this.handleError(error);
228
+ throw error;
229
+ });
230
+ }
231
+ return result;
232
+ } catch (error) {
233
+ this.handleError(error);
234
+ throw error;
235
+ }
236
+ });
237
+ }
238
+ /**
239
+ * Wrap async function with error boundary
240
+ */
241
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
242
+ wrapAsync(fn) {
243
+ return (async (...args) => {
244
+ try {
245
+ return await fn(...args);
246
+ } catch (error) {
247
+ this.handleError(error);
248
+ throw error;
249
+ }
250
+ });
251
+ }
252
+ /**
253
+ * Execute function in boundary
254
+ */
255
+ execute(fn) {
256
+ try {
257
+ return fn();
258
+ } catch (error) {
259
+ this.handleError(error);
260
+ throw error;
261
+ }
262
+ }
263
+ /**
264
+ * Execute async function in boundary
265
+ */
266
+ async executeAsync(fn) {
267
+ try {
268
+ return await fn();
269
+ } catch (error) {
270
+ this.handleError(error);
271
+ throw error;
272
+ }
273
+ }
274
+ /**
275
+ * Handle error
276
+ */
277
+ handleError(error) {
278
+ const normalized = this.normalizeError(error);
279
+ this.errors.push(normalized);
280
+ if (this.onError) {
281
+ this.onError(normalized);
282
+ }
283
+ }
284
+ /**
285
+ * Get errors
286
+ */
287
+ getErrors() {
288
+ return [...this.errors];
289
+ }
290
+ /**
291
+ * Clear errors
292
+ */
293
+ clearErrors() {
294
+ this.errors = [];
295
+ }
296
+ /**
297
+ * Normalize error
298
+ */
299
+ normalizeError(error) {
300
+ if (error instanceof Error) {
301
+ return error;
302
+ }
303
+ if (typeof error === "string") {
304
+ return new Error(error);
305
+ }
306
+ return new Error(JSON.stringify(error));
307
+ }
308
+ };
309
+ var TypeScriptTypeLoader = class {
310
+ /**
311
+ * Load types from TypeScript declaration file
312
+ */
313
+ loadTypes(_filePath) {
314
+ const types = /* @__PURE__ */ new Map();
315
+ return types;
316
+ }
317
+ /**
318
+ * Convert TypeScript type to HoloScript type
319
+ */
320
+ convertType(tsType) {
321
+ const mapping = {
322
+ string: "text",
323
+ number: "numeric",
324
+ boolean: "logical",
325
+ void: "void",
326
+ any: "dynamic",
327
+ unknown: "dynamic",
328
+ null: "null",
329
+ undefined: "void"
330
+ };
331
+ if (typeof tsType === "string") {
332
+ return mapping[tsType] || tsType;
333
+ }
334
+ if (Array.isArray(tsType)) {
335
+ return {
336
+ kind: "array",
337
+ elementType: this.convertType(tsType[0])
338
+ };
339
+ }
340
+ if (typeof tsType === "object") {
341
+ return {
342
+ kind: "object",
343
+ properties: Object.entries(tsType).reduce(
344
+ (acc, [key, val]) => {
345
+ acc[key] = this.convertType(val);
346
+ return acc;
347
+ },
348
+ {}
349
+ )
350
+ };
351
+ }
352
+ return tsType;
353
+ }
354
+ };
355
+ var InteropContext = class {
356
+ constructor(basePath) {
357
+ this.moduleResolver = new ModuleResolver(basePath);
358
+ this.exportImportHandler = new ExportImportHandler();
359
+ this.asyncHandler = new AsyncFunctionHandler();
360
+ this.errorBoundary = new ErrorBoundary();
361
+ this.typeLoader = new TypeScriptTypeLoader();
362
+ }
363
+ getModuleResolver() {
364
+ return this.moduleResolver;
365
+ }
366
+ getExportImportHandler() {
367
+ return this.exportImportHandler;
368
+ }
369
+ getAsyncHandler() {
370
+ return this.asyncHandler;
371
+ }
372
+ getErrorBoundary() {
373
+ return this.errorBoundary;
374
+ }
375
+ getTypeLoader() {
376
+ return this.typeLoader;
377
+ }
378
+ };
379
+
380
+ export { AsyncFunctionHandler, ErrorBoundary, ExportImportHandler, InteropContext, ModuleResolver, TypeScriptTypeLoader };
381
+ //# sourceMappingURL=chunk-5JEU52DW.js.map
382
+ //# sourceMappingURL=chunk-5JEU52DW.js.map