@cimplify/sdk 0.108.0 → 0.110.2

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 (608) hide show
  1. package/LICENSE +21 -0
  2. package/dist/advanced.d.mts +4 -3
  3. package/dist/advanced.d.ts +4 -3
  4. package/dist/advanced.js +24 -24
  5. package/dist/advanced.mjs +5 -5
  6. package/dist/animation-4EXBXRVX.js +27 -0
  7. package/dist/animation-6DICNWUP.mjs +6 -0
  8. package/dist/audio-DhvyjqdA.d.mts +249 -0
  9. package/dist/audio-m0w8cnxq.d.ts +249 -0
  10. package/dist/avatars.d.mts +110 -0
  11. package/dist/avatars.d.ts +110 -0
  12. package/dist/avatars.js +82 -0
  13. package/dist/avatars.mjs +5 -0
  14. package/dist/backend-gUCzs5Kg.d.mts +3866 -0
  15. package/dist/backend-gUCzs5Kg.d.ts +3866 -0
  16. package/dist/{catalogue-B4eLL8Mi.d.ts → catalogue-CPTMyBUz.d.mts} +109 -221
  17. package/dist/catalogue-DzrTXP3v.d.mts +541 -0
  18. package/dist/catalogue-DzrTXP3v.d.ts +541 -0
  19. package/dist/{catalogue-OT89_Ifs.d.mts → catalogue-OTuS5zp-.d.ts} +109 -221
  20. package/dist/chunk-22BD3RHN.mjs +1809 -0
  21. package/dist/chunk-25T4JHEA.mjs +21 -0
  22. package/dist/chunk-2AQ237Y4.js +508 -0
  23. package/dist/chunk-2IC4H6OV.mjs +48 -0
  24. package/dist/chunk-2LHLG4OB.mjs +71 -0
  25. package/dist/chunk-2O2CG465.js +1709 -0
  26. package/dist/chunk-2Q4DTHXK.js +316 -0
  27. package/dist/chunk-2QTQ6BUH.mjs +46 -0
  28. package/dist/chunk-2UN4SFLR.mjs +100 -0
  29. package/dist/chunk-2V75I7K3.js +454 -0
  30. package/dist/chunk-2V7IL4HC.js +10 -0
  31. package/dist/chunk-34XBXUMW.js +296 -0
  32. package/dist/chunk-3C4C654I.js +71 -0
  33. package/dist/chunk-3DAD2LDF.mjs +72 -0
  34. package/dist/chunk-3GXH2NFD.mjs +4 -0
  35. package/dist/chunk-3O47ZFW3.js +961 -0
  36. package/dist/chunk-3OY3VYNF.mjs +11 -0
  37. package/dist/chunk-3S6WPBZL.js +2936 -0
  38. package/dist/chunk-3TUOUP5T.js +399 -0
  39. package/dist/chunk-3VEH23I5.mjs +1380 -0
  40. package/dist/chunk-3ZYSAW2T.mjs +263 -0
  41. package/dist/chunk-4ANVF274.js +103 -0
  42. package/dist/chunk-4C7I3ELN.js +388 -0
  43. package/dist/chunk-4DYKAYFO.mjs +8 -0
  44. package/dist/chunk-4ZDR72SG.js +329 -0
  45. package/dist/chunk-52YS45RR.js +1066 -0
  46. package/dist/chunk-5325XSCH.js +107 -0
  47. package/dist/chunk-5AD5X6AV.js +13 -0
  48. package/dist/chunk-5BYDGGWO.mjs +197 -0
  49. package/dist/chunk-5C3C7VDM.mjs +55 -0
  50. package/dist/chunk-5HFMY3D7.js +660 -0
  51. package/dist/chunk-5LH2QN3T.js +1862 -0
  52. package/dist/chunk-5PJEXSOW.js +44 -0
  53. package/dist/chunk-5SXDH3Y7.js +90 -0
  54. package/dist/chunk-5YFBGGCK.mjs +502 -0
  55. package/dist/chunk-5YWN6H5Q.mjs +133 -0
  56. package/dist/chunk-66QP3SMN.js +402 -0
  57. package/dist/chunk-6DAEZKIG.mjs +385 -0
  58. package/dist/chunk-6DATW7TB.mjs +420 -0
  59. package/dist/{chunk-JRGK3NXR.mjs → chunk-6ETDAU62.mjs} +72 -212
  60. package/dist/chunk-6H254EVP.mjs +178 -0
  61. package/dist/chunk-6PFNJPBJ.mjs +820 -0
  62. package/dist/chunk-6PJWXIFX.mjs +357 -0
  63. package/dist/chunk-6SWKWCMS.js +80 -0
  64. package/dist/chunk-6VVXXX7S.js +808 -0
  65. package/dist/chunk-6WUBSMTX.js +1403 -0
  66. package/dist/chunk-73SGZLAQ.mjs +35 -0
  67. package/dist/chunk-76L2V6KD.mjs +4 -0
  68. package/dist/chunk-7AAIAVAA.js +1531 -0
  69. package/dist/chunk-7ARSJPV3.mjs +93 -0
  70. package/dist/chunk-7BHW5GTC.mjs +1234 -0
  71. package/dist/chunk-7DQSDKDU.js +6 -0
  72. package/dist/chunk-7IQQQENP.mjs +401 -0
  73. package/dist/chunk-7KFTYENS.js +11357 -0
  74. package/dist/chunk-7SM6XSPZ.js +3171 -0
  75. package/dist/chunk-7SXOHAIR.mjs +28 -0
  76. package/dist/chunk-A2MAX6S4.js +90 -0
  77. package/dist/chunk-A33OORT7.mjs +1530 -0
  78. package/dist/{chunk-U6ACF76H.mjs → chunk-A36JRXXH.mjs} +1075 -1845
  79. package/dist/chunk-A7BU3BK4.js +52 -0
  80. package/dist/chunk-A7MQSN2V.mjs +77 -0
  81. package/dist/chunk-A7V4L2IT.mjs +416 -0
  82. package/dist/chunk-AABEK6XU.js +226 -0
  83. package/dist/chunk-AGV33FWC.mjs +5005 -0
  84. package/dist/chunk-AHNR3BXI.js +108 -0
  85. package/dist/chunk-AQ5RLBU2.mjs +286 -0
  86. package/dist/chunk-AQOE6WCG.js +1270 -0
  87. package/dist/chunk-ATAWRACV.mjs +62 -0
  88. package/dist/chunk-ATCURNUV.js +14 -0
  89. package/dist/chunk-AWPV33OO.js +6 -0
  90. package/dist/chunk-AYJPHKYV.js +337 -0
  91. package/dist/chunk-AZ5BGWHB.js +162 -0
  92. package/dist/chunk-AZAXD44P.js +1373 -0
  93. package/dist/chunk-BBGKQIJJ.mjs +406 -0
  94. package/dist/chunk-BP4JLSUA.js +1453 -0
  95. package/dist/{chunk-SUCE7FWA.mjs → chunk-BTUSVHIE.mjs} +539 -978
  96. package/dist/chunk-BU6OK542.mjs +818 -0
  97. package/dist/chunk-CVSRWM6W.js +418 -0
  98. package/dist/chunk-CYBMFMJD.mjs +247 -0
  99. package/dist/chunk-DDJLDOUX.mjs +217 -0
  100. package/dist/{chunk-V32BCG7M.js → chunk-DFZWHNRG.js} +75 -215
  101. package/dist/chunk-DJ2C7AVG.js +644 -0
  102. package/dist/chunk-DS2VU4WW.mjs +102 -0
  103. package/dist/chunk-DSAG7T5P.js +7290 -0
  104. package/dist/chunk-E2QPPH7I.js +327 -0
  105. package/dist/chunk-E65WCTIG.mjs +1187 -0
  106. package/dist/{chunk-33VCYWVL.mjs → chunk-E6QQKDNE.mjs} +30 -42
  107. package/dist/chunk-ECDK6QBF.mjs +981 -0
  108. package/dist/chunk-EIB4OWVQ.mjs +620 -0
  109. package/dist/chunk-EQUZYCGO.js +250 -0
  110. package/dist/chunk-F3UJ6ZRM.mjs +313 -0
  111. package/dist/chunk-F63N2ZTQ.js +7023 -0
  112. package/dist/chunk-F6XRYEM3.mjs +26 -0
  113. package/dist/chunk-FE6VCE4K.js +5030 -0
  114. package/dist/chunk-FLWD6GRR.js +1372 -0
  115. package/dist/chunk-FQBFWJBS.mjs +110 -0
  116. package/dist/chunk-FXVJ2HFU.js +26 -0
  117. package/dist/chunk-FZMQMQBW.js +312 -0
  118. package/dist/chunk-G3EEC44R.js +53 -0
  119. package/dist/{chunk-KG3WT4PR.mjs → chunk-GCKWKLZF.mjs} +73 -104
  120. package/dist/chunk-GCX7TY4D.mjs +6826 -0
  121. package/dist/chunk-GDB6TCSD.js +450 -0
  122. package/dist/chunk-GDCV4IWO.mjs +21 -0
  123. package/dist/chunk-GDZT5LZ5.js +170 -0
  124. package/dist/chunk-GHPUYD4I.mjs +213 -0
  125. package/dist/chunk-GHS6MIL6.mjs +1432 -0
  126. package/dist/chunk-GPS2THCL.mjs +11 -0
  127. package/dist/{chunk-EV2EVOYS.js → chunk-GTJWQAGU.js} +31 -42
  128. package/dist/chunk-GVTI6UJQ.mjs +130 -0
  129. package/dist/chunk-GXKI64OT.mjs +1138 -0
  130. package/dist/chunk-GYDYF2WX.js +275 -0
  131. package/dist/chunk-GYLP6UG4.mjs +705 -0
  132. package/dist/chunk-H3OQKK6X.js +1158 -0
  133. package/dist/chunk-H5DFSCJ6.js +40 -0
  134. package/dist/chunk-HAGEIC2L.mjs +186 -0
  135. package/dist/chunk-HAJ4JRFO.js +293 -0
  136. package/dist/chunk-HDR72GB6.js +188 -0
  137. package/dist/chunk-HF5HPS4T.mjs +40 -0
  138. package/dist/chunk-HK6LOFDS.js +218 -0
  139. package/dist/chunk-HMWYTXCY.mjs +143 -0
  140. package/dist/chunk-HPCSRCMA.js +89 -0
  141. package/dist/chunk-HSEO6TPU.js +247 -0
  142. package/dist/chunk-I5FOHCLH.js +132 -0
  143. package/dist/chunk-IDLW4NWA.mjs +85 -0
  144. package/dist/chunk-IIDZ5WUX.js +61 -0
  145. package/dist/chunk-IR74FJHU.js +2332 -0
  146. package/dist/chunk-IRVFYAKP.mjs +100 -0
  147. package/dist/{chunk-XBL3TMPC.mjs → chunk-IZDWAL53.mjs} +1795 -3287
  148. package/dist/chunk-J2KZXIU3.js +51 -0
  149. package/dist/chunk-J2U6PJSO.js +91 -0
  150. package/dist/chunk-J5AJNY2N.js +283 -0
  151. package/dist/chunk-J6KQZ4FO.mjs +821 -0
  152. package/dist/{chunk-OWW5GUSB.js → chunk-JGBCIKJV.js} +7 -6
  153. package/dist/chunk-JKGTBMU7.mjs +25 -0
  154. package/dist/chunk-JR3TNEQC.js +422 -0
  155. package/dist/chunk-JURRXY2J.mjs +29 -0
  156. package/dist/chunk-K3HW5I2A.mjs +317 -0
  157. package/dist/chunk-K46SMZ66.mjs +103 -0
  158. package/dist/chunk-K4UDGE3Z.mjs +6 -0
  159. package/dist/chunk-KDQOR4QQ.mjs +350 -0
  160. package/dist/chunk-KDTVOLHI.mjs +288 -0
  161. package/dist/chunk-KGHJH5KJ.mjs +35 -0
  162. package/dist/chunk-KIZOA5LX.mjs +140 -0
  163. package/dist/chunk-KK6HYVBI.mjs +242 -0
  164. package/dist/chunk-KMKWGXMK.js +856 -0
  165. package/dist/chunk-KPA6K5IB.js +80 -0
  166. package/dist/chunk-KU7O4IXU.mjs +260 -0
  167. package/dist/chunk-KVFNRJOR.mjs +11142 -0
  168. package/dist/chunk-KZJRSXHK.js +2432 -0
  169. package/dist/chunk-LHWPRUJL.js +79 -0
  170. package/dist/chunk-LIV3KXJG.mjs +369 -0
  171. package/dist/chunk-LKV4LACG.js +21 -0
  172. package/dist/chunk-LUY45X3U.mjs +263 -0
  173. package/dist/chunk-LYEZZEEF.mjs +17 -0
  174. package/dist/chunk-M5EXQZYY.mjs +1519 -0
  175. package/dist/chunk-ME6HGG4I.mjs +1338 -0
  176. package/dist/chunk-MEXP6DA6.js +31 -0
  177. package/dist/chunk-MG52AW3H.js +902 -0
  178. package/dist/chunk-MIPO6F72.js +334 -0
  179. package/dist/{chunk-5QW7CQBA.js → chunk-MKIJQL5Q.js} +211 -321
  180. package/dist/chunk-MN3YETVN.mjs +17 -0
  181. package/dist/chunk-MOBSBXVE.mjs +2391 -0
  182. package/dist/chunk-MOMOZEUM.mjs +88 -0
  183. package/dist/chunk-MRFUNRAP.js +62 -0
  184. package/dist/chunk-MTIHEW2M.js +433 -0
  185. package/dist/chunk-N4RGGDEL.mjs +73 -0
  186. package/dist/chunk-NH654HAT.js +10 -0
  187. package/dist/chunk-NHJUGZUR.mjs +253 -0
  188. package/dist/chunk-NMQT4HG3.mjs +757 -0
  189. package/dist/chunk-NPSYB6DC.mjs +906 -0
  190. package/dist/chunk-NW2GPMSO.js +857 -0
  191. package/dist/chunk-NXKQOQ6L.js +76 -0
  192. package/dist/chunk-NXLAZIJZ.js +309 -0
  193. package/dist/chunk-NYWNA5CF.js +148 -0
  194. package/dist/chunk-NZTKLY2W.js +1442 -0
  195. package/dist/chunk-O2ICABUD.js +36 -0
  196. package/dist/chunk-OIVVQQ22.js +862 -0
  197. package/dist/chunk-OKC2B4O3.mjs +312 -0
  198. package/dist/chunk-OLWFPDBK.js +2220 -0
  199. package/dist/chunk-OMTVH334.js +3779 -0
  200. package/dist/chunk-OQRVEM56.mjs +362 -0
  201. package/dist/chunk-OXMIBOD4.js +337 -0
  202. package/dist/chunk-PBL6YL5L.mjs +288 -0
  203. package/dist/chunk-PDOELNNQ.js +97 -0
  204. package/dist/chunk-PDQJY2GZ.js +136 -0
  205. package/dist/chunk-PKOZXD2Q.js +1274 -0
  206. package/dist/chunk-PPF2BYFL.mjs +2191 -0
  207. package/dist/chunk-PQTQKNKD.js +539 -0
  208. package/dist/chunk-PRSR4FAV.mjs +81 -0
  209. package/dist/chunk-PTRNO5UD.js +95 -0
  210. package/dist/chunk-Q2Y3VMKH.js +2000 -0
  211. package/dist/chunk-QCZOE65N.js +96 -0
  212. package/dist/chunk-QDYFLATW.mjs +52 -0
  213. package/dist/chunk-QQABGCMM.js +22 -0
  214. package/dist/chunk-QS6TRHMR.js +345 -0
  215. package/dist/chunk-R56P64LB.mjs +208 -0
  216. package/dist/chunk-RCQ2MPBV.js +428 -0
  217. package/dist/chunk-RFVRPYR2.mjs +856 -0
  218. package/dist/chunk-RKBLPGPV.js +11521 -0
  219. package/dist/chunk-RM2V4IND.mjs +327 -0
  220. package/dist/chunk-RQXN5A34.mjs +613 -0
  221. package/dist/chunk-RUVGVNOF.mjs +2687 -0
  222. package/dist/chunk-SAFJIGYB.mjs +165 -0
  223. package/dist/chunk-SKQFLBDD.js +263 -0
  224. package/dist/chunk-SMK6JU2F.mjs +2092 -0
  225. package/dist/{chunk-UVRPC2P7.js → chunk-SNNEOS5Z.js} +1984 -3476
  226. package/dist/chunk-SPCRQ6NO.mjs +1246 -0
  227. package/dist/chunk-SWX4SALA.mjs +19 -0
  228. package/dist/{chunk-JVODCGFP.mjs → chunk-SYEO2WV4.mjs} +128 -238
  229. package/dist/chunk-T2QQMX2N.js +10 -0
  230. package/dist/chunk-T3AFF3L7.mjs +57 -0
  231. package/dist/chunk-T6Z2EXYL.js +712 -0
  232. package/dist/chunk-T7LOXGYX.js +118 -0
  233. package/dist/chunk-TJCAE7RC.mjs +1315 -0
  234. package/dist/chunk-TJI3K6RP.js +137 -0
  235. package/dist/chunk-TL2SVO4P.mjs +55 -0
  236. package/dist/chunk-TM63CYGN.mjs +399 -0
  237. package/dist/chunk-TU5RYTYU.mjs +13 -0
  238. package/dist/chunk-TVJZ4GPS.js +1553 -0
  239. package/dist/chunk-TWM6DLYF.js +371 -0
  240. package/dist/chunk-U63OC4TQ.js +30 -0
  241. package/dist/{chunk-L5GKVQVJ.js → chunk-U6BVSJZ6.js} +25 -57
  242. package/dist/chunk-U6UVWEAK.mjs +792 -0
  243. package/dist/chunk-UCEPNO6N.mjs +11048 -0
  244. package/dist/{chunk-ANT574FD.js → chunk-UCR5HRYM.js} +74 -105
  245. package/dist/chunk-UG5BTOTF.mjs +334 -0
  246. package/dist/chunk-UGH37BQW.mjs +157 -0
  247. package/dist/chunk-V7ZRH3PY.mjs +271 -0
  248. package/dist/chunk-VBGHBL3E.mjs +1394 -0
  249. package/dist/chunk-VRBDAS5I.js +920 -0
  250. package/dist/chunk-VVE3Y76O.js +230 -0
  251. package/dist/chunk-W65JIRI4.mjs +1182 -0
  252. package/dist/chunk-WHYKAT7G.js +62 -0
  253. package/dist/{chunk-YOIVZ6OA.mjs → chunk-WIZRUIZB.mjs} +25 -57
  254. package/dist/chunk-WKWTDZS7.js +385 -0
  255. package/dist/chunk-WLMINRC4.mjs +78 -0
  256. package/dist/chunk-WOF3AD3J.js +22 -0
  257. package/dist/chunk-WWKMOA76.js +1262 -0
  258. package/dist/chunk-X5A5FOWW.js +615 -0
  259. package/dist/chunk-X6CN6KQF.mjs +192 -0
  260. package/dist/chunk-XD2PMH46.mjs +517 -0
  261. package/dist/chunk-XJA2NGTI.mjs +88 -0
  262. package/dist/chunk-XJIHN3BY.mjs +8 -0
  263. package/dist/chunk-XK6UDWJS.js +203 -0
  264. package/dist/chunk-XPG3N5CF.mjs +415 -0
  265. package/dist/chunk-XVZ2NKSU.mjs +74 -0
  266. package/dist/chunk-XYP45OLE.js +117 -0
  267. package/dist/chunk-XZSDGZX6.mjs +301 -0
  268. package/dist/chunk-Y2EMGN4T.mjs +120 -0
  269. package/dist/chunk-Y3XWP5XW.mjs +298 -0
  270. package/dist/chunk-Y4K22JL6.js +228 -0
  271. package/dist/chunk-Y65LXQGA.mjs +3164 -0
  272. package/dist/chunk-Y66WVMO5.mjs +87 -0
  273. package/dist/chunk-Y7JWLB25.mjs +7280 -0
  274. package/dist/chunk-YCDXAJKU.js +175 -0
  275. package/dist/chunk-YRDQCCIS.js +152 -0
  276. package/dist/chunk-YV52DGSA.js +111 -0
  277. package/dist/chunk-YXGZQPUD.js +94 -0
  278. package/dist/chunk-Z3A3AFVU.mjs +102 -0
  279. package/dist/chunk-ZCY6YKKP.mjs +475 -0
  280. package/dist/chunk-ZEQHXVU5.js +215 -0
  281. package/dist/chunk-ZF7JCXCI.js +284 -0
  282. package/dist/chunk-ZJBRUH6V.js +29 -0
  283. package/dist/chunk-ZMIL4ZOA.js +365 -0
  284. package/dist/chunk-ZR5ULMN2.mjs +337 -0
  285. package/dist/chunk-ZXREOYOW.js +87 -0
  286. package/dist/{client-BSP9U1O1.d.mts → client-CX_WR0-J.d.mts} +2 -2
  287. package/dist/client-Dytx_ZTC.d.ts +230 -0
  288. package/dist/{client-B878xeAP.d.ts → client-dqOhP9Nc.d.ts} +2 -2
  289. package/dist/client-hTKbCuhG.d.mts +230 -0
  290. package/dist/clock-B-UAjkKa.d.mts +5 -0
  291. package/dist/clock-B-UAjkKa.d.ts +5 -0
  292. package/dist/config-BlXQluJR.d.mts +36 -0
  293. package/dist/config-BlXQluJR.d.ts +36 -0
  294. package/dist/courier-Cnn-edJ4.d.ts +95 -0
  295. package/dist/courier-FmGfkvIN.d.mts +95 -0
  296. package/dist/crowd-DdHFbqKK.d.ts +186 -0
  297. package/dist/crowd-hOVSAmA3.d.mts +186 -0
  298. package/dist/danfo-BEBapFlX.d.mts +146 -0
  299. package/dist/danfo-UQ_PTIIx.d.ts +146 -0
  300. package/dist/{elements-Bty6Qs_N.d.mts → elements-DdsRig-2.d.mts} +1548 -257
  301. package/dist/{elements-Bty6Qs_N.d.ts → elements-DdsRig-2.d.ts} +1548 -257
  302. package/dist/engines/godot.d.mts +56 -0
  303. package/dist/engines/godot.d.ts +56 -0
  304. package/dist/engines/godot.js +28 -0
  305. package/dist/engines/godot.mjs +3 -0
  306. package/dist/engines/wasm.d.mts +11 -0
  307. package/dist/engines/wasm.d.ts +11 -0
  308. package/dist/engines/wasm.js +178 -0
  309. package/dist/engines/wasm.mjs +176 -0
  310. package/dist/fallback-CrG_lTFk.d.mts +270 -0
  311. package/dist/fallback-CrG_lTFk.d.ts +270 -0
  312. package/dist/fallback-KDB4Y2CE.mjs +6 -0
  313. package/dist/fallback-Y26TQENE.js +19 -0
  314. package/dist/features-CZB4rmcD.d.mts +118 -0
  315. package/dist/features-CZB4rmcD.d.ts +118 -0
  316. package/dist/fit-BWiE7rgA.d.mts +44 -0
  317. package/dist/fit-DK0oT7zO.d.ts +44 -0
  318. package/dist/five-a-side-Bv1AOUy3.d.mts +115 -0
  319. package/dist/five-a-side-EC51SJY1.d.ts +115 -0
  320. package/dist/fluid-ARr0qUIL.d.ts +939 -0
  321. package/dist/fluid-DLlEj2cs.d.mts +939 -0
  322. package/dist/game/conformance.d.mts +84 -0
  323. package/dist/game/conformance.d.ts +84 -0
  324. package/dist/game/conformance.js +1025 -0
  325. package/dist/game/conformance.mjs +994 -0
  326. package/dist/game/heap.d.mts +40 -0
  327. package/dist/game/heap.d.ts +40 -0
  328. package/dist/game/heap.js +48 -0
  329. package/dist/game/heap.mjs +7 -0
  330. package/dist/game/kit/canvas.d.mts +240 -0
  331. package/dist/game/kit/canvas.d.ts +240 -0
  332. package/dist/game/kit/canvas.js +3566 -0
  333. package/dist/game/kit/canvas.mjs +1039 -0
  334. package/dist/game/kit/courier.d.mts +17 -0
  335. package/dist/game/kit/courier.d.ts +17 -0
  336. package/dist/game/kit/courier.js +66 -0
  337. package/dist/game/kit/courier.mjs +49 -0
  338. package/dist/game/kit/danfo.d.mts +11 -0
  339. package/dist/game/kit/danfo.d.ts +11 -0
  340. package/dist/game/kit/danfo.js +109 -0
  341. package/dist/game/kit/danfo.mjs +44 -0
  342. package/dist/game/kit/engine.d.mts +29 -0
  343. package/dist/game/kit/engine.d.ts +29 -0
  344. package/dist/game/kit/engine.js +183 -0
  345. package/dist/game/kit/engine.mjs +30 -0
  346. package/dist/game/kit/five-a-side.d.mts +11 -0
  347. package/dist/game/kit/five-a-side.d.ts +11 -0
  348. package/dist/game/kit/five-a-side.js +86 -0
  349. package/dist/game/kit/five-a-side.mjs +41 -0
  350. package/dist/game/kit/frontier.d.mts +344 -0
  351. package/dist/game/kit/frontier.d.ts +344 -0
  352. package/dist/game/kit/frontier.js +435 -0
  353. package/dist/game/kit/frontier.mjs +14 -0
  354. package/dist/game/kit/genesis.d.mts +752 -0
  355. package/dist/game/kit/genesis.d.ts +752 -0
  356. package/dist/game/kit/genesis.js +380 -0
  357. package/dist/game/kit/genesis.mjs +15 -0
  358. package/dist/game/kit/ludo.d.mts +15 -0
  359. package/dist/game/kit/ludo.d.ts +15 -0
  360. package/dist/game/kit/ludo.js +87 -0
  361. package/dist/game/kit/ludo.mjs +42 -0
  362. package/dist/game/kit/runner.d.mts +12 -0
  363. package/dist/game/kit/runner.d.ts +12 -0
  364. package/dist/game/kit/runner.js +83 -0
  365. package/dist/game/kit/runner.mjs +46 -0
  366. package/dist/game/kit/shootout.d.mts +13 -0
  367. package/dist/game/kit/shootout.d.ts +13 -0
  368. package/dist/game/kit/shootout.js +122 -0
  369. package/dist/game/kit/shootout.mjs +57 -0
  370. package/dist/game/kit/slots.d.mts +392 -0
  371. package/dist/game/kit/slots.d.ts +392 -0
  372. package/dist/game/kit/slots.js +215 -0
  373. package/dist/game/kit/slots.mjs +6 -0
  374. package/dist/game/kit/tycoon.d.mts +16 -0
  375. package/dist/game/kit/tycoon.d.ts +16 -0
  376. package/dist/game/kit/tycoon.js +145 -0
  377. package/dist/game/kit/tycoon.mjs +44 -0
  378. package/dist/game/kit/word.d.mts +11 -0
  379. package/dist/game/kit/word.d.ts +11 -0
  380. package/dist/game/kit/word.js +78 -0
  381. package/dist/game/kit/word.mjs +41 -0
  382. package/dist/game/kit/worlds.d.mts +18 -0
  383. package/dist/game/kit/worlds.d.ts +18 -0
  384. package/dist/game/kit/worlds.js +74 -0
  385. package/dist/game/kit/worlds.mjs +49 -0
  386. package/dist/game/kit.d.mts +53 -0
  387. package/dist/game/kit.d.ts +53 -0
  388. package/dist/game/kit.js +2610 -0
  389. package/dist/game/kit.mjs +101 -0
  390. package/dist/game/prepared.d.mts +14 -0
  391. package/dist/game/prepared.d.ts +14 -0
  392. package/dist/game/prepared.js +81 -0
  393. package/dist/game/prepared.mjs +32 -0
  394. package/dist/game-Bx8onkhX.d.mts +1451 -0
  395. package/dist/game-fgQy2YIm.d.ts +1451 -0
  396. package/dist/game-theme-CBTw1b_d.d.mts +35 -0
  397. package/dist/game-theme-Dg-ict5A.d.ts +35 -0
  398. package/dist/game.d.mts +3546 -0
  399. package/dist/game.d.ts +3546 -0
  400. package/dist/game.js +4455 -0
  401. package/dist/game.mjs +50 -0
  402. package/dist/graphics-C6YjWYvP.d.ts +5 -0
  403. package/dist/graphics-Dk2yQnYN.d.mts +5 -0
  404. package/dist/guest-DrsA00XD.d.mts +732 -0
  405. package/dist/guest-wIdfoT05.d.ts +732 -0
  406. package/dist/hit-stop-BKkVwTq7.d.mts +43 -0
  407. package/dist/hit-stop-D-8pPYnM.d.ts +43 -0
  408. package/dist/hot-Crn9XpHJ.d.ts +29 -0
  409. package/dist/hot-DH3nOhQD.d.mts +29 -0
  410. package/dist/{index-CQStGb3B.d.mts → index-6gkHMGAq.d.mts} +2 -2
  411. package/dist/index-B8ybCKJI.d.ts +41 -0
  412. package/dist/{index-DJwXmoaP.d.ts → index-B98Xac8e.d.ts} +2 -2
  413. package/dist/{index-B7oA_1XI.d.ts → index-B_ByTtIT.d.ts} +2 -2
  414. package/dist/index-DHjNHb1c.d.mts +41 -0
  415. package/dist/{index-DhUSTAhT.d.mts → index-DbAN_VQE.d.mts} +2 -2
  416. package/dist/index.d.mts +134 -24
  417. package/dist/index.d.ts +134 -24
  418. package/dist/index.js +407 -248
  419. package/dist/index.mjs +184 -58
  420. package/dist/interactives-authoring.d.mts +231 -0
  421. package/dist/interactives-authoring.d.ts +231 -0
  422. package/dist/interactives-authoring.js +1743 -0
  423. package/dist/interactives-authoring.mjs +1704 -0
  424. package/dist/interactives-canvas.global.js +148 -0
  425. package/dist/interactives-guest.d.mts +20 -0
  426. package/dist/interactives-guest.d.ts +20 -0
  427. package/dist/interactives-guest.js +63 -0
  428. package/dist/interactives-guest.json +1 -0
  429. package/dist/interactives-guest.mjs +61 -0
  430. package/dist/interactives-jsc.global.js +9357 -0
  431. package/dist/interactives-meters.d.mts +93 -0
  432. package/dist/interactives-meters.d.ts +93 -0
  433. package/dist/interactives-meters.js +252 -0
  434. package/dist/interactives-meters.mjs +68 -0
  435. package/dist/interactives-production.d.mts +430 -0
  436. package/dist/interactives-production.d.ts +430 -0
  437. package/dist/interactives-production.js +1231 -0
  438. package/dist/interactives-production.mjs +1170 -0
  439. package/dist/interactives-record.d.mts +112 -0
  440. package/dist/interactives-record.d.ts +112 -0
  441. package/dist/interactives-record.js +302 -0
  442. package/dist/interactives-record.mjs +295 -0
  443. package/dist/interactives-runtime.d.mts +61 -0
  444. package/dist/interactives-runtime.d.ts +61 -0
  445. package/dist/interactives-runtime.js +442 -0
  446. package/dist/interactives-runtime.mjs +25 -0
  447. package/dist/interactives-studio-kernel.global.js +1 -0
  448. package/dist/interactives-studio.d.mts +806 -0
  449. package/dist/interactives-studio.d.ts +806 -0
  450. package/dist/interactives-studio.js +5741 -0
  451. package/dist/interactives-studio.mjs +5651 -0
  452. package/dist/interactives-tick.d.mts +90 -0
  453. package/dist/interactives-tick.d.ts +90 -0
  454. package/dist/interactives-tick.js +203 -0
  455. package/dist/interactives-tick.mjs +6 -0
  456. package/dist/interactives-web.d.mts +762 -0
  457. package/dist/interactives-web.d.ts +762 -0
  458. package/dist/interactives-web.js +5000 -0
  459. package/dist/interactives-web.mjs +4628 -0
  460. package/dist/interactives.d.mts +2430 -0
  461. package/dist/interactives.d.ts +2430 -0
  462. package/dist/interactives.js +5723 -0
  463. package/dist/interactives.mjs +4333 -0
  464. package/dist/juice-CoHxlpKA.d.ts +42 -0
  465. package/dist/juice-DQztFS43.d.mts +42 -0
  466. package/dist/launch-T2f4_Di4.d.mts +151 -0
  467. package/dist/launch-d6oreMzR.d.ts +151 -0
  468. package/dist/library-DXYaMFhi.d.mts +69 -0
  469. package/dist/library-DXYaMFhi.d.ts +69 -0
  470. package/dist/link-BUTqGmyi.d.mts +38 -0
  471. package/dist/link-BUTqGmyi.d.ts +38 -0
  472. package/dist/lint.js +104 -204
  473. package/dist/lint.mjs +103 -203
  474. package/dist/local-D8_I6UeL.d.mts +6967 -0
  475. package/dist/local-VZkqsCzR.d.ts +6967 -0
  476. package/dist/lockstep-BLf6dglI.d.mts +321 -0
  477. package/dist/lockstep-D50Ia0JW.d.ts +321 -0
  478. package/dist/ludo-B8ClkDqr.d.ts +205 -0
  479. package/dist/ludo-BOuohQ-M.d.mts +205 -0
  480. package/dist/mock/cli.mjs +200 -56
  481. package/dist/mock/library.js +200 -56
  482. package/dist/mock/library.mjs +200 -56
  483. package/dist/mock/msw.js +200 -56
  484. package/dist/mock/msw.mjs +200 -56
  485. package/dist/native-BodxSh03.d.mts +16 -0
  486. package/dist/native-DUHMT8gA.d.ts +16 -0
  487. package/dist/network-ZXLD7l1b.d.mts +19 -0
  488. package/dist/network-ZXLD7l1b.d.ts +19 -0
  489. package/dist/online-XeymeM9s.d.ts +381 -0
  490. package/dist/online-d7W_Al9a.d.mts +381 -0
  491. package/dist/params-DxFb5G_U.d.mts +155 -0
  492. package/dist/params-DxFb5G_U.d.ts +155 -0
  493. package/dist/play-BRRlfLhX.d.ts +940 -0
  494. package/dist/play-ClrMd_e8.d.mts +940 -0
  495. package/dist/policy-CCw8tXLm.d.mts +3078 -0
  496. package/dist/policy-CMqOSQIu.d.ts +3078 -0
  497. package/dist/ports-B_0v_P3A.d.mts +13 -0
  498. package/dist/ports-CGU_3e_0.d.ts +13 -0
  499. package/dist/prefetch-BHnicOQj.d.ts +117 -0
  500. package/dist/prefetch-CBXgYacv.d.mts +117 -0
  501. package/dist/{price-CSztR02F.d.mts → price-BOzexBww.d.mts} +1 -1
  502. package/dist/{price-C_vasx9A.d.ts → price-C1h9sPxE.d.ts} +1 -1
  503. package/dist/protocol-C8qbpUbT.d.mts +242 -0
  504. package/dist/protocol-C8qbpUbT.d.ts +242 -0
  505. package/dist/rapier-AZHT4YI7.js +7886 -0
  506. package/dist/rapier-ODEPCQA6.mjs +7792 -0
  507. package/dist/react.d.mts +157 -15
  508. package/dist/react.d.ts +157 -15
  509. package/dist/react.js +5564 -5904
  510. package/dist/react.mjs +5451 -5808
  511. package/dist/runner-CQcLL7By.d.ts +189 -0
  512. package/dist/runner-D46Yj-wE.d.mts +189 -0
  513. package/dist/runtime-BRWfkf_q.d.mts +51 -0
  514. package/dist/runtime-DyuBMkKM.d.ts +51 -0
  515. package/dist/scheduling-D2ajXpMC.d.ts +224 -0
  516. package/dist/scheduling-DSRbbaZb.d.mts +224 -0
  517. package/dist/schema-BrWxzKp6.d.mts +63 -0
  518. package/dist/schema-BrWxzKp6.d.ts +63 -0
  519. package/dist/server/evict.js +34 -37
  520. package/dist/server/evict.mjs +34 -37
  521. package/dist/server/tanstack.d.mts +49 -3
  522. package/dist/server/tanstack.d.ts +49 -3
  523. package/dist/server/tanstack.js +169 -117
  524. package/dist/server/tanstack.mjs +166 -118
  525. package/dist/{server-Dckg4Vdr.d.ts → server-D29IIuDV.d.ts} +136 -130
  526. package/dist/{server-B6dW7-Lj.d.mts → server-DQMWPnc8.d.mts} +136 -130
  527. package/dist/server.d.mts +45 -5
  528. package/dist/server.d.ts +45 -5
  529. package/dist/server.js +171 -227
  530. package/dist/server.mjs +165 -225
  531. package/dist/session-grant-CJ27DwrT.d.mts +19 -0
  532. package/dist/session-grant-CJ27DwrT.d.ts +19 -0
  533. package/dist/shootout-BJZeX6FG.d.ts +140 -0
  534. package/dist/shootout-tcZd1Rxt.d.mts +140 -0
  535. package/dist/state-replica-stMtdkVD.d.mts +42 -0
  536. package/dist/state-replica-stMtdkVD.d.ts +42 -0
  537. package/dist/studio-CowqWqez.d.mts +14 -0
  538. package/dist/studio-CowqWqez.d.ts +14 -0
  539. package/dist/styles.css +1 -1
  540. package/dist/template-AhCdB1kW.d.mts +190 -0
  541. package/dist/template-BkEGVTQj.d.ts +190 -0
  542. package/dist/terrain-BMxEc6Oc.d.ts +429 -0
  543. package/dist/terrain-C-XC1Oui.d.mts +429 -0
  544. package/dist/testing/msw.d.mts +28 -4
  545. package/dist/testing/msw.d.ts +28 -4
  546. package/dist/testing/msw.js +15 -21
  547. package/dist/testing/msw.mjs +15 -21
  548. package/dist/testing/suite.d.mts +6 -5
  549. package/dist/testing/suite.d.ts +6 -5
  550. package/dist/testing/suite.js +89 -124
  551. package/dist/testing/suite.mjs +81 -116
  552. package/dist/testing.d.mts +27 -1227
  553. package/dist/testing.d.ts +27 -1227
  554. package/dist/testing.js +127 -131
  555. package/dist/testing.mjs +19 -23
  556. package/dist/tick-transport-C8QEh8Uw.d.mts +50 -0
  557. package/dist/tick-transport-UjHY3xK1.d.ts +50 -0
  558. package/dist/timeline-protocol-hp6e8zFB.d.mts +47 -0
  559. package/dist/timeline-protocol-hp6e8zFB.d.ts +47 -0
  560. package/dist/tokens-DhanQRQS.d.mts +21 -0
  561. package/dist/tokens-K8yxwd6G.d.ts +21 -0
  562. package/dist/tree-C-Io2Hbx.d.mts +35 -0
  563. package/dist/tree-CP_qSW4H.d.ts +35 -0
  564. package/dist/tycoon-B5KHk2Xx.d.mts +255 -0
  565. package/dist/tycoon-hmHo-3HX.d.ts +255 -0
  566. package/dist/types-BQkxPwZP.d.mts +219 -0
  567. package/dist/types-D_f6UUxM.d.ts +219 -0
  568. package/dist/ui-DwHicuFv.d.mts +563 -0
  569. package/dist/ui-hi7S2YcH.d.ts +563 -0
  570. package/dist/{sign-in-DQlIdqsi.d.mts → url-52ndUruG.d.mts} +15 -1
  571. package/dist/{sign-in-DQlIdqsi.d.ts → url-52ndUruG.d.ts} +15 -1
  572. package/dist/utils.d.mts +3 -3
  573. package/dist/utils.d.ts +3 -3
  574. package/dist/utils.js +37 -37
  575. package/dist/utils.mjs +4 -4
  576. package/dist/vars-Dc_PrhBK.d.mts +511 -0
  577. package/dist/vars-Dc_PrhBK.d.ts +511 -0
  578. package/dist/vm-IUARFFAI.mjs +63 -0
  579. package/dist/vm-N7L6MGGH.js +65 -0
  580. package/dist/weave-delivery-CW-Kstut.d.mts +360 -0
  581. package/dist/weave-delivery-CW-Kstut.d.ts +360 -0
  582. package/dist/web-Dss74a7v.d.ts +883 -0
  583. package/dist/web-f9ZQPoyw.d.mts +883 -0
  584. package/dist/web-transport-C7MkBL0a.d.ts +19 -0
  585. package/dist/web-transport-aYEqXMd9.d.mts +19 -0
  586. package/dist/weight-CPGjsgjV.d.ts +92 -0
  587. package/dist/weight-tF1ODR1p.d.mts +92 -0
  588. package/dist/word-BcX9Jcmv.d.mts +70 -0
  589. package/dist/word-C7sVPLHm.d.ts +70 -0
  590. package/dist/world-PvILHDR1.d.ts +2285 -0
  591. package/dist/world-qekkXjJv.d.mts +2285 -0
  592. package/dist/worlds-Br2Pb0Cs.d.ts +109 -0
  593. package/dist/worlds-D5ydYr7d.d.mts +109 -0
  594. package/engines/c/cimplify.h +108 -0
  595. package/engines/c/cimplify.lib.js +11 -0
  596. package/engines/godot/addons/cimplify/cimplify.gd +97 -0
  597. package/engines/rust/interactives-ctx/Cargo.toml +9 -0
  598. package/engines/rust/interactives-ctx/src/lib.rs +189 -0
  599. package/package.json +189 -3
  600. package/vendor/rapier3d-compat/LICENSE +201 -0
  601. package/vendor/rapier3d-compat/PATCHES.md +61 -0
  602. package/dist/chunk-2P4KXFB6.js +0 -274
  603. package/dist/chunk-3G6RQLXK.mjs +0 -21
  604. package/dist/chunk-3V4DVXV3.mjs +0 -254
  605. package/dist/chunk-EDK3LNM6.js +0 -2436
  606. package/dist/chunk-F7J3HK27.js +0 -4549
  607. package/dist/chunk-U4MW6PYU.mjs +0 -23
  608. package/dist/chunk-XREIZ56K.js +0 -26
