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
@@ -1,3 +0,0 @@
1
- import{B as e,D as t,E as n,F as r,G as i,J as a,K as o,L as s,M as c,N as l,O as u,P as d,S as f,T as p,V as m,W as h,X as g,Y as _,Z as v,a as y,at as b,c as x,et as S,f as C,g as w,h as T,i as E,it as ee,j as te,k as D,l as ne,o as re,q as O,s as ie,tt as ae,u as oe,y as se}from"../chunks/D65cSBhe.js";import{c as ce,t as le}from"../chunks/C8W3KwDq.js";import"../chunks/xihTtKlq.js";import{C as ue,D as de,O as fe,_ as k,h as pe,k as me,t as he}from"../chunks/BAEZPv6c.js";import{a as ge,c as _e,d as ve,f as ye,i as be,l as xe,n as Se,o as Ce,r as we,s as Te,t as Ee,u as De}from"../chunks/Db8LRH6X.js";import{t as Oe}from"../chunks/TZFh8bT7.js";function A(e){return Array.isArray?Array.isArray(e):Ne(e)===`[object Array]`}function ke(e){if(typeof e==`string`)return e;if(typeof e==`bigint`)return e.toString();let t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function Ae(e){return e==null?``:ke(e)}function j(e){return typeof e==`string`}function M(e){return typeof e==`number`}function je(e){return e===!0||e===!1||Me(e)&&Ne(e)==`[object Boolean]`}function N(e){return typeof e==`object`}function Me(e){return N(e)&&e!==null}function P(e){return e!=null}function F(e){return!e.trim().length}function Ne(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var I=`Incorrect 'index' type`,L=`Invalid doc index: must be a non-negative integer within the bounds of the docs array`,R=e=>`Invalid value for key ${e}`,z=e=>`Pattern length exceeds max of ${e}.`,Pe=e=>`Missing ${e} property in key`,B=e=>`Property 'weight' in key '${e}' must be a positive integer`,V=`Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.`,H=Object.prototype.hasOwnProperty,U=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let n=W(e);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function W(e){let t=null,n=null,r=null,i=1,a=null;if(j(e)||A(e))r=e,t=Fe(e),n=G(e);else{if(!H.call(e,`name`))throw Error(Pe(`name`));let o=e.name;if(r=o,H.call(e,`weight`)&&e.weight!==void 0&&(i=e.weight,i<=0))throw Error(B(G(o)));t=Fe(o),n=G(o),a=e.getFn??null}return{path:t,id:n,weight:i,src:r,getFn:a}}function Fe(e){return A(e)?e:e.split(`.`)}function G(e){return A(e)?e.join(`.`):e}function Ie(e,t){let n=[],r=!1,i=(e,t,a,o)=>{if(P(e))if(!t[a])n.push(o===void 0?e:{v:e,i:o});else{let s=e[t[a]];if(!P(s))return;if(a===t.length-1&&(j(s)||M(s)||je(s)||typeof s==`bigint`))n.push(o===void 0?Ae(s):{v:Ae(s),i:o});else if(A(s)){r=!0;for(let e=0,n=s.length;e<n;e+=1)i(s[e],t,a+1,e)}else t.length&&i(s,t,a+1,o)}};return i(e,j(t)?t.split(`.`):t,0),r?n:n[0]}var Le={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},Re={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},ze={location:0,threshold:.6,distance:100},K={useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:`any`,getFn:Ie,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},q=Object.freeze({...Re,...Le,...ze,...K});function Be(e=1,t=3){let n=new Map,r=10**t;return{get(t){let i=1,a=!1;for(let e=0;e<t.length;e++)t.charCodeAt(e)===32?a||=(i++,!0):a=!1;if(n.has(i))return n.get(i);let o=Math.round(r/i**(.5*e))/r;return n.set(i,o),o},clear(){n.clear()}}}var J=class{constructor({getFn:e=q.getFn,fieldNormWeight:t=q.fieldNormWeight}={}){this.norm=Be(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;let e=this.docs.length;this.records=Array(e);let t=0;if(j(this.docs[0]))for(let n=0;n<e;n++){let e=this._createStringRecord(this.docs[n],n);e&&(this.records[t++]=e)}else for(let n=0;n<e;n++)this.records[t++]=this._createObjectRecord(this.docs[n],n);this.records.length=t,this.norm.clear()}add(e,t){if(!Number.isInteger(t)||t<0)throw Error(L);if(j(e)){let n=this._createStringRecord(e,t);return n&&this.records.push(n),n}let n=this._createObjectRecord(e,t);return this.records.push(n),n}removeAt(e){if(!Number.isInteger(e)||e<0)throw Error(L);for(let t=0,n=this.records.length;t<n;t+=1)if(this.records[t].i===e){this.records.splice(t,1);break}for(let t=0,n=this.records.length;t<n;t+=1)this.records[t].i>e&&--this.records[t].i}removeAll(e){let t=new Set;for(let n of e)Number.isInteger(n)&&n>=0&&t.add(n);if(t.size===0)return;this.records=this.records.filter(e=>!t.has(e.i));let n=Array.from(t).sort((e,t)=>e-t);for(let e of this.records){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e.i?t=i+1:r=i}e.i-=t}}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_createStringRecord(e,t){return!P(e)||F(e)?null:{v:e,i:t,n:this.norm.get(e)}}_createObjectRecord(e,t){let n={i:t,$:{}};for(let t=0,r=this.keys.length;t<r;t++){let r=this.keys[t],i=r.getFn?r.getFn(e):this.getFn(e,r.path);if(P(i)){if(A(i)){let e=[];for(let t=0,n=i.length;t<n;t+=1){let n=i[t];if(P(n)){if(j(n)){if(!F(n)){let r={v:n,i:t,n:this.norm.get(n)};e.push(r)}}else if(P(n.v)){let t=j(n.v)?n.v:Ae(n.v);if(!F(t)){let r={v:t,i:n.i,n:this.norm.get(t)};e.push(r)}}}}n.$[t]=e}else if(j(i)&&!F(i)){let e={v:i,n:this.norm.get(i)};n.$[t]=e}}}return n}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}};function Ve(e,t,{getFn:n=q.getFn,fieldNormWeight:r=q.fieldNormWeight}={}){let i=new J({getFn:n,fieldNormWeight:r});return i.setKeys(e.map(W)),i.setSources(t),i.create(),i}function He(e,{getFn:t=q.getFn,fieldNormWeight:n=q.fieldNormWeight}={}){let{keys:r,records:i}=e,a=new J({getFn:t,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(i),a}function Y(e=[],t=q.minMatchCharLength){let n=[],r=-1,i=-1,a=0;for(let o=e.length;a<o;a+=1){let o=e[a];o&&r===-1?r=a:!o&&r!==-1&&(i=a-1,i-r+1>=t&&n.push([r,i]),r=-1)}return e[a-1]&&a-r>=t&&n.push([r,a-1]),n}function Ue(e,t,n,{location:r=q.location,distance:i=q.distance,threshold:a=q.threshold,findAllMatches:o=q.findAllMatches,minMatchCharLength:s=q.minMatchCharLength,includeMatches:c=q.includeMatches,ignoreLocation:l=q.ignoreLocation}={}){if(t.length>32)throw Error(z(32));let u=t.length,d=e.length,f=Math.max(0,Math.min(r,d)),p=a,m=f,h=(e,t)=>{let n=e/u;if(l)return n;let r=Math.abs(f-t);return i?n+r/i:r?1:n},g=s>1||c,_=g?Array(d):[],v;for(;(v=e.indexOf(t,m))>-1;){let e=h(0,v);if(p=Math.min(e,p),m=v+u,g){let e=0;for(;e<u;)_[v+e]=1,e+=1}}m=-1;let y=[],b=1,x=0,S=u+d,C=1<<u-1;for(let t=0;t<u;t+=1){let r=0,i=S;for(;r<i;)h(t,f+i)<=p?r=i:S=i,i=Math.floor((S-r)/2+r);S=i;let a=Math.max(1,f-i+1),s=o?d:Math.min(f+i,d)+u,c=Array(s+2);c[s+1]=(1<<t)-1;for(let r=s;r>=a;--r){let i=r-1,o=n[e[i]];if(c[r]=(c[r+1]<<1|1)&o,t&&(c[r]|=(y[r+1]|y[r])<<1|1|y[r+1]),c[r]&C&&(b=h(t,i),b<=p)){if(p=b,m=i,x=t,m<=f)break;a=Math.max(1,2*f-m)}}if(h(t+1,f)>p)break;y=c}if(g&&m>=0){let t=Math.min(d-1,m+u-1+x);for(let r=m;r<=t;r+=1)n[e[r]]&&(_[r]=1)}let w={isMatch:m>=0,score:Math.max(.001,b)};if(g){let e=Y(_,s);e.length?c&&(w.indices=e):w.isMatch=!1}return w}function We(e){let t={};for(let n=0,r=e.length;n<r;n+=1){let i=e.charAt(n);t[i]=(t[i]||0)|1<<r-n-1}return t}function Ge(e){if(e.length<=1)return e;e.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let t=[e[0]];for(let n=1,r=e.length;n<r;n+=1){let r=t[t.length-1],i=e[n];i[0]<=r[1]+1?r[1]=Math.max(r[1],i[1]):t.push(i)}return t}var Ke={ł:`l`,Ł:`L`,đ:`d`,Đ:`D`,ø:`o`,Ø:`O`,ħ:`h`,Ħ:`H`,ŧ:`t`,Ŧ:`T`,ı:`i`,ß:`ss`},qe=RegExp(`[`+Object.keys(Ke).join(``)+`]`,`g`),X=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFD`).replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,``).replace(qe,e=>Ke[e]):e=>e,Je=class{constructor(e,{location:t=q.location,threshold:n=q.threshold,distance:r=q.distance,includeMatches:i=q.includeMatches,findAllMatches:a=q.findAllMatches,minMatchCharLength:o=q.minMatchCharLength,isCaseSensitive:s=q.isCaseSensitive,ignoreDiacritics:c=q.ignoreDiacritics,ignoreLocation:l=q.ignoreLocation}={}){if(this.options={location:t,threshold:n,distance:r,includeMatches:i,findAllMatches:a,minMatchCharLength:o,isCaseSensitive:s,ignoreDiacritics:c,ignoreLocation:l},e=s?e:e.toLowerCase(),e=c?X(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;let u=(e,t)=>{this.chunks.push({pattern:e,alphabet:We(e),startIndex:t})},d=this.pattern.length;if(d>32){let e=0,t=d%32,n=d-t;for(;e<n;)u(this.pattern.substr(e,32),e),e+=32;if(t){let e=d-32;u(this.pattern.substr(e),e)}}else u(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r}=this.options;if(e=t?e:e.toLowerCase(),e=n?X(e):e,this.pattern===e){let t={isMatch:!0,score:0};return r&&(t.indices=[[0,e.length-1]]),t}let{location:i,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,ignoreLocation:l}=this.options,u=[],d=0,f=!1;this.chunks.forEach(({pattern:t,alphabet:n,startIndex:p})=>{let{isMatch:m,score:h,indices:g}=Ue(e,t,n,{location:i+p,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,includeMatches:r,ignoreLocation:l});m&&(f=!0),d+=h,m&&g&&u.push(...g)});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&r&&(p.indices=Ge(u)),p}},Ye=new Set([`fuzzy`,`include`]);function Xe(e){return e.startsWith(`inverse`)}var Z=[{type:`exact`,multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:e=>({type:`exact`,search(t){let n=t===e;return{isMatch:n,score:+!n,indices:[0,e.length-1]}}})},{type:`include`,multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:e=>({type:`include`,search(t){let n=0,r,i=[],a=e.length;for(;(r=t.indexOf(e,n))>-1;)n=r+a,i.push([r,n-1]);let o=!!i.length;return{isMatch:o,score:+!o,indices:i}}})},{type:`prefix-exact`,multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:e=>({type:`prefix-exact`,search(t){let n=t.startsWith(e);return{isMatch:n,score:+!n,indices:[0,e.length-1]}}})},{type:`inverse-prefix-exact`,multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:e=>({type:`inverse-prefix-exact`,search(t){let n=!t.startsWith(e);return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`inverse-suffix-exact`,multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:e=>({type:`inverse-suffix-exact`,search(t){let n=!t.endsWith(e);return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`suffix-exact`,multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:e=>({type:`suffix-exact`,search(t){let n=t.endsWith(e);return{isMatch:n,score:+!n,indices:[t.length-e.length,t.length-1]}}})},{type:`inverse-exact`,multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:e=>({type:`inverse-exact`,search(t){let n=t.indexOf(e)===-1;return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`fuzzy`,multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(e,t={})=>{let n=new Je(e,{location:t.location??q.location,threshold:t.threshold??q.threshold,distance:t.distance??q.distance,includeMatches:t.includeMatches??q.includeMatches,findAllMatches:t.findAllMatches??q.findAllMatches,minMatchCharLength:t.minMatchCharLength??q.minMatchCharLength,isCaseSensitive:t.isCaseSensitive??q.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics??q.ignoreDiacritics,ignoreLocation:t.ignoreLocation??q.ignoreLocation});return{type:`fuzzy`,search(e){return n.searchIn(e)}}}}],Ze=Z.length,Qe=`\0`,$e=`|`;function et(e){let t=[],n=e.length,r=0;for(;r<n;){for(;r<n&&e[r]===` `;)r++;if(r>=n)break;let i=r;for(;i<n&&e[i]!==` `&&e[i]!==`"`;)i++;if(i<n&&e[i]===`"`){for(i++;i<n;){if(e[i]===`"`){let t=i+1;if(t>=n||e[t]===` `){i++;break}if(e[t]===`$`&&(t+1>=n||e[t+1]===` `)){i+=2;break}}i++}t.push(e.substring(r,i)),r=i}else{for(;i<n&&e[i]!==` `;)i++;t.push(e.substring(r,i)),r=i}}return t}function tt(e,t){let n=e.match(t);return n?n[1]:null}function nt(e,t={}){return e.replace(/\\\|/g,Qe).split($e).map(e=>{let n=et(e.replace(/\u0000/g,`|`).trim()).filter(e=>e&&!!e.trim()),r=[];for(let e=0,i=n.length;e<i;e+=1){let i=n[e],a=!1,o=-1;for(;!a&&++o<Ze;){let e=Z[o],n=tt(i,e.multiRegex);n&&(r.push(e.create(n,t)),a=!0)}if(!a)for(o=-1;++o<Ze;){let e=Z[o],n=tt(i,e.singleRegex);if(n){r.push(e.create(n,t));break}}}return r})}var rt=class{constructor(e,{isCaseSensitive:t=q.isCaseSensitive,ignoreDiacritics:n=q.ignoreDiacritics,includeMatches:r=q.includeMatches,minMatchCharLength:i=q.minMatchCharLength,ignoreLocation:a=q.ignoreLocation,findAllMatches:o=q.findAllMatches,location:s=q.location,threshold:c=q.threshold,distance:l=q.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r,minMatchCharLength:i,findAllMatches:o,ignoreLocation:a,location:s,threshold:c,distance:l},e=t?e:e.toLowerCase(),e=n?X(e):e,this.pattern=e,this.query=nt(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:n,isCaseSensitive:r,ignoreDiacritics:i}=this.options;e=r?e:e.toLowerCase(),e=i?X(e):e;let a=0,o=[],s=0,c=!1;for(let r=0,i=t.length;r<i;r+=1){let i=t[r];o.length=0,a=0,c=!1;for(let t=0,r=i.length;t<r;t+=1){let r=i[t],{isMatch:l,indices:u,score:d}=r.search(e);if(l)a+=1,s+=d,Xe(r.type)&&(c=!0),n&&(Ye.has(r.type)?o.push(...u):o.push(u));else{s=0,a=0,o.length=0,c=!1;break}}if(a){let e={isMatch:!0,score:s/a};return c&&(e.hasInverse=!0),n&&(e.indices=Ge(o)),e}}return{isMatch:!1,score:1}}},it=[];function at(...e){it.push(...e)}function ot(e,t){for(let n=0,r=it.length;n<r;n+=1){let r=it[n];if(r.condition(e,t))return new r(e,t)}return new Je(e,t)}var Q={AND:`$and`,OR:`$or`},st={PATH:`$path`,PATTERN:`$val`},ct=e=>!!(e[Q.AND]||e[Q.OR]),lt=e=>!!e[st.PATH],ut=e=>!A(e)&&N(e)&&!ct(e),dt=e=>({[Q.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function ft(e,t,{auto:n=!0}={}){let r=e=>{if(j(e)){let r={keyId:null,pattern:e};return n&&(r.searcher=ot(e,t)),r}let i=Object.keys(e),a=lt(e);if(!a&&i.length>1&&!ct(e))return r(dt(e));if(ut(e)){let r=a?e[st.PATH]:i[0],o=a?e[st.PATTERN]:e[r];if(!j(o))throw Error(R(r));let s={keyId:G(r),pattern:o};return n&&(s.searcher=ot(o,t)),s}let o={children:[],operator:i[0]};return i.forEach(t=>{let n=e[t];A(n)&&n.forEach(e=>{o.children.push(r(e))})}),o};return ct(e)||(e=dt(e)),r(e)}function pt(e,{ignoreFieldNorm:t=q.ignoreFieldNorm}){let n=1;return e.forEach(({key:e,norm:r,score:i})=>{let a=e?e.weight:null;n*=(i===0&&a?2**-52:i)**+((a||1)*(t?1:r))}),n}function mt(e,{ignoreFieldNorm:t=q.ignoreFieldNorm}){e.forEach(e=>{e.score=pt(e.matches,{ignoreFieldNorm:t})})}var ht=class{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){let t=this.heap;for(;e>0;){let n=e-1>>1;if(t[e].score<=t[n].score)break;let r=t[e];t[e]=t[n],t[n]=r,e=n}}_sinkDown(e){let t=this.heap,n=t.length,r=e;do{e=r;let i=2*e+1,a=2*e+2;if(i<n&&t[i].score>t[r].score&&(r=i),a<n&&t[a].score>t[r].score&&(r=a),r!==e){let n=t[e];t[e]=t[r],t[r]=n}}while(r!==e)}};function gt(e){let t=[];return e.matches.forEach(e=>{if(!P(e.indices)||!e.indices.length)return;let n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.id),e.idx>-1&&(n.refIndex=e.idx),t.push(n)}),t}function _t(e,t,{includeMatches:n=q.includeMatches,includeScore:r=q.includeScore}={}){return e.map(e=>{let{idx:i}=e,a={item:t[i],refIndex:i};return n&&(a.matches=gt(e)),r&&(a.score=e.score),a})}var vt=/[\p{L}\p{M}\p{N}_]+/gu,yt=new WeakSet;function bt(e){yt.has(e)||(yt.add(e),console.warn(`[Fuse] tokenize regex ${e} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function xt(e){if(typeof e==`function`){let t=!1;return n=>{let r=e(n);if(!t&&(t=!0,!Array.isArray(r)||r.some(e=>typeof e!=`string`)))throw Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(r)?`array containing non-strings`:typeof r}.`);return r}}return e instanceof RegExp?(e.global||bt(e),t=>t.match(e)||[]):e=>e.match(vt)||[]}function St({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:n}={}){let r=xt(n);return{tokenize(n){return e||(n=n.toLowerCase()),t&&(n=X(n)),r(n)}}}var Ct=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=St({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,tokenize:t.tokenize});let n=this.analyzer.tokenize(e),{df:r,fieldCount:i}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(let e of n){this.termSearchers.push(new Je(e,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));let n=r.get(e)||0,a=Math.log(1+(i-n+.5)/(n+.5));this.idfWeights.push(a)}this.combineAll=t.tokenMatch===`all`,this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};let t=[],n=0,r=0,i=0,a=0,o=this.combineAll&&!this.useMask?new Set:null;for(let s=0;s<this.termSearchers.length;s++){let c=this.termSearchers[s].searchIn(e),l=this.idfWeights[s];r+=l,c.isMatch&&(i++,n+=l*(1-c.score),c.indices&&t.push(...c.indices),this.combineAll&&(this.useMask?a|=1<<s:o.add(s)))}if(i===0)return{isMatch:!1,score:1};let s=r>0?1-n/r:0,c={isMatch:!0,score:Math.max(.001,s)};return this.options.includeMatches&&t.length&&(c.indices=Ge(t)),this.combineAll&&(this.useMask?c.matchedMask=a:c.matchedTerms=o,c.termCount=this.numTerms),c}};function wt(e,t,n,r){let i=r.tokenize(t);if(!i.length)return;e.fieldCount++,e.docFieldCount.set(n,(e.docFieldCount.get(n)||0)+1);let a=new Set(i),o=e.docTermFieldHits.get(n);o||(o=new Map,e.docTermFieldHits.set(n,o));for(let t of a)o.set(t,(o.get(t)||0)+1),e.df.set(t,(e.df.get(t)||0)+1)}function Tt(e,t,n,r){let{i,v:a,$:o}=t;if(a!==void 0){wt(e,a,i,r);return}if(o)for(let t=0;t<n;t++){let n=o[t];if(n)if(Array.isArray(n))for(let t of n)wt(e,t.v,i,r);else wt(e,n.v,i,r)}}function Et(e,t,n){let r={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(let i of e)Tt(r,i,t,n);return r}function Dt(e,t,n,r){Tt(e,t,n,r)}function Ot(e,t){let n=e.docFieldCount.get(t);if(n===void 0)return;e.fieldCount-=n,e.docFieldCount.delete(t);let r=e.docTermFieldHits.get(t);if(r){for(let[t,n]of r){let r=(e.df.get(t)||0)-n;r<=0?e.df.delete(t):e.df.set(t,r)}e.docTermFieldHits.delete(t)}}function kt(e,t){if(t.length===0)return;let n=Array.from(new Set(t)).sort((e,t)=>e-t);for(let t of n)Ot(e,t);let r=e=>{let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e?t=i+1:r=i}return e-t},i=n[0],a=new Map;for(let[t,n]of e.docFieldCount)a.set(t>i?r(t):t,n);e.docFieldCount=a;let o=new Map;for(let[t,n]of e.docTermFieldHits)o.set(t>i?r(t):t,n);e.docTermFieldHits=o}var $=class{constructor(e,t,n){this.options={...q,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new U(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;let t=ot(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof J))throw Error(I);if(this._myIndex=t||Ve(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=St({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=Et(this._myIndex.records,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}add(e){if(!P(e))return;this._docs.push(e);let t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){let e=St({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Dt(this._invertedIndex,t,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}remove(e=()=>!1){let t=[],n=[];for(let r=0,i=this._docs.length;r<i;r+=1)e(this._docs[r],r)&&(t.push(this._docs[r]),n.push(r));if(n.length){this._invertedIndex&&kt(this._invertedIndex,n);let e=new Set(n);this._docs=this._docs.filter((t,n)=>!e.has(n)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return t}removeAt(e){if(!Number.isInteger(e)||e<0||e>=this._docs.length)throw Error(L);this._invertedIndex&&kt(this._invertedIndex,[e]);let t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),this._invalidateSearcherCache(),t}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}search(e,t){let{limit:n=-1}=t||{},{includeMatches:r,includeScore:i,shouldSort:a,sortFn:o,ignoreFieldNorm:s}=this.options;if(j(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return M(n)&&n>-1&&(e=e.slice(0,n)),e}let c=M(n)&&n>0&&j(e),l;if(c){let t=new ht(n);j(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:s}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:s}),l=t.extractSorted(o)}else l=j(e)?j(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),mt(l,{ignoreFieldNorm:s}),a&&l.sort(o),M(n)&&n>-1&&(l=l.slice(0,n));return _t(l,this._docs,{includeMatches:r,includeScore:i})}_searchStringList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{records:a}=this._myIndex,o=t?null:[];return a.forEach(({v:e,i:a,n:s})=>{if(!P(e))return;let c=r.searchIn(e);if(c.isMatch){let r={score:c.score,value:e,norm:s,indices:c.indices};i&&(r.matchedMask=c.matchedMask,r.matchedTerms=c.matchedTerms,r.termCount=c.termCount);let l=[r];if(!i||this._coversAllTokens(l)){let r={item:e,idx:a,matches:l};t?(r.score=pt(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):o.push(r)}}}),o}_searchLogical(e){let t=ft(e,this.options),n=(e,t,r)=>{if(!(`children`in e)){let{keyId:n,searcher:i}=e,a;return n===null?(a=[],this._myIndex.keys.forEach((e,n)=>{a.push(...this._findMatches({key:e,value:t[n],searcher:i}))})):a=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:i}),a&&a.length?[{idx:r,item:t,matches:a}]:[]}let{children:i,operator:a}=e,o=[];for(let e=0,s=i.length;e<s;e+=1){let s=i[e],c=n(s,t,r);if(c.length)o.push(...c);else if(a===Q.AND)return[]}return o},r=this._myIndex.records,i=new Map,a=[];return r.forEach(({$:e,i:r})=>{if(P(e)){let o=n(t,e,r);o.length&&(i.has(r)||(i.set(r,{idx:r,item:e,matches:[]}),a.push(i.get(r))),o.forEach(({matches:e})=>{i.get(r).matches.push(...e)}))}}),a}_searchObjectList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{keys:a,records:o}=this._myIndex,s=t?null:[];return o.forEach(({$:e,i:o})=>{if(!P(e))return;let c=[],l=!1,u=!1;if(a.forEach((t,n)=>{let i=this._findMatches({key:t,value:e[n],searcher:r});i.length?(c.push(...i),i[0].hasInverse&&(u=!0)):l=!0}),!(u&&l)&&c.length&&(!i||this._coversAllTokens(c))){let r={idx:o,item:e,matches:c};t?(r.score=pt(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):s.push(r)}}),s}_findMatches({key:e,value:t,searcher:n}){if(!P(t))return[];let r=[];if(A(t))t.forEach(({v:t,i,n:a})=>{if(!P(t))return;let o=n.searchIn(t);if(o.isMatch){let n={score:o.score,key:e,value:t,idx:i,norm:a,indices:o.indices,hasInverse:o.hasInverse};o.termCount!==void 0&&(n.matchedMask=o.matchedMask,n.matchedTerms=o.matchedTerms,n.termCount=o.termCount),r.push(n)}});else{let{v:i,n:a}=t,o=n.searchIn(i);if(o.isMatch){let t={score:o.score,key:e,value:i,norm:a,indices:o.indices,hasInverse:o.hasInverse};o.termCount!==void 0&&(t.matchedMask=o.matchedMask,t.matchedTerms=o.matchedTerms,t.termCount=o.termCount),r.push(t)}}return r}_coversAllTokens(e){let t=e.length?e[0].termCount:void 0;if(t===void 0)return!0;if(t<=31){let n=0;for(let t=0;t<e.length;t++)n|=e[t].matchedMask||0;return n===2**t-1}let n=new Set;for(let t=0;t<e.length;t++){let r=e[t].matchedTerms;if(r)for(let e of r)n.add(e)}return n.size===t}};$.version=`7.4.2`,$.createIndex=Ve,$.parseIndex=He,$.config=q,$.match=function(e,t,n){if(n&&n.useTokenSearch)throw Error(V);return ot(e,{...q,...n}).searchIn(t)},$.parseQuery=ft,at(rt),at(Ct),$.use=function(...e){e.forEach(e=>at(e))};var At=$,jt=D(`<button role="menuitem" class="svelte-109nkvw">Rename…</button>`),Mt=D(`<div class="context-menu svelte-109nkvw" role="menu" aria-label="Asset actions" tabindex="-1"><!> <button class="danger svelte-109nkvw" role="menuitem"> </button></div>`);function Nt(a,o){ae(o,!0);let s=v(()=>Math.max(8,Math.min(o.x,window.innerWidth-176))),c=v(()=>o.onRename?2:1),u=v(()=>Math.max(8,Math.min(o.y,window.innerHeight-(r(c)*32+8))));function f(e){e(),o.onClose()}var m=Mt();d(`click`,h,function(...e){o.onClose?.apply(this,e)}),d(`blur`,h,function(...e){o.onClose?.apply(this,e)}),d(`keydown`,h,e=>e.key===`Escape`&&o.onClose()),d(`resize`,h,function(...e){o.onClose?.apply(this,e)}),d(`scroll`,h,function(...e){o.onClose?.apply(this,e)});let g;var _=i(m),y=e=>{var n=jt();l(`click`,n,()=>f(o.onRename)),t(e,n)};p(_,e=>{o.onRename&&e(y)});var x=O(_,2),C=i(x,!0);b(x),b(m),e(()=>{g=T(m,``,g,{left:`${r(s)}px`,top:`${r(u)}px`}),n(C,o.assetCount===1?`Delete Asset`:`Delete ${o.assetCount} Assets`)}),l(`contextmenu`,m,e=>e.preventDefault()),l(`click`,x,()=>f(o.onDelete)),t(a,m),S()}c([`contextmenu`,`click`]);var Pt=D(`<span class="emoji svelte-1b4m5oj"> </span>`),Ft=D(`<span><!> <span class="name svelte-1b4m5oj"> </span></span>`);function It(a,o){ae(o,!0);let s=E(o,`variant`,3,`chip`),c=E(o,`passive`,3,!1),l=E(o,`via`,19,()=>[]),u=v(()=>k.manifestAppearance(o.name)),d=v(()=>r(u).color??`var(--accent)`),f=v(()=>c()?`${o.name} — passive member${l().length>0?`, via ${l().join(`, `)}`:``}`:o.name);var m=Ft();let h;var g=i(m),_=a=>{var o=Pt(),s=i(o,!0);b(o),e(()=>n(s,r(u).emoji)),t(a,o)};p(g,e=>{r(u).emoji&&e(_)});var y=O(g,2),x=i(y,!0);b(y),b(m),e(()=>{h=w(m,1,`manifest-label ${s()??``}`,`svelte-1b4m5oj`,h,{passive:c()}),T(m,`--manifest-color: ${r(d)??``}`),ne(m,`title`,r(f)),n(x,o.name)}),t(a,m),S()}var Lt=D(`<span class="selection-summary svelte-1uha8ag"> </span> <button class="control">Select all shown</button> <button class="control">Clear</button>`,1),Rt=D(`<button class="control">Select All</button>`),zt=D(`<option> </option>`),Bt=D(`<div class="empty svelte-1uha8ag">Loading library…</div>`),Vt=D(`<div class="empty svelte-1uha8ag"> </div>`),Ht=D(`<button draggable="true"><span class="folder-card-icon svelte-1uha8ag"><!></span> <span class="folder-card-details svelte-1uha8ag"><strong class="svelte-1uha8ag"> </strong> <span class="svelte-1uha8ag"> </span></span> <span class="folder-card-arrow svelte-1uha8ag">›</span></button>`),Ut=D(`<section class="section folder-section svelte-1uha8ag"><!> <div class="folder-grid svelte-1uha8ag"></div></section>`),Wt=D(`<span class="section-emoji svelte-1uha8ag"> </span>`),Gt=D(`<!> `,1),Kt=D(`<span class="badge warning svelte-1uha8ag">⚠</span>`),qt=D(`<a draggable="true"><input class="asset-select svelte-1uha8ag" type="checkbox"/> <div class="thumbnail checkerboard svelte-1uha8ag"><!></div> <div class="meta svelte-1uha8ag"><span class="id svelte-1uha8ag"> </span> <span class="type-badge svelte-1uha8ag"> </span></div> <div class="badges svelte-1uha8ag"><!> <!> <!></div></a>`),Jt=D(`<section class="section svelte-1uha8ag"><!> <div class="grid svelte-1uha8ag"></div></section>`),Yt=D(`<!> <!>`,1),Xt=D(`<div class="drop-hint svelte-1uha8ag"> </div>`),Zt=D(`<p class="dialog-warning svelte-1uha8ag"> </p>`),Qt=D(`<p class="dialog-warning svelte-1uha8ag">An asset with this ID already exists.</p>`),$t=D(`<label class="dialog-row svelte-1uha8ag"><span class="svelte-1uha8ag">ID</span> <input class="control svelte-1uha8ag" spellcheck="false"/></label> <!> <!> <!> <!>`,1),en=D(`<p class="dialog-text svelte-1uha8ag"> </p> <!> <!>`,1),tn=D(`<div class="library-view svelte-1uha8ag"><!> <div role="application" aria-label="Asset library — drop a file anywhere to import it"><div class="selection-bar svelte-1uha8ag"><!> <button class="control import svelte-1uha8ag">Import file</button> <input type="file" hidden=""/></div> <div class="filter-bar svelte-1uha8ag"><select class="control" aria-label="Sort"><option>Sort alphabetically</option><option>Sort by type</option><option>Sort by manifest</option></select> <select class="control" aria-label="Filter by type"><option>All types</option><!></select> <select class="control" aria-label="Filter by manifest"><option>All manifests</option><!></select> <div class="control search svelte-1uha8ag"><svg class="search-icon svelte-1uha8ag" viewBox="0 0 16 16" aria-hidden="true"><circle cx="7" cy="7" r="4.5"></circle><path d="m10.5 10.5 3 3"></path></svg> <input class="search-input svelte-1uha8ag" type="search" placeholder="Search assets and folders…" aria-label="Search assets and folders" spellcheck="false"/> <kbd class="svelte-1uha8ag"> </kbd></div> <label class="toggle svelte-1uha8ag"><input type="checkbox"/> Warnings only</label></div> <!> <!></div></div> <!> <!> <!> <!> <!>`,1);function nn(c,T){ae(T,!0);let E=`fundus.gallery.sort`,D=`fundus.gallery.folder`;function A(){try{let e=localStorage.getItem(E);if(e===`type`||e===`manifest`||e===`alphabetical`)return e}catch{}return`alphabetical`}let ke=g(a(A()));function Ae(){try{let e=localStorage.getItem(D);return e===null||e===`__all__`?null:e}catch{return null}}let j=g(a(Ae())),M=g(`all`),je=g(`all`),N=g(``),Me=g(!1),P=g(!1),F=g(null),Ne=g(``),I=g(null),L=g(null),R=g(null),z=g(``),Pe=g(void 0),B=g(a([])),V=g(null),H=g(null),U=g(!1),W=g(null),Fe=g(null),G=0,Ie=g(null),Le=0,Re=g(null),ze=0,K=g(a([])),q=g(null),Be=g(void 0),J=g(void 0),Ve=he().join(`,`),He=/Mac|iPhone|iPad/.test(navigator.platform)?`⌘K`:`Ctrl K`;m(()=>{try{localStorage.setItem(E,r(ke))}catch{}}),m(()=>{try{localStorage.setItem(D,r(j)??`__all__`)}catch{}});let Y=v(()=>k.state?.assets??[]),Ue=v(()=>r(R)!==null&&r(z)!==r(R)?pe(r(z)):null),We=v(()=>r(R)!==null&&r(Y).some(e=>e.id!==r(R)&&e.id===r(z))),Ge=v(()=>r(R)!==null&&r(z)!==r(R)&&r(Ue)===null&&!r(We)&&!r(U)),Ke=v(()=>r(R)===null?[]:(r(Y).find(e=>e.id===r(R))?.references.incoming??[]).map(e=>`${e.assetId}.${e.field} → ${r(R)}`)),qe=v(()=>new Set(r(B))),X=v(()=>r(B).flatMap(e=>(r(Y).find(t=>t.id===e)?.references.incoming??[]).filter(e=>!r(qe).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e}`))),Je=v(()=>k.state?.library.folders??[]),Ye=v(()=>k.manifestNames),Xe=v(()=>[...new Set(r(Y).map(e=>e.type))].sort()),Z=v(()=>r(N).trim()),Ze=v(()=>new At(r(Y),{keys:[{name:`id`,weight:.5},{name:`raw`,weight:.2},{name:`folder`,weight:.1},{name:`manifests`,weight:.08},{name:`passiveManifests.manifest`,weight:.07},{name:`type`,weight:.05}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),Qe=v(()=>r(Z)===``?null:new Set(r(Ze).search(r(Z)).map(({item:e})=>e.id))),$e=v(()=>r(Je).map(e=>({path:e,name:xe(e)}))),et=v(()=>new At(r($e),{keys:[{name:`name`,weight:.7},{name:`path`,weight:.3}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),tt=v(()=>r(Z)===``?null:new Set(r(et).search(r(Z)).map(({item:e})=>e.path))),nt=v(()=>r(j)===null?[]:r(Je).filter(e=>ye(e)===r(j)).sort((e,t)=>e.localeCompare(t))),rt=v(()=>r(tt)===null?r(nt):r(nt).filter(e=>r(tt).has(e)));m(()=>{k.state&&r(j)!==null&&r(j)!==``&&!r(Je).includes(r(j))&&_(j,null)});let it=v(()=>r(Y).filter(e=>!(r(j)!==null&&e.folder!==r(j)||r(Qe)!==null&&!r(Qe).has(e.id)||r(M)!==`all`&&e.type!==r(M)||r(je)!==`all`&&!e.manifests.includes(r(je))&&!e.passiveManifests.some(e=>e.manifest===r(je))||r(Me)&&e.warnings.length===0))),at=(e,t)=>e.id.localeCompare(t.id),ot=v(()=>{let e=[...r(it)].sort(at);if(r(ke)===`alphabetical`)return[{key:`all`,heading:null,assets:e}];if(r(ke)===`type`)return[...new Set(e.map(e=>e.type))].sort().map(t=>({key:t,heading:t,assets:e.filter(e=>e.type===t)}));let t=[];for(let n of r(Ye)){let r=e.filter(e=>e.manifests.includes(n)||e.passiveManifests.some(e=>e.manifest===n));r.length>0&&t.push({key:n,heading:n,emoji:k.manifestAppearance(n).emoji,assets:r})}let n=e.filter(e=>e.manifests.length===0&&e.passiveManifests.length===0);return n.length>0&&t.push({key:`__no-manifest__`,heading:`No manifest`,assets:n}),t}),Q=v(()=>[...new Set(r(ot).flatMap(e=>e.assets.map(e=>e.id)))]);m(()=>{let e=new Set(r(Y).map(e=>e.id)),t=r(K).filter(t=>e.has(t));t.length!==r(K).length&&_(K,t,!0)});function st(e){_(j,e,!0),_(K,[],!0),_(q,null)}function ct(e,t){if(t&&r(q)!==null){let t=r(Q).indexOf(r(q)),n=r(Q).indexOf(e);if(t!==-1&&n!==-1){let i=Math.min(t,n),a=Math.max(t,n);_(K,[...new Set([...r(K),...r(Q).slice(i,a+1)])],!0),_(q,e,!0);return}}_(K,r(K).includes(e)?r(K).filter(t=>t!==e):[...r(K),e],!0),_(q,e,!0)}function lt(){_(K,[...r(Q)],!0),_(q,r(Q).at(-1)??null,!0)}function ut(e,t){if(!e.dataTransfer||t.length<2)return;let n=[...document.querySelectorAll(`.card[data-asset-id]`)],r=t.map(e=>n.find(t=>t.dataset.assetId===e)).filter(e=>e!==void 0);if(r.length<2)return;let i=document.createElement(`div`),a=44/(r.length-1),o=Math.min(r[0].offsetWidth,180),s=r[0].offsetHeight;Object.assign(i.style,{position:`fixed`,left:`-10000px`,top:`-10000px`,width:`${o+44}px`,height:`${s+44}px`,pointerEvents:`none`});for(let[e,t]of r.entries()){let n=t.cloneNode(!0);n.querySelector(`.asset-select`)?.remove(),n.removeAttribute(`href`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,{position:`absolute`,left:`${e*a}px`,top:`${e*a}px`,width:`${o}px`,height:`${s}px`,boxSizing:`border-box`,opacity:`1`}),i.append(n)}let c=document.createElement(`span`);c.textContent=String(t.length),Object.assign(c.style,{position:`absolute`,right:`0`,top:`0`,minWidth:`28px`,height:`28px`,padding:`0 7px`,boxSizing:`border-box`,borderRadius:`14px`,background:`var(--accent)`,color:`var(--text)`,font:`600 13px/28px system-ui, sans-serif`,textAlign:`center`,boxShadow:`0 2px 8px rgba(0, 0, 0, 0.35)`}),i.append(c),document.body.append(i),e.dataTransfer.setDragImage(i,24,24),requestAnimationFrame(()=>i.remove())}function dt(e){e.preventDefault(),_(P,!1);let t=e.dataTransfer?.files?.[0];t&&(_(Ne,r(j)??``,!0),_(F,t,!0))}function ft(e){_(Ne,e,!0),r(Be)?.click()}function pt(e){G+=1,_(Fe,{id:G,parent:e},!0)}function mt(e){Le+=1,_(Ie,{id:Le,path:e},!0)}function ht(e){ze+=1,_(Re,{id:ze,path:e},!0)}function gt(e){e.preventDefault(),_(L,null),_(I,{x:e.clientX,y:e.clientY,parent:r(j)??``,renamePath:null},!0)}function _t(e,t){e.preventDefault(),e.stopPropagation(),_(L,null),_(I,{x:e.clientX,y:e.clientY,parent:t,renamePath:t},!0)}function vt(e,t){e.preventDefault(),e.stopPropagation(),_(I,null);let n=r(K).includes(t)?[...r(K)]:[t];r(K).includes(t)||(_(K,[t],!0),_(q,t,!0)),_(L,{x:e.clientX,y:e.clientY,assetIds:n},!0)}function yt(e){_(R,e,!0),_(z,e,!0),_(W,null),s().then(()=>{r(Pe)?.focus(),r(Pe)?.select()})}function bt(e){_(B,[...new Set(e)],!0),_(W,null)}function xt(){r(U)||(_(R,null),_(B,[],!0),_(W,null))}async function St(){if(!r(Ge)||r(R)===null)return;let e=r(R),t=r(z);_(U,!0),_(W,null);try{await k.mutate(()=>me(e,{renameTo:t})),_(K,r(K).map(n=>n===e?t:n),!0),_(q,r(q)===e?t:r(q),!0),_(R,null)}catch(e){_(W,e instanceof Error?e.message:String(e),!0)}finally{_(U,!1)}}async function Ct(){if(r(B).length===0)return;let e=[...r(B)];_(U,!0),_(W,null);try{await k.mutate(()=>ue(e));let t=new Set(e);_(K,r(K).filter(e=>!t.has(e)),!0),r(q)!==null&&t.has(r(q))&&_(q,null),_(B,[],!0)}catch(e){_(W,e instanceof Error?e.message:String(e),!0)}finally{_(U,!1)}}function wt(e){return r(Y).filter(t=>t.folder===e).length}function Tt(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&_(F,n,!0)}async function Et(e){_(F,null),await le(ce(`/asset/[id]`,{id:e}))}async function Dt(e,t){let n=e.filter(e=>k.assetById(e)?.folder!==t);if(n.length!==0)try{await k.mutate(()=>de(n,t)),_(K,[],!0),_(q,null)}catch{}}function Ot(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,i=be(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,r(V),t);!n&&!i||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),_(H,t,!0))}function kt(e,t){e.preventDefault(),_(H,null);let n=e.dataTransfer?.getData(`application/x-fundus-assets`);if(n){try{let e=JSON.parse(n);Array.isArray(e)&&e.every(e=>typeof e==`string`)&&Dt(e,t)}catch{}return}let r=e.dataTransfer?.getData(`application/x-fundus-folder`);r&&ge(r,t)&&$(r,t)}async function $(e,t){let n=ve(t,xe(e));try{await k.mutate(()=>fe(e,t)),r(j)!==null&&De(r(j),e)&&st(`${n}${r(j).slice(e.length)}`)}catch{}finally{_(V,null),_(H,null)}}function jt(e){e&&e.play().catch(()=>{})}function Mt(e){e&&(e.pause(),e.currentTime=0)}function Pt(e){e.defaultPrevented||e.altKey||e.shiftKey||!e.metaKey&&!e.ctrlKey||e.key.toLowerCase()!==`k`||document.querySelector(`[role="dialog"]`)!==null||(e.preventDefault(),r(J)?.focus(),r(J)?.select())}var Ft=tn();d(`keydown`,h,Pt),d(`dragenter`,h,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),_(P,!0))}),d(`dragover`,h,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),_(P,!0))}),d(`drop`,h,dt);var nn=o(Ft),rn=i(nn);Se(rn,{get selectedFolder(){return r(j)},get createRequest(){return r(Fe)},get renameRequest(){return r(Ie)},get deleteRequest(){return r(Re)},onSelect:st,onMoveAssets:(e,t)=>void Dt(e,t),get sharedDraggedFolder(){return r(V)},onFolderDragStart:e=>_(V,e,!0),onFolderDragEnd:()=>_(V,null),onContextMenu:(e,t,n,r)=>{_(L,null),_(I,{x:e,y:t,parent:n,renamePath:r},!0)}});var an=O(rn,2);let on;var sn=i(an),cn=i(sn),ln=a=>{var s=Lt(),c=o(s),u=i(c);b(c);var d=O(c,2),f=O(d,2);e(()=>n(u,`${r(K).length??``} selected`)),l(`click`,d,lt),l(`click`,f,()=>{_(K,[],!0),_(q,null)}),t(a,s)},un=n=>{var i=Rt();e(()=>i.disabled=r(Q).length===0),l(`click`,i,lt),t(n,i)};p(cn,e=>{r(K).length>0?e(ln):e(un,-1)});var dn=O(cn,2),fn=O(dn,2);y(fn,e=>_(Be,e),()=>r(Be)),b(sn);var pn=O(sn,2),mn=i(pn),hn=i(mn);hn.value=hn.__value=`alphabetical`;var gn=O(hn);gn.value=gn.__value=`type`;var _n=O(gn);_n.value=_n.__value=`manifest`,b(mn);var vn=O(mn,2),yn=i(vn);yn.value=yn.__value=`all`,f(O(yn),16,()=>r(Xe),e=>e,(r,a)=>{var o=zt(),s=i(o,!0);b(o);var c={};e(()=>{n(s,a),c!==(c=a)&&(o.value=(o.__value=a)??``)}),t(r,o)}),b(vn);var bn=O(vn,2),xn=i(bn);xn.value=xn.__value=`all`,f(O(xn),16,()=>r(Ye),e=>e,(a,o)=>{let s=v(()=>k.manifestAppearance(o).emoji);var c=zt(),l=i(c,!0);b(c);var u={};e(()=>{n(l,r(s)?`${r(s)} ${o}`:o),u!==(u=o)&&(c.value=(c.__value=o)??``)}),t(a,c)}),b(bn);var Sn=O(bn,2),Cn=O(i(Sn),2);x(Cn),y(Cn,e=>_(J,e),()=>r(J));var wn=O(Cn,2),Tn=i(wn,!0);b(wn),b(Sn);var En=O(Sn,2),Dn=i(En);x(Dn),ee(),b(En),b(pn);var On=O(pn,2),kn=e=>{t(e,Bt())},An=a=>{var o=Vt(),s=i(o,!0);b(o),e(()=>n(s,r(Y).length===0?`No assets yet — drop an image anywhere to import it.`:`Nothing matches the current filters.`)),t(a,o)},jn=a=>{var s=Yt(),c=o(s),m=a=>{var o=Ut(),s=i(o);_e(s,{children:(e,n)=>{ee(),t(e,te(`Folders`))},$$slots:{default:!0}});var c=O(s,2);f(c,20,()=>r(rt),e=>e,(a,o)=>{var s=Ht();let c;var u=i(s);we(i(u),{size:18}),b(u);var f=O(u,2),p=i(f),m=i(p,!0);b(p);var h=O(p,2),g=i(h);b(h),b(f),ee(2),b(s),e((e,t)=>{c=w(s,1,`folder-card svelte-1uha8ag`,null,c,{"drop-target":r(H)===o,"dragging-folder":r(V)===o}),n(m,e),n(g,`${t??``} assets`)},[()=>xe(o),()=>wt(o)]),l(`click`,s,()=>st(o)),l(`contextmenu`,s,e=>_t(e,o)),d(`dragstart`,s,e=>{_(V,o,!0),e.dataTransfer?.setData(`application/x-fundus-folder`,o),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),d(`dragend`,s,()=>{_(V,null),_(H,null)}),d(`dragover`,s,e=>Ot(e,o)),d(`dragleave`,s,()=>_(H,null)),d(`drop`,s,e=>kt(e,o)),t(a,s)}),b(c),b(o),t(a,o)};p(c,e=>{r(rt).length>0&&e(m)});var h=O(c,2),g=a=>{var s=u();f(o(s),17,()=>r(ot),e=>e.key,(a,s)=>{var c=Jt(),m=i(c),h=a=>{_e(a,{children:(a,c)=>{var l=Gt(),u=o(l),d=a=>{var o=Wt(),c=i(o,!0);b(o),e(()=>n(c,r(s).emoji)),t(a,o)};p(u,e=>{r(s).emoji&&e(d)});var f=O(u,1,!0);e(()=>n(f,r(s).heading)),t(a,l)},$$slots:{default:!0}})};p(m,e=>{r(s).heading&&e(h)});var g=O(m,2);f(g,21,()=>r(s).assets,e=>e.id,(a,s)=>{let c=v(()=>Te[r(s).type]?.thumbnail);var m=qt();let h;var g=i(m);x(g);var _=O(g,2),y=i(_),S=e=>{var n=u();se(o(n),()=>r(c),(e,t)=>{t(e,{get asset(){return r(s)}})}),t(e,n)};p(y,e=>{r(c)&&e(S)}),b(_);var C=O(_,2),T=i(C),E=i(T,!0);b(T);var ee=O(T,2),te=i(ee,!0);b(ee),b(C);var D=O(C,2),re=i(D);f(re,16,()=>r(s).manifests,e=>e,(e,t)=>{It(e,{get name(){return t}})});var ie=O(re,2);f(ie,17,()=>r(s).passiveManifests,e=>e.manifest,(e,t)=>{It(e,{get name(){return r(t).manifest},passive:!0,get via(){return r(t).via}})}),f(O(ie,2),16,()=>r(s).warnings,e=>e,(n,r)=>{var i=Kt();e(()=>ne(i,`title`,r)),t(n,i)}),b(D),b(m),e((e,t,i)=>{h=w(m,1,`card svelte-1uha8ag`,null,h,e),ne(m,`data-asset-id`,r(s).id),ne(m,`href`,t),oe(g,i),ne(g,`aria-label`,`Select ${r(s).id}`),n(E,r(s).id),n(te,r(s).type)},[()=>({selected:r(K).includes(r(s).id)}),()=>ce(`/asset/[id]`,{id:r(s).id}),()=>r(K).includes(r(s).id)]),l(`contextmenu`,m,e=>vt(e,r(s).id)),l(`click`,m,e=>{(r(K).length>0||e.metaKey||e.ctrlKey||e.shiftKey)&&(e.preventDefault(),ct(r(s).id,e.shiftKey))}),d(`dragstart`,m,e=>{let t=r(K).includes(r(s).id)?r(K):[r(s).id];e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify(t)),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`),ut(e,t)}),d(`focus`,m,e=>jt(e.currentTarget.querySelector(`video`))),d(`blur`,m,e=>Mt(e.currentTarget.querySelector(`video`))),l(`click`,g,e=>{e.stopPropagation(),ct(r(s).id,e.shiftKey)}),t(a,m)}),b(g),b(c),t(a,c)}),t(a,s)};p(h,e=>{r(it).length>0&&e(g)}),t(a,s)};p(On,e=>{k.state?r(it).length===0&&r(rt).length===0?e(An,1):e(jn,-1):e(kn)});var Mn=O(On,2),Nn=a=>{var o=Xt(),s=i(o);b(o),e(()=>n(s,`Drop to import into ${(r(j)||`Root`)??``}`)),t(a,o)};p(Mn,e=>{r(P)&&e(Nn)}),b(an),b(nn);var Pn=O(nn,2),Fn=e=>{{let t=v(()=>r(I).renamePath===null?void 0:()=>mt(r(I)?.renamePath??``)),n=v(()=>r(I).renamePath===null?void 0:()=>ht(r(I)?.renamePath??``));Ee(e,{get x(){return r(I).x},get y(){return r(I).y},onNewDirectory:()=>pt(r(I)?.parent??``),get onRenameDirectory(){return r(t)},onImportFile:()=>ft(r(I)?.parent??``),get onDeleteDirectory(){return r(n)},onClose:()=>_(I,null)})}};p(Pn,e=>{r(I)&&e(Fn)});var In=O(Pn,2),Ln=e=>{{let t=v(()=>r(L).assetIds.length===1?()=>yt(r(L)?.assetIds[0]??``):void 0);Nt(e,{get x(){return r(L).x},get y(){return r(L).y},get assetCount(){return r(L).assetIds.length},get onRename(){return r(t)},onDelete:()=>bt(r(L)?.assetIds??[]),onClose:()=>_(L,null)})}};p(In,e=>{r(L)&&e(Ln)});var Rn=O(In,2),zn=a=>{{let s=v(()=>r(U)?`Renaming…`:`Rename`),c=v(()=>!r(Ge));Oe(a,{title:`Rename asset`,get confirmLabel(){return r(s)},get confirmDisabled(){return r(c)},get busy(){return r(U)},onConfirm:()=>void St(),onCancel:xt,children:(a,s)=>{var c=$t(),u=o(c),d=O(i(u),2);x(d),y(d,e=>_(Pe,e),()=>r(Pe)),b(u);var f=O(u,2),m=a=>{var o=Zt(),s=i(o,!0);b(o),e(()=>n(s,r(Ue))),t(a,o)};p(f,e=>{r(Ue)&&e(m)});var h=O(f,2),g=e=>{t(e,Qt())};p(h,e=>{r(We)&&e(g)});var v=O(h,2),S=a=>{var o=Zt(),s=i(o);b(o),e(e=>n(s,`Renaming leaves ${r(Ke).length??``} reference(s) pointing to the old ID:
2
- ${e??``}`),[()=>r(Ke).join(`, `)]),t(a,o)};p(v,e=>{r(Ke).length>0&&e(S)});var C=O(v,2),w=a=>{var o=Zt(),s=i(o,!0);b(o),e(()=>n(s,r(W))),t(a,o)};p(C,e=>{r(W)&&e(w)}),e(()=>d.disabled=r(U)),l(`keydown`,d,e=>e.key===`Enter`&&void St()),ie(d,()=>r(z),e=>_(z,e)),t(a,c)},$$slots:{default:!0}})}};p(Rn,e=>{r(R)!==null&&e(zn)});var Bn=O(Rn,2),Vn=a=>{{let s=v(()=>r(B).length===1?`Delete asset`:`Delete ${r(B).length} assets`),c=v(()=>r(U)?`Deleting…`:r(B).length===1?`Delete asset`:`Delete ${r(B).length} assets`);Oe(a,{get title(){return r(s)},get confirmLabel(){return r(c)},danger:!0,get busy(){return r(U)},onConfirm:()=>void Ct(),onCancel:xt,children:(a,s)=>{var c=en(),l=o(c),u=i(l);b(l);var d=O(l,2),f=a=>{var o=Zt(),s=i(o);b(o),e(e=>n(s,`This leaves ${r(X).length??``} external reference(s) dangling:
3
- ${e??``}`),[()=>r(X).join(`, `)]),t(a,o)};p(d,e=>{r(X).length>0&&e(f)});var m=O(d,2),h=a=>{var o=Zt(),s=i(o,!0);b(o),e(()=>n(s,r(W))),t(a,o)};p(m,e=>{r(W)&&e(h)}),e(e=>n(u,`Delete ${e??``}? Their raw files and proxies are removed.`),[()=>r(B).join(`, `)]),t(a,c)},$$slots:{default:!0}})}};p(Bn,e=>{r(B).length>0&&e(Vn)});var Hn=O(Bn,2),Un=e=>{Ce(e,{get file(){return r(F)},get folder(){return r(Ne)},onDone:e=>void Et(e),onCancel:()=>_(F,null)})};p(Hn,e=>{r(F)&&e(Un)}),e(()=>{on=w(an,1,`page svelte-1uha8ag`,null,on,{dragging:r(P)}),ne(fn,`accept`,Ve),n(Tn,He)}),l(`contextmenu`,an,gt),d(`dragleave`,an,e=>{e.relatedTarget===null&&_(P,!1)}),l(`click`,dn,()=>ft(r(j)??``)),l(`change`,fn,Tt),C(mn,()=>r(ke),e=>_(ke,e)),C(vn,()=>r(M),e=>_(M,e)),C(bn,()=>r(je),e=>_(je,e)),l(`keydown`,Cn,e=>{e.key===`Escape`&&(e.stopPropagation(),r(N)===``?e.currentTarget.blur():_(N,``))}),ie(Cn,()=>r(N),e=>_(N,e)),re(Dn,()=>r(Me),e=>_(Me,e)),t(c,Ft),S()}c([`contextmenu`,`click`,`change`,`keydown`]);export{nn as component};
@@ -1 +0,0 @@
1
- import{B as e,D as t,E as n,F as r,G as i,K as a,M as o,N as s,O as c,S as l,T as u,X as d,Y as f,Z as p,a as m,at as h,c as ee,d as te,et as ne,it as re,j as g,k as _,l as v,q as y,rt as ie,tt as b,y as ae}from"../chunks/D65cSBhe.js";import{c as x,t as S}from"../chunks/C8W3KwDq.js";import"../chunks/xihTtKlq.js";import{t as oe}from"../chunks/ByVSyIj7.js";import{D as C,M as w,S as se,_ as T,h as ce,k as E,n as D,t as O}from"../chunks/BAEZPv6c.js";import{c as k,n as le,o as ue,s as de,t as A}from"../chunks/Db8LRH6X.js";import{t as fe}from"../chunks/CP-bnOxU.js";var j=_(`<div class="center empty svelte-xy8zsr">Loading…</div>`),pe=_(`<div class="center empty svelte-xy8zsr"> </div>`),me=_(`<div class="empty svelte-xy8zsr"> </div>`),he=_(`<p class="warning svelte-xy8zsr"> </p>`),ge=_(`<p class="hint svelte-xy8zsr">No manifests yet — create one in the Manifests view.</p>`),_e=_(`<p class="hint svelte-xy8zsr">No references.</p>`),ve=_(`<a class="reference-row svelte-xy8zsr"><span class="reference-field svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-asset svelte-xy8zsr"> </span></a>`),ye=_(`<h4 class="svelte-xy8zsr">Outgoing</h4> <!>`,1),be=_(`<a class="reference-row svelte-xy8zsr"><span class="reference-asset svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-field svelte-xy8zsr"> </span></a>`),xe=_(`<h4 class="svelte-xy8zsr">Incoming</h4> <!>`,1),Se=_(`<!> <!>`,1),Ce=_(`<p class="hint error svelte-xy8zsr"> </p>`),we=_(`<div class="center svelte-xy8zsr"><!></div> <aside class="inspector svelte-xy8zsr"><section class="head svelte-xy8zsr"><h2 class="svelte-xy8zsr"> </h2> <p class="raw svelte-xy8zsr"> <span title="Raw file"> </span></p> <!></section> <!> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <button class="control replace-raw svelte-xy8zsr"> </button> <!> <div class="rename svelte-xy8zsr"><input class="control svelte-xy8zsr" type="text" spellcheck="false"/> <button class="control">Rename</button></div> <!> <button class="control danger svelte-xy8zsr">Delete asset</button></section></aside>`,1),Te=_(`<div class="detail svelte-xy8zsr"><!> <!></div> <input type="file" hidden=""/> <input type="file" hidden=""/> <!> <!>`,1);function M(o,_){b(_,!0);let M=p(()=>oe.params.id??``),N=p(()=>T.assetById(r(M))),Ee=p(()=>T.manifestNames),De=p(()=>r(N)?T.state?.presetNames[r(N).type]??[]:[]),P=p(()=>r(N)?de[r(N).type]??null:null),Oe=p(()=>r(P)?.panel??null),ke=p(()=>r(P)?.editor??null),F=d(null),I=p(()=>r(N)?r(F)&&r(F).assetId===r(N).id?r(F).value:ie(r(N)).parameters:null);function L(e){r(N)&&f(F,{assetId:r(N).id,value:e},!0)}let R=d(null),z=d(null),B=0,V=d(null),H=0,U=d(null),W=0,G=d(null),Ae=d(``),K=d(void 0),je=d(void 0),q=d(null),J=d(null),Me=O().join(`,`),Ne=p(()=>r(N)?D(r(N).type).join(`,`):``),Y=d(null),X=p(()=>r(N)&&r(Y)?.assetId===r(N).id?r(Y).value:r(N)?.id??``),Z=p(()=>r(N)&&r(X)!==r(N).id?ce(r(X)):null);async function Pe(e){if(!r(N))return;let t=r(N).id;try{await T.mutate(()=>E(t,{parameters:e})),r(F)?.assetId===t&&f(F,null)}catch{}}async function Fe(e){if(!r(N))return;let t=r(N).manifests.includes(e)?r(N).manifests.filter(t=>t!==e):[...r(N).manifests,e];try{await T.mutate(()=>E(r(N).id,{manifests:t}))}catch{}}async function Ie(){if(!r(N)||r(X)===r(N).id||r(Z))return;let e=r(N).id,t=r(X);try{await T.mutate(()=>E(e,{renameTo:t})),f(Y,null),r(M)===e&&await S(x(`/asset/[id]`,{id:t}),{replaceState:!0})}catch{}}async function Le(){if(!r(N))return;let e=r(N).id;if(confirm(`Delete "${e}"? The raw file and its proxies are removed.`))try{await T.mutate(()=>se(e)),r(M)===e&&await S(x(`/`))}catch{}}async function Re(e){try{localStorage.setItem(`fundus.gallery.folder`,e??`__all__`)}catch{}await S(x(`/`))}async function ze(e,t){let n=e.filter(e=>T.assetById(e)?.folder!==t);if(n.length!==0)try{await T.mutate(()=>C(n,t))}catch{}}function Be(e){B+=1,f(z,{id:B,parent:e},!0)}function Ve(e){H+=1,f(V,{id:H,path:e},!0)}function He(e){W+=1,f(U,{id:W,path:e},!0)}function Ue(e){f(Ae,e,!0),r(K)?.click()}function We(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&f(G,n,!0)}async function Ge(e){let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n||!r(N))return;let i=r(N).id;f(q,i,!0),f(J,null);try{await T.mutate(()=>w(i,n))}catch(e){f(J,{assetId:i,message:e instanceof Error?e.message:String(e)},!0)}finally{r(q)===i&&f(q,null)}}async function Ke(e){f(G,null),await S(x(`/asset/[id]`,{id:e}))}var qe=Te(),Je=a(qe),Ye=i(Je);{let e=p(()=>r(N)?.folder??null);le(Ye,{get selectedFolder(){return r(e)},get activeAsset(){return r(N)},get createRequest(){return r(z)},get renameRequest(){return r(V)},get deleteRequest(){return r(U)},onSelect:e=>void Re(e),onMoveAssets:(e,t)=>void ze(e,t),onActiveAssetDeleted:e=>void Re(e),onContextMenu:(e,t,n,r)=>{f(R,{x:e,y:t,parent:n,renamePath:r},!0)}})}var Xe=y(Ye,2),Ze=e=>{t(e,j())},Qe=a=>{var o=pe(),s=i(o);h(o),e(()=>n(s,`No asset with id "${r(M)??``}".`)),t(a,o)},$e=o=>{var d=we(),p=a(d),m=i(p),ne=e=>{var n=c();ae(a(n),()=>r(ke),(e,t)=>{t(e,{get asset(){return r(N)},get parameters(){return r(I)},onParametersChange:L,onParametersCommit:e=>void Pe(e)})}),t(e,n)},_=a=>{var o=me(),s=i(o);h(o),e(()=>n(s,`No editor registered for asset type "${r(N).type??``}".`)),t(a,o)};u(m,e=>{r(ke)&&r(I)!==null?e(ne):e(_,-1)}),h(p);var ie=y(p,2),b=i(ie),S=i(b),oe=i(S,!0);h(S);var C=y(S,2),w=i(C),se=y(w),T=i(se,!0);h(se),h(C),l(y(C,2),16,()=>r(N).warnings,e=>e,(r,a)=>{var o=he(),s=i(o);h(o),e(()=>n(s,`⚠ ${a??``}`)),t(r,o)}),h(b);var ce=y(b,2),E=e=>{var n=c();ae(a(n),()=>r(Oe),(e,t)=>{t(e,{get asset(){return r(N)},get parameters(){return r(I)},onParametersChange:e=>L(e),onParametersCommit:e=>{L(e),Pe(e)},get presetNames(){return r(De)}})}),t(e,n)};u(ce,e=>{r(Oe)&&r(I)!==null&&e(E)});var D=y(ce,2),O=i(D);k(O,{children:(e,n)=>{re(),t(e,g(`Manifests`))},$$slots:{default:!0}});var le=y(O,2),ue=e=>{t(e,ge())},de=e=>{fe(e,{get manifests(){return r(Ee)},get selected(){return r(N).manifests},get passive(){return r(N).passiveManifests},onToggle:e=>void Fe(e)})};u(le,e=>{r(Ee).length===0?e(ue):e(de,-1)}),h(D);var A=y(D,2),j=i(A);k(j,{children:(e,n)=>{re(),t(e,g(`References`))},$$slots:{default:!0}});var pe=y(j,2),Te=e=>{t(e,_e())},M=o=>{var s=Se(),c=a(s),d=o=>{var s=ye();l(y(a(s),2),17,()=>r(N).references.outgoing,e=>`${e.field}→${e.assetId}`,(a,o)=>{var s=ve(),c=i(s),l=i(c,!0);h(c);var u=y(c,4),d=i(u,!0);h(u),h(s),e(e=>{v(s,`href`,e),n(l,r(o).field),n(d,r(o).assetId)},[()=>x(`/asset/[id]`,{id:r(o).assetId})]),t(a,s)}),t(o,s)};u(c,e=>{r(N).references.outgoing.length>0&&e(d)});var f=y(c,2),p=o=>{var s=xe();l(y(a(s),2),17,()=>r(N).references.incoming,e=>`${e.assetId}→${e.field}`,(a,o)=>{var s=be(),c=i(s),l=i(c,!0);h(c);var u=y(c,4),d=i(u,!0);h(u),h(s),e(e=>{v(s,`href`,e),n(l,r(o).assetId),n(d,r(o).field)},[()=>x(`/asset/[id]`,{id:r(o).assetId})]),t(a,s)}),t(o,s)};u(f,e=>{r(N).references.incoming.length>0&&e(p)}),t(o,s)};u(pe,e=>{r(N).references.outgoing.length===0&&r(N).references.incoming.length===0?e(Te):e(M,-1)}),h(A);var P=y(A,2),F=i(P);k(F,{children:(e,n)=>{re(),t(e,g(`Asset`))},$$slots:{default:!0}});var R=y(F,2),z=i(R,!0);h(R);var B=y(R,2),V=a=>{var o=Ce(),s=i(o,!0);h(o),e(()=>n(s,r(J).message)),t(a,o)};u(B,e=>{r(J)?.assetId===r(N).id&&e(V)});var H=y(B,2),U=i(H);ee(U);var W=y(U,2);h(H);var G=y(H,2),Ae=a=>{var o=Ce(),s=i(o,!0);h(o),e(()=>n(s,r(Z))),t(a,o)};u(G,e=>{r(Z)&&e(Ae)});var K=y(G,2);h(P),h(ie),e(()=>{n(oe,r(N).id),n(w,`${r(N).type??``} · `),n(T,r(N).raw),R.disabled=r(q)===r(N).id,n(z,r(q)===r(N).id?`Replacing…`:`Replace`),te(U,r(X)),W.disabled=r(X)===r(N).id||r(Z)!==null}),s(`click`,R,()=>r(je)?.click()),s(`input`,U,e=>f(Y,{assetId:r(N).id,value:e.currentTarget.value},!0)),s(`click`,W,()=>void Ie()),s(`click`,K,()=>void Le()),t(o,d)};u(Xe,e=>{T.loaded?r(N)?e($e,-1):e(Qe,1):e(Ze)}),h(Je);var Q=y(Je,2);m(Q,e=>f(K,e),()=>r(K));var $=y(Q,2);m($,e=>f(je,e),()=>r(je));var et=y($,2),tt=e=>{{let t=p(()=>r(R).renamePath===null?void 0:()=>Ve(r(R)?.renamePath??``)),n=p(()=>r(R).renamePath===null?void 0:()=>He(r(R)?.renamePath??``));A(e,{get x(){return r(R).x},get y(){return r(R).y},onNewDirectory:()=>Be(r(R)?.parent??``),get onRenameDirectory(){return r(t)},onImportFile:()=>Ue(r(R)?.parent??``),get onDeleteDirectory(){return r(n)},onClose:()=>f(R,null)})}};u(et,e=>{r(R)&&e(tt)});var nt=y(et,2),rt=e=>{ue(e,{get file(){return r(G)},get folder(){return r(Ae)},onDone:e=>void Ke(e),onCancel:()=>f(G,null)})};u(nt,e=>{r(G)&&e(rt)}),e(()=>{v(Q,`accept`,Me),v($,`accept`,r(Ne))}),s(`change`,Q,We),s(`change`,$,e=>void Ge(e)),t(o,qe),ne()}o([`click`,`input`,`change`]);export{M as component};
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js-B77ZAVLi.js","sources":["../../../../.svelte-kit/output/server/chunks/context.js"],"sourcesContent":["import { a as assetIdError, b as rawFileNameOfPath, i as typesForFileName, p as folderOfRawPath, r as proposeAssetId, v as parentFolderPath, y as portableFolderPathKey } from \"./core.js\";\nimport { a as classifyRawDirectory, c as generateManifestModules, d as serverPluginsByType, f as isRecord, g as compareCodeUnits, h as collectAllReferences, i as readCurrentProxy, l as descriptorsByType, m as computeLibraryMembership, o as verifyStableRawFile, p as allDeliveredAssetIds, r as processAssets, s as encodeRelativePathForUrl, t as LibraryStore, u as serverPluginForType } from \"./library-store.js\";\nimport { isAbsolute, join, resolve } from \"node:path\";\nimport { existsSync } from \"node:fs\";\nimport { createJiti } from \"jiti\";\n//#region src/lib/server/config-loader.ts\n/**\n* Loads and resolves the host's `fundus.config.ts` through jiti, validates\n* the shape, resolves all paths to\n* absolute, and merges the built-in plugin preset defaults under the host's.\n*/\nfunction requiredString(config, key) {\n\tconst value = config[key];\n\tif (typeof value !== \"string\" || value.length === 0) throw new Error(`fundus.config: \"${key}\" must be a non-empty string.`);\n\treturn value;\n}\nfunction resolvePath(projectRoot, value) {\n\treturn resolve(projectRoot, value);\n}\nfunction configDefinitionsFor(registry) {\n\tconst byNamespace = /* @__PURE__ */ new Map();\n\tfor (const plugin of Object.values(registry)) for (const definition of plugin.configDefinitions) {\n\t\tconst existing = byNamespace.get(definition.namespace);\n\t\tif (existing && existing !== definition) throw new Error(`Plugins provide conflicting config definitions for \"plugins.${definition.namespace}\".`);\n\t\tbyNamespace.set(definition.namespace, definition);\n\t}\n\treturn [...byNamespace.values()];\n}\n/** Pure resolution step (testable without a config file on disk). */\nfunction resolveConfig(projectRoot, value, registry = serverPluginsByType) {\n\tif (!isRecord(value)) throw new Error(\"fundus.config must default-export a configuration object.\");\n\tconst proxyBasePath = requiredString(value, \"proxyBasePath\");\n\tif (!proxyBasePath.endsWith(\"/\")) throw new Error(\"fundus.config: \\\"proxyBasePath\\\" must end with \\\"/\\\".\");\n\tconst plugins = value.plugins === void 0 ? {} : value.plugins;\n\tif (!isRecord(plugins)) throw new Error(\"fundus.config: \\\"plugins\\\" must be an object.\");\n\tconst resolvedPlugins = {};\n\tfor (const definition of configDefinitionsFor(registry)) resolvedPlugins[definition.namespace] = definition.resolve({\n\t\tprojectRoot,\n\t\tvalue: plugins[definition.namespace]\n\t});\n\treturn {\n\t\trawDir: resolvePath(projectRoot, requiredString(value, \"rawDir\")),\n\t\tproxyDir: resolvePath(projectRoot, requiredString(value, \"proxyDir\")),\n\t\tlibrary: resolvePath(projectRoot, requiredString(value, \"library\")),\n\t\tmanifestsDir: resolvePath(projectRoot, requiredString(value, \"manifestsDir\")),\n\t\tproxyBasePath,\n\t\tplugins: resolvedPlugins\n\t};\n}\n/** Load `fundus.config.ts` from the host project root. */\nasync function loadConfig(projectRoot) {\n\tconst root = resolve(projectRoot);\n\tconst configPath = resolve(root, \"fundus.config.ts\");\n\tif (!existsSync(configPath)) throw new Error(`No fundus.config.ts found in ${root}.`);\n\tlet module;\n\ttry {\n\t\tmodule = await createJiti(import.meta.url, { interopDefault: false }).import(configPath);\n\t} catch (cause) {\n\t\tthrow new Error(`Cannot load fundus.config.ts: ${cause instanceof Error ? cause.message : String(cause)}`);\n\t}\n\treturn resolveConfig(root, isRecord(module) && \"default\" in module ? module.default : module);\n}\n//#endregion\n//#region src/lib/server/raw-safety.ts\nfunction rawSafetyIssueKey(issue) {\n\treturn `${issue.kind}|${issue.assetId ?? \"\"}|${issue.path}`;\n}\n/** Managed-source safety gate shared by editor operations and `fundus build`. */\nfunction rawSafetyIssues(library, classification, compatibleTypes) {\n\tconst issues = [];\n\tif (!classification.complete) for (const diagnostic of classification.diagnostics) issues.push({\n\t\tkind: \"incomplete\",\n\t\tpath: diagnostic.path,\n\t\tmessage: diagnostic.reason\n\t});\n\tfor (const blocker of classification.blockers) {\n\t\tconst affected = blocker.assetId ? [blocker.assetId] : Object.entries(library.assets).filter(([, record]) => record.raw === blocker.path || record.raw.startsWith(`${blocker.path}/`)).map(([assetId]) => assetId);\n\t\tfor (const assetId of affected) issues.push({\n\t\t\tkind: \"blocker\",\n\t\t\tpath: blocker.path,\n\t\t\tassetId,\n\t\t\tmessage: `Raw source \"${blocker.path}\" is unsafe: ${blocker.reason}`\n\t\t});\n\t}\n\tfor (const missing of classification.deletions) issues.push({\n\t\tkind: \"missing\",\n\t\tpath: missing.path,\n\t\tassetId: missing.assetId,\n\t\tmessage: `Raw file \"${missing.path}\" is missing from the raw directory.`\n\t});\n\tfor (const move of classification.moves) issues.push({\n\t\tkind: \"missing\",\n\t\tpath: move.from,\n\t\tassetId: move.assetId,\n\t\tmessage: `Raw file \"${move.from}\" is missing from the raw directory.`\n\t});\n\tfor (const edited of classification.edited) issues.push({\n\t\tkind: \"edited\",\n\t\tpath: edited.path,\n\t\tassetId: edited.assetId,\n\t\tmessage: `Raw file \"${edited.path}\" changed outside Fundus.`\n\t});\n\tfor (const [assetId, record] of Object.entries(library.assets)) if (!compatibleTypes(record.raw).includes(record.type)) issues.push({\n\t\tkind: \"type-incompatible\",\n\t\tpath: record.raw,\n\t\tassetId,\n\t\tmessage: `Raw file \"${record.raw}\" is not compatible with its current ${record.type} type.`\n\t});\n\tconst seen = /* @__PURE__ */ new Set();\n\treturn issues.filter((issue) => {\n\t\tconst key = rawSafetyIssueKey(issue);\n\t\tif (seen.has(key)) return false;\n\t\tseen.add(key);\n\t\treturn true;\n\t});\n}\n//#endregion\n//#region src/lib/server/operations.ts\n/**\n* The one operations layer: builds the state payload and runs\n* every mutation through the autosave chain — write library → process affected\n* assets → regenerate codegen → return fresh state. Both the REST server\n* and the CLI consume this class, so every\n* operation has exactly one implementation and there is no other save path.\n*/\n/**\n* The CLI's `--parameters` merge semantics (M7): a SHALLOW merge at the top\n* level onto the current parameters — a nested object value replaces the whole\n* current object under that key, a top-level `null` clears an optional field,\n* and an asset reference is set with the normal `{\"$asset\": \"<id>\"}` marker.\n* The merged result still passes the owning plugin's full validation.\n*/\nfunction mergeParameterPatch(currentParameters, patch) {\n\tif (typeof patch !== \"object\" || patch === null || Array.isArray(patch)) throw new Error(\"The parameter patch must be a JSON object, e.g. {\\\"preset\\\": \\\"default\\\"}.\");\n\tconst merged = typeof currentParameters === \"object\" && currentParameters !== null && !Array.isArray(currentParameters) ? { ...currentParameters } : {};\n\tfor (const [key, value] of Object.entries(patch)) if (value === null) delete merged[key];\n\telse merged[key] = value;\n\treturn merged;\n}\nvar FundusOperations = class {\n\t#config;\n\t#registry;\n\t#store;\n\t#operationQueue = Promise.resolve();\n\t#pipelineQueue = Promise.resolve();\n\tconstructor(config, registry = serverPluginsByType) {\n\t\tthis.#config = config;\n\t\tthis.#registry = registry;\n\t\tthis.#store = new LibraryStore(config, registry);\n\t}\n\tget config() {\n\t\treturn this.#config;\n\t}\n\tget store() {\n\t\treturn this.#store;\n\t}\n\t#enqueueOperation(operation) {\n\t\tconst run = this.#operationQueue.then(operation, operation);\n\t\tthis.#operationQueue = run.then(() => {}, () => {});\n\t\treturn run;\n\t}\n\t/** Read-only state snapshot, serialized with mutations but never processing or writing. */\n\tstate() {\n\t\treturn this.#enqueueOperation(() => this.#state());\n\t}\n\tasync #state() {\n\t\tawait this.#pipelineQueue;\n\t\tconst library = await this.#store.read();\n\t\tconst classification = await this.#classifyRawDirectory(library);\n\t\treturn this.#snapshotState(library, classification);\n\t}\n\t/** Reconcile only changes that are safe without a user decision: unique moves and deletions. */\n\treconcileRawState() {\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tlet library = await this.#store.read();\n\t\t\tlet classification = await this.#classifyRawDirectory(library);\n\t\t\tif (!this.#canAutoReconcile(classification)) return this.#snapshotState(library, classification);\n\t\t\tfor (let pass = 0; pass < 2; pass++) {\n\t\t\t\tconst result = await this.#store.transactCandidate(async (candidate, current) => {\n\t\t\t\t\tconst fresh = await this.#classifyRawDirectory(current);\n\t\t\t\t\tconst affectedIds = [];\n\t\t\t\t\tif (!this.#canAutoReconcile(fresh)) return {\n\t\t\t\t\t\tclassification: fresh,\n\t\t\t\t\t\taffectedIds\n\t\t\t\t\t};\n\t\t\t\t\tfor (const move of fresh.moves) {\n\t\t\t\t\t\tcandidate.assets[move.assetId].raw = move.path;\n\t\t\t\t\t\tthis.#registerFolderAncestors(candidate, folderOfRawPath(move.path));\n\t\t\t\t\t\taffectedIds.push(move.assetId);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const deletion of fresh.deletions) {\n\t\t\t\t\t\tdelete candidate.assets[deletion.assetId];\n\t\t\t\t\t\taffectedIds.push(deletion.assetId);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tclassification: fresh,\n\t\t\t\t\t\taffectedIds\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tlibrary = result.library;\n\t\t\t\tclassification = result.value.classification;\n\t\t\t\tif (!result.changed) return this.#snapshotState(library, classification);\n\t\t\t\tawait this.#store.syncFolders(library);\n\t\t\t\tfor (const id of result.value.affectedIds) await this.#store.deleteProxiesOf(id);\n\t\t\t\tconst snapshot = await this.#afterMutationSnapshot(library);\n\t\t\t\tlibrary = snapshot.library;\n\t\t\t\tclassification = snapshot.classification;\n\t\t\t\tif (classification.moves.length === 0 && classification.deletions.length === 0) return snapshot.state;\n\t\t\t\tif (!this.#canAutoReconcile(classification, true)) return snapshot.state;\n\t\t\t}\n\t\t\treturn this.#snapshotState(library, classification, [{ message: \"Raw directory kept changing during reconciliation; refresh again after external file operations settle.\" }]);\n\t\t});\n\t}\n\t/** Adopt an already-existing raw file without copying, renaming, or deleting it. */\n\tadoptRawFile(token, id, type, manifests = []) {\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tconst result = await this.#store.transactCandidate(async (candidate, current) => {\n\t\t\t\tconst file = (await this.#classifyRawDirectory(current)).unmanaged.find((entry) => this.#newToken(entry.path, entry.hash) === token);\n\t\t\t\tif (!file) throw new Error(\"This ingestion item is stale; refresh the editor and try again.\");\n\t\t\t\tconst idProblem = assetIdError(id);\n\t\t\t\tif (idProblem) throw new Error(idProblem);\n\t\t\t\tif (Object.hasOwn(candidate.assets, id)) throw new Error(`An asset with id \"${id}\" already exists.`);\n\t\t\t\tif (!this.#compatibleTypes(file.path).includes(type)) throw new Error(`The ${type} type does not accept \"${file.path}\".`);\n\t\t\t\tconst uniqueManifests = [...new Set(manifests)];\n\t\t\t\tfor (const name of uniqueManifests) if (!Object.hasOwn(candidate.manifests, name)) throw new Error(`Unknown manifest \"${name}\".`);\n\t\t\t\tconst plugin = serverPluginForType(type, this.#registry);\n\t\t\t\tlet parameters = plugin.descriptor.defaultParameters(plugin.pluginConfig(this.#config));\n\t\t\t\tparameters = plugin.descriptor.validateParameters(parameters);\n\t\t\t\tif (plugin.seedIngestParameters) {\n\t\t\t\t\tconst seeded = await plugin.seedIngestParameters({\n\t\t\t\t\t\trawPath: join(this.#config.rawDir, file.path),\n\t\t\t\t\t\trawFileName: rawFileNameOfPath(file.path),\n\t\t\t\t\t\tparameters,\n\t\t\t\t\t\tconfig: this.#config\n\t\t\t\t\t});\n\t\t\t\t\tif (seeded !== void 0) parameters = plugin.descriptor.validateParameters(seeded);\n\t\t\t\t}\n\t\t\t\tawait verifyStableRawFile(join(this.#config.rawDir, file.path), file.hash);\n\t\t\t\tthis.#registerFolderAncestors(candidate, folderOfRawPath(file.path));\n\t\t\t\tcandidate.assets[id] = {\n\t\t\t\t\ttype,\n\t\t\t\t\traw: file.path,\n\t\t\t\t\trawHash: file.hash,\n\t\t\t\t\tparameters,\n\t\t\t\t\tmanifests: uniqueManifests.sort()\n\t\t\t\t};\n\t\t\t});\n\t\t\tawait this.#store.syncFolders(result.library);\n\t\t\treturn this.#afterMutation(result.library);\n\t\t});\n\t}\n\t/** Reset/reseed edited bytes, optionally changing to another compatible type. */\n\tacceptEditedRawFile(token, type) {\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tconst result = await this.#store.transactCandidate(async (candidate, current) => {\n\t\t\t\tconst classification = await this.#classifyRawDirectory(current);\n\t\t\t\tconst edited = this.#editedRawFiles(classification, current).find((entry) => this.#editedToken(entry.assetId, entry.path, entry.hash) === token);\n\t\t\t\tif (!edited) throw new Error(\"This edited item is stale; refresh the editor and try again.\");\n\t\t\t\tif (!this.#compatibleTypes(edited.path).includes(type)) throw new Error(`The ${type} type does not accept \"${edited.path}\".`);\n\t\t\t\tconst plugin = serverPluginForType(type, this.#registry);\n\t\t\t\tlet parameters = plugin.descriptor.validateParameters(plugin.descriptor.defaultParameters(plugin.pluginConfig(this.#config)));\n\t\t\t\tif (plugin.seedIngestParameters) {\n\t\t\t\t\tconst seeded = await plugin.seedIngestParameters({\n\t\t\t\t\t\trawPath: join(this.#config.rawDir, edited.path),\n\t\t\t\t\t\trawFileName: rawFileNameOfPath(edited.path),\n\t\t\t\t\t\tparameters,\n\t\t\t\t\t\tconfig: this.#config\n\t\t\t\t\t});\n\t\t\t\t\tif (seeded !== void 0) parameters = plugin.descriptor.validateParameters(seeded);\n\t\t\t\t}\n\t\t\t\tawait verifyStableRawFile(join(this.#config.rawDir, edited.path), edited.hash);\n\t\t\t\tconst record = candidate.assets[edited.assetId];\n\t\t\t\trecord.type = type;\n\t\t\t\trecord.rawHash = edited.hash;\n\t\t\t\trecord.parameters = parameters;\n\t\t\t\treturn edited.assetId;\n\t\t\t});\n\t\t\tawait this.#store.deleteProxiesOf(result.value);\n\t\t\treturn this.#afterMutation(result.library);\n\t\t});\n\t}\n\t/** Accept edited bytes while preserving type, parameters, path and memberships. */\n\tdismissEditedRawFile(token) {\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tconst result = await this.#store.transactCandidate(async (candidate, current) => {\n\t\t\t\tconst classification = await this.#classifyRawDirectory(current);\n\t\t\t\tconst edited = this.#editedRawFiles(classification, current).find((entry) => this.#editedToken(entry.assetId, entry.path, entry.hash) === token);\n\t\t\t\tif (!edited) throw new Error(\"This edited item is stale; refresh the editor and try again.\");\n\t\t\t\tconst record = current.assets[edited.assetId];\n\t\t\t\tif (!this.#compatibleTypes(edited.path).includes(record.type)) throw new Error(`The moved file \"${edited.path}\" is not compatible with its current ${record.type} type; choose a compatible type and process it.`);\n\t\t\t\tcandidate.assets[edited.assetId].rawHash = edited.hash;\n\t\t\t\treturn edited.assetId;\n\t\t\t});\n\t\t\tawait this.#store.deleteProxiesOf(result.value);\n\t\t\treturn this.#afterMutation(result.library);\n\t\t});\n\t}\n\t/**\n\t* Ingest an upload: store the raw file + record, then let the owning\n\t* plugin's optional `seedIngestParameters` derive better starting\n\t* parameters from the stored raw file (slices: insets from the image\n\t* dimensions, pixel ratio from the file name — the schema default can't\n\t* know either). The CLI additionally applies a parameter patch and/or an\n\t* explicit membership set in the same operation; a failing application\n\t* rolls the whole ingest back, so a failed ingest leaves nothing behind.\n\t*/\n\tingest(options) {\n\t\treturn this.#enqueueOperation(() => this.#ingest(options));\n\t}\n\tasync #ingest(options) {\n\t\tlet library = await this.#store.ingest(options);\n\t\ttry {\n\t\t\tconst plugin = serverPluginForType(options.type, this.#registry);\n\t\t\tif (plugin.seedIngestParameters) {\n\t\t\t\tconst record = library.assets[options.id];\n\t\t\t\tconst seeded = await plugin.seedIngestParameters({\n\t\t\t\t\trawPath: join(this.#config.rawDir, record.raw),\n\t\t\t\t\trawFileName: rawFileNameOfPath(record.raw),\n\t\t\t\t\tparameters: plugin.descriptor.validateParameters(record.parameters),\n\t\t\t\t\tconfig: this.#config\n\t\t\t\t});\n\t\t\t\tif (seeded !== void 0) library = await this.#store.updateParameters(options.id, seeded);\n\t\t\t}\n\t\t\tif (options.parametersPatch !== void 0 || options.manifests !== void 0) library = await this.#applyAssetChanges(library, options.id, {\n\t\t\t\tparametersPatch: options.parametersPatch,\n\t\t\t\tmanifests: options.manifests\n\t\t\t});\n\t\t} catch (cause) {\n\t\t\tawait this.#store.deleteAsset(options.id);\n\t\t\tthrow cause;\n\t\t}\n\t\treturn this.#afterMutation(library);\n\t}\n\t/** Apply a PATCH body: parameters and/or manifests and/or a rename — in that order. */\n\tpatchAsset(id, body) {\n\t\treturn this.#enqueueOperation(() => this.#patchAsset(id, body));\n\t}\n\tasync #patchAsset(id, body) {\n\t\tlet library = await this.#store.read();\n\t\tthis.#requireAsset(library, id);\n\t\tif (body.parameters !== void 0) library = await this.#store.updateParameters(id, body.parameters);\n\t\tif (body.manifests !== void 0) {\n\t\t\tif (!Array.isArray(body.manifests) || body.manifests.some((name) => typeof name !== \"string\")) throw new Error(\"\\\"manifests\\\" must be an array of manifest names.\");\n\t\t\tlibrary = await this.#store.setManifests(id, body.manifests);\n\t\t}\n\t\tif (body.renameTo !== void 0) {\n\t\t\tif (typeof body.renameTo !== \"string\") throw new Error(\"\\\"renameTo\\\" must be a string.\");\n\t\t\tlibrary = await this.#store.renameAsset(id, body.renameTo);\n\t\t}\n\t\tif (body.folder !== void 0) {\n\t\t\tif (typeof body.folder !== \"string\") throw new Error(\"\\\"folder\\\" must be a string.\");\n\t\t\tlibrary = await this.#store.moveAsset(body.renameTo ?? id, body.folder);\n\t\t}\n\t\treturn this.#afterMutation(library);\n\t}\n\tmoveAsset(id, folder) {\n\t\treturn this.#enqueueOperation(() => this.#moveAsset(id, folder));\n\t}\n\tasync #moveAsset(id, folder) {\n\t\treturn this.#afterMutation(await this.#store.moveAsset(id, folder));\n\t}\n\t/** Replace the raw bytes/name and run the normal processing + codegen tail. */\n\treplaceRawFile(id, options) {\n\t\treturn this.#enqueueOperation(() => this.#replaceRawFile(id, options));\n\t}\n\tasync #replaceRawFile(id, options) {\n\t\treturn this.#afterMutation(await this.#store.replaceRawFile(id, options));\n\t}\n\t/** Move a selected asset set as one editor action and roll back on any failure. */\n\tmoveAssets(assetIds, folder) {\n\t\treturn this.#enqueueOperation(() => this.#moveAssets(assetIds, folder));\n\t}\n\tasync #moveAssets(assetIds, folder) {\n\t\tconst uniqueIds = [...new Set(assetIds)];\n\t\tif (uniqueIds.length === 0) throw new Error(\"At least one asset id is required.\");\n\t\tconst originalFolders = /* @__PURE__ */ new Map();\n\t\tconst library = await this.#store.read();\n\t\tfor (const id of uniqueIds) {\n\t\t\tthis.#requireAsset(library, id);\n\t\t\toriginalFolders.set(id, folderOfRawPath(library.assets[id].raw));\n\t\t}\n\t\tconst movedIds = [];\n\t\ttry {\n\t\t\tlet updated = library;\n\t\t\tfor (const id of uniqueIds) {\n\t\t\t\tif (originalFolders.get(id) === folder) continue;\n\t\t\t\tupdated = await this.#store.moveAsset(id, folder);\n\t\t\t\tmovedIds.push(id);\n\t\t\t}\n\t\t\treturn this.#afterMutation(updated);\n\t\t} catch (cause) {\n\t\t\tfor (const id of movedIds.reverse()) await this.#store.moveAsset(id, originalFolders.get(id) ?? \"\");\n\t\t\tthrow cause;\n\t\t}\n\t}\n\tcreateFolder(path) {\n\t\treturn this.#enqueueOperation(() => this.#createFolder(path));\n\t}\n\tasync #createFolder(path) {\n\t\treturn this.#afterMutation(await this.#store.createFolder(path));\n\t}\n\trenameFolder(path, newName) {\n\t\treturn this.#enqueueOperation(() => this.#renameFolder(path, newName));\n\t}\n\tasync #renameFolder(path, newName) {\n\t\treturn this.#afterMutation(await this.#store.renameFolder(path, newName));\n\t}\n\tmoveFolder(path, parent) {\n\t\treturn this.#enqueueOperation(() => this.#moveFolder(path, parent));\n\t}\n\tasync #moveFolder(path, parent) {\n\t\treturn this.#afterMutation(await this.#store.moveFolder(path, parent));\n\t}\n\tdeleteFolder(path) {\n\t\treturn this.#enqueueOperation(() => this.#deleteFolder(path));\n\t}\n\tasync #deleteFolder(path) {\n\t\tconst result = await this.#store.deleteFolder(path);\n\t\treturn this.#afterMutation(result.library);\n\t}\n\t/**\n\t* CLI-facing asset update (M7): shallow-merge a parameter patch and/or\n\t* replace the explicit manifest membership — validating the *result* before\n\t* anything is persisted, so a change that would leave the library invalid\n\t* (dangling or cyclic reference, unknown manifest, invalid parameters) is\n\t* rejected with nothing written. The REST `patchAsset` keeps the editor's\n\t* lenient replace semantics.\n\t*/\n\tsetAsset(id, changes) {\n\t\treturn this.#enqueueOperation(() => this.#setAsset(id, changes));\n\t}\n\tasync #setAsset(id, changes) {\n\t\tconst library = await this.#store.read();\n\t\tthis.#requireAsset(library, id);\n\t\treturn this.#afterMutation(await this.#applyAssetChanges(library, id, changes));\n\t}\n\t/**\n\t* CLI-facing rename (M7): rejects a rename that would break references —\n\t* a referrer keeps pointing at the old id, so renaming a referenced asset\n\t* introduces dangling-reference errors. Update the referrers first.\n\t*/\n\trenameAsset(id, newId) {\n\t\treturn this.#enqueueOperation(() => this.#renameAsset(id, newId));\n\t}\n\tasync #renameAsset(id, newId) {\n\t\tconst library = await this.#store.read();\n\t\tthis.#requireAsset(library, id);\n\t\tif (newId !== id && !Object.hasOwn(library.assets, newId)) {\n\t\t\tconst candidate = structuredClone(library);\n\t\t\tcandidate.assets[newId] = candidate.assets[id];\n\t\t\tdelete candidate.assets[id];\n\t\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\t}\n\t\treturn this.#afterMutation(await this.#store.renameAsset(id, newId));\n\t}\n\t/**\n\t* Delete an asset: the record, its raw file, and its proxies. With\n\t* `failOnIntroducedIssues` (the CLI), a delete that would break references\n\t* (the asset is a reference target) is rejected before anything —\n\t* including the raw file — is removed; the REST route stays lenient.\n\t*/\n\tdeleteAsset(id, options) {\n\t\treturn this.#enqueueOperation(() => this.#deleteAsset(id, options));\n\t}\n\tasync #deleteAsset(id, options) {\n\t\tif (options?.failOnIntroducedIssues) {\n\t\t\tconst library = await this.#store.read();\n\t\t\tthis.#requireAsset(library, id);\n\t\t\tconst candidate = structuredClone(library);\n\t\t\tdelete candidate.assets[id];\n\t\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\t}\n\t\treturn this.#afterMutation(await this.#store.deleteAsset(id));\n\t}\n\t/** Delete a selected asset set as one lenient editor mutation. */\n\tdeleteAssets(assetIds) {\n\t\treturn this.#enqueueOperation(() => this.#deleteAssets(assetIds));\n\t}\n\tasync #deleteAssets(assetIds) {\n\t\tconst uniqueIds = [...new Set(assetIds)];\n\t\tif (uniqueIds.length === 0) throw new Error(\"At least one asset id is required.\");\n\t\treturn this.#afterMutation(await this.#store.deleteAssets(uniqueIds));\n\t}\n\tcreateManifest(name) {\n\t\treturn this.#enqueueOperation(() => this.#createManifest(name));\n\t}\n\tasync #createManifest(name) {\n\t\treturn this.#afterMutation(await this.#store.createManifest(name));\n\t}\n\tsetManifestAppearance(name, appearance) {\n\t\treturn this.#enqueueOperation(() => this.#setManifestAppearance(name, appearance));\n\t}\n\tasync #setManifestAppearance(name, appearance) {\n\t\treturn this.#afterMutation(await this.#store.setManifestAppearance(name, appearance));\n\t}\n\t/** Apply a PATCH body: appearance fields and/or a rename — in that order. */\n\tpatchManifest(name, body) {\n\t\treturn this.#enqueueOperation(() => this.#patchManifest(name, body));\n\t}\n\tasync #patchManifest(name, body) {\n\t\tlet library = await this.#store.setManifestAppearance(name, {\n\t\t\tcolor: body.color,\n\t\t\temoji: body.emoji\n\t\t});\n\t\tif (body.renameTo !== void 0) {\n\t\t\tif (typeof body.renameTo !== \"string\") throw new Error(\"\\\"renameTo\\\" must be a string.\");\n\t\t\tlibrary = await this.#store.renameManifest(name, body.renameTo);\n\t\t}\n\t\treturn this.#afterMutation(library);\n\t}\n\t/**\n\t* Rename a manifest: rewrites every asset's membership and replaces the\n\t* generated module (the old one is pruned as a stray). Host code importing\n\t* the module must be updated by hand — both the file name and the exported\n\t* const change with the manifest name.\n\t*/\n\trenameManifest(name, newName) {\n\t\treturn this.#enqueueOperation(() => this.#renameManifest(name, newName));\n\t}\n\tasync #renameManifest(name, newName) {\n\t\treturn this.#afterMutation(await this.#store.renameManifest(name, newName));\n\t}\n\tdeleteManifest(name) {\n\t\treturn this.#enqueueOperation(() => this.#deleteManifest(name));\n\t}\n\tasync #deleteManifest(name) {\n\t\treturn this.#afterMutation(await this.#store.deleteManifest(name));\n\t}\n\t/** The autosave chain tail: process + regenerate, then report fresh state. */\n\tasync #afterMutation(library) {\n\t\treturn (await this.#afterMutationSnapshot(library)).state;\n\t}\n\tasync #afterMutationSnapshot(library) {\n\t\tconst run = this.#pipelineQueue.then(() => this.#runAfterMutation(library), () => this.#runAfterMutation(library));\n\t\tthis.#pipelineQueue = run.then(() => {}, () => {});\n\t\treturn run;\n\t}\n\tasync #runAfterMutation(library) {\n\t\tconst pipelineIssues = [];\n\t\tconst classification = await this.#classifyRawDirectory(library);\n\t\tconst ordinaryIssues = await this.#store.validate(library);\n\t\tconst safetyIssues = this.#rawSafetyIssues(library, classification);\n\t\tif (ordinaryIssues.length === 0 && safetyIssues.length === 0) try {\n\t\t\tconst report = await processAssets(this.#config, library, this.#registry);\n\t\t\tawait generateManifestModules(this.#config, library, report.proxies, this.#registry);\n\t\t} catch (cause) {\n\t\t\tpipelineIssues.push({ message: `Processing failed: ${cause instanceof Error ? cause.message : String(cause)}` });\n\t\t}\n\t\tconst latestLibrary = await this.#store.read();\n\t\tconst latestClassification = await this.#classifyRawDirectory(latestLibrary);\n\t\treturn {\n\t\t\tlibrary: latestLibrary,\n\t\t\tclassification: latestClassification,\n\t\t\tstate: await this.#snapshotState(latestLibrary, latestClassification, pipelineIssues)\n\t\t};\n\t}\n\tasync #buildState(library, issues, classification) {\n\t\tconst referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));\n\t\tconst membershipByManifest = computeLibraryMembership(library, referencesByAsset);\n\t\tconst delivered = allDeliveredAssetIds(membershipByManifest);\n\t\tconst passiveManifestsByAsset = /* @__PURE__ */ new Map();\n\t\tfor (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) for (const passiveMember of membershipByManifest[manifestName].passiveMembers) {\n\t\t\tconst passiveManifests = passiveManifestsByAsset.get(passiveMember.assetId) ?? [];\n\t\t\tpassiveManifests.push({\n\t\t\t\tmanifest: manifestName,\n\t\t\t\tvia: passiveMember.via\n\t\t\t});\n\t\t\tpassiveManifestsByAsset.set(passiveMember.assetId, passiveManifests);\n\t\t}\n\t\tconst incomingByAsset = /* @__PURE__ */ new Map();\n\t\tfor (const [referrerId, references] of Object.entries(referencesByAsset)) for (const reference of references) {\n\t\t\tconst incoming = incomingByAsset.get(reference.assetId) ?? [];\n\t\t\tincoming.push({\n\t\t\t\tfield: reference.field,\n\t\t\t\tassetId: referrerId\n\t\t\t});\n\t\t\tincomingByAsset.set(reference.assetId, incoming);\n\t\t}\n\t\tconst assets = [];\n\t\tfor (const assetId of Object.keys(library.assets).sort(compareCodeUnits)) {\n\t\t\tconst record = library.assets[assetId];\n\t\t\tconst warnings = [];\n\t\t\tfor (const issue of issues) if (issue.assetId === assetId) warnings.push(issue.message);\n\t\t\tif (record.manifests.length === 0 && !delivered.has(assetId)) warnings.push(\"In no manifest and not referenced by any delivered asset — nothing is processed or generated for it.\");\n\t\t\tlet proxy = null;\n\t\t\tif (delivered.has(assetId)) try {\n\t\t\t\tconst currentProxy = await readCurrentProxy(assetId, record, this.#config, this.#registry);\n\t\t\t\tif (currentProxy) proxy = {\n\t\t\t\t\turl: `/files/proxy/${encodeRelativePathForUrl(currentProxy.relativePath)}`,\n\t\t\t\t\tupToDate: true,\n\t\t\t\t\t...currentProxy\n\t\t\t\t};\n\t\t\t\telse warnings.push(\"Proxy is stale or missing — it will be (re)processed on the next save.\");\n\t\t\t} catch (cause) {\n\t\t\t\twarnings.push(cause instanceof Error ? cause.message : String(cause));\n\t\t\t}\n\t\t\tassets.push({\n\t\t\t\tid: assetId,\n\t\t\t\ttype: record.type,\n\t\t\t\traw: record.raw,\n\t\t\t\tfolder: folderOfRawPath(record.raw),\n\t\t\t\trawUrl: `/files/raw/${encodeRelativePathForUrl(record.raw)}?v=${record.rawHash.slice(0, 12)}`,\n\t\t\t\trawHash: record.rawHash,\n\t\t\t\tparameters: record.parameters,\n\t\t\t\tmanifests: record.manifests,\n\t\t\t\tpassiveManifests: passiveManifestsByAsset.get(assetId) ?? [],\n\t\t\t\tproxy,\n\t\t\t\twarnings,\n\t\t\t\treferences: {\n\t\t\t\t\toutgoing: referencesByAsset[assetId].map((reference) => ({\n\t\t\t\t\t\tfield: reference.field,\n\t\t\t\t\t\tassetId: reference.assetId\n\t\t\t\t\t})),\n\t\t\t\t\tincoming: incomingByAsset.get(assetId) ?? []\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tconst proxySizeByAssetId = new Map(assets.filter((asset) => asset.proxy).map((asset) => [asset.id, asset.proxy?.fileSize ?? 0]));\n\t\tconst manifestMemberships = {};\n\t\tconst manifestDeliveredBytes = {};\n\t\tfor (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) {\n\t\t\tconst membership = membershipByManifest[manifestName];\n\t\t\tmanifestMemberships[manifestName] = {\n\t\t\t\texplicitMemberIds: membership.explicitMemberIds,\n\t\t\t\tpassiveMembers: membership.passiveMembers\n\t\t\t};\n\t\t\tlet deliveredBytes = 0;\n\t\t\tfor (const deliveredAssetId of membership.deliveredAssetIds) deliveredBytes += proxySizeByAssetId.get(deliveredAssetId) ?? 0;\n\t\t\tmanifestDeliveredBytes[manifestName] = deliveredBytes;\n\t\t}\n\t\tconst presetNames = {};\n\t\tfor (const [type, plugin] of Object.entries(this.#registry)) presetNames[type] = Object.keys(plugin.presets(this.#config)).sort();\n\t\treturn {\n\t\t\tlibrary,\n\t\t\tassets,\n\t\t\tissues,\n\t\t\tpresetNames,\n\t\t\tmanifestMemberships,\n\t\t\tmanifestDeliveredBytes,\n\t\t\trawIngestionQueue: this.#buildRawIngestionQueue(library, classification)\n\t\t};\n\t}\n\t#compatibleTypes(path) {\n\t\treturn typesForFileName(path, Object.values(this.#registry).map((plugin) => plugin.descriptor)).sort(compareCodeUnits);\n\t}\n\t#classifyRawDirectory(library) {\n\t\treturn classifyRawDirectory(this.#config.rawDir, library, (path) => this.#compatibleTypes(path).length > 0);\n\t}\n\t#rawSafetyIssues(library, classification) {\n\t\treturn rawSafetyIssues(library, classification, (path) => this.#compatibleTypes(path));\n\t}\n\tasync #snapshotState(library, classification, extraIssues = []) {\n\t\tconst issues = [\n\t\t\t...await this.#store.validate(library),\n\t\t\t...this.#rawSafetyIssues(library, classification),\n\t\t\t...extraIssues\n\t\t];\n\t\tconst seen = /* @__PURE__ */ new Set();\n\t\tconst uniqueIssues = issues.filter((issue) => {\n\t\t\tconst key = `${issue.assetId ?? \"\"}|${issue.message}`;\n\t\t\tif (seen.has(key)) return false;\n\t\t\tseen.add(key);\n\t\t\treturn true;\n\t\t});\n\t\treturn this.#buildState(library, uniqueIssues, classification);\n\t}\n\t#canAutoReconcile(classification, retry = false) {\n\t\treturn classification.complete && classification.blockers.length === 0 && classification.moves.length + classification.deletions.length > 0 && (!retry || classification.edited.length === 0 && classification.unmanaged.length === 0);\n\t}\n\t#newToken(path, hash) {\n\t\treturn `new:${path}:${hash}`;\n\t}\n\t#editedToken(assetId, path, hash) {\n\t\treturn `edited:${assetId}:${path}:${hash}`;\n\t}\n\t#proposedId(path, reservedIds) {\n\t\tconst base = proposeAssetId(rawFileNameOfPath(path));\n\t\tif (!reservedIds.has(base)) return base;\n\t\tfor (let index = 2;; index++) {\n\t\t\tconst candidate = `${base}${index}`;\n\t\t\tif (!reservedIds.has(candidate)) return candidate;\n\t\t}\n\t}\n\t#buildRawIngestionQueue(library, classification) {\n\t\tconst queue = [];\n\t\tconst reservedIds = new Set(Object.keys(library.assets));\n\t\tfor (const file of classification.unmanaged) {\n\t\t\tconst compatibleTypes = this.#compatibleTypes(file.path);\n\t\t\tconst proposedId = this.#proposedId(file.path, reservedIds);\n\t\t\treservedIds.add(proposedId);\n\t\t\tqueue.push({\n\t\t\t\tkind: \"new\",\n\t\t\t\ttoken: this.#newToken(file.path, file.hash),\n\t\t\t\tpath: file.path,\n\t\t\t\thash: file.hash,\n\t\t\t\tcompatibleTypes,\n\t\t\t\tproposedId\n\t\t\t});\n\t\t}\n\t\tfor (const edited of this.#editedRawFiles(classification, library)) {\n\t\t\tconst currentType = library.assets[edited.assetId].type;\n\t\t\tqueue.push({\n\t\t\t\tkind: \"edited\",\n\t\t\t\ttoken: this.#editedToken(edited.assetId, edited.path, edited.hash),\n\t\t\t\tpath: edited.path,\n\t\t\t\thash: edited.hash,\n\t\t\t\tassetId: edited.assetId,\n\t\t\t\tcurrentType,\n\t\t\t\tcompatibleTypes: this.#compatibleTypes(edited.path)\n\t\t\t});\n\t\t}\n\t\tfor (const blocker of classification.blockers) queue.push({\n\t\t\tkind: \"unsupported\",\n\t\t\ttoken: `unsupported:${blocker.path}:${blocker.reason}`,\n\t\t\tpath: blocker.path,\n\t\t\treason: blocker.reason\n\t\t});\n\t\tfor (const diagnostic of classification.diagnostics) queue.push({\n\t\t\tkind: \"unsupported\",\n\t\t\ttoken: `unsupported:raw-directory:${diagnostic.reason}`,\n\t\t\tpath: diagnostic.path || \"Raw directory\",\n\t\t\treason: diagnostic.reason\n\t\t});\n\t\treturn queue.sort((a, b) => compareCodeUnits(a.path, b.path));\n\t}\n\t#editedRawFiles(classification, library) {\n\t\tconst edited = new Map(classification.edited.map((entry) => [entry.assetId, entry]));\n\t\tfor (const assetId of classification.unchangedAssetIds) {\n\t\t\tconst record = library.assets[assetId];\n\t\t\tif (!this.#compatibleTypes(record.raw).includes(record.type)) edited.set(assetId, {\n\t\t\t\tassetId,\n\t\t\t\tpath: record.raw,\n\t\t\t\thash: record.rawHash\n\t\t\t});\n\t\t}\n\t\treturn [...edited.values()].sort((a, b) => compareCodeUnits(a.path, b.path));\n\t}\n\t#registerFolderAncestors(library, folder) {\n\t\tif (folder === \"\") return;\n\t\tconst missing = [];\n\t\tfor (let current = folder; current !== \"\"; current = parentFolderPath(current)) if (!library.folders.includes(current)) missing.push(current);\n\t\tconst keys = new Map(library.folders.map((path) => [portableFolderPathKey(path), path]));\n\t\tfor (const path of missing.reverse()) {\n\t\t\tconst collision = keys.get(portableFolderPathKey(path));\n\t\t\tif (collision !== void 0 && collision !== path) throw new Error(`Folder \"${path}\" collides with existing folder \"${collision}\".`);\n\t\t\tlibrary.folders.push(path);\n\t\t\tkeys.set(portableFolderPathKey(path), path);\n\t\t}\n\t\tlibrary.folders.sort(compareCodeUnits);\n\t}\n\t#requireAsset(library, id) {\n\t\tif (!Object.hasOwn(library.assets, id)) throw new Error(`Unknown asset \"${id}\".`);\n\t}\n\t/**\n\t* Apply a CLI asset change to the store, validating the resulting library\n\t* on an in-memory candidate first — nothing is persisted when the change\n\t* would introduce validation issues. Pre-existing issues never block an\n\t* unrelated mutation (only *introduced* issues are rejected).\n\t*/\n\tasync #applyAssetChanges(library, id, changes) {\n\t\tconst candidate = structuredClone(library);\n\t\tconst candidateRecord = candidate.assets[id];\n\t\tif (changes.parametersPatch !== void 0) candidateRecord.parameters = serverPluginForType(candidateRecord.type, this.#registry).descriptor.validateParameters(mergeParameterPatch(candidateRecord.parameters, changes.parametersPatch));\n\t\tif (changes.manifests !== void 0) candidateRecord.manifests = [...new Set(changes.manifests)].sort();\n\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\tlet updated = library;\n\t\tif (changes.parametersPatch !== void 0) updated = await this.#store.updateParameters(id, candidateRecord.parameters);\n\t\tif (changes.manifests !== void 0) updated = await this.#store.setManifests(id, changes.manifests);\n\t\treturn updated;\n\t}\n\t/** Reject a candidate library that has validation issues the current one lacks. */\n\tasync #assertNoIntroducedIssues(library, candidate) {\n\t\tconst existingIssueKeys = new Set((await this.#store.validate(library)).map((issue) => `${issue.assetId ?? \"\"}|${issue.message}`));\n\t\tconst introduced = (await this.#store.validate(candidate)).filter((issue) => !existingIssueKeys.has(`${issue.assetId ?? \"\"}|${issue.message}`));\n\t\tif (introduced.length > 0) {\n\t\t\tconst lines = introduced.map((issue) => ` - ${issue.assetId ? `[${issue.assetId}] ` : \"\"}${issue.message}`);\n\t\t\tthrow new Error(`Rejected — the change would leave the library invalid (nothing was written):\\n${lines.join(\"\\n\")}`);\n\t\t}\n\t}\n};\n//#endregion\n//#region src/lib/server/context.ts\nvar context;\nfunction initializeFundusContext() {\n\tcontext ??= createFundusContext();\n\treturn context;\n}\nfunction getFundusContext() {\n\treturn initializeFundusContext();\n}\nasync function createFundusContext() {\n\tconst projectRoot = process.env.FUNDUS_PROJECT_ROOT;\n\tif (!projectRoot || !isAbsolute(projectRoot)) throw new Error(\"FUNDUS_PROJECT_ROOT must be set to an absolute host project directory.\");\n\tconst config = await loadConfig(projectRoot);\n\treturn {\n\t\tconfig,\n\t\toperations: new FundusOperations(config)\n\t};\n}\n//#endregion\nexport { initializeFundusContext as n, getFundusContext as t };\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"core.js-EA_ysb1J.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/asset-id.ts\n/**\n* Asset ids are the SSOT keys and the generated property names on manifests\n* are stable, human-readable camelCase slugs that must be valid JS\n* identifiers and must not collide with `Manifest` class members.\n*/\n/**\n* Names an asset id may never take: current and future members of the runtime\n* `Manifest` class (entries become direct properties on it), plus inherited\n* `Object.prototype` members that would shadow-collide, plus keys that are\n* prototype-pollution hazards when used as record keys (`prototype`;\n* `__proto__` already fails the camelCase pattern).\n*/\nvar RESERVED_ASSET_IDS = [\n\t\"preload\",\n\t\"release\",\n\t\"entries\",\n\t\"constructor\",\n\t\"prototype\",\n\t\"hasOwnProperty\",\n\t\"isPrototypeOf\",\n\t\"propertyIsEnumerable\",\n\t\"toLocaleString\",\n\t\"toString\",\n\t\"valueOf\"\n];\nvar ASSET_ID_PATTERN = /^[a-z][A-Za-z0-9]*$/;\n/**\n* Why an id is invalid, as a human-readable message — or `null` when valid.\n* Lets the editor and the validator surface the precise reason.\n*/\nfunction assetIdError(id) {\n\tif (!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\").`;\n\tif (RESERVED_ASSET_IDS.includes(id)) return `\"${id}\" is reserved (it collides with a Manifest member name).`;\n\treturn null;\n}\n/**\n* Manifest names deliberately share the asset-id grammar because each name\n* becomes a generated JavaScript module export.\n*/\nfunction manifestNameError(name) {\n\tif (!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\").`;\n\tif (RESERVED_ASSET_IDS.includes(name)) return `\"${name}\" is reserved (it collides with a Manifest member name).`;\n\treturn null;\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 { IMAGE_BUILT_IN_PRESETS as A, validateAudioPreset as B, SLICE_BUILT_IN_PRESETS as C, maxInset as D, defaultInsetsForSize as E, validateVideoPreset as F, videoPlugin as I, isAssetReference as L, validateImagePreset as M, chromaKeyVideoPlugin as N, maxOverdraw as O, VIDEO_BUILT_IN_PRESETS as P, AUDIO_BUILT_IN_PRESETS as R, plugins as S, createZeroInsets as T, normalizeFolderPath as _, assetIdError as a, rawFileNameOfPath as b, portableRawPathKey as c, folderNameError as d, folderNameOf as f, joinFolderPath as g, isFolderOrDescendant as h, typesForFileName as i, imagePlugin as j, slicedAxesFor as k, rawFilePathError as l, folderPathError as m, acceptedExtensionsForType as n, manifestNameError as o, folderOfRawPath as p, proposeAssetId as r, isFundusTransactionName as s, acceptedExtensions as t, FOLDER_SENTINEL as u, parentFolderPath as v, slicePlugin as w, replaceFolderPrefix as x, portableFolderPathKey as y, audioPlugin as z };\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"http.js-DyoR9XRI.js","sources":["../../../../.svelte-kit/output/server/chunks/http.js"],"sourcesContent":["import { n as assertSafeRelativeFilePath } from \"./library-store.js\";\nimport { extname, join } from \"node:path\";\nimport { existsSync } from \"node:fs\";\nimport { lstat, readFile } from \"node:fs/promises\";\n//#region src/lib/server/http.ts\nvar CONTENT_TYPES = {\n\t\".png\": \"image/png\",\n\t\".jpg\": \"image/jpeg\",\n\t\".jpeg\": \"image/jpeg\",\n\t\".webp\": \"image/webp\",\n\t\".gif\": \"image/gif\",\n\t\".avif\": \"image/avif\",\n\t\".svg\": \"image/svg+xml\",\n\t\".mp4\": \"video/mp4\",\n\t\".m4v\": \"video/mp4\",\n\t\".mov\": \"video/quicktime\",\n\t\".webm\": \"video/webm\",\n\t\".mp3\": \"audio/mpeg\",\n\t\".wav\": \"audio/wav\",\n\t\".m4a\": \"audio/mp4\",\n\t\".ogg\": \"audio/ogg\",\n\t\".flac\": \"audio/flac\"\n};\nfunction errorResponse(cause, status) {\n\tconst body = { error: { message: cause instanceof Error ? cause.message : String(cause) } };\n\treturn Response.json(body, { status });\n}\nfunction routeNotFound(event) {\n\treturn errorResponse(/* @__PURE__ */ new Error(`No route for ${event.request.method.toUpperCase()} ${event.url.pathname}.`), 404);\n}\nasync function apiResponse(run) {\n\ttry {\n\t\treturn Response.json(await run());\n\t} catch (cause) {\n\t\treturn errorResponse(cause, 400);\n\t}\n}\nfunction parseByteRange(rangeHeader, size) {\n\tif (!rangeHeader) return null;\n\tconst match = /^bytes=(\\d*)-(\\d*)$/.exec(rangeHeader.trim());\n\tif (!match || match[1] === \"\" && match[2] === \"\") return null;\n\tif (size === 0) return \"unsatisfiable\";\n\tlet start;\n\tlet end;\n\tif (match[1] === \"\") {\n\t\tstart = Math.max(0, size - Number(match[2]));\n\t\tend = size - 1;\n\t} else {\n\t\tstart = Number(match[1]);\n\t\tend = match[2] === \"\" ? size - 1 : Math.min(Number(match[2]), size - 1);\n\t}\n\tif (start > end || start >= size) return \"unsatisfiable\";\n\treturn {\n\t\tstart,\n\t\tend\n\t};\n}\nasync function serveFundusFile(config, kind, fileName, request) {\n\ttry {\n\t\tassertSafeRelativeFilePath(fileName);\n\t} catch (cause) {\n\t\treturn errorResponse(cause, 400);\n\t}\n\tconst filePath = join(kind === \"raw\" ? config.rawDir : config.proxyDir, fileName);\n\tif (!existsSync(filePath)) return errorResponse(/* @__PURE__ */ new Error(`File \"${fileName}\" not found.`), 404);\n\tconst fileStat = await lstat(filePath);\n\tif (!fileStat.isFile() || fileStat.isSymbolicLink()) return errorResponse(/* @__PURE__ */ new Error(`File \"${fileName}\" is not a regular file.`), 400);\n\tconst bytes = new Uint8Array(await readFile(filePath));\n\tconst size = bytes.byteLength;\n\tconst headers = {\n\t\t\"Content-Type\": CONTENT_TYPES[extname(fileName).toLowerCase()] ?? \"application/octet-stream\",\n\t\t\"Cache-Control\": \"no-store\",\n\t\t\"Accept-Ranges\": \"bytes\"\n\t};\n\tconst range = parseByteRange(request.headers.get(\"Range\"), size);\n\tif (range === \"unsatisfiable\") return new Response(null, {\n\t\tstatus: 416,\n\t\theaders: {\n\t\t\t...headers,\n\t\t\t\"Content-Range\": `bytes */${size}`\n\t\t}\n\t});\n\tif (range) {\n\t\tconst slice = bytes.subarray(range.start, range.end + 1);\n\t\treturn new Response(slice, {\n\t\t\tstatus: 206,\n\t\t\theaders: {\n\t\t\t\t...headers,\n\t\t\t\t\"Content-Range\": `bytes ${range.start}-${range.end}/${size}`,\n\t\t\t\t\"Content-Length\": String(slice.byteLength)\n\t\t\t}\n\t\t});\n\t}\n\treturn new Response(bytes, { headers: {\n\t\t...headers,\n\t\t\"Content-Length\": String(size)\n\t} });\n}\n//#endregion\nexport { serveFundusFile as i, errorResponse as n, routeNotFound as r, apiResponse as t };\n"],"names":[],"mappings":"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"}