fundus 0.2.0 → 0.4.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 (217) hide show
  1. package/README.md +67 -2
  2. package/build/client/_app/immutable/assets/2.B5tQm8hR.css +1 -0
  3. package/build/client/_app/immutable/assets/2.B5tQm8hR.css.br +0 -0
  4. package/build/client/_app/immutable/assets/2.B5tQm8hR.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/{3.ChSpCG-T.css → 3.CmXD8k9d.css} +1 -1
  6. package/build/client/_app/immutable/assets/3.CmXD8k9d.css.br +0 -0
  7. package/build/client/_app/immutable/assets/3.CmXD8k9d.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{LibraryContextMenu.BYvU4SY7.css → LibraryContextMenu.CVb-Lqdf.css} +1 -1
  9. package/build/client/_app/immutable/assets/LibraryContextMenu.CVb-Lqdf.css.br +0 -0
  10. package/build/client/_app/immutable/assets/{LibraryContextMenu.BYvU4SY7.css.gz → LibraryContextMenu.CVb-Lqdf.css.gz} +0 -0
  11. package/build/client/_app/immutable/chunks/{C8W3KwDq.js → BPiGyn-T.js} +1 -1
  12. package/build/client/_app/immutable/chunks/BPiGyn-T.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/BPiGyn-T.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{CP-bnOxU.js → BoEHtxM8.js} +1 -1
  15. package/build/client/_app/immutable/chunks/BoEHtxM8.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BoEHtxM8.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/C-T1_s5P.js +1 -0
  18. package/build/client/_app/immutable/chunks/C-T1_s5P.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/C-T1_s5P.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{ByVSyIj7.js → CeJsL6hj.js} +1 -1
  21. package/build/client/_app/immutable/chunks/CeJsL6hj.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/CeJsL6hj.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{Db8LRH6X.js → Cq4Yaq35.js} +3 -3
  24. package/build/client/_app/immutable/chunks/Cq4Yaq35.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/Cq4Yaq35.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/D5sQSsUv.js +1 -0
  27. package/build/client/_app/immutable/chunks/D5sQSsUv.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/D5sQSsUv.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/{app.nM6SgHKJ.js → app.BQ4TfPHG.js} +2 -2
  30. package/build/client/_app/immutable/entry/app.BQ4TfPHG.js.br +0 -0
  31. package/build/client/_app/immutable/entry/app.BQ4TfPHG.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/start.COP9tIRH.js +1 -0
  33. package/build/client/_app/immutable/entry/start.COP9tIRH.js.br +0 -0
  34. package/build/client/_app/immutable/entry/start.COP9tIRH.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/0.CftchwYV.js +2 -0
  36. package/build/client/_app/immutable/nodes/0.CftchwYV.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/0.CftchwYV.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{1.dMklHTc2.js → 1.C8DOqctV.js} +1 -1
  39. package/build/client/_app/immutable/nodes/1.C8DOqctV.js.br +1 -0
  40. package/build/client/_app/immutable/nodes/1.C8DOqctV.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/2.BR8OVsS9.js +3 -0
  42. package/build/client/_app/immutable/nodes/2.BR8OVsS9.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/2.BR8OVsS9.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/3.BO5hcxIH.js +1 -0
  45. package/build/client/_app/immutable/nodes/3.BO5hcxIH.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/3.BO5hcxIH.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/{4.Dgxx52FJ.js → 4.DTaH-k-c.js} +1 -1
  48. package/build/client/_app/immutable/nodes/4.DTaH-k-c.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/4.DTaH-k-c.js.gz +0 -0
  50. package/build/client/_app/version.json +1 -1
  51. package/build/client/_app/version.json.br +0 -0
  52. package/build/client/_app/version.json.gz +0 -0
  53. package/build/handler.js +7 -7
  54. package/build/index.js +7 -7
  55. package/build/server/chunks/chunks/asset-id.js-CFsW8jeL.js +48 -0
  56. package/build/server/chunks/chunks/asset-id.js-CFsW8jeL.js.map +1 -0
  57. package/build/server/chunks/chunks/{context.js-B77ZAVLi.js → context.js-CG2t-ufq.js} +568 -25
  58. package/build/server/chunks/chunks/context.js-CG2t-ufq.js.map +1 -0
  59. package/build/server/chunks/chunks/{library-store.js-DJ-JRE-g.js → contract.js-sHny3b-s.js} +133 -359
  60. package/build/server/chunks/chunks/contract.js-sHny3b-s.js.map +1 -0
  61. package/build/server/chunks/chunks/{core.js-EA_ysb1J.js → core.js-Clg1CHb6.js} +2 -48
  62. package/build/server/chunks/chunks/core.js-Clg1CHb6.js.map +1 -0
  63. package/build/server/chunks/chunks/{exports.js-DvhE7Ffd.js → exports.js-rOfFZumP.js} +2 -2
  64. package/build/server/chunks/chunks/{exports.js-DvhE7Ffd.js.map → exports.js-rOfFZumP.js.map} +1 -1
  65. package/build/server/chunks/chunks/{http.js-DyoR9XRI.js → http.js--6sDZFfm.js} +35 -3
  66. package/build/server/chunks/chunks/http.js--6sDZFfm.js.map +1 -0
  67. package/build/server/chunks/chunks/{internal.js-Dn37LrAW.js → internal.js-DnveDsYn.js} +3 -3
  68. package/build/server/chunks/chunks/{internal.js-Dn37LrAW.js.map → internal.js-DnveDsYn.js.map} +1 -1
  69. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  70. package/build/server/chunks/chunks/raw-reconciliation.js-DOFtjkgu.js +343 -0
  71. package/build/server/chunks/chunks/raw-reconciliation.js-DOFtjkgu.js.map +1 -0
  72. package/build/server/chunks/chunks/raw-reconciliation2.js-DFwky2ou.js +11 -0
  73. package/build/server/chunks/chunks/raw-reconciliation2.js-DFwky2ou.js.map +1 -0
  74. package/build/server/chunks/chunks/{shared.js-Dob0TlTu.js → shared.js-DtvIbMLj.js} +2 -2
  75. package/build/server/chunks/chunks/{shared.js-Dob0TlTu.js.map → shared.js-DtvIbMLj.js.map} +1 -1
  76. package/build/server/chunks/chunks/{utils.js-B4YimMxv.js → utils.js-bP1j9RdM.js} +3 -3
  77. package/build/server/chunks/chunks/{utils.js-B4YimMxv.js.map → utils.js-bP1j9RdM.js.map} +1 -1
  78. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-H4Pq1KAE.js → _server.ts.js-CkSErIdC.js} +7 -5
  79. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-H4Pq1KAE.js.map → _server.ts.js-CkSErIdC.js.map} +1 -1
  80. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-BI3KHSfE.js → _server.ts.js-BfdsBPWo.js} +11 -6
  81. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-BI3KHSfE.js.map → _server.ts.js-BfdsBPWo.js.map} +1 -1
  82. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BlNYUbXX.js → _server.ts.js-D0aKDq87.js} +11 -6
  83. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BlNYUbXX.js.map → _server.ts.js-D0aKDq87.js.map} +1 -1
  84. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/_server.ts.js-DsX_m2gc.js +31 -0
  85. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/_server.ts.js-DsX_m2gc.js.map +1 -0
  86. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-j-_N540j.js → _server.ts.js-nfThjRxs.js} +11 -6
  87. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-j-_N540j.js.map → _server.ts.js-nfThjRxs.js.map} +1 -1
  88. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-BHKobzAg.js → _server.ts.js-CseHmsYB.js} +11 -6
  89. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-BHKobzAg.js.map → _server.ts.js-CseHmsYB.js.map} +1 -1
  90. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BFKjIOCv.js → _server.ts.js-CHiICsyC.js} +11 -6
  91. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BFKjIOCv.js.map → _server.ts.js-CHiICsyC.js.map} +1 -1
  92. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BxZeVw8y.js → _server.ts.js-Dgf46K5u.js} +11 -6
  93. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BxZeVw8y.js.map → _server.ts.js-Dgf46K5u.js.map} +1 -1
  94. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CO36U_CT.js → _server.ts.js-DwQJUZFa.js} +11 -6
  95. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CO36U_CT.js.map → _server.ts.js-DwQJUZFa.js.map} +1 -1
  96. package/build/server/chunks/entries/endpoints/api/imports/_server.ts.js-BnKS8nVF.js +37 -0
  97. package/build/server/chunks/entries/endpoints/api/imports/_server.ts.js-BnKS8nVF.js.map +1 -0
  98. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-CBlg1Bkl.js → _server.ts.js-BrDbLcyO.js} +11 -6
  99. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-CBlg1Bkl.js.map → _server.ts.js-BrDbLcyO.js.map} +1 -1
  100. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-DcGLCjIs.js → _server.ts.js-DIUiQuyd.js} +11 -6
  101. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-DcGLCjIs.js.map → _server.ts.js-DIUiQuyd.js.map} +1 -1
  102. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-AqhtjOiL.js → _server.ts.js-BrReStaf.js} +11 -6
  103. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-AqhtjOiL.js.map → _server.ts.js-BrReStaf.js.map} +1 -1
  104. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CSa6-DcU.js → _server.ts.js-B31iGwJ-.js} +11 -6
  105. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CSa6-DcU.js.map → _server.ts.js-B31iGwJ-.js.map} +1 -1
  106. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DnzZUoAo.js → _server.ts.js-DeZQFNdj.js} +11 -6
  107. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DnzZUoAo.js.map → _server.ts.js-DeZQFNdj.js.map} +1 -1
  108. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-B0KMprKq.js → _server.ts.js-DhDhUU7V.js} +11 -6
  109. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-B0KMprKq.js.map → _server.ts.js-DhDhUU7V.js.map} +1 -1
  110. package/build/server/chunks/entries/endpoints/api/reveal/_server.ts.js-DGkPIMcq.js +80 -0
  111. package/build/server/chunks/entries/endpoints/api/reveal/_server.ts.js-DGkPIMcq.js.map +1 -0
  112. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-B1N9o1Ne.js → _server.ts.js-BTQgWDH1.js} +11 -6
  113. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-B1N9o1Ne.js.map → _server.ts.js-BTQgWDH1.js.map} +1 -1
  114. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-B6HbnRqq.js → _server.ts.js-DB3i4juR.js} +7 -5
  115. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-B6HbnRqq.js.map → _server.ts.js-DB3i4juR.js.map} +1 -1
  116. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-7wzPyG9v.js → _server.ts.js-kmc-gejQ.js} +11 -6
  117. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-7wzPyG9v.js.map → _server.ts.js-kmc-gejQ.js.map} +1 -1
  118. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BWztxYge.js → _server.ts.js-B8EE1DD9.js} +11 -6
  119. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BWztxYge.js.map → _server.ts.js-B8EE1DD9.js.map} +1 -1
  120. package/build/server/chunks/entries/{hooks.server.js-CVKLksJ1.js → hooks.server.js-DbBA5yYQ.js} +10 -5
  121. package/build/server/chunks/entries/{hooks.server.js-CVKLksJ1.js.map → hooks.server.js-DbBA5yYQ.js.map} +1 -1
  122. package/build/server/chunks/{handler-DZ2Sps4a.js → handler-J6aKdov3.js} +5 -5
  123. package/build/server/chunks/{handler-DZ2Sps4a.js.map → handler-J6aKdov3.js.map} +1 -1
  124. package/build/server/chunks/{index.js-CdmTWQz8.js → index.js-CsvWJ7Qu.js} +5 -5
  125. package/build/server/chunks/{index.js-CdmTWQz8.js.map → index.js-CsvWJ7Qu.js.map} +1 -1
  126. package/build/server/chunks/{manifest.js-GhfNr35x.js → manifest.js-wHtZ9vlA.js} +46 -25
  127. package/build/server/chunks/manifest.js-wHtZ9vlA.js.map +1 -0
  128. package/build/server/chunks/nodes/0.js-By6-kbk6.js +11 -0
  129. package/build/server/chunks/nodes/0.js-By6-kbk6.js.map +1 -0
  130. package/build/server/chunks/nodes/1.js-CrPfmKpN.js +7 -0
  131. package/build/server/chunks/nodes/{1.js-DQgYreU0.js.map → 1.js-CrPfmKpN.js.map} +1 -1
  132. package/build/server/chunks/nodes/2.js-C-i3Y5t2.js +7 -0
  133. package/build/server/chunks/nodes/2.js-C-i3Y5t2.js.map +1 -0
  134. package/build/server/chunks/nodes/3.js-C1gcIGeV.js +7 -0
  135. package/build/server/chunks/nodes/3.js-C1gcIGeV.js.map +1 -0
  136. package/build/server/chunks/nodes/4.js-tgwl3VD3.js +7 -0
  137. package/build/server/chunks/nodes/{4.js-BebbMVXy.js.map → 4.js-tgwl3VD3.js.map} +1 -1
  138. package/dist/cli.js +2 -0
  139. package/dist/config.d.ts +1 -1
  140. package/dist/core/api-types.d.ts +12 -1
  141. package/dist/core/config.d.ts +12 -0
  142. package/dist/core/index.d.ts +3 -2
  143. package/dist/core/library.d.ts +8 -1
  144. package/dist/core/library.js +30 -6
  145. package/dist/server/cli-commands.d.ts +2 -1
  146. package/dist/server/cli-commands.js +155 -34
  147. package/dist/server/config-loader.d.ts +9 -1
  148. package/dist/server/config-loader.js +26 -1
  149. package/dist/server/file-manager.d.ts +2 -0
  150. package/dist/server/file-manager.js +17 -0
  151. package/dist/server/http.d.ts +1 -0
  152. package/dist/server/http.js +37 -0
  153. package/dist/server/importers/contract.d.ts +29 -0
  154. package/dist/server/importers/contract.js +13 -0
  155. package/dist/server/importers/figma.d.ts +21 -0
  156. package/dist/server/importers/figma.js +386 -0
  157. package/dist/server/importers/file.d.ts +6 -0
  158. package/dist/server/importers/file.js +33 -0
  159. package/dist/server/importers/pinned-https.d.ts +23 -0
  160. package/dist/server/importers/pinned-https.js +60 -0
  161. package/dist/server/importers/registry.d.ts +12 -0
  162. package/dist/server/importers/registry.js +31 -0
  163. package/dist/server/importers.d.ts +2 -0
  164. package/dist/server/importers.js +7 -0
  165. package/dist/server/library-store.d.ts +19 -1
  166. package/dist/server/library-store.js +110 -14
  167. package/dist/server/operations.d.ts +13 -1
  168. package/dist/server/operations.js +159 -23
  169. package/package.json +1 -1
  170. package/build/client/_app/immutable/assets/2.ohi-TClG.css +0 -1
  171. package/build/client/_app/immutable/assets/2.ohi-TClG.css.br +0 -0
  172. package/build/client/_app/immutable/assets/2.ohi-TClG.css.gz +0 -0
  173. package/build/client/_app/immutable/assets/3.ChSpCG-T.css.br +0 -0
  174. package/build/client/_app/immutable/assets/3.ChSpCG-T.css.gz +0 -0
  175. package/build/client/_app/immutable/assets/LibraryContextMenu.BYvU4SY7.css.br +0 -0
  176. package/build/client/_app/immutable/chunks/BAEZPv6c.js +0 -1
  177. package/build/client/_app/immutable/chunks/BAEZPv6c.js.br +0 -0
  178. package/build/client/_app/immutable/chunks/BAEZPv6c.js.gz +0 -0
  179. package/build/client/_app/immutable/chunks/ByVSyIj7.js.br +0 -1
  180. package/build/client/_app/immutable/chunks/ByVSyIj7.js.gz +0 -0
  181. package/build/client/_app/immutable/chunks/C8W3KwDq.js.br +0 -0
  182. package/build/client/_app/immutable/chunks/C8W3KwDq.js.gz +0 -0
  183. package/build/client/_app/immutable/chunks/CP-bnOxU.js.br +0 -0
  184. package/build/client/_app/immutable/chunks/CP-bnOxU.js.gz +0 -0
  185. package/build/client/_app/immutable/chunks/Db8LRH6X.js.br +0 -0
  186. package/build/client/_app/immutable/chunks/Db8LRH6X.js.gz +0 -0
  187. package/build/client/_app/immutable/entry/app.nM6SgHKJ.js.br +0 -0
  188. package/build/client/_app/immutable/entry/app.nM6SgHKJ.js.gz +0 -0
  189. package/build/client/_app/immutable/entry/start.DNXvkhtP.js +0 -1
  190. package/build/client/_app/immutable/entry/start.DNXvkhtP.js.br +0 -0
  191. package/build/client/_app/immutable/entry/start.DNXvkhtP.js.gz +0 -0
  192. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js +0 -2
  193. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js.br +0 -0
  194. package/build/client/_app/immutable/nodes/0.QeXQNCp2.js.gz +0 -0
  195. package/build/client/_app/immutable/nodes/1.dMklHTc2.js.br +0 -0
  196. package/build/client/_app/immutable/nodes/1.dMklHTc2.js.gz +0 -0
  197. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js +0 -3
  198. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js.br +0 -0
  199. package/build/client/_app/immutable/nodes/2.CW4VMcIP.js.gz +0 -0
  200. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js +0 -1
  201. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/3.CTiY_pbK.js.gz +0 -0
  203. package/build/client/_app/immutable/nodes/4.Dgxx52FJ.js.br +0 -0
  204. package/build/client/_app/immutable/nodes/4.Dgxx52FJ.js.gz +0 -0
  205. package/build/server/chunks/chunks/context.js-B77ZAVLi.js.map +0 -1
  206. package/build/server/chunks/chunks/core.js-EA_ysb1J.js.map +0 -1
  207. package/build/server/chunks/chunks/http.js-DyoR9XRI.js.map +0 -1
  208. package/build/server/chunks/chunks/library-store.js-DJ-JRE-g.js.map +0 -1
  209. package/build/server/chunks/manifest.js-GhfNr35x.js.map +0 -1
  210. package/build/server/chunks/nodes/0.js-DGT86_i-.js +0 -11
  211. package/build/server/chunks/nodes/0.js-DGT86_i-.js.map +0 -1
  212. package/build/server/chunks/nodes/1.js-DQgYreU0.js +0 -7
  213. package/build/server/chunks/nodes/2.js-DItreSrX.js +0 -7
  214. package/build/server/chunks/nodes/2.js-DItreSrX.js.map +0 -1
  215. package/build/server/chunks/nodes/3.js-bE1dJ_6v.js +0 -7
  216. package/build/server/chunks/nodes/3.js-bE1dJ_6v.js.map +0 -1
  217. package/build/server/chunks/nodes/4.js-BebbMVXy.js +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js-sHny3b-s.js","sources":["../../../../.svelte-kit/output/server/chunks/contract.js"],"sourcesContent":["import { A as validateImagePreset, F as isAssetReference, I as AUDIO_BUILT_IN_PRESETS, L as audioPlugin, M as VIDEO_BUILT_IN_PRESETS, N as validateVideoPreset, O as IMAGE_BUILT_IN_PRESETS, P as videoPlugin, R as validateAudioPreset, S as slicePlugin, _ as portableFolderPathKey, b as plugins, c as FOLDER_SENTINEL, d as folderOfRawPath, f as folderPathError, g as parentFolderPath, h as normalizeFolderPath, j as chromaKeyVideoPlugin, k as imagePlugin, l as folderNameError, m as joinFolderPath, p as isFolderOrDescendant, s as rawFilePathError, u as folderNameOf, v as rawFileNameOfPath, w as defaultInsetsForSize, x as SLICE_BUILT_IN_PRESETS, y as replaceFolderPrefix } from \"./core.js\";\nimport { n as manifestNameError, t as assetIdError } from \"./asset-id.js\";\nimport { i as manifestEmojiError, r as manifestColorError } from \"./manifest-appearance.js\";\nimport { a as verifyStableRawFile, o as canonicalizeParameters, s as compareCodeUnits } from \"./raw-reconciliation.js\";\nimport { basename, dirname, extname, isAbsolute, join, resolve } from \"node:path\";\nimport { existsSync } from \"node:fs\";\nimport { mkdir, 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 parseImportSource(id, value) {\n\tif (!isRecord$1(value)) throw new Error(`Library asset \"${id}\" has a non-object \"importSource\".`);\n\tif (typeof value.importer !== \"string\" || value.importer.length === 0) throw new Error(`Library asset \"${id}\" has an invalid import source \"importer\".`);\n\tif (!(\"parameters\" in value)) throw new Error(`Library asset \"${id}\" import source is missing \"parameters\".`);\n\treturn {\n\t\timporter: value.importer,\n\t\tparameters: value.parameters\n\t};\n}\nfunction parseAssetRecord(id, value, version) {\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\tif (version === 1 && value.importSource !== void 0) throw new Error(`Library asset \"${id}\" uses \"importSource\", which requires library version 2.`);\n\tconst record = {\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\tif (value.importSource !== void 0) record.importSource = parseImportSource(id, value.importSource);\n\treturn record;\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 && value.version !== 2) throw new Error(`Unsupported library version ${JSON.stringify(value.version)} (expected 1 or 2).`);\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, value.version);\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: value.version,\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\tif (library.version === 1) {\n\t\tconst sourced = Object.entries(library.assets).find(([, record]) => record.importSource);\n\t\tif (sourced) throw new Error(`Library asset \"${sourced[0]}\" uses \"importSource\", which requires library version 2.`);\n\t}\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/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/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.createAsset(options);\n\t}\n\tasync createAsset(options, prepareParameters) {\n\t\treturn this.#enqueue(() => this.#createAsset(options, prepareParameters));\n\t}\n\tasync #createAsset(options, prepareParameters) {\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\tconst manifests = [...new Set(options.manifests ?? [])].sort();\n\t\tfor (const manifest of manifests) if (!Object.hasOwn(library.manifests, manifest)) throw new Error(`Unknown manifest \"${manifest}\".`);\n\t\tconst rawDirectory = join(this.#config.rawDir, folder);\n\t\tawait mkdir(rawDirectory, { recursive: true });\n\t\tconst storedName = this.#uniqueRawName(sanitizeFileName(options.fileName), folder);\n\t\tconst storedPath = folder === \"\" ? storedName : `${folder}/${storedName}`;\n\t\tconst finalPath = join(this.#config.rawDir, storedPath);\n\t\tconst temporaryPath = join(rawDirectory, `.fundus-create-${crypto.randomUUID()}.tmp`);\n\t\tlet installed = false;\n\t\ttry {\n\t\t\tawait writeFile(temporaryPath, options.bytes);\n\t\t\tlet parameters = plugin.descriptor.validateParameters(plugin.descriptor.defaultParameters(plugin.pluginConfig(this.#config)));\n\t\t\tif (prepareParameters) parameters = plugin.descriptor.validateParameters(await prepareParameters({\n\t\t\t\trawPath: temporaryPath,\n\t\t\t\trawFileName: storedName,\n\t\t\t\tparameters\n\t\t\t}));\n\t\t\tconst record = {\n\t\t\t\ttype: options.type,\n\t\t\t\traw: storedPath,\n\t\t\t\trawHash: sha256Hex(options.bytes),\n\t\t\t\tparameters,\n\t\t\t\tmanifests\n\t\t\t};\n\t\t\tif (options.importSource) {\n\t\t\t\trecord.importSource = structuredClone(options.importSource);\n\t\t\t\tlibrary.version = 2;\n\t\t\t}\n\t\t\tlibrary.assets[options.id] = record;\n\t\t\tparseLibrary(serializeLibrary(library));\n\t\t\tawait rename(temporaryPath, finalPath);\n\t\t\tinstalled = true;\n\t\t\tawait this.write(library);\n\t\t\treturn library;\n\t\t} catch (cause) {\n\t\t\tconst cleanupErrors = [];\n\t\t\tif (installed) await unlink(finalPath).catch((error) => cleanupErrors.push(error));\n\t\t\tawait unlink(temporaryPath).catch((error) => {\n\t\t\t\tif (error.code !== \"ENOENT\") cleanupErrors.push(error);\n\t\t\t});\n\t\t\tif (cleanupErrors.length > 0) throw new AggregateError([cause, ...cleanupErrors], \"Asset creation failed and cleanup was incomplete.\");\n\t\t\tthrow cause;\n\t\t}\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 previousSource = record.importSource;\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\tdelete record.importSource;\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 (previousSource) record.importSource = previousSource;\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/** CAS-protected replacement used only by a repeatable import source. */\n\tasync replaceRawFromImportSource(id, bytes, expected, nextSource) {\n\t\treturn this.#enqueue(async () => {\n\t\t\tconst library = await this.read();\n\t\t\tconst record = this.#requireAsset(library, id);\n\t\t\tif (record.raw !== expected.raw || record.rawHash !== expected.rawHash || record.type !== expected.type || !record.importSource || canonicalizeParameters(record.importSource) !== expected.canonicalSource) throw new Error(\"stale-import\");\n\t\t\tconst absolutePath = join(this.#config.rawDir, record.raw);\n\t\t\tconst { verifyStableRawFile } = await import(\"./raw-reconciliation2.js\");\n\t\t\ttry {\n\t\t\t\tawait verifyStableRawFile(absolutePath, expected.rawHash);\n\t\t\t} catch {\n\t\t\t\tthrow new Error(\"stale-import\");\n\t\t\t}\n\t\t\tconst token = crypto.randomUUID();\n\t\t\tconst temporaryPath = `${absolutePath}.fundus-reimport-${token}.tmp`;\n\t\t\tconst backupPath = `${absolutePath}.fundus-reimport-${token}`;\n\t\t\tconst previousHash = record.rawHash;\n\t\t\tconst previousSource = structuredClone(record.importSource);\n\t\t\tlet staged = false;\n\t\t\tlet installed = false;\n\t\t\ttry {\n\t\t\t\tawait writeFile(temporaryPath, bytes);\n\t\t\t\tawait rename(absolutePath, backupPath);\n\t\t\t\tstaged = true;\n\t\t\t\tawait rename(temporaryPath, absolutePath);\n\t\t\t\tinstalled = true;\n\t\t\t\trecord.rawHash = sha256Hex(bytes);\n\t\t\t\tif (nextSource) record.importSource = structuredClone(nextSource);\n\t\t\t\tawait this.write(library);\n\t\t\t} catch (cause) {\n\t\t\t\trecord.rawHash = previousHash;\n\t\t\t\trecord.importSource = previousSource;\n\t\t\t\tif (installed) await unlink(absolutePath).catch(() => {});\n\t\t\t\tif (staged) await rename(backupPath, absolutePath);\n\t\t\t\tawait unlink(temporaryPath).catch(() => {});\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t\tif (staged) await unlink(backupPath).catch(() => {});\n\t\t\treturn library;\n\t\t});\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\n//#region src/lib/server/importers/contract.ts\nvar SourceImportError = class extends Error {\n\tcode;\n\tretryAfterSeconds;\n\tconstructor(code, message, retryAfterSeconds) {\n\t\tsuper(message);\n\t\tthis.name = \"SourceImportError\";\n\t\tthis.code = code;\n\t\tthis.retryAfterSeconds = retryAfterSeconds;\n\t}\n};\nfunction invalidInput(message) {\n\tthrow new SourceImportError(\"invalid-input\", message);\n}\n//#endregion\nexport { processAssets as a, generateManifestModules as c, serverPluginsByType as d, isRecord as f, collectAllReferences as h, assertSafeRelativeFilePath as i, descriptorsByType as l, computeLibraryMembership as m, invalidInput as n, readCurrentProxy as o, allDeliveredAssetIds as p, LibraryStore as r, encodeRelativePathForUrl as s, SourceImportError as t, serverPluginForType as u };\n"],"names":[],"mappings":"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"}
