fundus 0.0.4 → 0.2.0

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 (224) hide show
  1. package/README.md +49 -8
  2. package/build/client/_app/immutable/assets/0.inkPq3ni.css +1 -0
  3. package/build/client/_app/immutable/assets/0.inkPq3ni.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.inkPq3ni.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/3.ChSpCG-T.css +1 -0
  6. package/build/client/_app/immutable/assets/3.ChSpCG-T.css.br +0 -0
  7. package/build/client/_app/immutable/assets/3.ChSpCG-T.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{LibraryContextMenu.CMefGNE2.css → LibraryContextMenu.BYvU4SY7.css} +1 -1
  9. package/build/client/_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css.br +0 -0
  10. package/build/client/_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css +1 -0
  12. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.br +0 -0
  13. package/build/client/_app/immutable/assets/ManifestSelector.Il8p28r8.css.gz +0 -0
  14. package/build/client/_app/immutable/chunks/BAEZPv6c.js +1 -0
  15. package/build/client/_app/immutable/chunks/BAEZPv6c.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BAEZPv6c.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{DVEQFclp.js → ByVSyIj7.js} +1 -1
  18. package/build/client/_app/immutable/chunks/ByVSyIj7.js.br +1 -0
  19. package/build/client/_app/immutable/chunks/ByVSyIj7.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/C8W3KwDq.js +1 -0
  21. package/build/client/_app/immutable/chunks/C8W3KwDq.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/C8W3KwDq.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/CP-bnOxU.js +1 -0
  24. package/build/client/_app/immutable/chunks/CP-bnOxU.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/CP-bnOxU.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{CNRz3sSw.js → D65cSBhe.js} +2 -2
  27. package/build/client/_app/immutable/chunks/D65cSBhe.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/D65cSBhe.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/Db8LRH6X.js +108 -0
  30. package/build/client/_app/immutable/chunks/Db8LRH6X.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/Db8LRH6X.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/TZFh8bT7.js +1 -0
  33. package/build/client/_app/immutable/chunks/TZFh8bT7.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/TZFh8bT7.js.gz +0 -0
  35. package/build/client/_app/immutable/entry/app.nM6SgHKJ.js +2 -0
  36. package/build/client/_app/immutable/entry/app.nM6SgHKJ.js.br +0 -0
  37. package/build/client/_app/immutable/entry/app.nM6SgHKJ.js.gz +0 -0
  38. package/build/client/_app/immutable/entry/start.DNXvkhtP.js +1 -0
  39. package/build/client/_app/immutable/entry/start.DNXvkhtP.js.br +0 -0
  40. package/build/client/_app/immutable/entry/start.DNXvkhtP.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js +2 -0
  42. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/1.dMklHTc2.js +1 -0
  45. package/build/client/_app/immutable/nodes/1.dMklHTc2.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/1.dMklHTc2.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js +3 -0
  48. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js +1 -0
  51. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/4.Dgxx52FJ.js +2 -0
  54. package/build/client/_app/immutable/nodes/4.Dgxx52FJ.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/4.Dgxx52FJ.js.gz +0 -0
  56. package/build/client/_app/version.json +1 -1
  57. package/build/client/_app/version.json.br +0 -0
  58. package/build/client/_app/version.json.gz +0 -0
  59. package/build/client/favicon.svg +4 -0
  60. package/build/client/favicon.svg.br +0 -0
  61. package/build/client/favicon.svg.gz +0 -0
  62. package/build/handler.js +7 -7
  63. package/build/index.js +7 -7
  64. package/build/server/chunks/chunks/{context.js-BUZqFfWG.js → context.js-B77ZAVLi.js} +405 -31
  65. package/build/server/chunks/chunks/context.js-B77ZAVLi.js.map +1 -0
  66. package/build/server/chunks/chunks/{core.js-xfrkaQpS.js → core.js-EA_ysb1J.js} +130 -3
  67. package/build/server/chunks/chunks/core.js-EA_ysb1J.js.map +1 -0
  68. package/build/server/chunks/chunks/{exports.js-C0rwMMtk.js → exports.js-DvhE7Ffd.js} +2 -2
  69. package/build/server/chunks/chunks/{exports.js-C0rwMMtk.js.map → exports.js-DvhE7Ffd.js.map} +1 -1
  70. package/build/server/chunks/chunks/{http.js-DvopzwKh.js → http.js-DyoR9XRI.js} +5 -3
  71. package/build/server/chunks/chunks/http.js-DyoR9XRI.js.map +1 -0
  72. package/build/server/chunks/chunks/{internal.js-DGo2jPcg.js → internal.js-Dn37LrAW.js} +4 -4
  73. package/build/server/chunks/chunks/{internal.js-DGo2jPcg.js.map → internal.js-Dn37LrAW.js.map} +1 -1
  74. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  75. package/build/server/chunks/chunks/{library-store.js-ZLudCJlT.js → library-store.js-DJ-JRE-g.js} +388 -20
  76. package/build/server/chunks/chunks/library-store.js-DJ-JRE-g.js.map +1 -0
  77. package/build/server/chunks/chunks/{shared.js-B1gC9MiJ.js → shared.js-Dob0TlTu.js} +2 -2
  78. package/build/server/chunks/chunks/{shared.js-B1gC9MiJ.js.map → shared.js-Dob0TlTu.js.map} +1 -1
  79. package/build/server/chunks/chunks/{utils.js-DnEJ3UjO.js → utils.js-B4YimMxv.js} +3 -3
  80. package/build/server/chunks/chunks/{utils.js-DnEJ3UjO.js.map → utils.js-B4YimMxv.js.map} +1 -1
  81. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Cq5gXVQT.js → _server.ts.js-H4Pq1KAE.js} +4 -5
  82. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Cq5gXVQT.js.map → _server.ts.js-H4Pq1KAE.js.map} +1 -1
  83. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-RXbedi8q.js → _server.ts.js-BI3KHSfE.js} +5 -6
  84. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-RXbedi8q.js.map → _server.ts.js-BI3KHSfE.js.map} +1 -1
  85. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-BlNYUbXX.js +34 -0
  86. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-BlNYUbXX.js.map +1 -0
  87. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-D7Qae9vU.js → _server.ts.js-j-_N540j.js} +9 -7
  88. package/build/server/chunks/entries/endpoints/api/assets/_server.ts.js-j-_N540j.js.map +1 -0
  89. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DtO20kgB.js → _server.ts.js-BHKobzAg.js} +5 -6
  90. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DtO20kgB.js.map → _server.ts.js-BHKobzAg.js.map} +1 -1
  91. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BUebPbd5.js → _server.ts.js-BFKjIOCv.js} +5 -6
  92. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BUebPbd5.js.map → _server.ts.js-BFKjIOCv.js.map} +1 -1
  93. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BjT2qPMT.js → _server.ts.js-BxZeVw8y.js} +5 -6
  94. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BjT2qPMT.js.map → _server.ts.js-BxZeVw8y.js.map} +1 -1
  95. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-DYRLsoT7.js → _server.ts.js-CO36U_CT.js} +5 -6
  96. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-DYRLsoT7.js.map → _server.ts.js-CO36U_CT.js.map} +1 -1
  97. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BbN2fGNN.js → _server.ts.js-CBlg1Bkl.js} +5 -6
  98. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BbN2fGNN.js.map → _server.ts.js-CBlg1Bkl.js.map} +1 -1
  99. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-b_MKZ41b.js → _server.ts.js-DcGLCjIs.js} +5 -6
  100. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-b_MKZ41b.js.map → _server.ts.js-DcGLCjIs.js.map} +1 -1
  101. package/build/server/chunks/entries/endpoints/api/raw/adopt/_server.ts.js-AqhtjOiL.js +32 -0
  102. package/build/server/chunks/entries/endpoints/api/raw/adopt/_server.ts.js-AqhtjOiL.js.map +1 -0
  103. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/_server.ts.js-CSa6-DcU.js +30 -0
  104. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/_server.ts.js-CSa6-DcU.js.map +1 -0
  105. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/_server.ts.js-DnzZUoAo.js +30 -0
  106. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/_server.ts.js-DnzZUoAo.js.map +1 -0
  107. package/build/server/chunks/entries/endpoints/api/reconcile/_server.ts.js-B0KMprKq.js +33 -0
  108. package/build/server/chunks/entries/endpoints/api/reconcile/_server.ts.js-B0KMprKq.js.map +1 -0
  109. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-evEfMpvn.js → _server.ts.js-B1N9o1Ne.js} +5 -6
  110. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-evEfMpvn.js.map → _server.ts.js-B1N9o1Ne.js.map} +1 -1
  111. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-C04XE_1w.js → _server.ts.js-B6HbnRqq.js} +4 -5
  112. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-C04XE_1w.js.map → _server.ts.js-B6HbnRqq.js.map} +1 -1
  113. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DB8TdoEv.js → _server.ts.js-7wzPyG9v.js} +5 -6
  114. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DB8TdoEv.js.map → _server.ts.js-7wzPyG9v.js.map} +1 -1
  115. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BrpaijZO.js → _server.ts.js-BWztxYge.js} +5 -6
  116. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BrpaijZO.js.map → _server.ts.js-BWztxYge.js.map} +1 -1
  117. package/build/server/chunks/entries/{hooks.server.js-BJJwZW_I.js → hooks.server.js-CVKLksJ1.js} +4 -5
  118. package/build/server/chunks/entries/{hooks.server.js-BJJwZW_I.js.map → hooks.server.js-CVKLksJ1.js.map} +1 -1
  119. package/build/server/chunks/{handler-DnbS2t1B.js → handler-DZ2Sps4a.js} +5 -5
  120. package/build/server/chunks/{handler-DnbS2t1B.js.map → handler-DZ2Sps4a.js.map} +1 -1
  121. package/build/server/chunks/{index.js-g77q3Boj.js → index.js-CdmTWQz8.js} +5 -5
  122. package/build/server/chunks/{index.js-g77q3Boj.js.map → index.js-CdmTWQz8.js.map} +1 -1
  123. package/build/server/chunks/{manifest.js-qmEXbstS.js → manifest.js-GhfNr35x.js} +57 -22
  124. package/build/server/chunks/manifest.js-GhfNr35x.js.map +1 -0
  125. package/build/server/chunks/nodes/0.js-DGT86_i-.js +11 -0
  126. package/build/server/chunks/nodes/0.js-DGT86_i-.js.map +1 -0
  127. package/build/server/chunks/nodes/1.js-DQgYreU0.js +7 -0
  128. package/build/server/chunks/nodes/{1.js-H-qwo4GJ.js.map → 1.js-DQgYreU0.js.map} +1 -1
  129. package/build/server/chunks/nodes/2.js-DItreSrX.js +7 -0
  130. package/build/server/chunks/nodes/2.js-DItreSrX.js.map +1 -0
  131. package/build/server/chunks/nodes/3.js-bE1dJ_6v.js +7 -0
  132. package/build/server/chunks/nodes/3.js-bE1dJ_6v.js.map +1 -0
  133. package/build/server/chunks/nodes/4.js-BebbMVXy.js +7 -0
  134. package/build/server/chunks/nodes/{4.js-BKL7LSSm.js.map → 4.js-BebbMVXy.js.map} +1 -1
  135. package/dist/cli.js +32 -9
  136. package/dist/core/api-types.d.ts +39 -1
  137. package/dist/core/index.d.ts +3 -2
  138. package/dist/core/index.js +2 -1
  139. package/dist/core/ingest.d.ts +2 -0
  140. package/dist/core/ingest.js +7 -0
  141. package/dist/core/raw-path.d.ts +8 -0
  142. package/dist/core/raw-path.js +63 -0
  143. package/dist/server/build.js +11 -2
  144. package/dist/server/check.d.ts +5 -1
  145. package/dist/server/check.js +80 -28
  146. package/dist/server/cli-commands.d.ts +3 -2
  147. package/dist/server/cli-commands.js +47 -4
  148. package/dist/server/cli-init.d.ts +1 -1
  149. package/dist/server/cli-init.js +38 -5
  150. package/dist/server/http.js +5 -1
  151. package/dist/server/index.d.ts +1 -1
  152. package/dist/server/library-store.d.ts +23 -0
  153. package/dist/server/library-store.js +82 -14
  154. package/dist/server/operations.d.ts +12 -2
  155. package/dist/server/operations.js +391 -31
  156. package/dist/server/processing/processor.js +3 -0
  157. package/dist/server/raw-reconciliation.d.ts +53 -0
  158. package/dist/server/raw-reconciliation.js +338 -0
  159. package/dist/server/raw-safety.d.ts +10 -0
  160. package/dist/server/raw-safety.js +73 -0
  161. package/dist/server/start.d.ts +4 -2
  162. package/dist/server/start.js +43 -11
  163. package/package.json +1 -1
  164. package/build/client/_app/immutable/assets/0.DLhIsYA_.css +0 -1
  165. package/build/client/_app/immutable/assets/0.DLhIsYA_.css.br +0 -0
  166. package/build/client/_app/immutable/assets/0.DLhIsYA_.css.gz +0 -0
  167. package/build/client/_app/immutable/assets/3.JwgtcTEd.css +0 -1
  168. package/build/client/_app/immutable/assets/3.JwgtcTEd.css.br +0 -0
  169. package/build/client/_app/immutable/assets/3.JwgtcTEd.css.gz +0 -0
  170. package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css.br +0 -0
  171. package/build/client/_app/immutable/assets/LibraryContextMenu.CMefGNE2.css.gz +0 -0
  172. package/build/client/_app/immutable/chunks/CNRz3sSw.js.br +0 -0
  173. package/build/client/_app/immutable/chunks/CNRz3sSw.js.gz +0 -0
  174. package/build/client/_app/immutable/chunks/CO4RBJfa.js +0 -1
  175. package/build/client/_app/immutable/chunks/CO4RBJfa.js.br +0 -0
  176. package/build/client/_app/immutable/chunks/CO4RBJfa.js.gz +0 -0
  177. package/build/client/_app/immutable/chunks/DOpBpjxS.js +0 -108
  178. package/build/client/_app/immutable/chunks/DOpBpjxS.js.br +0 -0
  179. package/build/client/_app/immutable/chunks/DOpBpjxS.js.gz +0 -0
  180. package/build/client/_app/immutable/chunks/DVEQFclp.js.br +0 -1
  181. package/build/client/_app/immutable/chunks/DVEQFclp.js.gz +0 -0
  182. package/build/client/_app/immutable/chunks/DiFoWL2c.js +0 -1
  183. package/build/client/_app/immutable/chunks/DiFoWL2c.js.br +0 -0
  184. package/build/client/_app/immutable/chunks/DiFoWL2c.js.gz +0 -0
  185. package/build/client/_app/immutable/chunks/DkADHpZF.js +0 -1
  186. package/build/client/_app/immutable/chunks/DkADHpZF.js.br +0 -0
  187. package/build/client/_app/immutable/chunks/DkADHpZF.js.gz +0 -0
  188. package/build/client/_app/immutable/entry/app.CKgtYXQb.js +0 -2
  189. package/build/client/_app/immutable/entry/app.CKgtYXQb.js.br +0 -0
  190. package/build/client/_app/immutable/entry/app.CKgtYXQb.js.gz +0 -0
  191. package/build/client/_app/immutable/entry/start.CYZu5qE1.js +0 -1
  192. package/build/client/_app/immutable/entry/start.CYZu5qE1.js.br +0 -0
  193. package/build/client/_app/immutable/entry/start.CYZu5qE1.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/0.I_1SApYQ.js +0 -2
  195. package/build/client/_app/immutable/nodes/0.I_1SApYQ.js.br +0 -0
  196. package/build/client/_app/immutable/nodes/0.I_1SApYQ.js.gz +0 -0
  197. package/build/client/_app/immutable/nodes/1.v6eUTnWq.js +0 -1
  198. package/build/client/_app/immutable/nodes/1.v6eUTnWq.js.br +0 -2
  199. package/build/client/_app/immutable/nodes/1.v6eUTnWq.js.gz +0 -0
  200. package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js +0 -3
  201. package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js.gz +0 -0
  203. package/build/client/_app/immutable/nodes/3.C-DO70Bs.js +0 -1
  204. package/build/client/_app/immutable/nodes/3.C-DO70Bs.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/3.C-DO70Bs.js.gz +0 -0
  206. package/build/client/_app/immutable/nodes/4.CALOuSyz.js +0 -2
  207. package/build/client/_app/immutable/nodes/4.CALOuSyz.js.br +0 -0
  208. package/build/client/_app/immutable/nodes/4.CALOuSyz.js.gz +0 -0
  209. package/build/server/chunks/chunks/context.js-BUZqFfWG.js.map +0 -1
  210. package/build/server/chunks/chunks/core.js-xfrkaQpS.js.map +0 -1
  211. package/build/server/chunks/chunks/folder-path.js-ytx9ucgg.js +0 -64
  212. package/build/server/chunks/chunks/folder-path.js-ytx9ucgg.js.map +0 -1
  213. package/build/server/chunks/chunks/http.js-DvopzwKh.js.map +0 -1
  214. package/build/server/chunks/chunks/library-store.js-ZLudCJlT.js.map +0 -1
  215. package/build/server/chunks/entries/endpoints/api/assets/_server.ts.js-D7Qae9vU.js.map +0 -1
  216. package/build/server/chunks/manifest.js-qmEXbstS.js.map +0 -1
  217. package/build/server/chunks/nodes/0.js-Bk6IZ-vD.js +0 -11
  218. package/build/server/chunks/nodes/0.js-Bk6IZ-vD.js.map +0 -1
  219. package/build/server/chunks/nodes/1.js-H-qwo4GJ.js +0 -7
  220. package/build/server/chunks/nodes/2.js-DRpXVLwp.js +0 -7
  221. package/build/server/chunks/nodes/2.js-DRpXVLwp.js.map +0 -1
  222. package/build/server/chunks/nodes/3.js-CDEzNFeU.js +0 -7
  223. package/build/server/chunks/nodes/3.js-CDEzNFeU.js.map +0 -1
  224. package/build/server/chunks/nodes/4.js-BKL7LSSm.js +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-store.js-DJ-JRE-g.js","sources":["../../../../.svelte-kit/output/server/chunks/library-store.js"],"sourcesContent":["import { A as IMAGE_BUILT_IN_PRESETS, B as validateAudioPreset, C as SLICE_BUILT_IN_PRESETS, E as defaultInsetsForSize, F as validateVideoPreset, I as videoPlugin, L as isAssetReference, M as validateImagePreset, N as chromaKeyVideoPlugin, P as VIDEO_BUILT_IN_PRESETS, R as AUDIO_BUILT_IN_PRESETS, S as plugins, _ as normalizeFolderPath, a as assetIdError, b as rawFileNameOfPath, c as portableRawPathKey, d as folderNameError, f as folderNameOf, g as joinFolderPath, h as isFolderOrDescendant, j as imagePlugin, l as rawFilePathError, m as folderPathError, o as manifestNameError, p as folderOfRawPath, s as isFundusTransactionName, u as FOLDER_SENTINEL, v as parentFolderPath, w as slicePlugin, x as replaceFolderPrefix, y as portableFolderPathKey, z as audioPlugin } from \"./core.js\";\nimport { i as manifestEmojiError, r as manifestColorError } from \"./manifest-appearance.js\";\nimport { basename, dirname, extname, isAbsolute, join, resolve } from \"node:path\";\nimport { constants, existsSync } from \"node:fs\";\nimport { lstat, mkdir, open, readFile, readdir, rename, rm, stat, unlink, writeFile } from \"node:fs/promises\";\nimport ffmpegStaticPath from \"ffmpeg-static\";\nimport { path } from \"ffprobe-static\";\nimport { execFile } from \"node:child_process\";\nimport { promisify } from \"node:util\";\nimport sharp from \"sharp\";\nimport { createHash } from \"node:crypto\";\n//#region src/lib/core/library.ts\n/** A fresh, empty library. */\nfunction createEmptyLibrary() {\n\treturn {\n\t\tversion: 1,\n\t\tfolders: [],\n\t\tassets: {},\n\t\tmanifests: {}\n\t};\n}\nfunction isRecord$1(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n/**\n* Keys that are prototype-pollution hazards as record keys: assigning\n* `assets[\"__proto__\"] = …` on a plain object replaces its prototype instead\n* of adding an entry. Rejected outright at parse time — id *validity* beyond\n* this is a validator concern (reported as issues, not parse failures).\n*/\nvar DANGEROUS_KEYS = [\n\t\"__proto__\",\n\t\"constructor\",\n\t\"prototype\"\n];\nfunction assertSafeKey(kind, key) {\n\tif (DANGEROUS_KEYS.includes(key)) throw new Error(`Library ${kind} key \"${key}\" is not allowed.`);\n}\nfunction parseAssetRecord(id, value) {\n\tif (!isRecord$1(value)) throw new Error(`Library asset \"${id}\" must be an object.`);\n\tif (typeof value.type !== \"string\" || value.type.length === 0) throw new Error(`Library asset \"${id}\" is missing a string \"type\".`);\n\tif (typeof value.raw !== \"string\" || value.raw.length === 0) throw new Error(`Library asset \"${id}\" is missing a string \"raw\" file name.`);\n\tif (typeof value.rawHash !== \"string\" || value.rawHash.length === 0) throw new Error(`Library asset \"${id}\" is missing a string \"rawHash\".`);\n\tif (!(\"parameters\" in value)) throw new Error(`Library asset \"${id}\" is missing \"parameters\".`);\n\tif (!Array.isArray(value.manifests) || value.manifests.some((entry) => typeof entry !== \"string\")) throw new Error(`Library asset \"${id}\" must have a \"manifests\" array of strings.`);\n\treturn {\n\t\ttype: value.type,\n\t\traw: value.raw,\n\t\trawHash: value.rawHash,\n\t\tparameters: value.parameters,\n\t\tmanifests: value.manifests\n\t};\n}\nfunction parseManifestRecord(name, value) {\n\tconst record = {};\n\tif (\"color\" in value && value.color !== void 0) {\n\t\tif (typeof value.color !== \"string\") throw new Error(`Library manifest \"${name}\" has a non-string \"color\".`);\n\t\trecord.color = value.color;\n\t}\n\tif (\"emoji\" in value && value.emoji !== void 0) {\n\t\tif (typeof value.emoji !== \"string\") throw new Error(`Library manifest \"${name}\" has a non-string \"emoji\".`);\n\t\trecord.emoji = value.emoji;\n\t}\n\treturn record;\n}\n/**\n* Parse and structurally validate a library file's JSON text. Throws with a\n* clear message on any malformed part; plugin parameter validation is a\n* separate, plugin-owned step.\n*/\nfunction parseLibrary(json) {\n\tlet value;\n\ttry {\n\t\tvalue = JSON.parse(json);\n\t} catch (cause) {\n\t\tthrow new Error(`Library file is not valid JSON: ${cause instanceof Error ? cause.message : String(cause)}`);\n\t}\n\tif (!isRecord$1(value)) throw new Error(\"Library file must contain a JSON object.\");\n\tif (value.version !== 1) throw new Error(`Unsupported library version ${JSON.stringify(value.version)} (expected 1).`);\n\tif (!isRecord$1(value.assets)) throw new Error(\"Library \\\"assets\\\" must be an object.\");\n\tif (!isRecord$1(value.manifests)) throw new Error(\"Library \\\"manifests\\\" must be an object.\");\n\tif (value.folders !== void 0 && (!Array.isArray(value.folders) || value.folders.some((entry) => typeof entry !== \"string\"))) throw new Error(\"Library \\\"folders\\\" must be an array of strings.\");\n\tconst folders = value.folders === void 0 ? [] : value.folders;\n\tfor (const folder of folders) {\n\t\tconst problem = folderPathError(folder);\n\t\tif (problem) throw new Error(`Invalid library folder: ${problem}`);\n\t}\n\tconst assets = {};\n\tfor (const [id, record] of Object.entries(value.assets)) {\n\t\tassertSafeKey(\"asset\", id);\n\t\tassets[id] = parseAssetRecord(id, record);\n\t}\n\tconst manifests = {};\n\tfor (const [name, record] of Object.entries(value.manifests)) {\n\t\tassertSafeKey(\"manifest\", name);\n\t\tif (!isRecord$1(record)) throw new Error(`Library manifest \"${name}\" must be an object.`);\n\t\tmanifests[name] = parseManifestRecord(name, record);\n\t}\n\treturn {\n\t\tversion: 1,\n\t\tfolders,\n\t\tassets,\n\t\tmanifests\n\t};\n}\n/** Recursively sort object keys so serialization is order-independent. */\nfunction sortValue(value) {\n\tif (Array.isArray(value)) return value.map(sortValue);\n\tif (typeof value === \"object\" && value !== null) {\n\t\tconst sorted = {};\n\t\tfor (const key of Object.keys(value).sort()) {\n\t\t\tconst entry = value[key];\n\t\t\tif (entry !== void 0) sorted[key] = sortValue(entry);\n\t\t}\n\t\treturn sorted;\n\t}\n\treturn value;\n}\n/**\n* Serialize a library deterministically: recursively sorted keys, tab-indented,\n* trailing newline. Same library → byte-identical file, whatever the in-memory\n* insertion order was.\n*/\nfunction serializeLibrary(library) {\n\treturn `${JSON.stringify(sortValue({\n\t\t...library,\n\t\tfolders: [...library.folders].sort()\n\t}), null, \"\t\")}\\n`;\n}\n//#endregion\n//#region src/lib/core/canonicalize.ts\n/**\n* Stable JSON for hash inputs: recursively sorted keys, no whitespace,\n* `undefined` object values dropped. Two parameter objects that differ only in\n* key order (or in explicitly-undefined optionals) canonicalize identically,\n* so the derived job hash — and thus the proxy file name — stays stable.\n*/\nfunction canonicalizeParameters(parameters) {\n\treturn stringify(parameters);\n}\n/** Deterministic UTF-16 code-unit ordering, independent of host locale. */\nfunction compareCodeUnits(left, right) {\n\treturn left < right ? -1 : left > right ? 1 : 0;\n}\nfunction stringify(value) {\n\tif (value === void 0) return \"null\";\n\tif (value === null || typeof value === \"number\" || typeof value === \"boolean\") return JSON.stringify(value);\n\tif (typeof value === \"string\") return JSON.stringify(value);\n\tif (Array.isArray(value)) return `[${value.map(stringify).join(\",\")}]`;\n\tif (typeof value === \"object\") {\n\t\tconst record = value;\n\t\tconst parts = [];\n\t\tfor (const key of Object.keys(record).sort()) {\n\t\t\tif (record[key] === void 0) continue;\n\t\t\tparts.push(`${JSON.stringify(key)}:${stringify(record[key])}`);\n\t\t}\n\t\treturn `{${parts.join(\",\")}}`;\n\t}\n\tthrow new Error(`Cannot canonicalize a ${typeof value} value.`);\n}\n//#endregion\n//#region src/lib/core/reference-graph.ts\n/**\n* Ask each asset's owning plugin for the references in its parameters. Assets\n* whose type is unknown or whose parameters do not validate contribute no\n* references — those problems are reported by the regular validation pass.\n*/\nfunction collectAllReferences(library, plugins) {\n\tconst referencesByAsset = {};\n\tfor (const [assetId, record] of Object.entries(library.assets)) {\n\t\treferencesByAsset[assetId] = [];\n\t\tconst plugin = plugins[record.type];\n\t\tif (!plugin?.collectReferences) continue;\n\t\ttry {\n\t\t\treferencesByAsset[assetId] = plugin.collectReferences(plugin.validateParameters(record.parameters));\n\t\t} catch {}\n\t}\n\treturn referencesByAsset;\n}\n/**\n* Reference *errors* (they block build/codegen): a reference to an unknown\n* asset, a target whose type is not among the field's expected types, and\n* cycles (composition is acyclic by nature).\n*/\nfunction referenceErrors(library, referencesByAsset) {\n\tconst issues = [];\n\tfor (const [assetId, references] of Object.entries(referencesByAsset)) for (const reference of references) {\n\t\tif (!Object.hasOwn(library.assets, reference.assetId)) {\n\t\t\tissues.push({\n\t\t\t\tassetId,\n\t\t\t\tmessage: `Reference \"${reference.field}\" points at unknown asset \"${reference.assetId}\".`\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst targetType = library.assets[reference.assetId].type;\n\t\tif (reference.expectedTypes.length > 0 && !reference.expectedTypes.includes(targetType)) issues.push({\n\t\t\tassetId,\n\t\t\tmessage: `Reference \"${reference.field}\" points at \"${reference.assetId}\" of type \"${targetType}\" — expected ${reference.expectedTypes.map((type) => `\"${type}\"`).join(\" or \")}.`\n\t\t});\n\t}\n\tissues.push(...cycleErrors(referencesByAsset));\n\treturn issues;\n}\n/** DFS cycle detection with an explicit stack path; each cycle reported once. */\nfunction cycleErrors(referencesByAsset) {\n\tconst issues = [];\n\tconst finished = /* @__PURE__ */ new Set();\n\tconst reportedCycles = /* @__PURE__ */ new Set();\n\tconst stack = [];\n\tconst onStack = /* @__PURE__ */ new Set();\n\tfunction visit(assetId) {\n\t\tif (finished.has(assetId)) return;\n\t\tif (onStack.has(assetId)) {\n\t\t\tconst cyclePath = [...stack.slice(stack.indexOf(assetId)), assetId];\n\t\t\tconst cycleKey = [...new Set(cyclePath)].sort().join(\"\\0\");\n\t\t\tif (!reportedCycles.has(cycleKey)) {\n\t\t\t\treportedCycles.add(cycleKey);\n\t\t\t\tissues.push({\n\t\t\t\t\tassetId: cyclePath[0],\n\t\t\t\t\tmessage: `Reference cycle: ${cyclePath.map((id) => `\"${id}\"`).join(\" → \")} — references express composition and must stay acyclic.`\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tstack.push(assetId);\n\t\tonStack.add(assetId);\n\t\tfor (const reference of referencesByAsset[assetId] ?? []) if (Object.hasOwn(referencesByAsset, reference.assetId)) visit(reference.assetId);\n\t\tstack.pop();\n\t\tonStack.delete(assetId);\n\t\tfinished.add(assetId);\n\t}\n\tfor (const assetId of Object.keys(referencesByAsset)) visit(assetId);\n\treturn issues;\n}\n/**\n* The transitive reference closure of a set of assets, including the starting\n* set — the assets that must be delivered so the starting set renders as\n* authored. Tolerates cycles and ignores dangling targets (both are reported\n* as errors by `referenceErrors`).\n*/\nfunction referenceClosure(assetIds, referencesByAsset) {\n\tconst closure = /* @__PURE__ */ new Set();\n\tconst pending = [...assetIds];\n\twhile (pending.length > 0) {\n\t\tconst assetId = pending.pop();\n\t\tif (closure.has(assetId) || !Object.hasOwn(referencesByAsset, assetId)) continue;\n\t\tclosure.add(assetId);\n\t\tfor (const reference of referencesByAsset[assetId]) pending.push(reference.assetId);\n\t}\n\treturn closure;\n}\n/**\n* A dependencies-first order over `assetIds` and everything they transitively\n* reference — the build order that lets each entry inline its references from\n* already-built entries. Throws on a cycle (with the cycle path).\n*/\nfunction topologicalReferenceOrder(assetIds, referencesByAsset) {\n\tconst order = [];\n\tconst finished = /* @__PURE__ */ new Set();\n\tconst stack = [];\n\tconst onStack = /* @__PURE__ */ new Set();\n\tfunction visit(assetId) {\n\t\tif (finished.has(assetId) || !Object.hasOwn(referencesByAsset, assetId)) return;\n\t\tif (onStack.has(assetId)) {\n\t\t\tconst cyclePath = [...stack.slice(stack.indexOf(assetId)), assetId];\n\t\t\tthrow new Error(`Reference cycle: ${cyclePath.map((id) => `\"${id}\"`).join(\" → \")} — cannot order entries.`);\n\t\t}\n\t\tstack.push(assetId);\n\t\tonStack.add(assetId);\n\t\tfor (const reference of referencesByAsset[assetId]) visit(reference.assetId);\n\t\tstack.pop();\n\t\tonStack.delete(assetId);\n\t\tfinished.add(assetId);\n\t\torder.push(assetId);\n\t}\n\tfor (const assetId of assetIds) visit(assetId);\n\treturn order;\n}\n//#endregion\n//#region src/lib/core/manifest-membership.ts\n/**\n* Compute the full membership picture from a library and its collected\n* references: for each manifest the explicit members, the passive members\n* (`referenceClosure(explicit) − explicit`) with their via-attribution, and\n* the resulting delivery set.\n*/\nfunction computeLibraryMembership(library, referencesByAsset) {\n\tconst manifestNames = new Set(Object.keys(library.manifests));\n\tfor (const record of Object.values(library.assets)) for (const manifestName of record.manifests) manifestNames.add(manifestName);\n\tconst membership = {};\n\tfor (const manifestName of [...manifestNames].sort(compareCodeUnits)) {\n\t\tconst explicitMemberIds = Object.entries(library.assets).filter(([, record]) => record.manifests.includes(manifestName)).map(([assetId]) => assetId).sort(compareCodeUnits);\n\t\tconst explicitMemberSet = new Set(explicitMemberIds);\n\t\tconst deliveredAssetIds = new Set(explicitMemberIds);\n\t\tconst viaByPassiveAssetId = /* @__PURE__ */ new Map();\n\t\tfor (const explicitMemberId of explicitMemberIds) for (const reachedAssetId of referenceClosure([explicitMemberId], referencesByAsset)) {\n\t\t\tdeliveredAssetIds.add(reachedAssetId);\n\t\t\tif (explicitMemberSet.has(reachedAssetId)) continue;\n\t\t\tconst via = viaByPassiveAssetId.get(reachedAssetId) ?? [];\n\t\t\tvia.push(explicitMemberId);\n\t\t\tviaByPassiveAssetId.set(reachedAssetId, via);\n\t\t}\n\t\tmembership[manifestName] = {\n\t\t\texplicitMemberIds,\n\t\t\tpassiveMembers: [...viaByPassiveAssetId.entries()].map(([assetId, via]) => ({\n\t\t\t\tassetId,\n\t\t\t\tvia\n\t\t\t})).sort((a, b) => compareCodeUnits(a.assetId, b.assetId)),\n\t\t\tdeliveredAssetIds\n\t\t};\n\t}\n\treturn membership;\n}\n/**\n* Every asset delivered by at least one manifest, explicitly or passively —\n* the processing set (assets outside it are inert). An asset is\n* *unreachable* (nothing delivers it) exactly when it is missing here.\n*/\nfunction allDeliveredAssetIds(membership) {\n\tconst delivered = /* @__PURE__ */ new Set();\n\tfor (const manifestMembership of Object.values(membership)) for (const assetId of manifestMembership.deliveredAssetIds) delivered.add(assetId);\n\treturn delivered;\n}\n//#endregion\n//#region src/lib/server/processing/ffmpeg.ts\n/**\n* The ffmpeg/ffprobe toolchain layer: binary resolution (bundled `-static`\n* packages by default, with host-config overrides) and a spawn helper.\n* Since proxies are committed, this toolchain is only needed where\n* assets are authored/processed — host builds and CI never invoke it.\n*/\nfunction ffmpegBinaryPath(config) {\n\tif (config.plugins.video.ffmpegPath) return config.plugins.video.ffmpegPath;\n\tif (!ffmpegStaticPath) throw new Error(\"ffmpeg-static provides no binary for this platform — set \\\"plugins.video.ffmpegPath\\\" in fundus.config.ts.\");\n\treturn ffmpegStaticPath;\n}\nfunction ffprobeBinaryPath(config) {\n\tif (config.plugins.video.ffprobePath) return config.plugins.video.ffprobePath;\n\tif (!path) throw new Error(\"ffprobe-static provides no binary for this platform — set \\\"plugins.video.ffprobePath\\\" in fundus.config.ts.\");\n\treturn path;\n}\n/**\n* Run a toolchain binary with an argument array (never a shell string) and\n* return its stdout. A non-zero exit throws with the stderr tail — ffmpeg\n* writes its diagnostics there.\n*/\nasync function runToolchainBinary(binaryPath, commandArguments) {\n\ttry {\n\t\tconst { stdout } = await promisify(execFile)(binaryPath, commandArguments, {\n\t\t\tencoding: \"utf8\",\n\t\t\tmaxBuffer: 16 * 1024 * 1024\n\t\t});\n\t\treturn stdout;\n\t} catch (cause) {\n\t\tconst failure = cause;\n\t\tconst diagnostics = (failure.stderr ?? failure.message).trim().split(\"\\n\").slice(-12).join(\"\\n\");\n\t\tthrow new Error(`${basename(binaryPath)} exited with code ${failure.code ?? \"unknown\"}:\\n${diagnostics}`);\n\t}\n}\n//#endregion\n//#region src/lib/server/processing/media-probe.ts\n/** Parse ffprobe's JSON output (pure, testable without a binary). */\nfunction parseProbeOutput(json, filePath) {\n\tconst output = JSON.parse(json);\n\tconst videoStream = output.streams?.find((stream) => stream.codec_type === \"video\" && stream.width && stream.height);\n\tconst durationSeconds = Number(output.format?.duration ?? output.streams?.find((stream) => stream.duration)?.duration);\n\tif (!Number.isFinite(durationSeconds)) throw new Error(`Could not read the media duration of ${filePath}.`);\n\treturn {\n\t\t...videoStream ? {\n\t\t\twidth: videoStream.width,\n\t\t\theight: videoStream.height\n\t\t} : {},\n\t\tdurationMs: Math.round(durationSeconds * 1e3)\n\t};\n}\nasync function probeMedia(filePath, config) {\n\treturn parseProbeOutput(await runToolchainBinary(ffprobeBinaryPath(config), [\n\t\t\"-v\",\n\t\t\"error\",\n\t\t\"-show_entries\",\n\t\t\"stream=codec_type,width,height,duration:format=duration\",\n\t\t\"-of\",\n\t\t\"json\",\n\t\tfilePath\n\t]), filePath);\n}\n//#endregion\n//#region src/lib/server/processing/audio-processing.ts\n/**\n* The ffmpeg transcode step of the audio plugin: one audio-only proxy per\n* preset (opus/webm or aac/m4a). Deterministic like the video step:\n* metadata stripped, bitexact muxing.\n*/\nvar ENCODER_BY_CODEC = {\n\topus: \"libopus\",\n\taac: \"aac\"\n};\n/** The full ffmpeg argument list for one audio transcode (pure, testable). */\nfunction buildAudioTranscodeArguments(options) {\n\treturn [\n\t\t\"-hide_banner\",\n\t\t\"-loglevel\",\n\t\t\"error\",\n\t\t\"-y\",\n\t\t\"-i\",\n\t\toptions.sourcePath,\n\t\t\"-vn\",\n\t\t\"-c:a\",\n\t\tENCODER_BY_CODEC[options.preset.codec],\n\t\t\"-b:a\",\n\t\t`${options.preset.bitrateKbps}k`,\n\t\t\"-map_metadata\",\n\t\t\"-1\",\n\t\t\"-fflags\",\n\t\t\"+bitexact\",\n\t\t\"-flags:a\",\n\t\t\"+bitexact\",\n\t\toptions.targetPath\n\t];\n}\nasync function processAudioFile(options) {\n\tawait mkdir(dirname(options.targetPath), { recursive: true });\n\tawait runToolchainBinary(ffmpegBinaryPath(options.config), buildAudioTranscodeArguments({\n\t\tsourcePath: options.sourcePath,\n\t\ttargetPath: options.targetPath,\n\t\tpreset: options.preset\n\t}));\n\treturn { durationMs: (await probeMedia(options.targetPath, options.config)).durationMs };\n}\n//#endregion\n//#region src/lib/server/plugins/config.ts\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\nfunction mergePresets(options) {\n\tconst { label, builtIn, pluginConfig, validatePreset } = options;\n\tconst merged = { ...builtIn };\n\tif (pluginConfig === void 0) return merged;\n\tif (!isRecord(pluginConfig)) throw new Error(`fundus.config: \"plugins.${label}\" must be an object.`);\n\tif (pluginConfig.presets === void 0) return merged;\n\tif (!isRecord(pluginConfig.presets)) throw new Error(`fundus.config: \"plugins.${label}.presets\" must be an object.`);\n\tfor (const [name, preset] of Object.entries(pluginConfig.presets)) merged[name] = validatePreset(name, preset);\n\treturn merged;\n}\nfunction binaryPathOverride(options) {\n\tconst { projectRoot, pluginConfig, label, key } = options;\n\tif (!isRecord(pluginConfig) || pluginConfig[key] === void 0) return null;\n\tconst value = pluginConfig[key];\n\tif (typeof value !== \"string\" || value.length === 0) throw new Error(`fundus.config: \"plugins.${label}.${key}\" must be a non-empty string.`);\n\treturn isAbsolute(value) ? value : resolve(projectRoot, value);\n}\n//#endregion\n//#region src/lib/server/plugins/contract.ts\n/** Resolve a named preset out of a plugin's merged preset map, or throw listing the known names. */\nfunction resolveNamedPreset(label, presetName, presets) {\n\tconst preset = presets[presetName];\n\tif (!preset) throw new Error(`Unknown ${label} preset \"${presetName}\" (known: ${Object.keys(presets).sort().join(\", \")}).`);\n\treturn preset;\n}\n/** A proxy-info field a given entry kind cannot do without. */\nfunction requireProxyField(proxy, field) {\n\tconst value = proxy[field];\n\tif (value === void 0) throw new Error(`Proxy info of \"${proxy.assetId}\" is missing \"${field}\".`);\n\treturn value;\n}\n//#endregion\n//#region src/lib/server/processing/video-processing.ts\n/**\n* The ffmpeg transcode step shared by the video and chroma-key-video plugins\n* (chroma-key-video builds on video's processing; its keying data is\n* entry-only and never reaches ffmpeg). Deterministic output: all\n* metadata is stripped and bitexact muxing is forced, so re-running a job\n* yields byte-identical proxy files.\n*/\n/**\n* The delivered width the scale filter must produce, or null when no filter is\n* needed. `maxWidth` is a downscale-only cap; yuv420p demands even dimensions,\n* so an odd (capped or source) width rounds down and an odd source height\n* forces a filter even without a cap (the `-2` idiom rounds it).\n*/\nfunction videoScaleWidth(sourceWidth, sourceHeight, maxWidth) {\n\tconst cappedWidth = maxWidth !== void 0 ? Math.min(maxWidth, sourceWidth) : sourceWidth;\n\tconst evenWidth = Math.max(2, cappedWidth - cappedWidth % 2);\n\tif (evenWidth === sourceWidth && sourceHeight % 2 === 0) return null;\n\treturn evenWidth;\n}\n/**\n* The full ffmpeg argument list for one video transcode (pure, testable\n* without a binary). `-map_metadata -1` + bitexact flags keep the output\n* byte-stable across runs (no embedded timestamps or encoder version tags);\n* a source audio track is kept (re-encoded as AAC — a UI video may carry\n* sound; nothing is stripped silently).\n*/\nfunction buildVideoTranscodeArguments(options) {\n\tconst { sourcePath, targetPath, preset, scaleWidth } = options;\n\treturn [\n\t\t\"-hide_banner\",\n\t\t\"-loglevel\",\n\t\t\"error\",\n\t\t\"-y\",\n\t\t\"-i\",\n\t\tsourcePath,\n\t\t...scaleWidth !== null ? [\"-vf\", `scale=${scaleWidth}:-2`] : [],\n\t\t\"-c:v\",\n\t\t\"libx264\",\n\t\t\"-preset\",\n\t\tpreset.encoderPreset,\n\t\t...preset.tune !== void 0 ? [\"-tune\", preset.tune] : [],\n\t\t\"-crf\",\n\t\tString(preset.crf),\n\t\t\"-pix_fmt\",\n\t\tpreset.pixelFormat,\n\t\t\"-c:a\",\n\t\t\"aac\",\n\t\t\"-b:a\",\n\t\t\"128k\",\n\t\t\"-map_metadata\",\n\t\t\"-1\",\n\t\t\"-fflags\",\n\t\t\"+bitexact\",\n\t\t\"-flags:v\",\n\t\t\"+bitexact\",\n\t\t\"-flags:a\",\n\t\t\"+bitexact\",\n\t\t\"-movflags\",\n\t\t\"+faststart\",\n\t\ttargetPath\n\t];\n}\nasync function processVideoFile(options) {\n\tawait mkdir(dirname(options.targetPath), { recursive: true });\n\tconst source = await probeMedia(options.sourcePath, options.config);\n\tif (source.width === void 0 || source.height === void 0) throw new Error(`${options.sourcePath} has no video stream.`);\n\tconst scaleWidth = videoScaleWidth(source.width, source.height, options.maxWidth);\n\tawait runToolchainBinary(ffmpegBinaryPath(options.config), buildVideoTranscodeArguments({\n\t\tsourcePath: options.sourcePath,\n\t\ttargetPath: options.targetPath,\n\t\tpreset: options.preset,\n\t\tscaleWidth\n\t}));\n\tconst output = await probeMedia(options.targetPath, options.config);\n\tif (output.width === void 0 || output.height === void 0) throw new Error(`Transcoding ${options.sourcePath} produced no video stream.`);\n\treturn {\n\t\twidth: output.width,\n\t\theight: output.height,\n\t\tdurationMs: output.durationMs\n\t};\n}\n//#endregion\n//#region src/lib/server/plugins/video.ts\n/**\n* Video plugin (server part): one ffmpeg transcode per preset.\n*/\nvar videoConfigDefinition = {\n\tnamespace: \"video\",\n\tresolve: ({ projectRoot, value }) => ({\n\t\tpresets: mergePresets({\n\t\t\tlabel: \"video\",\n\t\t\tbuiltIn: VIDEO_BUILT_IN_PRESETS,\n\t\t\tpluginConfig: value,\n\t\t\tvalidatePreset: validateVideoPreset\n\t\t}),\n\t\tffmpegPath: binaryPathOverride({\n\t\t\tprojectRoot,\n\t\t\tpluginConfig: value,\n\t\t\tlabel: \"video\",\n\t\t\tkey: \"ffmpegPath\"\n\t\t}),\n\t\tffprobePath: binaryPathOverride({\n\t\t\tprojectRoot,\n\t\t\tpluginConfig: value,\n\t\t\tlabel: \"video\",\n\t\t\tkey: \"ffprobePath\"\n\t\t})\n\t})\n};\nvar videoServerPlugin = {\n\tdescriptor: videoPlugin,\n\tconfigDefinitions: [videoConfigDefinition],\n\tpluginConfig: (config) => config.plugins.video,\n\tpresets: (config) => config.plugins.video.presets,\n\tresolvePreset: (parameters, config) => resolveNamedPreset(\"video\", parameters.preset, config.plugins.video.presets),\n\tproxyExtension: (preset) => preset.container,\n\tprocess: (job) => processVideoFile({\n\t\tsourcePath: job.sourcePath,\n\t\ttargetPath: job.targetPath,\n\t\tpreset: job.preset,\n\t\tmaxWidth: job.parameters.maxWidth,\n\t\tconfig: job.config\n\t}),\n\treadProxyInfo: (proxyPath, config) => probeMedia(proxyPath, config),\n\tbuildManifestEntry: ({ src, proxy }) => ({\n\t\tkind: \"video\",\n\t\tsrc,\n\t\twidth: requireProxyField(proxy, \"width\"),\n\t\theight: requireProxyField(proxy, \"height\"),\n\t\tdurationMs: requireProxyField(proxy, \"durationMs\")\n\t})\n};\nvar audioServerPlugin = {\n\tdescriptor: audioPlugin,\n\tconfigDefinitions: [{\n\t\tnamespace: \"audio\",\n\t\tresolve: ({ value }) => ({ presets: mergePresets({\n\t\t\tlabel: \"audio\",\n\t\t\tbuiltIn: AUDIO_BUILT_IN_PRESETS,\n\t\t\tpluginConfig: value,\n\t\t\tvalidatePreset: validateAudioPreset\n\t\t}) })\n\t}, videoConfigDefinition],\n\tpluginConfig: (config) => config.plugins.audio,\n\tpresets: (config) => config.plugins.audio.presets,\n\tresolvePreset: (parameters, config) => resolveNamedPreset(\"audio\", parameters.preset, config.plugins.audio.presets),\n\tproxyExtension: (preset) => preset.container,\n\tprocess: (job) => processAudioFile({\n\t\tsourcePath: job.sourcePath,\n\t\ttargetPath: job.targetPath,\n\t\tpreset: job.preset,\n\t\tconfig: job.config\n\t}),\n\treadProxyInfo: (proxyPath, config) => probeMedia(proxyPath, config),\n\tbuildManifestEntry: ({ src, proxy }) => ({\n\t\tkind: \"audio\",\n\t\tsrc,\n\t\tdurationMs: requireProxyField(proxy, \"durationMs\")\n\t})\n};\n//#endregion\n//#region src/lib/server/plugins/chroma-key-video.ts\n/**\n* Chroma-key-video plugin (server part): shares the video plugin's transcode\n* pipeline and preset namespace — the keying parameters and the\n* mask/fallback references never reach ffmpeg, they are entry-only data\n* (the descriptor's `processingParameters` keeps them out of the job hash).\n*/\nvar chromaKeyVideoServerPlugin = {\n\tdescriptor: chromaKeyVideoPlugin,\n\tconfigDefinitions: [videoConfigDefinition],\n\tpluginConfig: (config) => config.plugins.video,\n\tpresets: (config) => config.plugins.video.presets,\n\tresolvePreset: (parameters, config) => resolveNamedPreset(\"video\", parameters.preset, config.plugins.video.presets),\n\tproxyExtension: (preset) => preset.container,\n\tprocess: (job) => processVideoFile({\n\t\tsourcePath: job.sourcePath,\n\t\ttargetPath: job.targetPath,\n\t\tpreset: job.preset,\n\t\tmaxWidth: job.parameters.maxWidth,\n\t\tconfig: job.config\n\t}),\n\treadProxyInfo: (proxyPath, config) => probeMedia(proxyPath, config),\n\tbuildManifestEntry: ({ parameters, src, proxy }) => ({\n\t\tkind: \"chroma-key-video\",\n\t\tsrc,\n\t\twidth: requireProxyField(proxy, \"width\"),\n\t\theight: requireProxyField(proxy, \"height\"),\n\t\tdurationMs: requireProxyField(proxy, \"durationMs\"),\n\t\tchromaKey: parameters.chromaKey,\n\t\t...parameters.mask ? { mask: parameters.mask } : {},\n\t\t...parameters.fallback ? { fallback: parameters.fallback } : {}\n\t})\n};\n//#endregion\n//#region src/lib/server/processing/image-processing.ts\n/**\n* The sharp step shared by the image and slice plugins: optional resize to a\n* target width, format conversion per preset, write the proxy file. Returns\n* the delivered (post-resize) dimensions.\n*/\nasync function processImageFile(options) {\n\tawait mkdir(dirname(options.targetPath), { recursive: true });\n\tlet pipeline = sharp(options.sourcePath);\n\tif (options.targetWidth !== void 0) pipeline = pipeline.resize({ width: options.targetWidth });\n\tpipeline = pipeline.toFormat(options.preset.format, options.preset.quality !== void 0 ? { quality: options.preset.quality } : {});\n\tconst info = await pipeline.toFile(options.targetPath);\n\treturn {\n\t\twidth: info.width,\n\t\theight: info.height\n\t};\n}\n/** Pixel dimensions of an existing image file (for already-fresh proxies). */\nasync function readImageDimensions(filePath) {\n\tconst metadata = await sharp(filePath).metadata();\n\tif (typeof metadata.width !== \"number\" || typeof metadata.height !== \"number\") throw new Error(`Could not read image dimensions of ${filePath}.`);\n\treturn {\n\t\twidth: metadata.width,\n\t\theight: metadata.height\n\t};\n}\n//#endregion\n//#region src/lib/server/plugins/image.ts\n/**\n* Image plugin (server part): sharp scale + convert per preset.\n*/\nvar imageConfigDefinition = {\n\tnamespace: \"image\",\n\tresolve: ({ value }) => ({ presets: mergePresets({\n\t\tlabel: \"image\",\n\t\tbuiltIn: IMAGE_BUILT_IN_PRESETS,\n\t\tpluginConfig: value,\n\t\tvalidatePreset: validateImagePreset\n\t}) })\n};\n/** The delivered file extension of an image-preset format. */\nfunction extensionForImageFormat(format) {\n\treturn format === \"jpeg\" ? \"jpg\" : format;\n}\nvar imageServerPlugin = {\n\tdescriptor: imagePlugin,\n\tconfigDefinitions: [imageConfigDefinition],\n\tpluginConfig: (config) => config.plugins.image,\n\tpresets: (config) => config.plugins.image.presets,\n\tresolvePreset: (parameters, config) => resolveNamedPreset(\"image\", parameters.preset, config.plugins.image.presets),\n\tproxyExtension: (preset) => extensionForImageFormat(preset.format),\n\tprocess: (job) => processImageFile({\n\t\tsourcePath: job.sourcePath,\n\t\ttargetPath: job.targetPath,\n\t\tpreset: job.preset,\n\t\ttargetWidth: job.parameters.targetWidth\n\t}),\n\treadProxyInfo: (proxyPath) => readImageDimensions(proxyPath),\n\tbuildManifestEntry: ({ src, proxy }) => ({\n\t\tkind: \"image\",\n\t\tsrc,\n\t\twidth: requireProxyField(proxy, \"width\"),\n\t\theight: requireProxyField(proxy, \"height\")\n\t})\n};\n//#endregion\n//#region src/lib/server/plugins/slice.ts\n/**\n* Slice plugin (server part): the same sharp conversion as the image plugin,\n* never resized — insets are authored in source pixels, so the delivered proxy\n* keeps the source dimensions. The slicing data is entry-only.\n*/\nvar sliceConfigDefinition = {\n\tnamespace: \"slice\",\n\tresolve: ({ value }) => ({ presets: mergePresets({\n\t\tlabel: \"slice\",\n\t\tbuiltIn: SLICE_BUILT_IN_PRESETS,\n\t\tpluginConfig: value,\n\t\tvalidatePreset: validateImagePreset\n\t}) })\n};\nfunction hasAnySide(insets) {\n\tif (!insets) return false;\n\treturn insets.top > 0 || insets.right > 0 || insets.bottom > 0 || insets.left > 0;\n}\n/**\n* Best-effort guess of the asset's export scale from a `@2x` / `@3x` suffix in\n* the file name (also tolerates `-`/`_` separators, e.g. `dialog-3x.png`).\n* Falls back to 1.\n*/\nfunction detectPixelRatio(fileName) {\n\tconst match = fileName.match(/(?:@|[-_])(\\d)x(?=\\.[^.]*$|$)/i);\n\tconst ratio = match ? Number(match[1]) : 1;\n\treturn ratio >= 1 ? ratio : 1;\n}\nvar sliceServerPlugin = {\n\tdescriptor: slicePlugin,\n\tconfigDefinitions: [sliceConfigDefinition],\n\tpluginConfig: (config) => config.plugins.slice,\n\tpresets: (config) => config.plugins.slice.presets,\n\tresolvePreset: (parameters, config) => resolveNamedPreset(\"slice\", parameters.preset, config.plugins.slice.presets),\n\tproxyExtension: (preset) => extensionForImageFormat(preset.format),\n\tseedIngestParameters: async ({ rawPath, rawFileName, parameters }) => {\n\t\tconst dimensions = await readImageDimensions(rawPath);\n\t\treturn {\n\t\t\t...parameters,\n\t\t\tinsets: defaultInsetsForSize(dimensions.width, dimensions.height),\n\t\t\tpixelRatio: detectPixelRatio(rawFileName)\n\t\t};\n\t},\n\tprocess: (job) => processImageFile({\n\t\tsourcePath: job.sourcePath,\n\t\ttargetPath: job.targetPath,\n\t\tpreset: job.preset\n\t}),\n\treadProxyInfo: (proxyPath) => readImageDimensions(proxyPath),\n\tbuildManifestEntry: ({ parameters, src, proxy }) => {\n\t\treturn {\n\t\t\tkind: \"slice\",\n\t\t\tsrc,\n\t\t\tslicing: {\n\t\t\t\tmode: parameters.mode,\n\t\t\t\tinsets: parameters.insets,\n\t\t\t\tpixelRatio: parameters.pixelRatio,\n\t\t\t\t...hasAnySide(parameters.overdraw) ? { overdraw: parameters.overdraw } : {}\n\t\t\t},\n\t\t\tsourceWidth: requireProxyField(proxy, \"width\"),\n\t\t\tsourceHeight: requireProxyField(proxy, \"height\")\n\t\t};\n\t}\n};\n//#endregion\n//#region src/lib/server/plugins.ts\nvar serverPluginCatalogue = {\n\t[imageServerPlugin.descriptor.type]: imageServerPlugin,\n\t[sliceServerPlugin.descriptor.type]: sliceServerPlugin,\n\t[videoServerPlugin.descriptor.type]: videoServerPlugin,\n\t[chromaKeyVideoServerPlugin.descriptor.type]: chromaKeyVideoServerPlugin,\n\t[audioServerPlugin.descriptor.type]: audioServerPlugin\n};\nvar serverPluginsByType = plugins.project(serverPluginCatalogue, \"server implementation\");\nfunction serverPluginForType(type, registry = serverPluginsByType) {\n\tconst plugin = registry[type];\n\tif (!plugin) throw new Error(`Unknown asset type \"${type}\" (known: ${Object.keys(registry).sort().join(\", \")}).`);\n\treturn plugin;\n}\n/** The core-descriptor view of a registry — what core's reference/graph helpers consume. */\nfunction descriptorsByType(registry) {\n\treturn Object.fromEntries(Object.entries(registry).map(([type, plugin]) => [type, plugin.descriptor]));\n}\ndescriptorsByType(serverPluginsByType);\n/**\n* The job-hash parameter input for an asset: the plugin-declared\n* processing-relevant subset when the plugin distinguishes one (chroma-key-\n* video: keying + references are entry-only), else the full parameter value.\n*/\nfunction processingParametersOf(plugin, parameters) {\n\treturn plugin.processingParameters ? plugin.processingParameters(parameters) : parameters;\n}\n//#endregion\n//#region src/lib/server/codegen.ts\n/**\n* Manifest module codegen: one `<manifest-name-kebab>.generated.ts`\n* per manifest in the configured manifests directory, containing data only —\n* entries constructed through the runtime's `createManifest`. Deterministic:\n* sorted asset ids, fixed property order, tab indentation. Generated modules\n* for deleted manifests are removed (only files carrying the fundus header).\n*/\nvar GENERATED_HEADER = \"// generated by fundus — do not edit\\n\";\n/** `mainCatalog` → `main-catalog`. */\nfunction kebabCaseFromCamel(name) {\n\treturn name.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n/** Generated module file name for a manifest. */\nfunction manifestModuleFileName(manifestName) {\n\treturn `${kebabCaseFromCamel(manifestName)}.generated.ts`;\n}\n/**\n* Build the entry data codegen emits for one asset — delegated to\n* the owning server plugin's `buildManifestEntry`. Reference fields\n* (chroma-key-video's mask/fallback) stay `{ $asset }` markers here — the\n* generic `inlineAssetReferences` walk resolves them.\n*/\nfunction manifestEntryForAsset(record, proxy, config, registry = serverPluginsByType) {\n\tconst plugin = serverPluginForType(record.type, registry);\n\treturn plugin.buildManifestEntry({\n\t\tassetId: proxy.assetId,\n\t\tparameters: plugin.descriptor.validateParameters(record.parameters),\n\t\tsrc: `${config.proxyBasePath}${proxy.relativePath.split(\"/\").map(encodeURIComponent).join(\"/\")}`,\n\t\tproxy\n\t});\n}\n/**\n* Replace every `{ $asset }` marker in a built entry with the referenced\n* asset's own (already inlined) entry data. Codegen inlines the\n* resolved reference, so the runtime never resolves ids. Generic deep walk;\n* plugin entry builders stay reference-unaware.\n*/\nfunction inlineAssetReferences(value, resolveEntry) {\n\treturn inlineValue(value, resolveEntry);\n}\nfunction inlineValue(value, resolveEntry) {\n\tif (isAssetReference(value)) return resolveEntry(value.$asset);\n\tif (Array.isArray(value)) return value.map((element) => inlineValue(element, resolveEntry));\n\tif (typeof value === \"object\" && value !== null) {\n\t\tconst inlined = {};\n\t\tfor (const [key, nested] of Object.entries(value)) inlined[key] = inlineValue(nested, resolveEntry);\n\t\treturn inlined;\n\t}\n\treturn value;\n}\n/**\n* Build the entries for one manifest from its membership picture: the whole\n* delivery set (explicit ∪ passive members — the shared membership\n* computation) in dependency order (the closure is a DAG — a\n* cycle throws), each entry's markers inlined from the already-built entries.\n* Only the explicit members appear top-level — they are the manifest's API\n* surface; passive members exist solely inlined.\n*/\nfunction buildManifestEntries(options) {\n\tconst buildEntry = options.entryBuilder ?? ((assetId, record, proxy, config) => manifestEntryForAsset(record, proxy, config, options.registry));\n\tconst buildOrder = topologicalReferenceOrder(options.membership.deliveredAssetIds, options.referencesByAsset);\n\tconst builtEntries = {};\n\tconst resolveEntry = (assetId) => {\n\t\tif (!Object.hasOwn(builtEntries, assetId)) throw new Error(`Cannot inline reference to \"${assetId}\" — no entry was built for it.`);\n\t\treturn builtEntries[assetId];\n\t};\n\tfor (const assetId of buildOrder) {\n\t\tif (!Object.hasOwn(options.library.assets, assetId)) throw new Error(`Cannot build an entry for unknown asset \"${assetId}\".`);\n\t\tconst proxy = options.proxies[assetId];\n\t\tif (!proxy) throw new Error(`No proxy info for asset \"${assetId}\". Run processing before codegen.`);\n\t\tbuiltEntries[assetId] = inlineAssetReferences(buildEntry(assetId, options.library.assets[assetId], proxy, options.config), resolveEntry);\n\t}\n\tconst memberEntries = {};\n\tfor (const assetId of options.membership.explicitMemberIds) memberEntries[assetId] = builtEntries[assetId];\n\treturn memberEntries;\n}\n/** Render one generated manifest module. */\nfunction renderManifestModule(manifestName, entries) {\n\tconst assetIds = Object.keys(entries).sort(compareCodeUnits);\n\treturn `${GENERATED_HEADER}import { createManifest } from 'fundus';\\n\\n${assetIds.length === 0 ? `export const ${manifestName} = createManifest({});` : `export const ${manifestName} = createManifest({\\n` + assetIds.map((assetId) => {\n\t\treturn `\\t${assetId}: ${JSON.stringify(entries[assetId], null, \"\t\").replace(/\\n/g, \"\\n\t\")}`;\n\t}).join(\",\\n\") + `\\n});`}\\n`;\n}\n/** Fundus-owned generated modules not present in the expected file-name set. */\nasync function strayGeneratedModuleNames(manifestsDir, expectedFileNames) {\n\tlet fileNames;\n\ttry {\n\t\tfileNames = await readdir(manifestsDir);\n\t} catch (cause) {\n\t\tif (cause.code === \"ENOENT\") return [];\n\t\tthrow cause;\n\t}\n\tconst strayNames = [];\n\tfor (const fileName of fileNames) {\n\t\tif (!fileName.endsWith(\".generated.ts\") || expectedFileNames.has(fileName)) continue;\n\t\tif ((await readFile(join(manifestsDir, fileName), \"utf8\")).startsWith(\"// generated by fundus — do not edit\\n\")) strayNames.push(fileName);\n\t}\n\treturn strayNames.sort(compareCodeUnits);\n}\n/**\n* Write one module per manifest and remove generated modules whose manifest is\n* gone. Only files starting with the fundus header are ever removed, so other\n* generated files co-located in the directory stay untouched.\n*/\nasync function generateManifestModules(config, library, proxies, registry = serverPluginsByType) {\n\tawait mkdir(config.manifestsDir, { recursive: true });\n\tconst report = {\n\t\twritten: [],\n\t\tremoved: []\n\t};\n\tconst expectedFileNames = /* @__PURE__ */ new Set();\n\tconst namesByFileName = /* @__PURE__ */ new Map();\n\tfor (const manifestName of Object.keys(library.manifests)) {\n\t\tconst fileName = manifestModuleFileName(manifestName);\n\t\tnamesByFileName.set(fileName, [...namesByFileName.get(fileName) ?? [], manifestName]);\n\t}\n\tfor (const [fileName, manifestNames] of namesByFileName) if (manifestNames.length > 1) throw new Error(`Manifests ${manifestNames.map((name) => `\"${name}\"`).join(\" and \")} would both generate \"${fileName}\" — rename one so the kebab-case module names stay distinct.`);\n\tconst referencesByAsset = collectAllReferences(library, descriptorsByType(registry));\n\tconst membershipByManifest = computeLibraryMembership(library, referencesByAsset);\n\tconst renderedModules = [];\n\tfor (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) {\n\t\tconst entries = buildManifestEntries({\n\t\t\tmembership: membershipByManifest[manifestName],\n\t\t\tlibrary,\n\t\t\tproxies,\n\t\t\tconfig,\n\t\t\treferencesByAsset,\n\t\t\tregistry\n\t\t});\n\t\tconst fileName = manifestModuleFileName(manifestName);\n\t\texpectedFileNames.add(fileName);\n\t\trenderedModules.push({\n\t\t\tfileName,\n\t\t\tcontent: renderManifestModule(manifestName, entries)\n\t\t});\n\t}\n\tfor (const { fileName, content } of renderedModules) {\n\t\tawait writeFile(join(config.manifestsDir, fileName), content);\n\t\treport.written.push(fileName);\n\t}\n\tfor (const fileName of await strayGeneratedModuleNames(config.manifestsDir, expectedFileNames)) {\n\t\tawait unlink(join(config.manifestsDir, fileName));\n\t\treport.removed.push(fileName);\n\t}\n\treturn report;\n}\n/**\n* First 8 hex chars of sha256 over rawHash + canonical parameters + pipeline\n* version — the `<jobHash>` segment of a proxy file name.\n*/\nfunction jobHash(rawHash, parameters, pipelineVersion = 1) {\n\treturn createHash(\"sha256\").update(rawHash + canonicalizeParameters(parameters) + String(pipelineVersion)).digest(\"hex\").slice(0, 8);\n}\n//#endregion\n//#region src/lib/server/folder-filesystem.ts\nasync function ensureManagedFolder(root, folder) {\n\tconst directory = join(root, folder);\n\tawait mkdir(directory, { recursive: true });\n\tif (folder === \"\") return;\n\tconst sentinel = join(directory, FOLDER_SENTINEL);\n\tif (!existsSync(sentinel)) await writeFile(sentinel, \"\");\n}\nasync function syncManagedFolders(config, library) {\n\tawait Promise.all(library.folders.flatMap((folder) => [ensureManagedFolder(config.rawDir, folder), ensureManagedFolder(config.proxyDir, folder)]));\n}\n/** Recursively list files as POSIX-style paths relative to `root`. */\nasync function listRelativeFiles(root, folder = \"\") {\n\tconst directory = join(root, folder);\n\tif (!existsSync(directory)) return [];\n\tconst result = [];\n\tfor (const entry of await readdir(directory, { withFileTypes: true })) {\n\t\tconst relativePath = folder === \"\" ? entry.name : `${folder}/${entry.name}`;\n\t\tif (entry.isDirectory()) result.push(...await listRelativeFiles(root, relativePath));\n\t\telse if (entry.isFile()) result.push(relativePath);\n\t}\n\treturn result;\n}\nfunction encodeRelativePathForUrl(path) {\n\treturn path.split(\"/\").map(encodeURIComponent).join(\"/\");\n}\n//#endregion\n//#region src/lib/server/raw-reconciliation.ts\nfunction objectIdentity(value) {\n\treturn `${value.dev}:${value.ino}:${value.mode}`;\n}\nfunction fileIdentity(value) {\n\treturn `${objectIdentity(value)}:${value.size}:${value.mtimeNs}:${value.ctimeNs}`;\n}\nfunction pathMatchesHandle(pathStat, handleStat) {\n\treturn pathStat.isFile() && objectIdentity(pathStat) === objectIdentity(handleStat);\n}\n/** Hash one regular file without following its final path component. */\nasync function stableRawFileHash(path) {\n\tlet lastProblem;\n\tfor (let attempt = 0; attempt < 3; attempt++) try {\n\t\tconst handle = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW);\n\t\ttry {\n\t\t\tconst before = await handle.stat({ bigint: true });\n\t\t\tconst pathBefore = await lstat(path, { bigint: true });\n\t\t\tif (!before.isFile() || !pathMatchesHandle(pathBefore, before)) throw new Error(\"path is not the opened regular file\");\n\t\t\tconst hash = createHash(\"sha256\");\n\t\t\tfor await (const chunk of handle.createReadStream({ autoClose: false })) hash.update(chunk);\n\t\t\tconst after = await handle.stat({ bigint: true });\n\t\t\tconst pathAfter = await lstat(path, { bigint: true });\n\t\t\tif (fileIdentity(before) === fileIdentity(after) && pathMatchesHandle(pathAfter, after)) return hash.digest(\"hex\");\n\t\t\tlastProblem = /* @__PURE__ */ new Error(\"changed while it was being hashed\");\n\t\t} finally {\n\t\t\tawait handle.close().catch(() => {});\n\t\t}\n\t} catch (cause) {\n\t\tlastProblem = cause;\n\t}\n\tthrow lastProblem instanceof Error ? lastProblem : new Error(String(lastProblem));\n}\nasync function verifyStableRawFile(path, expectedHash) {\n\tconst actualHash = await stableRawFileHash(path);\n\tif (actualHash !== expectedHash) throw new Error(`Raw source changed (expected ${expectedHash}, found ${actualHash}).`);\n}\n/** Enumerate without following symlinks and retain structural scan completeness. */\nasync function scanRawDirectory(rawDir, includeFile = () => true) {\n\tconst files = [];\n\tconst blockers = [];\n\tconst diagnostics = [];\n\tconst occupiedPaths = /* @__PURE__ */ new Set();\n\tconst entryKinds = /* @__PURE__ */ new Map();\n\tconst ignoredRegularPaths = [];\n\tlet complete = true;\n\tfunction markIncomplete(path, reason) {\n\t\tcomplete = false;\n\t\tdiagnostics.push({\n\t\t\tpath,\n\t\t\treason\n\t\t});\n\t}\n\tasync function visit(folder) {\n\t\tconst absolutePath = join(rawDir, folder);\n\t\tlet before;\n\t\ttry {\n\t\t\tbefore = await lstat(absolutePath, { bigint: true });\n\t\t} catch (cause) {\n\t\t\tmarkIncomplete(folder, `${folder === \"\" ? \"Raw directory\" : `Directory \"${folder}\"`} cannot be read: ${cause instanceof Error ? cause.message : String(cause)}`);\n\t\t\treturn;\n\t\t}\n\t\tif (!before.isDirectory() || before.isSymbolicLink()) {\n\t\t\tmarkIncomplete(folder, `${folder === \"\" ? \"Raw directory\" : `Directory \"${folder}\"`} is not a regular directory.`);\n\t\t\treturn;\n\t\t}\n\t\tlet entries;\n\t\ttry {\n\t\t\tentries = await readdir(absolutePath, { withFileTypes: true });\n\t\t} catch (cause) {\n\t\t\tmarkIncomplete(folder, `${folder === \"\" ? \"Raw directory\" : `Directory \"${folder}\"`} cannot be traversed: ${cause instanceof Error ? cause.message : String(cause)}`);\n\t\t\treturn;\n\t\t}\n\t\tfor (const entry of entries.sort((a, b) => compareCodeUnits(a.name, b.name))) {\n\t\t\tconst path = folder === \"\" ? entry.name : `${folder}/${entry.name}`;\n\t\t\tif (entry.name === \".gitkeep\" || isFundusTransactionName(entry.name)) continue;\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\toccupiedPaths.add(path);\n\t\t\t\tentryKinds.set(path, \"directory\");\n\t\t\t\tconst problem = folderPathError(path);\n\t\t\t\tif (problem) blockers.push({\n\t\t\t\t\tpath,\n\t\t\t\t\treason: problem\n\t\t\t\t});\n\t\t\t\telse await visit(path);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (entry.isFile()) {\n\t\t\t\tif (!includeFile(path)) {\n\t\t\t\t\tignoredRegularPaths.push(path);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\toccupiedPaths.add(path);\n\t\t\t\tentryKinds.set(path, \"file\");\n\t\t\t\tconst problem = rawFilePathError(path);\n\t\t\t\tif (problem) {\n\t\t\t\t\tblockers.push({\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\treason: problem\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tfiles.push({\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\thash: await stableRawFileHash(join(rawDir, path))\n\t\t\t\t\t});\n\t\t\t\t} catch (cause) {\n\t\t\t\t\tblockers.push({\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\treason: `Could not obtain a stable file hash: ${cause instanceof Error ? cause.message : String(cause)}`\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst kind = entry.isSymbolicLink() ? \"symlink\" : \"special\";\n\t\t\toccupiedPaths.add(path);\n\t\t\tentryKinds.set(path, kind);\n\t\t\tblockers.push({\n\t\t\t\tpath,\n\t\t\t\treason: \"Symlinks and special files are not supported.\"\n\t\t\t});\n\t\t}\n\t\ttry {\n\t\t\tconst after = await lstat(absolutePath, { bigint: true });\n\t\t\tif (!after.isDirectory() || objectIdentity(before) !== objectIdentity(after)) markIncomplete(folder, `${folder === \"\" ? \"Raw directory\" : `Directory \"${folder}\"`} changed during traversal.`);\n\t\t} catch (cause) {\n\t\t\tmarkIncomplete(folder, `${folder === \"\" ? \"Raw directory\" : `Directory \"${folder}\"`} changed during traversal: ${cause instanceof Error ? cause.message : String(cause)}`);\n\t\t}\n\t}\n\tawait visit(\"\");\n\tconst collisions = /* @__PURE__ */ new Map();\n\tfor (const path of [...occupiedPaths].sort(compareCodeUnits)) {\n\t\tconst key = portableRawPathKey(path);\n\t\tconst previous = collisions.get(key);\n\t\tif (previous !== void 0 && previous !== path) {\n\t\t\tconst reason = `Raw paths \"${previous}\" and \"${path}\" collide portably.`;\n\t\t\tblockers.push({\n\t\t\t\tpath: previous,\n\t\t\t\treason\n\t\t\t});\n\t\t\tblockers.push({\n\t\t\t\tpath,\n\t\t\t\treason\n\t\t\t});\n\t\t} else collisions.set(key, path);\n\t}\n\tconst blockersByPath = /* @__PURE__ */ new Map();\n\tfor (const blocker of blockers) if (!blockersByPath.has(blocker.path)) blockersByPath.set(blocker.path, blocker);\n\tconst sortedBlockers = [...blockersByPath.values()].sort((a, b) => compareCodeUnits(a.path, b.path));\n\tconst blocked = new Set(sortedBlockers.map((entry) => entry.path));\n\treturn {\n\t\tcomplete,\n\t\tdiagnostics: diagnostics.sort((a, b) => compareCodeUnits(a.path, b.path)),\n\t\tfiles: files.filter((entry) => !blocked.has(entry.path)).sort((a, b) => compareCodeUnits(a.path, b.path)),\n\t\tblockers: sortedBlockers,\n\t\toccupiedPaths,\n\t\tentryKinds,\n\t\tignoredRegularPaths: ignoredRegularPaths.sort(compareCodeUnits)\n\t};\n}\n/** Pure deterministic matching: exact path first, then only 1:1 hash groups. */\nfunction classifyRawFiles(library, scan) {\n\tconst filesByPath = new Map(scan.files.map((file) => [file.path, file]));\n\tconst remainingFiles = new Map(filesByPath);\n\tconst remainingRecords = /* @__PURE__ */ new Map();\n\tconst unchangedAssetIds = [];\n\tconst edited = [];\n\tconst blockers = [...scan.blockers];\n\tconst excludedPrefixes = [];\n\tfor (const assetId of Object.keys(library.assets).sort(compareCodeUnits)) {\n\t\tconst record = library.assets[assetId];\n\t\tconst kind = scan.entryKinds.get(record.raw);\n\t\tif (kind !== void 0 && kind !== \"file\") {\n\t\t\tconst existing = blockers.find((blocker) => blocker.path === record.raw);\n\t\t\tif (existing) existing.assetId = assetId;\n\t\t\telse blockers.push({\n\t\t\t\tassetId,\n\t\t\t\tpath: record.raw,\n\t\t\t\treason: `Managed raw path is occupied by a ${kind}.`\n\t\t\t});\n\t\t\texcludedPrefixes.push(record.raw);\n\t\t\tcontinue;\n\t\t}\n\t\tconst exact = filesByPath.get(record.raw);\n\t\tif (exact) {\n\t\t\tremainingFiles.delete(record.raw);\n\t\t\tif (exact.hash === record.rawHash) unchangedAssetIds.push(assetId);\n\t\t\telse edited.push({\n\t\t\t\tassetId,\n\t\t\t\t...exact\n\t\t\t});\n\t\t} else if (scan.complete && !scan.occupiedPaths.has(record.raw) && !scan.blockers.some((blocker) => record.raw === blocker.path || record.raw.startsWith(`${blocker.path}/`))) remainingRecords.set(assetId, {\n\t\t\tpath: record.raw,\n\t\t\thash: record.rawHash\n\t\t});\n\t}\n\tfor (const path of remainingFiles.keys()) if (excludedPrefixes.some((prefix) => path.startsWith(`${prefix}/`))) remainingFiles.delete(path);\n\tconst recordsByHash = /* @__PURE__ */ new Map();\n\tfor (const [assetId, record] of remainingRecords) recordsByHash.set(record.hash, [...recordsByHash.get(record.hash) ?? [], assetId]);\n\tconst filesByHash = /* @__PURE__ */ new Map();\n\tfor (const file of remainingFiles.values()) filesByHash.set(file.hash, [...filesByHash.get(file.hash) ?? [], file]);\n\tconst moves = [];\n\tif (scan.complete) for (const [hash, assetIds] of recordsByHash) {\n\t\tconst candidates = filesByHash.get(hash) ?? [];\n\t\tif (assetIds.length !== 1 || candidates.length !== 1) continue;\n\t\tconst assetId = assetIds[0];\n\t\tconst file = candidates[0];\n\t\tmoves.push({\n\t\t\tassetId,\n\t\t\tfrom: remainingRecords.get(assetId)?.path ?? \"\",\n\t\t\t...file\n\t\t});\n\t\tremainingRecords.delete(assetId);\n\t\tremainingFiles.delete(file.path);\n\t}\n\tconst blockerKeys = /* @__PURE__ */ new Set();\n\tconst uniqueBlockers = blockers.filter((blocker) => {\n\t\tconst key = `${blocker.assetId ?? \"\"}|${blocker.path}`;\n\t\tif (blockerKeys.has(key)) return false;\n\t\tblockerKeys.add(key);\n\t\treturn true;\n\t});\n\treturn {\n\t\tcomplete: scan.complete,\n\t\tdiagnostics: scan.diagnostics,\n\t\tunchangedAssetIds,\n\t\tedited: edited.sort((a, b) => compareCodeUnits(a.path, b.path)),\n\t\tmoves: scan.complete ? moves.sort((a, b) => compareCodeUnits(a.path, b.path)) : [],\n\t\tdeletions: scan.complete ? [...remainingRecords].map(([assetId, record]) => ({\n\t\t\tassetId,\n\t\t\tpath: record.path\n\t\t})) : [],\n\t\tunmanaged: [...remainingFiles.values()].sort((a, b) => compareCodeUnits(a.path, b.path)),\n\t\tblockers: uniqueBlockers.sort((a, b) => compareCodeUnits(a.path, b.path))\n\t};\n}\nasync function classifyRawDirectory(rawDir, library, includeExternalFile = () => true) {\n\tconst managedPaths = new Set(Object.values(library.assets).map((record) => record.raw));\n\tconst scan = await scanRawDirectory(rawDir, (path) => managedPaths.has(path) || includeExternalFile(path));\n\tconst classification = classifyRawFiles(library, scan);\n\tif (!classification.complete || classification.deletions.length === 0) return classification;\n\tconst ignoredByHash = /* @__PURE__ */ new Map();\n\tfor (const path of scan.ignoredRegularPaths) try {\n\t\tconst hash = await stableRawFileHash(join(rawDir, path));\n\t\tignoredByHash.set(hash, [...ignoredByHash.get(hash) ?? [], path]);\n\t} catch (cause) {\n\t\treturn {\n\t\t\t...classification,\n\t\t\tcomplete: false,\n\t\t\tdiagnostics: [...classification.diagnostics, {\n\t\t\t\tpath,\n\t\t\t\treason: `Could not safely check ignored raw file \"${path}\" while managed files were missing: ${cause instanceof Error ? cause.message : String(cause)}`\n\t\t\t}].sort((a, b) => compareCodeUnits(a.path, b.path)),\n\t\t\tmoves: [],\n\t\t\tdeletions: []\n\t\t};\n\t}\n\tconst missingByHash = /* @__PURE__ */ new Map();\n\tfor (const deletion of classification.deletions) {\n\t\tconst hash = library.assets[deletion.assetId].rawHash;\n\t\tmissingByHash.set(hash, [...missingByHash.get(hash) ?? [], deletion]);\n\t}\n\tconst supportedByHash = /* @__PURE__ */ new Map();\n\tfor (const file of classification.unmanaged) supportedByHash.set(file.hash, [...supportedByHash.get(file.hash) ?? [], file.path]);\n\tconst protectedAssetIds = /* @__PURE__ */ new Set();\n\tconst unsupportedBlockers = [];\n\tconst ambiguityDiagnostics = [];\n\tfor (const [hash, ignoredPaths] of ignoredByHash) {\n\t\tconst missing = missingByHash.get(hash) ?? [];\n\t\tif (missing.length === 0) continue;\n\t\tconst candidatePaths = [...supportedByHash.get(hash) ?? [], ...ignoredPaths].sort(compareCodeUnits);\n\t\tconst sortedMissing = [...missing].sort((a, b) => compareCodeUnits(a.assetId, b.assetId));\n\t\tif (sortedMissing.length === 1 && ignoredPaths.length === 1 && candidatePaths.length === 1) {\n\t\t\tconst [{ assetId, path: oldPath }] = sortedMissing;\n\t\t\tconst [destination] = ignoredPaths;\n\t\t\tprotectedAssetIds.add(assetId);\n\t\t\tunsupportedBlockers.push({\n\t\t\t\tassetId,\n\t\t\t\tpath: destination,\n\t\t\t\treason: `Asset \"${assetId}\" was moved from \"${oldPath}\" to unsupported path \"${destination}\". Rename it externally to a supported extension.`\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tambiguityDiagnostics.push({\n\t\t\tpath: candidatePaths[0] ?? \"\",\n\t\t\treason: `Ignored raw files ambiguously match missing assets [${sortedMissing.map((entry) => entry.assetId).join(\", \")}] and candidate paths [${candidatePaths.join(\", \")}]. Restore or reduce the external files until the match is unique.`\n\t\t});\n\t}\n\tif (ambiguityDiagnostics.length > 0) return {\n\t\t...classification,\n\t\tcomplete: false,\n\t\tdiagnostics: [...classification.diagnostics, ...ambiguityDiagnostics].sort((a, b) => compareCodeUnits(`${a.path}|${a.reason}`, `${b.path}|${b.reason}`)),\n\t\tmoves: [],\n\t\tdeletions: [],\n\t\tblockers: [...classification.blockers, ...unsupportedBlockers].sort((a, b) => compareCodeUnits(a.path, b.path))\n\t};\n\treturn {\n\t\t...classification,\n\t\tdeletions: classification.deletions.filter((deletion) => !protectedAssetIds.has(deletion.assetId)),\n\t\tblockers: [...classification.blockers, ...unsupportedBlockers].sort((a, b) => compareCodeUnits(a.path, b.path))\n\t};\n}\n//#endregion\n//#region src/lib/server/processing/processor.ts\n/**\n* The processing pipeline: every delivered asset gets exactly one\n* proxy named `<assetId>.<jobHash>.<extension>`. Delivered = explicit or\n* passive member of ≥ 1 manifest (codegen inlines referenced\n* entries, so a passive member's proxy must exist even when the asset is in\n* no manifest itself). Because the name is computable without running the job,\n* staleness is a name check: expected name exists → up to date, else →\n* process. Afterwards, files in the proxy directory that no asset expects are\n* pruned.\n*\n* Type-agnostic: every per-type decision (preset resolution, extension, the\n* sharp/ffmpeg step, proxy probing) lives on the server plugins; this module\n* only consults the registry — which it takes as a parameter, so tests can\n* drive the pipeline with fixture asset types.\n*/\n/** Proxy file name shape; its id segment is pinned to core's asset-id grammar. */\nvar PROXY_FILE_PATTERN = /^[a-z][A-Za-z0-9]*\\.[0-9a-f]{8}\\.[a-z0-9]+$/;\n/** Whether a file name in the proxy directory is (shaped like) a fundus proxy. */\nfunction isProxyFileName(fileName) {\n\treturn PROXY_FILE_PATTERN.test(fileName);\n}\n/** Whether a shaped proxy file belongs to one specific asset id. */\nfunction isProxyFileNameFor(assetId, fileName) {\n\treturn isProxyFileName(fileName) && fileName.startsWith(`${assetId}.`);\n}\n/**\n* The proxy file name an asset's current raw content + parameters demand.\n* Throws when the parameters are invalid or reference an unknown preset.\n*\n* The hash input is the *effective* processing input: the asset's\n* processing-relevant parameters (the plugin-declared subset — entry-only data\n* like chroma-key tuning and references must not rename the proxy)\n* plus the preset's **resolved settings** — parameters only carry the preset\n* *name*, so hashing them alone would keep serving stale proxy bytes after a\n* preset's quality/format is edited in the host config.\n*/\nfunction expectedProxyFileName(assetId, record, config, registry = serverPluginsByType) {\n\tconst plugin = serverPluginForType(record.type, registry);\n\tconst parameters = plugin.descriptor.validateParameters(record.parameters);\n\tconst preset = plugin.resolvePreset(parameters, config);\n\treturn `${assetId}.${jobHash(record.rawHash, {\n\t\tparameters: processingParametersOf(plugin.descriptor, parameters),\n\t\tpresetSettings: preset\n\t})}.${plugin.proxyExtension(preset)}`;\n}\n/** Expected proxy path relative to proxyDir, mirroring the raw asset folder. */\nfunction expectedProxyRelativePath(assetId, record, config, registry = serverPluginsByType) {\n\tconst fileName = expectedProxyFileName(assetId, record, config, registry);\n\tconst folder = folderOfRawPath(record.raw);\n\treturn folder === \"\" ? fileName : `${folder}/${fileName}`;\n}\n/**\n* Output metadata of an existing proxy file, probed per the owning plugin's\n* strategy: image-backed proxies via sharp, media proxies via ffprobe.\n*/\nasync function readProxyOutputInfo(type, proxyPath, config, registry = serverPluginsByType) {\n\treturn serverPluginForType(type, registry).readProxyInfo(proxyPath, config);\n}\n/** Read one asset's current proxy projection, or null when its expected file is absent. */\nasync function readCurrentProxy(assetId, record, config, registry = serverPluginsByType) {\n\tconst fileName = expectedProxyFileName(assetId, record, config, registry);\n\tconst relativePath = expectedProxyRelativePath(assetId, record, config, registry);\n\tconst proxyPath = join(config.proxyDir, relativePath);\n\tif (!existsSync(proxyPath)) return null;\n\tconst [outputInfo, proxyStat] = await Promise.all([readProxyOutputInfo(record.type, proxyPath, config, registry), stat(proxyPath)]);\n\treturn {\n\t\tassetId,\n\t\tfileName,\n\t\trelativePath,\n\t\t...outputInfo,\n\t\tfileSize: proxyStat.size\n\t};\n}\n/**\n* The delivered set: every explicit or passive member of ≥ 1 manifest —\n* derived by the shared membership computation. Assets outside\n* it are inert.\n*/\nfunction deliveredAssetIds(library, registry = serverPluginsByType) {\n\treturn allDeliveredAssetIds(computeLibraryMembership(library, collectAllReferences(library, descriptorsByType(registry))));\n}\n/** Run the owning plugin's processing job for one stale/missing proxy. */\nasync function processAssetFile(record, rawPath, proxyPath, config, registry) {\n\tconst plugin = serverPluginForType(record.type, registry);\n\tconst parameters = plugin.descriptor.validateParameters(record.parameters);\n\tconst extension = extname(proxyPath);\n\tconst stem = basename(proxyPath, extension);\n\tconst temporaryPath = join(dirname(proxyPath), `.${stem}.${crypto.randomUUID()}.tmp${extension}`);\n\ttry {\n\t\tawait verifyStableRawFile(rawPath, record.rawHash);\n\t\tconst output = await plugin.process({\n\t\t\tsourcePath: rawPath,\n\t\t\ttargetPath: temporaryPath,\n\t\t\tparameters,\n\t\t\tpreset: plugin.resolvePreset(parameters, config),\n\t\t\tconfig\n\t\t});\n\t\tawait verifyStableRawFile(rawPath, record.rawHash);\n\t\tawait rename(temporaryPath, proxyPath);\n\t\treturn output;\n\t} catch (cause) {\n\t\tawait unlink(temporaryPath).catch(() => {});\n\t\tthrow cause;\n\t}\n}\n/**\n* Ensure every delivered asset's proxy exists (processing stale/missing ones)\n* and prune orphans. Assets outside the delivered set are skipped entirely.\n*/\nasync function processAssets(config, library, registry = serverPluginsByType) {\n\tconst report = {\n\t\tprocessed: [],\n\t\treused: [],\n\t\tpruned: [],\n\t\tproxies: {}\n\t};\n\tawait mkdir(config.proxyDir, { recursive: true });\n\tawait Promise.all(library.folders.map((folder) => ensureManagedFolder(config.proxyDir, folder)));\n\tconst delivered = deliveredAssetIds(library, registry);\n\tconst expectedRelativePaths = /* @__PURE__ */ new Set();\n\tfor (const [assetId, record] of Object.entries(library.assets)) {\n\t\tif (!delivered.has(assetId)) continue;\n\t\tconst fileName = expectedProxyFileName(assetId, record, config, registry);\n\t\tconst relativePath = expectedProxyRelativePath(assetId, record, config, registry);\n\t\texpectedRelativePaths.add(relativePath);\n\t\tconst proxyPath = join(config.proxyDir, relativePath);\n\t\tconst rawPath = join(config.rawDir, record.raw);\n\t\tawait mkdir(dirname(proxyPath), { recursive: true });\n\t\tlet proxy = await readCurrentProxy(assetId, record, config, registry);\n\t\tif (proxy) report.reused.push(assetId);\n\t\telse {\n\t\t\tif (!existsSync(rawPath)) throw new Error(`Cannot process \"${assetId}\": raw file \"${record.raw}\" is missing.`);\n\t\t\tconst outputInfo = await processAssetFile(record, rawPath, proxyPath, config, registry);\n\t\t\treport.processed.push(assetId);\n\t\t\tconst proxyStat = await stat(proxyPath);\n\t\t\tproxy = {\n\t\t\t\tassetId,\n\t\t\t\tfileName,\n\t\t\t\trelativePath,\n\t\t\t\t...outputInfo,\n\t\t\t\tfileSize: proxyStat.size\n\t\t\t};\n\t\t}\n\t\treport.proxies[assetId] = proxy;\n\t}\n\tfor (const relativePath of await listRelativeFiles(config.proxyDir)) {\n\t\tif (!isProxyFileName(rawFileNameOfPath(relativePath))) continue;\n\t\tif (expectedRelativePaths.has(relativePath)) continue;\n\t\tawait unlink(join(config.proxyDir, relativePath));\n\t\treport.pruned.push(relativePath);\n\t}\n\treport.pruned.sort();\n\treturn report;\n}\n//#endregion\n//#region src/lib/server/library-store.ts\n/**\n* The fs-backed store over the library file (SSOT) and the raw directory.\n* Every mutation is load → modify → deterministic write, so the file on disk\n* is always the current truth. Proxy files are the pipeline's business — this\n* store only removes them on asset deletion (the pipeline also prunes orphans).\n*/\n/** Validate a persisted/served file path without allowing traversal outside its root. */\nfunction assertSafeRelativeFilePath(filePath) {\n\tconst problem = rawFilePathError(filePath);\n\tif (problem) throw new Error(problem);\n}\n/**\n* Turn an arbitrary uploaded file name (spaces, umlauts, parentheses, nested\n* paths) into a safe single segment: strip the directory, transliterate to\n* ASCII-ish, replace runs of disallowed characters with `-`, and lower-case\n* the extension. Never throws for a normal image name.\n*/\nfunction sanitizeFileName(original) {\n\tconst base = original.split(/[\\\\/]/).pop() ?? original;\n\tconst dot = base.lastIndexOf(\".\");\n\tconst rawStem = dot > 0 ? base.slice(0, dot) : base;\n\tconst rawExtension = dot > 0 ? base.slice(dot + 1) : \"\";\n\tlet stem = rawStem.normalize(\"NFKD\").replace(/[^a-zA-Z0-9._-]+/g, \"-\").replace(/-{2,}/g, \"-\").replace(/^[-.]+|[-.]+$/g, \"\");\n\tif (!stem) stem = \"asset\";\n\tif (!/^[a-zA-Z0-9]/.test(stem)) stem = `raw-${stem}`;\n\tconst extension = rawExtension.toLowerCase().replace(/[^a-z0-9]/g, \"\");\n\treturn extension ? `${stem}.${extension}` : stem;\n}\nfunction sha256Hex(bytes) {\n\treturn createHash(\"sha256\").update(bytes).digest(\"hex\");\n}\nvar LibraryStore = class {\n\t#config;\n\t#registry;\n\t#queue = Promise.resolve();\n\tconstructor(config, registry = serverPluginsByType) {\n\t\tthis.#config = config;\n\t\tthis.#registry = registry;\n\t}\n\tget config() {\n\t\treturn this.#config;\n\t}\n\t/** Run a mutation after every previously enqueued one has settled. */\n\t#enqueue(operation) {\n\t\tconst run = this.#queue.then(operation, operation);\n\t\tthis.#queue = run.then(() => {}, () => {});\n\t\treturn run;\n\t}\n\t/** Read + parse the library file; a missing file is an empty library. */\n\tasync read() {\n\t\tif (!existsSync(this.#config.library)) return createEmptyLibrary();\n\t\treturn parseLibrary(await readFile(this.#config.library, \"utf8\"));\n\t}\n\t/** Deterministically serialize + write the library file. */\n\tasync write(library) {\n\t\tawait mkdir(join(this.#config.library, \"..\"), { recursive: true });\n\t\tconst temporaryPath = `${this.#config.library}.tmp`;\n\t\tawait writeFile(temporaryPath, serializeLibrary(library));\n\t\tawait rename(temporaryPath, this.#config.library);\n\t}\n\t/**\n\t* Candidate-first source transaction used for externally-owned raw files.\n\t* The callback runs after entering the store queue and may scan the raw tree;\n\t* Fundus writes only the library candidate and never touches external bytes.\n\t*/\n\tasync transactCandidate(change) {\n\t\treturn this.#enqueue(async () => {\n\t\t\tconst current = await this.read();\n\t\t\tconst before = serializeLibrary(current);\n\t\t\tconst candidate = structuredClone(current);\n\t\t\tconst value = await change(candidate, current);\n\t\t\tconst changed = serializeLibrary(candidate) !== before;\n\t\t\tif (changed) await this.write(candidate);\n\t\t\treturn {\n\t\t\t\tlibrary: candidate,\n\t\t\t\tvalue,\n\t\t\t\tchanged\n\t\t\t};\n\t\t});\n\t}\n\t/** Remove derived proxies after a source record was externally deleted/moved. */\n\tasync deleteProxiesOf(assetId) {\n\t\tawait this.#deleteProxiesOf(assetId);\n\t}\n\t/**\n\t* Ingest a new asset: write the raw file into `rawDir` (under a sanitized,\n\t* non-colliding name), hash its content, and create the library record with\n\t* the owning plugin's default parameters. Returns the updated library.\n\t*/\n\tasync ingest(options) {\n\t\treturn this.#enqueue(() => this.#ingest(options));\n\t}\n\tasync #ingest(options) {\n\t\tconst idProblem = assetIdError(options.id);\n\t\tif (idProblem) throw new Error(idProblem);\n\t\tconst plugin = serverPluginForType(options.type, this.#registry);\n\t\tconst extension = extname(sanitizeFileName(options.fileName)).slice(1).toLowerCase();\n\t\tif (!plugin.descriptor.accepts.includes(extension)) throw new Error(`The ${options.type} type does not accept \".${extension}\" files (accepts: ${plugin.descriptor.accepts.join(\", \")}).`);\n\t\tconst library = await this.read();\n\t\tif (Object.hasOwn(library.assets, options.id)) throw new Error(`An asset with id \"${options.id}\" already exists.`);\n\t\tconst folder = options.folder === void 0 ? \"\" : normalizeFolderPath(options.folder);\n\t\tthis.#requireFolder(library, folder);\n\t\tawait mkdir(join(this.#config.rawDir, folder), { recursive: true });\n\t\tconst storedName = this.#uniqueRawName(sanitizeFileName(options.fileName), folder);\n\t\tconst storedPath = folder === \"\" ? storedName : `${folder}/${storedName}`;\n\t\tawait writeFile(join(this.#config.rawDir, storedPath), options.bytes);\n\t\tconst record = {\n\t\t\ttype: options.type,\n\t\t\traw: storedPath,\n\t\t\trawHash: sha256Hex(options.bytes),\n\t\t\tparameters: plugin.descriptor.defaultParameters(plugin.pluginConfig(this.#config)),\n\t\t\tmanifests: []\n\t\t};\n\t\tlibrary.assets[options.id] = record;\n\t\tawait this.write(library);\n\t\treturn library;\n\t}\n\t/**\n\t* Replace one asset's raw file while preserving its identity and authored\n\t* metadata. The replacement stays in the current folder, receives a safe\n\t* non-colliding name, and must be accepted by the asset's existing type.\n\t*/\n\tasync replaceRawFile(id, options) {\n\t\treturn this.#enqueue(() => this.#replaceRawFile(id, options));\n\t}\n\tasync #replaceRawFile(id, options) {\n\t\tconst library = await this.read();\n\t\tconst record = this.#requireAsset(library, id);\n\t\tconst sanitizedName = sanitizeFileName(options.fileName);\n\t\tconst extension = extname(sanitizedName).slice(1).toLowerCase();\n\t\tconst plugin = serverPluginForType(record.type, this.#registry);\n\t\tif (!plugin.descriptor.accepts.includes(extension)) throw new Error(`The ${record.type} type does not accept \".${extension}\" files (accepts: ${plugin.descriptor.accepts.join(\", \")}).`);\n\t\tconst previousRaw = record.raw;\n\t\tconst previousHash = record.rawHash;\n\t\tconst folder = folderOfRawPath(previousRaw);\n\t\tconst previousName = rawFileNameOfPath(previousRaw);\n\t\tconst storedName = sanitizedName === previousName ? previousName : this.#uniqueRawName(sanitizedName, folder);\n\t\tconst nextRaw = folder === \"\" ? storedName : `${folder}/${storedName}`;\n\t\tconst previousPath = join(this.#config.rawDir, previousRaw);\n\t\tconst nextPath = join(this.#config.rawDir, nextRaw);\n\t\tconst token = crypto.randomUUID();\n\t\tconst temporaryPath = join(this.#config.rawDir, folder, `.fundus-replace-${token}.tmp`);\n\t\tconst backupPath = `${previousPath}.fundus-replace-${token}`;\n\t\tlet previousStaged = false;\n\t\tlet replacementInstalled = false;\n\t\tawait mkdir(dirname(temporaryPath), { recursive: true });\n\t\ttry {\n\t\t\tawait writeFile(temporaryPath, options.bytes);\n\t\t\tif (existsSync(previousPath)) {\n\t\t\t\tawait rename(previousPath, backupPath);\n\t\t\t\tpreviousStaged = true;\n\t\t\t}\n\t\t\tawait rename(temporaryPath, nextPath);\n\t\t\treplacementInstalled = true;\n\t\t\trecord.raw = nextRaw;\n\t\t\trecord.rawHash = sha256Hex(options.bytes);\n\t\t\tawait this.write(library);\n\t\t} catch (cause) {\n\t\t\trecord.raw = previousRaw;\n\t\t\trecord.rawHash = previousHash;\n\t\t\tif (replacementInstalled) await unlink(nextPath).catch(() => {});\n\t\t\tif (previousStaged) await rename(backupPath, previousPath);\n\t\t\tawait unlink(temporaryPath).catch(() => {});\n\t\t\tthrow cause;\n\t\t}\n\t\tif (previousStaged) await unlink(backupPath).catch(() => {});\n\t\treturn library;\n\t}\n\t/** Replace an asset's parameters (validated by the owning plugin). */\n\tasync updateParameters(id, parameters) {\n\t\treturn this.#enqueue(() => this.#updateParameters(id, parameters));\n\t}\n\tasync #updateParameters(id, parameters) {\n\t\tconst library = await this.read();\n\t\tconst record = this.#requireAsset(library, id);\n\t\trecord.parameters = serverPluginForType(record.type, this.#registry).descriptor.validateParameters(parameters);\n\t\tawait this.write(library);\n\t\treturn library;\n\t}\n\t/** Replace an asset's manifest membership (every name must exist). */\n\tasync setManifests(id, manifests) {\n\t\treturn this.#enqueue(() => this.#setManifests(id, manifests));\n\t}\n\tasync #setManifests(id, manifests) {\n\t\tconst library = await this.read();\n\t\tconst record = this.#requireAsset(library, id);\n\t\tconst unique = [...new Set(manifests)];\n\t\tfor (const name of unique) if (!Object.hasOwn(library.manifests, name)) throw new Error(`Unknown manifest \"${name}\".`);\n\t\trecord.manifests = unique.sort();\n\t\tawait this.write(library);\n\t\treturn library;\n\t}\n\t/** Rename an asset id (the raw file keeps its name — ids are the stable key). */\n\tasync renameAsset(id, newId) {\n\t\treturn this.#enqueue(() => this.#renameAsset(id, newId));\n\t}\n\tasync #renameAsset(id, newId) {\n\t\tconst idProblem = assetIdError(newId);\n\t\tif (idProblem) throw new Error(idProblem);\n\t\tconst library = await this.read();\n\t\tconst record = this.#requireAsset(library, id);\n\t\tif (newId === id) return library;\n\t\tif (Object.hasOwn(library.assets, newId)) throw new Error(`An asset with id \"${newId}\" already exists.`);\n\t\tdelete library.assets[id];\n\t\tlibrary.assets[newId] = record;\n\t\tawait this.write(library);\n\t\tawait this.#deleteProxiesOf(id);\n\t\treturn library;\n\t}\n\t/** Move an asset's raw file and current proxies without changing its stable id. */\n\tasync moveAsset(id, folder) {\n\t\treturn this.#enqueue(() => this.#moveAsset(id, folder));\n\t}\n\tasync #moveAsset(id, requestedFolder) {\n\t\tconst folder = normalizeFolderPath(requestedFolder);\n\t\tconst library = await this.read();\n\t\tconst record = this.#requireAsset(library, id);\n\t\tthis.#requireFolder(library, folder);\n\t\tconst currentFolder = folderOfRawPath(record.raw);\n\t\tif (folder === currentFolder) return library;\n\t\tconst fileName = rawFileNameOfPath(record.raw);\n\t\tconst nextRaw = folder === \"\" ? fileName : `${folder}/${fileName}`;\n\t\tconst nextRawPath = join(this.#config.rawDir, nextRaw);\n\t\tif (existsSync(nextRawPath)) throw new Error(`Raw file \"${nextRaw}\" already exists.`);\n\t\tawait ensureManagedFolder(this.#config.rawDir, folder);\n\t\tawait ensureManagedFolder(this.#config.proxyDir, folder);\n\t\tconst movedProxies = [];\n\t\tlet rawMoved = false;\n\t\ttry {\n\t\t\tawait rename(join(this.#config.rawDir, record.raw), nextRawPath);\n\t\t\trawMoved = true;\n\t\t\tfor (const relativePath of await listRelativeFiles(this.#config.proxyDir, currentFolder)) {\n\t\t\t\tif (folderOfRawPath(relativePath) !== currentFolder) continue;\n\t\t\t\tconst proxyFileName = rawFileNameOfPath(relativePath);\n\t\t\t\tif (!isProxyFileNameFor(id, proxyFileName)) continue;\n\t\t\t\tconst nextRelativePath = folder === \"\" ? proxyFileName : `${folder}/${proxyFileName}`;\n\t\t\t\tawait rename(join(this.#config.proxyDir, relativePath), join(this.#config.proxyDir, nextRelativePath));\n\t\t\t\tmovedProxies.push({\n\t\t\t\t\tfrom: relativePath,\n\t\t\t\t\tto: nextRelativePath\n\t\t\t\t});\n\t\t\t}\n\t\t\trecord.raw = nextRaw;\n\t\t\tawait this.write(library);\n\t\t} catch (cause) {\n\t\t\trecord.raw = currentFolder === \"\" ? fileName : `${currentFolder}/${fileName}`;\n\t\t\tfor (const proxy of movedProxies.reverse()) await rename(join(this.#config.proxyDir, proxy.to), join(this.#config.proxyDir, proxy.from));\n\t\t\tif (rawMoved) await rename(nextRawPath, join(this.#config.rawDir, record.raw));\n\t\t\tthrow cause;\n\t\t}\n\t\treturn library;\n\t}\n\tasync createFolder(path) {\n\t\treturn this.#enqueue(() => this.#createFolder(path));\n\t}\n\tasync #createFolder(requestedPath) {\n\t\tconst path = normalizeFolderPath(requestedPath);\n\t\tconst problem = folderPathError(path);\n\t\tif (problem) throw new Error(problem);\n\t\tconst library = await this.read();\n\t\tconst parent = parentFolderPath(path);\n\t\tthis.#requireFolder(library, parent);\n\t\tthis.#assertFolderAvailable(library, path);\n\t\tlibrary.folders.push(path);\n\t\tlibrary.folders.sort();\n\t\tawait Promise.all([ensureManagedFolder(this.#config.rawDir, path), ensureManagedFolder(this.#config.proxyDir, path)]);\n\t\tawait this.write(library);\n\t\treturn library;\n\t}\n\tasync renameFolder(path, newName) {\n\t\treturn this.#enqueue(() => this.#renameFolder(path, newName));\n\t}\n\tasync #renameFolder(requestedPath, requestedName) {\n\t\tconst path = normalizeFolderPath(requestedPath);\n\t\tconst newName = requestedName.normalize(\"NFC\");\n\t\tconst nameProblem = folderNameError(newName);\n\t\tif (nameProblem) throw new Error(nameProblem);\n\t\tconst nextPath = joinFolderPath(parentFolderPath(path), newName);\n\t\treturn this.#relocateFolder(path, nextPath);\n\t}\n\t/** Move a complete folder subtree below another folder (or the implicit root). */\n\tasync moveFolder(path, parent) {\n\t\treturn this.#enqueue(() => this.#moveFolder(path, parent));\n\t}\n\tasync #moveFolder(requestedPath, requestedParent) {\n\t\tconst path = normalizeFolderPath(requestedPath);\n\t\tconst nextPath = joinFolderPath(normalizeFolderPath(requestedParent), folderNameOf(path));\n\t\treturn this.#relocateFolder(path, nextPath);\n\t}\n\tasync #relocateFolder(path, nextPath) {\n\t\tconst library = await this.read();\n\t\tthis.#requireFolder(library, path, false);\n\t\tconst nextParent = parentFolderPath(nextPath);\n\t\tthis.#requireFolder(library, nextParent);\n\t\tif (isFolderOrDescendant(nextParent, path)) throw new Error(`Folder \"${path}\" cannot be moved into itself or one of its descendants.`);\n\t\tif (nextPath === path) return library;\n\t\tthis.#assertFolderAvailable(library, nextPath, path);\n\t\tconst renamedFolders = library.folders.map((folder) => isFolderOrDescendant(folder, path) ? replaceFolderPrefix(folder, path, nextPath) : folder);\n\t\tconst renamedKeys = /* @__PURE__ */ new Set();\n\t\tfor (const folder of renamedFolders) {\n\t\t\tconst key = portableFolderPathKey(folder);\n\t\t\tif (renamedKeys.has(key)) throw new Error(`Folder rename would collide at \"${folder}\".`);\n\t\t\trenamedKeys.add(key);\n\t\t}\n\t\tconst rawFrom = join(this.#config.rawDir, path);\n\t\tconst rawTo = join(this.#config.rawDir, nextPath);\n\t\tconst proxyFrom = join(this.#config.proxyDir, path);\n\t\tconst proxyTo = join(this.#config.proxyDir, nextPath);\n\t\tawait mkdir(join(rawTo, \"..\"), { recursive: true });\n\t\tawait mkdir(join(proxyTo, \"..\"), { recursive: true });\n\t\tconst caseOnly = portableFolderPathKey(path) === portableFolderPathKey(nextPath);\n\t\tconst rawTemporary = caseOnly ? `${rawFrom}.fundus-${crypto.randomUUID()}` : rawFrom;\n\t\tconst proxyTemporary = caseOnly ? `${proxyFrom}.fundus-${crypto.randomUUID()}` : proxyFrom;\n\t\tif (caseOnly) {\n\t\t\tawait rename(rawFrom, rawTemporary);\n\t\t\ttry {\n\t\t\t\tawait rename(proxyFrom, proxyTemporary);\n\t\t\t} catch (cause) {\n\t\t\t\tawait rename(rawTemporary, rawFrom);\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tawait rename(rawTemporary, rawTo);\n\t\t\ttry {\n\t\t\t\tawait rename(proxyTemporary, proxyTo);\n\t\t\t} catch (cause) {\n\t\t\t\tif (caseOnly) {\n\t\t\t\t\tawait rename(rawTo, rawTemporary);\n\t\t\t\t\tawait rename(rawTemporary, rawFrom);\n\t\t\t\t\tawait rename(proxyTemporary, proxyFrom);\n\t\t\t\t} else await rename(rawTo, rawFrom);\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t} catch (cause) {\n\t\t\tif (caseOnly) {\n\t\t\t\tif (existsSync(rawTemporary)) await rename(rawTemporary, rawFrom);\n\t\t\t\tif (existsSync(proxyTemporary)) await rename(proxyTemporary, proxyFrom);\n\t\t\t}\n\t\t\tthrow cause;\n\t\t}\n\t\tlibrary.folders = renamedFolders.sort();\n\t\tfor (const record of Object.values(library.assets)) {\n\t\t\tconst assetFolder = folderOfRawPath(record.raw);\n\t\t\tif (!isFolderOrDescendant(assetFolder, path)) continue;\n\t\t\trecord.raw = `${replaceFolderPrefix(assetFolder, path, nextPath)}/${rawFileNameOfPath(record.raw)}`;\n\t\t}\n\t\ttry {\n\t\t\tawait this.write(library);\n\t\t} catch (cause) {\n\t\t\tif (caseOnly) {\n\t\t\t\tawait rename(rawTo, rawTemporary);\n\t\t\t\tawait rename(proxyTo, proxyTemporary);\n\t\t\t\tawait rename(rawTemporary, rawFrom);\n\t\t\t\tawait rename(proxyTemporary, proxyFrom);\n\t\t\t} else {\n\t\t\t\tawait rename(rawTo, rawFrom);\n\t\t\t\tawait rename(proxyTo, proxyFrom);\n\t\t\t}\n\t\t\tthrow cause;\n\t\t}\n\t\treturn library;\n\t}\n\t/** Recursively delete a folder and every asset stored below it. */\n\tasync deleteFolder(path) {\n\t\treturn this.#enqueue(() => this.#deleteFolder(path));\n\t}\n\tasync #deleteFolder(requestedPath) {\n\t\tconst path = normalizeFolderPath(requestedPath);\n\t\tconst library = await this.read();\n\t\tthis.#requireFolder(library, path, false);\n\t\tconst deletedAssetIds = Object.entries(library.assets).filter(([, record]) => isFolderOrDescendant(folderOfRawPath(record.raw), path)).map(([id]) => id).sort();\n\t\tfor (const id of deletedAssetIds) delete library.assets[id];\n\t\tlibrary.folders = library.folders.filter((folder) => !isFolderOrDescendant(folder, path));\n\t\tconst token = crypto.randomUUID();\n\t\tconst rawPath = join(this.#config.rawDir, path);\n\t\tconst proxyPath = join(this.#config.proxyDir, path);\n\t\tconst rawTemporary = join(this.#config.rawDir, `.fundus-delete-${token}`);\n\t\tconst proxyTemporary = join(this.#config.proxyDir, `.fundus-delete-${token}`);\n\t\tawait rename(rawPath, rawTemporary);\n\t\ttry {\n\t\t\tawait rename(proxyPath, proxyTemporary);\n\t\t} catch (cause) {\n\t\t\tawait rename(rawTemporary, rawPath);\n\t\t\tthrow cause;\n\t\t}\n\t\ttry {\n\t\t\tawait this.write(library);\n\t\t} catch (cause) {\n\t\t\tawait rename(rawTemporary, rawPath);\n\t\t\tawait rename(proxyTemporary, proxyPath);\n\t\t\tthrow cause;\n\t\t}\n\t\tawait Promise.all([rm(rawTemporary, {\n\t\t\trecursive: true,\n\t\t\tforce: true\n\t\t}), rm(proxyTemporary, {\n\t\t\trecursive: true,\n\t\t\tforce: true\n\t\t})]);\n\t\treturn {\n\t\t\tlibrary,\n\t\t\tdeletedAssetIds\n\t\t};\n\t}\n\t/** Delete an asset: remove the record, its raw file, and its proxies. */\n\tasync deleteAsset(id) {\n\t\treturn this.#enqueue(() => this.#deleteAsset(id));\n\t}\n\tasync #deleteAsset(id) {\n\t\treturn this.#deleteAssets([id]);\n\t}\n\t/** Delete several assets as one library/file transaction. */\n\tasync deleteAssets(ids) {\n\t\treturn this.#enqueue(() => this.#deleteAssets(ids));\n\t}\n\tasync #deleteAssets(ids) {\n\t\tconst uniqueIds = [...new Set(ids)];\n\t\tif (uniqueIds.length === 0) throw new Error(\"At least one asset id is required.\");\n\t\tconst library = await this.read();\n\t\tconst records = uniqueIds.map((id) => ({\n\t\t\tid,\n\t\t\trecord: this.#requireAsset(library, id)\n\t\t}));\n\t\tconst deletedIds = new Set(uniqueIds);\n\t\tconst token = crypto.randomUUID();\n\t\tconst rawTemporaryRoot = join(this.#config.rawDir, `.fundus-delete-assets-${token}`);\n\t\tconst proxyTemporaryRoot = join(this.#config.proxyDir, `.fundus-delete-assets-${token}`);\n\t\tconst movedRawPaths = [];\n\t\tconst movedProxyPaths = [];\n\t\tconst stageFile = async (root, temporaryRoot, relativePath) => {\n\t\t\tconst source = join(root, relativePath);\n\t\t\tif (!existsSync(source)) return;\n\t\t\tconst target = join(temporaryRoot, relativePath);\n\t\t\tawait mkdir(dirname(target), { recursive: true });\n\t\t\tawait rename(source, target);\n\t\t};\n\t\tconst restoreFiles = async (root, temporaryRoot, relativePaths) => {\n\t\t\tfor (const relativePath of [...relativePaths].reverse()) {\n\t\t\t\tconst source = join(temporaryRoot, relativePath);\n\t\t\t\tif (!existsSync(source)) continue;\n\t\t\t\tconst target = join(root, relativePath);\n\t\t\t\tawait mkdir(dirname(target), { recursive: true });\n\t\t\t\tawait rename(source, target);\n\t\t\t}\n\t\t};\n\t\ttry {\n\t\t\tfor (const { record } of records) {\n\t\t\t\tawait stageFile(this.#config.rawDir, rawTemporaryRoot, record.raw);\n\t\t\t\tmovedRawPaths.push(record.raw);\n\t\t\t}\n\t\t\tif (existsSync(this.#config.proxyDir)) {\n\t\t\t\tfor (const relativePath of await listRelativeFiles(this.#config.proxyDir)) if ([...deletedIds].some((id) => isProxyFileNameFor(id, rawFileNameOfPath(relativePath)))) {\n\t\t\t\t\tawait stageFile(this.#config.proxyDir, proxyTemporaryRoot, relativePath);\n\t\t\t\t\tmovedProxyPaths.push(relativePath);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const id of uniqueIds) delete library.assets[id];\n\t\t\tawait this.write(library);\n\t\t} catch (cause) {\n\t\t\tawait restoreFiles(this.#config.proxyDir, proxyTemporaryRoot, movedProxyPaths);\n\t\t\tawait restoreFiles(this.#config.rawDir, rawTemporaryRoot, movedRawPaths);\n\t\t\tawait Promise.all([rm(rawTemporaryRoot, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t}), rm(proxyTemporaryRoot, {\n\t\t\t\trecursive: true,\n\t\t\t\tforce: true\n\t\t\t})]);\n\t\t\tthrow cause;\n\t\t}\n\t\tawait Promise.all([rm(rawTemporaryRoot, {\n\t\t\trecursive: true,\n\t\t\tforce: true\n\t\t}), rm(proxyTemporaryRoot, {\n\t\t\trecursive: true,\n\t\t\tforce: true\n\t\t})]);\n\t\treturn library;\n\t}\n\tasync createManifest(name) {\n\t\treturn this.#enqueue(() => this.#createManifest(name));\n\t}\n\tasync #createManifest(name) {\n\t\tconst nameProblem = manifestNameError(name);\n\t\tif (nameProblem) throw new Error(nameProblem);\n\t\tconst library = await this.read();\n\t\tif (Object.hasOwn(library.manifests, name)) throw new Error(`A manifest named \"${name}\" already exists.`);\n\t\tconst fileName = manifestModuleFileName(name);\n\t\tfor (const existingName of Object.keys(library.manifests)) if (manifestModuleFileName(existingName) === fileName) throw new Error(`Manifest \"${name}\" would generate the same module (\"${fileName}\") as the existing manifest \"${existingName}\" — pick a name with a distinct kebab-case form.`);\n\t\tlibrary.manifests[name] = {};\n\t\tawait this.write(library);\n\t\treturn library;\n\t}\n\t/**\n\t* Set (or clear) a manifest's editor appearance — its color and/or emoji.\n\t* An `undefined` field is left unchanged; a `null` field clears it. Values\n\t* are validated against the fixed palettes.\n\t*/\n\tasync setManifestAppearance(name, appearance) {\n\t\treturn this.#enqueue(() => this.#setManifestAppearance(name, appearance));\n\t}\n\tasync #setManifestAppearance(name, appearance) {\n\t\tconst library = await this.read();\n\t\tif (!Object.hasOwn(library.manifests, name)) throw new Error(`Unknown manifest \"${name}\".`);\n\t\tconst record = library.manifests[name];\n\t\tif (appearance.color !== void 0) if (appearance.color === null) delete record.color;\n\t\telse {\n\t\t\tconst problem = manifestColorError(appearance.color);\n\t\t\tif (problem) throw new Error(problem);\n\t\t\trecord.color = appearance.color;\n\t\t}\n\t\tif (appearance.emoji !== void 0) if (appearance.emoji === null) delete record.emoji;\n\t\telse {\n\t\t\tconst problem = manifestEmojiError(appearance.emoji);\n\t\t\tif (problem) throw new Error(problem);\n\t\t\trecord.emoji = appearance.emoji;\n\t\t}\n\t\tawait this.write(library);\n\t\treturn library;\n\t}\n\t/** Rename a manifest and rewrite every asset's membership to the new name. */\n\tasync renameManifest(name, newName) {\n\t\treturn this.#enqueue(() => this.#renameManifest(name, newName));\n\t}\n\tasync #renameManifest(name, newName) {\n\t\tconst nameProblem = manifestNameError(newName);\n\t\tif (nameProblem) throw new Error(nameProblem);\n\t\tconst library = await this.read();\n\t\tif (!Object.hasOwn(library.manifests, name)) throw new Error(`Unknown manifest \"${name}\".`);\n\t\tif (newName === name) return library;\n\t\tif (Object.hasOwn(library.manifests, newName)) throw new Error(`A manifest named \"${newName}\" already exists.`);\n\t\tconst fileName = manifestModuleFileName(newName);\n\t\tfor (const existingName of Object.keys(library.manifests)) if (existingName !== name && manifestModuleFileName(existingName) === fileName) throw new Error(`Manifest \"${newName}\" would generate the same module (\"${fileName}\") as the existing manifest \"${existingName}\" — pick a name with a distinct kebab-case form.`);\n\t\tconst record = library.manifests[name];\n\t\tdelete library.manifests[name];\n\t\tlibrary.manifests[newName] = record;\n\t\tfor (const assetRecord of Object.values(library.assets)) if (assetRecord.manifests.includes(name)) assetRecord.manifests = assetRecord.manifests.map((manifest) => manifest === name ? newName : manifest).sort();\n\t\tawait this.write(library);\n\t\treturn library;\n\t}\n\t/** Delete a manifest and strip it from every asset's membership. */\n\tasync deleteManifest(name) {\n\t\treturn this.#enqueue(() => this.#deleteManifest(name));\n\t}\n\tasync #deleteManifest(name) {\n\t\tconst library = await this.read();\n\t\tif (!Object.hasOwn(library.manifests, name)) throw new Error(`Unknown manifest \"${name}\".`);\n\t\tdelete library.manifests[name];\n\t\tfor (const record of Object.values(library.assets)) record.manifests = record.manifests.filter((manifest) => manifest !== name);\n\t\tawait this.write(library);\n\t\treturn library;\n\t}\n\t/**\n\t* Structural + referential validation, listed per asset: invalid id, unknown\n\t* type, dangling raw pointer, invalid parameters, unknown manifest names,\n\t* and reference errors (dangling target, type mismatch, cycles).\n\t*/\n\tasync validate(library) {\n\t\tconst issues = [];\n\t\tconst folderKeys = /* @__PURE__ */ new Map();\n\t\tfor (const folder of library.folders) {\n\t\t\tconst problem = folderPathError(folder);\n\t\t\tif (problem) issues.push({ message: problem });\n\t\t\tif (folder !== normalizeFolderPath(folder)) issues.push({ message: `Folder path \"${folder}\" is not Unicode-normalized.` });\n\t\t\tconst key = portableFolderPathKey(folder);\n\t\t\tconst collision = folderKeys.get(key);\n\t\t\tif (collision !== void 0) issues.push({ message: `Folders \"${collision}\" and \"${folder}\" collide on disk.` });\n\t\t\telse folderKeys.set(key, folder);\n\t\t\tconst parent = parentFolderPath(folder);\n\t\t\tif (parent !== \"\" && !library.folders.includes(parent)) issues.push({ message: `Folder \"${folder}\" has missing parent \"${parent}\".` });\n\t\t\tfor (const root of [this.#config.rawDir, this.#config.proxyDir]) if (!existsSync(join(root, folder, \".gitkeep\"))) issues.push({ message: `Folder \"${folder}\" is not mirrored with a .gitkeep in ${root}.` });\n\t\t}\n\t\tfor (const [name, record] of Object.entries(library.manifests)) {\n\t\t\tconst nameProblem = manifestNameError(name);\n\t\t\tif (nameProblem) issues.push({ message: nameProblem });\n\t\t\tif (record.color !== void 0) {\n\t\t\t\tconst colorProblem = manifestColorError(record.color);\n\t\t\t\tif (colorProblem) issues.push({ message: `Manifest \"${name}\": ${colorProblem}` });\n\t\t\t}\n\t\t\tif (record.emoji !== void 0) {\n\t\t\t\tconst emojiProblem = manifestEmojiError(record.emoji);\n\t\t\t\tif (emojiProblem) issues.push({ message: `Manifest \"${name}\": ${emojiProblem}` });\n\t\t\t}\n\t\t}\n\t\tconst namesByModuleFile = /* @__PURE__ */ new Map();\n\t\tfor (const name of Object.keys(library.manifests)) {\n\t\t\tconst fileName = manifestModuleFileName(name);\n\t\t\tconst existingName = namesByModuleFile.get(fileName);\n\t\t\tif (existingName !== void 0) issues.push({ message: `Manifests \"${existingName}\" and \"${name}\" would both generate \"${fileName}\".` });\n\t\t\telse namesByModuleFile.set(fileName, name);\n\t\t}\n\t\tfor (const [assetId, record] of Object.entries(library.assets)) {\n\t\t\tconst idProblem = assetIdError(assetId);\n\t\t\tif (idProblem) issues.push({\n\t\t\t\tassetId,\n\t\t\t\tmessage: idProblem\n\t\t\t});\n\t\t\tconst plugin = this.#registry[record.type];\n\t\t\tif (!plugin) issues.push({\n\t\t\t\tassetId,\n\t\t\t\tmessage: `Unknown asset type \"${record.type}\".`\n\t\t\t});\n\t\t\telse try {\n\t\t\t\tplugin.descriptor.validateParameters(record.parameters);\n\t\t\t} catch (cause) {\n\t\t\t\tissues.push({\n\t\t\t\t\tassetId,\n\t\t\t\t\tmessage: `Invalid parameters: ${cause instanceof Error ? cause.message : String(cause)}`\n\t\t\t\t});\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tassertSafeRelativeFilePath(record.raw);\n\t\t\t} catch (cause) {\n\t\t\t\tissues.push({\n\t\t\t\t\tassetId,\n\t\t\t\t\tmessage: cause instanceof Error ? cause.message : String(cause)\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst assetFolder = folderOfRawPath(record.raw);\n\t\t\tif (assetFolder !== \"\" && !library.folders.includes(assetFolder)) issues.push({\n\t\t\t\tassetId,\n\t\t\t\tmessage: `Unknown asset folder \"${assetFolder}\".`\n\t\t\t});\n\t\t\tif (!existsSync(join(this.#config.rawDir, record.raw))) issues.push({\n\t\t\t\tassetId,\n\t\t\t\tmessage: `Raw file \"${record.raw}\" is missing from the raw directory.`\n\t\t\t});\n\t\t\tfor (const manifest of record.manifests) if (!library.manifests[manifest]) issues.push({\n\t\t\t\tassetId,\n\t\t\t\tmessage: `Unknown manifest \"${manifest}\".`\n\t\t\t});\n\t\t}\n\t\tissues.push(...referenceErrors(library, collectAllReferences(library, descriptorsByType(this.#registry))));\n\t\treturn issues;\n\t}\n\tasync #deleteProxiesOf(assetId) {\n\t\tif (!existsSync(this.#config.proxyDir)) return;\n\t\tfor (const relativePath of await listRelativeFiles(this.#config.proxyDir)) if (isProxyFileNameFor(assetId, rawFileNameOfPath(relativePath))) await unlink(join(this.#config.proxyDir, relativePath));\n\t}\n\tasync syncFolders(library) {\n\t\tawait syncManagedFolders(this.#config, library);\n\t}\n\t#requireAsset(library, id) {\n\t\tif (!Object.hasOwn(library.assets, id)) throw new Error(`Unknown asset \"${id}\".`);\n\t\treturn library.assets[id];\n\t}\n\t/** Resolve a non-colliding raw file name, appending `-1`, `-2`, … before the extension. */\n\t#uniqueRawName(fileName, folder) {\n\t\tif (!existsSync(join(this.#config.rawDir, folder, fileName))) return fileName;\n\t\tconst extension = extname(fileName);\n\t\tconst stem = fileName.slice(0, fileName.length - extension.length);\n\t\tfor (let index = 1;; index++) {\n\t\t\tconst candidate = `${stem}-${index}${extension}`;\n\t\t\tif (!existsSync(join(this.#config.rawDir, folder, candidate))) return candidate;\n\t\t}\n\t}\n\t#requireFolder(library, folder, allowRoot = true) {\n\t\tif (folder === \"\" && allowRoot) return;\n\t\tif (!library.folders.includes(folder)) throw new Error(`Unknown folder \"${folder}\".`);\n\t}\n\t#assertFolderAvailable(library, path, except) {\n\t\tconst key = portableFolderPathKey(path);\n\t\tconst collision = library.folders.find((folder) => folder !== except && portableFolderPathKey(folder) === key);\n\t\tif (collision !== void 0) throw new Error(`Folder \"${path}\" collides with existing folder \"${collision}\".`);\n\t}\n};\n//#endregion\nexport { classifyRawDirectory as a, generateManifestModules as c, serverPluginsByType as d, isRecord as f, compareCodeUnits as g, collectAllReferences as h, readCurrentProxy as i, descriptorsByType as l, computeLibraryMembership as m, assertSafeRelativeFilePath as n, verifyStableRawFile as o, allDeliveredAssetIds as p, processAssets as r, encodeRelativePathForUrl as s, LibraryStore as t, serverPluginForType as u };\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { p as parse, s as stringify$1 } from './internal.js-DGo2jPcg.js';
