@phosart/devtool 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/build/client/editor/_app/immutable/assets/0.Ux16ViYx.css +1 -0
  2. package/build/client/editor/_app/immutable/assets/0.Ux16ViYx.css.br +0 -0
  3. package/build/client/editor/_app/immutable/assets/0.Ux16ViYx.css.gz +0 -0
  4. package/build/client/editor/_app/immutable/chunks/{BikxVL5z.js → 2_fpIYfw.js} +1 -1
  5. package/build/client/editor/_app/immutable/chunks/2_fpIYfw.js.br +0 -0
  6. package/build/client/editor/_app/immutable/chunks/2_fpIYfw.js.gz +0 -0
  7. package/build/client/editor/_app/immutable/chunks/{Dpelj1Uz.js → 4hIBzQ4_.js} +1 -1
  8. package/build/client/editor/_app/immutable/chunks/4hIBzQ4_.js.br +0 -0
  9. package/build/client/editor/_app/immutable/chunks/4hIBzQ4_.js.gz +0 -0
  10. package/build/client/editor/_app/immutable/chunks/{DQyInuJY.js → 6M6_Jaku.js} +1 -1
  11. package/build/client/editor/_app/immutable/chunks/6M6_Jaku.js.br +0 -0
  12. package/build/client/editor/_app/immutable/chunks/6M6_Jaku.js.gz +0 -0
  13. package/build/client/editor/_app/immutable/chunks/{D318S5v0.js → B1GIV-2D.js} +1 -1
  14. package/build/client/editor/_app/immutable/chunks/B1GIV-2D.js.br +0 -0
  15. package/build/client/editor/_app/immutable/chunks/B1GIV-2D.js.gz +0 -0
  16. package/build/client/editor/_app/immutable/chunks/{DWAwFQ3Y.js → B8dptkxa.js} +1 -1
  17. package/build/client/editor/_app/immutable/chunks/B8dptkxa.js.br +0 -0
  18. package/build/client/editor/_app/immutable/chunks/B8dptkxa.js.gz +0 -0
  19. package/build/client/editor/_app/immutable/chunks/{C9yOFeOX.js → B9zDOVGT.js} +1 -1
  20. package/build/client/editor/_app/immutable/chunks/B9zDOVGT.js.br +0 -0
  21. package/build/client/editor/_app/immutable/chunks/B9zDOVGT.js.gz +0 -0
  22. package/build/client/editor/_app/immutable/chunks/{Cc8sq9kr.js → BD8Rif0F.js} +1 -1
  23. package/build/client/editor/_app/immutable/chunks/BD8Rif0F.js.br +0 -0
  24. package/build/client/editor/_app/immutable/chunks/BD8Rif0F.js.gz +0 -0
  25. package/build/client/editor/_app/immutable/chunks/{2WC8KHrG.js → BFkkllAS.js} +1 -1
  26. package/build/client/editor/_app/immutable/chunks/BFkkllAS.js.br +1 -0
  27. package/build/client/editor/_app/immutable/chunks/BFkkllAS.js.gz +0 -0
  28. package/build/client/editor/_app/immutable/chunks/{BTtfuoSF.js → BFrNG_16.js} +1 -1
  29. package/build/client/editor/_app/immutable/chunks/BFrNG_16.js.br +0 -0
  30. package/build/client/editor/_app/immutable/chunks/BFrNG_16.js.gz +0 -0
  31. package/build/client/editor/_app/immutable/chunks/{Dt5dFdUv.js → BIHqivCG.js} +1 -1
  32. package/build/client/editor/_app/immutable/chunks/BIHqivCG.js.br +0 -0
  33. package/build/client/editor/_app/immutable/chunks/BIHqivCG.js.gz +0 -0
  34. package/build/client/editor/_app/immutable/chunks/{DGJVDpSi.js → Bg7QG-lR.js} +1 -1
  35. package/build/client/editor/_app/immutable/chunks/Bg7QG-lR.js.br +0 -0
  36. package/build/client/editor/_app/immutable/chunks/Bg7QG-lR.js.gz +0 -0
  37. package/build/client/editor/_app/immutable/chunks/{CkDosdno.js → BmRN1zm0.js} +1 -1
  38. package/build/client/editor/_app/immutable/chunks/BmRN1zm0.js.br +0 -0
  39. package/build/client/editor/_app/immutable/chunks/BmRN1zm0.js.gz +0 -0
  40. package/build/client/editor/_app/immutable/chunks/BomMr_SJ.js +1 -0
  41. package/build/client/editor/_app/immutable/chunks/BomMr_SJ.js.br +0 -0
  42. package/build/client/editor/_app/immutable/chunks/BomMr_SJ.js.gz +0 -0
  43. package/build/client/editor/_app/immutable/chunks/ByNbHZHE.js +12 -0
  44. package/build/client/editor/_app/immutable/chunks/ByNbHZHE.js.br +0 -0
  45. package/build/client/editor/_app/immutable/chunks/ByNbHZHE.js.gz +0 -0
  46. package/build/client/editor/_app/immutable/chunks/{Cw0BW7nP.js → C-A59nkV.js} +2 -2
  47. package/build/client/editor/_app/immutable/chunks/C-A59nkV.js.br +0 -0
  48. package/build/client/editor/_app/immutable/chunks/C-A59nkV.js.gz +0 -0
  49. package/build/client/editor/_app/immutable/chunks/{C90CMw-j.js → C64_a0rj.js} +2 -2
  50. package/build/client/editor/_app/immutable/chunks/C64_a0rj.js.br +0 -0
  51. package/build/client/editor/_app/immutable/chunks/C64_a0rj.js.gz +0 -0
  52. package/build/client/editor/_app/immutable/chunks/{BSlEf7xV.js → CBMG66Ob.js} +1 -1
  53. package/build/client/editor/_app/immutable/chunks/CBMG66Ob.js.br +0 -0
  54. package/build/client/editor/_app/immutable/chunks/CBMG66Ob.js.gz +0 -0
  55. package/build/client/editor/_app/immutable/chunks/CBMGMT01.js +2 -0
  56. package/build/client/editor/_app/immutable/chunks/CBMGMT01.js.br +0 -0
  57. package/build/client/editor/_app/immutable/chunks/CBMGMT01.js.gz +0 -0
  58. package/build/client/editor/_app/immutable/chunks/{ALQ1p0Uc.js → CHz30aZi.js} +1 -1
  59. package/build/client/editor/_app/immutable/chunks/CHz30aZi.js.br +0 -0
  60. package/build/client/editor/_app/immutable/chunks/CHz30aZi.js.gz +0 -0
  61. package/build/client/editor/_app/immutable/chunks/{DXPe1KZO.js → CIJYBsz7.js} +1 -1
  62. package/build/client/editor/_app/immutable/chunks/CIJYBsz7.js.br +0 -0
  63. package/build/client/editor/_app/immutable/chunks/CIJYBsz7.js.gz +0 -0
  64. package/build/client/editor/_app/immutable/chunks/{CZYLd901.js → C_1cFU8t.js} +1 -1
  65. package/build/client/editor/_app/immutable/chunks/C_1cFU8t.js.br +0 -0
  66. package/build/client/editor/_app/immutable/chunks/C_1cFU8t.js.gz +0 -0
  67. package/build/client/editor/_app/immutable/chunks/{BQ1uDTpW.js → CaJQZkse.js} +1 -1
  68. package/build/client/editor/_app/immutable/chunks/CaJQZkse.js.br +0 -0
  69. package/build/client/editor/_app/immutable/chunks/CaJQZkse.js.gz +0 -0
  70. package/build/client/editor/_app/immutable/chunks/{uc0Ch2Ls.js → Chzdb0MJ.js} +1 -1
  71. package/build/client/editor/_app/immutable/chunks/Chzdb0MJ.js.br +0 -0
  72. package/build/client/editor/_app/immutable/chunks/Chzdb0MJ.js.gz +0 -0
  73. package/build/client/editor/_app/immutable/chunks/{CvGCHxqA.js → Cpl1xZcR.js} +3 -3
  74. package/build/client/editor/_app/immutable/chunks/Cpl1xZcR.js.br +0 -0
  75. package/build/client/editor/_app/immutable/chunks/Cpl1xZcR.js.gz +0 -0
  76. package/build/client/editor/_app/immutable/chunks/{DkP1XNYf.js → D338WAuH.js} +7 -7
  77. package/build/client/editor/_app/immutable/chunks/D338WAuH.js.br +0 -0
  78. package/build/client/editor/_app/immutable/chunks/D338WAuH.js.gz +0 -0
  79. package/build/client/editor/_app/immutable/chunks/{BHdnHyTP.js → DBso62O3.js} +1 -1
  80. package/build/client/editor/_app/immutable/chunks/DBso62O3.js.br +0 -0
  81. package/build/client/editor/_app/immutable/chunks/DBso62O3.js.gz +0 -0
  82. package/build/client/editor/_app/immutable/chunks/DG3gtbPS.js +1 -0
  83. package/build/client/editor/_app/immutable/chunks/DG3gtbPS.js.br +0 -0
  84. package/build/client/editor/_app/immutable/chunks/DG3gtbPS.js.gz +0 -0
  85. package/build/client/editor/_app/immutable/chunks/{BtvCwzt1.js → DGf07soP.js} +1 -1
  86. package/build/client/editor/_app/immutable/chunks/DGf07soP.js.br +0 -0
  87. package/build/client/editor/_app/immutable/chunks/DGf07soP.js.gz +0 -0
  88. package/build/client/editor/_app/immutable/chunks/DGnDs2M4.js +1 -0
  89. package/build/client/editor/_app/immutable/chunks/DGnDs2M4.js.br +0 -0
  90. package/build/client/editor/_app/immutable/chunks/DGnDs2M4.js.gz +0 -0
  91. package/build/client/editor/_app/immutable/chunks/{ButEISQV.js → DPUojd5V.js} +1 -1
  92. package/build/client/editor/_app/immutable/chunks/DPUojd5V.js.br +0 -0
  93. package/build/client/editor/_app/immutable/chunks/DPUojd5V.js.gz +0 -0
  94. package/build/client/editor/_app/immutable/chunks/{_944w3sg.js → DPqQ6q9T.js} +1 -1
  95. package/build/client/editor/_app/immutable/chunks/DPqQ6q9T.js.br +0 -0
  96. package/build/client/editor/_app/immutable/chunks/DPqQ6q9T.js.gz +0 -0
  97. package/build/client/editor/_app/immutable/chunks/{CyuBb-Yc.js → DbXE2WOu.js} +1 -1
  98. package/build/client/editor/_app/immutable/chunks/DbXE2WOu.js.br +0 -0
  99. package/build/client/editor/_app/immutable/chunks/DbXE2WOu.js.gz +0 -0
  100. package/build/client/editor/_app/immutable/chunks/{gzHRGRHa.js → DrZfFIG4.js} +1 -1
  101. package/build/client/editor/_app/immutable/chunks/DrZfFIG4.js.br +0 -0
  102. package/build/client/editor/_app/immutable/chunks/DrZfFIG4.js.gz +0 -0
  103. package/build/client/editor/_app/immutable/chunks/{DZjK_3Rj.js → DwuiomVV.js} +1 -1
  104. package/build/client/editor/_app/immutable/chunks/DwuiomVV.js.br +0 -0
  105. package/build/client/editor/_app/immutable/chunks/DwuiomVV.js.gz +0 -0
  106. package/build/client/editor/_app/immutable/chunks/{BJE6vWe4.js → TKefEoMN.js} +1 -1
  107. package/build/client/editor/_app/immutable/chunks/TKefEoMN.js.br +0 -0
  108. package/build/client/editor/_app/immutable/chunks/TKefEoMN.js.gz +0 -0
  109. package/build/client/editor/_app/immutable/chunks/{D_uh7BRz.js → YzpLcnjN.js} +2 -2
  110. package/build/client/editor/_app/immutable/chunks/YzpLcnjN.js.br +0 -0
  111. package/build/client/editor/_app/immutable/chunks/YzpLcnjN.js.gz +0 -0
  112. package/build/client/editor/_app/immutable/chunks/{7z_tpSrq.js → gJYnYvRf.js} +1 -1
  113. package/build/client/editor/_app/immutable/chunks/gJYnYvRf.js.br +0 -0
  114. package/build/client/editor/_app/immutable/chunks/gJYnYvRf.js.gz +0 -0
  115. package/build/client/editor/_app/immutable/entry/{app.D5BAe40u.js → app.D5XlxorX.js} +2 -2
  116. package/build/client/editor/_app/immutable/entry/app.D5XlxorX.js.br +0 -0
  117. package/build/client/editor/_app/immutable/entry/app.D5XlxorX.js.gz +0 -0
  118. package/build/client/editor/_app/immutable/entry/start.BhTJ0i9W.js +1 -0
  119. package/build/client/editor/_app/immutable/entry/start.BhTJ0i9W.js.br +2 -0
  120. package/build/client/editor/_app/immutable/entry/start.BhTJ0i9W.js.gz +0 -0
  121. package/build/client/editor/_app/immutable/nodes/0.COJVMh4B.js +1 -0
  122. package/build/client/editor/_app/immutable/nodes/0.COJVMh4B.js.br +0 -0
  123. package/build/client/editor/_app/immutable/nodes/0.COJVMh4B.js.gz +0 -0
  124. package/build/client/editor/_app/immutable/nodes/1.DJaftbwV.js +1 -0
  125. package/build/client/editor/_app/immutable/nodes/1.DJaftbwV.js.br +0 -0
  126. package/build/client/editor/_app/immutable/nodes/1.DJaftbwV.js.gz +0 -0
  127. package/build/client/editor/_app/immutable/nodes/2.hSg-60Cn.js +1 -0
  128. package/build/client/editor/_app/immutable/nodes/2.hSg-60Cn.js.br +0 -0
  129. package/build/client/editor/_app/immutable/nodes/2.hSg-60Cn.js.gz +0 -0
  130. package/build/client/editor/_app/immutable/nodes/{3.Cqtx7x9a.js → 3.QrFuulIk.js} +1 -1
  131. package/build/client/editor/_app/immutable/nodes/3.QrFuulIk.js.br +0 -0
  132. package/build/client/editor/_app/immutable/nodes/3.QrFuulIk.js.gz +0 -0
  133. package/build/client/editor/_app/immutable/nodes/4.C5GE3M0L.js +37 -0
  134. package/build/client/editor/_app/immutable/nodes/4.C5GE3M0L.js.br +0 -0
  135. package/build/client/editor/_app/immutable/nodes/4.C5GE3M0L.js.gz +0 -0
  136. package/build/client/editor/_app/immutable/nodes/{5.D2aFuvBn.js → 5.BYmoKSds.js} +1 -1
  137. package/build/client/editor/_app/immutable/nodes/5.BYmoKSds.js.br +0 -0
  138. package/build/client/editor/_app/immutable/nodes/5.BYmoKSds.js.gz +0 -0
  139. package/build/client/editor/_app/immutable/nodes/6.C2Oepmc8.js +1 -0
  140. package/build/client/editor/_app/immutable/nodes/6.C2Oepmc8.js.br +2 -0
  141. package/build/client/editor/_app/immutable/nodes/6.C2Oepmc8.js.gz +0 -0
  142. package/build/client/editor/_app/immutable/nodes/{7.CK8AbCDt.js → 7.CNlICHs1.js} +1 -1
  143. package/build/client/editor/_app/immutable/nodes/7.CNlICHs1.js.br +0 -0
  144. package/build/client/editor/_app/immutable/nodes/7.CNlICHs1.js.gz +0 -0
  145. package/build/client/editor/_app/version.json +1 -1
  146. package/build/client/editor/_app/version.json.br +0 -0
  147. package/build/client/editor/_app/version.json.gz +0 -0
  148. package/build/server/chunks/{0-CVsgCYaw.js → 0-Dfk_TJeb.js} +9 -9
  149. package/build/server/chunks/{0-CVsgCYaw.js.map → 0-Dfk_TJeb.js.map} +1 -1
  150. package/build/server/chunks/1-CxKhMY3h.js +9 -0
  151. package/build/server/chunks/{1-CYZs6psN.js.map → 1-CxKhMY3h.js.map} +1 -1
  152. package/build/server/chunks/{2-C2x_QvgF.js → 2-BVitWtY7.js} +8 -8
  153. package/build/server/chunks/{2-C2x_QvgF.js.map → 2-BVitWtY7.js.map} +1 -1
  154. package/build/server/chunks/{3-C6-Dhs4W.js → 3-6rwM2N3L.js} +3 -3
  155. package/build/server/chunks/{3-C6-Dhs4W.js.map → 3-6rwM2N3L.js.map} +1 -1
  156. package/build/server/chunks/{4-D0SS-kgp.js → 4-unIEe-sR.js} +3 -3
  157. package/build/server/chunks/{4-D0SS-kgp.js.map → 4-unIEe-sR.js.map} +1 -1
  158. package/build/server/chunks/{5--V98Qm5p.js → 5-VgpV3S3k.js} +3 -3
  159. package/build/server/chunks/{5--V98Qm5p.js.map → 5-VgpV3S3k.js.map} +1 -1
  160. package/build/server/chunks/{6-CtYpdu6J.js → 6-BoPXva6f.js} +8 -8
  161. package/build/server/chunks/{6-CtYpdu6J.js.map → 6-BoPXva6f.js.map} +1 -1
  162. package/build/server/chunks/{7-CF8ZtwHm.js → 7-Cz84aPi5.js} +3 -3
  163. package/build/server/chunks/{7-CF8ZtwHm.js.map → 7-Cz84aPi5.js.map} +1 -1
  164. package/build/server/chunks/{ActionButton-zFpFdWu0.js → ActionButton-BVpJOdmZ.js} +2 -2
  165. package/build/server/chunks/{ActionButton-zFpFdWu0.js.map → ActionButton-BVpJOdmZ.js.map} +1 -1
  166. package/build/server/chunks/{AddImageButton-C4yniSzj.js → AddImageButton-wkRQwQyU.js} +4 -4
  167. package/build/server/chunks/{AddImageButton-C4yniSzj.js.map → AddImageButton-wkRQwQyU.js.map} +1 -1
  168. package/build/server/chunks/{Checkbox-CozDRCdr.js → Checkbox-o_OQis9x.js} +2 -2
  169. package/build/server/chunks/{Checkbox-CozDRCdr.js.map → Checkbox-o_OQis9x.js.map} +1 -1
  170. package/build/server/chunks/Icon-D6YekQ8Q.js +76 -0
  171. package/build/server/chunks/Icon-D6YekQ8Q.js.map +1 -0
  172. package/build/server/chunks/{Layout-CCaz3zTu.js → Layout-Cbf9GL2n.js} +6 -76
  173. package/build/server/chunks/Layout-Cbf9GL2n.js.map +1 -0
  174. package/build/server/chunks/{Modal-C0ES40l0.js → Modal-BmkqyOQk.js} +3 -3
  175. package/build/server/chunks/{Modal-C0ES40l0.js.map → Modal-BmkqyOQk.js.map} +1 -1
  176. package/build/server/chunks/{OriginalImage-C1Oocqz3.js → OriginalImage-T1O1RjA4.js} +4 -4
  177. package/build/server/chunks/{OriginalImage-C1Oocqz3.js.map → OriginalImage-T1O1RjA4.js.map} +1 -1
  178. package/build/server/chunks/{SearchInput-BgG4wOSi.js → SearchInput-6iIV7qsX.js} +2 -2
  179. package/build/server/chunks/{SearchInput-BgG4wOSi.js.map → SearchInput-6iIV7qsX.js.map} +1 -1
  180. package/build/server/chunks/{TagEdit-BqwP0FFi.js → TagEdit-DKl5am0n.js} +4 -4
  181. package/build/server/chunks/{TagEdit-BqwP0FFi.js.map → TagEdit-DKl5am0n.js.map} +1 -1
  182. package/build/server/chunks/{Tooltip-B5AhBaHE.js → Tooltip-CcYD8tLg.js} +2 -2
  183. package/build/server/chunks/{Tooltip-B5AhBaHE.js.map → Tooltip-CcYD8tLg.js.map} +1 -1
  184. package/build/server/chunks/{_layout.svelte-B9sq7tUv.js → _layout.svelte-B6foPZhp.js} +14 -11
  185. package/build/server/chunks/_layout.svelte-B6foPZhp.js.map +1 -0
  186. package/build/server/chunks/{_page.svelte-d4pEcCcc.js → _page.svelte-BZdh5P6v.js} +215 -157
  187. package/build/server/chunks/_page.svelte-BZdh5P6v.js.map +1 -0
  188. package/build/server/chunks/{_page.svelte-D178FMOD.js → _page.svelte-B_b_4W_t.js} +34 -34
  189. package/build/server/chunks/_page.svelte-B_b_4W_t.js.map +1 -0
  190. package/build/server/chunks/{_page.svelte-DA6LdP5N.js → _page.svelte-Bheq9Ffm.js} +10 -10
  191. package/build/server/chunks/{_page.svelte-DA6LdP5N.js.map → _page.svelte-Bheq9Ffm.js.map} +1 -1
  192. package/build/server/chunks/{_page.svelte-Qh29KMdS.js → _page.svelte-DwxJ8m-6.js} +13 -13
  193. package/build/server/chunks/_page.svelte-DwxJ8m-6.js.map +1 -0
  194. package/build/server/chunks/{_page.svelte-C_kvT3BB.js → _page.svelte-dnxmJ_RW.js} +415 -451
  195. package/build/server/chunks/_page.svelte-dnxmJ_RW.js.map +1 -0
  196. package/build/server/chunks/{_page.svelte-DdmTgcmI.js → _page.svelte-qqm4rNsV.js} +12 -12
  197. package/build/server/chunks/{_page.svelte-DdmTgcmI.js.map → _page.svelte-qqm4rNsV.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-S1gA65DS.js → _server.ts-25JIEREN.js} +6 -6
  199. package/build/server/chunks/{_server.ts-S1gA65DS.js.map → _server.ts-25JIEREN.js.map} +1 -1
  200. package/build/server/chunks/{_server.ts-BPnbv-YB.js → _server.ts-BbrBd9qr.js} +6 -6
  201. package/build/server/chunks/{_server.ts-BPnbv-YB.js.map → _server.ts-BbrBd9qr.js.map} +1 -1
  202. package/build/server/chunks/{_server.ts-CiNTKgXl.js → _server.ts-Ct5jwND_.js} +6 -6
  203. package/build/server/chunks/{_server.ts-CiNTKgXl.js.map → _server.ts-Ct5jwND_.js.map} +1 -1
  204. package/build/server/chunks/{_server.ts-BH5Y8MeZ.js → _server.ts-DQccEkuS.js} +6 -6
  205. package/build/server/chunks/{_server.ts-BH5Y8MeZ.js.map → _server.ts-DQccEkuS.js.map} +1 -1
  206. package/build/server/chunks/{_server.ts-Dg6dHcdH.js → _server.ts-LofwHGyu.js} +6 -6
  207. package/build/server/chunks/{_server.ts-Dg6dHcdH.js.map → _server.ts-LofwHGyu.js.map} +1 -1
  208. package/build/server/chunks/{circle-x-pI9e3-ZY.js → circle-x-BfwNryZh.js} +3 -3
  209. package/build/server/chunks/circle-x-BfwNryZh.js.map +1 -0
  210. package/build/server/chunks/{error.svelte-DR0HSUIK.js → error.svelte-C6YxQrsH.js} +4 -4
  211. package/build/server/chunks/{error.svelte-DR0HSUIK.js.map → error.svelte-C6YxQrsH.js.map} +1 -1
  212. package/build/server/chunks/{exports-C9KHKwPe.js → exports-BJD76umC.js} +2 -2
  213. package/build/server/chunks/{exports-C9KHKwPe.js.map → exports-BJD76umC.js.map} +1 -1
  214. package/build/server/chunks/eye-BlNCCVn1.js +43 -0
  215. package/build/server/chunks/eye-BlNCCVn1.js.map +1 -0
  216. package/build/server/chunks/{galleryoverride.svelte-KeKQnrJx.js → galleryoverride.svelte-BV3YLOis.js} +2 -2
  217. package/build/server/chunks/{galleryoverride.svelte-KeKQnrJx.js.map → galleryoverride.svelte-BV3YLOis.js.map} +1 -1
  218. package/build/server/chunks/{galleryutil-CNHfNYsK.js → galleryutil-BSy19g0y.js} +3 -3
  219. package/build/server/chunks/{galleryutil-CNHfNYsK.js.map → galleryutil-BSy19g0y.js.map} +1 -1
  220. package/build/server/chunks/{index-ChycExq-.js → index-6GdTEbjU.js} +3 -3
  221. package/build/server/chunks/{index-ChycExq-.js.map → index-6GdTEbjU.js.map} +1 -1
  222. package/build/server/chunks/{root-C9Hma45-.js → root-CupBMgyF.js} +2 -2
  223. package/build/server/chunks/{root-C9Hma45-.js.map → root-CupBMgyF.js.map} +1 -1
  224. package/build/server/chunks/{routing-DYQTvdBm.js → routing-DTYvkbgc.js} +2 -2
  225. package/build/server/chunks/{routing-DYQTvdBm.js.map → routing-DTYvkbgc.js.map} +1 -1
  226. package/build/server/chunks/{server2-BkW4FhQy.js → server2-92GrlBNh.js} +3 -3
  227. package/build/server/chunks/{server2-BkW4FhQy.js.map → server2-92GrlBNh.js.map} +1 -1
  228. package/build/server/chunks/{trash-GBDhJwpj.js → trash-rtKFMGED.js} +3 -3
  229. package/build/server/chunks/trash-rtKFMGED.js.map +1 -0
  230. package/build/server/chunks/{util-DTbakmxX.js → util-DS6EORSM.js} +2 -2
  231. package/build/server/chunks/{util-DTbakmxX.js.map → util-DS6EORSM.js.map} +1 -1
  232. package/build/server/index.js +4 -4
  233. package/build/server/index.js.map +1 -1
  234. package/build/server/manifest.js +14 -14
  235. package/build/server/manifest.js.map +1 -1
  236. package/package.json +1 -1
  237. package/build/client/editor/_app/immutable/assets/0.BgR4Ma1k.css +0 -1
  238. package/build/client/editor/_app/immutable/assets/0.BgR4Ma1k.css.br +0 -0
  239. package/build/client/editor/_app/immutable/assets/0.BgR4Ma1k.css.gz +0 -0
  240. package/build/client/editor/_app/immutable/chunks/2WC8KHrG.js.br +0 -2
  241. package/build/client/editor/_app/immutable/chunks/2WC8KHrG.js.gz +0 -0
  242. package/build/client/editor/_app/immutable/chunks/7z_tpSrq.js.br +0 -0
  243. package/build/client/editor/_app/immutable/chunks/7z_tpSrq.js.gz +0 -0
  244. package/build/client/editor/_app/immutable/chunks/ALQ1p0Uc.js.br +0 -0
  245. package/build/client/editor/_app/immutable/chunks/ALQ1p0Uc.js.gz +0 -0
  246. package/build/client/editor/_app/immutable/chunks/B7JzZcRj.js +0 -1
  247. package/build/client/editor/_app/immutable/chunks/B7JzZcRj.js.br +0 -0
  248. package/build/client/editor/_app/immutable/chunks/B7JzZcRj.js.gz +0 -0
  249. package/build/client/editor/_app/immutable/chunks/BHdnHyTP.js.br +0 -0
  250. package/build/client/editor/_app/immutable/chunks/BHdnHyTP.js.gz +0 -0
  251. package/build/client/editor/_app/immutable/chunks/BJE6vWe4.js.br +0 -0
  252. package/build/client/editor/_app/immutable/chunks/BJE6vWe4.js.gz +0 -0
  253. package/build/client/editor/_app/immutable/chunks/BMM0ht_N.js +0 -2
  254. package/build/client/editor/_app/immutable/chunks/BMM0ht_N.js.br +0 -0
  255. package/build/client/editor/_app/immutable/chunks/BMM0ht_N.js.gz +0 -0
  256. package/build/client/editor/_app/immutable/chunks/BQ1uDTpW.js.br +0 -0
  257. package/build/client/editor/_app/immutable/chunks/BQ1uDTpW.js.gz +0 -0
  258. package/build/client/editor/_app/immutable/chunks/BSlEf7xV.js.br +0 -0
  259. package/build/client/editor/_app/immutable/chunks/BSlEf7xV.js.gz +0 -0
  260. package/build/client/editor/_app/immutable/chunks/BTpAajBD.js +0 -12
  261. package/build/client/editor/_app/immutable/chunks/BTpAajBD.js.br +0 -0
  262. package/build/client/editor/_app/immutable/chunks/BTpAajBD.js.gz +0 -0
  263. package/build/client/editor/_app/immutable/chunks/BTtfuoSF.js.br +0 -0
  264. package/build/client/editor/_app/immutable/chunks/BTtfuoSF.js.gz +0 -0
  265. package/build/client/editor/_app/immutable/chunks/BZxi-V9T.js +0 -1
  266. package/build/client/editor/_app/immutable/chunks/BZxi-V9T.js.br +0 -0
  267. package/build/client/editor/_app/immutable/chunks/BZxi-V9T.js.gz +0 -0
  268. package/build/client/editor/_app/immutable/chunks/BikxVL5z.js.br +0 -0
  269. package/build/client/editor/_app/immutable/chunks/BikxVL5z.js.gz +0 -0
  270. package/build/client/editor/_app/immutable/chunks/BtvCwzt1.js.br +0 -0
  271. package/build/client/editor/_app/immutable/chunks/BtvCwzt1.js.gz +0 -0
  272. package/build/client/editor/_app/immutable/chunks/ButEISQV.js.br +0 -0
  273. package/build/client/editor/_app/immutable/chunks/ButEISQV.js.gz +0 -0
  274. package/build/client/editor/_app/immutable/chunks/ByHdMmpw.js +0 -1
  275. package/build/client/editor/_app/immutable/chunks/ByHdMmpw.js.br +0 -0
  276. package/build/client/editor/_app/immutable/chunks/ByHdMmpw.js.gz +0 -0
  277. package/build/client/editor/_app/immutable/chunks/C90CMw-j.js.br +0 -0
  278. package/build/client/editor/_app/immutable/chunks/C90CMw-j.js.gz +0 -0
  279. package/build/client/editor/_app/immutable/chunks/C9yOFeOX.js.br +0 -0
  280. package/build/client/editor/_app/immutable/chunks/C9yOFeOX.js.gz +0 -0
  281. package/build/client/editor/_app/immutable/chunks/CZYLd901.js.br +0 -0
  282. package/build/client/editor/_app/immutable/chunks/CZYLd901.js.gz +0 -0
  283. package/build/client/editor/_app/immutable/chunks/Cc8sq9kr.js.br +0 -0
  284. package/build/client/editor/_app/immutable/chunks/Cc8sq9kr.js.gz +0 -0
  285. package/build/client/editor/_app/immutable/chunks/CkDosdno.js.br +0 -0
  286. package/build/client/editor/_app/immutable/chunks/CkDosdno.js.gz +0 -0
  287. package/build/client/editor/_app/immutable/chunks/CvGCHxqA.js.br +0 -0
  288. package/build/client/editor/_app/immutable/chunks/CvGCHxqA.js.gz +0 -0
  289. package/build/client/editor/_app/immutable/chunks/Cw0BW7nP.js.br +0 -0
  290. package/build/client/editor/_app/immutable/chunks/Cw0BW7nP.js.gz +0 -0
  291. package/build/client/editor/_app/immutable/chunks/CyuBb-Yc.js.br +0 -0
  292. package/build/client/editor/_app/immutable/chunks/CyuBb-Yc.js.gz +0 -0
  293. package/build/client/editor/_app/immutable/chunks/D318S5v0.js.br +0 -0
  294. package/build/client/editor/_app/immutable/chunks/D318S5v0.js.gz +0 -0
  295. package/build/client/editor/_app/immutable/chunks/DGJVDpSi.js.br +0 -0
  296. package/build/client/editor/_app/immutable/chunks/DGJVDpSi.js.gz +0 -0
  297. package/build/client/editor/_app/immutable/chunks/DQyInuJY.js.br +0 -0
  298. package/build/client/editor/_app/immutable/chunks/DQyInuJY.js.gz +0 -0
  299. package/build/client/editor/_app/immutable/chunks/DWAwFQ3Y.js.br +0 -0
  300. package/build/client/editor/_app/immutable/chunks/DWAwFQ3Y.js.gz +0 -0
  301. package/build/client/editor/_app/immutable/chunks/DXPe1KZO.js.br +0 -0
  302. package/build/client/editor/_app/immutable/chunks/DXPe1KZO.js.gz +0 -0
  303. package/build/client/editor/_app/immutable/chunks/DZjK_3Rj.js.br +0 -0
  304. package/build/client/editor/_app/immutable/chunks/DZjK_3Rj.js.gz +0 -0
  305. package/build/client/editor/_app/immutable/chunks/D_uh7BRz.js.br +0 -0
  306. package/build/client/editor/_app/immutable/chunks/D_uh7BRz.js.gz +0 -0
  307. package/build/client/editor/_app/immutable/chunks/DkP1XNYf.js.br +0 -0
  308. package/build/client/editor/_app/immutable/chunks/DkP1XNYf.js.gz +0 -0
  309. package/build/client/editor/_app/immutable/chunks/Dpelj1Uz.js.br +0 -0
  310. package/build/client/editor/_app/immutable/chunks/Dpelj1Uz.js.gz +0 -0
  311. package/build/client/editor/_app/immutable/chunks/Dt5dFdUv.js.br +0 -0
  312. package/build/client/editor/_app/immutable/chunks/Dt5dFdUv.js.gz +0 -0
  313. package/build/client/editor/_app/immutable/chunks/_944w3sg.js.br +0 -0
  314. package/build/client/editor/_app/immutable/chunks/_944w3sg.js.gz +0 -0
  315. package/build/client/editor/_app/immutable/chunks/gzHRGRHa.js.br +0 -0
  316. package/build/client/editor/_app/immutable/chunks/gzHRGRHa.js.gz +0 -0
  317. package/build/client/editor/_app/immutable/chunks/uc0Ch2Ls.js.br +0 -0
  318. package/build/client/editor/_app/immutable/chunks/uc0Ch2Ls.js.gz +0 -0
  319. package/build/client/editor/_app/immutable/entry/app.D5BAe40u.js.br +0 -0
  320. package/build/client/editor/_app/immutable/entry/app.D5BAe40u.js.gz +0 -0
  321. package/build/client/editor/_app/immutable/entry/start.Dbj3NEij.js +0 -1
  322. package/build/client/editor/_app/immutable/entry/start.Dbj3NEij.js.br +0 -2
  323. package/build/client/editor/_app/immutable/entry/start.Dbj3NEij.js.gz +0 -0
  324. package/build/client/editor/_app/immutable/nodes/0.B65QECOK.js +0 -1
  325. package/build/client/editor/_app/immutable/nodes/0.B65QECOK.js.br +0 -0
  326. package/build/client/editor/_app/immutable/nodes/0.B65QECOK.js.gz +0 -0
  327. package/build/client/editor/_app/immutable/nodes/1.BAYML0ZH.js +0 -1
  328. package/build/client/editor/_app/immutable/nodes/1.BAYML0ZH.js.br +0 -2
  329. package/build/client/editor/_app/immutable/nodes/1.BAYML0ZH.js.gz +0 -0
  330. package/build/client/editor/_app/immutable/nodes/2.ytJxQEKk.js +0 -1
  331. package/build/client/editor/_app/immutable/nodes/2.ytJxQEKk.js.br +0 -0
  332. package/build/client/editor/_app/immutable/nodes/2.ytJxQEKk.js.gz +0 -0
  333. package/build/client/editor/_app/immutable/nodes/3.Cqtx7x9a.js.br +0 -0
  334. package/build/client/editor/_app/immutable/nodes/3.Cqtx7x9a.js.gz +0 -0
  335. package/build/client/editor/_app/immutable/nodes/4.CZ2TjVb2.js +0 -37
  336. package/build/client/editor/_app/immutable/nodes/4.CZ2TjVb2.js.br +0 -0
  337. package/build/client/editor/_app/immutable/nodes/4.CZ2TjVb2.js.gz +0 -0
  338. package/build/client/editor/_app/immutable/nodes/5.D2aFuvBn.js.br +0 -0
  339. package/build/client/editor/_app/immutable/nodes/5.D2aFuvBn.js.gz +0 -0
  340. package/build/client/editor/_app/immutable/nodes/6.BAIfGEbB.js +0 -1
  341. package/build/client/editor/_app/immutable/nodes/6.BAIfGEbB.js.br +0 -0
  342. package/build/client/editor/_app/immutable/nodes/6.BAIfGEbB.js.gz +0 -0
  343. package/build/client/editor/_app/immutable/nodes/7.CK8AbCDt.js.br +0 -0
  344. package/build/client/editor/_app/immutable/nodes/7.CK8AbCDt.js.gz +0 -0
  345. package/build/server/chunks/1-CYZs6psN.js +0 -9
  346. package/build/server/chunks/Layout-CCaz3zTu.js.map +0 -1
  347. package/build/server/chunks/_layout.svelte-B9sq7tUv.js.map +0 -1
  348. package/build/server/chunks/_page.svelte-C_kvT3BB.js.map +0 -1
  349. package/build/server/chunks/_page.svelte-D178FMOD.js.map +0 -1
  350. package/build/server/chunks/_page.svelte-Qh29KMdS.js.map +0 -1
  351. package/build/server/chunks/_page.svelte-d4pEcCcc.js.map +0 -1
  352. package/build/server/chunks/circle-x-pI9e3-ZY.js.map +0 -1
  353. package/build/server/chunks/navbarstate.svelte-DDGU7WKW.js +0 -6
  354. package/build/server/chunks/navbarstate.svelte-DDGU7WKW.js.map +0 -1
  355. package/build/server/chunks/trash-GBDhJwpj.js.map +0 -1
