@nanoforge-dev/editor 0.0.2-beta.0ea19be → 0.0.2-beta.3d4991c
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/dist/client/_app/immutable/assets/0.yoWygKZi.css +1 -0
- package/dist/client/_app/immutable/assets/0.yoWygKZi.css.br +0 -0
- package/dist/client/_app/immutable/assets/0.yoWygKZi.css.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BS47D1Yd2.js → BFWbalF82.js} +1 -1
- package/dist/client/_app/immutable/chunks/BFWbalF82.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BFWbalF82.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{DT8Ddh1L2.js → BLf9jss52.js} +1 -1
- package/dist/client/_app/immutable/chunks/BLf9jss52.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BLf9jss52.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{CKei9xPI2.js → BSNB_Uck2.js} +2 -2
- package/dist/client/_app/immutable/chunks/BSNB_Uck2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BSNB_Uck2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{Fu4roQAh.js → BWNegMLP.js} +1 -1
- package/dist/client/_app/immutable/chunks/BWNegMLP.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BWNegMLP.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{orCHVlgT.js → BesjqVrk.js} +1 -1
- package/dist/client/_app/immutable/chunks/BesjqVrk.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BesjqVrk.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BWDRzheF2.js → Bhafduqk2.js} +1 -1
- package/dist/client/_app/immutable/chunks/Bhafduqk2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/Bhafduqk2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{xhfENL-e.js → C048Bjn7.js} +7 -7
- package/dist/client/_app/immutable/chunks/C048Bjn7.js.br +0 -0
- package/dist/client/_app/immutable/chunks/C048Bjn7.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BpGMGp28.js → CJx6yPZh.js} +1 -1
- package/dist/client/_app/immutable/chunks/CJx6yPZh.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CJx6yPZh.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{uo5fvlDn2.js → CJxKUjL-2.js} +1 -1
- package/dist/client/_app/immutable/chunks/CJxKUjL-2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CJxKUjL-2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{DH-ThjiG2.js → CVQMNY_q2.js} +2 -2
- package/dist/client/_app/immutable/chunks/CVQMNY_q2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CVQMNY_q2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{Bk9DeFcz2.js → CbW3yNTi.js} +1 -1
- package/dist/client/_app/immutable/chunks/CbW3yNTi.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CbW3yNTi.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CvkNa2t_.js +3 -0
- package/dist/client/_app/immutable/chunks/CvkNa2t_.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CvkNa2t_.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{CnhOha0Z2.js → D2PipAw82.js} +1 -1
- package/dist/client/_app/immutable/chunks/D2PipAw82.js.br +0 -0
- package/dist/client/_app/immutable/chunks/D2PipAw82.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BzGBrbo22.js → D6-zOYYZ2.js} +1 -1
- package/dist/client/_app/immutable/chunks/D6-zOYYZ2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/D6-zOYYZ2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{B4w9-fYM2.js → DGDm8Q4w2.js} +1 -1
- package/dist/client/_app/immutable/chunks/DGDm8Q4w2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DGDm8Q4w2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{DFXoGGM32.js → DRQF0pcw2.js} +1 -1
- package/dist/client/_app/immutable/chunks/DRQF0pcw2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DRQF0pcw2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{C83DJP9w2.js → DYPPS7OK2.js} +1 -1
- package/dist/client/_app/immutable/chunks/DYPPS7OK2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DYPPS7OK2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BZqFHUa32.js → DaisyxdZ2.js} +1 -1
- package/dist/client/_app/immutable/chunks/DaisyxdZ2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DaisyxdZ2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BlGyHMDZ.js → DtcTX-YU.js} +1 -1
- package/dist/client/_app/immutable/chunks/DtcTX-YU.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DtcTX-YU.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BG-gp5_B.js → Dy4Pjuql.js} +1 -1
- package/dist/client/_app/immutable/chunks/Dy4Pjuql.js.br +1 -0
- package/dist/client/_app/immutable/chunks/Dy4Pjuql.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{DHQLzCjY2.js → M5EMNuDS2.js} +1 -1
- package/dist/client/_app/immutable/chunks/M5EMNuDS2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/M5EMNuDS2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{CCCR_2rp.js → NokGgZou.js} +1 -1
- package/dist/client/_app/immutable/chunks/NokGgZou.js.br +0 -0
- package/dist/client/_app/immutable/chunks/NokGgZou.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{DuDzfUqN2.js → SmrQhi1p2.js} +1 -1
- package/dist/client/_app/immutable/chunks/SmrQhi1p2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/SmrQhi1p2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{C7bUlFLk2.js → TFu7Wn2c2.js} +1 -1
- package/dist/client/_app/immutable/chunks/TFu7Wn2c2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/TFu7Wn2c2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/hoH54hVB.js +6 -0
- package/dist/client/_app/immutable/chunks/hoH54hVB.js.br +0 -0
- package/dist/client/_app/immutable/chunks/hoH54hVB.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BwWAgYKi2.js → mESnenQM2.js} +1 -1
- package/dist/client/_app/immutable/chunks/mESnenQM2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/mESnenQM2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/nE3VUeYj.js +0 -0
- package/dist/client/_app/immutable/chunks/nE3VUeYj.js.br +1 -0
- package/dist/client/_app/immutable/chunks/nE3VUeYj.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{mRVEsFly2.js → uIj7mV9x2.js} +1 -1
- package/dist/client/_app/immutable/chunks/uIj7mV9x2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/uIj7mV9x2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/xmyAstTO.js +1 -0
- package/dist/client/_app/immutable/chunks/xmyAstTO.js.br +0 -0
- package/dist/client/_app/immutable/chunks/xmyAstTO.js.gz +0 -0
- package/dist/client/_app/immutable/entry/{app.CyMVjflN.js → app.BrYxTqmC.js} +2 -2
- package/dist/client/_app/immutable/entry/app.BrYxTqmC.js.br +0 -0
- package/dist/client/_app/immutable/entry/app.BrYxTqmC.js.gz +0 -0
- package/dist/client/_app/immutable/entry/start.BLJU4g6R.js +1 -0
- package/dist/client/_app/immutable/entry/start.BLJU4g6R.js.br +1 -0
- package/dist/client/_app/immutable/entry/start.BLJU4g6R.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/{0.DvEZu2JO.js → 0.CsYGMzJU.js} +1 -1
- package/dist/client/_app/immutable/nodes/0.CsYGMzJU.js.br +0 -0
- package/dist/client/_app/immutable/nodes/0.CsYGMzJU.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/{1.BoI80J69.js → 1.CfDpZeft.js} +1 -1
- package/dist/client/_app/immutable/nodes/1.CfDpZeft.js.br +2 -0
- package/dist/client/_app/immutable/nodes/1.CfDpZeft.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/{10.BvZJgse0.js → 11.L_9ZmasQ.js} +1 -1
- package/dist/client/_app/immutable/nodes/11.L_9ZmasQ.js.br +0 -0
- package/dist/client/_app/immutable/nodes/11.L_9ZmasQ.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/2.CGT67RwO.js +1 -0
- package/dist/client/_app/immutable/nodes/2.CGT67RwO.js.br +0 -0
- package/dist/client/_app/immutable/nodes/2.CGT67RwO.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/3.Cfkl9yLY.js +6 -0
- package/dist/client/_app/immutable/nodes/3.Cfkl9yLY.js.br +0 -0
- package/dist/client/_app/immutable/nodes/3.Cfkl9yLY.js.gz +0 -0
- package/dist/client/_app/version.json +1 -1
- package/dist/client/_app/version.json.br +0 -0
- package/dist/client/_app/version.json.gz +0 -0
- package/dist/server/chunks/{0-B3EMf1vM.js → 0-Bcww7pkn.js} +6 -6
- package/dist/server/chunks/{0-B3EMf1vM.js.map → 0-Bcww7pkn.js.map} +1 -1
- package/dist/server/chunks/{1-CTv0GZBK.js → 1-BIiCLN21.js} +6 -6
- package/dist/server/chunks/{1-CTv0GZBK.js.map → 1-BIiCLN21.js.map} +1 -1
- package/dist/server/chunks/{9-DPn3d8kr.js → 10-_cwipoJm.js} +5 -5
- package/dist/server/chunks/10-_cwipoJm.js.map +1 -0
- package/dist/server/chunks/11-C0olQKl9.js +22 -0
- package/dist/server/chunks/11-C0olQKl9.js.map +1 -0
- package/dist/server/chunks/{2-Dvto9WRP.js → 2-BvUnZSQz.js} +10 -10
- package/dist/server/chunks/{2-Dvto9WRP.js.map → 2-BvUnZSQz.js.map} +1 -1
- package/dist/server/chunks/{3-CGg-W5r9.js → 3-DdpBg6Re.js} +10 -10
- package/dist/server/chunks/{3-CGg-W5r9.js.map → 3-DdpBg6Re.js.map} +1 -1
- package/dist/server/chunks/{4-BYQgShv3.js → 4-B2tSZCU9.js} +3 -3
- package/dist/server/chunks/{4-BYQgShv3.js.map → 4-B2tSZCU9.js.map} +1 -1
- package/dist/server/chunks/{5-B4IXyXqv.js → 5-D3-J9iUP.js} +3 -3
- package/dist/server/chunks/{5-B4IXyXqv.js.map → 5-D3-J9iUP.js.map} +1 -1
- package/dist/server/chunks/{6-DH_IMDRv.js → 6-DDoqG8iB.js} +3 -3
- package/dist/server/chunks/{6-DH_IMDRv.js.map → 6-DDoqG8iB.js.map} +1 -1
- package/dist/server/chunks/7-CjZUt-gt.js +18 -0
- package/dist/server/chunks/7-CjZUt-gt.js.map +1 -0
- package/dist/server/chunks/8-ZgtdnItY.js +91 -0
- package/dist/server/chunks/8-ZgtdnItY.js.map +1 -0
- package/dist/server/chunks/{8-CRTa48Fz.js → 9-6rlPfdHX.js} +5 -5
- package/dist/server/chunks/{8-CRTa48Fz.js.map → 9-6rlPfdHX.js.map} +1 -1
- package/dist/server/chunks/{_layout.svelte-uX7XiB9K.js → _layout.svelte-By6MJeec.js} +5 -5
- package/dist/server/chunks/_layout.svelte-By6MJeec.js.map +1 -0
- package/dist/server/chunks/{_page.svelte-DDyc2obG.js → _page.svelte-B7V_s1iG.js} +7 -7
- package/dist/server/chunks/{_page.svelte-DDyc2obG.js.map → _page.svelte-B7V_s1iG.js.map} +1 -1
- package/dist/server/chunks/{_page.svelte-BP2tLMJU.js → _page.svelte-BHLa7YUI.js} +6 -6
- package/dist/server/chunks/_page.svelte-BHLa7YUI.js.map +1 -0
- package/dist/server/chunks/{_page.svelte-CJwOZYBT.js → _page.svelte-Chqj_iRU.js} +269 -105
- package/dist/server/chunks/_page.svelte-Chqj_iRU.js.map +1 -0
- package/dist/server/chunks/{_server.ts-a-I4s4R9.js → _server.ts-BwyH-SDr.js} +2 -2
- package/dist/server/chunks/{_server.ts-a-I4s4R9.js.map → _server.ts-BwyH-SDr.js.map} +1 -1
- package/dist/server/chunks/{_server.ts-DlC2sxcm.js → _server.ts-DJwl8--i.js} +15 -3
- package/dist/server/chunks/_server.ts-DJwl8--i.js.map +1 -0
- package/dist/server/chunks/_server.ts-kFT5a-9I.js +13 -0
- package/dist/server/chunks/_server.ts-kFT5a-9I.js.map +1 -0
- package/dist/server/chunks/app-DUeJj5RD.js.map +1 -1
- package/dist/server/chunks/{client-BuQN5Wt-.js → client-Dse9iwN0.js} +4 -4
- package/dist/server/chunks/client-Dse9iwN0.js.map +1 -0
- package/dist/server/chunks/{error-D6RCgJwO.js → error-DXhNNMk1.js} +271 -152
- package/dist/server/chunks/error-DXhNNMk1.js.map +1 -0
- package/dist/server/chunks/{error.svelte-BOeVE8bj.js → error.svelte-DIiTgKhP.js} +3 -3
- package/dist/server/chunks/error.svelte-DIiTgKhP.js.map +1 -0
- package/dist/server/chunks/{exports-CWOtdr_a.js → exports-D0uQzbjy.js} +4 -4
- package/dist/server/chunks/{exports-CWOtdr_a.js.map → exports-D0uQzbjy.js.map} +1 -1
- package/dist/server/chunks/{hooks.server-D89vZOIS.js → hooks.server-Bksu95DH.js} +6 -6
- package/dist/server/chunks/hooks.server-Bksu95DH.js.map +1 -0
- package/dist/server/chunks/{hooks.universal-DhGFdBkK.js → hooks.universal-bt2XJEN9.js} +2 -2
- package/dist/server/chunks/{hooks.universal-DhGFdBkK.js.map → hooks.universal-bt2XJEN9.js.map} +1 -1
- package/dist/server/chunks/{events-Bhh2w-5S.js → index-server-BthNUqCR.js} +1006 -1005
- package/dist/server/chunks/index-server-BthNUqCR.js.map +1 -0
- package/dist/server/chunks/{internal-DsA4iYdx.js → internal-vr3mPczx.js} +2 -2
- package/dist/server/chunks/{internal-DsA4iYdx.js.map → internal-vr3mPczx.js.map} +1 -1
- package/dist/server/chunks/{internal2-BEwefI5h.js → internal2-yWeEySiO.js} +22 -15
- package/dist/server/chunks/internal2-yWeEySiO.js.map +1 -0
- package/dist/server/chunks/{loader-circle-CFNm9vip.js → loader-circle-C4T0os4K.js} +5 -5
- package/dist/server/chunks/loader-circle-C4T0os4K.js.map +1 -0
- package/dist/server/chunks/{logo-BKCw1zwb.js → logo-C6QUIUff.js} +4 -4
- package/dist/server/chunks/logo-C6QUIUff.js.map +1 -0
- package/dist/server/chunks/{project-loader-XjKlOuo0.js → project-loader-C-zkX4VK.js} +4 -4
- package/dist/server/chunks/project-loader-C-zkX4VK.js.map +1 -0
- package/dist/server/chunks/{request-handler-guINVc1G.js → request-handler-DTxrh7_f.js} +184 -115
- package/dist/server/chunks/request-handler-DTxrh7_f.js.map +1 -0
- package/dist/server/chunks/{runtime-CDHWD9vo.js → runtime-26c7QsEi.js} +9 -9
- package/dist/server/chunks/runtime-26c7QsEi.js.map +1 -0
- package/dist/server/chunks/{schemas-gfyGqv7Z.js → schemas-D4Qq7Kpe.js} +348 -303
- package/dist/server/chunks/schemas-D4Qq7Kpe.js.map +1 -0
- package/dist/server/chunks/{session-DLCjVGKo.js → session-By0bbFhg.js} +2 -2
- package/dist/server/chunks/{session-DLCjVGKo.js.map → session-By0bbFhg.js.map} +1 -1
- package/dist/server/chunks/shared-server-Cha0Qlv9.js.map +1 -1
- package/dist/server/chunks/{state-BNiB0oph.js → state-dxymBwXR.js} +3 -3
- package/dist/server/chunks/state-dxymBwXR.js.map +1 -0
- package/dist/server/index.js +368 -353
- package/dist/server/index.js.map +1 -1
- package/dist/server/manifest.js +48 -24
- package/dist/server/manifest.js.map +1 -1
- package/package.json +18 -16
- package/dist/client/_app/immutable/assets/0.Jb4fu3YW.css +0 -1
- package/dist/client/_app/immutable/assets/0.Jb4fu3YW.css.br +0 -0
- package/dist/client/_app/immutable/assets/0.Jb4fu3YW.css.gz +0 -0
- package/dist/client/_app/immutable/chunks/B4w9-fYM2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/B4w9-fYM2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BG-gp5_B.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BG-gp5_B.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BS47D1Yd2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BS47D1Yd2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BWDRzheF2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BWDRzheF2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BZqFHUa32.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BZqFHUa32.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/Bk9DeFcz2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/Bk9DeFcz2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BlGyHMDZ.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BlGyHMDZ.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BpGMGp28.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BpGMGp28.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BwWAgYKi2.js.br +0 -3
- package/dist/client/_app/immutable/chunks/BwWAgYKi2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BzGBrbo22.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BzGBrbo22.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/C7bUlFLk2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/C7bUlFLk2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/C83DJP9w2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/C83DJP9w2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CCCR_2rp.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CCCR_2rp.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CKei9xPI2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CKei9xPI2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CnhOha0Z2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CnhOha0Z2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DFXoGGM32.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DFXoGGM32.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DH-ThjiG2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DH-ThjiG2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DHQLzCjY2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DHQLzCjY2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DN_0fFRn.js +0 -6
- package/dist/client/_app/immutable/chunks/DN_0fFRn.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DN_0fFRn.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DT8Ddh1L2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DT8Ddh1L2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DuDzfUqN2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DuDzfUqN2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/Fu4roQAh.js.br +0 -0
- package/dist/client/_app/immutable/chunks/Fu4roQAh.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/L3zfqVc3.js +0 -1
- package/dist/client/_app/immutable/chunks/L3zfqVc3.js.br +0 -0
- package/dist/client/_app/immutable/chunks/L3zfqVc3.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/ZLGReh43.js +0 -3
- package/dist/client/_app/immutable/chunks/ZLGReh43.js.br +0 -0
- package/dist/client/_app/immutable/chunks/ZLGReh43.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/mRVEsFly2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/mRVEsFly2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/orCHVlgT.js.br +0 -0
- package/dist/client/_app/immutable/chunks/orCHVlgT.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/uo5fvlDn2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/uo5fvlDn2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/xhfENL-e.js.br +0 -0
- package/dist/client/_app/immutable/chunks/xhfENL-e.js.gz +0 -0
- package/dist/client/_app/immutable/entry/app.CyMVjflN.js.br +0 -0
- package/dist/client/_app/immutable/entry/app.CyMVjflN.js.gz +0 -0
- package/dist/client/_app/immutable/entry/start.styUYAaP.js +0 -1
- package/dist/client/_app/immutable/entry/start.styUYAaP.js.br +0 -0
- package/dist/client/_app/immutable/entry/start.styUYAaP.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/0.DvEZu2JO.js.br +0 -0
- package/dist/client/_app/immutable/nodes/0.DvEZu2JO.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/1.BoI80J69.js.br +0 -4
- package/dist/client/_app/immutable/nodes/1.BoI80J69.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/10.BvZJgse0.js.br +0 -0
- package/dist/client/_app/immutable/nodes/10.BvZJgse0.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/2.ChCDCV0k.js +0 -1
- package/dist/client/_app/immutable/nodes/2.ChCDCV0k.js.br +0 -0
- package/dist/client/_app/immutable/nodes/2.ChCDCV0k.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/3.BhOG1SDn.js +0 -6
- package/dist/client/_app/immutable/nodes/3.BhOG1SDn.js.br +0 -0
- package/dist/client/_app/immutable/nodes/3.BhOG1SDn.js.gz +0 -0
- package/dist/server/chunks/10-B_z_-eOa.js +0 -22
- package/dist/server/chunks/10-B_z_-eOa.js.map +0 -1
- package/dist/server/chunks/7-CPMeoSUO.js +0 -98
- package/dist/server/chunks/7-CPMeoSUO.js.map +0 -1
- package/dist/server/chunks/9-DPn3d8kr.js.map +0 -1
- package/dist/server/chunks/_layout.svelte-uX7XiB9K.js.map +0 -1
- package/dist/server/chunks/_page.svelte-BP2tLMJU.js.map +0 -1
- package/dist/server/chunks/_page.svelte-CJwOZYBT.js.map +0 -1
- package/dist/server/chunks/_server.ts-DlC2sxcm.js.map +0 -1
- package/dist/server/chunks/client-BuQN5Wt-.js.map +0 -1
- package/dist/server/chunks/error-D6RCgJwO.js.map +0 -1
- package/dist/server/chunks/error.svelte-BOeVE8bj.js.map +0 -1
- package/dist/server/chunks/events-Bhh2w-5S.js.map +0 -1
- package/dist/server/chunks/hooks.server-D89vZOIS.js.map +0 -1
- package/dist/server/chunks/internal2-BEwefI5h.js.map +0 -1
- package/dist/server/chunks/loader-circle-CFNm9vip.js.map +0 -1
- package/dist/server/chunks/logo-BKCw1zwb.js.map +0 -1
- package/dist/server/chunks/project-loader-XjKlOuo0.js.map +0 -1
- package/dist/server/chunks/request-handler-guINVc1G.js.map +0 -1
- package/dist/server/chunks/runtime-CDHWD9vo.js.map +0 -1
- package/dist/server/chunks/schemas-gfyGqv7Z.js.map +0 -1
- package/dist/server/chunks/state-BNiB0oph.js.map +0 -1
- /package/dist/client/_app/immutable/chunks/{CVaqCwHa.js → CVaqCwHa2.js} +0 -0
- /package/dist/client/_app/immutable/chunks/{CVaqCwHa.js.br → CVaqCwHa2.js.br} +0 -0
- /package/dist/client/_app/immutable/chunks/{CVaqCwHa.js.gz → CVaqCwHa2.js.gz} +0 -0
- /package/dist/client/_app/immutable/chunks/{De2hgUGE.js → De2hgUGE2.js} +0 -0
- /package/dist/client/_app/immutable/chunks/{De2hgUGE.js.br → De2hgUGE2.js.br} +0 -0
- /package/dist/client/_app/immutable/chunks/{De2hgUGE.js.gz → De2hgUGE2.js.gz} +0 -0
- /package/dist/server/chunks/{chunk-D7D4PA-g.js → rolldown-runtime-D7D4PA-g.js} +0 -0
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { n as fail } from "./exports-
|
|
1
|
+
import { n as fail } from "./exports-D0uQzbjy.js";
|
|
2
2
|
import { t as private_env } from "./shared-server-Cha0Qlv9.js";
|
|
3
3
|
import { t as Exception } from "./const-Dy5RfQqP.js";
|
|
4
4
|
import { n as PUBLIC_MODE, r as formatFrom, t as HttpClient } from "./format-DGOlJxF5.js";
|
|
5
|
-
import { a as getProject, i as getOrCreateSession, l as tryAddProjectSession, o as resolveProject, r as generateKey, s as resolveSession, t as addProjectToSession } from "./session-
|
|
5
|
+
import { a as getProject, i as getOrCreateSession, l as tryAddProjectSession, o as resolveProject, r as generateKey, s as resolveSession, t as addProjectToSession } from "./session-By0bbFhg.js";
|
|
6
6
|
import { plainToInstance } from "class-transformer";
|
|
7
7
|
import { validate } from "class-validator";
|
|
8
|
+
import micromatch from "micromatch";
|
|
8
9
|
import path, { dirname, join, resolve } from "node:path";
|
|
10
|
+
import * as tar from "tar";
|
|
9
11
|
import fs, { existsSync } from "node:fs";
|
|
10
12
|
import { $ } from "bun";
|
|
11
13
|
import { config } from "dotenv";
|
|
@@ -29,6 +31,11 @@ var getContext = async (event) => {
|
|
|
29
31
|
project
|
|
30
32
|
};
|
|
31
33
|
};
|
|
34
|
+
var getUrl = (url, query) => {
|
|
35
|
+
const entries = Object.entries(query ?? {}).filter(([, value]) => value !== void 0);
|
|
36
|
+
if (entries.length === 0) return url;
|
|
37
|
+
return `${url}?${new URLSearchParams(entries).toString()}`;
|
|
38
|
+
};
|
|
32
39
|
var setTokensInCookies = (cookies, { accessToken, refreshToken, tokenExpiresAt }) => {
|
|
33
40
|
cookies.set("accessToken", accessToken, {
|
|
34
41
|
httpOnly: true,
|
|
@@ -121,6 +128,11 @@ var AuthRepository = class extends BaseRepository {
|
|
|
121
128
|
return this.post(`/auth/refresh-token`, input);
|
|
122
129
|
}
|
|
123
130
|
};
|
|
131
|
+
var PackageRepository = class extends BaseRepository {
|
|
132
|
+
getAll(query) {
|
|
133
|
+
return this.get(getUrl(`/packages`, query), { offline: true });
|
|
134
|
+
}
|
|
135
|
+
};
|
|
124
136
|
var ProjectRepository = class extends BaseRepository {
|
|
125
137
|
getProject(id) {
|
|
126
138
|
return this.get(`/editor/projects/${id}`);
|
|
@@ -140,6 +152,7 @@ var getNoAuthApi = () => {
|
|
|
140
152
|
const isOnline = PUBLIC_MODE === "ONLINE";
|
|
141
153
|
return {
|
|
142
154
|
auth: new AuthRepository(client, isOnline),
|
|
155
|
+
packages: new PackageRepository(client, isOnline),
|
|
143
156
|
registry: new RegistryRepository(client, isOnline)
|
|
144
157
|
};
|
|
145
158
|
};
|
|
@@ -151,6 +164,7 @@ var getApi = (cookies) => {
|
|
|
151
164
|
} }).useMiddlewares(useTokenMiddleware(cookies));
|
|
152
165
|
return {
|
|
153
166
|
auth: new AuthRepository(client),
|
|
167
|
+
packages: new PackageRepository(client),
|
|
154
168
|
projects: new ProjectRepository(client),
|
|
155
169
|
registry: new RegistryRepository(client)
|
|
156
170
|
};
|
|
@@ -285,6 +299,9 @@ var Cli = class {
|
|
|
285
299
|
var resolveRootPath = (userPath) => {
|
|
286
300
|
return resolve(resolve(private_env.FS_ROOT ?? ""), userPath);
|
|
287
301
|
};
|
|
302
|
+
var resolveArchiveRootPath = () => {
|
|
303
|
+
return resolve(private_env.ARCHIVE_ROOT ?? "");
|
|
304
|
+
};
|
|
288
305
|
var FileSystemError = class extends Exception {
|
|
289
306
|
constructor(message) {
|
|
290
307
|
super("Bad Request", message, 400);
|
|
@@ -309,15 +326,18 @@ var ProjectDirectory = class {
|
|
|
309
326
|
this.projectPath = projectPath;
|
|
310
327
|
this._checkPathIsInsideProject();
|
|
311
328
|
}
|
|
312
|
-
read(recursive = false) {
|
|
329
|
+
read(recursive = false, createIfNotExist = false) {
|
|
330
|
+
if (createIfNotExist) {
|
|
331
|
+
if (!fs.existsSync(this.path)) this.create();
|
|
332
|
+
}
|
|
313
333
|
this._checkPathExists();
|
|
314
334
|
this._checkPathIsDir();
|
|
315
335
|
this._checkPathIsReadable();
|
|
316
336
|
return this._readDirContent(this.path, recursive);
|
|
317
337
|
}
|
|
318
|
-
create() {
|
|
338
|
+
create(path = this.path) {
|
|
319
339
|
this._checkPathNotExists();
|
|
320
|
-
fs.mkdirSync(
|
|
340
|
+
fs.mkdirSync(path, { recursive: true });
|
|
321
341
|
}
|
|
322
342
|
delete(recursive = false) {
|
|
323
343
|
this._checkPathExists();
|
|
@@ -393,6 +413,64 @@ var ProjectDirectory = class {
|
|
|
393
413
|
return dirContent;
|
|
394
414
|
}
|
|
395
415
|
};
|
|
416
|
+
var archives = /* @__PURE__ */ new Map();
|
|
417
|
+
var ArchiveSystem = class {
|
|
418
|
+
handler;
|
|
419
|
+
context;
|
|
420
|
+
_rootPath;
|
|
421
|
+
_sessionId;
|
|
422
|
+
constructor(handler, context) {
|
|
423
|
+
this.handler = handler;
|
|
424
|
+
this.context = context;
|
|
425
|
+
this._sessionId = context.session.id;
|
|
426
|
+
this._rootPath = resolveArchiveRootPath();
|
|
427
|
+
}
|
|
428
|
+
async create(ignoreFile = ".gitignore") {
|
|
429
|
+
const dir = this.handler.fs.getDirectory("");
|
|
430
|
+
let files = directoryContentToFileEntries(dir.read(true)).map((n) => n.startsWith("/") ? n.slice(1) : n);
|
|
431
|
+
try {
|
|
432
|
+
const ignore = await Bun.file(join(dir.path, ignoreFile)).text();
|
|
433
|
+
files = micromatch.not(files, ignore.split("\n").filter(Boolean), {
|
|
434
|
+
dot: true,
|
|
435
|
+
contains: true
|
|
436
|
+
});
|
|
437
|
+
} catch (e) {
|
|
438
|
+
console.warn(`Could not read ${ignoreFile} file`, e);
|
|
439
|
+
}
|
|
440
|
+
const id = `${this._resolveId()}.tgz`;
|
|
441
|
+
const path = join(this._rootPath, id);
|
|
442
|
+
await tar.c({
|
|
443
|
+
gzip: true,
|
|
444
|
+
file: path,
|
|
445
|
+
cwd: dir.path
|
|
446
|
+
}, files);
|
|
447
|
+
archives.set(id, {
|
|
448
|
+
sessionId: this._sessionId,
|
|
449
|
+
path
|
|
450
|
+
});
|
|
451
|
+
setTimeout(this._delete.bind(this, id), 1e3 * 60 * 15);
|
|
452
|
+
return id;
|
|
453
|
+
}
|
|
454
|
+
async get(id) {
|
|
455
|
+
const archive = archives.get(id);
|
|
456
|
+
if (!archive) throw new Exception("Not Found", "Archive not found", 404);
|
|
457
|
+
if (archive.sessionId !== this._sessionId) throw new Exception("Forbidden", "Archive is not yours", 403);
|
|
458
|
+
return Bun.file(archive.path);
|
|
459
|
+
}
|
|
460
|
+
async _delete(id) {
|
|
461
|
+
const archive = archives.get(id);
|
|
462
|
+
if (!archive) return;
|
|
463
|
+
try {
|
|
464
|
+
await Bun.file(archive.path).delete();
|
|
465
|
+
archives.delete(id);
|
|
466
|
+
} catch (e) {
|
|
467
|
+
console.error("Could not delete archive", e);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
_resolveId() {
|
|
471
|
+
return `${this.context.project.path.split("/").pop() ?? "unknown"}-${(/* @__PURE__ */ new Date()).toISOString()}`;
|
|
472
|
+
}
|
|
473
|
+
};
|
|
396
474
|
var ProjectFile = class {
|
|
397
475
|
_path;
|
|
398
476
|
projectPath;
|
|
@@ -664,8 +742,20 @@ var Loader = class {
|
|
|
664
742
|
var PackageTypeEnum = /* @__PURE__ */ function(PackageTypeEnum) {
|
|
665
743
|
PackageTypeEnum["COMPONENT"] = "component";
|
|
666
744
|
PackageTypeEnum["SYSTEM"] = "system";
|
|
745
|
+
PackageTypeEnum["ASSET"] = "asset";
|
|
667
746
|
return PackageTypeEnum;
|
|
668
747
|
}({});
|
|
748
|
+
var PACKAGES_PATH = {
|
|
749
|
+
[PackageTypeEnum.COMPONENT]: "components",
|
|
750
|
+
[PackageTypeEnum.SYSTEM]: "systems",
|
|
751
|
+
[PackageTypeEnum.ASSET]: "assets"
|
|
752
|
+
};
|
|
753
|
+
PackageTypeEnum.COMPONENT, PackageTypeEnum.SYSTEM, PackageTypeEnum.ASSET;
|
|
754
|
+
var PACKAGES_PATH_FORMATTER = {
|
|
755
|
+
[PackageTypeEnum.COMPONENT]: (n) => formatFrom.all(n).toKebab() + ".component",
|
|
756
|
+
[PackageTypeEnum.SYSTEM]: (n) => formatFrom.all(n).toKebab() + ".system",
|
|
757
|
+
[PackageTypeEnum.ASSET]: (n) => n
|
|
758
|
+
};
|
|
669
759
|
var MANIFEST_TITLES = {
|
|
670
760
|
[PackageTypeEnum.COMPONENT]: "EDITOR_COMPONENT_MANIFEST",
|
|
671
761
|
[PackageTypeEnum.SYSTEM]: "EDITOR_SYSTEM_MANIFEST"
|
|
@@ -723,77 +813,97 @@ var getManifestFromNode = (source) => {
|
|
|
723
813
|
if (!ts.isObjectLiteralExpression(init)) return null;
|
|
724
814
|
return parseElement(init);
|
|
725
815
|
};
|
|
726
|
-
var parseManifest = (
|
|
816
|
+
var parseManifest = (type, source) => {
|
|
727
817
|
const id = getName(source);
|
|
728
|
-
const manifest = getManifestFromNode(findManifestNode(
|
|
818
|
+
const manifest = getManifestFromNode(findManifestNode(MANIFEST_TITLES[type], source));
|
|
729
819
|
if (!id || !manifest) return null;
|
|
730
820
|
return {
|
|
731
821
|
id,
|
|
822
|
+
type,
|
|
732
823
|
...manifest
|
|
733
824
|
};
|
|
734
825
|
};
|
|
735
826
|
var resolveManifest = (type, content) => {
|
|
736
|
-
|
|
737
|
-
return parseManifest(MANIFEST_TITLES[type], source);
|
|
827
|
+
return parseManifest(type, ts.createSourceFile("tmp.ts", content, ts.ScriptTarget.ESNext, true));
|
|
738
828
|
};
|
|
739
|
-
var
|
|
829
|
+
var resolveSave = (type, name, path, manifest) => {
|
|
830
|
+
const base = {
|
|
831
|
+
name,
|
|
832
|
+
path
|
|
833
|
+
};
|
|
834
|
+
if (type === PackageTypeEnum.SYSTEM) return base;
|
|
835
|
+
return {
|
|
836
|
+
...base,
|
|
837
|
+
paramsNames: manifest.params.map(({ name }) => name)
|
|
838
|
+
};
|
|
839
|
+
};
|
|
840
|
+
var ManifestHandler = class {
|
|
740
841
|
handler;
|
|
741
842
|
constructor(handler) {
|
|
742
843
|
this.handler = handler;
|
|
743
844
|
}
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
if (rc.type !== "component") throw new Error(`Can only add component: ${name} is a ${rc.type}`);
|
|
747
|
-
this.handler._cli.install([name], { server: this.handler._part === "server" || void 0 });
|
|
748
|
-
return this._getNewComponentPackage(rc.name, rc._file);
|
|
845
|
+
resolveFromName(type, rawName) {
|
|
846
|
+
return this.resolveFromFilename(type, PACKAGES_PATH_FORMATTER[type](rawName));
|
|
749
847
|
}
|
|
750
|
-
|
|
751
|
-
const
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
848
|
+
resolveFromFilename(type, filename) {
|
|
849
|
+
const path = join(PACKAGES_PATH[type], filename);
|
|
850
|
+
return this.resolveFromPath(type, path);
|
|
851
|
+
}
|
|
852
|
+
resolveFromPath(type, path) {
|
|
853
|
+
const manifest = this._resolveManifest(type, path);
|
|
854
|
+
return {
|
|
855
|
+
manifest,
|
|
856
|
+
save: resolveSave(type, manifest.id, path, manifest)
|
|
857
|
+
};
|
|
858
|
+
}
|
|
859
|
+
_resolveManifest(type, path) {
|
|
860
|
+
return this._findPackageManifest((p) => this._getPackageManifest(type, p), path);
|
|
861
|
+
}
|
|
862
|
+
_getPackageManifest(type, path) {
|
|
863
|
+
return resolveManifest(type, this.handler._rootFs.getFile(this._resolvePartPath(path)).read());
|
|
864
|
+
}
|
|
865
|
+
_findPackageManifest(manifestGetter, path) {
|
|
866
|
+
const manifest = [
|
|
867
|
+
"",
|
|
868
|
+
".ts",
|
|
869
|
+
".js"
|
|
870
|
+
].reduce((result, p) => {
|
|
871
|
+
if (result) return result;
|
|
872
|
+
try {
|
|
873
|
+
return manifestGetter(path + p);
|
|
874
|
+
} catch (e) {
|
|
875
|
+
if (!(e instanceof FileSystemError)) throw e;
|
|
876
|
+
}
|
|
877
|
+
}, void 0);
|
|
878
|
+
if (!manifest) throw new FileSystemError("Can't find package manifest");
|
|
879
|
+
return manifest;
|
|
880
|
+
}
|
|
881
|
+
_resolvePartPath(path) {
|
|
882
|
+
return join(this.handler._part, path);
|
|
883
|
+
}
|
|
884
|
+
};
|
|
885
|
+
var PackageHandler = class {
|
|
886
|
+
handler;
|
|
887
|
+
manifestHandler;
|
|
888
|
+
constructor(handler) {
|
|
889
|
+
this.handler = handler;
|
|
890
|
+
this.manifestHandler = new ManifestHandler(handler);
|
|
891
|
+
}
|
|
892
|
+
async installPackages(names) {
|
|
893
|
+
if (names.length === 0) return [];
|
|
894
|
+
this.handler._cli.install(names, { server: this.handler._part === "server" || void 0 });
|
|
895
|
+
return Promise.all(names.map(async (name) => {
|
|
896
|
+
const r = await this.handler._api.registry.getPackage(name);
|
|
897
|
+
return this._resolvesPackage(r.type, r._file);
|
|
898
|
+
}));
|
|
755
899
|
}
|
|
756
|
-
/**
|
|
757
|
-
* Create a new component in the project
|
|
758
|
-
* @beta function to be reworked
|
|
759
|
-
*
|
|
760
|
-
* @param {string} name - Name of the component
|
|
761
|
-
*/
|
|
762
900
|
createComponent(name) {
|
|
763
901
|
this._createPackage(PackageTypeEnum.COMPONENT, name);
|
|
764
|
-
return this.
|
|
902
|
+
return this.manifestHandler.resolveFromName(PackageTypeEnum.COMPONENT, name);
|
|
765
903
|
}
|
|
766
|
-
/**
|
|
767
|
-
* Create a new system in the project and update the save file
|
|
768
|
-
* @beta function to be reworked
|
|
769
|
-
*
|
|
770
|
-
* @param {string} name - Name of the system
|
|
771
|
-
*/
|
|
772
904
|
createSystem(name) {
|
|
773
905
|
this._createPackage(PackageTypeEnum.SYSTEM, name);
|
|
774
|
-
return this.
|
|
775
|
-
}
|
|
776
|
-
/**
|
|
777
|
-
* Get the manifest of the component
|
|
778
|
-
* @beta function to be reworked
|
|
779
|
-
*
|
|
780
|
-
* @param {string} path - Path from `/<client|server>`
|
|
781
|
-
*
|
|
782
|
-
* @returns Manifest of the component
|
|
783
|
-
*/
|
|
784
|
-
getComponentManifest(path) {
|
|
785
|
-
return this._getPackageManifest(PackageTypeEnum.COMPONENT, path);
|
|
786
|
-
}
|
|
787
|
-
/**
|
|
788
|
-
* Get the manifest of the system
|
|
789
|
-
* @beta function to be reworked
|
|
790
|
-
*
|
|
791
|
-
* @param {string} path - Path from `/<client|server>`
|
|
792
|
-
*
|
|
793
|
-
* @returns Manifest of the system
|
|
794
|
-
*/
|
|
795
|
-
getSystemManifest(path) {
|
|
796
|
-
return this._getPackageManifest(PackageTypeEnum.SYSTEM, path);
|
|
906
|
+
return this.manifestHandler.resolveFromName(PackageTypeEnum.SYSTEM, name);
|
|
797
907
|
}
|
|
798
908
|
async getComponents() {
|
|
799
909
|
return this._resolvesPackages(PackageTypeEnum.COMPONENT);
|
|
@@ -801,22 +911,18 @@ var PackageHandler = class {
|
|
|
801
911
|
async getSystems() {
|
|
802
912
|
return this._resolvesPackages(PackageTypeEnum.SYSTEM);
|
|
803
913
|
}
|
|
914
|
+
async getAssets() {
|
|
915
|
+
return this._resolvesPackages(PackageTypeEnum.ASSET);
|
|
916
|
+
}
|
|
804
917
|
_resolvesPackages(type) {
|
|
805
|
-
const basePath = type
|
|
806
|
-
const content = this.handler.fs.getDirectory(basePath).read(true);
|
|
807
|
-
return this._resolvesPackageFilesPathFromContent(content).map((path) => this._resolvesPackage(type,
|
|
918
|
+
const basePath = PACKAGES_PATH[type];
|
|
919
|
+
const content = this.handler.fs.getDirectory(basePath).read(true, true);
|
|
920
|
+
return this._resolvesPackageFilesPathFromContent(content).map((path) => this._resolvesPackage(type, path, basePath));
|
|
808
921
|
}
|
|
809
|
-
_resolvesPackage(type,
|
|
810
|
-
const
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
save: {
|
|
814
|
-
name: manifest.id,
|
|
815
|
-
path
|
|
816
|
-
}
|
|
817
|
-
};
|
|
818
|
-
if (type === PackageTypeEnum.COMPONENT) res.save.params = manifest.params.map(({ name }) => name);
|
|
819
|
-
return res;
|
|
922
|
+
_resolvesPackage(type, filename, basePath = PACKAGES_PATH[type]) {
|
|
923
|
+
const path = join(basePath, filename);
|
|
924
|
+
if (type === PackageTypeEnum.ASSET) return { path };
|
|
925
|
+
return this.manifestHandler.resolveFromPath(type, path);
|
|
820
926
|
}
|
|
821
927
|
_resolvesPackageFilesPathFromContent(content, path = "") {
|
|
822
928
|
const files = content.files.map((file) => join(path, file));
|
|
@@ -826,56 +932,12 @@ var PackageHandler = class {
|
|
|
826
932
|
});
|
|
827
933
|
return [...files, ...directories.flat()];
|
|
828
934
|
}
|
|
829
|
-
_getNewComponentPackage(name, fileName) {
|
|
830
|
-
const path = `./components/${fileName}`;
|
|
831
|
-
const manifest = this._findPackageManifest((p) => this.getComponentManifest(p), path);
|
|
832
|
-
return {
|
|
833
|
-
manifest,
|
|
834
|
-
save: {
|
|
835
|
-
name,
|
|
836
|
-
path,
|
|
837
|
-
paramsNames: manifest.params.map(({ name }) => name)
|
|
838
|
-
}
|
|
839
|
-
};
|
|
840
|
-
}
|
|
841
|
-
_getNewSystemPackage(name, fileName) {
|
|
842
|
-
const path = `./systems/${fileName}`;
|
|
843
|
-
return {
|
|
844
|
-
manifest: this._findPackageManifest((p) => this.getSystemManifest(p), path),
|
|
845
|
-
save: {
|
|
846
|
-
name,
|
|
847
|
-
path
|
|
848
|
-
}
|
|
849
|
-
};
|
|
850
|
-
}
|
|
851
|
-
_findPackageManifest(manifestGetter, path) {
|
|
852
|
-
const manifest = [
|
|
853
|
-
"",
|
|
854
|
-
".ts",
|
|
855
|
-
".js"
|
|
856
|
-
].reduce((result, p) => {
|
|
857
|
-
if (result) return result;
|
|
858
|
-
try {
|
|
859
|
-
return manifestGetter(path + p);
|
|
860
|
-
} catch (e) {
|
|
861
|
-
if (!(e instanceof FileSystemError)) throw e;
|
|
862
|
-
}
|
|
863
|
-
}, void 0);
|
|
864
|
-
if (!manifest) throw new FileSystemError("Can't find package manifest");
|
|
865
|
-
return manifest;
|
|
866
|
-
}
|
|
867
935
|
_createPackage(type, name) {
|
|
868
936
|
this.handler._cli.create(type, {
|
|
869
937
|
name,
|
|
870
938
|
server: this.handler._part === "server" || void 0
|
|
871
939
|
});
|
|
872
940
|
}
|
|
873
|
-
_getPackageManifest(type, path) {
|
|
874
|
-
return resolveManifest(type, this.handler._rootFs.getFile(this._resolvePartPath(path)).read());
|
|
875
|
-
}
|
|
876
|
-
_resolvePartPath(path) {
|
|
877
|
-
return join(this.handler._part, path);
|
|
878
|
-
}
|
|
879
941
|
};
|
|
880
942
|
var SaveHandler = class {
|
|
881
943
|
handler;
|
|
@@ -974,6 +1036,7 @@ var Handler = class {
|
|
|
974
1036
|
_fsCache;
|
|
975
1037
|
_gitCache;
|
|
976
1038
|
_projectCache;
|
|
1039
|
+
_archiveCache;
|
|
977
1040
|
constructor(context, event, body) {
|
|
978
1041
|
this._context = context;
|
|
979
1042
|
this._event = event;
|
|
@@ -988,6 +1051,7 @@ var Handler = class {
|
|
|
988
1051
|
this._cliCache = void 0;
|
|
989
1052
|
this._fsCache = void 0;
|
|
990
1053
|
this._gitCache = void 0;
|
|
1054
|
+
this._archiveCache = void 0;
|
|
991
1055
|
}
|
|
992
1056
|
get event() {
|
|
993
1057
|
return this._event;
|
|
@@ -1015,6 +1079,10 @@ var Handler = class {
|
|
|
1015
1079
|
if (!this._projectCache) this._projectCache = new ProjectManager(this, this._context);
|
|
1016
1080
|
return this._projectCache;
|
|
1017
1081
|
}
|
|
1082
|
+
get archive() {
|
|
1083
|
+
if (!this._archiveCache) this._archiveCache = new ArchiveSystem(this, this._context);
|
|
1084
|
+
return this._archiveCache;
|
|
1085
|
+
}
|
|
1018
1086
|
};
|
|
1019
1087
|
var DEFAULT_OPTIONS = {
|
|
1020
1088
|
onlineOnly: false,
|
|
@@ -1067,6 +1135,7 @@ var handleError = (e) => {
|
|
|
1067
1135
|
error: e.error,
|
|
1068
1136
|
message: e.message
|
|
1069
1137
|
}, { status: e.status });
|
|
1138
|
+
console.error(e);
|
|
1070
1139
|
return Response.json({
|
|
1071
1140
|
error: "Internal Server Error",
|
|
1072
1141
|
message: e
|
|
@@ -1086,4 +1155,4 @@ var useRequestHandler = (callback, options) => {
|
|
|
1086
1155
|
//#endregion
|
|
1087
1156
|
export { useRequestHandler as i, loadProjectFromId as n, useActionHandler as r, loadProject as t };
|
|
1088
1157
|
|
|
1089
|
-
//# sourceMappingURL=request-handler-
|
|
1158
|
+
//# sourceMappingURL=request-handler-DTxrh7_f.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-handler-DTxrh7_f.js","names":[],"sources":["../../../.svelte-kit/adapter-bun/chunks/request-handler.js"],"sourcesContent":["import { t as private_env } from \"./shared-server.js\";\nimport { n as Exception } from \"./const.js\";\nimport { a as PUBLIC_MODE, n as HttpClient, t as formatFrom } from \"./format.js\";\nimport { c as resolveSession, l as generateKey, n as resolveProject, o as addProjectToSession, r as tryAddProjectSession, s as getOrCreateSession, t as getProject } from \"./session.js\";\nimport { fail } from \"@sveltejs/kit\";\nimport { plainToInstance } from \"class-transformer\";\nimport { validate } from \"class-validator\";\nimport micromatch from \"micromatch\";\nimport path, { dirname, join, resolve } from \"node:path\";\nimport * as tar from \"tar\";\nimport fs, { existsSync } from \"node:fs\";\nimport { $ } from \"bun\";\nimport { config } from \"dotenv\";\nimport ts from \"typescript\";\n//#region src/lib/server/utils/request-handler/body.ts\nvar parseFormDataBody = (rawBody, c) => {\n\treturn parseBody(Object.fromEntries(Array.from(rawBody.entries()).map(([key, value]) => [key, JSON.parse(value)])), c);\n};\nvar parseBody = async (baseBody, c) => {\n\tif (!c) return baseBody;\n\tconst errors = await validate(plainToInstance(c, baseBody, { excludeExtraneousValues: true }));\n\tif (errors.length > 0) throw new Exception(\"Bad Request\", `Invalid body :\\n${errors.toString().replace(/,/g, \"\\n\")}`, 400);\n\treturn baseBody;\n};\n//#endregion\n//#region src/lib/server/utils/request-handler/context.ts\nvar getContext = async (event) => {\n\tconst session = await resolveSession(event.locals.session);\n\tconst project = resolveProject(event.request.headers, session);\n\treturn {\n\t\tonline: PUBLIC_MODE === \"ONLINE\",\n\t\tsession,\n\t\tproject\n\t};\n};\n//#endregion\n//#region src/lib/utils/http/query.ts\nvar getUrl = (url, query) => {\n\tconst entries = Object.entries(query ?? {}).filter(([, value]) => value !== void 0);\n\tif (entries.length === 0) return url;\n\treturn `${url}?${new URLSearchParams(entries).toString()}`;\n};\n//#endregion\n//#region src/lib/server/utils/cookies/index.ts\nvar setTokensInCookies = (cookies, { accessToken, refreshToken, tokenExpiresAt }) => {\n\tcookies.set(\"accessToken\", accessToken, {\n\t\thttpOnly: true,\n\t\tsecure: private_env.NODE_ENV === \"production\",\n\t\tsameSite: \"lax\",\n\t\tpath: \"/\",\n\t\texpires: new Date(tokenExpiresAt)\n\t});\n\tcookies.set(\"refreshToken\", refreshToken, {\n\t\thttpOnly: true,\n\t\tsecure: private_env.NODE_ENV === \"production\",\n\t\tsameSite: \"lax\",\n\t\tpath: \"/\",\n\t\tmaxAge: 3600 * 24 * 30\n\t});\n};\n//#endregion\n//#region src/lib/server/api/middlewares/refresh-token.middleware.ts\nvar refreshToken = async (cookies, force = false) => {\n\tlet accessToken = force ? void 0 : cookies.get(\"accessToken\");\n\tconst refreshToken = cookies.get(\"refreshToken\");\n\tif (!accessToken) {\n\t\tif (!refreshToken) throw new Exception(\"Unauthorized\", \"No token found\", 401);\n\t\ttry {\n\t\t\tconst tokens = await getNoAuthApi().auth.refreshToken({ refreshToken });\n\t\t\tsetTokensInCookies(cookies, tokens);\n\t\t\taccessToken = tokens.accessToken;\n\t\t} catch {\n\t\t\tthrow new Exception(\"Unauthorized\", \"Invalid refresh token\", 401);\n\t\t}\n\t}\n\treturn accessToken;\n};\nvar getRequestParams = (params, token) => ({\n\t...params,\n\toptions: {\n\t\t...params.options,\n\t\theaders: {\n\t\t\t...params.options.headers,\n\t\t\tAuthorization: `Bearer ${token}`\n\t\t}\n\t}\n});\nvar useTokenMiddleware = (cookies) => {\n\treturn async (params, next) => {\n\t\tconst res = await next(getRequestParams(params, cookies.get(\"accessToken\") ?? await refreshToken(cookies)));\n\t\tif (res.status === 401) return await next(getRequestParams(params, await refreshToken(cookies, true)));\n\t\treturn res;\n\t};\n};\n//#endregion\n//#region src/lib/server/api/base.repository.ts\nvar BaseRepository = class {\n\t_client;\n\t_online;\n\tconstructor(client, online = true) {\n\t\tthis._client = client;\n\t\tthis._online = online;\n\t}\n\tget(path, options) {\n\t\treturn this.runRequest(\"get\", path, options);\n\t}\n\tpost(path, body, options) {\n\t\treturn this.runRequestBody(\"post\", path, body, options);\n\t}\n\tput(path, body, options) {\n\t\treturn this.runRequestBody(\"put\", path, body, options);\n\t}\n\tpatch(path, body, options) {\n\t\treturn this.runRequestBody(\"patch\", path, body, options);\n\t}\n\tdelete(path, options) {\n\t\treturn this.runRequest(\"delete\", path, options);\n\t}\n\tassertOnline() {\n\t\tif (!this._online) throw new Error(\"This route is only available in online mode\");\n\t}\n\tasync runRequest(request, path, options) {\n\t\tif (!options?.offline) this.assertOnline();\n\t\tconst res = await this._client[request](path, options);\n\t\tif (!res.ok) throw new Error(`Request failed with status code ${res.status}`, { cause: await res.json() });\n\t\treturn await res.json();\n\t}\n\tasync runRequestBody(request, path, body, options) {\n\t\tif (!options?.offline) this.assertOnline();\n\t\tconst res = await this._client[request](path, body === void 0 ? void 0 : JSON.stringify(body), options);\n\t\tconst data = await res.json();\n\t\tif (!res.ok) throw new Error(`Request failed with status code ${res.status}`, { cause: data });\n\t\treturn data;\n\t}\n};\n//#endregion\n//#region src/lib/server/api/repositories/auth.repository.ts\nvar AuthRepository = class extends BaseRepository {\n\trefreshToken(input) {\n\t\treturn this.post(`/auth/refresh-token`, input);\n\t}\n};\n//#endregion\n//#region src/lib/server/api/repositories/package.repository.ts\nvar PackageRepository = class extends BaseRepository {\n\tgetAll(query) {\n\t\treturn this.get(getUrl(`/packages`, query), { offline: true });\n\t}\n};\n//#endregion\n//#region src/lib/server/api/repositories/projects.repository.ts\nvar ProjectRepository = class extends BaseRepository {\n\tgetProject(id) {\n\t\treturn this.get(`/editor/projects/${id}`);\n\t}\n\tgetProjects() {\n\t\treturn this.get(`/projects`);\n\t}\n};\n//#endregion\n//#region src/lib/server/api/repositories/registry.repository.ts\nvar RegistryRepository = class extends BaseRepository {\n\tgetPackage(packageName) {\n\t\treturn this.get(`/registry/${packageName}`, { offline: true });\n\t}\n};\n//#endregion\n//#region src/lib/server/api/client.ts\nvar DEFAULT_API_URL = \"https://api.nanoforge.eu\";\nvar getNoAuthApi = () => {\n\tconst client = new HttpClient(private_env.API_URL ?? DEFAULT_API_URL, { headers: { \"Content-Type\": \"application/json\" } });\n\tconst isOnline = PUBLIC_MODE === \"ONLINE\";\n\treturn {\n\t\tauth: new AuthRepository(client, isOnline),\n\t\tpackages: new PackageRepository(client, isOnline),\n\t\tregistry: new RegistryRepository(client, isOnline)\n\t};\n};\nvar getApi = (cookies) => {\n\tif (!private_env.API_KEY) throw new Error(\"API_KEY is not defined\");\n\tconst client = new HttpClient(private_env.API_URL ?? DEFAULT_API_URL, { headers: {\n\t\t\"Content-Type\": \"application/json\",\n\t\t\"Api-Key\": private_env.API_KEY\n\t} }).useMiddlewares(useTokenMiddleware(cookies));\n\treturn {\n\t\tauth: new AuthRepository(client),\n\t\tpackages: new PackageRepository(client),\n\t\tprojects: new ProjectRepository(client),\n\t\tregistry: new RegistryRepository(client)\n\t};\n};\n//#endregion\n//#region src/lib/server/cli/cli-defaults.ts\nvar CLI_NEW_DEFAULTS = {\n\tpackageManager: \"npm\",\n\tlanguage: \"ts\",\n\tstrict: false,\n\tserver: false,\n\tskipInstall: false,\n\tdocker: false,\n\tgit: false,\n\tgitRemote: false\n};\nvar CLI_INSTALL_DEFAULTS = {};\nvar CLI_BUILD_DEFAULTS = {};\nvar CLI_START_DEFAULTS = {};\nvar CLI_DEV_DEFAULTS = {};\nvar CLI_GENERATE_DEFAULTS = {};\nvar CLI_CREATE_DEFAULTS = {};\n//#endregion\n//#region src/lib/server/cli/cli-error.ts\nvar CliError = class extends Exception {\n\tconstructor(message) {\n\t\tsuper(\"Internal Server Error\", message, 500);\n\t}\n};\n//#endregion\n//#region src/lib/server/cli/cli.ts\nvar Cli = class {\n\t_projectPath;\n\tconstructor(context) {\n\t\tthis._projectPath = context.project?.path;\n\t}\n\tnew(opts, runOpts) {\n\t\treturn this.runCommand(\"new\", [], { ...opts }, CLI_NEW_DEFAULTS, runOpts);\n\t}\n\tinstall(pkgs, opts, runOpts) {\n\t\tthis.assertProject();\n\t\treturn this.runCommand(\"install\", pkgs, {\n\t\t\t...opts,\n\t\t\tdirectory: this._projectPath\n\t\t}, CLI_INSTALL_DEFAULTS, runOpts);\n\t}\n\tbuild(opts, runOpts) {\n\t\tthis.assertProject();\n\t\treturn this.runCommand(\"build\", [], {\n\t\t\t...opts,\n\t\t\tdirectory: this._projectPath\n\t\t}, CLI_BUILD_DEFAULTS, runOpts);\n\t}\n\tstart(opts, runOpts) {\n\t\tthis.assertProject();\n\t\treturn this.runCommand(\"start\", [], {\n\t\t\t...opts,\n\t\t\tdirectory: this._projectPath\n\t\t}, CLI_START_DEFAULTS, runOpts);\n\t}\n\tdev(opts, runOpts) {\n\t\tthis.assertProject();\n\t\treturn this.runCommand(\"dev\", [], {\n\t\t\t...opts,\n\t\t\tdirectory: this._projectPath\n\t\t}, CLI_DEV_DEFAULTS, runOpts);\n\t}\n\tgenerate(opts, runOpts) {\n\t\tthis.assertProject();\n\t\treturn this.runCommand(\"generate\", [], {\n\t\t\t...opts,\n\t\t\tdirectory: this._projectPath\n\t\t}, CLI_GENERATE_DEFAULTS, runOpts);\n\t}\n\tcreate(part, opts, runOpts) {\n\t\tthis.assertProject();\n\t\treturn this.runCommand(\"create\", [part], {\n\t\t\t...opts,\n\t\t\tdirectory: this._projectPath\n\t\t}, CLI_CREATE_DEFAULTS, runOpts);\n\t}\n\trunCommand(command, params, opts, defaultOpts, { async = false } = {}) {\n\t\tconst fullCommand = [\n\t\t\tprivate_env.NF_CLI_PATH ?? \"nf\",\n\t\t\tcommand,\n\t\t\t...params,\n\t\t\t...this.resolveParams(opts, defaultOpts)\n\t\t];\n\t\tif (async) {\n\t\t\tconst res = Bun.spawn(fullCommand, {\n\t\t\t\tstdout: \"pipe\",\n\t\t\t\tstderr: \"pipe\",\n\t\t\t\tcwd: private_env.FS_ROOT ?? void 0\n\t\t\t});\n\t\t\tres.exited.then((exitCode) => {\n\t\t\t\tif (exitCode !== 0) {\n\t\t\t\t\tconsole.log(res.stdout.toString());\n\t\t\t\t\tconsole.error(res.stderr.toString());\n\t\t\t\t\tthrow new CliError(res.stderr.toString());\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst res = Bun.spawnSync(fullCommand, {\n\t\t\t\tstdout: \"pipe\",\n\t\t\t\tstderr: \"pipe\",\n\t\t\t\tcwd: private_env.FS_ROOT ?? void 0\n\t\t\t});\n\t\t\tif (res.exitCode !== 0) {\n\t\t\t\tconsole.log(res.stdout.toString());\n\t\t\t\tconsole.error(res.stderr.toString());\n\t\t\t\tthrow new CliError(res.stderr.toString());\n\t\t\t}\n\t\t}\n\t}\n\tmergeParams(...opts) {\n\t\tconst merged = {};\n\t\tfor (const opt of opts) for (const [key, value] of Object.entries(opt)) {\n\t\t\tif (value === void 0) continue;\n\t\t\tmerged[key] = value;\n\t\t}\n\t\treturn merged;\n\t}\n\tresolveParams(opts, defaultOpts) {\n\t\tconst params = [];\n\t\tfor (const [key, value] of Object.entries(this.mergeParams(defaultOpts, opts))) {\n\t\t\tconst name = formatFrom.camel(key).toKebab();\n\t\t\tif (typeof value === \"boolean\") if (value) params.push(`--${name}`);\n\t\t\telse params.push(`--no-${name}`);\n\t\t\telse params.push(`--${name}`, `${value}`);\n\t\t}\n\t\treturn params;\n\t}\n\tassertProject() {\n\t\tif (!this._projectPath) throw new CliError(\"No project path set\");\n\t\tif (!Bun.file(this._projectPath).exists()) throw new CliError(\"Project does not exist\");\n\t}\n};\n//#endregion\n//#region src/lib/server/file-system/file-system.functions.ts\nvar resolveRootPath = (userPath) => {\n\treturn resolve(resolve(private_env.FS_ROOT ?? \"\"), userPath);\n};\nvar resolveArchiveRootPath = () => {\n\treturn resolve(private_env.ARCHIVE_ROOT ?? \"\");\n};\n//#endregion\n//#region src/lib/server/file-system/file-system-error.ts\nvar FileSystemError = class extends Exception {\n\tconstructor(message) {\n\t\tsuper(\"Bad Request\", message, 400);\n\t}\n};\n//#endregion\n//#region src/lib/server/file-system/project-directory.ts\nfunction directoryContentToFileEntries(directoryContent, basePath = \"\") {\n\tconst entries = [];\n\tdirectoryContent.files.forEach((file) => {\n\t\tentries.push(basePath + \"/\" + file);\n\t});\n\tObject.entries(directoryContent.directories).forEach(([path, dirContent]) => {\n\t\tif (!dirContent) return;\n\t\tentries.push(...directoryContentToFileEntries(dirContent, basePath + \"/\" + path));\n\t});\n\treturn entries;\n}\nvar ProjectDirectory = class {\n\tpath;\n\tprojectPath;\n\tconstructor(dirPath, projectPath) {\n\t\tthis.path = resolve(projectPath, \"./\" + dirPath);\n\t\tthis.projectPath = projectPath;\n\t\tthis._checkPathIsInsideProject();\n\t}\n\tread(recursive = false, createIfNotExist = false) {\n\t\tif (createIfNotExist) {\n\t\t\tif (!fs.existsSync(this.path)) this.create();\n\t\t}\n\t\tthis._checkPathExists();\n\t\tthis._checkPathIsDir();\n\t\tthis._checkPathIsReadable();\n\t\treturn this._readDirContent(this.path, recursive);\n\t}\n\tcreate(path = this.path) {\n\t\tthis._checkPathNotExists();\n\t\tfs.mkdirSync(path, { recursive: true });\n\t}\n\tdelete(recursive = false) {\n\t\tthis._checkPathExists();\n\t\tthis._checkPathIsDir();\n\t\tif (!recursive) this._checkDirIsEmpty();\n\t\tfs.rmSync(this.path, { recursive });\n\t}\n\trename(newPath) {\n\t\tconst absoluteNewDirPath = resolve(this.projectPath, \"./\" + newPath);\n\t\tthis._checkPathIsInsideProject(absoluteNewDirPath);\n\t\tthis._checkPathExists();\n\t\tthis._checkPathIsDir();\n\t\tthis._checkPathIsWritable();\n\t\tconst newFolderPath = dirname(absoluteNewDirPath);\n\t\tthis._checkPathExists(newFolderPath);\n\t\tthis._checkPathIsWritable(newFolderPath);\n\t\tthis._checkPathNotExists(absoluteNewDirPath);\n\t\tfs.renameSync(this.path, absoluteNewDirPath);\n\t\tthis.path = absoluteNewDirPath;\n\t}\n\tassertExists() {\n\t\tthis._checkPathExists();\n\t\tthis._checkPathIsDir();\n\t\tthis._checkPathIsReadable();\n\t}\n\t_checkPathIsInsideProject(path = this.path) {\n\t\tif (!path.startsWith(this.projectPath)) throw new FileSystemError(`Path ${path} is outside of the project directory`);\n\t}\n\t_checkPathExists(path = this.path) {\n\t\tif (!fs.existsSync(path)) throw new FileSystemError(`Path ${path} should exist`);\n\t}\n\t_checkPathNotExists(path = this.path) {\n\t\tif (fs.existsSync(path)) throw new FileSystemError(`Path ${path} should not exist`);\n\t}\n\t_checkPathIsDir(path = this.path) {\n\t\tlet stats;\n\t\ttry {\n\t\t\tstats = fs.lstatSync(path);\n\t\t} catch {\n\t\t\tthrow new FileSystemError(`Path ${path} does not exist`);\n\t\t}\n\t\tif (!stats.isDirectory()) throw new FileSystemError(`Path ${path} is not a directory`);\n\t}\n\t_checkPathIsWritable(path = this.path) {\n\t\ttry {\n\t\t\tfs.accessSync(path, fs.constants.W_OK);\n\t\t} catch {\n\t\t\tthrow new FileSystemError(`Path ${path} writable`);\n\t\t}\n\t}\n\t_checkPathIsReadable(path = this.path) {\n\t\ttry {\n\t\t\tfs.accessSync(path, fs.constants.R_OK);\n\t\t} catch {\n\t\t\tthrow new FileSystemError(`Path ${path} writable`);\n\t\t}\n\t}\n\t_checkDirIsEmpty(path = this.path) {\n\t\tif (fs.readdirSync(path).length > 0) throw new FileSystemError(`Directory ${path} is not empty`);\n\t}\n\t_readDirContent(path = this.path, recursive = false) {\n\t\tconst dirContent = {\n\t\t\tfiles: [],\n\t\t\tdirectories: {}\n\t\t};\n\t\tfs.readdirSync(path, {\n\t\t\twithFileTypes: true,\n\t\t\trecursive: false\n\t\t}).forEach((item) => {\n\t\t\tif (item.isFile()) dirContent.files.push(item.name);\n\t\t\telse if (item.isDirectory()) dirContent.directories[item.name] = recursive ? this._readDirContent(path + \"/\" + item.name, recursive) : null;\n\t\t});\n\t\treturn dirContent;\n\t}\n};\n//#endregion\n//#region src/lib/server/file-system/archive.ts\nvar archives = /* @__PURE__ */ new Map();\nvar ArchiveSystem = class {\n\thandler;\n\tcontext;\n\t_rootPath;\n\t_sessionId;\n\tconstructor(handler, context) {\n\t\tthis.handler = handler;\n\t\tthis.context = context;\n\t\tthis._sessionId = context.session.id;\n\t\tthis._rootPath = resolveArchiveRootPath();\n\t}\n\tasync create(ignoreFile = \".gitignore\") {\n\t\tconst dir = this.handler.fs.getDirectory(\"\");\n\t\tlet files = directoryContentToFileEntries(dir.read(true)).map((n) => n.startsWith(\"/\") ? n.slice(1) : n);\n\t\ttry {\n\t\t\tconst ignore = await Bun.file(join(dir.path, ignoreFile)).text();\n\t\t\tfiles = micromatch.not(files, ignore.split(\"\\n\").filter(Boolean), {\n\t\t\t\tdot: true,\n\t\t\t\tcontains: true\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Could not read ${ignoreFile} file`, e);\n\t\t}\n\t\tconst id = `${this._resolveId()}.tgz`;\n\t\tconst path = join(this._rootPath, id);\n\t\tawait tar.c({\n\t\t\tgzip: true,\n\t\t\tfile: path,\n\t\t\tcwd: dir.path\n\t\t}, files);\n\t\tarchives.set(id, {\n\t\t\tsessionId: this._sessionId,\n\t\t\tpath\n\t\t});\n\t\tsetTimeout(this._delete.bind(this, id), 1e3 * 60 * 15);\n\t\treturn id;\n\t}\n\tasync get(id) {\n\t\tconst archive = archives.get(id);\n\t\tif (!archive) throw new Exception(\"Not Found\", \"Archive not found\", 404);\n\t\tif (archive.sessionId !== this._sessionId) throw new Exception(\"Forbidden\", \"Archive is not yours\", 403);\n\t\treturn Bun.file(archive.path);\n\t}\n\tasync _delete(id) {\n\t\tconst archive = archives.get(id);\n\t\tif (!archive) return;\n\t\ttry {\n\t\t\tawait Bun.file(archive.path).delete();\n\t\t\tarchives.delete(id);\n\t\t} catch (e) {\n\t\t\tconsole.error(\"Could not delete archive\", e);\n\t\t}\n\t}\n\t_resolveId() {\n\t\treturn `${this.context.project.path.split(\"/\").pop() ?? \"unknown\"}-${(/* @__PURE__ */ new Date()).toISOString()}`;\n\t}\n};\n//#endregion\n//#region src/lib/server/file-system/project-file.ts\nvar ProjectFile = class {\n\t_path;\n\tprojectPath;\n\tconstructor(filePath, projectPath) {\n\t\tthis._path = path.resolve(projectPath, \"./\" + filePath);\n\t\tthis.projectPath = projectPath;\n\t\tthis._checkPathIsInsideProject();\n\t}\n\tget path() {\n\t\tthis._checkPathExists();\n\t\treturn this._path;\n\t}\n\tread(encoding) {\n\t\tthis.isReadable();\n\t\treturn fs.readFileSync(this._path).toString(encoding);\n\t}\n\treadStream() {\n\t\tthis.isReadable();\n\t\treturn Bun.file(this._path).stream();\n\t}\n\treadJson() {\n\t\tconst raw = this.read();\n\t\treturn JSON.parse(raw);\n\t}\n\twrite(text) {\n\t\tthis._checkWritableAndCreateFolder();\n\t\tfs.writeFileSync(this._path, text, { flush: true });\n\t}\n\twriteJson(content) {\n\t\tconst raw = JSON.stringify(content);\n\t\tthis.write(raw);\n\t}\n\tgetWriteStream() {\n\t\tthis._checkWritableAndCreateFolder();\n\t\treturn fs.createWriteStream(this._path);\n\t}\n\tdelete() {\n\t\tthis._checkPathExists();\n\t\tthis._checkPathIsFile();\n\t\tthis._checkPathIsWritable();\n\t\tfs.rmSync(this._path);\n\t}\n\trename(newPath) {\n\t\tconst absoluteNewPath = path.resolve(this.projectPath, \"./\" + newPath);\n\t\tthis._checkPathIsInsideProject(newPath);\n\t\tthis._checkPathExists();\n\t\tthis._checkPathIsFile();\n\t\tthis._checkPathIsWritable();\n\t\tconst newFolderPath = path.dirname(absoluteNewPath);\n\t\tthis._checkPathExists(newFolderPath);\n\t\tthis._checkPathIsWritable(newFolderPath);\n\t\tthis._checkPathNotExists(absoluteNewPath);\n\t\tfs.renameSync(this._path, absoluteNewPath);\n\t\tthis._path = absoluteNewPath;\n\t}\n\tisReadable() {\n\t\tthis._checkPathExists();\n\t\tthis._checkPathIsFile();\n\t\tthis._checkPathIsReadable();\n\t}\n\t_checkWritableAndCreateFolder() {\n\t\tconst folderPath = path.dirname(this._path);\n\t\ttry {\n\t\t\tthis._checkPathExists(folderPath);\n\t\t} catch {\n\t\t\tfs.mkdirSync(folderPath, { recursive: true });\n\t\t}\n\t\tif (fs.existsSync(this._path)) {\n\t\t\tthis._checkPathIsFile();\n\t\t\tthis._checkPathIsWritable();\n\t\t} else {\n\t\t\tthis._checkPathExists(folderPath);\n\t\t\tthis._checkPathIsDir(folderPath);\n\t\t\tthis._checkPathIsWritable(folderPath);\n\t\t}\n\t}\n\t_checkPathIsInsideProject(path = this._path) {\n\t\tif (!path.startsWith(this.projectPath)) throw new FileSystemError(`Path ${path} is outside of the project directory`);\n\t}\n\t_checkPathExists(path = this._path) {\n\t\tif (!fs.existsSync(path)) throw new FileSystemError(`Path ${path} should exist`);\n\t}\n\t_checkPathNotExists(path = this._path) {\n\t\tif (fs.existsSync(path)) throw new FileSystemError(`Path ${path} should not exist`);\n\t}\n\t_checkPathIsFile(path = this._path) {\n\t\tlet stats;\n\t\ttry {\n\t\t\tstats = fs.lstatSync(path);\n\t\t} catch {\n\t\t\tthrow new FileSystemError(`Path ${path} does not exist`);\n\t\t}\n\t\tif (!stats.isFile()) throw new FileSystemError(`Path ${path} is not a this.path`);\n\t}\n\t_checkPathIsDir(path = this._path) {\n\t\tlet stats;\n\t\ttry {\n\t\t\tstats = fs.lstatSync(path);\n\t\t} catch {\n\t\t\tthrow new FileSystemError(`Path ${path} does not exist`);\n\t\t}\n\t\tif (!stats.isDirectory()) throw new FileSystemError(`Path ${path} is not a directory`);\n\t}\n\t_checkPathIsWritable(path = this._path) {\n\t\ttry {\n\t\t\tfs.accessSync(path, fs.constants.W_OK);\n\t\t} catch {\n\t\t\tthrow new FileSystemError(`Path ${path} writable`);\n\t\t}\n\t}\n\t_checkPathIsReadable(path = this._path) {\n\t\ttry {\n\t\t\tfs.accessSync(path, fs.constants.R_OK);\n\t\t} catch {\n\t\t\tthrow new FileSystemError(`Path ${path} writable`);\n\t\t}\n\t}\n};\n//#endregion\n//#region src/lib/server/file-system/file-system.ts\nvar FileSystem = class {\n\t_rootPath;\n\tconstructor(arg) {\n\t\tif (typeof arg === \"string\") {\n\t\t\tthis._rootPath = resolveRootPath(arg);\n\t\t\treturn;\n\t\t}\n\t\tif (!arg.project) throw new Exception(\"Bad Request\", \"Project is not defined\", 400);\n\t\tthis._rootPath = resolveRootPath(arg.project.path);\n\t}\n\tgetDirectory(path) {\n\t\treturn new ProjectDirectory(path, this._rootPath);\n\t}\n\tgetFile(path) {\n\t\treturn new ProjectFile(path, this._rootPath);\n\t}\n};\n//#endregion\n//#region src/lib/server/git/git.ts\nvar Git = class {\n\t_rootPath;\n\tconstructor() {\n\t\tthis._rootPath = resolve(private_env.FS_ROOT ?? \"\");\n\t}\n\tasync clone(url, options) {\n\t\tconst path = await this.resolvePath(url);\n\t\tif (existsSync(path)) return path;\n\t\tawait this.runCommand(\"clone\", [url, path], { ...options });\n\t\treturn path;\n\t}\n\tasync runCommand(command, params, options) {\n\t\tlet sshPath;\n\t\tif (options?.sshKey) sshPath = await this.createSshKeyFile(options.sshKey);\n\t\tconst cwd = resolve(this._rootPath, options?.path ?? \"\");\n\t\tconst sshEnv = sshPath ? { GIT_SSH_COMMAND: `ssh -i ${sshPath}` } : {};\n\t\ttry {\n\t\t\tawait $`git ${command} ${params}`.cwd(cwd).env({\n\t\t\t\t...process.env,\n\t\t\t\t...sshEnv\n\t\t\t});\n\t\t} finally {\n\t\t\tif (sshPath) await this.deleteSshKeyFile(sshPath);\n\t\t}\n\t}\n\tasync createSshKeyFile(sshKey) {\n\t\tconst path = `/tmp/nanoforge/${generateKey()}`;\n\t\tawait Bun.file(path).write(sshKey);\n\t\treturn path;\n\t}\n\tasync deleteSshKeyFile(path) {\n\t\tawait Bun.file(path).delete();\n\t}\n\tasync resolvePath(url) {\n\t\tconst basePath = url.split(\"/\").pop()?.replace(\".git\", \"\");\n\t\tif (!basePath) throw new Error(\"Invalid URL\");\n\t\tconst fullBasePath = resolve(this._rootPath, basePath);\n\t\tlet path = fullBasePath;\n\t\twhile (await Bun.file(path).exists()) path = resolve(fullBasePath, generateKey(5));\n\t\treturn path;\n\t}\n};\n//#endregion\n//#region src/lib/server/project/load-project.ts\nvar loadProject = async (projectSession, handler) => {\n\tconst session = await getOrCreateSession(handler.event.locals.session);\n\tconst projectId = tryAddProjectSession(projectSession);\n\taddProjectToSession(session, projectId);\n\thandler.context = {\n\t\t...handler.context,\n\t\tproject: projectSession\n\t};\n\treturn {\n\t\tid: projectId,\n\t\tcacheResolvable: handler.context.online ? projectSession.gateway?.id : projectSession.path\n\t};\n};\nvar loadProjectFromId = async (id, handler) => {\n\tconst session = await getOrCreateSession(handler.event.locals.session);\n\tconst projectSession = getProject(id, session);\n\tif (!projectSession) throw new Exception(\"Bad Request\", \"Project not found\", 400);\n\taddProjectToSession(session, id);\n\thandler.context = {\n\t\t...handler.context,\n\t\tproject: projectSession\n\t};\n\treturn {\n\t\tid,\n\t\tcacheResolvable: handler.context.online ? projectSession.gateway?.id : projectSession.path\n\t};\n};\n//#endregion\n//#region src/lib/server/project/library/library-handler.ts\nvar LibraryHandler = class {\n\thandler;\n\tconstructor(handler) {\n\t\tthis.handler = handler;\n\t}\n\tasync installLibrary(name) {\n\t\tthis.handler._cli.install([name], {\n\t\t\tserver: this.handler._part === \"server\" || void 0,\n\t\t\tlib: true\n\t\t});\n\t\treturn { save: {\n\t\t\tid: this._resolveIdFromName(name),\n\t\t\ttype: \"\",\n\t\t\tname: \"\",\n\t\t\tpath: name\n\t\t} };\n\t}\n\t_resolveIdFromName(name) {\n\t\tconst [org, pkg] = name.split(\"/\");\n\t\tif (!org || !pkg) throw new Error(\"Invalid library name\");\n\t\tconst id = !pkg ? org : pkg;\n\t\treturn `${formatFrom.kebab(id).toCamel()}Library`;\n\t}\n};\n//#endregion\n//#region src/lib/server/project/loader/env.ts\nvar PREFIX_CLIENT = \"NANOFORGE_CLIENT_\";\nvar PREFIX_SERVER = \"NANOFORGE_SERVER_\";\nvar PREFIX = \"NANOFORGE_\";\nvar loadEnv = (path) => {\n\tconst env = {};\n\tconfig({\n\t\tpath,\n\t\tprocessEnv: env\n\t});\n\treturn env;\n};\nvar parseEnv = (part, env) => {\n\tconst partPrefix = part === \"client\" ? PREFIX_CLIENT : PREFIX_SERVER;\n\treturn Object.fromEntries(Object.entries(env).filter(([key]) => key.startsWith(PREFIX) && (part === \"client\" && !key.startsWith(PREFIX_SERVER) || part === \"server\" && !key.startsWith(PREFIX_CLIENT))).map(([key, value]) => [key.replace(new RegExp(`^${partPrefix}|${PREFIX}`), \"\"), value]));\n};\nvar resolveEnv = (part, projectPath) => {\n\treturn parseEnv(part, loadEnv(resolve(projectPath, \".env\")));\n};\n//#endregion\n//#region src/lib/server/project/loader/loader.ts\nvar Loader = class {\n\thandler;\n\t_fs;\n\t_basePath;\n\tconstructor(handler) {\n\t\tthis.handler = handler;\n\t\tthis._basePath = join(this.handler._path, \".nanoforge\", this.handler._part);\n\t\tthis._fs = new FileSystem(this._basePath);\n\t}\n\tgetEnv() {\n\t\treturn resolveEnv(this.handler._part, this.handler._path);\n\t}\n\tgetManifest() {\n\t\treturn {\n\t\t\tversion: \"1.0.0\",\n\t\t\tfiles: directoryContentToFileEntries(this._fs.getDirectory(\".\").read(true)).map((path) => ({ path }))\n\t\t};\n\t}\n\tgetFile(path) {\n\t\treturn this._fs.getFile(path);\n\t}\n};\n//#endregion\n//#region src/lib/server/project/package/package.enum.ts\nvar PackageTypeEnum = /* @__PURE__ */ function(PackageTypeEnum) {\n\tPackageTypeEnum[\"COMPONENT\"] = \"component\";\n\tPackageTypeEnum[\"SYSTEM\"] = \"system\";\n\tPackageTypeEnum[\"ASSET\"] = \"asset\";\n\treturn PackageTypeEnum;\n}({});\n//#endregion\n//#region src/lib/server/project/package/package.const.ts\nvar PACKAGES_PATH = {\n\t[PackageTypeEnum.COMPONENT]: \"components\",\n\t[PackageTypeEnum.SYSTEM]: \"systems\",\n\t[PackageTypeEnum.ASSET]: \"assets\"\n};\nPackageTypeEnum.COMPONENT, PackageTypeEnum.SYSTEM, PackageTypeEnum.ASSET;\nvar PACKAGES_PATH_FORMATTER = {\n\t[PackageTypeEnum.COMPONENT]: (n) => formatFrom.all(n).toKebab() + \".component\",\n\t[PackageTypeEnum.SYSTEM]: (n) => formatFrom.all(n).toKebab() + \".system\",\n\t[PackageTypeEnum.ASSET]: (n) => n\n};\n//#endregion\n//#region src/lib/server/project/package/manifest/manifest-resolver.ts\nvar MANIFEST_TITLES = {\n\t[PackageTypeEnum.COMPONENT]: \"EDITOR_COMPONENT_MANIFEST\",\n\t[PackageTypeEnum.SYSTEM]: \"EDITOR_SYSTEM_MANIFEST\"\n};\nvar findManifestNode = (title, source) => {\n\tlet res = null;\n\tsource.forEachChild((node) => {\n\t\tif (!ts.isVariableStatement(node)) return;\n\t\tnode.declarationList.declarations.forEach((decl) => {\n\t\t\tif (!ts.isVariableDeclaration(decl)) return;\n\t\t\tif (decl.name.getText() === title) res = decl;\n\t\t});\n\t});\n\treturn res;\n};\nvar getName = (source) => {\n\tlet res = null;\n\tsource.forEachChild((node) => {\n\t\tif (!ts.isExportAssignment(node)) return;\n\t\tif (!node.getChildren().some((n) => n.getText() === \"export\") || !node.getChildren().some((n) => n.getText() === \"default\")) return;\n\t\tres = node.expression.getFirstToken()?.getText();\n\t});\n\treturn res;\n};\nvar parseProperty = (prop) => {\n\tif (!ts.isPropertyAssignment(prop)) return {};\n\tconst name = prop.name.getText();\n\tconst value = prop.initializer;\n\tif (!value) return {};\n\treturn { [name]: parseElement(value) };\n};\nvar parseElement = (value) => {\n\tif (ts.isStringLiteral(value)) return value.text;\n\tif (ts.isNumericLiteral(value)) return Number(value.text);\n\tif (ts.isLiteralTypeLiteral(value)) {\n\t\tconst txt = value.getText();\n\t\tif (txt === \"true\") return true;\n\t\tif (txt === \"false\") return false;\n\t\tif (txt === \"null\") return null;\n\t\tif (txt === \"undefined\") return void 0;\n\t}\n\tif (ts.isArrayLiteralExpression(value)) return value.elements.map((el) => parseElement(el));\n\tif (ts.isObjectLiteralExpression(value)) return value.properties.reduce((acc, prop) => {\n\t\treturn {\n\t\t\t...acc,\n\t\t\t...parseProperty(prop)\n\t\t};\n\t}, {});\n\tthrow new Error(\"Unknown element type\");\n};\nvar getManifestFromNode = (source) => {\n\tif (!source) return null;\n\tconst init = source.initializer;\n\tif (!init) return null;\n\tif (!ts.isObjectLiteralExpression(init)) return null;\n\treturn parseElement(init);\n};\nvar parseManifest = (type, source) => {\n\tconst id = getName(source);\n\tconst manifest = getManifestFromNode(findManifestNode(MANIFEST_TITLES[type], source));\n\tif (!id || !manifest) return null;\n\treturn {\n\t\tid,\n\t\ttype,\n\t\t...manifest\n\t};\n};\nvar resolveManifest = (type, content) => {\n\treturn parseManifest(type, ts.createSourceFile(\"tmp.ts\", content, ts.ScriptTarget.ESNext, true));\n};\n//#endregion\n//#region src/lib/server/project/package/manifest/manifest-handler.ts\nvar resolveSave = (type, name, path, manifest) => {\n\tconst base = {\n\t\tname,\n\t\tpath\n\t};\n\tif (type === PackageTypeEnum.SYSTEM) return base;\n\treturn {\n\t\t...base,\n\t\tparamsNames: manifest.params.map(({ name }) => name)\n\t};\n};\nvar ManifestHandler = class {\n\thandler;\n\tconstructor(handler) {\n\t\tthis.handler = handler;\n\t}\n\tresolveFromName(type, rawName) {\n\t\treturn this.resolveFromFilename(type, PACKAGES_PATH_FORMATTER[type](rawName));\n\t}\n\tresolveFromFilename(type, filename) {\n\t\tconst path = join(PACKAGES_PATH[type], filename);\n\t\treturn this.resolveFromPath(type, path);\n\t}\n\tresolveFromPath(type, path) {\n\t\tconst manifest = this._resolveManifest(type, path);\n\t\treturn {\n\t\t\tmanifest,\n\t\t\tsave: resolveSave(type, manifest.id, path, manifest)\n\t\t};\n\t}\n\t_resolveManifest(type, path) {\n\t\treturn this._findPackageManifest((p) => this._getPackageManifest(type, p), path);\n\t}\n\t_getPackageManifest(type, path) {\n\t\treturn resolveManifest(type, this.handler._rootFs.getFile(this._resolvePartPath(path)).read());\n\t}\n\t_findPackageManifest(manifestGetter, path) {\n\t\tconst manifest = [\n\t\t\t\"\",\n\t\t\t\".ts\",\n\t\t\t\".js\"\n\t\t].reduce((result, p) => {\n\t\t\tif (result) return result;\n\t\t\ttry {\n\t\t\t\treturn manifestGetter(path + p);\n\t\t\t} catch (e) {\n\t\t\t\tif (!(e instanceof FileSystemError)) throw e;\n\t\t\t}\n\t\t}, void 0);\n\t\tif (!manifest) throw new FileSystemError(\"Can't find package manifest\");\n\t\treturn manifest;\n\t}\n\t_resolvePartPath(path) {\n\t\treturn join(this.handler._part, path);\n\t}\n};\n//#endregion\n//#region src/lib/server/project/package/package-handler.ts\nvar PackageHandler = class {\n\thandler;\n\tmanifestHandler;\n\tconstructor(handler) {\n\t\tthis.handler = handler;\n\t\tthis.manifestHandler = new ManifestHandler(handler);\n\t}\n\tasync installPackages(names) {\n\t\tif (names.length === 0) return [];\n\t\tthis.handler._cli.install(names, { server: this.handler._part === \"server\" || void 0 });\n\t\treturn Promise.all(names.map(async (name) => {\n\t\t\tconst r = await this.handler._api.registry.getPackage(name);\n\t\t\treturn this._resolvesPackage(r.type, r._file);\n\t\t}));\n\t}\n\tcreateComponent(name) {\n\t\tthis._createPackage(PackageTypeEnum.COMPONENT, name);\n\t\treturn this.manifestHandler.resolveFromName(PackageTypeEnum.COMPONENT, name);\n\t}\n\tcreateSystem(name) {\n\t\tthis._createPackage(PackageTypeEnum.SYSTEM, name);\n\t\treturn this.manifestHandler.resolveFromName(PackageTypeEnum.SYSTEM, name);\n\t}\n\tasync getComponents() {\n\t\treturn this._resolvesPackages(PackageTypeEnum.COMPONENT);\n\t}\n\tasync getSystems() {\n\t\treturn this._resolvesPackages(PackageTypeEnum.SYSTEM);\n\t}\n\tasync getAssets() {\n\t\treturn this._resolvesPackages(PackageTypeEnum.ASSET);\n\t}\n\t_resolvesPackages(type) {\n\t\tconst basePath = PACKAGES_PATH[type];\n\t\tconst content = this.handler.fs.getDirectory(basePath).read(true, true);\n\t\treturn this._resolvesPackageFilesPathFromContent(content).map((path) => this._resolvesPackage(type, path, basePath));\n\t}\n\t_resolvesPackage(type, filename, basePath = PACKAGES_PATH[type]) {\n\t\tconst path = join(basePath, filename);\n\t\tif (type === PackageTypeEnum.ASSET) return { path };\n\t\treturn this.manifestHandler.resolveFromPath(type, path);\n\t}\n\t_resolvesPackageFilesPathFromContent(content, path = \"\") {\n\t\tconst files = content.files.map((file) => join(path, file));\n\t\tconst directories = Object.entries(content.directories).map(([key, value]) => {\n\t\t\tif (!value) return [];\n\t\t\treturn this._resolvesPackageFilesPathFromContent(value, join(path, key)).filter(Boolean);\n\t\t});\n\t\treturn [...files, ...directories.flat()];\n\t}\n\t_createPackage(type, name) {\n\t\tthis.handler._cli.create(type, {\n\t\t\tname,\n\t\t\tserver: this.handler._part === \"server\" || void 0\n\t\t});\n\t}\n};\n//#endregion\n//#region src/lib/server/project/save/save-handler.ts\nvar SaveHandler = class {\n\thandler;\n\tconstructor(handler) {\n\t\tthis.handler = handler;\n\t}\n\tasync getSave() {\n\t\treturn this.handler._rootFs.getFile(this.resolveSavePath()).readJson();\n\t}\n\tasync updateSave(save) {\n\t\tthis.handler._rootFs.getFile(this.resolveSavePath()).writeJson(save);\n\t}\n\tresolveSavePath() {\n\t\treturn `.nanoforge/${this.handler._part}.save.json`;\n\t}\n};\n//#endregion\n//#region src/lib/server/project/project-handler.ts\nvar ProjectHandler = class {\n\t_path;\n\t_part;\n\t_cli;\n\t_api;\n\t_rootFs;\n\t_fs;\n\t_loader;\n\t_save;\n\t_package;\n\t_library;\n\tconstructor(handler, context, part) {\n\t\tif (!context.project) throw new Exception(\"Bad Request\", \"Project missing in context\", 400);\n\t\tthis._path = context.project.path;\n\t\tthis._part = part;\n\t\tthis._cli = handler.cli;\n\t\tthis._api = handler.api;\n\t\tthis._rootFs = handler.fs;\n\t}\n\t/**\n\t* Get the file system of the project content\n\t* This file system has his root at /<client|server>\n\t*/\n\tget fs() {\n\t\tif (!this._fs) this._fs = new FileSystem(join(this._path, this._part));\n\t\treturn this._fs;\n\t}\n\t/**\n\t* Get the loader functions of the project\n\t*/\n\tget loader() {\n\t\tif (!this._loader) this._loader = new Loader(this);\n\t\treturn this._loader;\n\t}\n\tget save() {\n\t\tif (!this._save) this._save = new SaveHandler(this);\n\t\treturn this._save;\n\t}\n\tget package() {\n\t\tif (!this._package) this._package = new PackageHandler(this);\n\t\treturn this._package;\n\t}\n\tget library() {\n\t\tif (!this._library) this._library = new LibraryHandler(this);\n\t\treturn this._library;\n\t}\n};\n//#endregion\n//#region src/lib/server/project/project-manager.ts\nvar ProjectManager = class {\n\t_handler;\n\t_context;\n\t_client;\n\t_server;\n\tconstructor(handler, context) {\n\t\tthis._handler = handler;\n\t\tthis._context = context;\n\t}\n\t/**\n\t* Get the client project handler\n\t* @beta The separation between client and server projects is not the final goal of the project manager.\n\t*/\n\tget client() {\n\t\tif (!this._client) this._client = new ProjectHandler(this._handler, this._context, \"client\");\n\t\treturn this._client;\n\t}\n\t/**\n\t* Get the server project handler\n\t* @beta The separation between client and server projects is not the final goal of the project manager.\n\t*/\n\tget server() {\n\t\tif (!this._server) this._server = new ProjectHandler(this._handler, this._context, \"server\");\n\t\treturn this._server;\n\t}\n};\n//#endregion\n//#region src/lib/server/utils/request-handler/handler.ts\nvar Handler = class {\n\t_context;\n\t_event;\n\t_body;\n\t_apiCache;\n\t_cliCache;\n\t_fsCache;\n\t_gitCache;\n\t_projectCache;\n\t_archiveCache;\n\tconstructor(context, event, body) {\n\t\tthis._context = context;\n\t\tthis._event = event;\n\t\tthis._body = body;\n\t}\n\tget context() {\n\t\treturn this._context;\n\t}\n\tset context(context) {\n\t\tthis._context = context;\n\t\tthis._apiCache = void 0;\n\t\tthis._cliCache = void 0;\n\t\tthis._fsCache = void 0;\n\t\tthis._gitCache = void 0;\n\t\tthis._archiveCache = void 0;\n\t}\n\tget event() {\n\t\treturn this._event;\n\t}\n\tget body() {\n\t\treturn this._body;\n\t}\n\tget api() {\n\t\tif (!this._apiCache) this._apiCache = this._context.online ? getApi(this._event.cookies) : getNoAuthApi();\n\t\treturn this._apiCache;\n\t}\n\tget cli() {\n\t\tif (!this._cliCache) this._cliCache = new Cli(this._context);\n\t\treturn this._cliCache;\n\t}\n\tget fs() {\n\t\tif (!this._fsCache) this._fsCache = new FileSystem(this._context);\n\t\treturn this._fsCache;\n\t}\n\tget git() {\n\t\tif (!this._gitCache) this._gitCache = new Git();\n\t\treturn this._gitCache;\n\t}\n\tget project() {\n\t\tif (!this._projectCache) this._projectCache = new ProjectManager(this, this._context);\n\t\treturn this._projectCache;\n\t}\n\tget archive() {\n\t\tif (!this._archiveCache) this._archiveCache = new ArchiveSystem(this, this._context);\n\t\treturn this._archiveCache;\n\t}\n};\n//#endregion\n//#region src/lib/server/utils/request-handler/request.policy.ts\nvar DEFAULT_OPTIONS = {\n\tonlineOnly: false,\n\tofflineOnly: false,\n\tprojectOptional: false\n};\nvar assertProject = (context, options) => {\n\tif (options.projectOptional) return;\n\tif (!context.session) throw new Exception(\"Bad Request\", \"No session\", 400);\n\tif (!context.project) throw new Exception(\"Bad Request\", \"Request required a project\", 400);\n\tif (context.online && !context.project.gateway) throw new Exception(\"Internal Server Error\", \"Project don't have gateway on online mode\", 500);\n};\nvar assertMode = (context, options) => {\n\tif (options.onlineOnly && !context.online) throw new Exception(\"Method Not Allowed\", \"This action is not available offline\", 405);\n\tif (options.offlineOnly && context.online) throw new Exception(\"Method Not Allowed\", \"This action is not available online\", 405);\n};\nvar assertRequest = (context, rawOptions) => {\n\tconst options = {\n\t\t...DEFAULT_OPTIONS,\n\t\t...rawOptions\n\t};\n\tassertMode(context, options);\n\tassertProject(context, options);\n};\n//#endregion\n//#region src/lib/server/utils/request-handler/action-handler.ts\nvar handleError$1 = (e) => {\n\tconsole.error(e);\n\tif (e instanceof Exception) return fail(e.status, {\n\t\terror: e.error,\n\t\tmessage: e.message\n\t});\n\treturn fail(500, {\n\t\terror: \"Internal Server Error\",\n\t\tmessage: e.toString()\n\t});\n};\nvar useActionHandler = (callback, options) => {\n\treturn async (event) => {\n\t\ttry {\n\t\t\tconst context = await getContext(event);\n\t\t\tconst body = await parseFormDataBody(await event.request.formData(), options?.body);\n\t\t\tassertRequest(context, options);\n\t\t\treturn await callback(new Handler(context, event, body));\n\t\t} catch (e) {\n\t\t\treturn handleError$1(e);\n\t\t}\n\t};\n};\n//#endregion\n//#region src/lib/server/utils/request-handler/request-handler.ts\nvar handleError = (e) => {\n\tif (e instanceof Exception) return Response.json({\n\t\terror: e.error,\n\t\tmessage: e.message\n\t}, { status: e.status });\n\tconsole.error(e);\n\treturn Response.json({\n\t\terror: \"Internal Server Error\",\n\t\tmessage: e\n\t}, { status: 500 });\n};\nvar useRequestHandler = (callback, options) => {\n\treturn async (event) => {\n\t\ttry {\n\t\t\tconst context = await getContext(event);\n\t\t\tassertRequest(context, options);\n\t\t\treturn await callback(new Handler(context, event, {}));\n\t\t} catch (e) {\n\t\t\treturn handleError(e);\n\t\t}\n\t};\n};\n//#endregion\nexport { loadProjectFromId as i, useActionHandler as n, loadProject as r, useRequestHandler as t };\n"],"mappings":"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"}
|