@phosart/devtool 0.2.34 → 0.2.35

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 (193) hide show
  1. package/build/client/_app/immutable/chunks/{CCpTyc2V.js → 6A-1YxbO.js} +2 -2
  2. package/build/client/_app/immutable/chunks/6A-1YxbO.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/6A-1YxbO.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{B0wafx7r.js → DIN7OHhp.js} +1 -1
  5. package/build/client/_app/immutable/chunks/DIN7OHhp.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/DIN7OHhp.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{IqRq0SNw.js → DNNtt9F0.js} +1 -1
  8. package/build/client/_app/immutable/chunks/DNNtt9F0.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/DNNtt9F0.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{BEZ4BwEV.js → UNrzuVQp.js} +1 -1
  11. package/build/client/_app/immutable/chunks/UNrzuVQp.js.br +1 -0
  12. package/build/client/_app/immutable/chunks/UNrzuVQp.js.gz +0 -0
  13. package/build/client/_app/immutable/entry/{app.PoJNINhw.js → app.CYlT5fhH.js} +2 -2
  14. package/build/client/_app/immutable/entry/app.CYlT5fhH.js.br +0 -0
  15. package/build/client/_app/immutable/entry/app.CYlT5fhH.js.gz +0 -0
  16. package/build/client/_app/immutable/entry/start.Dg4PVBdr.js +1 -0
  17. package/build/client/_app/immutable/entry/start.Dg4PVBdr.js.br +2 -0
  18. package/build/client/_app/immutable/entry/start.Dg4PVBdr.js.gz +0 -0
  19. package/build/client/_app/immutable/nodes/{0.DCzg76Qe.js → 0.CJnYDRau.js} +1 -1
  20. package/build/client/_app/immutable/nodes/0.CJnYDRau.js.br +0 -0
  21. package/build/client/_app/immutable/nodes/0.CJnYDRau.js.gz +0 -0
  22. package/build/client/_app/immutable/nodes/{1.ClgiyYll.js → 1.CN2FJ_rB.js} +1 -1
  23. package/build/client/_app/immutable/nodes/1.CN2FJ_rB.js.br +0 -0
  24. package/build/client/_app/immutable/nodes/1.CN2FJ_rB.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{2.C7teRzrj.js → 2.CatNs93x.js} +1 -1
  26. package/build/client/_app/immutable/nodes/2.CatNs93x.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/2.CatNs93x.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{3.sKteAMND.js → 3.ACYrA_cl.js} +1 -1
  29. package/build/client/_app/immutable/nodes/3.ACYrA_cl.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/3.ACYrA_cl.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{4.CPQMLUHZ.js → 4.Lj5NPz8d.js} +1 -1
  32. package/build/client/_app/immutable/nodes/4.Lj5NPz8d.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/4.Lj5NPz8d.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{5.N_zF592T.js → 5.Cnbwt0Yf.js} +1 -1
  35. package/build/client/_app/immutable/nodes/5.Cnbwt0Yf.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/5.Cnbwt0Yf.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/6.DenFMpHj.js +1 -0
  38. package/build/client/_app/immutable/nodes/6.DenFMpHj.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/6.DenFMpHj.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{7.BJFxlTn2.js → 7.Cju636h3.js} +1 -1
  41. package/build/client/_app/immutable/nodes/7.Cju636h3.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/7.Cju636h3.js.gz +0 -0
  43. package/build/client/_app/version.json +1 -1
  44. package/build/client/_app/version.json.br +0 -0
  45. package/build/client/_app/version.json.gz +0 -0
  46. package/build/server/chunks/{0-DhRNco_L.js → 0-Db-3CVz6.js} +25 -4
  47. package/build/server/chunks/0-Db-3CVz6.js.map +1 -0
  48. package/build/server/chunks/{1-BKryxqI3.js → 1-DuB9Tb7M.js} +2 -2
  49. package/build/server/chunks/{1-BKryxqI3.js.map → 1-DuB9Tb7M.js.map} +1 -1
  50. package/build/server/chunks/{2-DhpJoOvO.js → 2-DWuX-HYe.js} +32 -10
  51. package/build/server/chunks/2-DWuX-HYe.js.map +1 -0
  52. package/build/server/chunks/{3-CJrNENYa.js → 3-Dk00WOvb.js} +12 -3
  53. package/build/server/chunks/3-Dk00WOvb.js.map +1 -0
  54. package/build/server/chunks/{4-C67qM_o9.js → 4-Diy7Za7p.js} +21 -4
  55. package/build/server/chunks/4-Diy7Za7p.js.map +1 -0
  56. package/build/server/chunks/{5-Pn0OLSS6.js → 5-ALUQvS-h.js} +28 -3
  57. package/build/server/chunks/5-ALUQvS-h.js.map +1 -0
  58. package/build/server/chunks/{6-CV402NdJ.js → 6-WSd-31h6.js} +9 -6
  59. package/build/server/chunks/6-WSd-31h6.js.map +1 -0
  60. package/build/server/chunks/{7-CoIOnWs-.js → 7-BIDGS9J9.js} +28 -6
  61. package/build/server/chunks/7-BIDGS9J9.js.map +1 -0
  62. package/build/server/chunks/Artist-DO_o4cdV.js +19 -0
  63. package/build/server/chunks/Artist-DO_o4cdV.js.map +1 -0
  64. package/build/server/chunks/{TextBox-C3S0hJ__.js → TextBox-D09ycG7i.js} +3 -3
  65. package/build/server/chunks/TextBox-D09ycG7i.js.map +1 -0
  66. package/build/server/chunks/{_page.svelte-BohS7rrY.js → _page.svelte-CX3ypdy4.js} +25 -16
  67. package/build/server/chunks/_page.svelte-CX3ypdy4.js.map +1 -0
  68. package/build/server/chunks/{_page.svelte-CSUOqbhb.js → _page.svelte-Cx14LXUf.js} +31 -6
  69. package/build/server/chunks/_page.svelte-Cx14LXUf.js.map +1 -0
  70. package/build/server/chunks/{_page.svelte-BmTpqcII.js → _page.svelte-DEoZetlD.js} +4 -4
  71. package/build/server/chunks/{_page.svelte-BmTpqcII.js.map → _page.svelte-DEoZetlD.js.map} +1 -1
  72. package/build/server/chunks/{_page.svelte-DU5g6zzB.js → _page.svelte-DqMBIEYR.js} +2 -2
  73. package/build/server/chunks/_page.svelte-DqMBIEYR.js.map +1 -0
  74. package/build/server/chunks/{_server.ts-HN2ayIwi.js → _server.ts-2Ft5JVtj.js} +8 -4
  75. package/build/server/chunks/_server.ts-2Ft5JVtj.js.map +1 -0
  76. package/build/server/chunks/{_server.ts-oLkwtpyY.js → _server.ts-B_dOpyal.js} +24 -5
  77. package/build/server/chunks/_server.ts-B_dOpyal.js.map +1 -0
  78. package/build/server/chunks/{_server.ts-DbamEmru.js → _server.ts-Bh3p907P.js} +7 -6
  79. package/build/server/chunks/_server.ts-Bh3p907P.js.map +1 -0
  80. package/build/server/chunks/{_server.ts-CwlbssxP.js → _server.ts-C5MDZCgG.js} +33 -15
  81. package/build/server/chunks/_server.ts-C5MDZCgG.js.map +1 -0
  82. package/build/server/chunks/{_server.ts-DMGTsh97.js → _server.ts-COposMXg.js} +21 -8
  83. package/build/server/chunks/_server.ts-COposMXg.js.map +1 -0
  84. package/build/server/chunks/{_server.ts-BrqT_2HC.js → _server.ts-CS23SeUt.js} +11 -4
  85. package/build/server/chunks/_server.ts-CS23SeUt.js.map +1 -0
  86. package/build/server/chunks/{_server.ts-C2U0cCog.js → _server.ts-CrtaC0hY.js} +27 -12
  87. package/build/server/chunks/_server.ts-CrtaC0hY.js.map +1 -0
  88. package/build/server/chunks/_server.ts-D_j0gH9R.js +41 -0
  89. package/build/server/chunks/_server.ts-D_j0gH9R.js.map +1 -0
  90. package/build/server/chunks/{_server.ts-Dql5jGEn.js → _server.ts-DfjuHXS5.js} +10 -2
  91. package/build/server/chunks/_server.ts-DfjuHXS5.js.map +1 -0
  92. package/build/server/chunks/{_server.ts-D8TszUMI.js → _server.ts-Dqv7yDcz.js} +11 -4
  93. package/build/server/chunks/{_server.ts-D8TszUMI.js.map → _server.ts-Dqv7yDcz.js.map} +1 -1
  94. package/build/server/chunks/{_server.ts-Co_H4e3-.js → _server.ts-DxeSnWDg.js} +6 -5
  95. package/build/server/chunks/_server.ts-DxeSnWDg.js.map +1 -0
  96. package/build/server/chunks/{_server.ts-DY6A2fS3.js → _server.ts-EAlB0_5W.js} +19 -4
  97. package/build/server/chunks/_server.ts-EAlB0_5W.js.map +1 -0
  98. package/build/server/chunks/{_server.ts-DCWa9uDh.js → _server.ts-PEmL6kUs.js} +12 -11
  99. package/build/server/chunks/_server.ts-PEmL6kUs.js.map +1 -0
  100. package/build/server/chunks/{_server.ts-oUZBPZtX.js → _server.ts-xRxSzZ-g.js} +7 -6
  101. package/build/server/chunks/_server.ts-xRxSzZ-g.js.map +1 -0
  102. package/build/server/chunks/artist2-CxkL2s89.js +27 -0
  103. package/build/server/chunks/artist2-CxkL2s89.js.map +1 -0
  104. package/build/server/chunks/{cache-DMIdk3dZ.js → cache-BNAVbmcu.js} +3 -3
  105. package/build/server/chunks/cache-BNAVbmcu.js.map +1 -0
  106. package/build/server/chunks/character-BiUPL14p.js +75 -0
  107. package/build/server/chunks/character-BiUPL14p.js.map +1 -0
  108. package/build/server/chunks/directories-MyCzDoxa.js +41 -0
  109. package/build/server/chunks/directories-MyCzDoxa.js.map +1 -0
  110. package/build/server/chunks/{fileutil-DypIDpac.js → fileutil-CQgueTPh.js} +7 -7
  111. package/build/server/chunks/fileutil-CQgueTPh.js.map +1 -0
  112. package/build/server/chunks/gallery-DaCm2MYV.js +6817 -0
  113. package/build/server/chunks/gallery-DaCm2MYV.js.map +1 -0
  114. package/build/server/chunks/{galleryutil-BkuoU13t.js → galleryutil-BJIRuqer.js} +4 -4
  115. package/build/server/chunks/galleryutil-BJIRuqer.js.map +1 -0
  116. package/build/server/chunks/imageprocess-CXFT4aVl.js +278 -0
  117. package/build/server/chunks/imageprocess-CXFT4aVl.js.map +1 -0
  118. package/build/server/chunks/pack-Bk3t1T7h.js +30 -0
  119. package/build/server/chunks/pack-Bk3t1T7h.js.map +1 -0
  120. package/build/server/chunks/paths-Bv7gDCfT.js +11 -0
  121. package/build/server/chunks/paths-Bv7gDCfT.js.map +1 -0
  122. package/build/server/chunks/schema-Xy3yc0Rx.js +178 -0
  123. package/build/server/chunks/schema-Xy3yc0Rx.js.map +1 -0
  124. package/build/server/chunks/util-FQbl4xCz.js +69 -0
  125. package/build/server/chunks/util-FQbl4xCz.js.map +1 -0
  126. package/build/server/chunks/{util-tN3TRq5K.js → util3-tN3TRq5K.js} +1 -1
  127. package/build/server/chunks/util3-tN3TRq5K.js.map +1 -0
  128. package/build/server/index.js +1 -1
  129. package/build/server/index.js.map +1 -1
  130. package/build/server/manifest.js +23 -23
  131. package/build/server/manifest.js.map +1 -1
  132. package/package.json +3 -3
  133. package/build/client/_app/immutable/chunks/B0wafx7r.js.br +0 -0
  134. package/build/client/_app/immutable/chunks/B0wafx7r.js.gz +0 -0
  135. package/build/client/_app/immutable/chunks/BEZ4BwEV.js.br +0 -0
  136. package/build/client/_app/immutable/chunks/BEZ4BwEV.js.gz +0 -0
  137. package/build/client/_app/immutable/chunks/CCpTyc2V.js.br +0 -0
  138. package/build/client/_app/immutable/chunks/CCpTyc2V.js.gz +0 -0
  139. package/build/client/_app/immutable/chunks/IqRq0SNw.js.br +0 -0
  140. package/build/client/_app/immutable/chunks/IqRq0SNw.js.gz +0 -0
  141. package/build/client/_app/immutable/entry/app.PoJNINhw.js.br +0 -0
  142. package/build/client/_app/immutable/entry/app.PoJNINhw.js.gz +0 -0
  143. package/build/client/_app/immutable/entry/start.B4uoplFo.js +0 -1
  144. package/build/client/_app/immutable/entry/start.B4uoplFo.js.br +0 -2
  145. package/build/client/_app/immutable/entry/start.B4uoplFo.js.gz +0 -0
  146. package/build/client/_app/immutable/nodes/0.DCzg76Qe.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/0.DCzg76Qe.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/1.ClgiyYll.js.br +0 -0
  149. package/build/client/_app/immutable/nodes/1.ClgiyYll.js.gz +0 -0
  150. package/build/client/_app/immutable/nodes/2.C7teRzrj.js.br +0 -0
  151. package/build/client/_app/immutable/nodes/2.C7teRzrj.js.gz +0 -0
  152. package/build/client/_app/immutable/nodes/3.sKteAMND.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/3.sKteAMND.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/4.CPQMLUHZ.js.br +0 -0
  155. package/build/client/_app/immutable/nodes/4.CPQMLUHZ.js.gz +0 -0
  156. package/build/client/_app/immutable/nodes/5.N_zF592T.js.br +0 -0
  157. package/build/client/_app/immutable/nodes/5.N_zF592T.js.gz +0 -0
  158. package/build/client/_app/immutable/nodes/6.BUSb4Ab1.js +0 -1
  159. package/build/client/_app/immutable/nodes/6.BUSb4Ab1.js.br +0 -0
  160. package/build/client/_app/immutable/nodes/6.BUSb4Ab1.js.gz +0 -0
  161. package/build/client/_app/immutable/nodes/7.BJFxlTn2.js.br +0 -0
  162. package/build/client/_app/immutable/nodes/7.BJFxlTn2.js.gz +0 -0
  163. package/build/server/chunks/0-DhRNco_L.js.map +0 -1
  164. package/build/server/chunks/2-DhpJoOvO.js.map +0 -1
  165. package/build/server/chunks/3-CJrNENYa.js.map +0 -1
  166. package/build/server/chunks/4-C67qM_o9.js.map +0 -1
  167. package/build/server/chunks/5-Pn0OLSS6.js.map +0 -1
  168. package/build/server/chunks/6-CV402NdJ.js.map +0 -1
  169. package/build/server/chunks/7-CoIOnWs-.js.map +0 -1
  170. package/build/server/chunks/TextBox-C3S0hJ__.js.map +0 -1
  171. package/build/server/chunks/_page.svelte-BohS7rrY.js.map +0 -1
  172. package/build/server/chunks/_page.svelte-CSUOqbhb.js.map +0 -1
  173. package/build/server/chunks/_page.svelte-DU5g6zzB.js.map +0 -1
  174. package/build/server/chunks/_server.ts-BKog1rxr.js +0 -15
  175. package/build/server/chunks/_server.ts-BKog1rxr.js.map +0 -1
  176. package/build/server/chunks/_server.ts-BrqT_2HC.js.map +0 -1
  177. package/build/server/chunks/_server.ts-C2U0cCog.js.map +0 -1
  178. package/build/server/chunks/_server.ts-Co_H4e3-.js.map +0 -1
  179. package/build/server/chunks/_server.ts-CwlbssxP.js.map +0 -1
  180. package/build/server/chunks/_server.ts-DCWa9uDh.js.map +0 -1
  181. package/build/server/chunks/_server.ts-DMGTsh97.js.map +0 -1
  182. package/build/server/chunks/_server.ts-DY6A2fS3.js.map +0 -1
  183. package/build/server/chunks/_server.ts-DbamEmru.js.map +0 -1
  184. package/build/server/chunks/_server.ts-Dql5jGEn.js.map +0 -1
  185. package/build/server/chunks/_server.ts-HN2ayIwi.js.map +0 -1
  186. package/build/server/chunks/_server.ts-oLkwtpyY.js.map +0 -1
  187. package/build/server/chunks/_server.ts-oUZBPZtX.js.map +0 -1
  188. package/build/server/chunks/cache-DMIdk3dZ.js.map +0 -1
  189. package/build/server/chunks/fileutil-DypIDpac.js.map +0 -1
  190. package/build/server/chunks/galleryutil-BkuoU13t.js.map +0 -1
  191. package/build/server/chunks/paths-COyPzvhX.js +0 -11
  192. package/build/server/chunks/paths-COyPzvhX.js.map +0 -1
  193. package/build/server/chunks/util-tN3TRq5K.js.map +0 -1