@@ -509,52 +509,6 @@ function portableRawPathKey(path) {
509
509
  return normalizeFolderPath(path).toLocaleLowerCase("en-US");
510
510
  }
511
511
  //#endregion
512
- //#region src/lib/core/asset-id.ts
513
- /**
514
- * Asset ids are the SSOT keys and the generated property names on manifests
515
- * are stable, human-readable camelCase slugs that must be valid JS
516
- * identifiers and must not collide with `Manifest` class members.
517
- */
518
- /**
519
- * Names an asset id may never take: current and future members of the runtime
520
- * `Manifest` class (entries become direct properties on it), plus inherited
521
- * `Object.prototype` members that would shadow-collide, plus keys that are
522
- * prototype-pollution hazards when used as record keys (`prototype`;
523
- * `__proto__` already fails the camelCase pattern).
524
- */
525
- var RESERVED_ASSET_IDS = [
526
- "preload",
527
- "release",
528
- "entries",
529
- "constructor",
530
- "prototype",
531
- "hasOwnProperty",
532
- "isPrototypeOf",
533
- "propertyIsEnumerable",
534
- "toLocaleString",
535
- "toString",
536
- "valueOf"
537
- ];
538
- var ASSET_ID_PATTERN = /^[a-z][A-Za-z0-9]*$/;
539
- /**
540
- * Why an id is invalid, as a human-readable message — or `null` when valid.
541
- * Lets the editor and the validator surface the precise reason.
542
- */
543
- function assetIdError(id) {
544
- if (!ASSET_ID_PATTERN.test(id)) return `"${id}" is not a valid asset id — use a camelCase identifier starting with a lowercase letter (e.g. "navigationPanel").`;
545
- if (RESERVED_ASSET_IDS.includes(id)) return `"${id}" is reserved (it collides with a Manifest member name).`;
546
- return null;
547
- }
548
- /**
549
- * Manifest names deliberately share the asset-id grammar because each name
550
- * becomes a generated JavaScript module export.
551
- */
552
- function manifestNameError(name) {
553
- if (!ASSET_ID_PATTERN.test(name)) return `"${name}" is not a valid manifest name — use a camelCase identifier starting with a lowercase letter (e.g. "mainCatalog").`;
554
- if (RESERVED_ASSET_IDS.includes(name)) return `"${name}" is reserved (it collides with a Manifest member name).`;
555
- return null;
556
- }
557
- //#endregion
558
512
  //#region src/lib/core/ingest.ts
