@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.
- package/LICENSE +21 -0
- package/dist/advanced.d.mts +4 -3
- package/dist/advanced.d.ts +4 -3
- package/dist/advanced.js +24 -24
- package/dist/advanced.mjs +5 -5
- package/dist/animation-4EXBXRVX.js +27 -0
- package/dist/animation-6DICNWUP.mjs +6 -0
- package/dist/audio-DhvyjqdA.d.mts +249 -0
- package/dist/audio-m0w8cnxq.d.ts +249 -0
- package/dist/avatars.d.mts +110 -0
- package/dist/avatars.d.ts +110 -0
- package/dist/avatars.js +82 -0
- package/dist/avatars.mjs +5 -0
- package/dist/backend-gUCzs5Kg.d.mts +3866 -0
- package/dist/backend-gUCzs5Kg.d.ts +3866 -0
- package/dist/{catalogue-B4eLL8Mi.d.ts → catalogue-CPTMyBUz.d.mts} +109 -221
- package/dist/catalogue-DzrTXP3v.d.mts +541 -0
- package/dist/catalogue-DzrTXP3v.d.ts +541 -0
- package/dist/{catalogue-OT89_Ifs.d.mts → catalogue-OTuS5zp-.d.ts} +109 -221
- package/dist/chunk-22BD3RHN.mjs +1809 -0
- package/dist/chunk-25T4JHEA.mjs +21 -0
- package/dist/chunk-2AQ237Y4.js +508 -0
- package/dist/chunk-2IC4H6OV.mjs +48 -0
- package/dist/chunk-2LHLG4OB.mjs +71 -0
- package/dist/chunk-2O2CG465.js +1709 -0
- package/dist/chunk-2Q4DTHXK.js +316 -0
- package/dist/chunk-2QTQ6BUH.mjs +46 -0
- package/dist/chunk-2UN4SFLR.mjs +100 -0
- package/dist/chunk-2V75I7K3.js +454 -0
- package/dist/chunk-2V7IL4HC.js +10 -0
- package/dist/chunk-34XBXUMW.js +296 -0
- package/dist/chunk-3C4C654I.js +71 -0
- package/dist/chunk-3DAD2LDF.mjs +72 -0
- package/dist/chunk-3GXH2NFD.mjs +4 -0
- package/dist/chunk-3O47ZFW3.js +961 -0
- package/dist/chunk-3OY3VYNF.mjs +11 -0
- package/dist/chunk-3S6WPBZL.js +2936 -0
- package/dist/chunk-3TUOUP5T.js +399 -0
- package/dist/chunk-3VEH23I5.mjs +1380 -0
- package/dist/chunk-3ZYSAW2T.mjs +263 -0
- package/dist/chunk-4ANVF274.js +103 -0
- package/dist/chunk-4C7I3ELN.js +388 -0
- package/dist/chunk-4DYKAYFO.mjs +8 -0
- package/dist/chunk-4ZDR72SG.js +329 -0
- package/dist/chunk-52YS45RR.js +1066 -0
- package/dist/chunk-5325XSCH.js +107 -0
- package/dist/chunk-5AD5X6AV.js +13 -0
- package/dist/chunk-5BYDGGWO.mjs +197 -0
- package/dist/chunk-5C3C7VDM.mjs +55 -0
- package/dist/chunk-5HFMY3D7.js +660 -0
- package/dist/chunk-5LH2QN3T.js +1862 -0
- package/dist/chunk-5PJEXSOW.js +44 -0
- package/dist/chunk-5SXDH3Y7.js +90 -0
- package/dist/chunk-5YFBGGCK.mjs +502 -0
- package/dist/chunk-5YWN6H5Q.mjs +133 -0
- package/dist/chunk-66QP3SMN.js +402 -0
- package/dist/chunk-6DAEZKIG.mjs +385 -0
- package/dist/chunk-6DATW7TB.mjs +420 -0
- package/dist/{chunk-JRGK3NXR.mjs → chunk-6ETDAU62.mjs} +72 -212
- package/dist/chunk-6H254EVP.mjs +178 -0
- package/dist/chunk-6PFNJPBJ.mjs +820 -0
- package/dist/chunk-6PJWXIFX.mjs +357 -0
- package/dist/chunk-6SWKWCMS.js +80 -0
- package/dist/chunk-6VVXXX7S.js +808 -0
- package/dist/chunk-6WUBSMTX.js +1403 -0
- package/dist/chunk-73SGZLAQ.mjs +35 -0
- package/dist/chunk-76L2V6KD.mjs +4 -0
- package/dist/chunk-7AAIAVAA.js +1531 -0
- package/dist/chunk-7ARSJPV3.mjs +93 -0
- package/dist/chunk-7BHW5GTC.mjs +1234 -0
- package/dist/chunk-7DQSDKDU.js +6 -0
- package/dist/chunk-7IQQQENP.mjs +401 -0
- package/dist/chunk-7KFTYENS.js +11357 -0
- package/dist/chunk-7SM6XSPZ.js +3171 -0
- package/dist/chunk-7SXOHAIR.mjs +28 -0
- package/dist/chunk-A2MAX6S4.js +90 -0
- package/dist/chunk-A33OORT7.mjs +1530 -0
- package/dist/{chunk-U6ACF76H.mjs → chunk-A36JRXXH.mjs} +1075 -1845
- package/dist/chunk-A7BU3BK4.js +52 -0
- package/dist/chunk-A7MQSN2V.mjs +77 -0
- package/dist/chunk-A7V4L2IT.mjs +416 -0
- package/dist/chunk-AABEK6XU.js +226 -0
- package/dist/chunk-AGV33FWC.mjs +5005 -0
- package/dist/chunk-AHNR3BXI.js +108 -0
- package/dist/chunk-AQ5RLBU2.mjs +286 -0
- package/dist/chunk-AQOE6WCG.js +1270 -0
- package/dist/chunk-ATAWRACV.mjs +62 -0
- package/dist/chunk-ATCURNUV.js +14 -0
- package/dist/chunk-AWPV33OO.js +6 -0
- package/dist/chunk-AYJPHKYV.js +337 -0
- package/dist/chunk-AZ5BGWHB.js +162 -0
- package/dist/chunk-AZAXD44P.js +1373 -0
- package/dist/chunk-BBGKQIJJ.mjs +406 -0
- package/dist/chunk-BP4JLSUA.js +1453 -0
- package/dist/{chunk-SUCE7FWA.mjs → chunk-BTUSVHIE.mjs} +539 -978
- package/dist/chunk-BU6OK542.mjs +818 -0
- package/dist/chunk-CVSRWM6W.js +418 -0
- package/dist/chunk-CYBMFMJD.mjs +247 -0
- package/dist/chunk-DDJLDOUX.mjs +217 -0
- package/dist/{chunk-V32BCG7M.js → chunk-DFZWHNRG.js} +75 -215
- package/dist/chunk-DJ2C7AVG.js +644 -0
- package/dist/chunk-DS2VU4WW.mjs +102 -0
- package/dist/chunk-DSAG7T5P.js +7290 -0
- package/dist/chunk-E2QPPH7I.js +327 -0
- package/dist/chunk-E65WCTIG.mjs +1187 -0
- package/dist/{chunk-33VCYWVL.mjs → chunk-E6QQKDNE.mjs} +30 -42
- package/dist/chunk-ECDK6QBF.mjs +981 -0
- package/dist/chunk-EIB4OWVQ.mjs +620 -0
- package/dist/chunk-EQUZYCGO.js +250 -0
- package/dist/chunk-F3UJ6ZRM.mjs +313 -0
- package/dist/chunk-F63N2ZTQ.js +7023 -0
- package/dist/chunk-F6XRYEM3.mjs +26 -0
- package/dist/chunk-FE6VCE4K.js +5030 -0
- package/dist/chunk-FLWD6GRR.js +1372 -0
- package/dist/chunk-FQBFWJBS.mjs +110 -0
- package/dist/chunk-FXVJ2HFU.js +26 -0
- package/dist/chunk-FZMQMQBW.js +312 -0
- package/dist/chunk-G3EEC44R.js +53 -0
- package/dist/{chunk-KG3WT4PR.mjs → chunk-GCKWKLZF.mjs} +73 -104
- package/dist/chunk-GCX7TY4D.mjs +6826 -0
- package/dist/chunk-GDB6TCSD.js +450 -0
- package/dist/chunk-GDCV4IWO.mjs +21 -0
- package/dist/chunk-GDZT5LZ5.js +170 -0
- package/dist/chunk-GHPUYD4I.mjs +213 -0
- package/dist/chunk-GHS6MIL6.mjs +1432 -0
- package/dist/chunk-GPS2THCL.mjs +11 -0
- package/dist/{chunk-EV2EVOYS.js → chunk-GTJWQAGU.js} +31 -42
- package/dist/chunk-GVTI6UJQ.mjs +130 -0
- package/dist/chunk-GXKI64OT.mjs +1138 -0
- package/dist/chunk-GYDYF2WX.js +275 -0
- package/dist/chunk-GYLP6UG4.mjs +705 -0
- package/dist/chunk-H3OQKK6X.js +1158 -0
- package/dist/chunk-H5DFSCJ6.js +40 -0
- package/dist/chunk-HAGEIC2L.mjs +186 -0
- package/dist/chunk-HAJ4JRFO.js +293 -0
- package/dist/chunk-HDR72GB6.js +188 -0
- package/dist/chunk-HF5HPS4T.mjs +40 -0
- package/dist/chunk-HK6LOFDS.js +218 -0
- package/dist/chunk-HMWYTXCY.mjs +143 -0
- package/dist/chunk-HPCSRCMA.js +89 -0
- package/dist/chunk-HSEO6TPU.js +247 -0
- package/dist/chunk-I5FOHCLH.js +132 -0
- package/dist/chunk-IDLW4NWA.mjs +85 -0
- package/dist/chunk-IIDZ5WUX.js +61 -0
- package/dist/chunk-IR74FJHU.js +2332 -0
- package/dist/chunk-IRVFYAKP.mjs +100 -0
- package/dist/{chunk-XBL3TMPC.mjs → chunk-IZDWAL53.mjs} +1795 -3287
- package/dist/chunk-J2KZXIU3.js +51 -0
- package/dist/chunk-J2U6PJSO.js +91 -0
- package/dist/chunk-J5AJNY2N.js +283 -0
- package/dist/chunk-J6KQZ4FO.mjs +821 -0
- package/dist/{chunk-OWW5GUSB.js → chunk-JGBCIKJV.js} +7 -6
- package/dist/chunk-JKGTBMU7.mjs +25 -0
- package/dist/chunk-JR3TNEQC.js +422 -0
- package/dist/chunk-JURRXY2J.mjs +29 -0
- package/dist/chunk-K3HW5I2A.mjs +317 -0
- package/dist/chunk-K46SMZ66.mjs +103 -0
- package/dist/chunk-K4UDGE3Z.mjs +6 -0
- package/dist/chunk-KDQOR4QQ.mjs +350 -0
- package/dist/chunk-KDTVOLHI.mjs +288 -0
- package/dist/chunk-KGHJH5KJ.mjs +35 -0
- package/dist/chunk-KIZOA5LX.mjs +140 -0
- package/dist/chunk-KK6HYVBI.mjs +242 -0
- package/dist/chunk-KMKWGXMK.js +856 -0
- package/dist/chunk-KPA6K5IB.js +80 -0
- package/dist/chunk-KU7O4IXU.mjs +260 -0
- package/dist/chunk-KVFNRJOR.mjs +11142 -0
- package/dist/chunk-KZJRSXHK.js +2432 -0
- package/dist/chunk-LHWPRUJL.js +79 -0
- package/dist/chunk-LIV3KXJG.mjs +369 -0
- package/dist/chunk-LKV4LACG.js +21 -0
- package/dist/chunk-LUY45X3U.mjs +263 -0
- package/dist/chunk-LYEZZEEF.mjs +17 -0
- package/dist/chunk-M5EXQZYY.mjs +1519 -0
- package/dist/chunk-ME6HGG4I.mjs +1338 -0
- package/dist/chunk-MEXP6DA6.js +31 -0
- package/dist/chunk-MG52AW3H.js +902 -0
- package/dist/chunk-MIPO6F72.js +334 -0
- package/dist/{chunk-5QW7CQBA.js → chunk-MKIJQL5Q.js} +211 -321
- package/dist/chunk-MN3YETVN.mjs +17 -0
- package/dist/chunk-MOBSBXVE.mjs +2391 -0
- package/dist/chunk-MOMOZEUM.mjs +88 -0
- package/dist/chunk-MRFUNRAP.js +62 -0
- package/dist/chunk-MTIHEW2M.js +433 -0
- package/dist/chunk-N4RGGDEL.mjs +73 -0
- package/dist/chunk-NH654HAT.js +10 -0
- package/dist/chunk-NHJUGZUR.mjs +253 -0
- package/dist/chunk-NMQT4HG3.mjs +757 -0
- package/dist/chunk-NPSYB6DC.mjs +906 -0
- package/dist/chunk-NW2GPMSO.js +857 -0
- package/dist/chunk-NXKQOQ6L.js +76 -0
- package/dist/chunk-NXLAZIJZ.js +309 -0
- package/dist/chunk-NYWNA5CF.js +148 -0
- package/dist/chunk-NZTKLY2W.js +1442 -0
- package/dist/chunk-O2ICABUD.js +36 -0
- package/dist/chunk-OIVVQQ22.js +862 -0
- package/dist/chunk-OKC2B4O3.mjs +312 -0
- package/dist/chunk-OLWFPDBK.js +2220 -0
- package/dist/chunk-OMTVH334.js +3779 -0
- package/dist/chunk-OQRVEM56.mjs +362 -0
- package/dist/chunk-OXMIBOD4.js +337 -0
- package/dist/chunk-PBL6YL5L.mjs +288 -0
- package/dist/chunk-PDOELNNQ.js +97 -0
- package/dist/chunk-PDQJY2GZ.js +136 -0
- package/dist/chunk-PKOZXD2Q.js +1274 -0
- package/dist/chunk-PPF2BYFL.mjs +2191 -0
- package/dist/chunk-PQTQKNKD.js +539 -0
- package/dist/chunk-PRSR4FAV.mjs +81 -0
- package/dist/chunk-PTRNO5UD.js +95 -0
- package/dist/chunk-Q2Y3VMKH.js +2000 -0
- package/dist/chunk-QCZOE65N.js +96 -0
- package/dist/chunk-QDYFLATW.mjs +52 -0
- package/dist/chunk-QQABGCMM.js +22 -0
- package/dist/chunk-QS6TRHMR.js +345 -0
- package/dist/chunk-R56P64LB.mjs +208 -0
- package/dist/chunk-RCQ2MPBV.js +428 -0
- package/dist/chunk-RFVRPYR2.mjs +856 -0
- package/dist/chunk-RKBLPGPV.js +11521 -0
- package/dist/chunk-RM2V4IND.mjs +327 -0
- package/dist/chunk-RQXN5A34.mjs +613 -0
- package/dist/chunk-RUVGVNOF.mjs +2687 -0
- package/dist/chunk-SAFJIGYB.mjs +165 -0
- package/dist/chunk-SKQFLBDD.js +263 -0
- package/dist/chunk-SMK6JU2F.mjs +2092 -0
- package/dist/{chunk-UVRPC2P7.js → chunk-SNNEOS5Z.js} +1984 -3476
- package/dist/chunk-SPCRQ6NO.mjs +1246 -0
- package/dist/chunk-SWX4SALA.mjs +19 -0
- package/dist/{chunk-JVODCGFP.mjs → chunk-SYEO2WV4.mjs} +128 -238
- package/dist/chunk-T2QQMX2N.js +10 -0
- package/dist/chunk-T3AFF3L7.mjs +57 -0
- package/dist/chunk-T6Z2EXYL.js +712 -0
- package/dist/chunk-T7LOXGYX.js +118 -0
- package/dist/chunk-TJCAE7RC.mjs +1315 -0
- package/dist/chunk-TJI3K6RP.js +137 -0
- package/dist/chunk-TL2SVO4P.mjs +55 -0
- package/dist/chunk-TM63CYGN.mjs +399 -0
- package/dist/chunk-TU5RYTYU.mjs +13 -0
- package/dist/chunk-TVJZ4GPS.js +1553 -0
- package/dist/chunk-TWM6DLYF.js +371 -0
- package/dist/chunk-U63OC4TQ.js +30 -0
- package/dist/{chunk-L5GKVQVJ.js → chunk-U6BVSJZ6.js} +25 -57
- package/dist/chunk-U6UVWEAK.mjs +792 -0
- package/dist/chunk-UCEPNO6N.mjs +11048 -0
- package/dist/{chunk-ANT574FD.js → chunk-UCR5HRYM.js} +74 -105
- package/dist/chunk-UG5BTOTF.mjs +334 -0
- package/dist/chunk-UGH37BQW.mjs +157 -0
- package/dist/chunk-V7ZRH3PY.mjs +271 -0
- package/dist/chunk-VBGHBL3E.mjs +1394 -0
- package/dist/chunk-VRBDAS5I.js +920 -0
- package/dist/chunk-VVE3Y76O.js +230 -0
- package/dist/chunk-W65JIRI4.mjs +1182 -0
- package/dist/chunk-WHYKAT7G.js +62 -0
- package/dist/{chunk-YOIVZ6OA.mjs → chunk-WIZRUIZB.mjs} +25 -57
- package/dist/chunk-WKWTDZS7.js +385 -0
- package/dist/chunk-WLMINRC4.mjs +78 -0
- package/dist/chunk-WOF3AD3J.js +22 -0
- package/dist/chunk-WWKMOA76.js +1262 -0
- package/dist/chunk-X5A5FOWW.js +615 -0
- package/dist/chunk-X6CN6KQF.mjs +192 -0
- package/dist/chunk-XD2PMH46.mjs +517 -0
- package/dist/chunk-XJA2NGTI.mjs +88 -0
- package/dist/chunk-XJIHN3BY.mjs +8 -0
- package/dist/chunk-XK6UDWJS.js +203 -0
- package/dist/chunk-XPG3N5CF.mjs +415 -0
- package/dist/chunk-XVZ2NKSU.mjs +74 -0
- package/dist/chunk-XYP45OLE.js +117 -0
- package/dist/chunk-XZSDGZX6.mjs +301 -0
- package/dist/chunk-Y2EMGN4T.mjs +120 -0
- package/dist/chunk-Y3XWP5XW.mjs +298 -0
- package/dist/chunk-Y4K22JL6.js +228 -0
- package/dist/chunk-Y65LXQGA.mjs +3164 -0
- package/dist/chunk-Y66WVMO5.mjs +87 -0
- package/dist/chunk-Y7JWLB25.mjs +7280 -0
- package/dist/chunk-YCDXAJKU.js +175 -0
- package/dist/chunk-YRDQCCIS.js +152 -0
- package/dist/chunk-YV52DGSA.js +111 -0
- package/dist/chunk-YXGZQPUD.js +94 -0
- package/dist/chunk-Z3A3AFVU.mjs +102 -0
- package/dist/chunk-ZCY6YKKP.mjs +475 -0
- package/dist/chunk-ZEQHXVU5.js +215 -0
- package/dist/chunk-ZF7JCXCI.js +284 -0
- package/dist/chunk-ZJBRUH6V.js +29 -0
- package/dist/chunk-ZMIL4ZOA.js +365 -0
- package/dist/chunk-ZR5ULMN2.mjs +337 -0
- package/dist/chunk-ZXREOYOW.js +87 -0
- package/dist/{client-BSP9U1O1.d.mts → client-CX_WR0-J.d.mts} +2 -2
- package/dist/client-Dytx_ZTC.d.ts +230 -0
- package/dist/{client-B878xeAP.d.ts → client-dqOhP9Nc.d.ts} +2 -2
- package/dist/client-hTKbCuhG.d.mts +230 -0
- package/dist/clock-B-UAjkKa.d.mts +5 -0
- package/dist/clock-B-UAjkKa.d.ts +5 -0
- package/dist/config-BlXQluJR.d.mts +36 -0
- package/dist/config-BlXQluJR.d.ts +36 -0
- package/dist/courier-Cnn-edJ4.d.ts +95 -0
- package/dist/courier-FmGfkvIN.d.mts +95 -0
- package/dist/crowd-DdHFbqKK.d.ts +186 -0
- package/dist/crowd-hOVSAmA3.d.mts +186 -0
- package/dist/danfo-BEBapFlX.d.mts +146 -0
- package/dist/danfo-UQ_PTIIx.d.ts +146 -0
- package/dist/{elements-Bty6Qs_N.d.mts → elements-DdsRig-2.d.mts} +1548 -257
- package/dist/{elements-Bty6Qs_N.d.ts → elements-DdsRig-2.d.ts} +1548 -257
- package/dist/engines/godot.d.mts +56 -0
- package/dist/engines/godot.d.ts +56 -0
- package/dist/engines/godot.js +28 -0
- package/dist/engines/godot.mjs +3 -0
- package/dist/engines/wasm.d.mts +11 -0
- package/dist/engines/wasm.d.ts +11 -0
- package/dist/engines/wasm.js +178 -0
- package/dist/engines/wasm.mjs +176 -0
- package/dist/fallback-CrG_lTFk.d.mts +270 -0
- package/dist/fallback-CrG_lTFk.d.ts +270 -0
- package/dist/fallback-KDB4Y2CE.mjs +6 -0
- package/dist/fallback-Y26TQENE.js +19 -0
- package/dist/features-CZB4rmcD.d.mts +118 -0
- package/dist/features-CZB4rmcD.d.ts +118 -0
- package/dist/fit-BWiE7rgA.d.mts +44 -0
- package/dist/fit-DK0oT7zO.d.ts +44 -0
- package/dist/five-a-side-Bv1AOUy3.d.mts +115 -0
- package/dist/five-a-side-EC51SJY1.d.ts +115 -0
- package/dist/fluid-ARr0qUIL.d.ts +939 -0
- package/dist/fluid-DLlEj2cs.d.mts +939 -0
- package/dist/game/conformance.d.mts +84 -0
- package/dist/game/conformance.d.ts +84 -0
- package/dist/game/conformance.js +1025 -0
- package/dist/game/conformance.mjs +994 -0
- package/dist/game/heap.d.mts +40 -0
- package/dist/game/heap.d.ts +40 -0
- package/dist/game/heap.js +48 -0
- package/dist/game/heap.mjs +7 -0
- package/dist/game/kit/canvas.d.mts +240 -0
- package/dist/game/kit/canvas.d.ts +240 -0
- package/dist/game/kit/canvas.js +3566 -0
- package/dist/game/kit/canvas.mjs +1039 -0
- package/dist/game/kit/courier.d.mts +17 -0
- package/dist/game/kit/courier.d.ts +17 -0
- package/dist/game/kit/courier.js +66 -0
- package/dist/game/kit/courier.mjs +49 -0
- package/dist/game/kit/danfo.d.mts +11 -0
- package/dist/game/kit/danfo.d.ts +11 -0
- package/dist/game/kit/danfo.js +109 -0
- package/dist/game/kit/danfo.mjs +44 -0
- package/dist/game/kit/engine.d.mts +29 -0
- package/dist/game/kit/engine.d.ts +29 -0
- package/dist/game/kit/engine.js +183 -0
- package/dist/game/kit/engine.mjs +30 -0
- package/dist/game/kit/five-a-side.d.mts +11 -0
- package/dist/game/kit/five-a-side.d.ts +11 -0
- package/dist/game/kit/five-a-side.js +86 -0
- package/dist/game/kit/five-a-side.mjs +41 -0
- package/dist/game/kit/frontier.d.mts +344 -0
- package/dist/game/kit/frontier.d.ts +344 -0
- package/dist/game/kit/frontier.js +435 -0
- package/dist/game/kit/frontier.mjs +14 -0
- package/dist/game/kit/genesis.d.mts +752 -0
- package/dist/game/kit/genesis.d.ts +752 -0
- package/dist/game/kit/genesis.js +380 -0
- package/dist/game/kit/genesis.mjs +15 -0
- package/dist/game/kit/ludo.d.mts +15 -0
- package/dist/game/kit/ludo.d.ts +15 -0
- package/dist/game/kit/ludo.js +87 -0
- package/dist/game/kit/ludo.mjs +42 -0
- package/dist/game/kit/runner.d.mts +12 -0
- package/dist/game/kit/runner.d.ts +12 -0
- package/dist/game/kit/runner.js +83 -0
- package/dist/game/kit/runner.mjs +46 -0
- package/dist/game/kit/shootout.d.mts +13 -0
- package/dist/game/kit/shootout.d.ts +13 -0
- package/dist/game/kit/shootout.js +122 -0
- package/dist/game/kit/shootout.mjs +57 -0
- package/dist/game/kit/slots.d.mts +392 -0
- package/dist/game/kit/slots.d.ts +392 -0
- package/dist/game/kit/slots.js +215 -0
- package/dist/game/kit/slots.mjs +6 -0
- package/dist/game/kit/tycoon.d.mts +16 -0
- package/dist/game/kit/tycoon.d.ts +16 -0
- package/dist/game/kit/tycoon.js +145 -0
- package/dist/game/kit/tycoon.mjs +44 -0
- package/dist/game/kit/word.d.mts +11 -0
- package/dist/game/kit/word.d.ts +11 -0
- package/dist/game/kit/word.js +78 -0
- package/dist/game/kit/word.mjs +41 -0
- package/dist/game/kit/worlds.d.mts +18 -0
- package/dist/game/kit/worlds.d.ts +18 -0
- package/dist/game/kit/worlds.js +74 -0
- package/dist/game/kit/worlds.mjs +49 -0
- package/dist/game/kit.d.mts +53 -0
- package/dist/game/kit.d.ts +53 -0
- package/dist/game/kit.js +2610 -0
- package/dist/game/kit.mjs +101 -0
- package/dist/game/prepared.d.mts +14 -0
- package/dist/game/prepared.d.ts +14 -0
- package/dist/game/prepared.js +81 -0
- package/dist/game/prepared.mjs +32 -0
- package/dist/game-Bx8onkhX.d.mts +1451 -0
- package/dist/game-fgQy2YIm.d.ts +1451 -0
- package/dist/game-theme-CBTw1b_d.d.mts +35 -0
- package/dist/game-theme-Dg-ict5A.d.ts +35 -0
- package/dist/game.d.mts +3546 -0
- package/dist/game.d.ts +3546 -0
- package/dist/game.js +4455 -0
- package/dist/game.mjs +50 -0
- package/dist/graphics-C6YjWYvP.d.ts +5 -0
- package/dist/graphics-Dk2yQnYN.d.mts +5 -0
- package/dist/guest-DrsA00XD.d.mts +732 -0
- package/dist/guest-wIdfoT05.d.ts +732 -0
- package/dist/hit-stop-BKkVwTq7.d.mts +43 -0
- package/dist/hit-stop-D-8pPYnM.d.ts +43 -0
- package/dist/hot-Crn9XpHJ.d.ts +29 -0
- package/dist/hot-DH3nOhQD.d.mts +29 -0
- package/dist/{index-CQStGb3B.d.mts → index-6gkHMGAq.d.mts} +2 -2
- package/dist/index-B8ybCKJI.d.ts +41 -0
- package/dist/{index-DJwXmoaP.d.ts → index-B98Xac8e.d.ts} +2 -2
- package/dist/{index-B7oA_1XI.d.ts → index-B_ByTtIT.d.ts} +2 -2
- package/dist/index-DHjNHb1c.d.mts +41 -0
- package/dist/{index-DhUSTAhT.d.mts → index-DbAN_VQE.d.mts} +2 -2
- package/dist/index.d.mts +134 -24
- package/dist/index.d.ts +134 -24
- package/dist/index.js +407 -248
- package/dist/index.mjs +184 -58
- package/dist/interactives-authoring.d.mts +231 -0
- package/dist/interactives-authoring.d.ts +231 -0
- package/dist/interactives-authoring.js +1743 -0
- package/dist/interactives-authoring.mjs +1704 -0
- package/dist/interactives-canvas.global.js +148 -0
- package/dist/interactives-guest.d.mts +20 -0
- package/dist/interactives-guest.d.ts +20 -0
- package/dist/interactives-guest.js +63 -0
- package/dist/interactives-guest.json +1 -0
- package/dist/interactives-guest.mjs +61 -0
- package/dist/interactives-jsc.global.js +9357 -0
- package/dist/interactives-meters.d.mts +93 -0
- package/dist/interactives-meters.d.ts +93 -0
- package/dist/interactives-meters.js +252 -0
- package/dist/interactives-meters.mjs +68 -0
- package/dist/interactives-production.d.mts +430 -0
- package/dist/interactives-production.d.ts +430 -0
- package/dist/interactives-production.js +1231 -0
- package/dist/interactives-production.mjs +1170 -0
- package/dist/interactives-record.d.mts +112 -0
- package/dist/interactives-record.d.ts +112 -0
- package/dist/interactives-record.js +302 -0
- package/dist/interactives-record.mjs +295 -0
- package/dist/interactives-runtime.d.mts +61 -0
- package/dist/interactives-runtime.d.ts +61 -0
- package/dist/interactives-runtime.js +442 -0
- package/dist/interactives-runtime.mjs +25 -0
- package/dist/interactives-studio-kernel.global.js +1 -0
- package/dist/interactives-studio.d.mts +806 -0
- package/dist/interactives-studio.d.ts +806 -0
- package/dist/interactives-studio.js +5741 -0
- package/dist/interactives-studio.mjs +5651 -0
- package/dist/interactives-tick.d.mts +90 -0
- package/dist/interactives-tick.d.ts +90 -0
- package/dist/interactives-tick.js +203 -0
- package/dist/interactives-tick.mjs +6 -0
- package/dist/interactives-web.d.mts +762 -0
- package/dist/interactives-web.d.ts +762 -0
- package/dist/interactives-web.js +5000 -0
- package/dist/interactives-web.mjs +4628 -0
- package/dist/interactives.d.mts +2430 -0
- package/dist/interactives.d.ts +2430 -0
- package/dist/interactives.js +5723 -0
- package/dist/interactives.mjs +4333 -0
- package/dist/juice-CoHxlpKA.d.ts +42 -0
- package/dist/juice-DQztFS43.d.mts +42 -0
- package/dist/launch-T2f4_Di4.d.mts +151 -0
- package/dist/launch-d6oreMzR.d.ts +151 -0
- package/dist/library-DXYaMFhi.d.mts +69 -0
- package/dist/library-DXYaMFhi.d.ts +69 -0
- package/dist/link-BUTqGmyi.d.mts +38 -0
- package/dist/link-BUTqGmyi.d.ts +38 -0
- package/dist/lint.js +104 -204
- package/dist/lint.mjs +103 -203
- package/dist/local-D8_I6UeL.d.mts +6967 -0
- package/dist/local-VZkqsCzR.d.ts +6967 -0
- package/dist/lockstep-BLf6dglI.d.mts +321 -0
- package/dist/lockstep-D50Ia0JW.d.ts +321 -0
- package/dist/ludo-B8ClkDqr.d.ts +205 -0
- package/dist/ludo-BOuohQ-M.d.mts +205 -0
- package/dist/mock/cli.mjs +200 -56
- package/dist/mock/library.js +200 -56
- package/dist/mock/library.mjs +200 -56
- package/dist/mock/msw.js +200 -56
- package/dist/mock/msw.mjs +200 -56
- package/dist/native-BodxSh03.d.mts +16 -0
- package/dist/native-DUHMT8gA.d.ts +16 -0
- package/dist/network-ZXLD7l1b.d.mts +19 -0
- package/dist/network-ZXLD7l1b.d.ts +19 -0
- package/dist/online-XeymeM9s.d.ts +381 -0
- package/dist/online-d7W_Al9a.d.mts +381 -0
- package/dist/params-DxFb5G_U.d.mts +155 -0
- package/dist/params-DxFb5G_U.d.ts +155 -0
- package/dist/play-BRRlfLhX.d.ts +940 -0
- package/dist/play-ClrMd_e8.d.mts +940 -0
- package/dist/policy-CCw8tXLm.d.mts +3078 -0
- package/dist/policy-CMqOSQIu.d.ts +3078 -0
- package/dist/ports-B_0v_P3A.d.mts +13 -0
- package/dist/ports-CGU_3e_0.d.ts +13 -0
- package/dist/prefetch-BHnicOQj.d.ts +117 -0
- package/dist/prefetch-CBXgYacv.d.mts +117 -0
- package/dist/{price-CSztR02F.d.mts → price-BOzexBww.d.mts} +1 -1
- package/dist/{price-C_vasx9A.d.ts → price-C1h9sPxE.d.ts} +1 -1
- package/dist/protocol-C8qbpUbT.d.mts +242 -0
- package/dist/protocol-C8qbpUbT.d.ts +242 -0
- package/dist/rapier-AZHT4YI7.js +7886 -0
- package/dist/rapier-ODEPCQA6.mjs +7792 -0
- package/dist/react.d.mts +157 -15
- package/dist/react.d.ts +157 -15
- package/dist/react.js +5564 -5904
- package/dist/react.mjs +5451 -5808
- package/dist/runner-CQcLL7By.d.ts +189 -0
- package/dist/runner-D46Yj-wE.d.mts +189 -0
- package/dist/runtime-BRWfkf_q.d.mts +51 -0
- package/dist/runtime-DyuBMkKM.d.ts +51 -0
- package/dist/scheduling-D2ajXpMC.d.ts +224 -0
- package/dist/scheduling-DSRbbaZb.d.mts +224 -0
- package/dist/schema-BrWxzKp6.d.mts +63 -0
- package/dist/schema-BrWxzKp6.d.ts +63 -0
- package/dist/server/evict.js +34 -37
- package/dist/server/evict.mjs +34 -37
- package/dist/server/tanstack.d.mts +49 -3
- package/dist/server/tanstack.d.ts +49 -3
- package/dist/server/tanstack.js +169 -117
- package/dist/server/tanstack.mjs +166 -118
- package/dist/{server-Dckg4Vdr.d.ts → server-D29IIuDV.d.ts} +136 -130
- package/dist/{server-B6dW7-Lj.d.mts → server-DQMWPnc8.d.mts} +136 -130
- package/dist/server.d.mts +45 -5
- package/dist/server.d.ts +45 -5
- package/dist/server.js +171 -227
- package/dist/server.mjs +165 -225
- package/dist/session-grant-CJ27DwrT.d.mts +19 -0
- package/dist/session-grant-CJ27DwrT.d.ts +19 -0
- package/dist/shootout-BJZeX6FG.d.ts +140 -0
- package/dist/shootout-tcZd1Rxt.d.mts +140 -0
- package/dist/state-replica-stMtdkVD.d.mts +42 -0
- package/dist/state-replica-stMtdkVD.d.ts +42 -0
- package/dist/studio-CowqWqez.d.mts +14 -0
- package/dist/studio-CowqWqez.d.ts +14 -0
- package/dist/styles.css +1 -1
- package/dist/template-AhCdB1kW.d.mts +190 -0
- package/dist/template-BkEGVTQj.d.ts +190 -0
- package/dist/terrain-BMxEc6Oc.d.ts +429 -0
- package/dist/terrain-C-XC1Oui.d.mts +429 -0
- package/dist/testing/msw.d.mts +28 -4
- package/dist/testing/msw.d.ts +28 -4
- package/dist/testing/msw.js +15 -21
- package/dist/testing/msw.mjs +15 -21
- package/dist/testing/suite.d.mts +6 -5
- package/dist/testing/suite.d.ts +6 -5
- package/dist/testing/suite.js +89 -124
- package/dist/testing/suite.mjs +81 -116
- package/dist/testing.d.mts +27 -1227
- package/dist/testing.d.ts +27 -1227
- package/dist/testing.js +127 -131
- package/dist/testing.mjs +19 -23
- package/dist/tick-transport-C8QEh8Uw.d.mts +50 -0
- package/dist/tick-transport-UjHY3xK1.d.ts +50 -0
- package/dist/timeline-protocol-hp6e8zFB.d.mts +47 -0
- package/dist/timeline-protocol-hp6e8zFB.d.ts +47 -0
- package/dist/tokens-DhanQRQS.d.mts +21 -0
- package/dist/tokens-K8yxwd6G.d.ts +21 -0
- package/dist/tree-C-Io2Hbx.d.mts +35 -0
- package/dist/tree-CP_qSW4H.d.ts +35 -0
- package/dist/tycoon-B5KHk2Xx.d.mts +255 -0
- package/dist/tycoon-hmHo-3HX.d.ts +255 -0
- package/dist/types-BQkxPwZP.d.mts +219 -0
- package/dist/types-D_f6UUxM.d.ts +219 -0
- package/dist/ui-DwHicuFv.d.mts +563 -0
- package/dist/ui-hi7S2YcH.d.ts +563 -0
- package/dist/{sign-in-DQlIdqsi.d.mts → url-52ndUruG.d.mts} +15 -1
- package/dist/{sign-in-DQlIdqsi.d.ts → url-52ndUruG.d.ts} +15 -1
- package/dist/utils.d.mts +3 -3
- package/dist/utils.d.ts +3 -3
- package/dist/utils.js +37 -37
- package/dist/utils.mjs +4 -4
- package/dist/vars-Dc_PrhBK.d.mts +511 -0
- package/dist/vars-Dc_PrhBK.d.ts +511 -0
- package/dist/vm-IUARFFAI.mjs +63 -0
- package/dist/vm-N7L6MGGH.js +65 -0
- package/dist/weave-delivery-CW-Kstut.d.mts +360 -0
- package/dist/weave-delivery-CW-Kstut.d.ts +360 -0
- package/dist/web-Dss74a7v.d.ts +883 -0
- package/dist/web-f9ZQPoyw.d.mts +883 -0
- package/dist/web-transport-C7MkBL0a.d.ts +19 -0
- package/dist/web-transport-aYEqXMd9.d.mts +19 -0
- package/dist/weight-CPGjsgjV.d.ts +92 -0
- package/dist/weight-tF1ODR1p.d.mts +92 -0
- package/dist/word-BcX9Jcmv.d.mts +70 -0
- package/dist/word-C7sVPLHm.d.ts +70 -0
- package/dist/world-PvILHDR1.d.ts +2285 -0
- package/dist/world-qekkXjJv.d.mts +2285 -0
- package/dist/worlds-Br2Pb0Cs.d.ts +109 -0
- package/dist/worlds-D5ydYr7d.d.mts +109 -0
- package/engines/c/cimplify.h +108 -0
- package/engines/c/cimplify.lib.js +11 -0
- package/engines/godot/addons/cimplify/cimplify.gd +97 -0
- package/engines/rust/interactives-ctx/Cargo.toml +9 -0
- package/engines/rust/interactives-ctx/src/lib.rs +189 -0
- package/package.json +189 -3
- package/vendor/rapier3d-compat/LICENSE +201 -0
- package/vendor/rapier3d-compat/PATCHES.md +61 -0
- package/dist/chunk-2P4KXFB6.js +0 -274
- package/dist/chunk-3G6RQLXK.mjs +0 -21
- package/dist/chunk-3V4DVXV3.mjs +0 -254
- package/dist/chunk-EDK3LNM6.js +0 -2436
- package/dist/chunk-F7J3HK27.js +0 -4549
- package/dist/chunk-U4MW6PYU.mjs +0 -23
- package/dist/chunk-XREIZ56K.js +0 -26
package/dist/server.mjs
CHANGED
|
@@ -1,43 +1,32 @@
|
|
|
1
|
-
import { createCimplifyClient } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import { PKCE_COOKIE, decodePkceState, PKCE_COOKIE_PATH, DEFAULT_ISSUER } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
export { CimplifyError } from './chunk-
|
|
7
|
-
import './chunk-
|
|
1
|
+
import { createCimplifyClient } from './chunk-BTUSVHIE.mjs';
|
|
2
|
+
import './chunk-SWX4SALA.mjs';
|
|
3
|
+
import { PKCE_COOKIE, decodePkceState, PKCE_COOKIE_PATH, DEFAULT_ISSUER } from './chunk-A36JRXXH.mjs';
|
|
4
|
+
import './chunk-E6QQKDNE.mjs';
|
|
5
|
+
import './chunk-6ETDAU62.mjs';
|
|
6
|
+
export { CimplifyError } from './chunk-GCKWKLZF.mjs';
|
|
7
|
+
import './chunk-25T4JHEA.mjs';
|
|
8
8
|
import { cache } from 'react';
|
|
9
9
|
import { jwtVerify, createRemoteJWKSet } from 'jose';
|
|
10
10
|
|
|
11
|
-
var DEFAULT_PROD_URL = "https://storefronts.cimplify.io";
|
|
12
|
-
var DEFAULT_DEV_URL = "http://127.0.0.1:8787";
|
|
11
|
+
var DEFAULT_PROD_URL = "https://storefronts.cimplify.io", DEFAULT_DEV_URL = "http://127.0.0.1:8787";
|
|
13
12
|
function defaultBaseUrl() {
|
|
14
|
-
|
|
15
|
-
return proc?.env?.NODE_ENV === "development" ? DEFAULT_DEV_URL : DEFAULT_PROD_URL;
|
|
13
|
+
return globalThis.process?.env?.NODE_ENV === "development" ? DEFAULT_DEV_URL : DEFAULT_PROD_URL;
|
|
16
14
|
}
|
|
17
15
|
function readEnv(...keys) {
|
|
18
|
-
|
|
19
|
-
if (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return void 0;
|
|
16
|
+
let env = globalThis.process?.env;
|
|
17
|
+
if (env)
|
|
18
|
+
for (let k of keys) {
|
|
19
|
+
let v = env[k]?.trim();
|
|
20
|
+
if (v) return v;
|
|
21
|
+
}
|
|
25
22
|
}
|
|
26
23
|
var getServerClient = cache((opts = {}) => {
|
|
27
|
-
|
|
28
|
-
const publicKey = opts.secretKey ?? readEnv("CIMPLIFY_SECRET_KEY", "NEXT_PUBLIC_CIMPLIFY_PUBLIC_KEY") ?? "mock-dev";
|
|
29
|
-
const client = createCimplifyClient({
|
|
24
|
+
let baseUrl = opts.apiUrl ?? readEnv("CIMPLIFY_API_URL", "NEXT_PUBLIC_CIMPLIFY_API_URL") ?? defaultBaseUrl(), publicKey = opts.secretKey ?? readEnv("CIMPLIFY_SECRET_KEY", "NEXT_PUBLIC_CIMPLIFY_PUBLIC_KEY") ?? "mock-dev", client = createCimplifyClient({
|
|
30
25
|
baseUrl,
|
|
31
26
|
publicKey,
|
|
32
27
|
suppressPublicKeyWarning: true
|
|
33
28
|
});
|
|
34
|
-
|
|
35
|
-
client.setLocationId(opts.locationId);
|
|
36
|
-
}
|
|
37
|
-
if (opts.accessToken) {
|
|
38
|
-
client.setAccessToken(opts.accessToken);
|
|
39
|
-
}
|
|
40
|
-
return client;
|
|
29
|
+
return opts.locationId && client.setLocationId(opts.locationId), opts.accessToken && client.setAccessToken(opts.accessToken), client;
|
|
41
30
|
});
|
|
42
31
|
|
|
43
32
|
// src/server/tags.ts
|
|
@@ -68,27 +57,68 @@ var tags = {
|
|
|
68
57
|
order: (id) => `cimplify:order:${id}`
|
|
69
58
|
};
|
|
70
59
|
|
|
60
|
+
// src/server/purge.ts
|
|
61
|
+
var PROJECT_ENV = "CIMPLIFY_PROJECT_ID", TOKEN_ENV = "CIMPLIFY_SITE_PURGE_TOKEN", API_URL_ENV = "CIMPLIFY_API_URL", DEFAULT_API_URL = "https://api.cimplify.io", PURGE_PATH_PREFIX = "/v1/pub/sites/", PURGE_PATH_SUFFIX = "/cache/purge", SITE_PURGE_MAX_TAGS = 64, SITE_PURGE_MAX_TAG_BYTES = 256, SitePurgeError = class extends Error {
|
|
62
|
+
constructor(message, status) {
|
|
63
|
+
super(message);
|
|
64
|
+
this.status = status;
|
|
65
|
+
this.name = "SitePurgeError";
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
function readEnv2(key) {
|
|
69
|
+
let value = globalThis.process?.env?.[key]?.trim();
|
|
70
|
+
return value || void 0;
|
|
71
|
+
}
|
|
72
|
+
function printable(tag) {
|
|
73
|
+
if (tag.length === 0 || new TextEncoder().encode(tag).length > 256)
|
|
74
|
+
return false;
|
|
75
|
+
for (let char of tag) {
|
|
76
|
+
let code = char.codePointAt(0) ?? 0;
|
|
77
|
+
if (code <= 32 || code >= 127) return false;
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
async function purgeSiteCache(tags2, options = {}) {
|
|
82
|
+
let projectId = options.projectId ?? readEnv2(PROJECT_ENV), token = options.token ?? readEnv2(TOKEN_ENV);
|
|
83
|
+
if (!projectId || !token)
|
|
84
|
+
throw new SitePurgeError(
|
|
85
|
+
`purgeSiteCache needs ${PROJECT_ENV} and ${TOKEN_ENV}; Core binds both into every site it builds`
|
|
86
|
+
);
|
|
87
|
+
if (tags2.length === 0)
|
|
88
|
+
return { deployments: 0 };
|
|
89
|
+
if (tags2.length > 64)
|
|
90
|
+
throw new SitePurgeError("purgeSiteCache takes at most 64 tags");
|
|
91
|
+
let invalid = tags2.find((tag) => !printable(tag));
|
|
92
|
+
if (invalid !== void 0)
|
|
93
|
+
throw new SitePurgeError(`purgeSiteCache tag is not printable ASCII up to 256 bytes: ${invalid}`);
|
|
94
|
+
let apiUrl = (options.apiUrl ?? readEnv2(API_URL_ENV) ?? DEFAULT_API_URL).replace(/\/+$/, ""), response = await (options.fetch ?? fetch)(
|
|
95
|
+
`${apiUrl}${PURGE_PATH_PREFIX}${encodeURIComponent(projectId)}${PURGE_PATH_SUFFIX}`,
|
|
96
|
+
{
|
|
97
|
+
method: "POST",
|
|
98
|
+
headers: {
|
|
99
|
+
authorization: `Bearer ${token}`,
|
|
100
|
+
"content-type": "application/json"
|
|
101
|
+
},
|
|
102
|
+
body: JSON.stringify({ tags: tags2 })
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
if (!response.ok)
|
|
106
|
+
throw new SitePurgeError(`Core refused the site purge (${response.status})`, response.status);
|
|
107
|
+
let deployments = (await response.json()).data?.deployments;
|
|
108
|
+
return { deployments: typeof deployments == "number" ? deployments : 0 };
|
|
109
|
+
}
|
|
110
|
+
|
|
71
111
|
// src/server/cache-life.ts
|
|
72
|
-
var CACHE_LIFE_DEFAULT = "max";
|
|
73
|
-
var CACHE_LIFE_PROBE = "seconds";
|
|
112
|
+
var CACHE_LIFE_DEFAULT = "max", CACHE_LIFE_PROBE = "seconds";
|
|
74
113
|
|
|
75
114
|
// src/server/revalidate.ts
|
|
76
|
-
var DEFAULT_PROFILE =
|
|
77
|
-
var _revalidateTag = null;
|
|
115
|
+
var DEFAULT_PROFILE = "max", _revalidateTag = null;
|
|
78
116
|
async function getRevalidateTag() {
|
|
79
|
-
|
|
80
|
-
const specifier = "next/cache";
|
|
81
|
-
const mod = await import(
|
|
82
|
-
/* webpackIgnore: true */
|
|
83
|
-
/* @vite-ignore */
|
|
84
|
-
specifier
|
|
85
|
-
);
|
|
86
|
-
_revalidateTag = mod.revalidateTag;
|
|
87
|
-
return _revalidateTag;
|
|
117
|
+
return _revalidateTag || (_revalidateTag = (await import('next/cache')).revalidateTag, _revalidateTag);
|
|
88
118
|
}
|
|
89
119
|
async function revalidate(profile, ...tagList) {
|
|
90
|
-
|
|
91
|
-
for (
|
|
120
|
+
let fn = await getRevalidateTag();
|
|
121
|
+
for (let t of tagList) fn(t, profile);
|
|
92
122
|
}
|
|
93
123
|
async function revalidateProducts(profile = DEFAULT_PROFILE) {
|
|
94
124
|
return revalidate(profile, tags.products());
|
|
@@ -148,39 +178,24 @@ async function revalidateByTag(tag, profile = DEFAULT_PROFILE) {
|
|
|
148
178
|
}
|
|
149
179
|
|
|
150
180
|
// src/server/update.ts
|
|
151
|
-
var _updateTag = null;
|
|
152
|
-
var _refresh = null;
|
|
181
|
+
var _updateTag = null, _refresh = null;
|
|
153
182
|
async function getUpdateTag() {
|
|
154
183
|
if (_updateTag) return _updateTag;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
/* webpackIgnore: true */
|
|
158
|
-
/* @vite-ignore */
|
|
159
|
-
specifier
|
|
160
|
-
);
|
|
161
|
-
if (!mod.updateTag) {
|
|
184
|
+
let mod = await import('next/cache');
|
|
185
|
+
if (!mod.updateTag)
|
|
162
186
|
throw new Error("updateTag is not exported from next/cache \u2014 requires Next 16+");
|
|
163
|
-
|
|
164
|
-
_updateTag = mod.updateTag;
|
|
165
|
-
return _updateTag;
|
|
187
|
+
return _updateTag = mod.updateTag, _updateTag;
|
|
166
188
|
}
|
|
167
189
|
async function getRefresh() {
|
|
168
190
|
if (_refresh) return _refresh;
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
/* webpackIgnore: true */
|
|
172
|
-
/* @vite-ignore */
|
|
173
|
-
specifier
|
|
174
|
-
);
|
|
175
|
-
if (!mod.refresh) {
|
|
191
|
+
let mod = await import('next/cache');
|
|
192
|
+
if (!mod.refresh)
|
|
176
193
|
throw new Error("refresh is not exported from next/cache \u2014 requires Next 16+");
|
|
177
|
-
|
|
178
|
-
_refresh = mod.refresh;
|
|
179
|
-
return _refresh;
|
|
194
|
+
return _refresh = mod.refresh, _refresh;
|
|
180
195
|
}
|
|
181
196
|
async function update(...tagList) {
|
|
182
|
-
|
|
183
|
-
for (
|
|
197
|
+
let fn = await getUpdateTag();
|
|
198
|
+
for (let t of tagList) fn(t);
|
|
184
199
|
}
|
|
185
200
|
async function updateProducts() {
|
|
186
201
|
return update(tags.products());
|
|
@@ -234,21 +249,9 @@ async function updateByTag(tag) {
|
|
|
234
249
|
return update(tag);
|
|
235
250
|
}
|
|
236
251
|
async function refreshPage() {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
var SESSION_COOKIE = "cimplify_session";
|
|
241
|
-
var ACCESS_TOKEN_COOKIE = "cimplify_access";
|
|
242
|
-
var REFRESH_TOKEN_COOKIE = "cimplify_refresh";
|
|
243
|
-
var REFRESH_COOKIE_MAX_AGE_SECONDS = 60 * 60 * 24 * 30;
|
|
244
|
-
var ACCESS_REFRESH_SKEW_SECONDS = 30;
|
|
245
|
-
var HEADER_LOCATION = "Location";
|
|
246
|
-
var PARAM_CODE = "code";
|
|
247
|
-
var PARAM_STATE = "state";
|
|
248
|
-
var PARAM_ERROR = "error";
|
|
249
|
-
var QUERY_AUTH_ERROR = "cimplify_auth_error";
|
|
250
|
-
var discoveryCache = /* @__PURE__ */ new Map();
|
|
251
|
-
var jwksCache = /* @__PURE__ */ new Map();
|
|
252
|
+
(await getRefresh())();
|
|
253
|
+
}
|
|
254
|
+
var SESSION_COOKIE = "cimplify_session", ACCESS_TOKEN_COOKIE = "cimplify_access", REFRESH_TOKEN_COOKIE = "cimplify_refresh", REFRESH_COOKIE_MAX_AGE_SECONDS = 3600 * 24 * 30, ACCESS_REFRESH_SKEW_SECONDS = 30, HEADER_LOCATION = "Location", PARAM_CODE = "code", PARAM_STATE = "state", PARAM_ERROR = "error", QUERY_AUTH_ERROR = "cimplify_auth_error", discoveryCache = /* @__PURE__ */ new Map(), jwksCache = /* @__PURE__ */ new Map();
|
|
252
255
|
function issuerBase(cfg) {
|
|
253
256
|
return (cfg.issuer ?? cfg.authUrl ?? DEFAULT_ISSUER).replace(/\/$/, "");
|
|
254
257
|
}
|
|
@@ -262,47 +265,35 @@ function refreshTokenCookieName(cfg) {
|
|
|
262
265
|
return cfg.refreshTokenCookieName ?? REFRESH_TOKEN_COOKIE;
|
|
263
266
|
}
|
|
264
267
|
async function discovery(cfg) {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
return r.json();
|
|
273
|
-
});
|
|
274
|
-
discoveryCache.set(base, p);
|
|
275
|
-
}
|
|
276
|
-
return p;
|
|
268
|
+
let base = issuerBase(cfg), p = discoveryCache.get(base);
|
|
269
|
+
return p || (p = fetch(`${base}/.well-known/openid-configuration`, {
|
|
270
|
+
next: { revalidate: 3600 }
|
|
271
|
+
}).then((r) => {
|
|
272
|
+
if (!r.ok) throw new Error(`oidc discovery failed: ${r.status}`);
|
|
273
|
+
return r.json();
|
|
274
|
+
}), discoveryCache.set(base, p)), p;
|
|
277
275
|
}
|
|
278
276
|
async function jwks(cfg) {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
if (!set) {
|
|
282
|
-
set = createRemoteJWKSet(new URL(doc.jwks_uri));
|
|
283
|
-
jwksCache.set(doc.jwks_uri, set);
|
|
284
|
-
}
|
|
285
|
-
return { set, issuer: doc.issuer };
|
|
277
|
+
let doc = await discovery(cfg), set = jwksCache.get(doc.jwks_uri);
|
|
278
|
+
return set || (set = createRemoteJWKSet(new URL(doc.jwks_uri)), jwksCache.set(doc.jwks_uri, set)), { set, issuer: doc.issuer };
|
|
286
279
|
}
|
|
287
280
|
async function exchangeCode(opts) {
|
|
288
|
-
|
|
289
|
-
const body = new URLSearchParams({
|
|
281
|
+
let doc = await discovery(opts), body = new URLSearchParams({
|
|
290
282
|
grant_type: "authorization_code",
|
|
291
283
|
code: opts.code,
|
|
292
284
|
code_verifier: opts.codeVerifier,
|
|
293
285
|
redirect_uri: opts.redirectUri,
|
|
294
286
|
client_id: opts.clientId
|
|
295
|
-
})
|
|
296
|
-
const res = await fetch(doc.token_endpoint, {
|
|
287
|
+
}), res = await fetch(doc.token_endpoint, {
|
|
297
288
|
method: "POST",
|
|
298
289
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
299
290
|
body: body.toString()
|
|
300
291
|
});
|
|
301
292
|
if (!res.ok) {
|
|
302
|
-
|
|
293
|
+
let text = await res.text().catch(() => "");
|
|
303
294
|
throw new Error(`token exchange failed (${res.status}): ${text}`);
|
|
304
295
|
}
|
|
305
|
-
|
|
296
|
+
let payload = await res.json();
|
|
306
297
|
return {
|
|
307
298
|
accessToken: payload.access_token,
|
|
308
299
|
idToken: payload.id_token,
|
|
@@ -312,7 +303,7 @@ async function exchangeCode(opts) {
|
|
|
312
303
|
};
|
|
313
304
|
}
|
|
314
305
|
async function verifyIdToken(cfg, idToken) {
|
|
315
|
-
|
|
306
|
+
let { set, issuer } = await jwks(cfg);
|
|
316
307
|
return jwtVerify(idToken, set, {
|
|
317
308
|
issuer,
|
|
318
309
|
audience: cfg.clientId
|
|
@@ -331,26 +322,22 @@ function payloadToSession(payload) {
|
|
|
331
322
|
};
|
|
332
323
|
}
|
|
333
324
|
function buildSessionCookie(cfg, idToken, maxAgeSeconds) {
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
`${name}=${idToken}`,
|
|
325
|
+
let parts = [
|
|
326
|
+
`${cookieName(cfg)}=${idToken}`,
|
|
337
327
|
"Path=/",
|
|
338
328
|
"HttpOnly",
|
|
339
329
|
"Secure",
|
|
340
330
|
"SameSite=Lax",
|
|
341
331
|
`Max-Age=${maxAgeSeconds}`
|
|
342
332
|
];
|
|
343
|
-
|
|
344
|
-
return parts.join("; ");
|
|
333
|
+
return cfg.cookieDomain && parts.push(`Domain=${cfg.cookieDomain}`), parts.join("; ");
|
|
345
334
|
}
|
|
346
335
|
function buildSignoutCookie(cfg) {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
if (cfg.cookieDomain) parts.push(`Domain=${cfg.cookieDomain}`);
|
|
350
|
-
return parts.join("; ");
|
|
336
|
+
let parts = [`${cookieName(cfg)}=`, "Path=/", "HttpOnly", "Secure", "SameSite=Lax", "Max-Age=0"];
|
|
337
|
+
return cfg.cookieDomain && parts.push(`Domain=${cfg.cookieDomain}`), parts.join("; ");
|
|
351
338
|
}
|
|
352
339
|
function buildAccessTokenCookie(cfg, accessToken, maxAgeSeconds) {
|
|
353
|
-
|
|
340
|
+
let parts = [
|
|
354
341
|
`${accessTokenCookieName(cfg)}=${accessToken}`,
|
|
355
342
|
"Path=/",
|
|
356
343
|
"HttpOnly",
|
|
@@ -358,11 +345,10 @@ function buildAccessTokenCookie(cfg, accessToken, maxAgeSeconds) {
|
|
|
358
345
|
"SameSite=Lax",
|
|
359
346
|
`Max-Age=${maxAgeSeconds}`
|
|
360
347
|
];
|
|
361
|
-
|
|
362
|
-
return parts.join("; ");
|
|
348
|
+
return cfg.cookieDomain && parts.push(`Domain=${cfg.cookieDomain}`), parts.join("; ");
|
|
363
349
|
}
|
|
364
350
|
function buildRefreshTokenCookie(cfg, refreshToken, maxAgeSeconds) {
|
|
365
|
-
|
|
351
|
+
let parts = [
|
|
366
352
|
`${refreshTokenCookieName(cfg)}=${refreshToken}`,
|
|
367
353
|
"Path=/",
|
|
368
354
|
"HttpOnly",
|
|
@@ -370,14 +356,12 @@ function buildRefreshTokenCookie(cfg, refreshToken, maxAgeSeconds) {
|
|
|
370
356
|
"SameSite=Lax",
|
|
371
357
|
`Max-Age=${maxAgeSeconds}`
|
|
372
358
|
];
|
|
373
|
-
|
|
374
|
-
return parts.join("; ");
|
|
359
|
+
return cfg.cookieDomain && parts.push(`Domain=${cfg.cookieDomain}`), parts.join("; ");
|
|
375
360
|
}
|
|
376
361
|
function buildSignoutCookies(cfg) {
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
return parts.join("; ");
|
|
362
|
+
let clear = (name) => {
|
|
363
|
+
let parts = [`${name}=`, "Path=/", "HttpOnly", "Secure", "SameSite=Lax", "Max-Age=0"];
|
|
364
|
+
return cfg.cookieDomain && parts.push(`Domain=${cfg.cookieDomain}`), parts.join("; ");
|
|
381
365
|
};
|
|
382
366
|
return [
|
|
383
367
|
clear(cookieName(cfg)),
|
|
@@ -387,25 +371,21 @@ function buildSignoutCookies(cfg) {
|
|
|
387
371
|
}
|
|
388
372
|
function readCookie(name, cookieHeader) {
|
|
389
373
|
if (!cookieHeader) return null;
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
return match.slice(name.length + 1) || null;
|
|
374
|
+
let match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${name}=`));
|
|
375
|
+
return match && match.slice(name.length + 1) || null;
|
|
393
376
|
}
|
|
394
377
|
function getRefreshTokenFromCookieHeader(cfg, cookieHeader) {
|
|
395
378
|
return readCookie(refreshTokenCookieName(cfg), cookieHeader);
|
|
396
379
|
}
|
|
397
380
|
function getAccessTokenFromCookieHeader(cfg, cookieHeader) {
|
|
398
381
|
if (!cookieHeader) return null;
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
if (!match) return null;
|
|
402
|
-
const token = match.slice(name.length + 1);
|
|
403
|
-
return token || null;
|
|
382
|
+
let name = accessTokenCookieName(cfg), match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${name}=`));
|
|
383
|
+
return match && match.slice(name.length + 1) || null;
|
|
404
384
|
}
|
|
405
385
|
function isSameOriginCallback(req, redirectUri) {
|
|
406
|
-
|
|
386
|
+
let site = req.headers.get("sec-fetch-site");
|
|
407
387
|
if (site) return site === "same-origin";
|
|
408
|
-
|
|
388
|
+
let origin = req.headers.get("origin");
|
|
409
389
|
if (!origin) return false;
|
|
410
390
|
try {
|
|
411
391
|
return origin === new URL(redirectUri).origin;
|
|
@@ -414,18 +394,16 @@ function isSameOriginCallback(req, redirectUri) {
|
|
|
414
394
|
}
|
|
415
395
|
}
|
|
416
396
|
async function handleOidcCallback(req, opts) {
|
|
417
|
-
if (!isSameOriginCallback(req, opts.redirectUri))
|
|
397
|
+
if (!isSameOriginCallback(req, opts.redirectUri))
|
|
418
398
|
return Response.json({ error: "forbidden_origin" }, { status: 403 });
|
|
419
|
-
}
|
|
420
399
|
let body;
|
|
421
400
|
try {
|
|
422
401
|
body = await req.json();
|
|
423
402
|
} catch {
|
|
424
403
|
return Response.json({ error: "invalid_json" }, { status: 400 });
|
|
425
404
|
}
|
|
426
|
-
if (!body.code || !body.codeVerifier)
|
|
405
|
+
if (!body.code || !body.codeVerifier)
|
|
427
406
|
return Response.json({ error: "missing_code_or_verifier" }, { status: 400 });
|
|
428
|
-
}
|
|
429
407
|
let tokens;
|
|
430
408
|
try {
|
|
431
409
|
tokens = await exchangeCode({
|
|
@@ -436,24 +414,18 @@ async function handleOidcCallback(req, opts) {
|
|
|
436
414
|
} catch {
|
|
437
415
|
return Response.json({ error: "exchange_failed" }, { status: 400 });
|
|
438
416
|
}
|
|
439
|
-
if (!tokens.idToken)
|
|
417
|
+
if (!tokens.idToken)
|
|
440
418
|
return Response.json({ error: "missing_id_token" }, { status: 400 });
|
|
441
|
-
}
|
|
442
419
|
try {
|
|
443
420
|
await verifyIdToken(opts, tokens.idToken);
|
|
444
421
|
} catch {
|
|
445
422
|
return Response.json({ error: "id_token_invalid" }, { status: 401 });
|
|
446
423
|
}
|
|
447
|
-
|
|
448
|
-
headers.append("Set-Cookie", buildSessionCookie(opts, tokens.idToken, tokens.expiresIn))
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
"Set-Cookie",
|
|
453
|
-
buildRefreshTokenCookie(opts, tokens.refreshToken, REFRESH_COOKIE_MAX_AGE_SECONDS)
|
|
454
|
-
);
|
|
455
|
-
}
|
|
456
|
-
return new Response(
|
|
424
|
+
let headers = new Headers({ "Content-Type": "application/json" });
|
|
425
|
+
return headers.append("Set-Cookie", buildSessionCookie(opts, tokens.idToken, tokens.expiresIn)), headers.append("Set-Cookie", buildAccessTokenCookie(opts, tokens.accessToken, tokens.expiresIn)), tokens.refreshToken && headers.append(
|
|
426
|
+
"Set-Cookie",
|
|
427
|
+
buildRefreshTokenCookie(opts, tokens.refreshToken, REFRESH_COOKIE_MAX_AGE_SECONDS)
|
|
428
|
+
), new Response(
|
|
457
429
|
JSON.stringify({
|
|
458
430
|
ok: true,
|
|
459
431
|
accessToken: tokens.accessToken,
|
|
@@ -465,32 +437,23 @@ async function handleOidcCallback(req, opts) {
|
|
|
465
437
|
}
|
|
466
438
|
function readPkceCookie(cookieHeader) {
|
|
467
439
|
if (!cookieHeader) return null;
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
return decodePkceState(match.slice(PKCE_COOKIE.length + 1));
|
|
440
|
+
let match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${PKCE_COOKIE}=`));
|
|
441
|
+
return match ? decodePkceState(match.slice(PKCE_COOKIE.length + 1)) : null;
|
|
471
442
|
}
|
|
472
443
|
function buildPkceClearCookie() {
|
|
473
444
|
return `${PKCE_COOKIE}=; Path=${PKCE_COOKIE_PATH}; Max-Age=0; Secure; SameSite=Lax`;
|
|
474
445
|
}
|
|
475
446
|
function safeReturnPath(returnTo, fallback) {
|
|
476
|
-
|
|
477
|
-
return fallback;
|
|
447
|
+
return returnTo && returnTo.startsWith("/") && !returnTo.startsWith("//") ? returnTo : fallback;
|
|
478
448
|
}
|
|
479
449
|
function withAuthError(path, reason) {
|
|
480
|
-
|
|
450
|
+
let sep = path.includes("?") ? "&" : "?";
|
|
481
451
|
return `${path}${sep}${QUERY_AUTH_ERROR}=${encodeURIComponent(reason)}`;
|
|
482
452
|
}
|
|
483
453
|
async function handleRedirectCallback(req, opts) {
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
const authError = url.searchParams.get(PARAM_ERROR);
|
|
488
|
-
const pkce = readPkceCookie(req.headers.get("cookie"));
|
|
489
|
-
const returnTo = safeReturnPath(pkce?.returnTo, opts.defaultReturnTo ?? "/");
|
|
490
|
-
const fail = (reason) => {
|
|
491
|
-
const headers2 = new Headers({ [HEADER_LOCATION]: withAuthError(returnTo, reason) });
|
|
492
|
-
headers2.append("Set-Cookie", buildPkceClearCookie());
|
|
493
|
-
return new Response(null, { status: 302, headers: headers2 });
|
|
454
|
+
let url = new URL(req.url), code = url.searchParams.get(PARAM_CODE), urlState = url.searchParams.get(PARAM_STATE), authError = url.searchParams.get(PARAM_ERROR), pkce = readPkceCookie(req.headers.get("cookie")), returnTo = safeReturnPath(pkce?.returnTo, opts.defaultReturnTo ?? "/"), fail = (reason) => {
|
|
455
|
+
let headers2 = new Headers({ [HEADER_LOCATION]: withAuthError(returnTo, reason) });
|
|
456
|
+
return headers2.append("Set-Cookie", buildPkceClearCookie()), new Response(null, { status: 302, headers: headers2 });
|
|
494
457
|
};
|
|
495
458
|
if (authError) return fail(authError);
|
|
496
459
|
if (!code || !pkce) return fail("missing_code");
|
|
@@ -507,62 +470,50 @@ async function handleRedirectCallback(req, opts) {
|
|
|
507
470
|
} catch {
|
|
508
471
|
return fail("id_token_invalid");
|
|
509
472
|
}
|
|
510
|
-
|
|
511
|
-
headers.append("Set-Cookie", buildSessionCookie(opts, tokens.idToken, tokens.expiresIn))
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
"Set-Cookie",
|
|
516
|
-
buildRefreshTokenCookie(opts, tokens.refreshToken, REFRESH_COOKIE_MAX_AGE_SECONDS)
|
|
517
|
-
);
|
|
518
|
-
}
|
|
519
|
-
headers.append("Set-Cookie", buildPkceClearCookie());
|
|
520
|
-
return new Response(null, { status: 302, headers });
|
|
473
|
+
let headers = new Headers({ [HEADER_LOCATION]: returnTo });
|
|
474
|
+
return headers.append("Set-Cookie", buildSessionCookie(opts, tokens.idToken, tokens.expiresIn)), headers.append("Set-Cookie", buildAccessTokenCookie(opts, tokens.accessToken, tokens.expiresIn)), tokens.refreshToken && headers.append(
|
|
475
|
+
"Set-Cookie",
|
|
476
|
+
buildRefreshTokenCookie(opts, tokens.refreshToken, REFRESH_COOKIE_MAX_AGE_SECONDS)
|
|
477
|
+
), headers.append("Set-Cookie", buildPkceClearCookie()), new Response(null, { status: 302, headers });
|
|
521
478
|
}
|
|
522
479
|
async function handleSessionRequest(req, cfg) {
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
});
|
|
529
|
-
}
|
|
530
|
-
return new Response(JSON.stringify(session), {
|
|
480
|
+
let session = await getSessionFromCookieHeader(cfg, req.headers.get("cookie"));
|
|
481
|
+
return session ? new Response(JSON.stringify(session), {
|
|
482
|
+
status: 200,
|
|
483
|
+
headers: { "Content-Type": "application/json", "Cache-Control": "no-store" }
|
|
484
|
+
}) : new Response(JSON.stringify({ sub: null }), {
|
|
531
485
|
status: 200,
|
|
532
486
|
headers: { "Content-Type": "application/json", "Cache-Control": "no-store" }
|
|
533
487
|
});
|
|
534
488
|
}
|
|
535
489
|
async function getSessionFromCookieHeader(cfg, cookieHeader) {
|
|
536
490
|
if (!cookieHeader) return null;
|
|
537
|
-
|
|
538
|
-
const match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${name}=`));
|
|
491
|
+
let name = cookieName(cfg), match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${name}=`));
|
|
539
492
|
if (!match) return null;
|
|
540
|
-
|
|
493
|
+
let token = match.slice(name.length + 1);
|
|
541
494
|
if (!token) return null;
|
|
542
495
|
try {
|
|
543
|
-
|
|
496
|
+
let { payload } = await verifyIdToken(cfg, token);
|
|
544
497
|
return payloadToSession(payload);
|
|
545
498
|
} catch {
|
|
546
499
|
return null;
|
|
547
500
|
}
|
|
548
501
|
}
|
|
549
502
|
async function refreshTokens(cfg, refreshToken) {
|
|
550
|
-
|
|
551
|
-
const body = new URLSearchParams({
|
|
503
|
+
let doc = await discovery(cfg), body = new URLSearchParams({
|
|
552
504
|
grant_type: "refresh_token",
|
|
553
505
|
refresh_token: refreshToken,
|
|
554
506
|
client_id: cfg.clientId
|
|
555
|
-
})
|
|
556
|
-
const res = await fetch(doc.token_endpoint, {
|
|
507
|
+
}), res = await fetch(doc.token_endpoint, {
|
|
557
508
|
method: "POST",
|
|
558
509
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
559
510
|
body: body.toString()
|
|
560
511
|
});
|
|
561
512
|
if (!res.ok) {
|
|
562
|
-
|
|
513
|
+
let text = await res.text().catch(() => "");
|
|
563
514
|
throw new Error(`token refresh failed (${res.status}): ${text}`);
|
|
564
515
|
}
|
|
565
|
-
|
|
516
|
+
let payload = await res.json();
|
|
566
517
|
return {
|
|
567
518
|
accessToken: payload.access_token,
|
|
568
519
|
idToken: payload.id_token,
|
|
@@ -572,28 +523,26 @@ async function refreshTokens(cfg, refreshToken) {
|
|
|
572
523
|
};
|
|
573
524
|
}
|
|
574
525
|
function decodeBase64Url(segment) {
|
|
575
|
-
|
|
576
|
-
const pad = b64.length % 4 ? "=".repeat(4 - b64.length % 4) : "";
|
|
526
|
+
let b64 = segment.replace(/-/g, "+").replace(/_/g, "/"), pad = b64.length % 4 ? "=".repeat(4 - b64.length % 4) : "";
|
|
577
527
|
return atob(b64 + pad);
|
|
578
528
|
}
|
|
579
529
|
function accessTokenExpiry(token) {
|
|
580
530
|
if (!token) return null;
|
|
581
|
-
|
|
531
|
+
let parts = token.split(".");
|
|
582
532
|
if (parts.length < 2) return null;
|
|
583
533
|
try {
|
|
584
|
-
|
|
585
|
-
return typeof payload.exp
|
|
534
|
+
let payload = JSON.parse(decodeBase64Url(parts[1]));
|
|
535
|
+
return typeof payload.exp == "number" ? payload.exp : null;
|
|
586
536
|
} catch {
|
|
587
537
|
return null;
|
|
588
538
|
}
|
|
589
539
|
}
|
|
590
540
|
var refreshInflight = /* @__PURE__ */ new Map();
|
|
591
541
|
function dedupedRefresh(cfg, refreshToken) {
|
|
592
|
-
|
|
542
|
+
let existing = refreshInflight.get(refreshToken);
|
|
593
543
|
if (existing) return existing;
|
|
594
|
-
|
|
595
|
-
refreshInflight.set(refreshToken, p);
|
|
596
|
-
return p;
|
|
544
|
+
let p = refreshTokens(cfg, refreshToken).finally(() => refreshInflight.delete(refreshToken));
|
|
545
|
+
return refreshInflight.set(refreshToken, p), p;
|
|
597
546
|
}
|
|
598
547
|
function clearedResult(cfg) {
|
|
599
548
|
return {
|
|
@@ -607,15 +556,11 @@ function clearedResult(cfg) {
|
|
|
607
556
|
};
|
|
608
557
|
}
|
|
609
558
|
async function handleTokenRefresh(req, cfg) {
|
|
610
|
-
|
|
611
|
-
const refreshToken = getRefreshTokenFromCookieHeader(cfg, cookieHeader);
|
|
559
|
+
let cookieHeader = req.headers.get("cookie"), refreshToken = getRefreshTokenFromCookieHeader(cfg, cookieHeader);
|
|
612
560
|
if (!refreshToken) return { outcome: "noop", setCookies: [], cookies: [] };
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
const now = Math.floor(Date.now() / 1e3);
|
|
616
|
-
if (access && exp !== null && exp - now > ACCESS_REFRESH_SKEW_SECONDS) {
|
|
561
|
+
let access = getAccessTokenFromCookieHeader(cfg, cookieHeader), exp = accessTokenExpiry(access), now = Math.floor(Date.now() / 1e3);
|
|
562
|
+
if (access && exp !== null && exp - now > (30))
|
|
617
563
|
return { outcome: "noop", setCookies: [], cookies: [] };
|
|
618
|
-
}
|
|
619
564
|
let tokens;
|
|
620
565
|
try {
|
|
621
566
|
tokens = await dedupedRefresh(cfg, refreshToken);
|
|
@@ -623,21 +568,16 @@ async function handleTokenRefresh(req, cfg) {
|
|
|
623
568
|
return clearedResult(cfg);
|
|
624
569
|
}
|
|
625
570
|
if (!tokens.idToken) return clearedResult(cfg);
|
|
626
|
-
|
|
571
|
+
let setCookies = [
|
|
627
572
|
buildSessionCookie(cfg, tokens.idToken, tokens.expiresIn),
|
|
628
573
|
buildAccessTokenCookie(cfg, tokens.accessToken, tokens.expiresIn)
|
|
629
|
-
]
|
|
630
|
-
const cookies = [
|
|
574
|
+
], cookies = [
|
|
631
575
|
{ name: cookieName(cfg), value: tokens.idToken },
|
|
632
576
|
{ name: accessTokenCookieName(cfg), value: tokens.accessToken }
|
|
633
577
|
];
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
);
|
|
638
|
-
cookies.push({ name: refreshTokenCookieName(cfg), value: tokens.refreshToken });
|
|
639
|
-
}
|
|
640
|
-
return { outcome: "refreshed", setCookies, cookies };
|
|
578
|
+
return tokens.refreshToken && (setCookies.push(
|
|
579
|
+
buildRefreshTokenCookie(cfg, tokens.refreshToken, REFRESH_COOKIE_MAX_AGE_SECONDS)
|
|
580
|
+
), cookies.push({ name: refreshTokenCookieName(cfg), value: tokens.refreshToken })), { outcome: "refreshed", setCookies, cookies };
|
|
641
581
|
}
|
|
642
582
|
|
|
643
|
-
export { CACHE_LIFE_DEFAULT, CACHE_LIFE_PROBE, buildAccessTokenCookie, buildRefreshTokenCookie, buildSessionCookie, buildSignoutCookie, buildSignoutCookies, exchangeCode, getAccessTokenFromCookieHeader, getRefreshTokenFromCookieHeader, getServerClient, getSessionFromCookieHeader, handleOidcCallback, handleRedirectCallback, handleSessionRequest, handleTokenRefresh, refreshPage, refreshTokens, revalidateAddOn, revalidateAddOns, revalidateBrand, revalidateBusiness, revalidateByTag, revalidateCategories, revalidateCategory, revalidateCollection, revalidateCollections, revalidateLocation, revalidateLocations, revalidatePricing, revalidateProduct, revalidateProducts, revalidateStock, revalidateSubscription, revalidateSubscriptions, tags, updateAddOn, updateAddOns, updateBrand, updateBusiness, updateByTag, updateCategories, updateCategory, updateCollection, updateCollections, updateLocation, updateLocations, updatePricing, updateProduct, updateProducts, updateStock, updateSubscription, updateSubscriptions, verifyIdToken };
|
|
583
|
+
export { CACHE_LIFE_DEFAULT, CACHE_LIFE_PROBE, SITE_PURGE_MAX_TAGS, SITE_PURGE_MAX_TAG_BYTES, SitePurgeError, buildAccessTokenCookie, buildRefreshTokenCookie, buildSessionCookie, buildSignoutCookie, buildSignoutCookies, exchangeCode, getAccessTokenFromCookieHeader, getRefreshTokenFromCookieHeader, getServerClient, getSessionFromCookieHeader, handleOidcCallback, handleRedirectCallback, handleSessionRequest, handleTokenRefresh, purgeSiteCache, refreshPage, refreshTokens, revalidateAddOn, revalidateAddOns, revalidateBrand, revalidateBusiness, revalidateByTag, revalidateCategories, revalidateCategory, revalidateCollection, revalidateCollections, revalidateLocation, revalidateLocations, revalidatePricing, revalidateProduct, revalidateProducts, revalidateStock, revalidateSubscription, revalidateSubscriptions, tags, updateAddOn, updateAddOns, updateBrand, updateBusiness, updateByTag, updateCategories, updateCategory, updateCollection, updateCollections, updateLocation, updateLocations, updatePricing, updateProduct, updateProducts, updateStock, updateSubscription, updateSubscriptions, verifyIdToken };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type GameErrorCode = "capacity_exceeded" | "dead_entity" | "missing_component" | "unsupported_feature" | "shader_requires_translation" | "invalid_argument" | "not_initialized" | "asset_load_failed" | "unknown_resource" | "engine_mismatch";
|
|
2
|
+
declare class GameError extends Error {
|
|
3
|
+
readonly code: GameErrorCode;
|
|
4
|
+
constructor(code: GameErrorCode, message: string);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
type EngineSessionAudience = "player" | "ios" | "android" | "cli";
|
|
8
|
+
interface EngineSessionGrant {
|
|
9
|
+
readonly token: string;
|
|
10
|
+
readonly audience: EngineSessionAudience;
|
|
11
|
+
readonly origin: string;
|
|
12
|
+
}
|
|
13
|
+
type EngineSessionRefusal = "missing" | "malformed" | "unknown_key" | "forged" | "expired" | "not_yet_valid" | "lifetime" | "audience" | "origin" | "unknown";
|
|
14
|
+
declare class EngineSessionError extends GameError {
|
|
15
|
+
readonly refusal: EngineSessionRefusal;
|
|
16
|
+
constructor(code: number);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { type EngineSessionAudience as E, GameError as G, EngineSessionError as a, type EngineSessionGrant as b, type EngineSessionRefusal as c, type GameErrorCode as d };
|