@@ -1,4 +1,4 @@
1
- import { PURCHASE_INTENT_MOBILE_MONEY_NETWORK, moneyFromNumber, money } from './chunk-KG3WT4PR.mjs';
1
+ import { PURCHASE_INTENT_MOBILE_MONEY_NETWORK, money } from './chunk-GCKWKLZF.mjs';
2
2
 
3
3
  // src/utils/price.ts
4
4
  var CURRENCY_SYMBOLS = {
@@ -76,27 +76,16 @@ function getCurrencySymbol(currencyCode2) {
76
76
  return CURRENCY_SYMBOLS[currencyCode2.toUpperCase()] || currencyCode2;
77
77
  }
78
78
  function formatNumberCompact(value, decimals = 1) {
79
- const absValue = Math.abs(value);
80
- const sign = value < 0 ? "-" : "";
81
- if (absValue >= 1e9) {
82
- return `${sign}${(absValue / 1e9).toFixed(decimals)}B`;
83
- }
84
- if (absValue >= 1e6) {
85
- return `${sign}${(absValue / 1e6).toFixed(decimals)}M`;
86
- }
87
- if (absValue >= 1e3) {
88
- return `${sign}${(absValue / 1e3).toFixed(decimals)}K`;
89
- }
90
- return `${sign}${absValue.toFixed(decimals)}`;
79
+ let absValue = Math.abs(value), sign = value < 0 ? "-" : "";
80
+ return absValue >= 1e9 ? `${sign}${(absValue / 1e9).toFixed(decimals)}B` : absValue >= 1e6 ? `${sign}${(absValue / 1e6).toFixed(decimals)}M` : absValue >= 1e3 ? `${sign}${(absValue / 1e3).toFixed(decimals)}K` : `${sign}${absValue.toFixed(decimals)}`;
91
81
  }
92
82
  function formatPrice(amount, currency = "GHS", locale = "en-US") {
93
- const numAmount = typeof amount === "string" ? parseFloat(amount) : amount;
94
- if (isNaN(numAmount)) {
83
+ let numAmount = typeof amount == "string" ? parseFloat(amount) : amount;
84
+ if (isNaN(numAmount))
95
85
  return `${getCurrencySymbol(currency)}0.00`;
96
- }
97
- const symbol = getCurrencySymbol(currency);
86
+ let symbol = getCurrencySymbol(currency);
98
87
  try {
99
- const formatted = new Intl.NumberFormat(locale, {
88
+ let formatted = new Intl.NumberFormat(locale, {
100
89
  minimumFractionDigits: 2,
101
90
  maximumFractionDigits: 2
102
91
  }).format(numAmount);
@@ -106,57 +95,36 @@ function formatPrice(amount, currency = "GHS", locale = "en-US") {
106
95
  }
107
96
  }
108
97
  function formatPriceAdjustment(amount, currency = "GHS", locale = "en-US") {
109
- const formatted = formatPrice(Math.abs(amount), currency, locale);
110
- if (amount > 0) {
111
- return `+${formatted}`;
112
- } else if (amount < 0) {
113
- return `-${formatted}`;
114
- }
115
- return formatted;
98
+ let formatted = formatPrice(Math.abs(amount), currency, locale);
99
+ return amount > 0 ? `+${formatted}` : amount < 0 ? `-${formatted}` : formatted;
116
100
  }
117
101
  function formatPriceCompact(amount, currency = "GHS", decimals = 1) {
118
- const numAmount = typeof amount === "string" ? parseFloat(amount) : amount;
119
- if (isNaN(numAmount)) {
102
+ let numAmount = typeof amount == "string" ? parseFloat(amount) : amount;
103
+ if (isNaN(numAmount))
120
104
  return `${getCurrencySymbol(currency)}0`;
121
- }
122
- const symbol = getCurrencySymbol(currency);
123
- if (Math.abs(numAmount) < 1e3) {
124
- return `${symbol}${numAmount.toFixed(2)}`;
125
- }
126
- return `${symbol}${formatNumberCompact(numAmount, decimals)}`;
105
+ let symbol = getCurrencySymbol(currency);
106
+ return Math.abs(numAmount) < 1e3 ? `${symbol}${numAmount.toFixed(2)}` : `${symbol}${formatNumberCompact(numAmount, decimals)}`;
127
107
  }
128
108
  function formatMoney(amount, currency = "GHS") {
129
- const symbol = getCurrencySymbol(currency);
130
- const numAmount = typeof amount === "string" ? parseFloat(amount) : amount;
131
- if (isNaN(numAmount)) {
132
- return `${symbol}0.00`;
133
- }
134
- return `${symbol}${numAmount.toFixed(2)}`;
109
+ let symbol = getCurrencySymbol(currency), numAmount = typeof amount == "string" ? parseFloat(amount) : amount;
110
+ return isNaN(numAmount) ? `${symbol}0.00` : `${symbol}${numAmount.toFixed(2)}`;
135
111
  }
136
112
  function parsePrice(value) {
137
- if (value === void 0 || value === null) {
113
+ if (value == null)
138
114
  return 0;
139
- }
140
- if (typeof value === "number") {
115
+ if (typeof value == "number")
141
116
  return isNaN(value) ? 0 : value;
142
- }
143
- const cleaned = value.replace(/[^\d.-]/g, "");
144
- const parsed = parseFloat(cleaned);
117
+ let cleaned = value.replace(/[^\d.-]/g, ""), parsed = parseFloat(cleaned);
145
118
  return isNaN(parsed) ? 0 : parsed;
146
119
  }
147
120
  function getVariantUnitPrice(product, variant) {
148
- if (variant?.price_info) {
121
+ if (variant?.price_info)
149
122
  return parsePrice(variant.price_info.final_price);
150
- }
151
- const defaultPrice = parsePrice(product.default_price);
152
- if (!variant) {
123
+ let defaultPrice = parsePrice(product.default_price);
124
+ if (!variant)
153
125
  return defaultPrice;
154
- }
155
- const defaultVariant = product.variants?.find((candidate) => candidate.is_default);
156
- if (!defaultVariant) {
157
- return variant.is_default ? defaultPrice : defaultPrice + parsePrice(variant.price_adjustment);
158
- }
159
- return defaultPrice - parsePrice(defaultVariant.price_adjustment) + parsePrice(variant.price_adjustment);
126
+ let defaultVariant = product.variants?.find((candidate) => candidate.is_default);
127
+ return defaultVariant ? defaultPrice - parsePrice(defaultVariant.price_adjustment) + parsePrice(variant.price_adjustment) : variant.is_default ? defaultPrice : defaultPrice + parsePrice(variant.price_adjustment);
160
128
  }
161
129
  function hasTaxInfo(priceInfo) {
162
130
  return priceInfo.tax_info !== void 0 && priceInfo.tax_info !== null;
@@ -168,107 +136,53 @@ function isTaxInclusive(priceInfo) {
168
136
  return priceInfo.tax_info?.is_inclusive === true;
169
137
  }
170
138
  function formatPriceWithTax(priceInfo, currency = "GHS") {
171
- const finalPrice = formatPrice(priceInfo.final_price, currency);
172
- if (!hasTaxInfo(priceInfo)) {
173
- return finalPrice;
174
- }
175
- if (isTaxInclusive(priceInfo)) {
176
- return `${finalPrice} (incl. tax)`;
177
- }
178
- return `${finalPrice} + ${formatPrice(getTaxAmount(priceInfo), currency)} tax`;
139
+ let finalPrice = formatPrice(priceInfo.final_price, currency);
140
+ return hasTaxInfo(priceInfo) ? isTaxInclusive(priceInfo) ? `${finalPrice} (incl. tax)` : `${finalPrice} + ${formatPrice(getTaxAmount(priceInfo), currency)} tax` : finalPrice;
179
141
  }
180
142
  function getDisplayPrice(product) {
181
- if (product.sale) {
182
- return parsePrice(product.sale.price);
183
- }
184
- if (product.price_info) {
185
- return parsePrice(product.price_info.final_price);
186
- }
187
- if (product.final_price !== void 0 && product.final_price !== null) {
188
- return parsePrice(product.final_price);
189
- }
190
- if (product.default_price !== void 0 && product.default_price !== null) {
191
- return parsePrice(product.default_price);
192
- }
193
- return 0;
143
+ return product.sale ? parsePrice(product.sale.price) : product.price_info ? parsePrice(product.price_info.final_price) : product.final_price !== void 0 && product.final_price !== null ? parsePrice(product.final_price) : product.default_price !== void 0 && product.default_price !== null ? parsePrice(product.default_price) : 0;
194
144
  }
195
145
  function getBasePrice(product) {
196
- if (product.sale) {
197
- return parsePrice(product.sale.original);
198
- }
199
- if (product.price_info) {
200
- return parsePrice(product.price_info.base_price);
201
- }
202
- if (product.base_price !== void 0 && product.base_price !== null) {
203
- return parsePrice(product.base_price);
204
- }
205
- if (product.default_price !== void 0 && product.default_price !== null) {
206
- return parsePrice(product.default_price);
207
- }
208
- return 0;
146
+ return product.sale ? parsePrice(product.sale.original) : product.price_info ? parsePrice(product.price_info.base_price) : product.base_price !== void 0 && product.base_price !== null ? parsePrice(product.base_price) : product.default_price !== void 0 && product.default_price !== null ? parsePrice(product.default_price) : 0;
209
147
  }
210
148
  function isOnSale(product) {
211
- if (product.sale) {
149
+ if (product.sale)
212
150
  return true;
213
- }
214
- const basePrice = getBasePrice(product);
215
- const finalPrice = getDisplayPrice(product);
151
+ let basePrice = getBasePrice(product), finalPrice = getDisplayPrice(product);
216
152
  return basePrice > finalPrice && basePrice > 0;
217
153
  }
218
154
  function getDiscountPercentage(product) {
219
- if (product.sale) {
155
+ if (product.sale)
220
156
  return parsePrice(product.sale.percent_off);
221
- }
222
- const basePrice = getBasePrice(product);
223
- const finalPrice = getDisplayPrice(product);
224
- if (basePrice > finalPrice && basePrice > 0) {
225
- return Math.round((basePrice - finalPrice) / basePrice * 100);
226
- }
227
- return 0;
157
+ let basePrice = getBasePrice(product), finalPrice = getDisplayPrice(product);
158
+ return basePrice > finalPrice && basePrice > 0 ? Math.round((basePrice - finalPrice) / basePrice * 100) : 0;
228
159
  }
229
160
  function getMarkupPercentage(product) {
230
- const basePrice = getBasePrice(product);
231
- const finalPrice = getDisplayPrice(product);
232
- if (finalPrice > basePrice && basePrice > 0) {
233
- return Math.round((finalPrice - basePrice) / basePrice * 100);
234
- }
235
- return 0;
161
+ let basePrice = getBasePrice(product), finalPrice = getDisplayPrice(product);
162
+ return finalPrice > basePrice && basePrice > 0 ? Math.round((finalPrice - basePrice) / basePrice * 100) : 0;
236
163
  }
237
164
  function getProductCurrency(product) {
238
- if (product.price_info?.currency) {
239
- return product.price_info.currency;
240
- }
241
- if (product.currency) {
242
- return product.currency;
243
- }
244
- return "GHS";
165
+ return product.price_info?.currency ? product.price_info.currency : product.currency ? product.currency : "GHS";
245
166
  }
246
167
  function formatProductPrice(product, locale = "en-US") {
247
- const price = getDisplayPrice(product);
248
- const currency = getProductCurrency(product);
168
+ let price = getDisplayPrice(product), currency = getProductCurrency(product);
249
169
  return formatPrice(price, currency, locale);
250
170
  }
251
171
  function getUnitPriceAtQuantity(tiers, quantity, fallback) {
252
- const sorted = [...tiers].sort((a, b) => a.min_quantity - b.min_quantity);
253
- let matched;
254
- for (const tier of sorted) {
255
- if (quantity >= tier.min_quantity) {
256
- if (tier.max_quantity == null || quantity <= tier.max_quantity) {
257
- matched = tier;
258
- }
259
- }
260
- }
172
+ let sorted = [...tiers].sort((a, b) => a.min_quantity - b.min_quantity), matched;
173
+ for (let tier of sorted)
174
+ quantity >= tier.min_quantity && (tier.max_quantity == null || quantity <= tier.max_quantity) && (matched = tier);
261
175
  return matched ? parsePrice(matched.unit_price) : fallback;
262
176
  }
263
177
  function getPriceRange(product) {
264
- const tiers = product.quantity_pricing;
178
+ let tiers = product.quantity_pricing;
265
179
  if (tiers && tiers.length > 1) {
266
- const prices = tiers.map((t) => parsePrice(t.unit_price));
180
+ let prices = tiers.map((t) => parsePrice(t.unit_price));
267
181
  return { min: Math.min(...prices), max: Math.max(...prices) };
268
182
  }
269
- const variants = product.variants;
183
+ let variants = product.variants;
270
184
  if (variants && variants.length > 1) {
271
- const prices = variants.map((variant) => getVariantUnitPrice(product, variant));
185
+ let prices = variants.map((variant) => getVariantUnitPrice(product, variant));
272
186
  return { min: Math.min(...prices), max: Math.max(...prices) };
273
187
  }
274
188
  return null;
@@ -279,54 +193,24 @@ function formatPriceRange(min, max, currency = "GHS") {
279
193
 
280
194
  // src/utils/payment.ts
281
195
  function categorizePaymentError(error, errorCode) {
282
- let message = "An unexpected error occurred during payment processing. Please try again or contact support.";
283
- let recoverable = true;
284
- let code = errorCode || "PAYMENT_ERROR";
285
- const technical = error.stack;
286
- const errorMessage = error.message?.toLowerCase() || "";
287
- if (errorCode === "INSUFFICIENT_FUNDS" || errorMessage.includes("insufficient") || errorMessage.includes("funds")) {
288
- code = "INSUFFICIENT_FUNDS";
289
- message = "Your payment method has insufficient funds. Please try another payment method.";
290
- } else if (errorCode === "CARD_DECLINED" || errorMessage.includes("declined")) {
291
- code = "CARD_DECLINED";
292
- message = "Your card was declined. Please try another card or payment method.";
293
- } else if (errorMessage.includes("cancelled") || errorMessage.includes("canceled") || errorCode === "PAYMENT_CANCELLED") {
294
- code = "PAYMENT_CANCELLED";
295
- message = "Payment was cancelled. You can try again when ready.";
296
- } else if (errorMessage.includes("network") || errorMessage.includes("connection") || errorCode === "NETWORK_ERROR") {
297
- code = "NETWORK_ERROR";
298
- message = "Network connection issue. Please check your internet connection and try again.";
299
- } else if (errorMessage.includes("timeout") || errorCode === "TIMEOUT") {
300
- code = "TIMEOUT";
301
- message = "Payment processing timed out. Please try again.";
302
- } else if (errorCode === "PAYMENT_ACTION_NOT_COMPLETED") {
303
- code = "PAYMENT_ACTION_NOT_COMPLETED";
304
- message = "Payment action was not completed. Please try again.";
305
- } else if (errorCode === "AUTHORIZATION_FAILED") {
306
- code = "AUTHORIZATION_FAILED";
307
- message = "Authorization failed. Please check your code and try again.";
308
- } else if (errorCode === "INVALID_OTP") {
309
- code = "INVALID_OTP";
310
- message = "Invalid verification code. Please check and try again.";
311
- }
312
- return { code, message, recoverable, technical };
196
+ let message = "An unexpected error occurred during payment processing. Please try again or contact support.", recoverable = true, code = errorCode || "PAYMENT_ERROR", technical = error.stack, errorMessage = error.message?.toLowerCase() || "";
197
+ return errorCode === "INSUFFICIENT_FUNDS" || errorMessage.includes("insufficient") || errorMessage.includes("funds") ? (code = "INSUFFICIENT_FUNDS", message = "Your payment method has insufficient funds. Please try another payment method.") : errorCode === "CARD_DECLINED" || errorMessage.includes("declined") ? (code = "CARD_DECLINED", message = "Your card was declined. Please try another card or payment method.") : errorMessage.includes("cancelled") || errorMessage.includes("canceled") || errorCode === "PAYMENT_CANCELLED" ? (code = "PAYMENT_CANCELLED", message = "Payment was cancelled. You can try again when ready.") : errorMessage.includes("network") || errorMessage.includes("connection") || errorCode === "NETWORK_ERROR" ? (code = "NETWORK_ERROR", message = "Network connection issue. Please check your internet connection and try again.") : errorMessage.includes("timeout") || errorCode === "TIMEOUT" ? (code = "TIMEOUT", message = "Payment processing timed out. Please try again.") : errorCode === "PAYMENT_ACTION_NOT_COMPLETED" ? (code = "PAYMENT_ACTION_NOT_COMPLETED", message = "Payment action was not completed. Please try again.") : errorCode === "AUTHORIZATION_FAILED" ? (code = "AUTHORIZATION_FAILED", message = "Authorization failed. Please check your code and try again.") : errorCode === "INVALID_OTP" && (code = "INVALID_OTP", message = "Invalid verification code. Please check and try again."), { code, message, recoverable, technical };
313
198
  }
314
199
  function isQuickPaymentResponse(response) {
315
- return response !== null && typeof response === "object" && "payment" in response && typeof response.payment === "object";
200
+ return response !== null && typeof response == "object" && "payment" in response && typeof response.payment == "object";
316
201
  }
317
202
  function isWebPaymentResponse(response) {
318
- return response !== null && typeof response === "object" && "transaction" in response && typeof response.transaction === "object";
203
+ return response !== null && typeof response == "object" && "transaction" in response && typeof response.transaction == "object";
319
204
  }
320
205
  function normalizePaymentResponse(response) {
321
- if (!response) {
206
+ if (!response)
322
207
  return {
323
208
  method: "unknown",
324
209
  provider: "unknown",
325
210
  requires_action: false,
326
211
  metadata: {}
327
212
  };
328
- }
329
- if (isQuickPaymentResponse(response)) {
213
+ if (isQuickPaymentResponse(response))
330
214
  return {
331
215
  method: response.payment.type?.toLowerCase() || "unknown",
332
216
  provider: response.payment.provider?.toLowerCase() || "unknown",
@@ -341,12 +225,8 @@ function normalizePaymentResponse(response) {
341
225
  instructions: response.payment.instructions,
342
226
  metadata: response.payment.metadata
343
227
  };
344
- }
345
228
  if (isWebPaymentResponse(response)) {
346
- const objectAuthType = response.authorization_type && typeof response.authorization_type === "object" && "address" in response.authorization_type ? { address: response.authorization_type.address } : void 0;
347
- const authType = typeof response.authorization_type === "string" ? response.authorization_type.trim().toLowerCase().replace(/[\s-]+/g, "_") : void 0;
348
- const validStringAuthTypes = ["otp", "pin", "phone", "birthday"];
349
- const safeAuthType = objectAuthType || (authType && validStringAuthTypes.includes(authType) ? authType : void 0);
229
+ let objectAuthType = response.authorization_type && typeof response.authorization_type == "object" && "address" in response.authorization_type ? { address: response.authorization_type.address } : void 0, authType = typeof response.authorization_type == "string" ? response.authorization_type.trim().toLowerCase().replace(/[\s-]+/g, "_") : void 0, safeAuthType = objectAuthType || (authType && ["otp", "pin", "phone", "birthday"].includes(authType) ? authType : void 0);
350
230
  return {
351
231
  provider: response.transaction.provider_type?.toLowerCase() || "unknown",
352
232
  requires_action: response.requires_action || false,
@@ -379,8 +259,7 @@ var PAYMENT_SUCCESS_STATUSES = /* @__PURE__ */ new Set([
379
259
  "captured",
380
260
  "completed",
381
261
  "not_required"
382
- ]);
383
- var PAYMENT_TERMINAL_FAILURE_STATUSES = [
262
+ ]), PAYMENT_TERMINAL_FAILURE_STATUSES = [
384
263
  "failed",
385
264
  "cancelled",
386
265
  "voided",
@@ -389,13 +268,10 @@ var PAYMENT_TERMINAL_FAILURE_STATUSES = [
389
268
  "refund_pending",
390
269
  "reversed",
391
270
  "disputed"
392
- ];
393
- var PAYMENT_FAILURE_STATUSES = new Set(PAYMENT_TERMINAL_FAILURE_STATUSES);
394
- var PAYMENT_REQUIRES_ACTION_STATUSES = /* @__PURE__ */ new Set([
271
+ ], PAYMENT_FAILURE_STATUSES = new Set(PAYMENT_TERMINAL_FAILURE_STATUSES), PAYMENT_REQUIRES_ACTION_STATUSES = /* @__PURE__ */ new Set([
395
272
  "requires_action",
396
273
  "requires_payment_method"
397
- ]);
398
- var PAYMENT_STATUS_ALIAS_MAP = {
274
+ ]), PAYMENT_STATUS_ALIAS_MAP = {
399
275
  ok: "captured",
400
276
  done: "captured",
401
277
  paid: "captured",
@@ -420,8 +296,7 @@ var PAYMENT_STATUS_ALIAS_MAP = {
420
296
  cancelled: "cancelled",
421
297
  unresolved: "pending",
422
298
  error: "failed"
423
- };
424
- var KNOWN_PAYMENT_STATUSES = /* @__PURE__ */ new Set([
299
+ }, KNOWN_PAYMENT_STATUSES = /* @__PURE__ */ new Set([
425
300
  "initialized",
426
301
  "pending",
427
302
  "processing",
@@ -443,40 +318,31 @@ function normalizeStatusToken(status) {
443
318
  return status?.trim().toLowerCase().replace(/[\s-]+/g, "_") ?? "";
444
319
  }
445
320
  function normalizePaymentStatusValue(status) {
446
- const normalized = normalizeStatusToken(status);
447
- if (Object.prototype.hasOwnProperty.call(PAYMENT_STATUS_ALIAS_MAP, normalized)) {
448
- return PAYMENT_STATUS_ALIAS_MAP[normalized];
449
- }
450
- return KNOWN_PAYMENT_STATUSES.has(normalized) ? normalized : "unknown";
321
+ let normalized = normalizeStatusToken(status);
322
+ return Object.prototype.hasOwnProperty.call(PAYMENT_STATUS_ALIAS_MAP, normalized) ? PAYMENT_STATUS_ALIAS_MAP[normalized] : KNOWN_PAYMENT_STATUSES.has(normalized) ? normalized : "unknown";
451
323
  }
452
324
  function isPaymentStatusSuccess(status) {
453
- const normalizedStatus = normalizePaymentStatusValue(status);
325
+ let normalizedStatus = normalizePaymentStatusValue(status);
454
326
  return PAYMENT_SUCCESS_STATUSES.has(normalizedStatus);
455
327
  }
456
328
  function isPaymentStatusFailure(status) {
457
- const normalizedStatus = normalizePaymentStatusValue(status);
329
+ let normalizedStatus = normalizePaymentStatusValue(status);
458
330
  return PAYMENT_FAILURE_STATUSES.has(normalizedStatus);
459
331
  }
460
332
  function isPaymentStatusRequiresAction(status) {
461
- const normalizedStatus = normalizePaymentStatusValue(status);
333
+ let normalizedStatus = normalizePaymentStatusValue(status);
462
334
  return PAYMENT_REQUIRES_ACTION_STATUSES.has(normalizedStatus);
463
335
  }
464
336
  function normalizeStatusResponse(response) {
465
- if (!response || typeof response !== "object") {
337
+ if (!response || typeof response != "object")
466
338
  return {
467
339
  status: "pending",
468
340
  paid: false,
469
- amount: moneyFromNumber(0),
341
+ amount: 0,
470
342
  currency: "",
471
343
  message: "No status available"
472
344
  };
473
- }
474
- const res = response;
475
- const normalizedStatus = normalizePaymentStatusValue(res.status ?? void 0);
476
- const normalizedAmount = typeof res.amount === "string" ? money(res.amount) : typeof res.amount === "number" && Number.isFinite(res.amount) ? moneyFromNumber(res.amount) : moneyFromNumber(0);
477
- const normalizedCurrency = typeof res.currency === "string" && res.currency.trim().length > 0 ? res.currency : "";
478
- const paidValue = res.paid === true && normalizedStatus !== "authorized" && !PAYMENT_REQUIRES_ACTION_STATUSES.has(normalizedStatus) && !PAYMENT_FAILURE_STATUSES.has(normalizedStatus);
479
- const derivedPaid = paidValue || PAYMENT_SUCCESS_STATUSES.has(normalizedStatus);
345
+ let res = response, normalizedStatus = normalizePaymentStatusValue(res.status ?? void 0), normalizedAmount = typeof res.amount == "string" ? money(res.amount) : typeof res.amount == "number" && Number.isFinite(res.amount) ? res.amount : 0, normalizedCurrency = typeof res.currency == "string" && res.currency.trim().length > 0 ? res.currency : "", derivedPaid = res.paid === true && normalizedStatus !== "authorized" && !PAYMENT_REQUIRES_ACTION_STATUSES.has(normalizedStatus) && !PAYMENT_FAILURE_STATUSES.has(normalizedStatus) || PAYMENT_SUCCESS_STATUSES.has(normalizedStatus);
480
346
  return {
481
347
  status: normalizedStatus,
482
348
  paid: derivedPaid,
@@ -493,8 +359,7 @@ var MOBILE_MONEY_PROVIDERS = {
493
359
  },
494
360
  vodafone: { name: "Telecel Cash", prefix: ["020", "050"] },
495
361
  airtel: { name: "AirtelTigo Money", prefix: ["026", "027", "056", "057"] }
496
- };
497
- var MOBILE_MONEY_PROVIDER_ALIASES = {
362
+ }, MOBILE_MONEY_PROVIDER_ALIASES = {
498
363
  mtn: "mtn",
499
364
  mtnmomo: "mtn",
500
365
  vod: "telecel",
@@ -507,8 +372,8 @@ var MOBILE_MONEY_PROVIDER_ALIASES = {
507
372
  mpesa: "mpesa"
508
373
  };
509
374
  function canonicalMobileMoneyProvider(provider) {
510
- if (typeof provider !== "string") return null;
511
- const normalized = provider.trim().toLowerCase().replace(/[\s_-]+/g, "");
375
+ if (typeof provider != "string") return null;
376
+ let normalized = provider.trim().toLowerCase().replace(/[\s_-]+/g, "");
512
377
  return MOBILE_MONEY_PROVIDER_ALIASES[normalized] ?? null;
513
378
  }
514
379
  var PURCHASE_INTENT_NETWORK_BY_PROVIDER = {
@@ -517,30 +382,25 @@ var PURCHASE_INTENT_NETWORK_BY_PROVIDER = {
517
382
  airteltigo: PURCHASE_INTENT_MOBILE_MONEY_NETWORK.AIRTEL
518
383
  };
519
384
  function purchaseIntentMobileMoneyNetwork(provider) {
520
- const canonical = canonicalMobileMoneyProvider(provider);
385
+ let canonical = canonicalMobileMoneyProvider(provider);
521
386
  return canonical ? PURCHASE_INTENT_NETWORK_BY_PROVIDER[canonical] ?? null : null;
522
387
  }
523
388
  var LOOPBACK_AUTHORIZATION_HOSTS = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "[::1]"]);
524
389
  function paymentAuthorizationUrl(value) {
525
- if (typeof value !== "string" || !value.trim()) return null;
390
+ if (typeof value != "string" || !value.trim()) return null;
526
391
  try {
527
- const url = new URL(value);
528
- if (url.protocol === "https:") return url.toString();
529
- if (url.protocol === "http:" && LOOPBACK_AUTHORIZATION_HOSTS.has(url.hostname)) {
392
+ let url = new URL(value);
393
+ if (url.protocol === "https:" || url.protocol === "http:" && LOOPBACK_AUTHORIZATION_HOSTS.has(url.hostname))
530
394
  return url.toString();
531
- }
532
395
  } catch {
533
396
  }
534
397
  return null;
535
398
  }
536
399
  function detectMobileMoneyProvider(phoneNumber) {
537
- const cleaned = phoneNumber.replace(/\D/g, "");
538
- const networkCode = cleaned.slice(-9, -7);
539
- for (const [provider, info] of Object.entries(MOBILE_MONEY_PROVIDERS)) {
540
- if (info.prefix.some((p) => p.slice(1) === networkCode)) {
400
+ let networkCode = phoneNumber.replace(/\D/g, "").slice(-9, -7);
401
+ for (let [provider, info] of Object.entries(MOBILE_MONEY_PROVIDERS))
402
+ if (info.prefix.some((p) => p.slice(1) === networkCode))
541
403
  return provider;
542
- }
543
- }
544
404
  return null;
545
405
  }
546
406
 
@@ -0,0 +1,178 @@
1
+ import { loadEngineRuntime, enginePlatformOf } from './chunk-GHS6MIL6.mjs';
2
+
3
+ // src/game/conformance/engine-platform.ts
4
+ var FS_MODULE = "node:fs/promises";
5
+ async function load(file) {
6
+ let bytes = await (await import(
7
+ /* @vite-ignore */
8
+ FS_MODULE
9
+ )).readFile(file);
10
+ return enginePlatformOf(await loadEngineRuntime(bytes));
11
+ }
12
+ function bytesFramePlatform(bytes) {
13
+ let platform = null;
14
+ return {
15
+ engine: () => (platform ?? (platform = loadEngineRuntime(bytes).then(enginePlatformOf)), platform)
16
+ };
17
+ }
18
+ function engineFramePlatform(file) {
19
+ let platform = null;
20
+ return {
21
+ engine: () => (platform ?? (platform = load(file)), platform)
22
+ };
23
+ }
24
+
25
+ // src/game/conformance/heap.ts
26
+ var V8_MODULE = "node:v8", YOUNG_SPACE = "new_space", GC_ENTRY = "gc", SETTLE_DELAY_MS = 0, MEASURE_WINDOW_FRAMES = 500, MAX_REGULAR_OBJECT_BYTES = 131072, OBJECT_HEADER_BYTES = 64, CALIBRATION_ELEMENTS = 1024, ALIGNED_WINDOWS = 16, STEADY_BLOCKS = 8, STEADY_BLOCK_FRAMES = 2e3, alignmentSink = [];
27
+ function elementBytes(young) {
28
+ let start = young(), probe = new Array((1024)).fill(0), filled = young(), empty = young();
29
+ return alignmentSink = probe, Math.max(1, Math.round((filled - start - (empty - filled)) / (1024)));
30
+ }
31
+ function isV8(value) {
32
+ return typeof value == "object" && value !== null && typeof Reflect.get(value, "getHeapSpaceStatistics") == "function";
33
+ }
34
+ async function createNodeHeapMeter() {
35
+ let v8;
36
+ try {
37
+ v8 = await import(
38
+ /* @vite-ignore */
39
+ V8_MODULE
40
+ );
41
+ } catch {
42
+ return null;
43
+ }
44
+ if (!isV8(v8)) return null;
45
+ let stats = v8, youngBytes = () => {
46
+ let spaces = stats.getHeapSpaceStatistics();
47
+ for (let i = 0; i < spaces.length; i++) if (spaces[i].space_name === YOUNG_SPACE) return spaces[i].space_used_size;
48
+ return 0;
49
+ }, halfPage = Math.floor(((131072) - (64)) / elementBytes(youngBytes)), Observer = Reflect.get(globalThis, "PerformanceObserver"), gcCount = 0, gcStarts = [], observer = null;
50
+ if (Observer) {
51
+ observer = new Observer((list) => {
52
+ let entries = list.getEntries();
53
+ gcCount += entries.length;
54
+ for (let i = 0; i < entries.length; i++) gcStarts.push(entries[i].startTime);
55
+ });
56
+ try {
57
+ observer.observe({ entryTypes: [GC_ENTRY] });
58
+ } catch {
59
+ observer = null;
60
+ }
61
+ }
62
+ return {
63
+ name: "v8-young-space",
64
+ youngBytes,
65
+ align() {
66
+ let first = new Array(halfPage).fill(0);
67
+ alignmentSink = new Array(halfPage).fill(0), alignmentSink[0] = first;
68
+ },
69
+ collections() {
70
+ return gcCount;
71
+ },
72
+ collectionsBetween(start, end) {
73
+ let count = 0;
74
+ for (let i = 0; i < gcStarts.length; i++) gcStarts[i] >= start && gcStarts[i] <= end && count++;
75
+ return count;
76
+ },
77
+ settle() {
78
+ return new Promise((resolve) => setTimeout(resolve, (0)));
79
+ },
80
+ dispose() {
81
+ observer?.disconnect();
82
+ }
83
+ };
84
+ }
85
+ var INSPECTOR_MODULE = "node:inspector/promises", SAMPLING_INTERVAL_BYTES = 16, DEFAULT_SITES = 8, FULL_COLLECTIONS = 2;
86
+ function frameName(frame) {
87
+ let file = frame.url.slice(frame.url.lastIndexOf("/") + 1);
88
+ return `${frame.functionName || "(anonymous)"} ${file}:${frame.lineNumber + 1}`;
89
+ }
90
+ function collectSites(node, path, out) {
91
+ if (path.push(frameName(node.callFrame)), node.selfSize > 0) {
92
+ let key = path.slice(-4).join(" < ");
93
+ out.set(key, (out.get(key) ?? 0) + node.selfSize);
94
+ }
95
+ for (let child of node.children) collectSites(child, path, out);
96
+ path.pop();
97
+ }
98
+ async function collectGarbage() {
99
+ let Session;
100
+ try {
101
+ let inspector = await import(
102
+ /* @vite-ignore */
103
+ INSPECTOR_MODULE
104
+ );
105
+ Session = Reflect.get(inspector, "Session");
106
+ } catch {
107
+ return false;
108
+ }
109
+ let session = new Session();
110
+ session.connect();
111
+ try {
112
+ for (let i = 0; i < (2); i++) await session.post("HeapProfiler.collectGarbage");
113
+ return !0;
114
+ } finally {
115
+ session.disconnect();
116
+ }
117
+ }
118
+ function collectYoung() {
119
+ let gc = Reflect.get(globalThis, "gc");
120
+ return typeof gc != "function" ? false : (gc({ type: "minor", execution: "sync" }), true);
121
+ }
122
+ async function warmUp(frames, frame) {
123
+ let half = frames >> 1;
124
+ for (let i = 0; i < half; i++) frame(i);
125
+ await collectGarbage();
126
+ for (let i = half; i < frames; i++) frame(i);
127
+ }
128
+ async function profileAllocationSites(frames, frame, limit = (8)) {
129
+ let Session;
130
+ try {
131
+ let inspector = await import(
132
+ /* @vite-ignore */
133
+ INSPECTOR_MODULE
134
+ );
135
+ Session = Reflect.get(inspector, "Session");
136
+ } catch {
137
+ return null;
138
+ }
139
+ let session = new Session();
140
+ session.connect();
141
+ try {
142
+ await session.post("HeapProfiler.startSampling", {
143
+ samplingInterval: (16),
144
+ includeObjectsCollectedByMajorGC: !0,
145
+ includeObjectsCollectedByMinorGC: !0
146
+ });
147
+ for (let i = 0; i < frames; i++) frame(i);
148
+ let result = await session.post("HeapProfiler.stopSampling"), sites = /* @__PURE__ */ new Map();
149
+ return collectSites(result.profile.head, [], sites), [...sites.entries()].sort((a, b) => b[1] - a[1]).slice(0, limit).map(([stack, bytes]) => ({ stack, bytes }));
150
+ } finally {
151
+ session.disconnect();
152
+ }
153
+ }
154
+ async function measureAllocations(meter, frames, frame) {
155
+ await meter.settle(), meter.align?.();
156
+ let gcBefore = meter.collections(), opened = performance.now(), bytes = 0, measured = 0, windows = 0;
157
+ for (let start = 0; start < frames; start += (500)) {
158
+ windows > 0 && windows % (16) === 0 && meter.align?.(), windows++;
159
+ let end = Math.min(frames, start + (500)), lead = meter.youngBytes(), before = meter.youngBytes();
160
+ for (let i = start; i < end; i++) frame(i);
161
+ let after = meter.youngBytes(), tail = meter.youngBytes(), leading = before - lead, trailing = tail - after, overhead = leading > trailing ? leading : trailing, delta = after - before - (overhead > 0 ? overhead : 0);
162
+ after < before || (bytes += delta > 0 ? delta : 0, measured += end - start);
163
+ }
164
+ let closed = performance.now();
165
+ await meter.settle();
166
+ let collections = meter.collectionsBetween ? meter.collectionsBetween(opened, closed) : meter.collections() - gcBefore, perFrame = measured > 0 ? bytes / measured : 0;
167
+ return { frames, bytes: perFrame * frames, bytesPerFrame: perFrame, collections };
168
+ }
169
+ async function measureSteadyAllocations(meter, frames, frame) {
170
+ let start = 0;
171
+ for (let block = 0; block < (8); block++) {
172
+ let from = start, settled = await measureAllocations(meter, (2e3), (i) => frame(from + i));
173
+ if (start += (2e3), settled.bytes === 0 && settled.collections === 0) break;
174
+ }
175
+ return measureAllocations(meter, frames, (i) => frame(start + i));
176
+ }
177
+
178
+ export { bytesFramePlatform, collectGarbage, collectYoung, createNodeHeapMeter, engineFramePlatform, measureAllocations, measureSteadyAllocations, profileAllocationSites, warmUp };