1
+ import { p as parse, s as stringify$1 } from './internal.js-Dn37LrAW.js';
2
2
 
3
3
  /** @import { StandardSchemaV1 } from '@standard-schema/spec' */
4
4
 
@@ -252,4 +252,4 @@ function split_remote_key(key) {
252
252
  }
253
253
 
254
254
  export { ActionFailure as A, HttpError as H, INVALIDATED_PARAM as I, Redirect as R, SvelteKitError as S, TRAILING_SLASH_PARAM as T, get_message as a, get_relative_path as b, coalesce_to_error as c, normalize_error as d, create_remote_key as e, split_remote_key as f, get_status as g, base64_encode as h, noop as n, once as o, parse_remote_arg as p, stringify as s, text_encoder as t };
255
- //# sourceMappingURL=shared.js-B1gC9MiJ.js.map
255
+ //# sourceMappingURL=shared.js-Dob0TlTu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js-B1gC9MiJ.js","sources":["../../../../node_modules/@sveltejs/kit/src/exports/internal/index.js","../../../../.svelte-kit/output/server/chunks/shared.js"],"sourcesContent":["/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n\nexport class HttpError {\n\t/**\n\t * @param {number} status\n\t * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body\n\t */\n\tconstructor(status, body) {\n\t\tthis.status = status;\n\t\tif (typeof body === 'string') {\n\t\t\tthis.body = { message: body };\n\t\t} else if (body) {\n\t\t\tthis.body = body;\n\t\t} else {\n\t\t\tthis.body = { message: `Error: ${status}` };\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this.body);\n\t}\n}\n\nexport class Redirect {\n\t/**\n\t * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status\n\t * @param {string} location\n\t */\n\tconstructor(status, location) {\n\t\ttry {\n\t\t\tnew Headers({ location });\n\t\t} catch {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid redirect location ${JSON.stringify(location)}: ` +\n\t\t\t\t\t'this string contains characters that cannot be used in HTTP headers'\n\t\t\t);\n\t\t}\n\n\t\tthis.status = status;\n\t\tthis.location = location;\n\t}\n}\n\n/**\n * An error that was thrown from within the SvelteKit runtime that is not fatal and doesn't result in a 500, such as a 404.\n * `SvelteKitError` goes through `handleError`.\n * @extends Error\n */\nexport class SvelteKitError extends Error {\n\t/**\n\t * @param {number} status\n\t * @param {string} text\n\t * @param {string} message\n\t */\n\tconstructor(status, text, message) {\n\t\tsuper(message);\n\t\tthis.status = status;\n\t\tthis.text = text;\n\t}\n}\n\n/**\n * @template [T=undefined]\n */\nexport class ActionFailure {\n\t/**\n\t * @param {number} status\n\t * @param {T} data\n\t */\n\tconstructor(status, data) {\n\t\tthis.status = status;\n\t\tthis.data = data;\n\t}\n}\n\n/**\n * Error thrown when form validation fails imperatively\n */\nexport class ValidationError extends Error {\n\t/**\n\t * @param {StandardSchemaV1.Issue[]} issues\n\t */\n\tconstructor(issues) {\n\t\tsuper('Validation failed');\n\t\tthis.name = 'ValidationError';\n\t\tthis.issues = issues;\n\t}\n}\n\nexport { init_remote_functions } from './remote-functions.js';\n","import { HttpError, SvelteKitError } from \"@sveltejs/kit/internal\";\nimport * as devalue from \"devalue\";\n//#region node_modules/@sveltejs/kit/src/utils/functions.js\nfunction noop() {}\n/**\n* @template T\n* @param {() => T} fn\n*/\nfunction once(fn) {\n\tlet done = false;\n\t/** @type T */\n\tlet result;\n\treturn () => {\n\t\tif (done) return result;\n\t\tdone = true;\n\t\treturn result = fn();\n\t};\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/utils.js\nvar text_encoder = new TextEncoder();\n/**\n* Like node's path.relative, but without using node\n* @param {string} from\n* @param {string} to\n*/\nfunction get_relative_path(from, to) {\n\tconst from_parts = from.split(/[/\\\\]/);\n\tconst to_parts = to.split(/[/\\\\]/);\n\tfrom_parts.pop();\n\twhile (from_parts[0] === to_parts[0]) {\n\t\tfrom_parts.shift();\n\t\tto_parts.shift();\n\t}\n\tlet i = from_parts.length;\n\twhile (i--) from_parts[i] = \"..\";\n\treturn from_parts.concat(to_parts).join(\"/\");\n}\n/**\n* @param {Uint8Array} bytes\n* @returns {string}\n*/\nfunction base64_encode(bytes) {\n\tif (globalThis.Buffer) return globalThis.Buffer.from(bytes).toString(\"base64\");\n\tlet binary = \"\";\n\tfor (let i = 0; i < bytes.length; i++) binary += String.fromCharCode(bytes[i]);\n\treturn btoa(binary);\n}\n/**\n* @param {string} encoded\n* @returns {Uint8Array}\n*/\nfunction base64_decode(encoded) {\n\tif (globalThis.Buffer) {\n\t\tconst buffer = globalThis.Buffer.from(encoded, \"base64\");\n\t\treturn new Uint8Array(buffer);\n\t}\n\tconst binary = atob(encoded);\n\tconst bytes = new Uint8Array(binary.length);\n\tfor (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n\treturn bytes;\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/utils/error.js\n/**\n* @param {unknown} err\n* @return {Error}\n*/\nfunction coalesce_to_error(err) {\n\treturn err instanceof Error || err && err.name && err.message ? err : new Error(JSON.stringify(err));\n}\n/**\n* This is an identity function that exists to make TypeScript less\n* paranoid about people throwing things that aren't errors, which\n* frankly is not something we should care about\n* @param {unknown} error\n*/\nfunction normalize_error(error) {\n\treturn error;\n}\n/**\n* @param {unknown} error\n*/\nfunction get_status(error) {\n\treturn error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500;\n}\n/**\n* @param {unknown} error\n*/\nfunction get_message(error) {\n\treturn error instanceof SvelteKitError ? error.text : \"Internal Error\";\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/shared.js\n/** @import { Transport } from '@sveltejs/kit' */\n/**\n* @param {string} route_id\n* @param {string} dep\n*/\nfunction validate_depends(route_id, dep) {\n\tconst match = /^(moz-icon|view-source|jar):/.exec(dep);\n\tif (match) console.warn(`${route_id}: Calling \\`depends('${dep}')\\` will throw an error in Firefox because \\`${match[1]}\\` is a special URI scheme`);\n}\nvar INVALIDATED_PARAM = \"x-sveltekit-invalidated\";\nvar TRAILING_SLASH_PARAM = \"x-sveltekit-trailing-slash\";\n/**\n* @param {any} data\n* @param {string} [location_description]\n*/\nfunction validate_load_response(data, location_description) {\n\tif (data != null && Object.getPrototypeOf(data) !== Object.prototype) throw new Error(`a load function ${location_description} returned ${typeof data !== \"object\" ? `a ${typeof data}` : data instanceof Response ? \"a Response object\" : Array.isArray(data) ? \"an array\" : \"a non-plain object\"}, but must return a plain object at the top level (i.e. \\`return {...}\\`)`);\n}\n/**\n* Try to `devalue.stringify` the data object using the provided transport encoders.\n* @param {any} data\n* @param {Transport} transport\n*/\nfunction stringify(data, transport) {\n\tconst encoders = Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.encode]));\n\treturn devalue.stringify(data, encoders);\n}\nvar object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(Object.prototype).sort().join(\"\\0\");\n/**\n* @param {unknown} thing\n* @returns {thing is Record<PropertyKey, unknown>}\n*/\nfunction is_plain_object(thing) {\n\tif (typeof thing !== \"object\" || thing === null) return false;\n\tconst proto = Object.getPrototypeOf(thing);\n\treturn proto === Object.prototype || proto === null || Object.getPrototypeOf(proto) === null || Object.getOwnPropertyNames(proto).sort().join(\"\\0\") === object_proto_names;\n}\n/**\n* @param {Record<string, any>} value\n* @param {Map<object, any>} clones\n*/\nfunction to_sorted(value, clones) {\n\tconst clone = Object.getPrototypeOf(value) === null ? Object.create(null) : {};\n\tclones.set(value, clone);\n\tObject.defineProperty(clone, remote_arg_marker, { value: true });\n\tfor (const key of Object.keys(value).sort()) {\n\t\tconst property = value[key];\n\t\tObject.defineProperty(clone, key, {\n\t\t\tvalue: clones.get(property) ?? property,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t}\n\treturn clone;\n}\nvar remote_object = \"__skrao\";\nvar remote_map = \"__skram\";\nvar remote_set = \"__skras\";\nvar remote_file = \"__skraf\";\nvar remote_regex_guard = \"__skrag\";\nvar remote_arg_marker = Symbol(remote_object);\n/**\n* @param {Transport} transport\n* @param {boolean} sort\n* @param {Map<any, any>} remote_arg_clones\n*/\nfunction create_remote_arg_reducers(transport, sort, remote_arg_clones) {\n\t/** @type {Record<string, (value: unknown) => unknown>} */\n\tconst remote_fns_reducers = { \n\t/** @param {unknown} value */\n[remote_regex_guard]: (value) => {\n\t\tif (value instanceof RegExp) throw new Error(\"Regular expressions are not valid remote function arguments\");\n\t} };\n\tif (sort) {\n\t\t/** @type {(value: unknown) => Array<[unknown, unknown]> | undefined} */\n\t\tremote_fns_reducers[remote_map] = (value) => {\n\t\t\tif (!(value instanceof Map)) return;\n\t\t\t/** @type {Array<[string, string]>} */\n\t\t\tconst entries = [];\n\t\t\tfor (const [key, val] of value) entries.push([stringify(key), stringify(val)]);\n\t\t\treturn entries.sort(([a1, a2], [b1, b2]) => {\n\t\t\t\tif (a1 < b1) return -1;\n\t\t\t\tif (a1 > b1) return 1;\n\t\t\t\tif (a2 < b2) return -1;\n\t\t\t\tif (a2 > b2) return 1;\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t};\n\t\t/** @type {(value: unknown) => unknown[] | undefined} */\n\t\tremote_fns_reducers[remote_set] = (value) => {\n\t\t\tif (!(value instanceof Set)) return;\n\t\t\t/** @type {string[]} */\n\t\t\tconst items = [];\n\t\t\tfor (const item of value) items.push(stringify(item));\n\t\t\titems.sort();\n\t\t\treturn items;\n\t\t};\n\t\t/** @type {(value: unknown) => Record<PropertyKey, unknown> | undefined} */\n\t\tremote_fns_reducers[remote_object] = (value) => {\n\t\t\tif (!is_plain_object(value)) return;\n\t\t\tif (Object.hasOwn(value, remote_arg_marker)) return;\n\t\t\tif (remote_arg_clones.has(value)) return remote_arg_clones.get(value);\n\t\t\treturn to_sorted(value, remote_arg_clones);\n\t\t};\n\t}\n\tconst all_reducers = {\n\t\t...Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.encode])),\n\t\t...remote_fns_reducers\n\t};\n\t/** @type {(value: unknown) => string} */\n\tconst stringify = (value) => devalue.stringify(value, all_reducers);\n\treturn all_reducers;\n}\n/** @param {Transport} transport */\nfunction create_remote_arg_revivers(transport) {\n\tconst remote_fns_revivers = {\n\t\t/** @type {(value: unknown) => unknown} */\n\t\t[remote_object]: (value) => value,\n\t\t/** @type {(value: unknown) => Map<unknown, unknown>} */\n\t\t[remote_map]: (value) => {\n\t\t\tif (!Array.isArray(value)) throw new Error(\"Invalid data for Map reviver\");\n\t\t\tconst map = /* @__PURE__ */ new Map();\n\t\t\tfor (const item of value) {\n\t\t\t\tif (!Array.isArray(item) || item.length !== 2 || typeof item[0] !== \"string\" || typeof item[1] !== \"string\") throw new Error(\"Invalid data for Map reviver\");\n\t\t\t\tconst [key, val] = item;\n\t\t\t\tmap.set(parse(key), parse(val));\n\t\t\t}\n\t\t\treturn map;\n\t\t},\n\t\t/** @type {(value: unknown) => Set<unknown>} */\n\t\t[remote_set]: (value) => {\n\t\t\tif (!Array.isArray(value)) throw new Error(\"Invalid data for Set reviver\");\n\t\t\tconst set = /* @__PURE__ */ new Set();\n\t\t\tfor (const item of value) {\n\t\t\t\tif (typeof item !== \"string\") throw new Error(\"Invalid data for Set reviver\");\n\t\t\t\tset.add(parse(item));\n\t\t\t}\n\t\t\treturn set;\n\t\t},\n\t\t/** @type {(value: any) => File} */\n\t\t[remote_file]: (value) => {\n\t\t\tif (!value || typeof value !== \"object\" || typeof value.name !== \"string\" || typeof value.type !== \"string\" || typeof value.size !== \"number\" || typeof value.lastModified !== \"number\" || !(value.data instanceof ArrayBuffer)) throw new Error(\"Invalid data for File reviver\");\n\t\t\tconst { data, name, ...meta } = value;\n\t\t\treturn new File([data], name, meta);\n\t\t}\n\t};\n\tconst all_revivers = {\n\t\t...Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.decode])),\n\t\t...remote_fns_revivers\n\t};\n\t/** @type {(data: string) => unknown} */\n\tconst parse = (data) => devalue.parse(data, all_revivers);\n\treturn all_revivers;\n}\n/**\n* Stringifies the argument (if any) for a remote function in such a way that\n* it is both a valid URL and a valid file name (necessary for prerendering).\n* @param {any} value\n* @param {Transport} transport\n*/\nfunction stringify_remote_arg(value, transport) {\n\tif (value === void 0) return \"\";\n\treturn url_friendly_base64_encode(devalue.stringify(value, create_remote_arg_reducers(transport, true, /* @__PURE__ */ new Map())));\n}\n/**\n* Base64-encodes `string` in such a way that the result is safe to use\n* as both a URI component and a filename\n* @param {string} string\n*/\nfunction url_friendly_base64_encode(string) {\n\treturn base64_encode(text_encoder.encode(string)).replaceAll(\"=\", \"\").replaceAll(\"+\", \"-\").replaceAll(\"/\", \"_\");\n}\n/**\n* Parses the argument (if any) for a remote function\n* @param {string} string\n* @param {Transport} transport\n*/\nfunction parse_remote_arg(string, transport) {\n\tif (!string) return void 0;\n\tconst json_string = new TextDecoder().decode(base64_decode(string.replaceAll(\"-\", \"+\").replaceAll(\"_\", \"/\")));\n\treturn devalue.parse(json_string, create_remote_arg_revivers(transport));\n}\n/**\n* @param {string} id\n* @param {string} payload\n*/\nfunction create_remote_key(id, payload) {\n\treturn id + \"/\" + payload;\n}\n/**\n* @param {string} key\n* @returns {{ id: string; payload: string }}\n*/\nfunction split_remote_key(key) {\n\tconst i = key.lastIndexOf(\"/\");\n\tif (i === -1) throw new Error(`Invalid remote key: ${key}`);\n\treturn {\n\t\tid: key.slice(0, i),\n\t\tpayload: key.slice(i + 1)\n\t};\n}\n//#endregion\nexport { text_encoder as _, split_remote_key as a, validate_depends as c, get_message as d, get_status as f, get_relative_path as g, base64_encode as h, parse_remote_arg as i, validate_load_response as l, base64_decode as m, TRAILING_SLASH_PARAM as n, stringify as o, normalize_error as p, create_remote_key as r, stringify_remote_arg as s, INVALIDATED_PARAM as t, coalesce_to_error as u, noop as v, once as y };\n"],"names":["devalue.stringify","parse","devalue.parse"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"shared.js-Dob0TlTu.js","sources":["../../../../node_modules/@sveltejs/kit/src/exports/internal/index.js","../../../../.svelte-kit/output/server/chunks/shared.js"],"sourcesContent":["/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n\nexport class HttpError {\n\t/**\n\t * @param {number} status\n\t * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body\n\t */\n\tconstructor(status, body) {\n\t\tthis.status = status;\n\t\tif (typeof body === 'string') {\n\t\t\tthis.body = { message: body };\n\t\t} else if (body) {\n\t\t\tthis.body = body;\n\t\t} else {\n\t\t\tthis.body = { message: `Error: ${status}` };\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this.body);\n\t}\n}\n\nexport class Redirect {\n\t/**\n\t * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status\n\t * @param {string} location\n\t */\n\tconstructor(status, location) {\n\t\ttry {\n\t\t\tnew Headers({ location });\n\t\t} catch {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid redirect location ${JSON.stringify(location)}: ` +\n\t\t\t\t\t'this string contains characters that cannot be used in HTTP headers'\n\t\t\t);\n\t\t}\n\n\t\tthis.status = status;\n\t\tthis.location = location;\n\t}\n}\n\n/**\n * An error that was thrown from within the SvelteKit runtime that is not fatal and doesn't result in a 500, such as a 404.\n * `SvelteKitError` goes through `handleError`.\n * @extends Error\n */\nexport class SvelteKitError extends Error {\n\t/**\n\t * @param {number} status\n\t * @param {string} text\n\t * @param {string} message\n\t */\n\tconstructor(status, text, message) {\n\t\tsuper(message);\n\t\tthis.status = status;\n\t\tthis.text = text;\n\t}\n}\n\n/**\n * @template [T=undefined]\n */\nexport class ActionFailure {\n\t/**\n\t * @param {number} status\n\t * @param {T} data\n\t */\n\tconstructor(status, data) {\n\t\tthis.status = status;\n\t\tthis.data = data;\n\t}\n}\n\n/**\n * Error thrown when form validation fails imperatively\n */\nexport class ValidationError extends Error {\n\t/**\n\t * @param {StandardSchemaV1.Issue[]} issues\n\t */\n\tconstructor(issues) {\n\t\tsuper('Validation failed');\n\t\tthis.name = 'ValidationError';\n\t\tthis.issues = issues;\n\t}\n}\n\nexport { init_remote_functions } from './remote-functions.js';\n","import { HttpError, SvelteKitError } from \"@sveltejs/kit/internal\";\nimport * as devalue from \"devalue\";\n//#region node_modules/@sveltejs/kit/src/utils/functions.js\nfunction noop() {}\n/**\n* @template T\n* @param {() => T} fn\n*/\nfunction once(fn) {\n\tlet done = false;\n\t/** @type T */\n\tlet result;\n\treturn () => {\n\t\tif (done) return result;\n\t\tdone = true;\n\t\treturn result = fn();\n\t};\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/utils.js\nvar text_encoder = new TextEncoder();\n/**\n* Like node's path.relative, but without using node\n* @param {string} from\n* @param {string} to\n*/\nfunction get_relative_path(from, to) {\n\tconst from_parts = from.split(/[/\\\\]/);\n\tconst to_parts = to.split(/[/\\\\]/);\n\tfrom_parts.pop();\n\twhile (from_parts[0] === to_parts[0]) {\n\t\tfrom_parts.shift();\n\t\tto_parts.shift();\n\t}\n\tlet i = from_parts.length;\n\twhile (i--) from_parts[i] = \"..\";\n\treturn from_parts.concat(to_parts).join(\"/\");\n}\n/**\n* @param {Uint8Array} bytes\n* @returns {string}\n*/\nfunction base64_encode(bytes) {\n\tif (globalThis.Buffer) return globalThis.Buffer.from(bytes).toString(\"base64\");\n\tlet binary = \"\";\n\tfor (let i = 0; i < bytes.length; i++) binary += String.fromCharCode(bytes[i]);\n\treturn btoa(binary);\n}\n/**\n* @param {string} encoded\n* @returns {Uint8Array}\n*/\nfunction base64_decode(encoded) {\n\tif (globalThis.Buffer) {\n\t\tconst buffer = globalThis.Buffer.from(encoded, \"base64\");\n\t\treturn new Uint8Array(buffer);\n\t}\n\tconst binary = atob(encoded);\n\tconst bytes = new Uint8Array(binary.length);\n\tfor (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);\n\treturn bytes;\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/utils/error.js\n/**\n* @param {unknown} err\n* @return {Error}\n*/\nfunction coalesce_to_error(err) {\n\treturn err instanceof Error || err && err.name && err.message ? err : new Error(JSON.stringify(err));\n}\n/**\n* This is an identity function that exists to make TypeScript less\n* paranoid about people throwing things that aren't errors, which\n* frankly is not something we should care about\n* @param {unknown} error\n*/\nfunction normalize_error(error) {\n\treturn error;\n}\n/**\n* @param {unknown} error\n*/\nfunction get_status(error) {\n\treturn error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500;\n}\n/**\n* @param {unknown} error\n*/\nfunction get_message(error) {\n\treturn error instanceof SvelteKitError ? error.text : \"Internal Error\";\n}\n//#endregion\n//#region node_modules/@sveltejs/kit/src/runtime/shared.js\n/** @import { Transport } from '@sveltejs/kit' */\n/**\n* @param {string} route_id\n* @param {string} dep\n*/\nfunction validate_depends(route_id, dep) {\n\tconst match = /^(moz-icon|view-source|jar):/.exec(dep);\n\tif (match) console.warn(`${route_id}: Calling \\`depends('${dep}')\\` will throw an error in Firefox because \\`${match[1]}\\` is a special URI scheme`);\n}\nvar INVALIDATED_PARAM = \"x-sveltekit-invalidated\";\nvar TRAILING_SLASH_PARAM = \"x-sveltekit-trailing-slash\";\n/**\n* @param {any} data\n* @param {string} [location_description]\n*/\nfunction validate_load_response(data, location_description) {\n\tif (data != null && Object.getPrototypeOf(data) !== Object.prototype) throw new Error(`a load function ${location_description} returned ${typeof data !== \"object\" ? `a ${typeof data}` : data instanceof Response ? \"a Response object\" : Array.isArray(data) ? \"an array\" : \"a non-plain object\"}, but must return a plain object at the top level (i.e. \\`return {...}\\`)`);\n}\n/**\n* Try to `devalue.stringify` the data object using the provided transport encoders.\n* @param {any} data\n* @param {Transport} transport\n*/\nfunction stringify(data, transport) {\n\tconst encoders = Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.encode]));\n\treturn devalue.stringify(data, encoders);\n}\nvar object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(Object.prototype).sort().join(\"\\0\");\n/**\n* @param {unknown} thing\n* @returns {thing is Record<PropertyKey, unknown>}\n*/\nfunction is_plain_object(thing) {\n\tif (typeof thing !== \"object\" || thing === null) return false;\n\tconst proto = Object.getPrototypeOf(thing);\n\treturn proto === Object.prototype || proto === null || Object.getPrototypeOf(proto) === null || Object.getOwnPropertyNames(proto).sort().join(\"\\0\") === object_proto_names;\n}\n/**\n* @param {Record<string, any>} value\n* @param {Map<object, any>} clones\n*/\nfunction to_sorted(value, clones) {\n\tconst clone = Object.getPrototypeOf(value) === null ? Object.create(null) : {};\n\tclones.set(value, clone);\n\tObject.defineProperty(clone, remote_arg_marker, { value: true });\n\tfor (const key of Object.keys(value).sort()) {\n\t\tconst property = value[key];\n\t\tObject.defineProperty(clone, key, {\n\t\t\tvalue: clones.get(property) ?? property,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t}\n\treturn clone;\n}\nvar remote_object = \"__skrao\";\nvar remote_map = \"__skram\";\nvar remote_set = \"__skras\";\nvar remote_file = \"__skraf\";\nvar remote_regex_guard = \"__skrag\";\nvar remote_arg_marker = Symbol(remote_object);\n/**\n* @param {Transport} transport\n* @param {boolean} sort\n* @param {Map<any, any>} remote_arg_clones\n*/\nfunction create_remote_arg_reducers(transport, sort, remote_arg_clones) {\n\t/** @type {Record<string, (value: unknown) => unknown>} */\n\tconst remote_fns_reducers = { \n\t/** @param {unknown} value */\n[remote_regex_guard]: (value) => {\n\t\tif (value instanceof RegExp) throw new Error(\"Regular expressions are not valid remote function arguments\");\n\t} };\n\tif (sort) {\n\t\t/** @type {(value: unknown) => Array<[unknown, unknown]> | undefined} */\n\t\tremote_fns_reducers[remote_map] = (value) => {\n\t\t\tif (!(value instanceof Map)) return;\n\t\t\t/** @type {Array<[string, string]>} */\n\t\t\tconst entries = [];\n\t\t\tfor (const [key, val] of value) entries.push([stringify(key), stringify(val)]);\n\t\t\treturn entries.sort(([a1, a2], [b1, b2]) => {\n\t\t\t\tif (a1 < b1) return -1;\n\t\t\t\tif (a1 > b1) return 1;\n\t\t\t\tif (a2 < b2) return -1;\n\t\t\t\tif (a2 > b2) return 1;\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t};\n\t\t/** @type {(value: unknown) => unknown[] | undefined} */\n\t\tremote_fns_reducers[remote_set] = (value) => {\n\t\t\tif (!(value instanceof Set)) return;\n\t\t\t/** @type {string[]} */\n\t\t\tconst items = [];\n\t\t\tfor (const item of value) items.push(stringify(item));\n\t\t\titems.sort();\n\t\t\treturn items;\n\t\t};\n\t\t/** @type {(value: unknown) => Record<PropertyKey, unknown> | undefined} */\n\t\tremote_fns_reducers[remote_object] = (value) => {\n\t\t\tif (!is_plain_object(value)) return;\n\t\t\tif (Object.hasOwn(value, remote_arg_marker)) return;\n\t\t\tif (remote_arg_clones.has(value)) return remote_arg_clones.get(value);\n\t\t\treturn to_sorted(value, remote_arg_clones);\n\t\t};\n\t}\n\tconst all_reducers = {\n\t\t...Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.encode])),\n\t\t...remote_fns_reducers\n\t};\n\t/** @type {(value: unknown) => string} */\n\tconst stringify = (value) => devalue.stringify(value, all_reducers);\n\treturn all_reducers;\n}\n/** @param {Transport} transport */\nfunction create_remote_arg_revivers(transport) {\n\tconst remote_fns_revivers = {\n\t\t/** @type {(value: unknown) => unknown} */\n\t\t[remote_object]: (value) => value,\n\t\t/** @type {(value: unknown) => Map<unknown, unknown>} */\n\t\t[remote_map]: (value) => {\n\t\t\tif (!Array.isArray(value)) throw new Error(\"Invalid data for Map reviver\");\n\t\t\tconst map = /* @__PURE__ */ new Map();\n\t\t\tfor (const item of value) {\n\t\t\t\tif (!Array.isArray(item) || item.length !== 2 || typeof item[0] !== \"string\" || typeof item[1] !== \"string\") throw new Error(\"Invalid data for Map reviver\");\n\t\t\t\tconst [key, val] = item;\n\t\t\t\tmap.set(parse(key), parse(val));\n\t\t\t}\n\t\t\treturn map;\n\t\t},\n\t\t/** @type {(value: unknown) => Set<unknown>} */\n\t\t[remote_set]: (value) => {\n\t\t\tif (!Array.isArray(value)) throw new Error(\"Invalid data for Set reviver\");\n\t\t\tconst set = /* @__PURE__ */ new Set();\n\t\t\tfor (const item of value) {\n\t\t\t\tif (typeof item !== \"string\") throw new Error(\"Invalid data for Set reviver\");\n\t\t\t\tset.add(parse(item));\n\t\t\t}\n\t\t\treturn set;\n\t\t},\n\t\t/** @type {(value: any) => File} */\n\t\t[remote_file]: (value) => {\n\t\t\tif (!value || typeof value !== \"object\" || typeof value.name !== \"string\" || typeof value.type !== \"string\" || typeof value.size !== \"number\" || typeof value.lastModified !== \"number\" || !(value.data instanceof ArrayBuffer)) throw new Error(\"Invalid data for File reviver\");\n\t\t\tconst { data, name, ...meta } = value;\n\t\t\treturn new File([data], name, meta);\n\t\t}\n\t};\n\tconst all_revivers = {\n\t\t...Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.decode])),\n\t\t...remote_fns_revivers\n\t};\n\t/** @type {(data: string) => unknown} */\n\tconst parse = (data) => devalue.parse(data, all_revivers);\n\treturn all_revivers;\n}\n/**\n* Stringifies the argument (if any) for a remote function in such a way that\n* it is both a valid URL and a valid file name (necessary for prerendering).\n* @param {any} value\n* @param {Transport} transport\n*/\nfunction stringify_remote_arg(value, transport) {\n\tif (value === void 0) return \"\";\n\treturn url_friendly_base64_encode(devalue.stringify(value, create_remote_arg_reducers(transport, true, /* @__PURE__ */ new Map())));\n}\n/**\n* Base64-encodes `string` in such a way that the result is safe to use\n* as both a URI component and a filename\n* @param {string} string\n*/\nfunction url_friendly_base64_encode(string) {\n\treturn base64_encode(text_encoder.encode(string)).replaceAll(\"=\", \"\").replaceAll(\"+\", \"-\").replaceAll(\"/\", \"_\");\n}\n/**\n* Parses the argument (if any) for a remote function\n* @param {string} string\n* @param {Transport} transport\n*/\nfunction parse_remote_arg(string, transport) {\n\tif (!string) return void 0;\n\tconst json_string = new TextDecoder().decode(base64_decode(string.replaceAll(\"-\", \"+\").replaceAll(\"_\", \"/\")));\n\treturn devalue.parse(json_string, create_remote_arg_revivers(transport));\n}\n/**\n* @param {string} id\n* @param {string} payload\n*/\nfunction create_remote_key(id, payload) {\n\treturn id + \"/\" + payload;\n}\n/**\n* @param {string} key\n* @returns {{ id: string; payload: string }}\n*/\nfunction split_remote_key(key) {\n\tconst i = key.lastIndexOf(\"/\");\n\tif (i === -1) throw new Error(`Invalid remote key: ${key}`);\n\treturn {\n\t\tid: key.slice(0, i),\n\t\tpayload: key.slice(i + 1)\n\t};\n}\n//#endregion\nexport { text_encoder as _, split_remote_key as a, validate_depends as c, get_message as d, get_status as f, get_relative_path as g, base64_encode as h, parse_remote_arg as i, validate_load_response as l, base64_decode as m, TRAILING_SLASH_PARAM as n, stringify as o, normalize_error as p, create_remote_key as r, stringify_remote_arg as s, INVALIDATED_PARAM as t, coalesce_to_error as u, noop as v, once as y };\n"],"names":["devalue.stringify","parse","devalue.parse"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
- import { R as Redirect, H as HttpError, c as coalesce_to_error, g as get_status, a as get_message, n as noop, S as SvelteKitError } from './shared.js-B1gC9MiJ.js';
2
- import { u as uneval, p as parse } from './internal.js-DGo2jPcg.js';
1
+ import { R as Redirect, H as HttpError, c as coalesce_to_error, g as get_status, a as get_message, n as noop, S as SvelteKitError } from './shared.js-Dob0TlTu.js';
2
+ import { u as uneval, p as parse } from './internal.js-Dn37LrAW.js';
3
3
 
4
4
  var defaultParseOptions = {
5
5
  decodeValues: true,
@@ -1045,4 +1045,4 @@ function create_replacer(transport) {
1045
1045
  }
1046
1046
 
1047
1047
  export { ENDPOINT_METHODS as E, PAGE_METHODS as P, handle_fatal_error as a, method_not_allowed as b, handle_error_and_jsonify as c, get_global_name as d, create_replacer as e, format_server_error as f, get_set_cookies as g, has_prerendered_path as h, is_form_content_type as i, json as j, serialize_uses as k, clarify_devalue_error as l, merge_tracing as m, negotiate as n, get_node_type as o, parseString as p, isRedirect as q, redirect_response as r, static_error_page as s, text as t, escape_html as u, error as v, with_request_store as w, deserialize_binary_form as x, splitCookiesString as y };
1048
- //# sourceMappingURL=utils.js-DnEJ3UjO.js.map
1048
+ //# sourceMappingURL=utils.js-B4YimMxv.js.map