@phosart/devtool 0.2.39 → 0.2.41
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/build/client/editor/_app/immutable/chunks/6CJS4vYJ.js +1 -0
- package/build/client/editor/_app/immutable/chunks/6CJS4vYJ.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/6CJS4vYJ.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/BKG2qW0y.js +1 -0
- package/build/client/editor/_app/immutable/chunks/BKG2qW0y.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/BKG2qW0y.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/Bjmj_fjv.js +1 -0
- package/build/client/editor/_app/immutable/chunks/Bjmj_fjv.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Bjmj_fjv.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/Bsdd0iEV.js +1 -0
- package/build/client/editor/_app/immutable/chunks/Bsdd0iEV.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Bsdd0iEV.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/BvECcCGn.js +5 -0
- package/build/client/editor/_app/immutable/chunks/BvECcCGn.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/BvECcCGn.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{TuU_UmXF.js → C4FRRE88.js} +2 -2
- package/build/client/editor/_app/immutable/chunks/C4FRRE88.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/C4FRRE88.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/CW00K0_e.js +1 -0
- package/build/client/editor/_app/immutable/chunks/CW00K0_e.js.br +2 -0
- package/build/client/editor/_app/immutable/chunks/CW00K0_e.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{DqFxWrM4.js → CufNBrsB.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/CufNBrsB.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/CufNBrsB.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/D1Iy4U_U.js +1 -0
- package/build/client/editor/_app/immutable/chunks/D1Iy4U_U.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/D1Iy4U_U.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{BwHeJh_l.js → DDBiZJCA.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/DDBiZJCA.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DDBiZJCA.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{CbAv_EyC.js → DEF0v6GB.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/DEF0v6GB.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DEF0v6GB.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DQfcrQAO.js +1 -0
- package/build/client/editor/_app/immutable/chunks/DQfcrQAO.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DQfcrQAO.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DRvHbUd7.js +1 -0
- package/build/client/editor/_app/immutable/chunks/DRvHbUd7.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DRvHbUd7.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{DEuJX0Kw.js → DbOYGS5F.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/DbOYGS5F.js.br +2 -0
- package/build/client/editor/_app/immutable/chunks/DbOYGS5F.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DjT7Tf3A.js +1 -0
- package/build/client/editor/_app/immutable/chunks/DjT7Tf3A.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DjT7Tf3A.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/{BmapHj57.js → DqkELc9G.js} +1 -1
- package/build/client/editor/_app/immutable/chunks/DqkELc9G.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DqkELc9G.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/L4YI7OnJ.js +22 -0
- package/build/client/editor/_app/immutable/chunks/L4YI7OnJ.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/L4YI7OnJ.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/kDDo61RM.js +3 -0
- package/build/client/editor/_app/immutable/chunks/kDDo61RM.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/kDDo61RM.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/l_UCOGKT.js +12 -0
- package/build/client/editor/_app/immutable/chunks/l_UCOGKT.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/l_UCOGKT.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/pILfBOEZ.js +2 -0
- package/build/client/editor/_app/immutable/chunks/pILfBOEZ.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/pILfBOEZ.js.gz +0 -0
- package/build/client/editor/_app/immutable/entry/app.CO8Xxqry.js +2 -0
- package/build/client/editor/_app/immutable/entry/app.CO8Xxqry.js.br +0 -0
- package/build/client/editor/_app/immutable/entry/app.CO8Xxqry.js.gz +0 -0
- package/build/client/editor/_app/immutable/entry/start.CCOuwvu0.js +1 -0
- package/build/client/editor/_app/immutable/entry/start.CCOuwvu0.js.br +2 -0
- package/build/client/editor/_app/immutable/entry/start.CCOuwvu0.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/0.xTCz_WNE.js +1 -0
- package/build/client/editor/_app/immutable/nodes/0.xTCz_WNE.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/0.xTCz_WNE.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/1.Drflzpfo.js +1 -0
- package/build/client/editor/_app/immutable/nodes/1.Drflzpfo.js.br +3 -0
- package/build/client/editor/_app/immutable/nodes/1.Drflzpfo.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/2.4ZL1rJdf.js +1 -0
- package/build/client/editor/_app/immutable/nodes/2.4ZL1rJdf.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/2.4ZL1rJdf.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/3.7JUUZi1F.js +1 -0
- package/build/client/editor/_app/immutable/nodes/3.7JUUZi1F.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/3.7JUUZi1F.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/4.BugyZL-Q.js +1 -0
- package/build/client/editor/_app/immutable/nodes/4.BugyZL-Q.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/4.BugyZL-Q.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/{5.CJJCY1eL.js → 5.Dq-kW5Yp.js} +1 -1
- package/build/client/editor/_app/immutable/nodes/5.Dq-kW5Yp.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/5.Dq-kW5Yp.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/6.BnvXMC1H.js +1 -0
- package/build/client/editor/_app/immutable/nodes/6.BnvXMC1H.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/6.BnvXMC1H.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/{7.CvKW7Bc_.js → 7.B3yi9i_E.js} +1 -1
- package/build/client/editor/_app/immutable/nodes/7.B3yi9i_E.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/7.B3yi9i_E.js.gz +0 -0
- package/build/client/editor/_app/version.json +1 -1
- package/build/client/editor/_app/version.json.br +0 -0
- package/build/client/editor/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-DVxv0pN2.js → 0-BSSu0HSL.js} +7 -4
- package/build/server/chunks/0-BSSu0HSL.js.map +1 -0
- package/build/server/chunks/1-2xp3yUjn.js +9 -0
- package/build/server/chunks/{1-DLAv7zUp.js.map → 1-2xp3yUjn.js.map} +1 -1
- package/build/server/chunks/{2-CXQjo2KJ.js → 2-e19YqID8.js} +10 -6
- package/build/server/chunks/2-e19YqID8.js.map +1 -0
- package/build/server/chunks/{3-CkxCrxkd.js → 3-DdgzeGrn.js} +3 -3
- package/build/server/chunks/{3-CkxCrxkd.js.map → 3-DdgzeGrn.js.map} +1 -1
- package/build/server/chunks/{4-dfmp9D7Q.js → 4-JrdGBN1L.js} +3 -3
- package/build/server/chunks/4-JrdGBN1L.js.map +1 -0
- package/build/server/chunks/{5-BiPB8QCd.js → 5-C2Uau-xm.js} +3 -3
- package/build/server/chunks/5-C2Uau-xm.js.map +1 -0
- package/build/server/chunks/{6-C8te3i1r.js → 6-BOItt9KM.js} +6 -6
- package/build/server/chunks/6-BOItt9KM.js.map +1 -0
- package/build/server/chunks/{7-DFJTEzDX.js → 7-BbROYM4Z.js} +3 -3
- package/build/server/chunks/7-BbROYM4Z.js.map +1 -0
- package/build/server/chunks/{ActionButton-C7pHllIS.js → ActionButton-bCBhEcfn.js} +2 -2
- package/build/server/chunks/{ActionButton-C7pHllIS.js.map → ActionButton-bCBhEcfn.js.map} +1 -1
- package/build/server/chunks/{Checkbox-CgSQMekt.js → Checkbox-Cl0rz2av.js} +3 -3
- package/build/server/chunks/{Checkbox-CgSQMekt.js.map → Checkbox-Cl0rz2av.js.map} +1 -1
- package/build/server/chunks/{Modal-DuJVyuvB.js → Modal-gQ4_8JPX.js} +4 -4
- package/build/server/chunks/{Modal-DuJVyuvB.js.map → Modal-gQ4_8JPX.js.map} +1 -1
- package/build/server/chunks/{TextInput-CI0YQsi8.js → SearchInput-BLX7LjjV.js} +51 -6
- package/build/server/chunks/SearchInput-BLX7LjjV.js.map +1 -0
- package/build/server/chunks/{TagEdit-CPvm35aH.js → TagEdit-Z3SvuMyc.js} +5 -5
- package/build/server/chunks/TagEdit-Z3SvuMyc.js.map +1 -0
- package/build/server/chunks/{TextBox-N5uJQMFh.js → TextBox-BFIQcNco.js} +7 -8
- package/build/server/chunks/{TextBox-N5uJQMFh.js.map → TextBox-BFIQcNco.js.map} +1 -1
- package/build/server/chunks/{Tooltip-GgV7Y2ua.js → Tooltip-D5TPQeJl.js} +2 -2
- package/build/server/chunks/{Tooltip-GgV7Y2ua.js.map → Tooltip-D5TPQeJl.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-B5zISDM2.js → _layout.svelte-uOSj89AZ.js} +12 -12
- package/build/server/chunks/{_layout.svelte-B5zISDM2.js.map → _layout.svelte-uOSj89AZ.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DFajLADj.js → _page.svelte-BcF8bSGN.js} +108 -43
- package/build/server/chunks/_page.svelte-BcF8bSGN.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DZIxV1wc.js → _page.svelte-BwjiTr4Z.js} +86 -24
- package/build/server/chunks/_page.svelte-BwjiTr4Z.js.map +1 -0
- package/build/server/chunks/{_page.svelte-ClKOeEWs.js → _page.svelte-Csrc3Kka.js} +6 -7
- package/build/server/chunks/_page.svelte-Csrc3Kka.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CqwFUF2N.js → _page.svelte-D0qeCuaa.js} +110 -23
- package/build/server/chunks/_page.svelte-D0qeCuaa.js.map +1 -0
- package/build/server/chunks/{_page.svelte-CUQgprcj.js → _page.svelte-DFQGbb4O.js} +6 -7
- package/build/server/chunks/{_page.svelte-CUQgprcj.js.map → _page.svelte-DFQGbb4O.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-A15IM8Ct.js → _page.svelte-Ddt2Wyed.js} +44 -17
- package/build/server/chunks/_page.svelte-Ddt2Wyed.js.map +1 -0
- package/build/server/chunks/{_server.ts-BX9EOCce.js → _server.ts-BxeMXP1a.js} +5 -2
- package/build/server/chunks/{_server.ts-BX9EOCce.js.map → _server.ts-BxeMXP1a.js.map} +1 -1
- package/build/server/chunks/_server.ts-DaG2SqbQ.js +19 -0
- package/build/server/chunks/_server.ts-DaG2SqbQ.js.map +1 -0
- package/build/server/chunks/{_server.ts-C4VM2PrZ.js → _server.ts-DrH-oZMv.js} +5 -2
- package/build/server/chunks/_server.ts-DrH-oZMv.js.map +1 -0
- package/build/server/chunks/{_server.ts-DPK-3jbk.js → _server.ts-Ds6dyXi4.js} +5 -2
- package/build/server/chunks/{_server.ts-DPK-3jbk.js.map → _server.ts-Ds6dyXi4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DVV4aYkL.js → _server.ts-DwYgPNwZ.js} +9 -3
- package/build/server/chunks/_server.ts-DwYgPNwZ.js.map +1 -0
- package/build/server/chunks/_server.ts-OYdhWjAm.js +153 -0
- package/build/server/chunks/_server.ts-OYdhWjAm.js.map +1 -0
- package/build/server/chunks/{_server.ts-Bt1PHziR.js → _server.ts-fomxq4EP.js} +5 -2
- package/build/server/chunks/{_server.ts-Bt1PHziR.js.map → _server.ts-fomxq4EP.js.map} +1 -1
- package/build/server/chunks/{client-xS_j7ZWn.js → client-CJt7aej2.js} +4 -4
- package/build/server/chunks/{client-xS_j7ZWn.js.map → client-CJt7aej2.js.map} +1 -1
- package/build/server/chunks/{context-8SVtp5bW.js → context-BmNrKtQb.js} +2 -2
- package/build/server/chunks/{context-8SVtp5bW.js.map → context-BmNrKtQb.js.map} +1 -1
- package/build/server/chunks/error.svelte-DpjxI-KC.js +15 -0
- package/build/server/chunks/{error.svelte-BB1UMiuT.js.map → error.svelte-DpjxI-KC.js.map} +1 -1
- package/build/server/chunks/{galleryoverride.svelte-RwbS-W95.js → galleryoverride.svelte-BRU5usdL.js} +2 -2
- package/build/server/chunks/{galleryoverride.svelte-RwbS-W95.js.map → galleryoverride.svelte-BRU5usdL.js.map} +1 -1
- package/build/server/chunks/galleryutil-DznhV1Pd.js +120 -0
- package/build/server/chunks/galleryutil-DznhV1Pd.js.map +1 -0
- package/build/server/chunks/github-CM6dx0ky.js +22 -0
- package/build/server/chunks/github-CM6dx0ky.js.map +1 -0
- package/build/server/chunks/{index-CiKLhY7A.js → index-6Cdu3mod.js} +2 -2
- package/build/server/chunks/{index-CiKLhY7A.js.map → index-6Cdu3mod.js.map} +1 -1
- package/build/server/chunks/{index2-DRmxtUQj.js → index2-DHJrk8_o.js} +2 -2
- package/build/server/chunks/{index2-DRmxtUQj.js.map → index2-DHJrk8_o.js.map} +1 -1
- package/build/server/chunks/{index3-CaH_ybmz.js → index3-D6qAZ0Ak.js} +4 -4
- package/build/server/chunks/{index3-CaH_ybmz.js.map → index3-D6qAZ0Ak.js.map} +1 -1
- package/build/server/chunks/{state.svelte-DhKCZN3e.js → state.svelte-CQgQefnE.js} +2 -2
- package/build/server/chunks/{state.svelte-DhKCZN3e.js.map → state.svelte-CQgQefnE.js.map} +1 -1
- package/build/server/chunks/{util-DFt6Yctw.js → util-Cfqr4aAv.js} +25 -3
- package/build/server/chunks/util-Cfqr4aAv.js.map +1 -0
- package/build/server/index.js +4 -4
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +28 -14
- package/build/server/manifest.js.map +1 -1
- package/package.json +3 -2
- package/build/client/editor/_app/immutable/chunks/6o7Debw0.js +0 -3
- package/build/client/editor/_app/immutable/chunks/6o7Debw0.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/6o7Debw0.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/7gAmW7UE.js +0 -1
- package/build/client/editor/_app/immutable/chunks/7gAmW7UE.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/7gAmW7UE.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/BZ2EEWtE.js +0 -1
- package/build/client/editor/_app/immutable/chunks/BZ2EEWtE.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/BZ2EEWtE.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/BmapHj57.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/BmapHj57.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/BwHeJh_l.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/BwHeJh_l.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/ByQY8ln1.js +0 -2
- package/build/client/editor/_app/immutable/chunks/ByQY8ln1.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/ByQY8ln1.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/CLt57AbL.js +0 -1
- package/build/client/editor/_app/immutable/chunks/CLt57AbL.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/CLt57AbL.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/CN_z_8wH.js +0 -1
- package/build/client/editor/_app/immutable/chunks/CN_z_8wH.js.br +0 -2
- package/build/client/editor/_app/immutable/chunks/CN_z_8wH.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/CbAv_EyC.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/CbAv_EyC.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/D1NJb98h.js +0 -1
- package/build/client/editor/_app/immutable/chunks/D1NJb98h.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/D1NJb98h.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DEuJX0Kw.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DEuJX0Kw.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/Dg3UMdbC.js +0 -1
- package/build/client/editor/_app/immutable/chunks/Dg3UMdbC.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Dg3UMdbC.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/DqFxWrM4.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/DqFxWrM4.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/Dw7fRo4f.js +0 -12
- package/build/client/editor/_app/immutable/chunks/Dw7fRo4f.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/Dw7fRo4f.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/JOEBmHft.js +0 -22
- package/build/client/editor/_app/immutable/chunks/JOEBmHft.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/JOEBmHft.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/OAXHpz2m.js +0 -5
- package/build/client/editor/_app/immutable/chunks/OAXHpz2m.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/OAXHpz2m.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/TuU_UmXF.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/TuU_UmXF.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/bnFJskpn.js +0 -1
- package/build/client/editor/_app/immutable/chunks/bnFJskpn.js.br +0 -2
- package/build/client/editor/_app/immutable/chunks/bnFJskpn.js.gz +0 -0
- package/build/client/editor/_app/immutable/chunks/gwr1akGj.js +0 -1
- package/build/client/editor/_app/immutable/chunks/gwr1akGj.js.br +0 -0
- package/build/client/editor/_app/immutable/chunks/gwr1akGj.js.gz +0 -0
- package/build/client/editor/_app/immutable/entry/app.CGWGpYEx.js +0 -2
- package/build/client/editor/_app/immutable/entry/app.CGWGpYEx.js.br +0 -0
- package/build/client/editor/_app/immutable/entry/app.CGWGpYEx.js.gz +0 -0
- package/build/client/editor/_app/immutable/entry/start.kb42cPdT.js +0 -1
- package/build/client/editor/_app/immutable/entry/start.kb42cPdT.js.br +0 -2
- package/build/client/editor/_app/immutable/entry/start.kb42cPdT.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/0.CgQGVwQy.js +0 -1
- package/build/client/editor/_app/immutable/nodes/0.CgQGVwQy.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/0.CgQGVwQy.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/1.Clv1q2Lb.js +0 -1
- package/build/client/editor/_app/immutable/nodes/1.Clv1q2Lb.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/1.Clv1q2Lb.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/2.BQsuvx4V.js +0 -1
- package/build/client/editor/_app/immutable/nodes/2.BQsuvx4V.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/2.BQsuvx4V.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/3.C6sWHRJz.js +0 -1
- package/build/client/editor/_app/immutable/nodes/3.C6sWHRJz.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/3.C6sWHRJz.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/4.DZS4NCiF.js +0 -1
- package/build/client/editor/_app/immutable/nodes/4.DZS4NCiF.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/4.DZS4NCiF.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/5.CJJCY1eL.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/5.CJJCY1eL.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/6.DWF34OYk.js +0 -1
- package/build/client/editor/_app/immutable/nodes/6.DWF34OYk.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/6.DWF34OYk.js.gz +0 -0
- package/build/client/editor/_app/immutable/nodes/7.CvKW7Bc_.js.br +0 -0
- package/build/client/editor/_app/immutable/nodes/7.CvKW7Bc_.js.gz +0 -0
- package/build/server/chunks/0-DVxv0pN2.js.map +0 -1
- package/build/server/chunks/1-DLAv7zUp.js +0 -9
- package/build/server/chunks/2-CXQjo2KJ.js.map +0 -1
- package/build/server/chunks/4-dfmp9D7Q.js.map +0 -1
- package/build/server/chunks/5-BiPB8QCd.js.map +0 -1
- package/build/server/chunks/6-C8te3i1r.js.map +0 -1
- package/build/server/chunks/7-DFJTEzDX.js.map +0 -1
- package/build/server/chunks/SearchInput-CSyQyxOt.js +0 -43
- package/build/server/chunks/SearchInput-CSyQyxOt.js.map +0 -1
- package/build/server/chunks/TagEdit-CPvm35aH.js.map +0 -1
- package/build/server/chunks/TextInput-CI0YQsi8.js.map +0 -1
- package/build/server/chunks/_page.svelte-A15IM8Ct.js.map +0 -1
- package/build/server/chunks/_page.svelte-ClKOeEWs.js.map +0 -1
- package/build/server/chunks/_page.svelte-CqwFUF2N.js.map +0 -1
- package/build/server/chunks/_page.svelte-DFajLADj.js.map +0 -1
- package/build/server/chunks/_page.svelte-DZIxV1wc.js.map +0 -1
- package/build/server/chunks/_server.ts-C4VM2PrZ.js.map +0 -1
- package/build/server/chunks/_server.ts-DVV4aYkL.js.map +0 -1
- package/build/server/chunks/error.svelte-BB1UMiuT.js +0 -15
- package/build/server/chunks/galleryutil-BkuoU13t.js +0 -50
- package/build/server/chunks/galleryutil-BkuoU13t.js.map +0 -1
- package/build/server/chunks/server2--i02zbDo.js +0 -23
- package/build/server/chunks/server2--i02zbDo.js.map +0 -1
- package/build/server/chunks/util-DFt6Yctw.js.map +0 -1
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
import { K as props_id, w as head, G as attr, J as stringify, x as ensure_array_like, y as attr_class } from './index2-
|
|
2
|
-
import { g as goto, i as invalidateAll } from './client-
|
|
3
|
-
import { r as resolve } from './
|
|
4
|
-
import { M as Modal, C as Collapsable } from './Modal-
|
|
5
|
-
import { C as Checkbox } from './Checkbox-
|
|
6
|
-
import { T as TextInput } from './
|
|
7
|
-
import { A as ActionButton } from './ActionButton-
|
|
8
|
-
import {
|
|
9
|
-
import { B as escape_html } from './context-
|
|
10
|
-
import './index-
|
|
1
|
+
import { K as props_id, w as head, G as attr, J as stringify, x as ensure_array_like, y as attr_class } from './index2-DHJrk8_o.js';
|
|
2
|
+
import { g as goto, i as invalidateAll } from './client-CJt7aej2.js';
|
|
3
|
+
import { r as resolve } from './util-Cfqr4aAv.js';
|
|
4
|
+
import { M as Modal, C as Collapsable } from './Modal-gQ4_8JPX.js';
|
|
5
|
+
import { C as Checkbox } from './Checkbox-Cl0rz2av.js';
|
|
6
|
+
import { S as SearchInput, T as TextInput } from './SearchInput-BLX7LjjV.js';
|
|
7
|
+
import { A as ActionButton } from './ActionButton-bCBhEcfn.js';
|
|
8
|
+
import { a as isBaseGallery, c as copyPieces } from './galleryutil-DznhV1Pd.js';
|
|
9
|
+
import { B as escape_html } from './context-BmNrKtQb.js';
|
|
10
|
+
import './index-6Cdu3mod.js';
|
|
11
11
|
import './event-ByDKS2H7.js';
|
|
12
|
-
import './state.svelte-
|
|
12
|
+
import './state.svelte-CQgQefnE.js';
|
|
13
|
+
import './log-Dgdg632G.js';
|
|
14
|
+
import 'tslog';
|
|
13
15
|
import './routing-C4Egnc9A.js';
|
|
14
|
-
import './Tooltip-
|
|
16
|
+
import './Tooltip-D5TPQeJl.js';
|
|
15
17
|
import 'fuzzysort';
|
|
18
|
+
import 'node:path';
|
|
16
19
|
|
|
17
20
|
function FileTree($$renderer, $$props) {
|
|
18
21
|
$$renderer.component(($$renderer2) => {
|
|
@@ -106,6 +109,7 @@ function _page($$renderer, $$props) {
|
|
|
106
109
|
let newName = "";
|
|
107
110
|
let isExtendedGallery = false;
|
|
108
111
|
let search = "";
|
|
112
|
+
let copyPath = "";
|
|
109
113
|
function folder($$renderer3, folderName, path) {
|
|
110
114
|
Collapsable($$renderer3, {
|
|
111
115
|
title: folderName,
|
|
@@ -118,7 +122,7 @@ function _page($$renderer, $$props) {
|
|
|
118
122
|
$$renderer4.push(`<!----> `);
|
|
119
123
|
FileTree($$renderer4, {
|
|
120
124
|
showEmpty,
|
|
121
|
-
structure: data.
|
|
125
|
+
structure: data.tree,
|
|
122
126
|
folder,
|
|
123
127
|
file,
|
|
124
128
|
path: [...path, folderName]
|
|
@@ -186,10 +190,16 @@ function _page($$renderer, $$props) {
|
|
|
186
190
|
ActionButton($$renderer4, {
|
|
187
191
|
disabled: !newName,
|
|
188
192
|
action: async () => {
|
|
189
|
-
|
|
193
|
+
const target = [...path, newName + ".gallery"].join("/");
|
|
194
|
+
let pieces = [];
|
|
195
|
+
const copied = data.galleries[copyPath];
|
|
196
|
+
if (!isExtendedGallery && copied && isBaseGallery(copied)) {
|
|
197
|
+
pieces = await copyPieces(copied.pieces, copyPath, target);
|
|
198
|
+
}
|
|
199
|
+
await fetch(resolve("/api/gallery/[...gallerypath]/save", { gallerypath: target }), {
|
|
190
200
|
method: "POST",
|
|
191
201
|
headers: { "Content-Type": "application/json" },
|
|
192
|
-
body: JSON.stringify(isExtendedGallery ? { $extends: [] } : { pieces
|
|
202
|
+
body: JSON.stringify(isExtendedGallery ? { $extends: [] } : { pieces })
|
|
193
203
|
});
|
|
194
204
|
await invalidateAll();
|
|
195
205
|
close();
|
|
@@ -213,6 +223,22 @@ function _page($$renderer, $$props) {
|
|
|
213
223
|
$$settled = false;
|
|
214
224
|
}
|
|
215
225
|
});
|
|
226
|
+
$$renderer5.push(`<!----> <div class="my-4"></div> <div class="flex items-center gap-x-3">`);
|
|
227
|
+
TextInput($$renderer5, {
|
|
228
|
+
label: "Copy From...",
|
|
229
|
+
disabled: isExtendedGallery,
|
|
230
|
+
options: Object.keys(data.galleries).filter((k) => isBaseGallery(data.galleries[k])),
|
|
231
|
+
noReportValidation: true,
|
|
232
|
+
validationError: copyPath !== "" && !data.galleries[copyPath] ? "Select a valid path" : void 0,
|
|
233
|
+
get value() {
|
|
234
|
+
return copyPath;
|
|
235
|
+
},
|
|
236
|
+
set value($$value) {
|
|
237
|
+
copyPath = $$value;
|
|
238
|
+
$$settled = false;
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
$$renderer5.push(`<!----> ${escape_html(data.galleries[copyPath] ? "✅" : "❌")}</div>`);
|
|
216
242
|
},
|
|
217
243
|
$$slots: { default: true }
|
|
218
244
|
});
|
|
@@ -259,6 +285,7 @@ function _page($$renderer, $$props) {
|
|
|
259
285
|
autoFocus: true,
|
|
260
286
|
class: "grow",
|
|
261
287
|
noReportValidation: true,
|
|
288
|
+
acceptSuggestionOnEnter: true,
|
|
262
289
|
validationError: search !== "" && !data.galleryPaths.includes(search) ? "invalid path" : void 0,
|
|
263
290
|
options: asRecord(data.galleryPaths, (p) => p),
|
|
264
291
|
onSelect: (s) => {
|
|
@@ -277,7 +304,7 @@ function _page($$renderer, $$props) {
|
|
|
277
304
|
$$renderer3.push(`<!----></div></div> `);
|
|
278
305
|
controls($$renderer3, []);
|
|
279
306
|
$$renderer3.push(`<!----> `);
|
|
280
|
-
FileTree($$renderer3, { structure: data.
|
|
307
|
+
FileTree($$renderer3, { structure: data.tree, folder, file, showEmpty });
|
|
281
308
|
$$renderer3.push(`<!---->`);
|
|
282
309
|
}
|
|
283
310
|
do {
|
|
@@ -290,4 +317,4 @@ function _page($$renderer, $$props) {
|
|
|
290
317
|
}
|
|
291
318
|
|
|
292
319
|
export { _page as default };
|
|
293
|
-
//# sourceMappingURL=_page.svelte-
|
|
320
|
+
//# sourceMappingURL=_page.svelte-Ddt2Wyed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-Ddt2Wyed.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.svelte.js"],"sourcesContent":["import { G as ensure_array_like, x as attr_class, F as stringify, K as props_id, J as head, w as attr } from \"../../chunks/index2.js\";\nimport { g as goto, i as invalidateAll } from \"../../chunks/client.js\";\nimport { r as resolve } from \"../../chunks/server2.js\";\nimport { M as Modal, C as Collapsable } from \"../../chunks/Modal.js\";\nimport { C as Checkbox } from \"../../chunks/Checkbox.js\";\nimport { S as SearchInput, T as TextInput } from \"../../chunks/SearchInput.js\";\nimport { A as ActionButton } from \"../../chunks/ActionButton.js\";\nimport { a as isBaseGallery, c as copyPieces } from \"../../chunks/galleryutil.js\";\nimport { k as escape_html } from \"../../chunks/context.js\";\nfunction FileTree($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const { structure, folder, file: file2, filter, path: propPath, showEmpty } = $$props;\n const path = propPath ?? [];\n const curStructure = (() => {\n let cur = structure;\n for (const el of path) {\n const next = cur.structure[el];\n if (next.$type != \"folder\") {\n return null;\n }\n cur = next;\n }\n return cur;\n })();\n (() => {\n if (!curStructure) {\n throw new Error(\":(\");\n }\n })();\n const filesToShow = Object.entries(curStructure.structure).filter(([, v]) => v.$type == \"folder\" ? false : filter?.(v) ?? true).map(([k]) => k);\n const folders = Object.entries(curStructure.structure).filter(([, v]) => v.$type == \"folder\" && (showEmpty || v.items > 0)).map(([k]) => k);\n $$renderer2.push(`<div class=\"flex flex-col items-start text-left\"><!--[-->`);\n const each_array = ensure_array_like(folders);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let fname = each_array[$$index];\n folder($$renderer2, fname, path);\n $$renderer2.push(`<!---->`);\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_1 = ensure_array_like(filesToShow);\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let fname = each_array_1[$$index_1];\n file2($$renderer2, fname, curStructure.structure[fname], path);\n $$renderer2.push(`<!---->`);\n }\n $$renderer2.push(`<!--]--></div>`);\n });\n}\nfunction TreeButton($$renderer, $$props) {\n const { children, icon } = $$props;\n $$renderer.push(`<button class=\"m-1 cursor-pointer rounded-2xl border bg-white p-2 select-none hover:bg-gray-300 active:bg-gray-500\">`);\n if (icon) {\n $$renderer.push(\"<!--[-->\");\n $$renderer.push(`<i${attr_class(`fa-solid fa-${stringify(icon)}`)}></i>`);\n } else {\n $$renderer.push(\"<!--[!-->\");\n }\n $$renderer.push(`<!--]--> `);\n if (children) {\n $$renderer.push(\"<!--[-->\");\n $$renderer.push(`<span${attr_class(\"\", void 0, { \"pr-2\": !!icon })}>`);\n children($$renderer);\n $$renderer.push(`<!----></span>`);\n } else {\n $$renderer.push(\"<!--[!-->\");\n }\n $$renderer.push(`<!--]--></button>`);\n}\nfunction defaultCombine(a) {\n return a;\n}\nfunction asRecord(arr, key, combine) {\n const record = {};\n for (const val of arr) {\n const k = key(val);\n if (k in record) {\n record[k] = defaultCombine(record[k], val);\n } else {\n record[k] = val;\n }\n }\n return record;\n}\nfunction file($$renderer, fileName, file2, path) {\n file2.$type === \"gallery\" ? \"gallery\" : file2.$type === \"artist\" ? \"artists\" : null;\n const icon = file2.$type === \"gallery\" && file2.isBase ? \"images\" : file2.$type === \"gallery\" && !file2.isBase ? \"anchor\" : file2.$type === \"artist\" ? \"palette\" : void 0;\n TreeButton($$renderer, {\n icon,\n children: ($$renderer2) => {\n $$renderer2.push(`<!---->${escape_html(fileName)}`);\n }\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const id = props_id($$renderer2);\n const { data } = $$props;\n let showEmpty = false;\n let newName = \"\";\n let isExtendedGallery = false;\n let search = \"\";\n let copyPath = \"\";\n function folder($$renderer3, folderName, path) {\n Collapsable($$renderer3, {\n title: folderName,\n class: \"my-1\",\n openIcon: \"fa-folder-open\",\n closedIcon: \"fa-folder\",\n iconFamily: \"regular\",\n children: ($$renderer4) => {\n controls($$renderer4, [...path, folderName]);\n $$renderer4.push(`<!----> `);\n FileTree($$renderer4, {\n showEmpty,\n structure: data.tree,\n folder,\n file,\n path: [...path, folderName]\n });\n $$renderer4.push(`<!---->`);\n },\n $$slots: { default: true }\n });\n }\n function controls($$renderer3, path) {\n $$renderer3.push(`<div class=\"mb-4 flex gap-x-1\">`);\n {\n let children = function($$renderer4, close) {\n $$renderer4.push(`<div class=\"m-2 border-b p-3 font-bold\">New Folder</div> <div>`);\n TextInput($$renderer4, {\n label: \"Folder name\",\n get value() {\n return newName;\n },\n set value($$value) {\n newName = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> `);\n ActionButton($$renderer4, {\n disabled: !newName,\n action: async () => {\n await fetch(resolve(\"/api/folder/[...folderpath]\", { folderpath: [...path, newName].join(\"/\") }), { method: \"PATCH\" });\n await invalidateAll();\n showEmpty = true;\n close();\n },\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Create`);\n }\n });\n $$renderer4.push(`<!----></div>`);\n };\n Modal($$renderer3, {\n title: \"\",\n tooltip: \"New Folder\",\n icon: \"fa-solid fa-folder-plus\",\n onClose: () => void (newName = \"\"),\n hideHeader: true,\n children,\n $$slots: { default: true }\n });\n }\n $$renderer3.push(`<!----> `);\n {\n let children = function($$renderer4, close) {\n $$renderer4.push(`<div class=\"m-2 border-b p-3 font-bold\">New Gallery</div> <div>`);\n TextInput($$renderer4, {\n label: \"Gallery Name\",\n get value() {\n return newName;\n },\n set value($$value) {\n newName = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> `);\n ActionButton($$renderer4, {\n disabled: !newName,\n action: async () => {\n const target = [...path, newName + \".gallery\"].join(\"/\");\n let pieces = [];\n const copied = data.galleries[copyPath];\n if (!isExtendedGallery && copied && isBaseGallery(copied)) {\n pieces = await copyPieces(copied.pieces, copyPath, target);\n }\n await fetch(resolve(\"/api/gallery/[...gallerypath]/save\", { gallerypath: target }), {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(isExtendedGallery ? { $extends: [] } : { pieces })\n });\n await invalidateAll();\n close();\n },\n children: ($$renderer5) => {\n $$renderer5.push(`<!---->Create`);\n }\n });\n $$renderer4.push(`<!----> `);\n Collapsable($$renderer4, {\n title: \"Advanced\",\n class: \"mt-4\",\n children: ($$renderer5) => {\n Checkbox($$renderer5, {\n label: \"Is extended gallery\",\n get checked() {\n return isExtendedGallery;\n },\n set checked($$value) {\n isExtendedGallery = $$value;\n $$settled = false;\n }\n });\n $$renderer5.push(`<!----> <div class=\"my-4\"></div> <div class=\"flex items-center gap-x-3\">`);\n TextInput($$renderer5, {\n label: \"Copy From...\",\n disabled: isExtendedGallery,\n options: Object.keys(data.galleries).filter((k) => isBaseGallery(data.galleries[k])),\n noReportValidation: true,\n validationError: copyPath !== \"\" && !data.galleries[copyPath] ? \"Select a valid path\" : void 0,\n get value() {\n return copyPath;\n },\n set value($$value) {\n copyPath = $$value;\n $$settled = false;\n }\n });\n $$renderer5.push(`<!----> ${escape_html(data.galleries[copyPath] ? \"✅\" : \"❌\")}</div>`);\n },\n $$slots: { default: true }\n });\n $$renderer4.push(`<!----></div>`);\n };\n Modal($$renderer3, {\n tooltip: \"New Gallery\",\n title: \"\",\n icon: \"fa-regular fa-images\",\n onClose: () => {\n newName = \"\";\n isExtendedGallery = false;\n },\n hideHeader: true,\n children,\n $$slots: { default: true }\n });\n }\n $$renderer3.push(`<!----></div>`);\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1uha8ag\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Art Site Editor</title>`);\n });\n });\n $$renderer3.push(`<div class=\"my-4\">`);\n Checkbox($$renderer3, {\n label: \"Show empty folders\",\n right: true,\n get checked() {\n return showEmpty;\n },\n set checked($$value) {\n showEmpty = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!----></div> <div class=\"my-4 flex gap-x-2 rounded-2xl border border-dashed p-2\"><label${attr(\"for\", `${stringify(id)}-search-box`)}><i class=\"fa-solid fa-search\"></i></label> <div class=\"relative flex grow\">`);\n SearchInput($$renderer3, {\n id: `${stringify(id)}-search-box`,\n autoFocus: true,\n class: \"grow\",\n noReportValidation: true,\n acceptSuggestionOnEnter: true,\n validationError: search !== \"\" && !data.galleryPaths.includes(search) ? \"invalid path\" : void 0,\n options: asRecord(data.galleryPaths, (p) => p),\n onSelect: (s) => {\n if (data.galleryPaths.includes(s)) {\n goto(resolve(\"/gallery/[...gallerypath]\", { gallerypath: s }));\n }\n },\n get search() {\n return search;\n },\n set search($$value) {\n search = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!----></div></div> `);\n controls($$renderer3, []);\n $$renderer3.push(`<!----> `);\n FileTree($$renderer3, { structure: data.tree, folder, file, showEmpty });\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,12 @@ import path from 'node:path';
|
|
|
3
3
|
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
4
4
|
import { stringify } from 'yaml';
|
|
5
5
|
import { unlink, writeFile } from 'node:fs/promises';
|
|
6
|
-
import { n as normalizeGalleryPath, a as isBaseGallery, g as getGalleryDir } from './galleryutil-
|
|
6
|
+
import { n as normalizeGalleryPath, a as isBaseGallery, g as getGalleryDir } from './galleryutil-DznhV1Pd.js';
|
|
7
7
|
import { c as createLogger } from './log-Dgdg632G.js';
|
|
8
8
|
import { r as resolveWithinArt, d as deleteResources } from './fileutil-Ckv64WTK.js';
|
|
9
|
+
import './util-Cfqr4aAv.js';
|
|
10
|
+
import './routing-C4Egnc9A.js';
|
|
11
|
+
import './event-ByDKS2H7.js';
|
|
9
12
|
import 'tslog';
|
|
10
13
|
import 'node:stream';
|
|
11
14
|
|
|
@@ -112,4 +115,4 @@ const DELETE = async ({ params }) => {
|
|
|
112
115
|
};
|
|
113
116
|
|
|
114
117
|
export { DELETE, POST };
|
|
115
|
-
//# sourceMappingURL=_server.ts-
|
|
118
|
+
//# sourceMappingURL=_server.ts-BxeMXP1a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-BxeMXP1a.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/gallery/_...gallerypath_/save/_server.ts.js"],"sourcesContent":["import { RawGallery, rawGalleries, clearCache, $ART } from \"@phosart/common/server\";\nimport path from \"node:path\";\nimport { json, error } from \"@sveltejs/kit\";\nimport { stringify } from \"yaml\";\nimport { unlink, writeFile } from \"node:fs/promises\";\nimport { n as normalizeGalleryPath, a as isBaseGallery, g as getGalleryDir } from \"../../../../../../chunks/galleryutil.js\";\nimport { c as createLogger } from \"../../../../../../chunks/log.js\";\nimport { d as deleteResources, r as resolveWithinArt } from \"../../../../../../chunks/fileutil.js\";\nconst logger = createLogger();\nconst POST = async ({ request, params }) => {\n const galleryPath = normalizeGalleryPath(params.gallerypath);\n const gallery = await RawGallery.parseAsync(await request.json());\n const oldGalleries = await rawGalleries();\n logger.info(\"Saving gallery @\", galleryPath, \"...\");\n await saveGallery(galleryPath, gallery);\n clearCache();\n logger.info(\"Saved gallery @\", galleryPath);\n const newGalleries = await rawGalleries();\n const deletedReferences = getDiffedReferences(oldGalleries, newGalleries);\n if (deletedReferences.size > 0) {\n logger.warn(\n \"Found\",\n deletedReferences.size,\n \"image(s) without references after save. Deleting associated resources...\"\n );\n await deleteResources([...deletedReferences]);\n }\n return json({ ok: true });\n};\nfunction getDiffedReferences(oldGallery, newGallery) {\n return getReferences(oldGallery).difference(getReferences(newGallery));\n}\nfunction getReferences(gcache) {\n let refs = /* @__PURE__ */ new Set();\n for (const [gpath, gallery] of Object.entries(gcache)) {\n if (!isBaseGallery(gallery)) continue;\n refs = refs.union(getGalleryReferences(gpath, gallery));\n }\n return refs;\n}\nfunction getGalleryReferences(galleryPath, gallery) {\n const references = /* @__PURE__ */ new Set();\n const basePath = path.resolve(\n path.join($ART(), getGalleryDir(normalizeGalleryPath(galleryPath)))\n );\n for (const piece of gallery.pieces) {\n references.add(path.resolve(path.join(basePath, piece.image)));\n if (piece.video) {\n references.add(path.resolve(path.join(basePath, piece.video.full)));\n references.add(path.resolve(path.join(basePath, piece.video.thumb)));\n }\n if (piece.alts) {\n for (const alt of piece.alts) {\n references.add(path.resolve(path.join(basePath, alt.image)));\n if (alt.video) {\n references.add(path.resolve(path.join(basePath, alt.video.full)));\n references.add(path.resolve(path.join(basePath, alt.video.thumb)));\n }\n }\n }\n }\n return references;\n}\nasync function saveGallery(galleryPath, newGallery) {\n if (isBaseGallery(newGallery)) {\n for (const p of newGallery.pieces) {\n delete p.slug;\n }\n }\n const galleryFullPath = resolveWithinArt(path.join($ART(), galleryPath));\n if (!galleryFullPath) {\n logger.warn(\"Refusing to write gallery outside art root @\", galleryPath);\n throw error(400, \"invalid gallery path\");\n }\n logger.silly(\"Writing gallery yaml @\", galleryFullPath, \"...\");\n const yaml = stringify(newGallery, {\n blockQuote: true,\n collectionStyle: \"block\",\n defaultKeyType: \"PLAIN\",\n defaultStringType: \"PLAIN\",\n indent: 2\n });\n await writeFile(galleryFullPath, yaml, { encoding: \"utf-8\" });\n logger.debug(\"Wrote gallery yaml @\", galleryFullPath);\n}\nconst DELETE = async ({ params }) => {\n const galleryPath = normalizeGalleryPath(params.gallerypath);\n const gpath = resolveWithinArt(path.join($ART(), galleryPath));\n if (!gpath) {\n logger.warn(\"Refusing to delete gallery outside art root @\", galleryPath);\n throw error(400, \"invalid gallery path\");\n }\n const oldGalleries = await rawGalleries();\n logger.info(\"Deleting gallery @\", gpath, \"...\");\n await unlink(gpath);\n clearCache();\n logger.info(\"Deleted gallery @\", gpath);\n const newGalleries = await rawGalleries();\n const deletedReferences = getDiffedReferences(oldGalleries, newGalleries);\n if (deletedReferences.size > 0) {\n logger.warn(\n \"Found\",\n deletedReferences.size,\n \"image(s) without references after save. Deleting associated resources...\"\n );\n await deleteResources([...deletedReferences]);\n }\n return json({ ok: true });\n};\nexport {\n DELETE,\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { a as requestDeviceCode } from './github-CM6dx0ky.js';
|
|
2
|
+
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
3
|
+
|
|
4
|
+
const POST = async ({ request }) => {
|
|
5
|
+
const state = await request.json();
|
|
6
|
+
if (state.stage !== "start") {
|
|
7
|
+
return error(400, "wrong stage");
|
|
8
|
+
}
|
|
9
|
+
const resp = await requestDeviceCode();
|
|
10
|
+
return json({
|
|
11
|
+
stage: "has_code",
|
|
12
|
+
device_code: resp.device_code,
|
|
13
|
+
user_code: resp.user_code,
|
|
14
|
+
verification_uri: resp.verification_uri
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { POST };
|
|
19
|
+
//# sourceMappingURL=_server.ts-DaG2SqbQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-DaG2SqbQ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/git/login/flow/request_code/_server.ts.js"],"sourcesContent":["import { a as requestDeviceCode } from \"../../../../../../../chunks/github.js\";\nimport { error, json } from \"@sveltejs/kit\";\nconst POST = async ({ request }) => {\n const state = await request.json();\n if (state.stage !== \"start\") {\n return error(400, \"wrong stage\");\n }\n const resp = await requestDeviceCode();\n return json({\n stage: \"has_code\",\n device_code: resp.device_code,\n user_code: resp.user_code,\n verification_uri: resp.verification_uri\n });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;AAEK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,EAAE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACpC,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE;AAC/B,IAAI,OAAO,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC;AACpC,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE;AACxC,EAAE,OAAO,IAAI,CAAC;AACd,IAAI,KAAK,EAAE,UAAU;AACrB,IAAI,WAAW,EAAE,IAAI,CAAC,WAAW;AACjC,IAAI,SAAS,EAAE,IAAI,CAAC,SAAS;AAC7B,IAAI,gBAAgB,EAAE,IAAI,CAAC;AAC3B,GAAG,CAAC;AACJ;;;;"}
|
|
@@ -13,9 +13,12 @@ import { pipeline } from 'node:stream/promises';
|
|
|
13
13
|
import https from 'node:https';
|
|
14
14
|
import { a as $CACHEFILE, $ as $IMGDIR } from './paths-LWMPXYU2.js';
|
|
15
15
|
import { RateLimit } from 'async-sema';
|
|
16
|
-
import { i as isExtendsGallery } from './galleryutil-
|
|
16
|
+
import { i as isExtendsGallery } from './galleryutil-DznhV1Pd.js';
|
|
17
17
|
import { Agent, AtpAgent } from '@atproto/api';
|
|
18
18
|
import 'tslog';
|
|
19
|
+
import './util-Cfqr4aAv.js';
|
|
20
|
+
import './routing-C4Egnc9A.js';
|
|
21
|
+
import './event-ByDKS2H7.js';
|
|
19
22
|
|
|
20
23
|
const DEFAULT_AGE_MS = 1e3 * 60 * 10;
|
|
21
24
|
const DEFAULT_MAX_POSTS_FROM_BSKY = 50;
|
|
@@ -296,4 +299,4 @@ const POST = async ({ request }) => {
|
|
|
296
299
|
};
|
|
297
300
|
|
|
298
301
|
export { POST };
|
|
299
|
-
//# sourceMappingURL=_server.ts-
|
|
302
|
+
//# sourceMappingURL=_server.ts-DrH-oZMv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-DrH-oZMv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/bluesky/sync/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { a as readCache, b as readPerceptualHashCache, c as writeCache, f as flushPerceptualHashCache } from \"../../../../../chunks/cache.js\";\nimport { galleries, rawGalleries } from \"@phosart/common/server\";\nimport crypto from \"node:crypto\";\nimport { rename, readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport phash from \"sharp-phash\";\nimport dist from \"sharp-phash/distance.js\";\nimport { c as createLogger } from \"../../../../../chunks/log.js\";\nimport { mkdir, stat } from \"fs/promises\";\nimport { createWriteStream } from \"node:fs\";\nimport { pipeline } from \"node:stream/promises\";\nimport https from \"node:https\";\nimport { $ as $IMGDIR, a as $CACHEFILE } from \"../../../../../chunks/paths.js\";\nimport { RateLimit } from \"async-sema\";\nimport { i as isExtendsGallery } from \"../../../../../chunks/galleryutil.js\";\nimport { AtpAgent, Agent } from \"@atproto/api\";\nconst DEFAULT_AGE_MS = 1e3 * 60 * 10;\nconst DEFAULT_MAX_POSTS_FROM_BSKY = 50;\nclass PostsClient {\n #agent;\n #backend;\n #maxAgeMs;\n #did;\n #didLogIn = false;\n #config;\n constructor(config) {\n this.#agent = new AtpAgent({\n service: \"https://bsky.social\"\n });\n this.#config = config;\n this.#backend = config.cache?.backend ?? null;\n this.#maxAgeMs = config.cache?.maxAgeMs ?? DEFAULT_AGE_MS;\n this.#did = config.bskyDid;\n }\n async getPosts(limit = DEFAULT_MAX_POSTS_FROM_BSKY) {\n if (!this.#didLogIn) {\n await this.#agent.login({\n identifier: this.#config.bskyUsername,\n password: this.#config.bskyPassword\n });\n }\n let cached = [];\n if (this.#backend) {\n cached = await this.#backend.getCachedPosts(limit);\n const lastCachedAt = await this.#backend.postsLastCachedAt();\n if (Date.now() - lastCachedAt.getTime() < this.#maxAgeMs) {\n return cached;\n }\n }\n const out = [];\n const mostRecent = cached[0] ?? null;\n let cursor = void 0;\n do {\n const resp = await this.#agent.getAuthorFeed({\n actor: this.#did,\n filter: \"posts_no_replies\",\n limit: 50,\n cursor\n });\n cursor = resp.data.cursor ?? void 0;\n console.log(resp.data.feed[0]);\n const next = this.#transformFeed(resp.data.feed);\n const toAdd = next.filter((nx) => !mostRecent || nx.date.localeCompare(mostRecent.date) > 0);\n out.splice(0, 0, ...toAdd);\n if (next.length !== toAdd.length) {\n break;\n }\n } while (cursor);\n if (this.#backend) {\n await this.#backend.cachePosts(out);\n }\n return [...out, ...cached].sort((p1, p2) => p2.date.localeCompare(p1.date)).slice(0, limit);\n }\n #transformFeed(fvps) {\n return fvps.filter((fvp) => fvp.post.author.did === this.#did && fvp.reason?.$type !== \"app.bsky.feed.defs#reasonRepost\" && !fvp.reply && (fvp.post.embed?.$type?.startsWith(\"app.bsky.embed.images#view\") || fvp.post.embed?.$type.startsWith(\"app.bsky.embed.video#view\"))).map((fvp) => ({\n uri: fvp.post.uri,\n date: fvp.post.indexedAt,\n text: fvp.post.record.text,\n likes: fvp.post.likeCount || 0,\n reposts: fvp.post.repostCount || 0,\n image_details: fvp.post.embed?.images?.map((img) => ({\n full_url: img.fullsize,\n alt_text: img.alt,\n thumb_url: img.thumb\n })) ?? [],\n video_thumb_url: fvp.post.embed?.thumbnail ?? null\n }));\n }\n}\nconst logger$2 = createLogger();\nconst sema = RateLimit(3);\nasync function downloadAndWrite(h, uri) {\n await sema();\n await mkdir($IMGDIR(), { recursive: true });\n const p = path.join($IMGDIR(), h + \".jpg\");\n const tmp = p + \".tmp.\" + Date.now();\n const ws = createWriteStream(tmp);\n logger$2.debug(\"Downloading image\", h, \"@\", uri, \"to\", p, \"...\");\n await new Promise((resolve, reject) => {\n https.get(uri, (res) => {\n res.on(\"error\", (err) => {\n logger$2.warn(\"Download failed; error:\", err);\n reject(err);\n });\n const pipe = pipeline(res, ws);\n pipe.then((_) => {\n if (res.statusCode && res.statusCode > 299) {\n logger$2.warn(\"Download failed; bluesky responded with status\", res.statusCode);\n reject(res.statusCode);\n } else {\n resolve(_);\n }\n }).catch(reject);\n });\n });\n logger$2.info(\"Finished downloading image\", h, \"@\", uri);\n await rename(tmp, p);\n}\nconst logger$1 = createLogger();\nasync function findMatches(posts) {\n logger$1.debug(\"Finding matches for\", posts.length, \"posts...\");\n const gcache = await galleries();\n const rgcache = await rawGalleries();\n const matches = posts.map((p) => findMatch(p, gcache, rgcache));\n const numMatches = matches.flatMap((p) => p.image_details).flatMap((d) => d.matches).length;\n logger$1.silly(\"Found\", numMatches, \"matches\");\n return matches;\n}\nfunction matchesForPhash(postPhash, galleries2, rawGalleries2, threshold) {\n const matches = [];\n for (const [galpath, gallery] of Object.entries(galleries2)) {\n if (isExtendsGallery(rawGalleries2[galpath])) {\n continue;\n }\n for (const piece of gallery.pieces) {\n const d = dist(piece.image.phash, postPhash);\n if (d <= threshold) {\n matches.push([{ gallery: galpath, piece: piece.slug }, d]);\n }\n for (const alt of piece.alts ?? []) {\n const d2 = dist(alt.image.phash, postPhash);\n if (d2 <= threshold) {\n matches.push([\n { gallery: galpath, piece: piece.slug, alt: alt.name },\n dist(alt.image.phash, postPhash)\n ]);\n }\n }\n }\n }\n return matches.toSorted(([, d1], [, d2]) => d1 - d2).map(([up]) => up);\n}\nfunction findMatch(post, galleries2, rawGalleries2, threshold = 5) {\n return {\n ...post,\n image_details: post.image_details.map((v) => ({\n ...v,\n matches: matchesForPhash(v.phash, galleries2, rawGalleries2, threshold)\n }))\n };\n}\nasync function getImages(posts, fileset) {\n logger$1.debug(\"Getting images for\", posts.length, \"posts...\");\n const withImages = (await Promise.all(\n posts.map(async (post) => {\n try {\n return await getImage(post, fileset);\n } catch (e) {\n console.warn(\"getting image failed: \", e);\n return null;\n }\n })\n )).filter((p) => !!p);\n logger$1.debug(\"Finished getting images\");\n return withImages;\n}\nasync function phashImage(h) {\n const p = path.join($IMGDIR(), h + \".jpg\");\n return await phash(await readFile(p));\n}\nasync function getImage(post, fileset) {\n return {\n ...post,\n image_details: await Promise.all(\n post.image_details.map(\n (v) => doPhashImage(v.full_url, fileset).then((phash2) => ({\n ...v,\n phash: phash2,\n id: imageId(v.full_url)\n }))\n )\n )\n };\n}\nasync function doPhashImage(uri, fileset) {\n const id = imageId(uri);\n if (id in fileset) {\n return fileset[id];\n }\n let hash;\n try {\n hash = await phashImage(id);\n } catch (e) {\n logger$1.debug(\n \"Failed to hash image\",\n id,\n \"trying to download the image then will hash again. Error:\",\n e\n );\n await downloadAndWrite(id, uri);\n hash = await phashImage(id);\n }\n fileset[id] = hash;\n return hash;\n}\nfunction imageId(uri) {\n const h = crypto.createHash(\"md5\");\n h.update(uri);\n return h.digest(\"base64url\");\n}\nfunction mergePosts(cache, posts) {\n for (const post of posts) {\n if (!cache.find((p) => p.uri === post.uri)) {\n cache.push(post);\n }\n }\n cache.sort((a, b) => b.date.localeCompare(a.date));\n return cache;\n}\nconst logger = createLogger();\nasync function sync(cfg) {\n logger.info(\"Syncing bluesky posts & images...\");\n try {\n const [cache, fileset] = await Promise.all([readCache(), readPerceptualHashCache()]);\n const bskyDid = process.env.BSKY_DID ?? cfg?.bskyDid ?? (cfg?.bskyUsername ? await getDid(cfg.bskyUsername) : void 0);\n const bskyPassword = process.env.BSKY_PASSWORD ?? cfg?.bskyPassword;\n const bskyUsername = process.env.BSKY_LOGIN ?? cfg?.bskyUsername;\n if (!bskyDid || !bskyPassword || !bskyUsername) {\n const errTxt = `Can't sync bluesky; missing information. Missing username? ${!bskyUsername} password? ${!bskyPassword} did? ${!bskyDid}`;\n logger.warn(errTxt);\n return error(400, \"Failed... \" + errTxt);\n }\n const client = new PostsClient({\n bskyDid,\n bskyPassword,\n bskyUsername,\n cache: {\n backend: {\n async cachePosts(posts) {\n await writeCache(mergePosts(cache, posts));\n },\n async getCachedPosts(_limit) {\n return cache;\n },\n async postsLastCachedAt() {\n try {\n return (await stat($CACHEFILE())).mtime;\n } catch {\n return /* @__PURE__ */ new Date(0);\n }\n }\n }\n }\n });\n const allPosts = mergePosts(cache, await client.getPosts(void 0));\n const withImages = await getImages(allPosts, fileset);\n await flushPerceptualHashCache(fileset);\n if (withImages.length !== allPosts.length) {\n return error(\n 500,\n `Failed to load ${allPosts.length - withImages.length} image(s); try again`\n );\n }\n const matches = await findMatches(withImages);\n logger.info(\"Done syncing\");\n return matches;\n } catch (err) {\n logger.warn(\"Failed to sync bluesky posts:\", err);\n throw err;\n }\n}\nasync function getDid(username) {\n const agent = new Agent({ service: \"https://bsky.social\" });\n const res = await agent.resolveHandle({ handle: username });\n return res.data.did;\n}\nconst POST = async ({ request }) => {\n const result = await sync(await request.json());\n if (Array.isArray(result)) {\n return json(result);\n }\n return result;\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { $ART } from '@phosart/common/server';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
4
|
-
import { n as normalizeGalleryPath } from './galleryutil-
|
|
4
|
+
import { n as normalizeGalleryPath } from './galleryutil-DznhV1Pd.js';
|
|
5
5
|
import { mkdir } from 'node:fs/promises';
|
|
6
6
|
import { c as createLogger } from './log-Dgdg632G.js';
|
|
7
7
|
import { r as resolveWithinArt } from './fileutil-Ckv64WTK.js';
|
|
8
|
+
import './util-Cfqr4aAv.js';
|
|
9
|
+
import './routing-C4Egnc9A.js';
|
|
10
|
+
import './event-ByDKS2H7.js';
|
|
8
11
|
import 'tslog';
|
|
9
12
|
import 'node:stream';
|
|
10
13
|
|
|
@@ -23,4 +26,4 @@ const PATCH = async ({ params }) => {
|
|
|
23
26
|
};
|
|
24
27
|
|
|
25
28
|
export { PATCH };
|
|
26
|
-
//# sourceMappingURL=_server.ts-
|
|
29
|
+
//# sourceMappingURL=_server.ts-Ds6dyXi4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_server.ts-
|
|
1
|
+
{"version":3,"file":"_server.ts-Ds6dyXi4.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/folder/_...folderpath_/_server.ts.js"],"sourcesContent":["import { $ART } from \"@phosart/common/server\";\nimport path from \"node:path\";\nimport { error, json } from \"@sveltejs/kit\";\nimport { n as normalizeGalleryPath } from \"../../../../../chunks/galleryutil.js\";\nimport { mkdir } from \"node:fs/promises\";\nimport { c as createLogger } from \"../../../../../chunks/log.js\";\nimport { r as resolveWithinArt } from \"../../../../../chunks/fileutil.js\";\nconst logger = createLogger();\nconst PATCH = async ({ params }) => {\n const folderPath = normalizeGalleryPath(params.folderpath);\n const fullPath = resolveWithinArt(path.join($ART(), folderPath));\n if (!fullPath) {\n logger.warn(\"Refusing to create folder outside art root @\", folderPath);\n throw error(400, \"invalid folder path\");\n }\n logger.debug(\"Creating folder @\", fullPath, \"...\");\n await mkdir(fullPath, { recursive: true });\n logger.info(\"Created folder @\", fullPath);\n return json({ ok: true });\n};\nexport {\n PATCH\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAOA,MAAM,MAAM,GAAG,YAAY,EAAE;AACxB,MAAC,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACpC,EAAE,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC;AAC5D,EAAE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;AAClE,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,UAAU,CAAC;AAC3E,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC;AAC3C,EAAE;AACF,EAAE,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,QAAQ,EAAE,KAAK,CAAC;AACpD,EAAE,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC5C,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AAC3C,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B;;;;"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { open } from 'node:fs/promises';
|
|
2
2
|
import { a as asWebStream } from './fileutil-Ckv64WTK.js';
|
|
3
|
-
import { n as normalizeGalleryPath, a as isBaseGallery, g as getGalleryDir } from './galleryutil-
|
|
3
|
+
import { n as normalizeGalleryPath, a as isBaseGallery, g as getGalleryDir } from './galleryutil-DznhV1Pd.js';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { rawGalleries, $ART } from '@phosart/common/server';
|
|
6
6
|
import { e as error } from './index-CoD1IJuy.js';
|
|
7
7
|
import { c as createLogger } from './log-Dgdg632G.js';
|
|
8
|
+
import mime from 'mime';
|
|
8
9
|
import 'node:stream';
|
|
10
|
+
import './util-Cfqr4aAv.js';
|
|
11
|
+
import './routing-C4Egnc9A.js';
|
|
12
|
+
import './event-ByDKS2H7.js';
|
|
9
13
|
import 'tslog';
|
|
10
14
|
|
|
11
15
|
const logger$1 = createLogger();
|
|
@@ -90,9 +94,11 @@ const GET = async ({ params, url }) => {
|
|
|
90
94
|
const file = await open(path);
|
|
91
95
|
return new Response(asWebStream(file.createReadStream({ autoClose: true })), {
|
|
92
96
|
status: 200,
|
|
93
|
-
headers: {
|
|
97
|
+
headers: {
|
|
98
|
+
"Content-Type": mime.getType(path) ?? "application/octet-stream"
|
|
99
|
+
}
|
|
94
100
|
});
|
|
95
101
|
};
|
|
96
102
|
|
|
97
103
|
export { GET };
|
|
98
|
-
//# sourceMappingURL=_server.ts-
|
|
104
|
+
//# sourceMappingURL=_server.ts-DwYgPNwZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-DwYgPNwZ.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/gallery/_...gallerypath_/_piece_/original-image/_server.ts.js"],"sourcesContent":["import { open } from \"node:fs/promises\";\nimport { a as asWebStream } from \"../../../../../../../chunks/fileutil.js\";\nimport { a as isBaseGallery, g as getGalleryDir, n as normalizeGalleryPath } from \"../../../../../../../chunks/galleryutil.js\";\nimport { join } from \"node:path\";\nimport { rawGalleries, $ART } from \"@phosart/common/server\";\nimport { error } from \"@sveltejs/kit\";\nimport { c as createLogger } from \"../../../../../../../chunks/log.js\";\nimport mime from \"mime\";\nconst logger$1 = createLogger();\nasync function getOriginalImagePath(galleryPath, pieceSlug, {\n video,\n thumb,\n alt,\n altIndex\n} = {}) {\n const gallery = (await rawGalleries())[galleryPath];\n if (!isBaseGallery(gallery)) {\n logger$1.warn(\"Gallery not found for original image @\", galleryPath);\n return error(404, \"gallery not found\");\n }\n const piece = gallery.pieces.find((p) => p.slug === pieceSlug);\n if (!piece) {\n logger$1.warn(\"Piece not found for original image @\", galleryPath, \"piece\", pieceSlug);\n return error(404, \"piece not found\");\n }\n const getResource = (resource) => {\n if (!video) {\n return resource.image;\n }\n return (thumb ? resource.video?.thumb ?? resource.video?.full : resource.video?.full) ?? null;\n };\n let resourceUrl = getResource(piece);\n if (!resourceUrl) {\n logger$1.warn(\"Resource not found for original image @\", galleryPath, \"piece\", pieceSlug);\n return error(404, \"resource not found pt. 1\");\n }\n if (alt || (altIndex ?? -1) >= 0) {\n const altPei = piece?.alts?.find((a) => a.name === alt) ?? piece?.alts?.[altIndex ?? -1];\n if (!altPei) {\n logger$1.warn(\"Alt not found for original image @\", galleryPath, \"piece\", pieceSlug);\n return error(404, \"alt not found\");\n }\n resourceUrl = getResource(altPei);\n }\n if (!resourceUrl) {\n logger$1.warn(\"Resource not found for original image @\", galleryPath, \"piece\", pieceSlug);\n return error(404, \"resourceUrl not found pt 2.\");\n }\n const fullPath = join($ART(), getGalleryDir(galleryPath), resourceUrl);\n logger$1.silly(\"Resolved original image @\", fullPath);\n return fullPath;\n}\nconst logger = createLogger();\nconst GET = async ({ params, url }) => {\n const galleryPath = normalizeGalleryPath(params.gallerypath);\n const pieceSlug = params.piece;\n const video = url.searchParams.get(\"video\") === \"true\";\n const thumb = url.searchParams.get(\"thumb\") === \"true\";\n const alt = url.searchParams.get(\"alt\") ?? void 0;\n let altIndex = -1;\n const altIndexS = url.searchParams.get(\"altIndex\");\n if (altIndexS) {\n try {\n altIndex = parseInt(altIndexS);\n } catch {\n }\n }\n logger.silly(\n \"Fetching original image\",\n \"gallery\",\n galleryPath,\n \"piece\",\n pieceSlug,\n \"video?\",\n video,\n \"thumb?\",\n thumb,\n \"alt?\",\n alt ?? \"none\",\n \"altIndex\",\n altIndex\n );\n const path = await getOriginalImagePath(galleryPath, pieceSlug, { video, thumb, alt, altIndex });\n if (typeof path !== \"string\") {\n return path;\n }\n logger.silly(\"Serving original image @\", path);\n const file = await open(path);\n return new Response(asWebStream(file.createReadStream({ autoClose: true })), {\n status: 200,\n headers: {\n \"Content-Type\": mime.getType(path) ?? \"application/octet-stream\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { r as requestToken } from './github-CM6dx0ky.js';
|
|
2
|
+
import { e as error, j as json } from './index-CoD1IJuy.js';
|
|
3
|
+
import fs from 'node:fs/promises';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import os from 'node:os';
|
|
6
|
+
import { spawn } from 'node:child_process';
|
|
7
|
+
|
|
8
|
+
const winscript = '# win-secret.ps1\n# Reads stdin: COMMAND\\nHANDLE\\n[VALUE_B64]\\n\n# Writes stdout: STATUS\\nPAYLOAD\\n\n\n$ErrorActionPreference = "Stop"\n\nfunction Out-TwoLines([string]$status, [string]$payload) {\n Write-Output $status\n Write-Output $payload\n}\n\ntry {\n $lines = @()\n while ($null -ne ($l = [Console]::In.ReadLine())) { $lines += $l }\n\n if ($lines.Count -lt 2) { Out-TwoLines "ERROR" "invalid input"; exit 0 }\n\n $cmd = $lines[0].Trim()\n $handle = $lines[1].Trim()\n\n if ($handle -notmatch \'^[A-Za-z0-9._-]{1,128}$\') {\n Out-TwoLines "ERROR" "invalid handle"\n exit 0\n }\n\n $baseDir = Join-Path $env:LOCALAPPDATA "phosart-devtool\\secrets"\n [IO.Directory]::CreateDirectory($baseDir) | Out-Null\n $path = Join-Path $baseDir "$handle.bin"\n\n Add-Type -AssemblyName System.Security\n\n function Protect([byte[]]$plain) {\n return [Security.Cryptography.ProtectedData]::Protect(\n $plain, $null, [Security.Cryptography.DataProtectionScope]::CurrentUser\n )\n }\n\n function Unprotect([byte[]]$cipher) {\n return [Security.Cryptography.ProtectedData]::Unprotect(\n $cipher, $null, [Security.Cryptography.DataProtectionScope]::CurrentUser\n )\n }\n\n function ReadExistingB64OrNull() {\n if (-not (Test-Path -LiteralPath $path)) { return $null }\n $cipher = [IO.File]::ReadAllBytes($path)\n $plain = Unprotect $cipher\n return [Convert]::ToBase64String($plain)\n }\n\n if ($cmd -eq "READ") {\n $cur = ReadExistingB64OrNull\n if ($null -eq $cur) { Out-TwoLines "MISSING" "null" } else { Out-TwoLines "OK" $cur }\n exit 0\n }\n\n if ($cmd -eq "WRITE") {\n if ($lines.Count -lt 3) { Out-TwoLines "ERROR" "missing value"; exit 0 }\n $valueB64 = $lines[2].Trim()\n $newPlain = [Convert]::FromBase64String($valueB64)\n\n $old = ReadExistingB64OrNull\n\n $cipher = Protect $newPlain\n [IO.File]::WriteAllBytes($path, $cipher)\n\n if ($null -eq $old) { Out-TwoLines "OK" "null" } else { Out-TwoLines "OK" $old }\n exit 0\n }\n\n if ($cmd -eq "DELETE") {\n $old = ReadExistingB64OrNull\n if (Test-Path -LiteralPath $path) { Remove-Item -LiteralPath $path -Force }\n if ($null -eq $old) { Out-TwoLines "MISSING" "null" } else { Out-TwoLines "OK" $old }\n exit 0\n }\n\n Out-TwoLines "ERROR" "unknown command"\n} catch {\n Out-TwoLines "ERROR" ($_.Exception.Message.Replace("`r","").Replace("`n"," "))\n}\n';
|
|
9
|
+
const macscript = '#!/usr/bin/env bash\n# mac-secret.sh\n\nset -euo pipefail\n\nread -r CMD || true\nread -r HANDLE || true\nVALUE_B64=""\nif [[ "${CMD:-}" == "WRITE" ]]; then\n read -r VALUE_B64 || VALUE_B64=""\nfi\n\nSERVICE="com.phosart.devtool.secrets"\n\ntwo_lines() { printf "%s\\n%s\\n" "$1" "$2"; }\n\nvalid_handle() {\n [[ "$HANDLE" =~ ^[A-Za-z0-9._-]{1,128}$ ]]\n}\n\nif ! valid_handle; then\n two_lines "ERROR" "invalid handle"\n exit 0\nfi\n\nread_existing() {\n # Prints existing secret to stdout, or returns nonzero if not found.\n security find-generic-password -a "$HANDLE" -s "$SERVICE" -w 2>/dev/null\n}\n\ncase "${CMD:-}" in\n READ)\n if out="$(read_existing)"; then\n two_lines "OK" "$out"\n else\n two_lines "MISSING" "null"\n fi\n ;;\n\n WRITE)\n old="null"\n if out="$(read_existing)"; then old="$out"; fi\n\n # Add or update\n security add-generic-password -a "$HANDLE" -s "$SERVICE" -w "$VALUE_B64" -U >/dev/null 2>&1\n\n two_lines "OK" "$old"\n ;;\n\n DELETE)\n if out="$(read_existing)"; then\n security delete-generic-password -a "$HANDLE" -s "$SERVICE" >/dev/null 2>&1 || true\n two_lines "OK" "$out"\n else\n two_lines "MISSING" "null"\n fi\n ;;\n\n *)\n two_lines "ERROR" "unknown command"\n ;;\nesac\n';
|
|
10
|
+
const linuxscript = '#!/usr/bin/env bash\n\nset -euo pipefail\n\nread -r CMD || true\nread -r HANDLE || true\nVALUE_B64=""\nif [[ "${CMD:-}" == "WRITE" ]]; then\n read -r VALUE_B64 || VALUE_B64=""\nfi\n\nSERVICE="com.phosart.devtool.secrets"\n\ntwo_lines() { printf "%s\\n%s\\n" "$1" "$2"; }\n\nvalid_handle() {\n [[ "$HANDLE" =~ ^[A-Za-z0-9._-]{1,128}$ ]]\n}\n\nif ! valid_handle; then\n two_lines "ERROR" "invalid handle"\n exit 0\nfi\n\nif ! command -v secret-tool >/dev/null 2>&1; then\n two_lines "NOT_SUPPORTED" "null"\n exit 0\nfi\n\nread_existing() {\n # secret-tool lookup returns 0 with value, or 1 if not found.\n secret-tool lookup service "$SERVICE" account "$HANDLE" 2>/dev/null\n}\n\ncase "${CMD:-}" in\n READ)\n if out="$(read_existing)"; then\n two_lines "OK" "$out"\n else\n two_lines "MISSING" "null"\n fi\n ;;\n\n WRITE)\n old="null"\n if out="$(read_existing)"; then old="$out"; fi\n\n # store (replace)\n printf "%s" "$VALUE_B64" | secret-tool store --label="YourApp secret $HANDLE" service "$SERVICE" account "$HANDLE" >/dev/null\n\n two_lines "OK" "$old"\n ;;\n\n DELETE)\n if out="$(read_existing)"; then\n secret-tool clear service "$SERVICE" account "$HANDLE" >/dev/null || true\n two_lines "OK" "$out"\n else\n two_lines "MISSING" "null"\n fi\n ;;\n\n *)\n two_lines "ERROR" "unknown command"\n ;;\nesac\n';
|
|
11
|
+
let cachedpath = null;
|
|
12
|
+
async function scriptpath() {
|
|
13
|
+
if (cachedpath) {
|
|
14
|
+
return cachedpath;
|
|
15
|
+
}
|
|
16
|
+
const platform = os.platform();
|
|
17
|
+
const tmp = await fs.mkdtemp(path.join(os.tmpdir(), "phosart-devtool"));
|
|
18
|
+
const toCache = path.resolve(path.join(tmp, `script.${platform === "win32" ? "ps1" : "sh"}`));
|
|
19
|
+
let script = linuxscript;
|
|
20
|
+
if (platform === "darwin") {
|
|
21
|
+
script = macscript;
|
|
22
|
+
} else if (platform === "win32") {
|
|
23
|
+
script = winscript;
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
await fs.stat(toCache);
|
|
27
|
+
return toCache;
|
|
28
|
+
} catch {
|
|
29
|
+
}
|
|
30
|
+
await fs.writeFile(toCache, script, { encoding: "utf-8" });
|
|
31
|
+
await fs.chmod(toCache, 493);
|
|
32
|
+
cachedpath = toCache;
|
|
33
|
+
return cachedpath;
|
|
34
|
+
}
|
|
35
|
+
function b64FromBytes(bytes) {
|
|
36
|
+
return Buffer.from(bytes).toString("base64");
|
|
37
|
+
}
|
|
38
|
+
function bytesFromB64(b64) {
|
|
39
|
+
return Buffer.from(b64, "base64");
|
|
40
|
+
}
|
|
41
|
+
function runHelper(helperPath, input, shell = false) {
|
|
42
|
+
return new Promise((resolve) => {
|
|
43
|
+
const child = spawn(helperPath, [], {
|
|
44
|
+
stdio: "pipe",
|
|
45
|
+
shell,
|
|
46
|
+
windowsHide: true
|
|
47
|
+
});
|
|
48
|
+
let out = "";
|
|
49
|
+
let err = "";
|
|
50
|
+
child.stdout.setEncoding("utf8");
|
|
51
|
+
child.stderr.setEncoding("utf8");
|
|
52
|
+
child.stdout.on("data", (d) => out += d);
|
|
53
|
+
child.stderr.on("data", (d) => err += d);
|
|
54
|
+
child.on("close", () => {
|
|
55
|
+
const lines = out.replace(/\r/g, "").split("\n").filter((l) => l.length > 0);
|
|
56
|
+
const status = lines[0] ?? "ERROR";
|
|
57
|
+
const payload = lines[1] ?? "null";
|
|
58
|
+
if (status === "OK")
|
|
59
|
+
return resolve({ status: "OK", value: payload === "null" ? null : payload });
|
|
60
|
+
if (status === "MISSING") return resolve({ status: "MISSING", value: null });
|
|
61
|
+
if (status === "NOT_SUPPORTED") return resolve({ status: "NOT_SUPPORTED", value: null });
|
|
62
|
+
return resolve({
|
|
63
|
+
status: "ERROR",
|
|
64
|
+
value: payload !== "null" ? payload : err.trim() || "unknown error"
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
child.stdin.end(input);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
class SecretStore {
|
|
71
|
+
#ephemeral = /* @__PURE__ */ new Map();
|
|
72
|
+
async helperCall(cmd, handle, valueB64) {
|
|
73
|
+
const path2 = await scriptpath();
|
|
74
|
+
const p = os.platform();
|
|
75
|
+
if (p === "win32") {
|
|
76
|
+
const ps = "powershell.exe";
|
|
77
|
+
const args = `-NoProfile -ExecutionPolicy Bypass -File "${path2}"`;
|
|
78
|
+
return runHelper(
|
|
79
|
+
`${ps} ${args}`,
|
|
80
|
+
[cmd, handle, ...cmd === "WRITE" ? [valueB64 ?? ""] : []].join("\n") + "\n",
|
|
81
|
+
true
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
if (p === "darwin") {
|
|
85
|
+
return runHelper(
|
|
86
|
+
path2,
|
|
87
|
+
[cmd, handle, ...cmd === "WRITE" ? [valueB64 ?? ""] : []].join("\n") + "\n"
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
return runHelper(
|
|
91
|
+
path2,
|
|
92
|
+
[cmd, handle, ...cmd === "WRITE" ? [valueB64 ?? ""] : []].join("\n") + "\n"
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
async read(handle) {
|
|
96
|
+
const res = await this.helperCall("READ", handle);
|
|
97
|
+
if (res.status === "OK") return res.value ? bytesFromB64(res.value) : new Uint8Array();
|
|
98
|
+
if (res.status === "MISSING") return null;
|
|
99
|
+
if (res.status === "NOT_SUPPORTED") {
|
|
100
|
+
const v = this.#ephemeral.get(handle);
|
|
101
|
+
return v ? bytesFromB64(v) : null;
|
|
102
|
+
}
|
|
103
|
+
throw new Error(`secret read failed: ${res.value}`);
|
|
104
|
+
}
|
|
105
|
+
async write(handle, value) {
|
|
106
|
+
const valueB64 = b64FromBytes(value);
|
|
107
|
+
const res = await this.helperCall("WRITE", handle, valueB64);
|
|
108
|
+
if (res.status === "OK") {
|
|
109
|
+
this.#ephemeral.set(handle, valueB64);
|
|
110
|
+
return res.value ? bytesFromB64(res.value) : null;
|
|
111
|
+
}
|
|
112
|
+
if (res.status === "NOT_SUPPORTED") {
|
|
113
|
+
const old = this.#ephemeral.get(handle) ?? null;
|
|
114
|
+
this.#ephemeral.set(handle, valueB64);
|
|
115
|
+
return old ? bytesFromB64(old) : null;
|
|
116
|
+
}
|
|
117
|
+
throw new Error(`secret write failed: ${res.status === "ERROR" ? res.value : "unknown"}`);
|
|
118
|
+
}
|
|
119
|
+
async delete(handle) {
|
|
120
|
+
const res = await this.helperCall("DELETE", handle);
|
|
121
|
+
if (res.status === "OK") {
|
|
122
|
+
this.#ephemeral.delete(handle);
|
|
123
|
+
return res.value ? bytesFromB64(res.value) : null;
|
|
124
|
+
}
|
|
125
|
+
if (res.status === "MISSING") {
|
|
126
|
+
this.#ephemeral.delete(handle);
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
if (res.status === "NOT_SUPPORTED") {
|
|
130
|
+
const old = this.#ephemeral.get(handle) ?? null;
|
|
131
|
+
this.#ephemeral.delete(handle);
|
|
132
|
+
return old ? bytesFromB64(old) : null;
|
|
133
|
+
}
|
|
134
|
+
throw new Error(`secret delete failed: ${res.value}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const secrets = new SecretStore();
|
|
138
|
+
const POST = async ({ request }) => {
|
|
139
|
+
const state = await request.json();
|
|
140
|
+
if (state.stage !== "has_code") {
|
|
141
|
+
return error(400, "wrong state");
|
|
142
|
+
}
|
|
143
|
+
const resp = await requestToken(state.device_code);
|
|
144
|
+
if (resp.access_token) {
|
|
145
|
+
secrets.write("gha_token", Buffer.from(resp.access_token, "utf-8"));
|
|
146
|
+
return json({ stage: "completed" });
|
|
147
|
+
}
|
|
148
|
+
state.last_attempt = resp.error;
|
|
149
|
+
return json(state);
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
export { POST };
|
|
153
|
+
//# sourceMappingURL=_server.ts-OYdhWjAm.js.map
|