@@ -1,15 +1,15 @@
1
- import { p as head, x as ensure_array_like, q as attr_style, A as stringify, t as escape_html } from './root-C9Hma45-.js';
2
- import { i as invalidateAll } from './index-ChycExq-.js';
3
- import { r as resolve } from './server2-BkW4FhQy.js';
4
- import { A as ActionButton } from './ActionButton-zFpFdWu0.js';
5
- import { C as ChippedInput, T as TagEdit } from './TagEdit-BqwP0FFi.js';
6
- import { T as TextInput } from './SearchInput-BgG4wOSi.js';
7
- import { L as Layout } from './Layout-CCaz3zTu.js';
8
- import './exports-C9KHKwPe.js';
9
- import './routing-DYQTvdBm.js';
10
- import './circle-x-pI9e3-ZY.js';
1
+ import { p as head, x as ensure_array_like, q as attr_style, A as stringify, t as escape_html } from './root-CupBMgyF.js';
2
+ import { i as invalidateAll } from './index-6GdTEbjU.js';
3
+ import { r as resolve } from './server2-92GrlBNh.js';
4
+ import { A as ActionButton } from './ActionButton-BVpJOdmZ.js';
5
+ import { C as ChippedInput, T as TagEdit } from './TagEdit-DKl5am0n.js';
6
+ import { T as TextInput } from './SearchInput-6iIV7qsX.js';
7
+ import { L as Layout } from './Layout-Cbf9GL2n.js';
8
+ import './exports-BJD76umC.js';
9
+ import './routing-DTYvkbgc.js';
10
+ import './circle-x-BfwNryZh.js';
11
+ import './Icon-D6YekQ8Q.js';
11
12
  import 'fuzzysort';