@@ -1,13 +1,14 @@
1
1
  import { j as json, e as error } from './index-CoD1IJuy.js';
2
- import path from 'node:path';
3
- import { $ART } from 'phosart-common/server';
2
+ import path__default__default from 'node:path';
4
3
  import { writeFile } from 'node:fs/promises';
5
4
  import { g as getImageExtension } from './fileutil2-CRs5tSRN.js';
6
- import { r as resolveWithinArt, b as asNodeStream } from './fileutil-DypIDpac.js';
5
+ import { r as resolveWithinArt, b as asNodeStream } from './fileutil-CQgueTPh.js';
7
6
  import { c as createLogger } from './log-Dgdg632G.js';
8
7
  import { randomInt } from 'node:crypto';
8
+ import { $ as $DATA } from './directories-MyCzDoxa.js';
9
9
  import 'node:stream';
10
10
  import 'tslog';
11
+ import 'node:fs';
11
12
 
12
13
  const logger = createLogger();
13
14
  const POST = async ({ request, url }) => {
@@ -25,7 +26,7 @@ const POST = async ({ request, url }) => {
25
26
  });
26
27
  };
27
28
  async function uploadImage(type, image, fname, ftype, rand) {
28
- const fp = resolveWithinArt(path.join($ART(), "characters", relpath(type, fname, ftype, rand)));
29
+ const fp = resolveWithinArt(path__default__default.join($DATA(), "characters", relpath(type, fname, ftype, rand)));
29
30
  if (!fp) {
30
31
  logger.warn("Refusing to write character image outside art root @", fname);
31
32
  throw error(400, "invalid character image path");
@@ -41,4 +42,4 @@ function relpath(type, fname, ftype, rand) {
41
42
  }
42
43
 
43
44
  export { POST };
44
- //# sourceMappingURL=_server.ts-Co_H4e3-.js.map
45
+ //# sourceMappingURL=_server.ts-DxeSnWDg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DxeSnWDg.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/characters/upload-image/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport path__default from \"node:path\";\nimport { writeFile } from \"node:fs/promises\";\nimport { g as getImageExtension } from \"../../../../../chunks/fileutil2.js\";\nimport { r as resolveWithinArt, b as asNodeStream } from \"../../../../../chunks/fileutil.js\";\nimport { c as createLogger } from \"../../../../../chunks/log.js\";\nimport { randomInt } from \"node:crypto\";\nimport { $ as $DATA } from \"../../../../../chunks/directories.js\";\nconst logger = createLogger();\nconst POST = async ({ request, url }) => {\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 const type = url.searchParams.get(\"for\") === \"thumb\" ? \"thumb\" : \"full\";\n const rand = String(Date.now()).slice(-5) + String(randomInt(4096));\n logger.info(\"Uploading character image\", fname, \"as\", type, \"with type\", ftype, \"...\");\n await uploadImage(type, f, fname, ftype, rand);\n logger.info(\"Uploaded character image\", fname, \"as\", type);\n return json({\n fname: \"./\" + relpath(type, fname, ftype, rand)\n });\n};\nasync function uploadImage(type, image, fname, ftype, rand) {\n const fp = resolveWithinArt(path__default.join($DATA(), \"characters\", relpath(type, fname, ftype, rand)));\n if (!fp) {\n logger.warn(\"Refusing to write character image outside art root @\", fname);\n throw error(400, \"invalid character image path\");\n }\n logger.debug(\"Writing character image @\", fp, \"for\", fname, \"...\");\n await writeFile(fp, asNodeStream(image.stream()), { encoding: \"utf-8\" });\n logger.debug(\"Wrote character image @\", fp);\n}\nfunction relpath(type, fname, ftype, rand) {\n const safeName = fname.replaceAll(/[^A-Za-z0-9-_]|\\.\\./g, \"\");\n const ext = getImageExtension(ftype);\n return `ch_${type}_${safeName}_${rand}.${ext}`;\n}\nexport {\n POST\n};\n"],"names":["path__default"],"mappings":";;;;;;;;;;;;AAQA,MAAM,MAAM,GAAG,YAAY,EAAE;AACxB,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;AACzC,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE;AACvC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAC5B,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,EAAE,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,OAAO,GAAG,OAAO,GAAG,MAAM;AACzE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACrE,EAAE,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC;AACxF,EAAE,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;AAChD,EAAE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5D,EAAE,OAAO,IAAI,CAAC;AACd,IAAI,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI;AAClD,GAAG,CAAC;AACJ;AACA,eAAe,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5D,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAACA,sBAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3G,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE,KAAK,CAAC;AAC9E,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,8BAA8B,CAAC;AACpD,EAAE;AACF,EAAE,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACpE,EAAE,MAAM,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC1E,EAAE,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC;AAC7C;AACA,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3C,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,EAAE,CAAC;AAC/D,EAAE,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC;AACtC,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAChD;;;;"}
@@ -1,11 +1,26 @@
1
1
  import { join } from 'node:path';
2
- import { rawCharacters, $ART } from 'phosart-common/server';
3
2
  import { e as error } from './index-CoD1IJuy.js';
4
3
  import { open } from 'node:fs/promises';
5
- import { a as asWebStream } from './fileutil-DypIDpac.js';
4
+ import { a as asWebStream } from './fileutil-CQgueTPh.js';
6
5
  import { c as createLogger } from './log-Dgdg632G.js';
6
+ import { r as rawCharacters } from './character-BiUPL14p.js';
7
+ import { $ as $DATA } from './directories-MyCzDoxa.js';
7
8
  import 'node:stream';
8
9
  import 'tslog';
10
+ import 'yaml';
11
+ import 'zod';
12
+ import './imageprocess-CXFT4aVl.js';
13
+ import 'sharp';
14
+ import './util-FQbl4xCz.js';
15
+ import 'node:crypto';
16
+ import './pack-Bk3t1T7h.js';
17
+ import 'msgpackr';
18
+ import 'node:fs';
19
+ import 'node:stream/promises';
20
+ import 'node:zlib';
21
+ import 'sharp-phash';
22
+ import 'async-sema';
23
+ import 'node:os';
9
24
 
10
25
  const logger = createLogger();
11
26
  const GET = async ({ params }) => {
@@ -29,7 +44,7 @@ const GET = async ({ params }) => {
29
44
  logger.warn("Character image type invalid @", params.charactername, "type", params.type);
30
45
  return error(400);
31
46
  }
32
- const path = join($ART(), "characters", piece.image);
47
+ const path = join($DATA(), "characters", piece.image);
33
48
  logger.silly("Serving character image @", path);
34
49
  const file = await open(path);
35
50
  return new Response(asWebStream(file.createReadStream({ autoClose: true })), {
@@ -39,4 +54,4 @@ const GET = async ({ params }) => {
39
54
  };
40
55
 
41
56
  export { GET };
42
- //# sourceMappingURL=_server.ts-DY6A2fS3.js.map
57
+ //# sourceMappingURL=_server.ts-EAlB0_5W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-EAlB0_5W.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/characters/_charactername_/_type_/original-image/_server.ts.js"],"sourcesContent":["import { join } from \"node:path\";\nimport { error } from \"@sveltejs/kit\";\nimport { open } from \"node:fs/promises\";\nimport { a as asWebStream } from \"../../../../../../../chunks/fileutil.js\";\nimport { c as createLogger } from \"../../../../../../../chunks/log.js\";\nimport { r as rawCharacters } from \"../../../../../../../chunks/character.js\";\nimport { $ as $DATA } from \"../../../../../../../chunks/directories.js\";\nconst logger = createLogger();\nconst GET = async ({ params }) => {\n logger.silly(\"Fetching character image\", params.charactername, \"type\", params.type, \"...\");\n const character = (await rawCharacters())[params.charactername];\n if (!character) {\n logger.warn(\"Character\", params.charactername, \"not found\");\n return error(404);\n }\n let piece;\n if (params.type === \"full\") {\n piece = character.picture;\n } else if (params.type === \"thumb\") {\n if (character.thumbnail) {\n piece = character.thumbnail;\n } else {\n logger.warn(\"Character thumbnail missing @\", params.charactername);\n return error(404);\n }\n } else {\n logger.warn(\"Character image type invalid @\", params.charactername, \"type\", params.type);\n return error(400);\n }\n const path = join($DATA(), \"characters\", piece.image);\n logger.silly(\"Serving character image @\", path);\n const file = await open(path);\n return new Response(asWebStream(file.createReadStream({ autoClose: true })), {\n status: 200,\n headers: {}\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,MAAM,GAAG,YAAY,EAAE;AACxB,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5F,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,aAAa,EAAE,EAAE,MAAM,CAAC,aAAa,CAAC;AACjE,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC;AAC/D,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC;AACrB,EAAE;AACF,EAAE,IAAI,KAAK;AACX,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;AAC9B,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO;AAC7B,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AACtC,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE;AAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS;AACjC,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,aAAa,CAAC;AACxE,MAAM,OAAO,KAAK,CAAC,GAAG,CAAC;AACvB,IAAI;AACJ,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;AAC5F,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC;AACrB,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC;AACvD,EAAE,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC;AACjD,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;AAC/B,EAAE,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AAC/E,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,OAAO,EAAE;AACb,GAAG,CAAC;AACJ;;;;"}
@@ -1,16 +1,17 @@
1
1
  import { e as error, j as json } from './index-CoD1IJuy.js';
2
- import path from 'node:path';
3
- import { $ART } from 'phosart-common/server';
2
+ import path__default__default from 'node:path';
4
3
  import { writeFile } from 'node:fs/promises';
5
- import { n as normalizeGalleryPath, g as getGalleryDir, b as getGalleryName } from './galleryutil-BkuoU13t.js';
4
+ import { n as normalizeGalleryPath, g as getGalleryDir, b as getGalleryName } from './galleryutil-BJIRuqer.js';
6
5
  import { g as getImageExtension } from './fileutil2-CRs5tSRN.js';
7
- import { r as resolveWithinArt, b as asNodeStream } from './fileutil-DypIDpac.js';
6
+ import { r as resolveWithinArt, b as asNodeStream } from './fileutil-CQgueTPh.js';
8
7
  import { spawn } from 'node:child_process';
9
- import { path as path$1 } from '@ffmpeg-installer/ffmpeg';
8
+ import { path } from '@ffmpeg-installer/ffmpeg';
10
9
  import { c as createLogger } from './log-Dgdg632G.js';
11
10
  import { randomInt } from 'node:crypto';
11
+ import { $ as $DATA } from './directories-MyCzDoxa.js';
12
12
  import 'node:stream';
13
13
  import 'tslog';
14
+ import 'node:fs';
14
15
 
15
16
  const logger = createLogger();
16
17
  const POST = async ({ request, params }) => {
@@ -25,11 +26,11 @@ const POST = async ({ request, params }) => {
25
26
  if (ftype.startsWith("video")) {
26
27
  logger.info("Generating thumbnail for video", fname, "@", galleryPath, "...");
27
28
  const ffmpegInput = resolveWithinArt(
28
- path.join($ART(), getGalleryDir(galleryPath), relpath(galleryPath, fname, ftype, rand))
29
+ path__default__default.join($DATA(), getGalleryDir(galleryPath), relpath(galleryPath, fname, ftype, rand))
29
30
  );
30
31
  const ffmpegOutput = resolveWithinArt(
31
- path.join(
32
- $ART(),
32
+ path__default__default.join(
33
+ $DATA(),
33
34
  getGalleryDir(galleryPath),
34
35
  relpath(galleryPath, fname + "_thumb", "image/jpeg", rand)
35
36
  )
@@ -38,7 +39,7 @@ const POST = async ({ request, params }) => {
38
39
  logger.warn("Refusing to write video thumbnail outside art root @", galleryPath);
39
40
  throw error(400, "invalid gallery path");
40
41
  }
41
- const ffmpeg = spawn(path$1, [
42
+ const ffmpeg = spawn(path, [
42
43
  "-i",
43
44
  ffmpegInput,
44
45
  "-vf",
@@ -70,7 +71,7 @@ const POST = async ({ request, params }) => {
70
71
  async function uploadImage(galleryPath, image, fname, ftype, rand) {
71
72
  const galleryDir = getGalleryDir(galleryPath);
72
73
  const fp = resolveWithinArt(
73
- path.join($ART(), galleryDir, relpath(galleryPath, fname, ftype, rand))
74
+ path__default__default.join($DATA(), galleryDir, relpath(galleryPath, fname, ftype, rand))
74
75
  );
75
76
  if (!fp) {
76
77
  logger.warn("Refusing to write gallery image outside art root @", galleryPath);
@@ -88,4 +89,4 @@ function relpath(galleryPath, fname, ftype, rand) {
88
89
  }
89
90
 
90
91
  export { POST };
91
- //# sourceMappingURL=_server.ts-DCWa9uDh.js.map
92
+ //# sourceMappingURL=_server.ts-PEmL6kUs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-PEmL6kUs.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__default from \"node:path\";\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 } from \"@ffmpeg-installer/ffmpeg\";\nimport { c as createLogger } from \"../../../../../../chunks/log.js\";\nimport { randomInt } from \"node:crypto\";\nimport { $ as $DATA } from \"../../../../../../chunks/directories.js\";\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__default.join($DATA(), getGalleryDir(galleryPath), relpath(galleryPath, fname, ftype, rand))\n );\n const ffmpegOutput = resolveWithinArt(\n path__default.join(\n $DATA(),\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, [\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__default.join($DATA(), 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":["path__default"],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { open } from 'node:fs/promises';
2
- import { a as asWebStream } from './fileutil-DypIDpac.js';
3
- import { $ as $IMGDIR } from './paths-COyPzvhX.js';
4
- import path from 'node:path';
2
+ import { a as asWebStream } from './fileutil-CQgueTPh.js';
3
+ import { $ as $IMGDIR } from './paths-Bv7gDCfT.js';
4
+ import path__default__default from 'node:path';
5
5
  import { c as createLogger } from './log-Dgdg632G.js';
6
- import 'phosart-common/server';
7
6
  import 'node:stream';
7
+ import './directories-MyCzDoxa.js';
8
+ import 'node:fs';
8
9
  import 'tslog';
9
10
 
10
11
  const logger = createLogger();
11
12
  const GET = async ({ params }) => {
12
- const imgPath = path.join($IMGDIR(), params.hash.replaceAll(/[^a-zA-Z0-9+_-]/g, "%") + ".jpg");
13
+ const imgPath = path__default__default.join($IMGDIR(), params.hash.replaceAll(/[^a-zA-Z0-9+_-]/g, "%") + ".jpg");
13
14
  logger.silly("Reading bluesky image @", imgPath);
14
15
  const file = await open(imgPath);
15
16
  return new Response(asWebStream(file.createReadStream({ autoClose: true })), {
@@ -19,4 +20,4 @@ const GET = async ({ params }) => {
19
20
  };
20
21
 
21
22
  export { GET };
22
- //# sourceMappingURL=_server.ts-oUZBPZtX.js.map
23
+ //# sourceMappingURL=_server.ts-xRxSzZ-g.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-xRxSzZ-g.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/bluesky/image/_hash_/_server.ts.js"],"sourcesContent":["import { open } from \"node:fs/promises\";\nimport { a as asWebStream } from \"../../../../../../chunks/fileutil.js\";\nimport { $ as $IMGDIR } from \"../../../../../../chunks/paths.js\";\nimport path__default from \"node:path\";\nimport { c as createLogger } from \"../../../../../../chunks/log.js\";\nconst logger = createLogger();\nconst GET = async ({ params }) => {\n const imgPath = path__default.join($IMGDIR(), params.hash.replaceAll(/[^a-zA-Z0-9+_-]/g, \"%\") + \".jpg\");\n logger.silly(\"Reading bluesky image @\", imgPath);\n const file = await open(imgPath);\n return new Response(asWebStream(file.createReadStream({ autoClose: true })), {\n status: 200,\n headers: { \"Content-Type\": \"image/jpeg\" }\n });\n};\nexport {\n GET\n};\n"],"names":["path__default"],"mappings":";;;;;;;;;;AAKA,MAAM,MAAM,GAAG,YAAY,EAAE;AACxB,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,MAAM,OAAO,GAAGA,sBAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;AACzG,EAAE,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,OAAO,CAAC;AAClD,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AAClC,EAAE,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;AAC/E,IAAI,MAAM,EAAE,GAAG;AACf,IAAI,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY;AAC3C,GAAG,CAAC;AACJ;;;;"}
@@ -0,0 +1,27 @@
1
+ import { $ as $DATA } from './directories-MyCzDoxa.js';
2
+ import * as fs from 'node:fs/promises';
3
+ import * as path__default from 'node:path';
4
+ import * as yaml from 'yaml';
5
+ import { A as Artist } from './Artist-DO_o4cdV.js';
6
+ import { a as getCache, b as cacheVersion } from './util-FQbl4xCz.js';
7
+
8
+ async function artists() {
9
+ const cached = getCache().artistCache;
10
+ const nextVersion = await cacheVersion();
11
+ if (cached.cache && cached.version === nextVersion) {
12
+ return cached.cache;
13
+ }
14
+ let artists2;
15
+ try {
16
+ artists2 = yaml.parse(await fs.readFile(path__default.join($DATA(), "artists.yaml"), { encoding: "utf-8" }));
17
+ } catch {
18
+ return {};
19
+ }
20
+ await Promise.all(Object.values(artists2).map((v) => Artist.parseAsync(v)));
21
+ getCache().artistCache.cache = artists2;
22
+ getCache().artistCache.version = nextVersion;
23
+ return artists2;
24
+ }
25
+
26
+ export { artists as a };
27
+ //# sourceMappingURL=artist2-CxkL2s89.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artist2-CxkL2s89.js","sources":["../../../.svelte-kit/adapter-node/chunks/artist2.js"],"sourcesContent":["import { $ as $DATA } from \"./directories.js\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport * as yaml from \"yaml\";\nimport { A as Artist } from \"./Artist.js\";\nimport { g as getCache, a as cacheVersion } from \"./util.js\";\nasync function artists() {\n const cached = getCache().artistCache;\n const nextVersion = await cacheVersion();\n if (cached.cache && cached.version === nextVersion) {\n return cached.cache;\n }\n let artists2;\n try {\n artists2 = yaml.parse(await fs.readFile(path.join($DATA(), \"artists.yaml\"), { encoding: \"utf-8\" }));\n } catch {\n return {};\n }\n await Promise.all(Object.values(artists2).map((v) => Artist.parseAsync(v)));\n getCache().artistCache.cache = artists2;\n getCache().artistCache.version = nextVersion;\n return artists2;\n}\nexport {\n artists as a\n};\n"],"names":["path"],"mappings":";;;;;;;AAMA,eAAe,OAAO,GAAG;AACzB,EAAE,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC,WAAW;AACvC,EAAE,MAAM,WAAW,GAAG,MAAM,YAAY,EAAE;AAC1C,EAAE,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,WAAW,EAAE;AACtD,IAAI,OAAO,MAAM,CAAC,KAAK;AACvB,EAAE;AACF,EAAE,IAAI,QAAQ;AACd,EAAE,IAAI;AACN,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAACA,aAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACvG,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,EAAE;AACb,EAAE;AACF,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,KAAK,GAAG,QAAQ;AACzC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,WAAW;AAC9C,EAAE,OAAO,QAAQ;AACjB;;;;"}
@@ -1,7 +1,7 @@
1
- import { readPack, writePack } from 'phosart-common/server';
2
1
  import { mkdir } from 'fs/promises';
3
- import { b as $SKIPSET, c as $CACHEDIR, a as $CACHEFILE, d as $FILESET } from './paths-COyPzvhX.js';
2
+ import { b as $SKIPSET, c as $CACHEDIR, a as $CACHEFILE, d as $FILESET } from './paths-Bv7gDCfT.js';
4
3
  import { c as createLogger } from './log-Dgdg632G.js';
4
+ import { r as readPack, w as writePack } from './pack-Bk3t1T7h.js';
5
5
 
6
6
  const logger = createLogger();
7
7
  async function writeCache(posts) {
@@ -69,4 +69,4 @@ async function readSkipSet() {
69
69
  }
70
70
 
71
71
  export { readCache as a, readPerceptualHashCache as b, writeCache as c, flushPerceptualHashCache as f, readSkipSet as r, writeSkipSet as w };
72
- //# sourceMappingURL=cache-DMIdk3dZ.js.map
72
+ //# sourceMappingURL=cache-BNAVbmcu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-BNAVbmcu.js","sources":["../../../.svelte-kit/adapter-node/chunks/cache.js"],"sourcesContent":["import { mkdir } from \"fs/promises\";\nimport { b as $SKIPSET, c as $CACHEDIR, a as $CACHEFILE, d as $FILESET } from \"./paths.js\";\nimport { c as createLogger } from \"./log.js\";\nimport { r as readPack, w as writePack } from \"./pack.js\";\nconst logger = createLogger();\nasync function writeCache(posts) {\n logger.silly(\"Writing bluesky cachefile @\", $CACHEFILE(), \"...\");\n if (await mkdir($CACHEDIR(), { recursive: true })) {\n logger.debug(\"Created cachedir @\", $CACHEDIR(), \"...\");\n }\n await writePack($CACHEFILE(), posts);\n logger.debug(\"Wrote bluesky cachefile @\", $CACHEFILE());\n}\nasync function readCache() {\n try {\n logger.silly(\"Reading bluesky cachefile @\", $CACHEFILE(), \"...\");\n const cache = await readPack($CACHEFILE());\n logger.silly(\"Read bluesky cachefile @\", $CACHEFILE());\n return cache;\n } catch (err) {\n logger.info(\"Couldn't read bluesky cachefile @\", $CACHEFILE(), \"- will create it. Error:\", err);\n return [];\n }\n}\nasync function flushPerceptualHashCache(posts) {\n logger.silly(\"Writing bluesky phash cache @\", $FILESET(), \"...\");\n if (await mkdir($CACHEDIR(), { recursive: true })) {\n logger.debug(\"Created cachedir @\", $CACHEDIR(), \"...\");\n }\n await writePack($FILESET(), posts);\n logger.debug(\"Wrote bluesky phash cache @\", $FILESET());\n}\nasync function readPerceptualHashCache() {\n try {\n logger.silly(\"Reading bluesky phash cache @\", $FILESET(), \"...\");\n const cache = await readPack($FILESET());\n logger.silly(\"Read bluesky phash cache @\", $FILESET());\n return cache;\n } catch (err) {\n logger.info(\n \"Couldn't read bluesky phash cache @\",\n $FILESET(),\n \"- will create it. Error:\",\n err\n );\n return {};\n }\n}\nasync function writeSkipSet(ss) {\n logger.silly(\"Writing skipset @\", $SKIPSET(), \"...\");\n if (await mkdir($CACHEDIR(), { recursive: true })) {\n logger.debug(\"Created cachedir @\", $CACHEDIR(), \"...\");\n }\n await writePack($SKIPSET(), Object.fromEntries(Object.entries(ss).map(([k, v]) => [k, [...v]])));\n logger.debug(\"Wrote skipset @\", $SKIPSET());\n}\nasync function readSkipSet() {\n try {\n logger.silly(\"Reading skipset @\", $SKIPSET(), \"...\");\n const res = await readPack($SKIPSET());\n const value = Object.fromEntries(Object.entries(res).map(([k, v]) => [k, new Set(v)]));\n logger.silly(\"Read skipset @\", $SKIPSET());\n return value;\n } catch (err) {\n logger.info(\"Couldn't read skipset @\", $SKIPSET(), \"- will create it. Error:\", err);\n return {};\n }\n}\nexport {\n readCache as a,\n readPerceptualHashCache as b,\n writeCache as c,\n flushPerceptualHashCache as f,\n readSkipSet as r,\n writeSkipSet as w\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { $ as $DATA } from './directories-MyCzDoxa.js';
2
+ import * as fs from 'node:fs/promises';
3
+ import * as path__default from 'node:path';
4
+ import * as yaml from 'yaml';
5
+ import { z } from 'zod';
6
+ import { r as readFastCache, f as flushFastCache, p as processImageFastcache, P as Picture } from './imageprocess-CXFT4aVl.js';
7
+ import { a as getCache, b as cacheVersion, r as relPath, f as fullPath } from './util-FQbl4xCz.js';
8
+
9
+ const AltPicture = Picture.and(z.object({ alt: z.string() }));
10
+ const BaseAltPicture = z.object({
11
+ image: z.string(),
12
+ alt: z.string()
13
+ });
14
+ function Character(imageType) {
15
+ return z.object({
16
+ name: z.string(),
17
+ pronouns: z.string(),
18
+ thumbnail: imageType.optional(),
19
+ picture: imageType,
20
+ description: z.string(),
21
+ short_description: z.string().optional(),
22
+ index: z.number(),
23
+ type: z.literal("Character").default("Character")
24
+ });
25
+ }
26
+ const RawCharacter = Character(BaseAltPicture);
27
+ Character(AltPicture);
28
+ const CHARACTER_PATH = path__default.join("characters", "characters.yaml");
29
+ async function doResolveImage(filename, character, fc) {
30
+ const full = processImageFastcache(fc, fullPath(filename, character.picture.image), relPath(filename, character.picture.image));
31
+ const thumb = character.thumbnail ? processImageFastcache(fc, fullPath(filename, character.thumbnail.image), relPath(filename, character.thumbnail.image)) : void 0;
32
+ return {
33
+ ...character,
34
+ picture: { ...await full, alt: character.picture.alt },
35
+ thumbnail: thumb ? {
36
+ ...await thumb,
37
+ alt: character.thumbnail.alt
38
+ } : void 0
39
+ };
40
+ }
41
+ async function rawCharacters() {
42
+ const cached = getCache().rawCharacterCache;
43
+ const nextVersion = await cacheVersion();
44
+ if (cached.cache && cached.version === nextVersion) {
45
+ return cached.cache;
46
+ }
47
+ const document = yaml.parse(await fs.readFile(path__default.join($DATA(), CHARACTER_PATH), { encoding: "utf-8" }));
48
+ const characters2 = document.flatMap((obj, idx) => {
49
+ const ch = RawCharacter.parse({ ...obj, index: idx++ });
50
+ return ch;
51
+ }).reduce((acc, cur) => ({ ...acc, [cur.name]: cur }), {});
52
+ getCache().rawCharacterCache.cache = characters2;
53
+ getCache().rawCharacterCache.version = nextVersion;
54
+ return characters2;
55
+ }
56
+ async function characters() {
57
+ const cached = getCache().characterCache;
58
+ const nextVersion = await cacheVersion();
59
+ if (cached.cache && cached.version === nextVersion) {
60
+ return cached.cache;
61
+ }
62
+ const characters2 = await rawCharacters();
63
+ const fc = await readFastCache();
64
+ const resolved = Object.fromEntries(await Promise.all(Object.entries(characters2).map(async ([k, v]) => {
65
+ const resolved2 = await doResolveImage(CHARACTER_PATH, v, fc);
66
+ return [k, resolved2];
67
+ })));
68
+ await flushFastCache(fc);
69
+ getCache().characterCache.cache = resolved;
70
+ getCache().characterCache.version = nextVersion;
71
+ return resolved;
72
+ }
73
+
74
+ export { RawCharacter as R, characters as c, rawCharacters as r };
75
+ //# sourceMappingURL=character-BiUPL14p.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character-BiUPL14p.js","sources":["../../../.svelte-kit/adapter-node/chunks/character.js"],"sourcesContent":["import { $ as $DATA } from \"./directories.js\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport * as yaml from \"yaml\";\nimport { z } from \"zod\";\nimport { P as Picture, r as readFastCache, f as flushFastCache, p as processImageFastcache } from \"./imageprocess.js\";\nimport { g as getCache, a as cacheVersion, r as relPath, f as fullPath } from \"./util.js\";\nconst AltPicture = Picture.and(z.object({ alt: z.string() }));\nconst BaseAltPicture = z.object({\n image: z.string(),\n alt: z.string()\n});\nfunction Character(imageType) {\n return z.object({\n name: z.string(),\n pronouns: z.string(),\n thumbnail: imageType.optional(),\n picture: imageType,\n description: z.string(),\n short_description: z.string().optional(),\n index: z.number(),\n type: z.literal(\"Character\").default(\"Character\")\n });\n}\nconst RawCharacter = Character(BaseAltPicture);\nCharacter(AltPicture);\nconst CHARACTER_PATH = path.join(\"characters\", \"characters.yaml\");\nasync function doResolveImage(filename, character, fc) {\n const full = processImageFastcache(fc, fullPath(filename, character.picture.image), relPath(filename, character.picture.image));\n const thumb = character.thumbnail ? processImageFastcache(fc, fullPath(filename, character.thumbnail.image), relPath(filename, character.thumbnail.image)) : void 0;\n return {\n ...character,\n picture: { ...await full, alt: character.picture.alt },\n thumbnail: thumb ? {\n ...await thumb,\n alt: character.thumbnail.alt\n } : void 0\n };\n}\nasync function rawCharacters() {\n const cached = getCache().rawCharacterCache;\n const nextVersion = await cacheVersion();\n if (cached.cache && cached.version === nextVersion) {\n return cached.cache;\n }\n const document = yaml.parse(await fs.readFile(path.join($DATA(), CHARACTER_PATH), { encoding: \"utf-8\" }));\n const characters2 = document.flatMap((obj, idx) => {\n const ch = RawCharacter.parse({ ...obj, index: idx++ });\n return ch;\n }).reduce((acc, cur) => ({ ...acc, [cur.name]: cur }), {});\n getCache().rawCharacterCache.cache = characters2;\n getCache().rawCharacterCache.version = nextVersion;\n return characters2;\n}\nasync function characters() {\n const cached = getCache().characterCache;\n const nextVersion = await cacheVersion();\n if (cached.cache && cached.version === nextVersion) {\n return cached.cache;\n }\n const characters2 = await rawCharacters();\n const fc = await readFastCache();\n const resolved = Object.fromEntries(await Promise.all(Object.entries(characters2).map(async ([k, v]) => {\n const resolved2 = await doResolveImage(CHARACTER_PATH, v, fc);\n return [k, resolved2];\n })));\n await flushFastCache(fc);\n getCache().characterCache.cache = resolved;\n getCache().characterCache.version = nextVersion;\n return resolved;\n}\nexport {\n RawCharacter as R,\n characters as c,\n rawCharacters as r\n};\n"],"names":["path"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { join, dirname } from 'node:path';
2
+ import * as fs from 'node:fs';
3
+
4
+ function tryFindRoot(start) {
5
+ let cur = dirname(start);
6
+ while (cur.length > 1) {
7
+ if (cur.includes("node_modules")) {
8
+ cur = join(cur, "..");
9
+ continue;
10
+ }
11
+ try {
12
+ JSON.parse(fs.readFileSync(join(cur, "package.json"), { encoding: "utf-8" }));
13
+ return cur;
14
+ } catch {
15
+ cur = join(cur, "..");
16
+ }
17
+ }
18
+ return null;
19
+ }
20
+ let cachedRoot = null;
21
+ function findRoot() {
22
+ if (cachedRoot) {
23
+ return cachedRoot;
24
+ }
25
+ let root = null;
26
+ if (process.env.PROJECT_ROOT) {
27
+ root = tryFindRoot(process.env.PROJECT_ROOT);
28
+ }
29
+ root = root ?? tryFindRoot(process.argv[1]) ?? tryFindRoot(process.cwd());
30
+ if (!root) {
31
+ throw new Error("Failed to find root");
32
+ }
33
+ cachedRoot = root;
34
+ return root;
35
+ }
36
+ const $ROOT = () => join(findRoot(), "src");
37
+ const $DATA = () => join($ROOT(), "data");
38
+ const $PUBLIC = () => join($ROOT(), "..", "static", "_");
39
+
40
+ export { $DATA as $, $PUBLIC as a };
41
+ //# sourceMappingURL=directories-MyCzDoxa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directories-MyCzDoxa.js","sources":["../../../.svelte-kit/adapter-node/chunks/directories.js"],"sourcesContent":["import { join, dirname } from \"node:path\";\nimport * as fs from \"node:fs\";\nfunction tryFindRoot(start) {\n let cur = dirname(start);\n while (cur.length > 1) {\n if (cur.includes(\"node_modules\")) {\n cur = join(cur, \"..\");\n continue;\n }\n try {\n JSON.parse(fs.readFileSync(join(cur, \"package.json\"), { encoding: \"utf-8\" }));\n return cur;\n } catch {\n cur = join(cur, \"..\");\n }\n }\n return null;\n}\nlet cachedRoot = null;\nfunction findRoot() {\n if (cachedRoot) {\n return cachedRoot;\n }\n let root = null;\n if (process.env.PROJECT_ROOT) {\n root = tryFindRoot(process.env.PROJECT_ROOT);\n }\n root = root ?? tryFindRoot(process.argv[1]) ?? tryFindRoot(process.cwd());\n if (!root) {\n throw new Error(\"Failed to find root\");\n }\n cachedRoot = root;\n return root;\n}\nconst $ROOT = () => join(findRoot(), \"src\");\nconst $DATA = () => join($ROOT(), \"data\");\nconst $PUBLIC = () => join($ROOT(), \"..\", \"static\", \"_\");\nexport {\n $DATA as $,\n $PUBLIC as a\n};\n"],"names":[],"mappings":";;;AAEA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,EAAE,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;AAC1B,EAAE,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC3B,MAAM;AACN,IAAI;AACJ,IAAI,IAAI;AACR,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACnF,MAAM,OAAO,GAAG;AAChB,IAAI,CAAC,CAAC,MAAM;AACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAC3B,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,IAAI,UAAU,GAAG,IAAI;AACrB,SAAS,QAAQ,GAAG;AACpB,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,OAAO,UAAU;AACrB,EAAE;AACF,EAAE,IAAI,IAAI,GAAG,IAAI;AACjB,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;AAChC,IAAI,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAChD,EAAE;AACF,EAAE,IAAI,GAAG,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3E,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC;AAC1C,EAAE;AACF,EAAE,UAAU,GAAG,IAAI;AACnB,EAAE,OAAO,IAAI;AACb;AACA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC;AACtC,MAAC,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM;AACnC,MAAC,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { c as createLogger } from './log-Dgdg632G.js';
2
- import { $ART } from 'phosart-common/server';
3
2
  import { unlink } from 'node:fs/promises';
4
- import path from 'node:path';
3
+ import path__default__default from 'node:path';
5
4
  import { Readable } from 'node:stream';
5
+ import { $ as $DATA } from './directories-MyCzDoxa.js';
6
6
 
7
7
  const logger = createLogger();
8
8
  function asNodeStream(web) {
@@ -12,10 +12,10 @@ function asWebStream(node) {
12
12
  return Readable.toWeb(node);
13
13
  }
14
14
  function resolveWithinArt(targetPath) {
15
- const artRoot = path.resolve($ART());
16
- const resolved = path.resolve(targetPath);
17
- const relative = path.relative(artRoot, resolved);
18
- if (relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative)) {
15
+ const artRoot = path__default__default.resolve($DATA());
16
+ const resolved = path__default__default.resolve(targetPath);
17
+ const relative = path__default__default.relative(artRoot, resolved);
18
+ if (relative === "" || !relative.startsWith("..") && !path__default__default.isAbsolute(relative)) {
19
19
  return resolved;
20
20
  }
21
21
  return null;
@@ -36,4 +36,4 @@ async function deleteResources(deletions) {
36
36
  }
37
37
 
38
38
  export { asWebStream as a, asNodeStream as b, deleteResources as d, resolveWithinArt as r };
39
- //# sourceMappingURL=fileutil-DypIDpac.js.map
39
+ //# sourceMappingURL=fileutil-CQgueTPh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileutil-CQgueTPh.js","sources":["../../../.svelte-kit/adapter-node/chunks/fileutil.js"],"sourcesContent":["import { c as createLogger } from \"./log.js\";\nimport { unlink } from \"node:fs/promises\";\nimport path__default from \"node:path\";\nimport { Readable } from \"node:stream\";\nimport { $ as $DATA } from \"./directories.js\";\nconst logger = createLogger();\nfunction asNodeStream(web) {\n return Readable.fromWeb(web);\n}\nfunction asWebStream(node) {\n return Readable.toWeb(node);\n}\nfunction resolveWithinArt(targetPath) {\n const artRoot = path__default.resolve($DATA());\n const resolved = path__default.resolve(targetPath);\n const relative = path__default.relative(artRoot, resolved);\n if (relative === \"\" || !relative.startsWith(\"..\") && !path__default.isAbsolute(relative)) {\n return resolved;\n }\n return null;\n}\nasync function deleteResources(deletions) {\n await Promise.all(\n deletions.map(async (resourcePath) => {\n const resolved = resolveWithinArt(resourcePath);\n if (!resolved) {\n logger.warn(\"Skipping delete outside art root @\", resourcePath);\n return;\n }\n logger.silly(\"Unlinking\", resolved, \"...\");\n await unlink(resolved);\n logger.info(\"Deleted\", resolved);\n })\n );\n}\nexport {\n asWebStream as a,\n asNodeStream as b,\n deleteResources as d,\n resolveWithinArt as r\n};\n"],"names":["path__default"],"mappings":";;;;;;AAKA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,EAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AAC9B;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7B;AACA,SAAS,gBAAgB,CAAC,UAAU,EAAE;AACtC,EAAE,MAAM,OAAO,GAAGA,sBAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAChD,EAAE,MAAM,QAAQ,GAAGA,sBAAa,CAAC,OAAO,CAAC,UAAU,CAAC;AACpD,EAAE,MAAM,QAAQ,GAAGA,sBAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC5D,EAAE,IAAI,QAAQ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAACA,sBAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC5F,IAAI,OAAO,QAAQ;AACnB,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACA,eAAe,eAAe,CAAC,SAAS,EAAE;AAC1C,EAAE,MAAM,OAAO,CAAC,GAAG;AACnB,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,YAAY,KAAK;AAC1C,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC;AACrD,MAAM,IAAI,CAAC,QAAQ,EAAE;AACrB,QAAQ,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,YAAY,CAAC;AACvE,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC;AAChD,MAAM,MAAM,MAAM,CAAC,QAAQ,CAAC;AAC5B,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;AACtC,IAAI,CAAC;AACL,GAAG;AACH;;;;"}