559
513
  /** The registered descriptors, in registration order. */
560
514
  var BUILT_IN_DESCRIPTORS = plugins.values();
@@ -581,5 +535,5 @@ function proposeAssetId(fileName) {
581
535
  return withoutLeadingDigits.charAt(0).toLowerCase() + withoutLeadingDigits.slice(1);
582
536
  }
583
537
 
584
- export { AUDIO_BUILT_IN_PRESETS as A, validateImagePreset as B, typesForFileName as C, proposeAssetId as D, FOLDER_SENTINEL as F, IMAGE_BUILT_IN_PRESETS as I, SLICE_BUILT_IN_PRESETS as S, VIDEO_BUILT_IN_PRESETS as V, audioPlugin as a, assetIdError as b, chromaKeyVideoPlugin as c, folderPathError as d, parentFolderPath as e, folderOfRawPath as f, folderNameError as g, folderNameOf as h, imagePlugin as i, joinFolderPath as j, isFolderOrDescendant as k, replaceFolderPrefix as l, portableFolderPathKey as m, normalizeFolderPath as n, defaultInsetsForSize as o, plugins as p, manifestNameError as q, rawFileNameOfPath as r, slicePlugin as s, rawFilePathError as t, portableRawPathKey as u, videoPlugin as v, isFundusTransactionName as w, isAssetReference as x, validateVideoPreset as y, validateAudioPreset as z };
585
- //# sourceMappingURL=core.js-EA_ysb1J.js.map
538
+ export { AUDIO_BUILT_IN_PRESETS as A, proposeAssetId as B, FOLDER_SENTINEL as F, IMAGE_BUILT_IN_PRESETS as I, SLICE_BUILT_IN_PRESETS as S, VIDEO_BUILT_IN_PRESETS as V, plugins as a, audioPlugin as b, chromaKeyVideoPlugin as c, imagePlugin as d, folderOfRawPath as e, folderPathError as f, rawFileNameOfPath as g, parentFolderPath as h, isFundusTransactionName as i, folderNameError as j, joinFolderPath as k, folderNameOf as l, isFolderOrDescendant as m, normalizeFolderPath as n, replaceFolderPrefix as o, portableRawPathKey as p, portableFolderPathKey as q, rawFilePathError as r, slicePlugin as s, defaultInsetsForSize as t, isAssetReference as u, videoPlugin as v, validateVideoPreset as w, validateAudioPreset as x, validateImagePreset as y, typesForFileName as z };
539
+ //# sourceMappingURL=core.js-Clg1CHb6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js-Clg1CHb6.js","sources":["../../../../.svelte-kit/output/server/chunks/core.js"],"sourcesContent":["//#region src/lib/core/plugins/audio.ts\n/** Built-in presets, always available; host config merges over them. */\nvar AUDIO_BUILT_IN_PRESETS = { default: {\n\tcodec: \"opus\",\n\tbitrateKbps: 96,\n\tcontainer: \"webm\"\n} };\n/** Each codec's muxable container — a mismatch is a config error, not an ffmpeg one. */\nvar CONTAINER_BY_CODEC = {\n\topus: \"webm\",\n\taac: \"m4a\"\n};\nfunction validateAudioPreset(name, value) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(`Audio preset \"${name}\" must be an object.`);\n\tconst record = value;\n\tif (record.codec !== \"opus\" && record.codec !== \"aac\") throw new Error(`Audio preset \"${name}\" needs a \"codec\" of 'opus' | 'aac'.`);\n\tif (typeof record.bitrateKbps !== \"number\" || !Number.isInteger(record.bitrateKbps) || record.bitrateKbps <= 0) throw new Error(`Audio preset \"${name}\" needs a positive integer \"bitrateKbps\".`);\n\tconst expectedContainer = CONTAINER_BY_CODEC[record.codec];\n\tif (record.container !== expectedContainer) throw new Error(`Audio preset \"${name}\": codec '${record.codec}' requires container '${expectedContainer}'.`);\n\treturn {\n\t\tcodec: record.codec,\n\t\tbitrateKbps: record.bitrateKbps,\n\t\tcontainer: expectedContainer\n\t};\n}\nvar audioPlugin = {\n\ttype: \"audio\",\n\taccepts: [...[\n\t\t\"mp3\",\n\t\t\"wav\",\n\t\t\"m4a\",\n\t\t\"ogg\",\n\t\t\"flac\"\n\t]],\n\tdefaultParameters: () => ({ preset: \"default\" }),\n\tvalidateParameters(value) {\n\t\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(\"Audio parameters must be an object.\");\n\t\tconst record = value;\n\t\tif (typeof record.preset !== \"string\" || record.preset.length === 0) throw new Error(\"Audio parameters need a non-empty string \\\"preset\\\".\");\n\t\treturn { preset: record.preset };\n\t}\n};\n//#endregion\n//#region src/lib/core/asset-reference.ts\n/** Whether a value is a well-formed asset-reference marker. */\nfunction isAssetReference(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value) && typeof value.$asset === \"string\" && value.$asset !== \"\";\n}\n//#endregion\n//#region src/lib/core/chroma-key.ts\n/** The upstream shader's property defaults — a freshly ingested asset starts here. */\nvar DEFAULT_CHROMA_KEY_PARAMETERS = {\n\tkeyColor: [\n\t\t0,\n\t\t1,\n\t\t0\n\t],\n\tcolorCutoff: .2,\n\tcolorFeathering: .33,\n\tmaskFeathering: 1,\n\tsharpening: .5,\n\tdespill: 1,\n\tdespillLuminanceAdd: .2\n};\nvar SCALAR_KEYS = [\n\t\"colorCutoff\",\n\t\"colorFeathering\",\n\t\"maskFeathering\",\n\t\"sharpening\",\n\t\"despill\",\n\t\"despillLuminanceAdd\"\n];\nfunction clampUnit(value) {\n\treturn Math.min(1, Math.max(0, value));\n}\n/**\n* Validate an unknown chroma-key blob: every field required, every channel and\n* scalar a finite number. Values are clamped into 0–1 (slider float artifacts\n* must not invalidate a library), non-numbers throw.\n*/\nfunction validateChromaKeyParameters(value) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(\"\\\"chromaKey\\\" must be an object.\");\n\tconst record = value;\n\tconst keyColor = record.keyColor;\n\tif (!Array.isArray(keyColor) || keyColor.length !== 3 || keyColor.some((channel) => typeof channel !== \"number\" || !Number.isFinite(channel))) throw new Error(\"\\\"chromaKey.keyColor\\\" must be an array of three numbers (RGB, 0–1 each).\");\n\tconst result = { keyColor: [\n\t\tclampUnit(keyColor[0]),\n\t\tclampUnit(keyColor[1]),\n\t\tclampUnit(keyColor[2])\n\t] };\n\tfor (const key of SCALAR_KEYS) {\n\t\tconst scalar = record[key];\n\t\tif (typeof scalar !== \"number\" || !Number.isFinite(scalar)) throw new Error(`\"chromaKey.${key}\" must be a number (0–1).`);\n\t\tresult[key] = clampUnit(scalar);\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/lib/core/plugins/video.ts\n/**\n* Built-in presets, always available; host config merges over them. The\n* default is the proven committed-video formula: H.264, slow preset, animation\n* tune, CRF 28, yuv420p, faststart MP4.\n*/\nvar VIDEO_BUILT_IN_PRESETS = { default: {\n\tcodec: \"h264\",\n\tcrf: 28,\n\tencoderPreset: \"slow\",\n\ttune: \"animation\",\n\tpixelFormat: \"yuv420p\",\n\tcontainer: \"mp4\"\n} };\nfunction validateVideoPreset(name, value) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(`Video preset \"${name}\" must be an object.`);\n\tconst record = value;\n\tif (record.codec !== \"h264\") throw new Error(`Video preset \"${name}\" needs a \"codec\" of 'h264'.`);\n\tif (typeof record.crf !== \"number\" || !Number.isInteger(record.crf) || record.crf < 0) throw new Error(`Video preset \"${name}\" needs an integer \"crf\" ≥ 0.`);\n\tif (typeof record.encoderPreset !== \"string\" || record.encoderPreset.length === 0) throw new Error(`Video preset \"${name}\" needs a non-empty string \"encoderPreset\".`);\n\tif (record.tune !== void 0 && (typeof record.tune !== \"string\" || record.tune.length === 0)) throw new Error(`Video preset \"${name}\" has a non-string \"tune\".`);\n\tif (typeof record.pixelFormat !== \"string\" || record.pixelFormat.length === 0) throw new Error(`Video preset \"${name}\" needs a non-empty string \"pixelFormat\".`);\n\tif (record.container !== \"mp4\") throw new Error(`Video preset \"${name}\" needs a \"container\" of 'mp4'.`);\n\treturn {\n\t\tcodec: \"h264\",\n\t\tcrf: record.crf,\n\t\tencoderPreset: record.encoderPreset,\n\t\t...record.tune !== void 0 ? { tune: record.tune } : {},\n\t\tpixelFormat: record.pixelFormat,\n\t\tcontainer: \"mp4\"\n\t};\n}\nvar VIDEO_EXTENSIONS = [\n\t\"mp4\",\n\t\"mov\",\n\t\"webm\",\n\t\"m4v\"\n];\n/** Shared by the video and chroma-key-video plugins (identical transcode inputs). */\nfunction validateVideoParameters(label, value) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(`${label} parameters must be an object.`);\n\tconst record = value;\n\tif (typeof record.preset !== \"string\" || record.preset.length === 0) throw new Error(`${label} parameters need a non-empty string \"preset\".`);\n\tif (record.maxWidth !== void 0) {\n\t\tif (typeof record.maxWidth !== \"number\" || !Number.isInteger(record.maxWidth) || record.maxWidth <= 0) throw new Error(`${label} \"maxWidth\" must be a positive integer when set.`);\n\t}\n\treturn {\n\t\tpreset: record.preset,\n\t\t...record.maxWidth !== void 0 ? { maxWidth: record.maxWidth } : {}\n\t};\n}\nvar videoPlugin = {\n\ttype: \"video\",\n\taccepts: [...VIDEO_EXTENSIONS],\n\tdefaultParameters: () => ({ preset: \"default\" }),\n\tvalidateParameters(value) {\n\t\treturn validateVideoParameters(\"Video\", value);\n\t}\n};\n//#endregion\n//#region src/lib/core/plugins/chroma-key-video.ts\n/**\n* Chroma-key-video plugin (core part): a greenscreen video delivered through\n* the video plugin's transcode pipeline, plus the keying data the runtime's\n* WebGL renderer needs — chroma-key parameters and two optional image\n* references: a grayscale shape `mask` multiplied onto the keyed\n* alpha, and a static `fallback` image shown when WebGL2 is unavailable.\n*\n* The keying values and references are entry-only data: they travel into the\n* generated manifest entry but never touch the ffmpeg job, so\n* `processingParameters` narrows the job-hash input to the transcode inputs\n* (preset + maxWidth) — retuning a slider must not re-transcode the proxy.\n*/\nfunction validateOptionalReference(label, value) {\n\tif (value === void 0) return void 0;\n\tif (!isAssetReference(value)) throw new Error(`\"${label}\" must be an asset reference ({ \"$asset\": \"<id>\" }).`);\n\treturn { $asset: value.$asset };\n}\nvar chromaKeyVideoPlugin = {\n\ttype: \"chroma-key-video\",\n\taccepts: [...VIDEO_EXTENSIONS],\n\tdefaultParameters: () => ({\n\t\tpreset: \"default\",\n\t\tchromaKey: {\n\t\t\t...DEFAULT_CHROMA_KEY_PARAMETERS,\n\t\t\tkeyColor: [...DEFAULT_CHROMA_KEY_PARAMETERS.keyColor]\n\t\t}\n\t}),\n\tvalidateParameters(value) {\n\t\tconst videoParameters = validateVideoParameters(\"Chroma-key-video\", value);\n\t\tconst record = value;\n\t\tconst chromaKey = validateChromaKeyParameters(record.chromaKey);\n\t\tconst mask = validateOptionalReference(\"mask\", record.mask);\n\t\tconst fallback = validateOptionalReference(\"fallback\", record.fallback);\n\t\treturn {\n\t\t\t...videoParameters,\n\t\t\tchromaKey,\n\t\t\t...mask !== void 0 ? { mask } : {},\n\t\t\t...fallback !== void 0 ? { fallback } : {}\n\t\t};\n\t},\n\tcollectReferences(parameters) {\n\t\tconst references = [];\n\t\tif (parameters.mask) references.push({\n\t\t\tfield: \"mask\",\n\t\t\tassetId: parameters.mask.$asset,\n\t\t\texpectedTypes: [\"image\"]\n\t\t});\n\t\tif (parameters.fallback) references.push({\n\t\t\tfield: \"fallback\",\n\t\t\tassetId: parameters.fallback.$asset,\n\t\t\texpectedTypes: [\"image\"]\n\t\t});\n\t\treturn references;\n\t},\n\tprocessingParameters(parameters) {\n\t\treturn {\n\t\t\tpreset: parameters.preset,\n\t\t\t...parameters.maxWidth !== void 0 ? { maxWidth: parameters.maxWidth } : {}\n\t\t};\n\t}\n};\n//#endregion\n//#region src/lib/core/plugins/image.ts\nvar IMAGE_FORMATS = [\n\t\"webp\",\n\t\"png\",\n\t\"avif\",\n\t\"jpeg\"\n];\n/** Built-in presets, always available; host config merges over them. */\nvar IMAGE_BUILT_IN_PRESETS = { default: {\n\tformat: \"webp\",\n\tquality: 82\n} };\nfunction validateImagePreset(name, value) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(`Image preset \"${name}\" must be an object.`);\n\tconst record = value;\n\tif (typeof record.format !== \"string\" || !IMAGE_FORMATS.includes(record.format)) throw new Error(`Image preset \"${name}\" needs a \"format\" of ${IMAGE_FORMATS.map((format) => `'${format}'`).join(\" | \")}.`);\n\tif (record.quality !== void 0 && typeof record.quality !== \"number\") throw new Error(`Image preset \"${name}\" has a non-number \"quality\".`);\n\treturn {\n\t\tformat: record.format,\n\t\tquality: record.quality\n\t};\n}\nvar RASTER_IMAGE_EXTENSIONS = [\n\t\"png\",\n\t\"jpg\",\n\t\"jpeg\",\n\t\"webp\",\n\t\"avif\"\n];\nvar imagePlugin = {\n\ttype: \"image\",\n\taccepts: [...RASTER_IMAGE_EXTENSIONS],\n\tdefaultParameters: () => ({ preset: \"default\" }),\n\tvalidateParameters(value) {\n\t\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(\"Image parameters must be an object.\");\n\t\tconst record = value;\n\t\tif (typeof record.preset !== \"string\" || record.preset.length === 0) throw new Error(\"Image parameters need a non-empty string \\\"preset\\\".\");\n\t\tif (record.targetWidth !== void 0) {\n\t\t\tif (typeof record.targetWidth !== \"number\" || !Number.isInteger(record.targetWidth) || record.targetWidth <= 0) throw new Error(\"Image \\\"targetWidth\\\" must be a positive integer when set.\");\n\t\t}\n\t\treturn {\n\t\t\tpreset: record.preset,\n\t\t\t...record.targetWidth !== void 0 ? { targetWidth: record.targetWidth } : {}\n\t\t};\n\t}\n};\n//#endregion\n//#region src/lib/core/slice-data.ts\n/**\n* The slice data model keeps the source image separate from slicing metadata\n* (Fundus tracks raw files and\n* proxy dimensions separately), so there is no `SliceSource` here.\n*\n* The geometry is stored as **insets** (border thickness in source pixels), the\n* canonical, render-ready form — equivalent to CSS `border-image-slice`.\n* `slicedAxesFor` is the single source of truth for which axes each mode uses.\n*/\nvar SLICE_MODES = [\n\t\"nine\",\n\t\"three-horizontal\",\n\t\"three-vertical\",\n\t\"one\"\n];\n/** All-zero insets — the \"no overdraw\" value. */\nfunction createZeroInsets() {\n\treturn {\n\t\ttop: 0,\n\t\tright: 0,\n\t\tbottom: 0,\n\t\tleft: 0\n\t};\n}\n/**\n* Default insets for a freshly ingested image: each border a quarter of the\n* corresponding dimension (at least 1px where the image is large enough),\n* always clamped so a center of at least one source pixel remains on each\n* axis. For an axis too small for insets + a 1px center (width/height ≤ 2)\n* the insets on that axis are 0 — structurally valid slicing for any size ≥ 1.\n*/\nfunction defaultInsetsForSize(width, height) {\n\tconst horizontal = Math.min(Math.max(1, Math.floor(width / 4)), Math.floor((width - 1) / 2));\n\tconst vertical = Math.min(Math.max(1, Math.floor(height / 4)), Math.floor((height - 1) / 2));\n\treturn {\n\t\ttop: vertical,\n\t\tright: horizontal,\n\t\tbottom: vertical,\n\t\tleft: horizontal\n\t};\n}\n/** Which source-image axes are sliced for a mode. */\nfunction slicedAxesFor(mode) {\n\treturn {\n\t\thorizontal: mode === \"nine\" || mode === \"three-horizontal\",\n\t\tvertical: mode === \"nine\" || mode === \"three-vertical\"\n\t};\n}\n/** Maximum inset on one side while preserving the opposite inset. */\nfunction maxInset(insets, side, width, height) {\n\tif (side === \"left\") return width - insets.right;\n\tif (side === \"right\") return width - insets.left;\n\tif (side === \"top\") return height - insets.bottom;\n\treturn height - insets.top;\n}\n/** Maximum overdraw on one side while preserving at least one core source pixel. */\nfunction maxOverdraw(overdraw, side, width, height) {\n\treturn maxInset(overdraw, side, width, height) - 1;\n}\n//#endregion\n//#region src/lib/core/plugins/slice.ts\n/** Built-in presets, always available; host config merges over them. */\nvar SLICE_BUILT_IN_PRESETS = { default: {\n\tformat: \"webp\",\n\tquality: 82\n} };\nfunction validateInsets(label, value) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(`Slice ${label} must be an object with top/right/bottom/left.`);\n\tconst record = value;\n\tconst sides = [\n\t\t\"top\",\n\t\t\"right\",\n\t\t\"bottom\",\n\t\t\"left\"\n\t];\n\tconst result = createZeroInsets();\n\tfor (const side of sides) {\n\t\tconst sideValue = record[side];\n\t\tif (typeof sideValue !== \"number\" || !Number.isInteger(sideValue) || sideValue < 0) throw new Error(`Slice ${label}.${side} must be a non-negative integer.`);\n\t\tresult[side] = sideValue;\n\t}\n\treturn result;\n}\nvar slicePlugin = {\n\ttype: \"slice\",\n\taccepts: [...RASTER_IMAGE_EXTENSIONS],\n\tdefaultParameters: () => ({\n\t\tmode: \"nine\",\n\t\tinsets: createZeroInsets(),\n\t\tpixelRatio: 1,\n\t\tpreset: \"default\"\n\t}),\n\tvalidateParameters(value) {\n\t\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(\"Slice parameters must be an object.\");\n\t\tconst record = value;\n\t\tif (typeof record.mode !== \"string\" || !SLICE_MODES.includes(record.mode)) throw new Error(`Slice \"mode\" must be one of ${SLICE_MODES.map((mode) => `'${mode}'`).join(\" | \")}.`);\n\t\tconst insets = validateInsets(\"insets\", record.insets);\n\t\tif (typeof record.pixelRatio !== \"number\" || !Number.isInteger(record.pixelRatio) || record.pixelRatio < 1) throw new Error(\"Slice \\\"pixelRatio\\\" must be an integer ≥ 1.\");\n\t\tconst overdraw = record.overdraw === void 0 ? void 0 : validateInsets(\"overdraw\", record.overdraw);\n\t\tif (typeof record.preset !== \"string\" || record.preset.length === 0) throw new Error(\"Slice parameters need a non-empty string \\\"preset\\\".\");\n\t\treturn {\n\t\t\tmode: record.mode,\n\t\t\tinsets,\n\t\t\tpixelRatio: record.pixelRatio,\n\t\t\t...overdraw !== void 0 ? { overdraw } : {},\n\t\t\tpreset: record.preset\n\t\t};\n\t}\n};\n//#endregion\n//#region src/lib/core/plugins/registry.ts\n/**\n* The composition root for Fundus asset-type plugins.\n*\n* A plugin is registered exactly once here. Environment-specific surfaces\n* (server processing, editor panels, runtime handlers) keep their imports on\n* the correct side of SvelteKit's browser/server boundary and project this\n* registered set onto their local implementation catalogues.\n*/\nvar PluginRegistry = class {\n\t#byType = /* @__PURE__ */ new Map();\n\tregister(plugin) {\n\t\tif (this.#byType.has(plugin.type)) throw new Error(`Plugin type \"${plugin.type}\" is already registered.`);\n\t\tthis.#byType.set(plugin.type, plugin);\n\t}\n\thas(type) {\n\t\treturn this.#byType.has(type);\n\t}\n\tvalues() {\n\t\treturn [...this.#byType.values()];\n\t}\n\ttypes() {\n\t\treturn [...this.#byType.keys()];\n\t}\n\t/**\n\t* Select the environment-specific implementation for every registered\n\t* plugin. Unregistered catalogue entries remain dormant; a registered\n\t* plugin without the requested facet fails immediately during startup.\n\t*/\n\tproject(catalogue, facet) {\n\t\tconst projected = Object.create(null);\n\t\tfor (const type of this.#byType.keys()) {\n\t\t\tif (!Object.hasOwn(catalogue, type)) throw new Error(`Registered plugin \"${type}\" has no ${facet}.`);\n\t\t\tprojected[type] = catalogue[type];\n\t\t}\n\t\treturn projected;\n\t}\n};\nvar plugins = new PluginRegistry();\nplugins.register(imagePlugin);\nplugins.register(slicePlugin);\nplugins.register(videoPlugin);\nplugins.register(chromaKeyVideoPlugin);\nplugins.register(audioPlugin);\n/** Fundus-owned file that preserves explicit empty folders in source control. */\nvar FOLDER_SENTINEL = \".gitkeep\";\nvar CONTROL_CHARACTERS$1 = /[\\u0000-\\u001f\\u007f]/;\nvar WINDOWS_FORBIDDEN_CHARACTERS$1 = /[<>:\"|?*]/;\nvar WINDOWS_RESERVED_NAME$1 = /^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\\..*)?$/i;\n/** Validate one human-facing folder name (a single path segment). */\nfunction folderNameError(name) {\n\tif (name.length === 0) return \"Folder names must not be empty.\";\n\tif (name !== name.trim()) return \"Folder names must not start or end with whitespace.\";\n\tif (name === \".\" || name === \"..\") return `\"${name}\" is not a valid folder name.`;\n\tif (name.includes(\"/\") || name.includes(\"\\\\\")) return \"Folder names must not contain path separators.\";\n\tif (CONTROL_CHARACTERS$1.test(name)) return \"Folder names must not contain control characters.\";\n\tif (WINDOWS_FORBIDDEN_CHARACTERS$1.test(name)) return \"Folder names must not contain Windows-reserved characters (: * ? \\\" < > |).\";\n\tif (name.endsWith(\".\")) return \"Folder names must not end with a dot.\";\n\tif (name.toLocaleLowerCase(\"en-US\") === \"root\") return `\"${name}\" is reserved for the implicit Fundus root folder.`;\n\tif (name.toLocaleLowerCase(\"en-US\") === \".gitkeep\") return `\"${name}\" is reserved for Fundus folder management.`;\n\tif (WINDOWS_RESERVED_NAME$1.test(name)) return `\"${name}\" is a reserved filesystem name.`;\n\treturn null;\n}\n/** Normalize a validated, portable relative folder path to NFC + POSIX separators. */\nfunction normalizeFolderPath(path) {\n\treturn path.split(\"/\").map((segment) => segment.normalize(\"NFC\")).join(\"/\");\n}\n/** Validate a non-root, POSIX-relative folder path. */\nfunction folderPathError(path) {\n\tif (path.length === 0) return \"The root is implicit and cannot be registered as a folder.\";\n\tif (path.startsWith(\"/\") || path.endsWith(\"/\")) return \"Folder paths must be relative and must not start or end with a slash.\";\n\tfor (const segment of path.split(\"/\")) {\n\t\tconst problem = folderNameError(segment);\n\t\tif (problem) return `Invalid folder path \"${path}\": ${problem}`;\n\t}\n\treturn null;\n}\n/** Case-insensitive, Unicode-normalized key used to prevent portable path collisions. */\nfunction portableFolderPathKey(path) {\n\treturn normalizeFolderPath(path).toLocaleLowerCase(\"en-US\");\n}\nfunction parentFolderPath(path) {\n\tconst separator = path.lastIndexOf(\"/\");\n\treturn separator === -1 ? \"\" : path.slice(0, separator);\n}\nfunction folderNameOf(path) {\n\tconst separator = path.lastIndexOf(\"/\");\n\treturn separator === -1 ? path : path.slice(separator + 1);\n}\nfunction joinFolderPath(parent, name) {\n\treturn parent === \"\" ? name : `${parent}/${name}`;\n}\nfunction folderOfRawPath(rawPath) {\n\treturn parentFolderPath(rawPath);\n}\nfunction rawFileNameOfPath(rawPath) {\n\treturn folderNameOf(rawPath);\n}\nfunction isFolderOrDescendant(path, ancestor) {\n\treturn path === ancestor || path.startsWith(`${ancestor}/`);\n}\nfunction replaceFolderPrefix(path, from, to) {\n\tif (path === from) return to;\n\treturn `${to}${path.slice(from.length)}`;\n}\n//#endregion\n//#region src/lib/core/raw-path.ts\nvar CONTROL_CHARACTERS = /[\\u0000-\\u001f\\u007f]/;\nvar WINDOWS_FORBIDDEN_CHARACTERS = /[<>:\"|?*]/;\nvar WINDOWS_RESERVED_NAME = /^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\\..*)?$/i;\nvar UUID_PATTERN = \"[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\";\nvar FUNDUS_TRANSACTION_NAME = new RegExp(`^(?:\\\\.fundus-replace-${UUID_PATTERN}\\\\.tmp|\\\\.fundus-delete(?:-assets)?-${UUID_PATTERN})$`, \"i\");\nvar FUNDUS_TRANSACTION_SUFFIX = new RegExp(`\\\\.fundus-(?:replace-)?${UUID_PATTERN}$`, \"i\");\n/** Whether a name is an exact Fundus-owned, short-lived transaction artifact. */\nfunction isFundusTransactionName(name) {\n\treturn FUNDUS_TRANSACTION_NAME.test(name) || FUNDUS_TRANSACTION_SUFFIX.test(name);\n}\n/** Validate one portable, externally-owned raw-file name. */\nfunction rawFileNameError(name) {\n\tif (name.length === 0) return \"Raw file names must not be empty.\";\n\tif (name !== name.normalize(\"NFC\")) return \"Raw file names must be Unicode-normalized (NFC).\";\n\tif (name !== name.trim()) return \"Raw file names must not start or end with whitespace.\";\n\tif (name === \".\" || name === \"..\") return `\"${name}\" is not a valid raw file name.`;\n\tif (name.includes(\"/\") || name.includes(\"\\\\\")) return \"Raw file names must not contain path separators.\";\n\tif (CONTROL_CHARACTERS.test(name)) return \"Raw file names must not contain control characters.\";\n\tif (WINDOWS_FORBIDDEN_CHARACTERS.test(name)) return \"Raw file names must not contain Windows-reserved characters (: * ? \\\" < > |).\";\n\tif (name.endsWith(\".\")) return \"Raw file names must not end with a dot.\";\n\tif (name.toLocaleLowerCase(\"en-US\") === \".gitkeep\") return `\"${name}\" is reserved for Fundus folder management.`;\n\tif (WINDOWS_RESERVED_NAME.test(name)) return `\"${name}\" is a reserved filesystem name.`;\n\tif (isFundusTransactionName(name)) return `\"${name}\" is reserved for Fundus transactions.`;\n\treturn null;\n}\n/** Validate a portable POSIX-relative raw path without permitting traversal. */\nfunction rawFilePathError(path) {\n\tif (path.length === 0 || path.startsWith(\"/\") || path.endsWith(\"/\") || path.includes(\"\\\\\")) return `Unsafe raw file path \"${path}\".`;\n\tconst segments = path.split(\"/\");\n\tfor (const segment of segments.slice(0, -1)) {\n\t\tconst problem = folderNameError(segment);\n\t\tif (problem) return `Invalid raw file path \"${path}\": ${problem}`;\n\t\tif (isFundusTransactionName(segment)) return `Invalid raw file path \"${path}\": \"${segment}\" is reserved for Fundus transactions.`;\n\t\tif (segment !== segment.normalize(\"NFC\")) return `Raw file path \"${path}\" is not Unicode-normalized (NFC).`;\n\t}\n\tconst fileProblem = rawFileNameError(segments.at(-1) ?? \"\");\n\treturn fileProblem ? `Invalid raw file path \"${path}\": ${fileProblem}` : null;\n}\n/** Portable case/normalization collision key for complete raw paths. */\nfunction portableRawPathKey(path) {\n\treturn normalizeFolderPath(path).toLocaleLowerCase(\"en-US\");\n}\n//#endregion\n//#region src/lib/core/ingest.ts\n/** The registered descriptors, in registration order. */\nvar BUILT_IN_DESCRIPTORS = plugins.values();\n/** Unique HTML file-picker accept extensions derived from descriptor claims. */\nfunction acceptedExtensions(descriptors = BUILT_IN_DESCRIPTORS) {\n\treturn [...new Set(descriptors.flatMap((descriptor) => descriptor.accepts))].sort().map((extension) => `.${extension}`);\n}\n/** HTML file-picker extensions accepted by one registered asset type. */\nfunction acceptedExtensionsForType(type, descriptors = BUILT_IN_DESCRIPTORS) {\n\treturn descriptors.find((descriptor) => descriptor.type === type)?.accepts.map((extension) => `.${extension}`).sort() ?? [];\n}\n/**\n* Types an ingested file of this extension could become — derived from the\n* descriptors' `accepts` claims. Raster images and video containers are\n* ambiguous (image/slice, video/chroma-key-video) — the editor dialog prompts\n* once, the CLI requires `--type`; audio is unambiguous.\n*/\nfunction typesForFileName(fileName, descriptors = BUILT_IN_DESCRIPTORS) {\n\tconst extension = fileName.slice(fileName.lastIndexOf(\".\") + 1).toLowerCase();\n\treturn descriptors.filter((descriptor) => descriptor.accepts.includes(extension)).map((descriptor) => descriptor.type);\n}\n/**\n* Propose a camelCase asset id from a file name: split on non-alphanumeric\n* runs and case boundaries, drop a `@2x`-style scale suffix, lowercase the\n* first word, capitalize the rest, strip leading digits.\n*/\nfunction proposeAssetId(fileName) {\n\tconst words = fileName.replace(/\\.[^.]+$/, \"\").replace(/(?:@|[-_])\\dx$/i, \"\").replace(/([a-z0-9])([A-Z])/g, \"$1 $2\").split(/[^a-zA-Z0-9]+/).filter(Boolean);\n\tif (words.length === 0) return \"asset\";\n\tconst withoutLeadingDigits = words.map((word, index) => index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(\"\").replace(/^[0-9]+/, \"\");\n\tif (!withoutLeadingDigits) return \"asset\";\n\treturn withoutLeadingDigits.charAt(0).toLowerCase() + withoutLeadingDigits.slice(1);\n}\n//#endregion\nexport { validateImagePreset as A, createZeroInsets as C, slicedAxesFor as D, maxOverdraw as E, isAssetReference as F, AUDIO_BUILT_IN_PRESETS as I, audioPlugin as L, VIDEO_BUILT_IN_PRESETS as M, validateVideoPreset as N, IMAGE_BUILT_IN_PRESETS as O, videoPlugin as P, validateAudioPreset as R, slicePlugin as S, maxInset as T, portableFolderPathKey as _, isFundusTransactionName as a, plugins as b, FOLDER_SENTINEL as c, folderOfRawPath as d, folderPathError as f, parentFolderPath as g, normalizeFolderPath as h, typesForFileName as i, chromaKeyVideoPlugin as j, imagePlugin as k, folderNameError as l, joinFolderPath as m, acceptedExtensionsForType as n, portableRawPathKey as o, isFolderOrDescendant as p, proposeAssetId as r, rawFilePathError as s, acceptedExtensions as t, folderNameOf as u, rawFileNameOfPath as v, defaultInsetsForSize as w, SLICE_BUILT_IN_PRESETS as x, replaceFolderPrefix as y };\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import './internal.js-Dn37LrAW.js';
1
+ import './internal.js-DnveDsYn.js';
2
2
 
3
3
  //#region node_modules/@sveltejs/kit/src/utils/array.js
4
4
  /**
@@ -149,4 +149,4 @@ var validate_layout_server_exports = validator(valid_layout_server_exports);
149
149
  var validate_page_server_exports = validator(valid_page_server_exports);
150
150
 
151
151
  export { validate_layout_exports as a, validate_page_server_exports as b, validate_page_exports as c, compact as d, hash as h, noop_span as n, validate_layout_server_exports as v };
152
- //# sourceMappingURL=exports.js-DvhE7Ffd.js.map
152
+ //# sourceMappingURL=exports.js-rOfFZumP.js.map