@nanoforge-dev/editor 0.0.2-beta.8c768e4 → 0.0.2-beta.d1c5eea
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.Chsihp2s.css +1 -0
- package/dist/client/_app/immutable/assets/0.Chsihp2s.css.br +0 -0
- package/dist/client/_app/immutable/assets/0.Chsihp2s.css.gz +0 -0
- package/dist/client/_app/immutable/chunks/BAmaB5-w.js +6 -0
- package/dist/client/_app/immutable/chunks/BAmaB5-w.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BAmaB5-w.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{BpsTeBMk2.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/BJ5-01Xz.js +1 -0
- package/dist/client/_app/immutable/chunks/BJ5-01Xz.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BJ5-01Xz.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{D8HnIxQ42.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/{BNmi28p2.js → BQ4F9eo1.js} +1 -1
- package/dist/client/_app/immutable/chunks/BQ4F9eo1.js.br +2 -0
- package/dist/client/_app/immutable/chunks/BQ4F9eo1.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BQs6hrRa.js +293 -0
- package/dist/client/_app/immutable/chunks/BQs6hrRa.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BQs6hrRa.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{Wjj5hwVF2.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/{56adh18U.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/{DJq0R92X.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/{NRUHq-_72.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/{Drjp27p72.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/{VTYQK3v_2.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/{CwcsJxhS2.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/D2HMiRG4.js +1 -0
- package/dist/client/_app/immutable/chunks/D2HMiRG4.js.br +0 -0
- package/dist/client/_app/immutable/chunks/D2HMiRG4.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{CuyfOZTk2.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/{CHHvlOt72.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/{B5BlQANa2.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/{Bfd-bGrZ2.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/{B41NCdmk2.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/{YpKUr6uE2.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/{D8Kk1mwW.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/{DbZ0P7x6.js → DuZNgOMp.js} +1 -1
- package/dist/client/_app/immutable/chunks/DuZNgOMp.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DuZNgOMp.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/{CNh34b3X2.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/{Cx3ix-dL2.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/{D5kSEVHd2.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/{DRG11iPc2.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/{CN98h0cI2.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/entry/{app.CiLM39cw.js → app.CmKp5Z74.js} +2 -2
- package/dist/client/_app/immutable/entry/app.CmKp5Z74.js.br +0 -0
- package/dist/client/_app/immutable/entry/app.CmKp5Z74.js.gz +0 -0
- package/dist/client/_app/immutable/entry/start.D78MUtxi.js +1 -0
- package/dist/client/_app/immutable/entry/start.D78MUtxi.js.br +0 -0
- package/dist/client/_app/immutable/entry/start.D78MUtxi.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/{0.CEpgzEwS.js → 0.DG-EQJuO.js} +1 -1
- package/dist/client/_app/immutable/nodes/0.DG-EQJuO.js.br +0 -0
- package/dist/client/_app/immutable/nodes/0.DG-EQJuO.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/{1.Sm4J_hJ5.js → 1.3zpJchco.js} +1 -1
- package/dist/client/_app/immutable/nodes/1.3zpJchco.js.br +0 -0
- package/dist/client/_app/immutable/nodes/1.3zpJchco.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/{9.C7P5VSNI.js → 11.B2wyJh5I.js} +1 -1
- package/dist/client/_app/immutable/nodes/11.B2wyJh5I.js.br +0 -0
- package/dist/client/_app/immutable/nodes/11.B2wyJh5I.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/2.CW0zjRC8.js +1 -0
- package/dist/client/_app/immutable/nodes/2.CW0zjRC8.js.br +0 -0
- package/dist/client/_app/immutable/nodes/2.CW0zjRC8.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/3.gzy1bOy3.js +6 -0
- package/dist/client/_app/immutable/nodes/3.gzy1bOy3.js.br +0 -0
- package/dist/client/_app/immutable/nodes/3.gzy1bOy3.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-BgMtbrE9.js → 0-CdkGZW74.js} +6 -6
- package/dist/server/chunks/{0-BgMtbrE9.js.map → 0-CdkGZW74.js.map} +1 -1
- package/dist/server/chunks/{1-JuWV7qB2.js → 1-Bu7UAZ5T.js} +6 -6
- package/dist/server/chunks/{1-JuWV7qB2.js.map → 1-Bu7UAZ5T.js.map} +1 -1
- package/dist/server/chunks/{5-DVrv6Zto.js → 10-_cwipoJm.js} +13 -5
- package/dist/server/chunks/10-_cwipoJm.js.map +1 -0
- package/dist/server/chunks/11-Dx5w0MJO.js +22 -0
- package/dist/server/chunks/11-Dx5w0MJO.js.map +1 -0
- package/dist/server/chunks/{2-Dkn4MH5F.js → 2-5F9qcDLt.js} +10 -10
- package/dist/server/chunks/{2-Dkn4MH5F.js.map → 2-5F9qcDLt.js.map} +1 -1
- package/dist/server/chunks/3-Cql-Dmp2.js +22 -0
- package/dist/server/chunks/3-Cql-Dmp2.js.map +1 -0
- package/dist/server/chunks/{3-CcIZ_M60.js → 4-B2tSZCU9.js} +117 -6
- package/dist/server/chunks/4-B2tSZCU9.js.map +1 -0
- package/dist/server/chunks/{8-CRPOubhA.js → 5-D3-J9iUP.js} +13 -5
- package/dist/server/chunks/5-D3-J9iUP.js.map +1 -0
- package/dist/server/chunks/{4-DyArZX6h.js → 6-DDoqG8iB.js} +13 -5
- package/dist/server/chunks/6-DDoqG8iB.js.map +1 -0
- 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/{7-CuJ7XfzT.js → 9-6rlPfdHX.js} +5 -5
- package/dist/server/chunks/{7-CuJ7XfzT.js.map → 9-6rlPfdHX.js.map} +1 -1
- package/dist/server/chunks/{_layout.svelte-CP4jFwsK.js → _layout.svelte-By6MJeec.js} +6 -6
- package/dist/server/chunks/_layout.svelte-By6MJeec.js.map +1 -0
- package/dist/server/chunks/{_page.svelte-7KJNFri5.js → _page.svelte-COg8WlkX.js} +6 -6
- package/dist/server/chunks/_page.svelte-COg8WlkX.js.map +1 -0
- package/dist/server/chunks/{_page.svelte-B3Zfq6_t.js → _page.svelte-Dne41AAE.js} +433 -126
- package/dist/server/chunks/_page.svelte-Dne41AAE.js.map +1 -0
- package/dist/server/chunks/{_page.svelte-BQLzgYrr.js → _page.svelte-E1XZx_gJ.js} +7 -7
- package/dist/server/chunks/_page.svelte-E1XZx_gJ.js.map +1 -0
- package/dist/server/chunks/{_server.ts-BYvWhjnh.js → _server.ts-BwyH-SDr.js} +2 -2
- package/dist/server/chunks/{_server.ts-BYvWhjnh.js.map → _server.ts-BwyH-SDr.js.map} +1 -1
- package/dist/server/chunks/_server.ts-DJwl8--i.js +47 -0
- 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/chunk-ByNZkrT6.js.map +1 -1
- package/dist/server/chunks/{client-BvtIF74Y.js → client-jrv3ueos.js} +4 -4
- package/dist/server/chunks/client-jrv3ueos.js.map +1 -0
- package/dist/server/chunks/decorate-CQ_JIwqD.js +11 -0
- package/dist/server/chunks/decorate-CQ_JIwqD.js.map +1 -0
- package/dist/server/chunks/{error-D23CGeyL.js → error-Cu-XIb00.js} +406 -191
- package/dist/server/chunks/error-Cu-XIb00.js.map +1 -0
- package/dist/server/chunks/{error.svelte-DZuW0iDP.js → error.svelte-BB7sWwXo.js} +3 -3
- package/dist/server/chunks/error.svelte-BB7sWwXo.js.map +1 -0
- package/dist/server/chunks/{exports-8wSs4fiF.js → exports-D0uQzbjy.js} +4 -4
- package/dist/server/chunks/{exports-8wSs4fiF.js.map → exports-D0uQzbjy.js.map} +1 -1
- package/dist/server/chunks/format-DGOlJxF5.js.map +1 -1
- package/dist/server/chunks/{hooks.server-Dox7llar.js → hooks.server-BTZM3Han.js} +6 -6
- package/dist/server/chunks/hooks.server-BTZM3Han.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-DeYJGjCt.js → index-server-BthNUqCR.js} +2640 -2635
- package/dist/server/chunks/index-server-BthNUqCR.js.map +1 -0
- package/dist/server/chunks/{internal-eM0YTBgj.js → internal-vr3mPczx.js} +2 -2
- package/dist/server/chunks/{internal-eM0YTBgj.js.map → internal-vr3mPczx.js.map} +1 -1
- package/dist/server/chunks/{internal-B77zebhK.js → internal2-BiukHRFA.js} +24 -17
- package/dist/server/chunks/internal2-BiukHRFA.js.map +1 -0
- package/dist/server/chunks/{loader-circle-zqx69BdD.js → loader-circle-C4T0os4K.js} +5 -5
- package/dist/server/chunks/loader-circle-C4T0os4K.js.map +1 -0
- package/dist/server/chunks/{logo-BfI7zmyL.js → logo-dxZl1N-5.js} +4 -4
- package/dist/server/chunks/logo-dxZl1N-5.js.map +1 -0
- package/dist/server/chunks/{project-loader-BkV0zjlj.js → project-loader-D46R4y2F.js} +4 -4
- package/dist/server/chunks/project-loader-D46R4y2F.js.map +1 -0
- package/dist/server/chunks/{request-handler-D-qbwxhh.js → request-handler-DTxrh7_f.js} +191 -117
- 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-ENQuLVBq.js → schemas-nwfCECau.js} +490 -405
- package/dist/server/chunks/schemas-nwfCECau.js.map +1 -0
- package/dist/server/chunks/{session-CmQRz9-0.js → session-By0bbFhg.js} +2 -2
- package/dist/server/chunks/{session-CmQRz9-0.js.map → session-By0bbFhg.js.map} +1 -1
- package/dist/server/chunks/shared-server-Cha0Qlv9.js.map +1 -1
- package/dist/server/chunks/{state-q9lwVQK2.js → state-CviNrLh6.js} +3 -3
- package/dist/server/chunks/state-CviNrLh6.js.map +1 -0
- package/dist/server/index.js +374 -357
- package/dist/server/index.js.map +1 -1
- package/dist/server/manifest.js +55 -31
- package/dist/server/manifest.js.map +1 -1
- package/package.json +22 -18
- package/dist/client/_app/immutable/assets/0.CI0wrjoW.css +0 -1
- package/dist/client/_app/immutable/assets/0.CI0wrjoW.css.br +0 -0
- package/dist/client/_app/immutable/assets/0.CI0wrjoW.css.gz +0 -0
- package/dist/client/_app/immutable/chunks/56adh18U.js.br +0 -0
- package/dist/client/_app/immutable/chunks/56adh18U.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/9tBtThMc.js +0 -1
- package/dist/client/_app/immutable/chunks/9tBtThMc.js.br +0 -0
- package/dist/client/_app/immutable/chunks/9tBtThMc.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/B41NCdmk2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/B41NCdmk2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/B5BlQANa2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/B5BlQANa2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BNmi28p2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BNmi28p2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/Bfd-bGrZ2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/Bfd-bGrZ2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/BpsTeBMk2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/BpsTeBMk2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CHHvlOt72.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CHHvlOt72.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CN98h0cI2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CN98h0cI2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CNh34b3X2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CNh34b3X2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CsVJKLJK.js +0 -1
- package/dist/client/_app/immutable/chunks/CsVJKLJK.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CsVJKLJK.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CuyfOZTk2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CuyfOZTk2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/CwcsJxhS2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/CwcsJxhS2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/Cx3ix-dL2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/Cx3ix-dL2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/D5kSEVHd2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/D5kSEVHd2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/D8HnIxQ42.js.br +0 -0
- package/dist/client/_app/immutable/chunks/D8HnIxQ42.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/D8Kk1mwW.js.br +0 -0
- package/dist/client/_app/immutable/chunks/D8Kk1mwW.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DJq0R92X.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DJq0R92X.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DRG11iPc2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DRG11iPc2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DbZ0P7x6.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DbZ0P7x6.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/Drjp27p72.js.br +0 -0
- package/dist/client/_app/immutable/chunks/Drjp27p72.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/DuEGqPrO.js +0 -6
- package/dist/client/_app/immutable/chunks/DuEGqPrO.js.br +0 -0
- package/dist/client/_app/immutable/chunks/DuEGqPrO.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/H2okCofJ.js +0 -3
- package/dist/client/_app/immutable/chunks/H2okCofJ.js.br +0 -0
- package/dist/client/_app/immutable/chunks/H2okCofJ.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/NRUHq-_72.js.br +0 -0
- package/dist/client/_app/immutable/chunks/NRUHq-_72.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/UeNcXxK4.js +0 -293
- package/dist/client/_app/immutable/chunks/UeNcXxK4.js.br +0 -0
- package/dist/client/_app/immutable/chunks/UeNcXxK4.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/VTYQK3v_2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/VTYQK3v_2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/Wjj5hwVF2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/Wjj5hwVF2.js.gz +0 -0
- package/dist/client/_app/immutable/chunks/YpKUr6uE2.js.br +0 -0
- package/dist/client/_app/immutable/chunks/YpKUr6uE2.js.gz +0 -0
- package/dist/client/_app/immutable/entry/app.CiLM39cw.js.br +0 -0
- package/dist/client/_app/immutable/entry/app.CiLM39cw.js.gz +0 -0
- package/dist/client/_app/immutable/entry/start.CIrA5P2h.js +0 -1
- package/dist/client/_app/immutable/entry/start.CIrA5P2h.js.br +0 -0
- package/dist/client/_app/immutable/entry/start.CIrA5P2h.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/0.CEpgzEwS.js.br +0 -0
- package/dist/client/_app/immutable/nodes/0.CEpgzEwS.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/1.Sm4J_hJ5.js.br +0 -0
- package/dist/client/_app/immutable/nodes/1.Sm4J_hJ5.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/10.BcE-uamz.js +0 -6
- package/dist/client/_app/immutable/nodes/10.BcE-uamz.js.br +0 -0
- package/dist/client/_app/immutable/nodes/10.BcE-uamz.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/2.BGBkNPlf.js +0 -1
- package/dist/client/_app/immutable/nodes/2.BGBkNPlf.js.br +0 -0
- package/dist/client/_app/immutable/nodes/2.BGBkNPlf.js.gz +0 -0
- package/dist/client/_app/immutable/nodes/9.C7P5VSNI.js.br +0 -0
- package/dist/client/_app/immutable/nodes/9.C7P5VSNI.js.gz +0 -0
- package/dist/server/chunks/10-x0FGzJF7.js +0 -22
- package/dist/server/chunks/10-x0FGzJF7.js.map +0 -1
- package/dist/server/chunks/3-CcIZ_M60.js.map +0 -1
- package/dist/server/chunks/4-DyArZX6h.js.map +0 -1
- package/dist/server/chunks/5-DVrv6Zto.js.map +0 -1
- package/dist/server/chunks/6-AD0Ee23-.js +0 -65
- package/dist/server/chunks/6-AD0Ee23-.js.map +0 -1
- package/dist/server/chunks/8-CRPOubhA.js.map +0 -1
- package/dist/server/chunks/9-BhWG76gi.js +0 -22
- package/dist/server/chunks/9-BhWG76gi.js.map +0 -1
- package/dist/server/chunks/_layout.svelte-CP4jFwsK.js.map +0 -1
- package/dist/server/chunks/_page.svelte-7KJNFri5.js.map +0 -1
- package/dist/server/chunks/_page.svelte-B3Zfq6_t.js.map +0 -1
- package/dist/server/chunks/_page.svelte-BQLzgYrr.js.map +0 -1
- package/dist/server/chunks/_server.ts-B1t_0LJV.js +0 -19
- package/dist/server/chunks/_server.ts-B1t_0LJV.js.map +0 -1
- package/dist/server/chunks/client-BvtIF74Y.js.map +0 -1
- package/dist/server/chunks/error-D23CGeyL.js.map +0 -1
- package/dist/server/chunks/error.svelte-DZuW0iDP.js.map +0 -1
- package/dist/server/chunks/events-DeYJGjCt.js.map +0 -1
- package/dist/server/chunks/hooks.server-Dox7llar.js.map +0 -1
- package/dist/server/chunks/internal-B77zebhK.js.map +0 -1
- package/dist/server/chunks/loader-circle-zqx69BdD.js.map +0 -1
- package/dist/server/chunks/logo-BfI7zmyL.js.map +0 -1
- package/dist/server/chunks/project-loader-BkV0zjlj.js.map +0 -1
- package/dist/server/chunks/request-handler-D-qbwxhh.js.map +0 -1
- package/dist/server/chunks/runtime-CDHWD9vo.js.map +0 -1
- package/dist/server/chunks/schemas-ENQuLVBq.js.map +0 -1
- package/dist/server/chunks/state-q9lwVQK2.js.map +0 -1
- /package/dist/client/_app/immutable/assets/{10.BP_hUVIU.css → 3.BP_hUVIU.css} +0 -0
- /package/dist/client/_app/immutable/assets/{10.BP_hUVIU.css.br → 3.BP_hUVIU.css.br} +0 -0
- /package/dist/client/_app/immutable/assets/{10.BP_hUVIU.css.gz → 3.BP_hUVIU.css.gz} +0 -0
- /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,9 +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
|
+
import { plainToInstance } from "class-transformer";
|
|
7
|
+
import { validate } from "class-validator";
|
|
8
|
+
import micromatch from "micromatch";
|
|
6
9
|
import path, { dirname, join, resolve } from "node:path";
|
|
10
|
+
import * as tar from "tar";
|
|
7
11
|
import fs, { existsSync } from "node:fs";
|
|
8
12
|
import { $ } from "bun";
|
|
9
13
|
import { config } from "dotenv";
|
|
@@ -12,7 +16,10 @@ import ts from "typescript";
|
|
|
12
16
|
var parseFormDataBody = (rawBody, c) => {
|
|
13
17
|
return parseBody(Object.fromEntries(Array.from(rawBody.entries()).map(([key, value]) => [key, JSON.parse(value)])), c);
|
|
14
18
|
};
|
|
15
|
-
var parseBody = (baseBody, c) => {
|
|
19
|
+
var parseBody = async (baseBody, c) => {
|
|
20
|
+
if (!c) return baseBody;
|
|
21
|
+
const errors = await validate(plainToInstance(c, baseBody, { excludeExtraneousValues: true }));
|
|
22
|
+
if (errors.length > 0) throw new Exception("Bad Request", `Invalid body :\n${errors.toString().replace(/,/g, "\n")}`, 400);
|
|
16
23
|
return baseBody;
|
|
17
24
|
};
|
|
18
25
|
var getContext = async (event) => {
|
|
@@ -24,6 +31,11 @@ var getContext = async (event) => {
|
|
|
24
31
|
project
|
|
25
32
|
};
|
|
26
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
|
+
};
|
|
27
39
|
var setTokensInCookies = (cookies, { accessToken, refreshToken, tokenExpiresAt }) => {
|
|
28
40
|
cookies.set("accessToken", accessToken, {
|
|
29
41
|
httpOnly: true,
|
|
@@ -116,6 +128,11 @@ var AuthRepository = class extends BaseRepository {
|
|
|
116
128
|
return this.post(`/auth/refresh-token`, input);
|
|
117
129
|
}
|
|
118
130
|
};
|
|
131
|
+
var PackageRepository = class extends BaseRepository {
|
|
132
|
+
getAll(query) {
|
|
133
|
+
return this.get(getUrl(`/packages`, query), { offline: true });
|
|
134
|
+
}
|
|
135
|
+
};
|
|
119
136
|
var ProjectRepository = class extends BaseRepository {
|
|
120
137
|
getProject(id) {
|
|
121
138
|
return this.get(`/editor/projects/${id}`);
|
|
@@ -135,6 +152,7 @@ var getNoAuthApi = () => {
|
|
|
135
152
|
const isOnline = PUBLIC_MODE === "ONLINE";
|
|
136
153
|
return {
|
|
137
154
|
auth: new AuthRepository(client, isOnline),
|
|
155
|
+
packages: new PackageRepository(client, isOnline),
|
|
138
156
|
registry: new RegistryRepository(client, isOnline)
|
|
139
157
|
};
|
|
140
158
|
};
|
|
@@ -146,6 +164,7 @@ var getApi = (cookies) => {
|
|
|
146
164
|
} }).useMiddlewares(useTokenMiddleware(cookies));
|
|
147
165
|
return {
|
|
148
166
|
auth: new AuthRepository(client),
|
|
167
|
+
packages: new PackageRepository(client),
|
|
149
168
|
projects: new ProjectRepository(client),
|
|
150
169
|
registry: new RegistryRepository(client)
|
|
151
170
|
};
|
|
@@ -280,6 +299,9 @@ var Cli = class {
|
|
|
280
299
|
var resolveRootPath = (userPath) => {
|
|
281
300
|
return resolve(resolve(private_env.FS_ROOT ?? ""), userPath);
|
|
282
301
|
};
|
|
302
|
+
var resolveArchiveRootPath = () => {
|
|
303
|
+
return resolve(private_env.ARCHIVE_ROOT ?? "");
|
|
304
|
+
};
|
|
283
305
|
var FileSystemError = class extends Exception {
|
|
284
306
|
constructor(message) {
|
|
285
307
|
super("Bad Request", message, 400);
|
|
@@ -304,15 +326,18 @@ var ProjectDirectory = class {
|
|
|
304
326
|
this.projectPath = projectPath;
|
|
305
327
|
this._checkPathIsInsideProject();
|
|
306
328
|
}
|
|
307
|
-
read(recursive = false) {
|
|
329
|
+
read(recursive = false, createIfNotExist = false) {
|
|
330
|
+
if (createIfNotExist) {
|
|
331
|
+
if (!fs.existsSync(this.path)) this.create();
|
|
332
|
+
}
|
|
308
333
|
this._checkPathExists();
|
|
309
334
|
this._checkPathIsDir();
|
|
310
335
|
this._checkPathIsReadable();
|
|
311
336
|
return this._readDirContent(this.path, recursive);
|
|
312
337
|
}
|
|
313
|
-
create() {
|
|
338
|
+
create(path = this.path) {
|
|
314
339
|
this._checkPathNotExists();
|
|
315
|
-
fs.mkdirSync(
|
|
340
|
+
fs.mkdirSync(path, { recursive: true });
|
|
316
341
|
}
|
|
317
342
|
delete(recursive = false) {
|
|
318
343
|
this._checkPathExists();
|
|
@@ -388,6 +413,64 @@ var ProjectDirectory = class {
|
|
|
388
413
|
return dirContent;
|
|
389
414
|
}
|
|
390
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
|
+
};
|
|
391
474
|
var ProjectFile = class {
|
|
392
475
|
_path;
|
|
393
476
|
projectPath;
|
|
@@ -659,8 +742,20 @@ var Loader = class {
|
|
|
659
742
|
var PackageTypeEnum = /* @__PURE__ */ function(PackageTypeEnum) {
|
|
660
743
|
PackageTypeEnum["COMPONENT"] = "component";
|
|
661
744
|
PackageTypeEnum["SYSTEM"] = "system";
|
|
745
|
+
PackageTypeEnum["ASSET"] = "asset";
|
|
662
746
|
return PackageTypeEnum;
|
|
663
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
|
+
};
|
|
664
759
|
var MANIFEST_TITLES = {
|
|
665
760
|
[PackageTypeEnum.COMPONENT]: "EDITOR_COMPONENT_MANIFEST",
|
|
666
761
|
[PackageTypeEnum.SYSTEM]: "EDITOR_SYSTEM_MANIFEST"
|
|
@@ -718,77 +813,97 @@ var getManifestFromNode = (source) => {
|
|
|
718
813
|
if (!ts.isObjectLiteralExpression(init)) return null;
|
|
719
814
|
return parseElement(init);
|
|
720
815
|
};
|
|
721
|
-
var parseManifest = (
|
|
816
|
+
var parseManifest = (type, source) => {
|
|
722
817
|
const id = getName(source);
|
|
723
|
-
const manifest = getManifestFromNode(findManifestNode(
|
|
818
|
+
const manifest = getManifestFromNode(findManifestNode(MANIFEST_TITLES[type], source));
|
|
724
819
|
if (!id || !manifest) return null;
|
|
725
820
|
return {
|
|
726
821
|
id,
|
|
822
|
+
type,
|
|
727
823
|
...manifest
|
|
728
824
|
};
|
|
729
825
|
};
|
|
730
826
|
var resolveManifest = (type, content) => {
|
|
731
|
-
|
|
732
|
-
return parseManifest(MANIFEST_TITLES[type], source);
|
|
827
|
+
return parseManifest(type, ts.createSourceFile("tmp.ts", content, ts.ScriptTarget.ESNext, true));
|
|
733
828
|
};
|
|
734
|
-
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 {
|
|
735
841
|
handler;
|
|
736
842
|
constructor(handler) {
|
|
737
843
|
this.handler = handler;
|
|
738
844
|
}
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
if (rc.type !== "component") throw new Error(`Can only add component: ${name} is a ${rc.type}`);
|
|
742
|
-
this.handler._cli.install([name], { server: this.handler._part === "server" || void 0 });
|
|
743
|
-
return this._getNewComponentPackage(rc.name, rc._file);
|
|
845
|
+
resolveFromName(type, rawName) {
|
|
846
|
+
return this.resolveFromFilename(type, PACKAGES_PATH_FORMATTER[type](rawName));
|
|
744
847
|
}
|
|
745
|
-
|
|
746
|
-
const
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
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
|
+
}));
|
|
750
899
|
}
|
|
751
|
-
/**
|
|
752
|
-
* Create a new component in the project
|
|
753
|
-
* @beta function to be reworked
|
|
754
|
-
*
|
|
755
|
-
* @param {string} name - Name of the component
|
|
756
|
-
*/
|
|
757
900
|
createComponent(name) {
|
|
758
901
|
this._createPackage(PackageTypeEnum.COMPONENT, name);
|
|
759
|
-
return this.
|
|
902
|
+
return this.manifestHandler.resolveFromName(PackageTypeEnum.COMPONENT, name);
|
|
760
903
|
}
|
|
761
|
-
/**
|
|
762
|
-
* Create a new system in the project and update the save file
|
|
763
|
-
* @beta function to be reworked
|
|
764
|
-
*
|
|
765
|
-
* @param {string} name - Name of the system
|
|
766
|
-
*/
|
|
767
904
|
createSystem(name) {
|
|
768
905
|
this._createPackage(PackageTypeEnum.SYSTEM, name);
|
|
769
|
-
return this.
|
|
770
|
-
}
|
|
771
|
-
/**
|
|
772
|
-
* Get the manifest of the component
|
|
773
|
-
* @beta function to be reworked
|
|
774
|
-
*
|
|
775
|
-
* @param {string} path - Path from `/<client|server>`
|
|
776
|
-
*
|
|
777
|
-
* @returns Manifest of the component
|
|
778
|
-
*/
|
|
779
|
-
getComponentManifest(path) {
|
|
780
|
-
return this._getPackageManifest(PackageTypeEnum.COMPONENT, path);
|
|
781
|
-
}
|
|
782
|
-
/**
|
|
783
|
-
* Get the manifest of the system
|
|
784
|
-
* @beta function to be reworked
|
|
785
|
-
*
|
|
786
|
-
* @param {string} path - Path from `/<client|server>`
|
|
787
|
-
*
|
|
788
|
-
* @returns Manifest of the system
|
|
789
|
-
*/
|
|
790
|
-
getSystemManifest(path) {
|
|
791
|
-
return this._getPackageManifest(PackageTypeEnum.SYSTEM, path);
|
|
906
|
+
return this.manifestHandler.resolveFromName(PackageTypeEnum.SYSTEM, name);
|
|
792
907
|
}
|
|
793
908
|
async getComponents() {
|
|
794
909
|
return this._resolvesPackages(PackageTypeEnum.COMPONENT);
|
|
@@ -796,22 +911,18 @@ var PackageHandler = class {
|
|
|
796
911
|
async getSystems() {
|
|
797
912
|
return this._resolvesPackages(PackageTypeEnum.SYSTEM);
|
|
798
913
|
}
|
|
914
|
+
async getAssets() {
|
|
915
|
+
return this._resolvesPackages(PackageTypeEnum.ASSET);
|
|
916
|
+
}
|
|
799
917
|
_resolvesPackages(type) {
|
|
800
|
-
const basePath = type
|
|
801
|
-
const content = this.handler.fs.getDirectory(basePath).read(true);
|
|
802
|
-
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));
|
|
803
921
|
}
|
|
804
|
-
_resolvesPackage(type,
|
|
805
|
-
const
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
save: {
|
|
809
|
-
name: manifest.id,
|
|
810
|
-
path
|
|
811
|
-
}
|
|
812
|
-
};
|
|
813
|
-
if (type === PackageTypeEnum.COMPONENT) res.save.params = manifest.params.map(({ name }) => name);
|
|
814
|
-
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);
|
|
815
926
|
}
|
|
816
927
|
_resolvesPackageFilesPathFromContent(content, path = "") {
|
|
817
928
|
const files = content.files.map((file) => join(path, file));
|
|
@@ -821,56 +932,12 @@ var PackageHandler = class {
|
|
|
821
932
|
});
|
|
822
933
|
return [...files, ...directories.flat()];
|
|
823
934
|
}
|
|
824
|
-
_getNewComponentPackage(name, fileName) {
|
|
825
|
-
const path = `./components/${fileName}`;
|
|
826
|
-
const manifest = this._findPackageManifest(this.getComponentManifest, path);
|
|
827
|
-
return {
|
|
828
|
-
manifest,
|
|
829
|
-
save: {
|
|
830
|
-
name,
|
|
831
|
-
path,
|
|
832
|
-
paramsNames: manifest.params.map(({ name }) => name)
|
|
833
|
-
}
|
|
834
|
-
};
|
|
835
|
-
}
|
|
836
|
-
_getNewSystemPackage(name, fileName) {
|
|
837
|
-
const path = `./systems/${fileName}`;
|
|
838
|
-
return {
|
|
839
|
-
manifest: this._findPackageManifest(this.getSystemManifest, path),
|
|
840
|
-
save: {
|
|
841
|
-
name,
|
|
842
|
-
path
|
|
843
|
-
}
|
|
844
|
-
};
|
|
845
|
-
}
|
|
846
|
-
_findPackageManifest(manifestGetter, path) {
|
|
847
|
-
const manifest = [
|
|
848
|
-
"",
|
|
849
|
-
".ts",
|
|
850
|
-
".js"
|
|
851
|
-
].reduce((result, p) => {
|
|
852
|
-
if (result) return result;
|
|
853
|
-
try {
|
|
854
|
-
return manifestGetter(path + p);
|
|
855
|
-
} catch (e) {
|
|
856
|
-
if (!(e instanceof FileSystemError)) throw e;
|
|
857
|
-
}
|
|
858
|
-
}, void 0);
|
|
859
|
-
if (!manifest) throw new FileSystemError("Can't find package manifest");
|
|
860
|
-
return manifest;
|
|
861
|
-
}
|
|
862
935
|
_createPackage(type, name) {
|
|
863
936
|
this.handler._cli.create(type, {
|
|
864
937
|
name,
|
|
865
938
|
server: this.handler._part === "server" || void 0
|
|
866
939
|
});
|
|
867
940
|
}
|
|
868
|
-
_getPackageManifest(type, path) {
|
|
869
|
-
return resolveManifest(type, this.handler._rootFs.getFile(this._resolvePartPath(path)).read());
|
|
870
|
-
}
|
|
871
|
-
_resolvePartPath(path) {
|
|
872
|
-
return join(this.handler._part, path);
|
|
873
|
-
}
|
|
874
941
|
};
|
|
875
942
|
var SaveHandler = class {
|
|
876
943
|
handler;
|
|
@@ -969,6 +1036,7 @@ var Handler = class {
|
|
|
969
1036
|
_fsCache;
|
|
970
1037
|
_gitCache;
|
|
971
1038
|
_projectCache;
|
|
1039
|
+
_archiveCache;
|
|
972
1040
|
constructor(context, event, body) {
|
|
973
1041
|
this._context = context;
|
|
974
1042
|
this._event = event;
|
|
@@ -983,6 +1051,7 @@ var Handler = class {
|
|
|
983
1051
|
this._cliCache = void 0;
|
|
984
1052
|
this._fsCache = void 0;
|
|
985
1053
|
this._gitCache = void 0;
|
|
1054
|
+
this._archiveCache = void 0;
|
|
986
1055
|
}
|
|
987
1056
|
get event() {
|
|
988
1057
|
return this._event;
|
|
@@ -1010,6 +1079,10 @@ var Handler = class {
|
|
|
1010
1079
|
if (!this._projectCache) this._projectCache = new ProjectManager(this, this._context);
|
|
1011
1080
|
return this._projectCache;
|
|
1012
1081
|
}
|
|
1082
|
+
get archive() {
|
|
1083
|
+
if (!this._archiveCache) this._archiveCache = new ArchiveSystem(this, this._context);
|
|
1084
|
+
return this._archiveCache;
|
|
1085
|
+
}
|
|
1013
1086
|
};
|
|
1014
1087
|
var DEFAULT_OPTIONS = {
|
|
1015
1088
|
onlineOnly: false,
|
|
@@ -1049,7 +1122,7 @@ var useActionHandler = (callback, options) => {
|
|
|
1049
1122
|
return async (event) => {
|
|
1050
1123
|
try {
|
|
1051
1124
|
const context = await getContext(event);
|
|
1052
|
-
const body = parseFormDataBody(await event.request.formData(), options?.body);
|
|
1125
|
+
const body = await parseFormDataBody(await event.request.formData(), options?.body);
|
|
1053
1126
|
assertRequest(context, options);
|
|
1054
1127
|
return await callback(new Handler(context, event, body));
|
|
1055
1128
|
} catch (e) {
|
|
@@ -1062,6 +1135,7 @@ var handleError = (e) => {
|
|
|
1062
1135
|
error: e.error,
|
|
1063
1136
|
message: e.message
|
|
1064
1137
|
}, { status: e.status });
|
|
1138
|
+
console.error(e);
|
|
1065
1139
|
return Response.json({
|
|
1066
1140
|
error: "Internal Server Error",
|
|
1067
1141
|
message: e
|
|
@@ -1081,4 +1155,4 @@ var useRequestHandler = (callback, options) => {
|
|
|
1081
1155
|
//#endregion
|
|
1082
1156
|
export { useRequestHandler as i, loadProjectFromId as n, useActionHandler as r, loadProject as t };
|
|
1083
1157
|
|
|
1084
|
-
//# 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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"}
|