12
- import './navbarstate.svelte-DDGU7WKW.js';
13
13
 
14
14
  function _page($$renderer, $$props) {
15
15
  $$renderer.component(($$renderer2) => {
@@ -165,4 +165,4 @@ function _page($$renderer, $$props) {
165
165
  }
166
166
 
167
167
  export { _page as default };
168
- //# sourceMappingURL=_page.svelte-DdmTgcmI.js.map
168
+ //# sourceMappingURL=_page.svelte-qqm4rNsV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-DdmTgcmI.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/config/_page.svelte.js"],"sourcesContent":["import { i as head, h as ensure_array_like, c as attr_style, s as stringify, g as escape_html } from \"../../../chunks/root.js\";\nimport { i as invalidateAll } from \"../../../chunks/index.js\";\nimport { r as resolve } from \"../../../chunks/server2.js\";\nimport { A as ActionButton } from \"../../../chunks/ActionButton.js\";\nimport { C as ChippedInput, T as TagEdit } from \"../../../chunks/TagEdit.js\";\nimport { T as TextInput } from \"../../../chunks/SearchInput.js\";\nimport { L as Layout } from \"../../../chunks/Layout.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const { data } = $$props;\n let settings = data.themeConfig;\n let loading = false;\n async function save() {\n loading = true;\n try {\n await fetch(resolve(\"/api/config/save\"), {\n method: \"POST\",\n body: JSON.stringify(settings),\n headers: { \"Content-Type\": \"application/json\" }\n });\n } finally {\n loading = false;\n invalidateAll();\n }\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1gp6n77\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Config Editor | Art Site Editor</title>`);\n });\n });\n Layout($$renderer3, {\n title: \"Configuration\",\n children: ($$renderer4) => {\n $$renderer4.push(`<div>`);\n TextInput($$renderer4, {\n label: \"Default Artist\",\n options: data.artists,\n get value() {\n return settings.defaultArtist;\n },\n set value($$value) {\n settings.defaultArtist = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> <!--[-->`);\n const each_array = ensure_array_like(Object.entries(data.themeSchema));\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let [key, scheme] = each_array[$$index];\n if (scheme.type === \"string\") {\n $$renderer4.push(\"<!--[0-->\");\n TextInput($$renderer4, {\n label: key,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else if (scheme.type === \"color\") {\n $$renderer4.push(\"<!--[1-->\");\n $$renderer4.push(`<div class=\"flex items-center gap-x-2\">`);\n TextInput($$renderer4, {\n label: key,\n validationError: !/^#(?:[A-Fa-f0-9]{3,4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/.test(settings[key]) ? \"Must be a valid color in hex\" : \"\",\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> <div class=\"h-4 w-4\"${attr_style(`background-color: ${stringify(settings[key])};`)}></div></div>`);\n } else if (scheme.type === \"selection\" && !scheme.multi) {\n $$renderer4.push(\"<!--[2-->\");\n TextInput($$renderer4, {\n label: key,\n validationError: settings[key] && !scheme.options.includes(settings[key]) ? \"Must match one of the available options\" : \"\",\n options: scheme.options,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else if (scheme.type === \"selection\" && scheme.multi) {\n $$renderer4.push(\"<!--[3-->\");\n ChippedInput($$renderer4, {\n label: key,\n options: scheme.options,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else if (scheme.type === \"string-list\") {\n $$renderer4.push(\"<!--[4-->\");\n ChippedInput($$renderer4, {\n label: key,\n onAddUnknown: (s) => s,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else if (scheme.type === \"tag-list\") {\n $$renderer4.push(\"<!--[5-->\");\n TagEdit($$renderer4, {\n label: key,\n prefix: \"#\",\n possibleTags: data.allTags,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]-->`);\n }\n $$renderer4.push(`<!--]--></div> `);\n ActionButton($$renderer4, {\n action: save,\n disabled: loading,\n class: \"absolute right-3 bottom-3 preset-filled-primary-50-950\",\n children: ($$renderer5) => {\n $$renderer5.push(`<i class=\"fa-solid fa-save\"></i> <span>${escape_html(loading ? \"Saving...\" : \"Save\")}</span>`);\n }\n });\n $$renderer4.push(`<!---->`);\n }\n });\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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"}
1
+ {"version":3,"file":"_page.svelte-qqm4rNsV.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/config/_page.svelte.js"],"sourcesContent":["import { i as head, h as ensure_array_like, c as attr_style, s as stringify, g as escape_html } from \"../../../chunks/root.js\";\nimport { i as invalidateAll } from \"../../../chunks/index.js\";\nimport { r as resolve } from \"../../../chunks/server2.js\";\nimport { A as ActionButton } from \"../../../chunks/ActionButton.js\";\nimport { C as ChippedInput, T as TagEdit } from \"../../../chunks/TagEdit.js\";\nimport { T as TextInput } from \"../../../chunks/SearchInput.js\";\nimport { L as Layout } from \"../../../chunks/Layout.js\";\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const { data } = $$props;\n let settings = data.themeConfig;\n let loading = false;\n async function save() {\n loading = true;\n try {\n await fetch(resolve(\"/api/config/save\"), {\n method: \"POST\",\n body: JSON.stringify(settings),\n headers: { \"Content-Type\": \"application/json\" }\n });\n } finally {\n loading = false;\n invalidateAll();\n }\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1gp6n77\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>Config Editor | Art Site Editor</title>`);\n });\n });\n Layout($$renderer3, {\n title: \"Configuration\",\n children: ($$renderer4) => {\n $$renderer4.push(`<div>`);\n TextInput($$renderer4, {\n label: \"Default Artist\",\n options: data.artists,\n get value() {\n return settings.defaultArtist;\n },\n set value($$value) {\n settings.defaultArtist = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> <!--[-->`);\n const each_array = ensure_array_like(Object.entries(data.themeSchema));\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let [key, scheme] = each_array[$$index];\n if (scheme.type === \"string\") {\n $$renderer4.push(\"<!--[0-->\");\n TextInput($$renderer4, {\n label: key,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else if (scheme.type === \"color\") {\n $$renderer4.push(\"<!--[1-->\");\n $$renderer4.push(`<div class=\"flex items-center gap-x-2\">`);\n TextInput($$renderer4, {\n label: key,\n validationError: !/^#(?:[A-Fa-f0-9]{3,4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/.test(settings[key]) ? \"Must be a valid color in hex\" : \"\",\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n $$renderer4.push(`<!----> <div class=\"h-4 w-4\"${attr_style(`background-color: ${stringify(settings[key])};`)}></div></div>`);\n } else if (scheme.type === \"selection\" && !scheme.multi) {\n $$renderer4.push(\"<!--[2-->\");\n TextInput($$renderer4, {\n label: key,\n validationError: settings[key] && !scheme.options.includes(settings[key]) ? \"Must match one of the available options\" : \"\",\n options: scheme.options,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else if (scheme.type === \"selection\" && scheme.multi) {\n $$renderer4.push(\"<!--[3-->\");\n ChippedInput($$renderer4, {\n label: key,\n options: scheme.options,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else if (scheme.type === \"string-list\") {\n $$renderer4.push(\"<!--[4-->\");\n ChippedInput($$renderer4, {\n label: key,\n onAddUnknown: (s) => s,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else if (scheme.type === \"tag-list\") {\n $$renderer4.push(\"<!--[5-->\");\n TagEdit($$renderer4, {\n label: key,\n prefix: \"#\",\n possibleTags: data.allTags,\n get value() {\n return settings[key];\n },\n set value($$value) {\n settings[key] = $$value;\n $$settled = false;\n }\n });\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]-->`);\n }\n $$renderer4.push(`<!--]--></div> `);\n ActionButton($$renderer4, {\n action: save,\n disabled: loading,\n class: \"absolute right-3 bottom-3 preset-filled-primary-50-950\",\n children: ($$renderer5) => {\n $$renderer5.push(`<i class=\"fa-solid fa-save\"></i> <span>${escape_html(loading ? \"Saving...\" : \"Save\")}</span>`);\n }\n });\n $$renderer4.push(`<!---->`);\n }\n });\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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"}
@@ -2,17 +2,17 @@ import { e as error, j as json } from './index-lhTMmBNn.js';
2
2
  import path from 'node:path';
3
3
  import { $ART } from '@phosart/common/server';
4
4
  import { writeFile } from 'node:fs/promises';
5
- import { n as normalizeGalleryPath, g as getGalleryDir, b as getGalleryName } from './galleryutil-CNHfNYsK.js';
5
+ import { n as normalizeGalleryPath, g as getGalleryDir, b as getGalleryName } from './galleryutil-BSy19g0y.js';
6
6
  import { g as getImageExtension } from './fileutil2-CRs5tSRN.js';
7
7
  import { r as resolveWithinArt, b as asNodeStream } from './fileutil-DloN3u5O.js';
8
8
  import { spawn } from 'node:child_process';
9
9
  import { path as path$1 } from '@ffmpeg-installer/ffmpeg';
10
10
  import { c as createLogger } from './log-Dgdg632G.js';
11
11
  import { randomInt } from 'node:crypto';
12
- import './server2-BkW4FhQy.js';
13
- import './routing-DYQTvdBm.js';
14
- import './root-C9Hma45-.js';
15
- import './util-DTbakmxX.js';
12
+ import './server2-92GrlBNh.js';
13
+ import './routing-DTYvkbgc.js';
14
+ import './root-CupBMgyF.js';
15
+ import './util-DS6EORSM.js';
16
16
  import 'node:stream';
17
17
  import 'tslog';
18
18
 
@@ -92,4 +92,4 @@ function relpath(galleryPath, fname, ftype, rand) {
92
92
  }
93
93
 
94
94
  export { POST };
95
- //# sourceMappingURL=_server.ts-S1gA65DS.js.map
95
+ //# sourceMappingURL=_server.ts-25JIEREN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-S1gA65DS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/gallery/_...gallerypath_/upload-image/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport path from \"node:path\";\nimport { $ART } from \"@phosart/common/server\";\nimport { writeFile } from \"node:fs/promises\";\nimport { n as normalizeGalleryPath, g as getGalleryDir, b as getGalleryName } from \"../../../../../../chunks/galleryutil.js\";\nimport { g as getImageExtension } from \"../../../../../../chunks/fileutil2.js\";\nimport { r as resolveWithinArt, b as asNodeStream } from \"../../../../../../chunks/fileutil.js\";\nimport { spawn } from \"node:child_process\";\nimport { path as path$1 } from \"@ffmpeg-installer/ffmpeg\";\nimport { c as createLogger } from \"../../../../../../chunks/log.js\";\nimport { randomInt } from \"node:crypto\";\nconst logger = createLogger();\nconst POST = async ({ request, params }) => {\n const galleryPath = normalizeGalleryPath(params.gallerypath);\n const data = await request.formData();\n const f = data.get(\"file\");\n const fname = data.get(\"filename\");\n const ftype = data.get(\"filetype\");\n logger.info(\"Uploading gallery image\", fname, \"to\", galleryPath, \"with type\", ftype);\n const rand = String(Date.now()).slice(-5) + String(randomInt(4096));\n await uploadImage(galleryPath, f, fname, ftype, rand);\n if (ftype.startsWith(\"video\")) {\n logger.info(\"Generating thumbnail for video\", fname, \"@\", galleryPath, \"...\");\n const ffmpegInput = resolveWithinArt(\n path.join($ART(), getGalleryDir(galleryPath), relpath(galleryPath, fname, ftype, rand))\n );\n const ffmpegOutput = resolveWithinArt(\n path.join(\n $ART(),\n getGalleryDir(galleryPath),\n relpath(galleryPath, fname + \"_thumb\", \"image/jpeg\", rand)\n )\n );\n if (!ffmpegInput || !ffmpegOutput) {\n logger.warn(\"Refusing to write video thumbnail outside art root @\", galleryPath);\n throw error(400, \"invalid gallery path\");\n }\n const ffmpeg = spawn(path$1, [\n \"-i\",\n ffmpegInput,\n \"-vf\",\n \"select=eq(n\\\\,0)\",\n \"-vf\",\n \"scale=320:-2\",\n \"-q:v\",\n \"3\",\n ffmpegOutput,\n \"-y\"\n ]);\n try {\n await new Promise((resolve, reject) => {\n ffmpeg.once(\"close\", resolve);\n ffmpeg.on(\"error\", (err) => {\n reject(err);\n });\n });\n } catch (e) {\n logger.warn(\"Failed to generate video thumbnail:\", e);\n }\n }\n logger.info(\"Uploaded gallery image\", fname, \"to\", galleryPath);\n return json({\n fname: \"./\" + relpath(galleryPath, fname, ftype, rand),\n tname: \"./\" + relpath(galleryPath, fname + \"_thumb\", \"image/jpeg\", rand)\n });\n};\nasync function uploadImage(galleryPath, image, fname, ftype, rand) {\n const galleryDir = getGalleryDir(galleryPath);\n const fp = resolveWithinArt(\n path.join($ART(), galleryDir, relpath(galleryPath, fname, ftype, rand))\n );\n if (!fp) {\n logger.warn(\"Refusing to write gallery image outside art root @\", galleryPath);\n throw error(400, \"invalid gallery path\");\n }\n logger.silly(\"Writing gallery image @\", fp, \"for\", fname, \"...\");\n await writeFile(fp, asNodeStream(image.stream()), { encoding: \"utf-8\" });\n logger.debug(\"Wrote gallery image @\", fp);\n}\nfunction relpath(galleryPath, fname, ftype, rand) {\n const galleryName = getGalleryName(galleryPath);\n const safeName = fname.replaceAll(/[^A-Za-z0-9-_]|\\.\\./g, \"\");\n const ext = getImageExtension(ftype);\n return `${galleryName}_${safeName}_${rand}.${ext}`;\n}\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-25JIEREN.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/gallery/_...gallerypath_/upload-image/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport path from \"node:path\";\nimport { $ART } from \"@phosart/common/server\";\nimport { writeFile } from \"node:fs/promises\";\nimport { n as normalizeGalleryPath, g as getGalleryDir, b as getGalleryName } from \"../../../../../../chunks/galleryutil.js\";\nimport { g as getImageExtension } from \"../../../../../../chunks/fileutil2.js\";\nimport { r as resolveWithinArt, b as asNodeStream } from \"../../../../../../chunks/fileutil.js\";\nimport { spawn } from \"node:child_process\";\nimport { path as path$1 } from \"@ffmpeg-installer/ffmpeg\";\nimport { c as createLogger } from \"../../../../../../chunks/log.js\";\nimport { randomInt } from \"node:crypto\";\nconst logger = createLogger();\nconst POST = async ({ request, params }) => {\n const galleryPath = normalizeGalleryPath(params.gallerypath);\n const data = await request.formData();\n const f = data.get(\"file\");\n const fname = data.get(\"filename\");\n const ftype = data.get(\"filetype\");\n logger.info(\"Uploading gallery image\", fname, \"to\", galleryPath, \"with type\", ftype);\n const rand = String(Date.now()).slice(-5) + String(randomInt(4096));\n await uploadImage(galleryPath, f, fname, ftype, rand);\n if (ftype.startsWith(\"video\")) {\n logger.info(\"Generating thumbnail for video\", fname, \"@\", galleryPath, \"...\");\n const ffmpegInput = resolveWithinArt(\n path.join($ART(), getGalleryDir(galleryPath), relpath(galleryPath, fname, ftype, rand))\n );\n const ffmpegOutput = resolveWithinArt(\n path.join(\n $ART(),\n getGalleryDir(galleryPath),\n relpath(galleryPath, fname + \"_thumb\", \"image/jpeg\", rand)\n )\n );\n if (!ffmpegInput || !ffmpegOutput) {\n logger.warn(\"Refusing to write video thumbnail outside art root @\", galleryPath);\n throw error(400, \"invalid gallery path\");\n }\n const ffmpeg = spawn(path$1, [\n \"-i\",\n ffmpegInput,\n \"-vf\",\n \"select=eq(n\\\\,0)\",\n \"-vf\",\n \"scale=320:-2\",\n \"-q:v\",\n \"3\",\n ffmpegOutput,\n \"-y\"\n ]);\n try {\n await new Promise((resolve, reject) => {\n ffmpeg.once(\"close\", resolve);\n ffmpeg.on(\"error\", (err) => {\n reject(err);\n });\n });\n } catch (e) {\n logger.warn(\"Failed to generate video thumbnail:\", e);\n }\n }\n logger.info(\"Uploaded gallery image\", fname, \"to\", galleryPath);\n return json({\n fname: \"./\" + relpath(galleryPath, fname, ftype, rand),\n tname: \"./\" + relpath(galleryPath, fname + \"_thumb\", \"image/jpeg\", rand)\n });\n};\nasync function uploadImage(galleryPath, image, fname, ftype, rand) {\n const galleryDir = getGalleryDir(galleryPath);\n const fp = resolveWithinArt(\n path.join($ART(), galleryDir, relpath(galleryPath, fname, ftype, rand))\n );\n if (!fp) {\n logger.warn(\"Refusing to write gallery image outside art root @\", galleryPath);\n throw error(400, \"invalid gallery path\");\n }\n logger.silly(\"Writing gallery image @\", fp, \"for\", fname, \"...\");\n await writeFile(fp, asNodeStream(image.stream()), { encoding: \"utf-8\" });\n logger.debug(\"Wrote gallery image @\", fp);\n}\nfunction relpath(galleryPath, fname, ftype, rand) {\n const galleryName = getGalleryName(galleryPath);\n const safeName = fname.replaceAll(/[^A-Za-z0-9-_]|\\.\\./g, \"\");\n const ext = getImageExtension(ftype);\n return `${galleryName}_${safeName}_${rand}.${ext}`;\n}\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -13,13 +13,13 @@ 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-CNHfNYsK.js';
16
+ import { i as isExtendsGallery } from './galleryutil-BSy19g0y.js';
17
17
  import { Agent, AtpAgent } from '@atproto/api';
18
18
  import 'tslog';
19
- import './server2-BkW4FhQy.js';
20
- import './routing-DYQTvdBm.js';
21
- import './root-C9Hma45-.js';
22
- import './util-DTbakmxX.js';
19
+ import './server2-92GrlBNh.js';
20
+ import './routing-DTYvkbgc.js';
21
+ import './root-CupBMgyF.js';
22
+ import './util-DS6EORSM.js';
23
23
 
24
24
  const DEFAULT_AGE_MS = 1e3 * 60 * 10;
25
25
  const DEFAULT_MAX_POSTS_FROM_BSKY = 50;
@@ -300,4 +300,4 @@ const POST = async ({ request }) => {
300
300
  };
301
301
 
302
302
  export { POST };
303
- //# sourceMappingURL=_server.ts-BPnbv-YB.js.map
303
+ //# sourceMappingURL=_server.ts-BbrBd9qr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BPnbv-YB.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
+ {"version":3,"file":"_server.ts-BbrBd9qr.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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"}
@@ -3,14 +3,14 @@ import path from 'node:path';
3
3
  import { e as error, j as json } from './index-lhTMmBNn.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-CNHfNYsK.js';
6
+ import { n as normalizeGalleryPath, a as isBaseGallery, g as getGalleryDir } from './galleryutil-BSy19g0y.js';
7
7
  import { c as createLogger } from './log-Dgdg632G.js';
8
8
  import { r as resolveWithinArt, d as deleteResources } from './fileutil-DloN3u5O.js';
9
9
  import { s as signalWork } from './worker-C_FXSTHe.js';
10
- import './server2-BkW4FhQy.js';
11
- import './routing-DYQTvdBm.js';
12
- import './root-C9Hma45-.js';
13
- import './util-DTbakmxX.js';
10
+ import './server2-92GrlBNh.js';
11
+ import './routing-DTYvkbgc.js';
12
+ import './root-CupBMgyF.js';
13
+ import './util-DS6EORSM.js';
14
14
  import 'tslog';
15
15
  import 'node:stream';
16
16
 
@@ -137,4 +137,4 @@ const DELETE = async ({ params }) => {
137
137
  };
138
138
 
139
139
  export { DELETE, POST };
140
- //# sourceMappingURL=_server.ts-CiNTKgXl.js.map
140
+ //# sourceMappingURL=_server.ts-Ct5jwND_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CiNTKgXl.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/gallery/_...gallerypath_/save/_server.ts.js"],"sourcesContent":["import { $ART, rawGalleries, clearCache, RawGallery } from \"@phosart/common/server\";\nimport path from \"node:path\";\nimport { error, json } 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 { r as resolveWithinArt, d as deleteResources } from \"../../../../../../chunks/fileutil.js\";\nimport { s as signalWork } from \"../../../../../../chunks/worker.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 signalWork();\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 let counts;\n let duplicateIndexes;\n do {\n counts = {};\n duplicateIndexes = [];\n for (let i = 0; i < newGallery.pieces.length; i++) {\n const p = newGallery.pieces[i];\n if (p.id !== void 0) {\n counts[p.id] = (counts[p.id] ?? 0) + 1;\n if (counts[p.id] > 1) {\n duplicateIndexes.push(i);\n }\n }\n }\n for (const index of duplicateIndexes) {\n newGallery.pieces[index].id += \"_copy\";\n }\n } while (Object.keys(duplicateIndexes).length > 0);\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 signalWork();\n return json({ ok: true });\n};\nexport {\n DELETE,\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-Ct5jwND_.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/gallery/_...gallerypath_/save/_server.ts.js"],"sourcesContent":["import { $ART, rawGalleries, clearCache, RawGallery } from \"@phosart/common/server\";\nimport path from \"node:path\";\nimport { error, json } 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 { r as resolveWithinArt, d as deleteResources } from \"../../../../../../chunks/fileutil.js\";\nimport { s as signalWork } from \"../../../../../../chunks/worker.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 signalWork();\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 let counts;\n let duplicateIndexes;\n do {\n counts = {};\n duplicateIndexes = [];\n for (let i = 0; i < newGallery.pieces.length; i++) {\n const p = newGallery.pieces[i];\n if (p.id !== void 0) {\n counts[p.id] = (counts[p.id] ?? 0) + 1;\n if (counts[p.id] > 1) {\n duplicateIndexes.push(i);\n }\n }\n }\n for (const index of duplicateIndexes) {\n newGallery.pieces[index].id += \"_copy\";\n }\n } while (Object.keys(duplicateIndexes).length > 0);\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 signalWork();\n return json({ ok: true });\n};\nexport {\n DELETE,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import { open } from 'node:fs/promises';
2
2
  import { a as asWebStream } from './fileutil-DloN3u5O.js';
3
- import { n as normalizeGalleryPath, a as isBaseGallery, g as getGalleryDir } from './galleryutil-CNHfNYsK.js';
3
+ import { n as normalizeGalleryPath, a as isBaseGallery, g as getGalleryDir } from './galleryutil-BSy19g0y.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-lhTMmBNn.js';
7
7
  import { c as createLogger } from './log-Dgdg632G.js';
8
8
  import mime from 'mime';
9
9
  import 'node:stream';
10
- import './server2-BkW4FhQy.js';
11
- import './routing-DYQTvdBm.js';
12
- import './root-C9Hma45-.js';
13
- import './util-DTbakmxX.js';
10
+ import './server2-92GrlBNh.js';
11
+ import './routing-DTYvkbgc.js';
12
+ import './root-CupBMgyF.js';
13
+ import './util-DS6EORSM.js';
14
14
  import 'tslog';
15
15
 
16
16
  const logger$1 = createLogger();
@@ -102,4 +102,4 @@ const GET = async ({ params, url }) => {
102
102
  };
103
103
 
104
104
  export { GET };
105
- //# sourceMappingURL=_server.ts-BH5Y8MeZ.js.map
105
+ //# sourceMappingURL=_server.ts-DQccEkuS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BH5Y8MeZ.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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"}
1
+ {"version":3,"file":"_server.ts-DQccEkuS.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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"}
@@ -1,14 +1,14 @@
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-lhTMmBNn.js';
4
- import { n as normalizeGalleryPath } from './galleryutil-CNHfNYsK.js';
4
+ import { n as normalizeGalleryPath } from './galleryutil-BSy19g0y.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-DloN3u5O.js';
8
- import './server2-BkW4FhQy.js';
9
- import './routing-DYQTvdBm.js';
10
- import './root-C9Hma45-.js';
11
- import './util-DTbakmxX.js';
8
+ import './server2-92GrlBNh.js';
9
+ import './routing-DTYvkbgc.js';
10
+ import './root-CupBMgyF.js';
11
+ import './util-DS6EORSM.js';
12
12
  import 'tslog';
13
13
  import 'node:stream';
14
14
 
@@ -27,4 +27,4 @@ const PATCH = async ({ params }) => {
27
27
  };
28
28
 
29
29
  export { PATCH };
30
- //# sourceMappingURL=_server.ts-Dg6dHcdH.js.map
30
+ //# sourceMappingURL=_server.ts-LofwHGyu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Dg6dHcdH.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
+ {"version":3,"file":"_server.ts-LofwHGyu.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,5 +1,5 @@
1
- import { G as spread_props } from './root-C9Hma45-.js';
2
- import { I as Icon } from './Layout-CCaz3zTu.js';
1
+ import { G as spread_props } from './root-CupBMgyF.js';
2
+ import { I as Icon } from './Icon-D6YekQ8Q.js';
3
3
 
4
4
  function Circle_x($$renderer, $$props) {
5
5
  $$renderer.component(($$renderer2) => {
@@ -36,4 +36,4 @@ function Circle_x($$renderer, $$props) {
36
36
  }
37
37
 
38
38
  export { Circle_x as C };
39
- //# sourceMappingURL=circle-x-pI9e3-ZY.js.map
39
+ //# sourceMappingURL=circle-x-BfwNryZh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circle-x-BfwNryZh.js","sources":["../../../.svelte-kit/adapter-node/chunks/circle-x.js"],"sourcesContent":["import { j as spread_props } from \"./root.js\";\nimport { I as Icon } from \"./Icon.js\";\nfunction Circle_x($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { $$slots, $$events, ...props } = $$props;\n const iconNode = [\n [\"circle\", { \"cx\": \"12\", \"cy\": \"12\", \"r\": \"10\" }],\n [\"path\", { \"d\": \"m15 9-6 6\" }],\n [\"path\", { \"d\": \"m9 9 6 6\" }]\n ];\n Icon($$renderer2, spread_props([\n { name: \"circle-x\" },\n /**\n * @component @name CircleX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide-svelte - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {FunctionalComponent} Svelte component\n *\n */\n props,\n {\n iconNode,\n children: ($$renderer3) => {\n props.children?.($$renderer3);\n $$renderer3.push(`<!---->`);\n },\n $$slots: { default: true }\n }\n ]));\n });\n}\nexport {\n Circle_x as C\n};\n"],"names":[],"mappings":";;;AAEA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO;AACjD,IAAI,MAAM,QAAQ,GAAG;AACrB,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE;AAClC,KAAK;AACL,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC;AACnC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK;AACX,MAAM;AACN,QAAQ,QAAQ;AAChB,QAAQ,QAAQ,EAAE,CAAC,WAAW,KAAK;AACnC,UAAU,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC;AACvC,UAAU,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AACrC,QAAQ,CAAC;AACT,QAAQ,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI;AAChC;AACA,KAAK,CAAC,CAAC;AACP,EAAE,CAAC,CAAC;AACJ;;;;"}
@@ -1,6 +1,6 @@
1
- import { t as escape_html } from './root-C9Hma45-.js';
2
- import { p as page } from './index-ChycExq-.js';
3
- import './exports-C9KHKwPe.js';
1
+ import { t as escape_html } from './root-CupBMgyF.js';
2
+ import { p as page } from './index-6GdTEbjU.js';
3
+ import './exports-BJD76umC.js';
4
4
 
5
5
  function Error($$renderer, $$props) {
6
6
  $$renderer.component(($$renderer2) => {
@@ -9,4 +9,4 @@ function Error($$renderer, $$props) {
9
9
  }
10
10
 
11
11
  export { Error as default };
12
- //# sourceMappingURL=error.svelte-DR0HSUIK.js.map
12
+ //# sourceMappingURL=error.svelte-C6YxQrsH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.svelte-DR0HSUIK.js","sources":["../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { g as escape_html } from \"../../chunks/root.js\";\nimport { p as page } from \"../../chunks/index.js\";\nfunction Error($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n $$renderer2.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);\n });\n}\nexport {\n Error as default\n};\n"],"names":[],"mappings":";;;;AAEA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,EAAE,CAAC,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"error.svelte-C6YxQrsH.js","sources":["../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { g as escape_html } from \"../../chunks/root.js\";\nimport { p as page } from \"../../chunks/index.js\";\nfunction Error($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n $$renderer2.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);\n });\n}\nexport {\n Error as default\n};\n"],"names":[],"mappings":";;;;AAEA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,EAAE,CAAC,CAAC;AACJ;;;;"}
@@ -1,4 +1,4 @@
1
- import { J as noop, K as safe_not_equal } from './root-C9Hma45-.js';
1
+ import { J as noop, K as safe_not_equal } from './root-CupBMgyF.js';
2
2
 
3
3
  const text_encoder = new TextEncoder();
4
4
  function get_relative_path(from, to) {
@@ -153,4 +153,4 @@ const validate_layout_server_exports = validator(valid_layout_server_exports);
153
153
  const validate_page_server_exports = validator(valid_page_server_exports);
154
154
 
155
155
  export { validate_layout_exports as a, base64_decode as b, validate_page_server_exports as c, validate_page_exports as d, base64_encode as e, get_relative_path as g, readable as r, text_encoder as t, validate_layout_server_exports as v, writable as w };
156
- //# sourceMappingURL=exports-C9KHKwPe.js.map
156
+ //# sourceMappingURL=exports-BJD76umC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exports-C9KHKwPe.js","sources":["../../../.svelte-kit/adapter-node/chunks/utils.js","../../../.svelte-kit/adapter-node/chunks/exports.js"],"sourcesContent":["const text_encoder = new TextEncoder();\nfunction get_relative_path(from, to) {\n const from_parts = from.split(/[/\\\\]/);\n const to_parts = to.split(/[/\\\\]/);\n from_parts.pop();\n while (from_parts[0] === to_parts[0]) {\n from_parts.shift();\n to_parts.shift();\n }\n let i = from_parts.length;\n while (i--) from_parts[i] = \"..\";\n return from_parts.concat(to_parts).join(\"/\");\n}\nfunction base64_encode(bytes) {\n if (globalThis.Buffer) {\n return globalThis.Buffer.from(bytes).toString(\"base64\");\n }\n let binary = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\nfunction base64_decode(encoded) {\n if (globalThis.Buffer) {\n const buffer = globalThis.Buffer.from(encoded, \"base64\");\n return new Uint8Array(buffer);\n }\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\nexport {\n base64_decode as a,\n base64_encode as b,\n get_relative_path as g,\n text_encoder as t\n};\n","import { n as noop, v as safe_not_equal } from \"./root.js\";\nconst subscriber_queue = [];\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\nfunction writable(value, start = noop) {\n let stop = null;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(\n /** @type {T} */\n value\n ));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set, update) || noop;\n }\n run(\n /** @type {T} */\n value\n );\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0 && stop) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction validator(expected) {\n function validate(module, file) {\n if (!module) return;\n for (const key in module) {\n if (key[0] === \"_\" || expected.has(key)) continue;\n const values = [...expected.values()];\n const hint = hint_for_supported_files(key, file?.slice(file.lastIndexOf(\".\"))) ?? `valid exports are ${values.join(\", \")}, or anything with a '_' prefix`;\n throw new Error(`Invalid export '${key}'${file ? ` in ${file}` : \"\"} (${hint})`);\n }\n }\n return validate;\n}\nfunction hint_for_supported_files(key, ext = \".js\") {\n const supported_files = [];\n if (valid_layout_exports.has(key)) {\n supported_files.push(`+layout${ext}`);\n }\n if (valid_page_exports.has(key)) {\n supported_files.push(`+page${ext}`);\n }\n if (valid_layout_server_exports.has(key)) {\n supported_files.push(`+layout.server${ext}`);\n }\n if (valid_page_server_exports.has(key)) {\n supported_files.push(`+page.server${ext}`);\n }\n if (valid_server_exports.has(key)) {\n supported_files.push(`+server${ext}`);\n }\n if (supported_files.length > 0) {\n return `'${key}' is a valid export in ${supported_files.slice(0, -1).join(\", \")}${supported_files.length > 1 ? \" or \" : \"\"}${supported_files.at(-1)}`;\n }\n}\nconst valid_layout_exports = /* @__PURE__ */ new Set([\n \"load\",\n \"prerender\",\n \"csr\",\n \"ssr\",\n \"trailingSlash\",\n \"config\"\n]);\nconst valid_page_exports = /* @__PURE__ */ new Set([...valid_layout_exports, \"entries\"]);\nconst valid_layout_server_exports = /* @__PURE__ */ new Set([...valid_layout_exports]);\nconst valid_page_server_exports = /* @__PURE__ */ new Set([...valid_layout_server_exports, \"actions\", \"entries\"]);\nconst valid_server_exports = /* @__PURE__ */ new Set([\n \"GET\",\n \"POST\",\n \"PATCH\",\n \"PUT\",\n \"DELETE\",\n \"OPTIONS\",\n \"HEAD\",\n \"fallback\",\n \"prerender\",\n \"trailingSlash\",\n \"config\",\n \"entries\"\n]);\nconst validate_layout_exports = validator(valid_layout_exports);\nconst validate_page_exports = validator(valid_page_exports);\nconst validate_layout_server_exports = validator(valid_layout_server_exports);\nconst validate_page_server_exports = validator(valid_page_server_exports);\nconst validate_server_exports = validator(valid_server_exports);\nexport {\n validate_layout_exports as a,\n validate_page_server_exports as b,\n validate_page_exports as c,\n validate_server_exports as d,\n readable as r,\n validate_layout_server_exports as v,\n writable as w\n};\n"],"names":[],"mappings":";;AAAK,MAAC,YAAY,GAAG,IAAI,WAAW;AACpC,SAAS,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE;AACrC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxC,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;AACpC,EAAE,UAAU,CAAC,GAAG,EAAE;AAClB,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,EAAE;AACF,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM;AAC3B,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;AAClC,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9C;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE;AACzB,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC3D,EAAE;AACF,EAAE,IAAI,MAAM,GAAG,EAAE;AACjB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;AACA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE;AACzB,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC5D,IAAI,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;AACjC,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9B,EAAE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACnC,EAAE;AACF,EAAE,OAAO,KAAK;AACd;;ACjCA,MAAM,gBAAgB,GAAG,EAAE;AAC3B,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AAChC,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,GAAG;AACH;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI;AACjB,EAAE,MAAM,WAAW,mBAAmB,IAAI,GAAG,EAAE;AAC/C,EAAE,SAAS,GAAG,CAAC,SAAS,EAAE;AAC1B,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC1C,MAAM,KAAK,GAAG,SAAS;AACvB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM;AAClD,QAAQ,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC9C,UAAU,UAAU,CAAC,CAAC,CAAC,EAAE;AACzB,UAAU,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;AAClD,QAAQ;AACR,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/D,YAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,UAAU;AACV,UAAU,gBAAgB,CAAC,MAAM,GAAG,CAAC;AACrC,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,SAAS,MAAM,CAAC,EAAE,EAAE;AACtB,IAAI,GAAG,CAAC,EAAE;AACV;AACA,MAAM;AACN,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;AAC7C,IAAI,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC;AACxC,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/B,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI;AACvC,IAAI;AACJ,IAAI,GAAG;AACP;AACA,MAAM;AACN,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;AACpC,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;AAC1C,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,GAAG,IAAI;AACnB,MAAM;AACN,IAAI,CAAC;AACL,EAAE;AACF,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE;AACnC;AACA,SAAS,SAAS,CAAC,QAAQ,EAAE;AAC7B,EAAE,SAAS,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE;AAClC,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC/C,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC3C,MAAM,MAAM,IAAI,GAAG,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,+BAA+B,CAAC;AAC/J,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACtF,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,QAAQ;AACjB;AACA,SAAS,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,EAAE;AACpD,EAAE,MAAM,eAAe,GAAG,EAAE;AAC5B,EAAE,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACrC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,EAAE;AACF,EAAE,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACnC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACvC,EAAE;AACF,EAAE,IAAI,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC5C,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;AAChD,EAAE;AACF,EAAE,IAAI,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC1C,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9C,EAAE;AACF,EAAE,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACrC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;AACzC,EAAE;AACF,EAAE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,uBAAuB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzJ,EAAE;AACF;AACA,MAAM,oBAAoB,mBAAmB,IAAI,GAAG,CAAC;AACrD,EAAE,MAAM;AACR,EAAE,WAAW;AACb,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,eAAe;AACjB,EAAE;AACF,CAAC,CAAC;AACF,MAAM,kBAAkB,mBAAmB,IAAI,GAAG,CAAC,CAAC,GAAG,oBAAoB,EAAE,SAAS,CAAC,CAAC;AACxF,MAAM,2BAA2B,mBAAmB,IAAI,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACtF,MAAM,yBAAyB,mBAAmB,IAAI,GAAG,CAAC,CAAC,GAAG,2BAA2B,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACjH,MAAM,oBAAoB,mBAAmB,IAAI,GAAG,CAAC;AACrD,EAAE,KAAK;AACP,EAAE,MAAM;AACR,EAAE,OAAO;AACT,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,eAAe;AACjB,EAAE,QAAQ;AACV,EAAE;AACF,CAAC,CAAC;AACG,MAAC,uBAAuB,GAAG,SAAS,CAAC,oBAAoB;AACzD,MAAC,qBAAqB,GAAG,SAAS,CAAC,kBAAkB;AACrD,MAAC,8BAA8B,GAAG,SAAS,CAAC,2BAA2B;AACvE,MAAC,4BAA4B,GAAG,SAAS,CAAC,yBAAyB;;;;"}
1
+ {"version":3,"file":"exports-BJD76umC.js","sources":["../../../.svelte-kit/adapter-node/chunks/utils.js","../../../.svelte-kit/adapter-node/chunks/exports.js"],"sourcesContent":["const text_encoder = new TextEncoder();\nfunction get_relative_path(from, to) {\n const from_parts = from.split(/[/\\\\]/);\n const to_parts = to.split(/[/\\\\]/);\n from_parts.pop();\n while (from_parts[0] === to_parts[0]) {\n from_parts.shift();\n to_parts.shift();\n }\n let i = from_parts.length;\n while (i--) from_parts[i] = \"..\";\n return from_parts.concat(to_parts).join(\"/\");\n}\nfunction base64_encode(bytes) {\n if (globalThis.Buffer) {\n return globalThis.Buffer.from(bytes).toString(\"base64\");\n }\n let binary = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\nfunction base64_decode(encoded) {\n if (globalThis.Buffer) {\n const buffer = globalThis.Buffer.from(encoded, \"base64\");\n return new Uint8Array(buffer);\n }\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\nexport {\n base64_decode as a,\n base64_encode as b,\n get_relative_path as g,\n text_encoder as t\n};\n","import { n as noop, v as safe_not_equal } from \"./root.js\";\nconst subscriber_queue = [];\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\nfunction writable(value, start = noop) {\n let stop = null;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(\n /** @type {T} */\n value\n ));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set, update) || noop;\n }\n run(\n /** @type {T} */\n value\n );\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0 && stop) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction validator(expected) {\n function validate(module, file) {\n if (!module) return;\n for (const key in module) {\n if (key[0] === \"_\" || expected.has(key)) continue;\n const values = [...expected.values()];\n const hint = hint_for_supported_files(key, file?.slice(file.lastIndexOf(\".\"))) ?? `valid exports are ${values.join(\", \")}, or anything with a '_' prefix`;\n throw new Error(`Invalid export '${key}'${file ? ` in ${file}` : \"\"} (${hint})`);\n }\n }\n return validate;\n}\nfunction hint_for_supported_files(key, ext = \".js\") {\n const supported_files = [];\n if (valid_layout_exports.has(key)) {\n supported_files.push(`+layout${ext}`);\n }\n if (valid_page_exports.has(key)) {\n supported_files.push(`+page${ext}`);\n }\n if (valid_layout_server_exports.has(key)) {\n supported_files.push(`+layout.server${ext}`);\n }\n if (valid_page_server_exports.has(key)) {\n supported_files.push(`+page.server${ext}`);\n }\n if (valid_server_exports.has(key)) {\n supported_files.push(`+server${ext}`);\n }\n if (supported_files.length > 0) {\n return `'${key}' is a valid export in ${supported_files.slice(0, -1).join(\", \")}${supported_files.length > 1 ? \" or \" : \"\"}${supported_files.at(-1)}`;\n }\n}\nconst valid_layout_exports = /* @__PURE__ */ new Set([\n \"load\",\n \"prerender\",\n \"csr\",\n \"ssr\",\n \"trailingSlash\",\n \"config\"\n]);\nconst valid_page_exports = /* @__PURE__ */ new Set([...valid_layout_exports, \"entries\"]);\nconst valid_layout_server_exports = /* @__PURE__ */ new Set([...valid_layout_exports]);\nconst valid_page_server_exports = /* @__PURE__ */ new Set([...valid_layout_server_exports, \"actions\", \"entries\"]);\nconst valid_server_exports = /* @__PURE__ */ new Set([\n \"GET\",\n \"POST\",\n \"PATCH\",\n \"PUT\",\n \"DELETE\",\n \"OPTIONS\",\n \"HEAD\",\n \"fallback\",\n \"prerender\",\n \"trailingSlash\",\n \"config\",\n \"entries\"\n]);\nconst validate_layout_exports = validator(valid_layout_exports);\nconst validate_page_exports = validator(valid_page_exports);\nconst validate_layout_server_exports = validator(valid_layout_server_exports);\nconst validate_page_server_exports = validator(valid_page_server_exports);\nconst validate_server_exports = validator(valid_server_exports);\nexport {\n validate_layout_exports as a,\n validate_page_server_exports as b,\n validate_page_exports as c,\n validate_server_exports as d,\n readable as r,\n validate_layout_server_exports as v,\n writable as w\n};\n"],"names":[],"mappings":"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"}