fundus 0.29.0 → 0.29.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/README.md +6 -7
  2. package/build/client/_app/immutable/chunks/BHq5MS2C.js +121 -0
  3. package/build/client/_app/immutable/chunks/BHq5MS2C.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BHq5MS2C.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{kkVEh3_1.js → BqkXxBeq.js} +1 -1
  6. package/build/client/_app/immutable/chunks/BqkXxBeq.js.br +1 -0
  7. package/build/client/_app/immutable/chunks/BqkXxBeq.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{wBLhaPea.js → DX2oUnVm.js} +1 -1
  9. package/build/client/_app/immutable/chunks/DX2oUnVm.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/DX2oUnVm.js.gz +0 -0
  11. package/build/client/_app/immutable/entry/{app.DCXSqiQ1.js → app.BQGsntjn.js} +2 -2
  12. package/build/client/_app/immutable/entry/app.BQGsntjn.js.br +0 -0
  13. package/build/client/_app/immutable/entry/app.BQGsntjn.js.gz +0 -0
  14. package/build/client/_app/immutable/entry/start.CaLHYp7U.js +1 -0
  15. package/build/client/_app/immutable/entry/start.CaLHYp7U.js.br +1 -0
  16. package/build/client/_app/immutable/entry/start.CaLHYp7U.js.gz +0 -0
  17. package/build/client/_app/immutable/nodes/{0.CsqkK05g.js → 0.Dp-23Tj-.js} +1 -1
  18. package/build/client/_app/immutable/nodes/0.Dp-23Tj-.js.br +0 -0
  19. package/build/client/_app/immutable/nodes/0.Dp-23Tj-.js.gz +0 -0
  20. package/build/client/_app/immutable/nodes/{1.BVSXvtU9.js → 1.DnbM8Ssn.js} +1 -1
  21. package/build/client/_app/immutable/nodes/1.DnbM8Ssn.js.br +1 -0
  22. package/build/client/_app/immutable/nodes/1.DnbM8Ssn.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{2.BJEXWmrT.js → 2.Rrfk73B9.js} +1 -1
  24. package/build/client/_app/immutable/nodes/2.Rrfk73B9.js.br +0 -0
  25. package/build/client/_app/immutable/nodes/2.Rrfk73B9.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{3.BDMmDyL1.js → 3.iY9Cfbve.js} +1 -1
  27. package/build/client/_app/immutable/nodes/3.iY9Cfbve.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/3.iY9Cfbve.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{4.dd49_qQE.js → 4.Gy5flGJv.js} +1 -1
  30. package/build/client/_app/immutable/nodes/4.Gy5flGJv.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/4.Gy5flGJv.js.gz +0 -0
  32. package/build/client/_app/version.json +1 -1
  33. package/build/client/_app/version.json.br +0 -0
  34. package/build/client/_app/version.json.gz +0 -0
  35. package/build/handler.js +7 -7
  36. package/build/index.js +7 -7
  37. package/build/server/chunks/chunks/{context.js-DFZgDxCD.js → context.js-BR2IRl9z.js} +52 -24
  38. package/build/server/chunks/chunks/context.js-BR2IRl9z.js.map +1 -0
  39. package/build/server/chunks/chunks/{contract.js-DGZXpcNX.js → contract.js-DHeIVVv8.js} +44 -10
  40. package/build/server/chunks/chunks/contract.js-DHeIVVv8.js.map +1 -0
  41. package/build/server/chunks/chunks/{exports.js-BsVKSGJk.js → exports.js--TjIdS7-.js} +2 -2
  42. package/build/server/chunks/chunks/{exports.js-BsVKSGJk.js.map → exports.js--TjIdS7-.js.map} +1 -1
  43. package/build/server/chunks/chunks/{http.js-BQhjMaW9.js → http.js-dk5jbOFm.js} +2 -2
  44. package/build/server/chunks/chunks/{http.js-BQhjMaW9.js.map → http.js-dk5jbOFm.js.map} +1 -1
  45. package/build/server/chunks/chunks/{internal.js-DJGcNryj.js → internal.js-0bg1jWM6.js} +3 -3
  46. package/build/server/chunks/chunks/{internal.js-DJGcNryj.js.map → internal.js-0bg1jWM6.js.map} +1 -1
  47. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  48. package/build/server/chunks/chunks/{raw-reconciliation2.js-CMpUvuMd.js → raw-reconciliation.js-Cco4r8lr.js} +51 -17
  49. package/build/server/chunks/chunks/raw-reconciliation.js-Cco4r8lr.js.map +1 -0
  50. package/build/server/chunks/chunks/{raw-reconciliation.js-D2sI2C-t.js → raw-reconciliation2.js-CuYSsYTP.js} +2 -2
  51. package/build/server/chunks/chunks/raw-reconciliation2.js-CuYSsYTP.js.map +1 -0
  52. package/build/server/chunks/chunks/{shared.js-BtmYg0tL.js → shared.js-xTT2CxAF.js} +2 -2
  53. package/build/server/chunks/chunks/{shared.js-BtmYg0tL.js.map → shared.js-xTT2CxAF.js.map} +1 -1
  54. package/build/server/chunks/chunks/{utils.js-CqXk0Ug6.js → utils.js-BsAVB8Bp.js} +3 -3
  55. package/build/server/chunks/chunks/{utils.js-CqXk0Ug6.js.map → utils.js-BsAVB8Bp.js.map} +1 -1
  56. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-DKGD9Jk2.js → _server.ts.js-8jGLP2Aj.js} +4 -4
  57. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-DKGD9Jk2.js.map → _server.ts.js-8jGLP2Aj.js.map} +1 -1
  58. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-C1UfF0EO.js → _server.ts.js-BOW9Ejim.js} +5 -5
  59. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-C1UfF0EO.js.map → _server.ts.js-BOW9Ejim.js.map} +1 -1
  60. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DpASkk00.js → _server.ts.js-Clac8atJ.js} +5 -5
  61. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DpASkk00.js.map → _server.ts.js-Clac8atJ.js.map} +1 -1
  62. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-C3jU2vC8.js → _server.ts.js-EdHTA-SO.js} +5 -5
  63. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-C3jU2vC8.js.map → _server.ts.js-EdHTA-SO.js.map} +1 -1
  64. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-B7OwufF3.js → _server.ts.js-ZBCRgRYi.js} +5 -5
  65. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-B7OwufF3.js.map → _server.ts.js-ZBCRgRYi.js.map} +1 -1
  66. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-COhg1nYk.js → _server.ts.js-DY_e5K6d.js} +5 -5
  67. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-COhg1nYk.js.map → _server.ts.js-DY_e5K6d.js.map} +1 -1
  68. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DAEE17eM.js → _server.ts.js-Cl2jxJNi.js} +5 -5
  69. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DAEE17eM.js.map → _server.ts.js-Cl2jxJNi.js.map} +1 -1
  70. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BrZSS4gm.js → _server.ts.js-DrrZWUbd.js} +5 -5
  71. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BrZSS4gm.js.map → _server.ts.js-DrrZWUbd.js.map} +1 -1
  72. package/build/server/chunks/entries/endpoints/api/events/{_server.ts.js-Cfst-Brd.js → _server.ts.js-Bnw0HbEk.js} +5 -5
  73. package/build/server/chunks/entries/endpoints/api/events/{_server.ts.js-Cfst-Brd.js.map → _server.ts.js-Bnw0HbEk.js.map} +1 -1
  74. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-aN_h2Ifo.js → _server.ts.js-NeVn2ap9.js} +5 -5
  75. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-aN_h2Ifo.js.map → _server.ts.js-NeVn2ap9.js.map} +1 -1
  76. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CX2A66ij.js → _server.ts.js-ENGDgoLy.js} +5 -5
  77. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CX2A66ij.js.map → _server.ts.js-ENGDgoLy.js.map} +1 -1
  78. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CwTiaheP.js → _server.ts.js-BQVGCzBR.js} +5 -5
  79. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CwTiaheP.js.map → _server.ts.js-BQVGCzBR.js.map} +1 -1
  80. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-fIbsr_2e.js → _server.ts.js-Pxver0Y-.js} +5 -5
  81. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-fIbsr_2e.js.map → _server.ts.js-Pxver0Y-.js.map} +1 -1
  82. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Dvo1bsLi.js → _server.ts.js-DYtiqzJq.js} +5 -5
  83. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Dvo1bsLi.js.map → _server.ts.js-DYtiqzJq.js.map} +1 -1
  84. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-VLg1G3mN.js → _server.ts.js-lBgmEZHV.js} +5 -5
  85. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-VLg1G3mN.js.map → _server.ts.js-lBgmEZHV.js.map} +1 -1
  86. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DqctsOop.js → _server.ts.js-BJHyONFH.js} +5 -5
  87. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DqctsOop.js.map → _server.ts.js-BJHyONFH.js.map} +1 -1
  88. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-CoxSU5iO.js → _server.ts.js-Bm5XO80W.js} +5 -5
  89. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-CoxSU5iO.js.map → _server.ts.js-Bm5XO80W.js.map} +1 -1
  90. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-wUxsLZdr.js → _server.ts.js-B7Z20kYf.js} +5 -5
  91. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-wUxsLZdr.js.map → _server.ts.js-B7Z20kYf.js.map} +1 -1
  92. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-BKsF0Oit.js → _server.ts.js-Cg-f37jc.js} +5 -5
  93. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-BKsF0Oit.js.map → _server.ts.js-Cg-f37jc.js.map} +1 -1
  94. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-Dk9oOZwM.js → _server.ts.js-dIXZiq5l.js} +5 -5
  95. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-Dk9oOZwM.js.map → _server.ts.js-dIXZiq5l.js.map} +1 -1
  96. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DxjNmmtL.js → _server.ts.js-CnTrS5pT.js} +5 -5
  97. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DxjNmmtL.js.map → _server.ts.js-CnTrS5pT.js.map} +1 -1
  98. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DD0b38VV.js → _server.ts.js-B7TcFRuL.js} +4 -4
  99. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DD0b38VV.js.map → _server.ts.js-B7TcFRuL.js.map} +1 -1
  100. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DId6F2i_.js → _server.ts.js-BkUQInqW.js} +5 -5
  101. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DId6F2i_.js.map → _server.ts.js-BkUQInqW.js.map} +1 -1
  102. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-DKKkGoK2.js → _server.ts.js-CshyvqOq.js} +5 -5
  103. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-DKKkGoK2.js.map → _server.ts.js-CshyvqOq.js.map} +1 -1
  104. package/build/server/chunks/entries/{hooks.server.js-B5Ctvorj.js → hooks.server.js-D4DECjz_.js} +6 -5
  105. package/build/server/chunks/entries/hooks.server.js-D4DECjz_.js.map +1 -0
  106. package/build/server/chunks/{handler-DwVfBx6r.js → handler-DJLsE3cc.js} +5 -5
  107. package/build/server/chunks/{handler-DwVfBx6r.js.map → handler-DJLsE3cc.js.map} +1 -1
  108. package/build/server/chunks/{index.js-DgPuPQJn.js → index.js-BYjtKmHQ.js} +5 -5
  109. package/build/server/chunks/{index.js-DgPuPQJn.js.map → index.js-BYjtKmHQ.js.map} +1 -1
  110. package/build/server/chunks/{manifest.js-B054EcAf.js → manifest.js-CUqPgamt.js} +31 -31
  111. package/build/server/chunks/{manifest.js-B054EcAf.js.map → manifest.js-CUqPgamt.js.map} +1 -1
  112. package/build/server/chunks/nodes/{0.js-DoHZTmnT.js → 0.js-DzXXdTj5.js} +2 -2
  113. package/build/server/chunks/nodes/{0.js-DoHZTmnT.js.map → 0.js-DzXXdTj5.js.map} +1 -1
  114. package/build/server/chunks/nodes/1.js-1XyvWIrN.js +7 -0
  115. package/build/server/chunks/nodes/{1.js-BcPlsloO.js.map → 1.js-1XyvWIrN.js.map} +1 -1
  116. package/build/server/chunks/nodes/{2.js-5qCXkvzl.js → 2.js-LV4HWUXV.js} +2 -2
  117. package/build/server/chunks/nodes/{2.js-5qCXkvzl.js.map → 2.js-LV4HWUXV.js.map} +1 -1
  118. package/build/server/chunks/nodes/3.js-CcUSX9ZF.js +7 -0
  119. package/build/server/chunks/nodes/{3.js-D6fAMX1w.js.map → 3.js-CcUSX9ZF.js.map} +1 -1
  120. package/build/server/chunks/nodes/{4.js-CGkeT0SQ.js → 4.js-D4nLILsU.js} +2 -2
  121. package/build/server/chunks/nodes/{4.js-CGkeT0SQ.js.map → 4.js-D4nLILsU.js.map} +1 -1
  122. package/dist/runtime/canvas.d.ts +1 -1
  123. package/dist/runtime/components/Slice.svelte +12 -16
  124. package/dist/runtime/kind-handlers.d.ts +6 -10
  125. package/dist/runtime/kind-handlers.js +29 -49
  126. package/dist/runtime/manifest.d.ts +2 -8
  127. package/dist/runtime/manifest.js +4 -5
  128. package/dist/runtime/preload-registry.d.ts +5 -7
  129. package/dist/runtime/preload-registry.js +6 -9
  130. package/dist/runtime/retained-entry.d.ts +1 -1
  131. package/dist/runtime/retained-entry.js +1 -1
  132. package/dist/runtime/slice-source-lifecycle.d.ts +2 -10
  133. package/dist/runtime/slice-source-lifecycle.js +2 -11
  134. package/dist/server/concurrency.d.ts +12 -0
  135. package/dist/server/concurrency.js +23 -0
  136. package/dist/server/image-duplicates.js +6 -4
  137. package/dist/server/operations.d.ts +7 -0
  138. package/dist/server/operations.js +53 -26
  139. package/dist/server/processing/processor.d.ts +29 -1
  140. package/dist/server/processing/processor.js +42 -5
  141. package/dist/server/raw-reconciliation.js +26 -10
  142. package/package.json +1 -1
  143. package/build/client/_app/immutable/chunks/BCmR1_e0.js +0 -121
  144. package/build/client/_app/immutable/chunks/BCmR1_e0.js.br +0 -0
  145. package/build/client/_app/immutable/chunks/BCmR1_e0.js.gz +0 -0
  146. package/build/client/_app/immutable/chunks/kkVEh3_1.js.br +0 -2
  147. package/build/client/_app/immutable/chunks/kkVEh3_1.js.gz +0 -0
  148. package/build/client/_app/immutable/chunks/wBLhaPea.js.br +0 -0
  149. package/build/client/_app/immutable/chunks/wBLhaPea.js.gz +0 -0
  150. package/build/client/_app/immutable/entry/app.DCXSqiQ1.js.br +0 -0
  151. package/build/client/_app/immutable/entry/app.DCXSqiQ1.js.gz +0 -0
  152. package/build/client/_app/immutable/entry/start.BOUpxuMU.js +0 -1
  153. package/build/client/_app/immutable/entry/start.BOUpxuMU.js.br +0 -0
  154. package/build/client/_app/immutable/entry/start.BOUpxuMU.js.gz +0 -0
  155. package/build/client/_app/immutable/nodes/0.CsqkK05g.js.br +0 -0
  156. package/build/client/_app/immutable/nodes/0.CsqkK05g.js.gz +0 -0
  157. package/build/client/_app/immutable/nodes/1.BVSXvtU9.js.br +0 -2
  158. package/build/client/_app/immutable/nodes/1.BVSXvtU9.js.gz +0 -0
  159. package/build/client/_app/immutable/nodes/2.BJEXWmrT.js.br +0 -0
  160. package/build/client/_app/immutable/nodes/2.BJEXWmrT.js.gz +0 -0
  161. package/build/client/_app/immutable/nodes/3.BDMmDyL1.js.br +0 -0
  162. package/build/client/_app/immutable/nodes/3.BDMmDyL1.js.gz +0 -0
  163. package/build/client/_app/immutable/nodes/4.dd49_qQE.js.br +0 -0
  164. package/build/client/_app/immutable/nodes/4.dd49_qQE.js.gz +0 -0
  165. package/build/server/chunks/chunks/context.js-DFZgDxCD.js.map +0 -1
  166. package/build/server/chunks/chunks/contract.js-DGZXpcNX.js.map +0 -1
  167. package/build/server/chunks/chunks/raw-reconciliation.js-D2sI2C-t.js.map +0 -1
  168. package/build/server/chunks/chunks/raw-reconciliation2.js-CMpUvuMd.js.map +0 -1
  169. package/build/server/chunks/entries/hooks.server.js-B5Ctvorj.js.map +0 -1
  170. package/build/server/chunks/nodes/1.js-BcPlsloO.js +0 -7
  171. package/build/server/chunks/nodes/3.js-D6fAMX1w.js +0 -7
@@ -1,2 +1,2 @@
1
- import{$ as e,A as t,D as n,K as r,L as i,M as a,P as o,Q as s,R as c,V as l,Z as u,b as d,dt as f,f as p,j as m,l as h,nt as g,ot as _,p as v,rt as y,st as b,tt as x,ut as S,y as C}from"../chunks/DLEDBLL1.js";import{l as w}from"../chunks/wBLhaPea.js";import"../chunks/xihTtKlq.js";import{A as T,H as E,K as D,a as ee,c as te,et as O,f as k,t as A}from"../chunks/C0uU_Rhe.js";import{i as j,n as ne,t as M}from"../chunks/CzxolZCO.js";var N=[{name:`slate`,value:`#64748b`},{name:`red`,value:`#ef4444`},{name:`orange`,value:`#f97316`},{name:`amber`,value:`#f59e0b`},{name:`yellow`,value:`#eab308`},{name:`lime`,value:`#84cc16`},{name:`green`,value:`#22c55e`},{name:`teal`,value:`#14b8a6`},{name:`cyan`,value:`#06b6d4`},{name:`blue`,value:`#3b82f6`},{name:`indigo`,value:`#6366f1`},{name:`violet`,value:`#8b5cf6`},{name:`pink`,value:`#ec4899`}],P=`🗂️.🏠.🎯.⭐.🔥.💎.🎨.🧩.🚀.🎵.🏆.⚡.🌟.🍀.🎁.📦.🗺️.🔑.🛒.❤️.🐙.🎲.🌈.🧪.🎪.🎭.🎬.🎤.🎧.🎸.🥁.🔔.💡.🔮.🧭.⏰.📸.🖼️.📚.✏️.🖌️.🧲.⚙️.🛠️.🔧.🧰.🔌.🔋.🌍.🌙.☀️.❄️.🌊.🍄.🌵.🌸.🍎.🍕.🍩.☕.🐳.🦄.🐝`.split(`.`),F=o(`<button type="button" title="Emoji"> </button>`),re=o(`<button type="button"> </button>`),I=o(`<div class="picker emojis svelte-58t64l"><button type="button" title="No emoji" aria-label="No emoji">∅</button> <!></div>`),L=o(`<button type="button" title="Color"></button>`),R=o(`<button type="button"></button>`),z=o(`<div class="picker swatches svelte-58t64l"><button type="button" title="No color" aria-label="No color"></button> <!></div>`),B=o(`<div class="controls svelte-58t64l"><!> <!></div>`);function ie(t,i){b(i,!0);let o=y(()=>A.manifestAppearance(i.name)),s=y(()=>l(o).color??null),p=y(()=>l(o).emoji??null),h=g(!1),S=g(!1);async function w(e){let t=i.name;x(h,!1);try{await A.mutate(()=>O(t,{color:e}),k(t,{color:e}),{dependencies:[`manifest:${t}`]})}catch{}}async function T(e){let t=i.name;x(S,!1);try{await A.mutate(()=>O(t,{emoji:e}),k(t,{emoji:e}),{dependencies:[`manifest:${t}`]})}catch{}}var E=B(),D=u(E);M(D,{get label(){return`Pick an emoji for ${i.name??``}`},get open(){return l(S)},set open(e){x(S,e,!0)},trigger:(e,t)=>{let n=()=>(t?.()).toggle,o=()=>(t?.()).open;var s=F();let h;var g=u(s,!0);f(s),r(()=>{h=d(s,1,`emoji-trigger svelte-58t64l`,null,h,{empty:!l(p),active:o()}),v(s,`aria-label`,`Emoji for ${i.name??``}`),m(g,l(p)??`☺`)}),c(`click`,s,function(...e){n()?.apply(this,e)}),a(e,s)},children:(t,i)=>{var o=I(),s=u(o);let h;n(e(s,2),16,()=>P,e=>e,(e,t)=>{var n=re();let i;var o=u(n,!0);f(n),r(()=>{i=d(n,1,`emoji svelte-58t64l`,null,i,{selected:l(p)===t}),v(n,`title`,t),m(o,t)}),c(`click`,n,()=>void T(t)),a(e,n)}),f(o),r(()=>h=d(s,1,`emoji none svelte-58t64l`,null,h,{selected:l(p)===null})),c(`click`,s,()=>void T(null)),a(t,o)},$$slots:{trigger:!0,default:!0}}),M(e(D,2),{get label(){return`Pick a color for ${i.name??``}`},get open(){return l(h)},set open(e){x(h,e,!0)},trigger:(e,t)=>{let n=()=>(t?.()).toggle,o=()=>(t?.()).open;var u=L();let f;r(()=>{f=d(u,1,`swatch-trigger svelte-58t64l`,null,f,{empty:!l(s),active:o()}),C(u,`--swatch: ${l(s)??`transparent`??``}`),v(u,`aria-label`,`Color for ${i.name??``}`)}),c(`click`,u,function(...e){n()?.apply(this,e)}),a(e,u)},children:(t,i)=>{var o=z(),p=u(o);let m;n(e(p,2),17,()=>N,e=>e.value,(e,t)=>{var n=R();let i;r(()=>{i=d(n,1,`swatch svelte-58t64l`,null,i,{selected:l(s)===l(t).value}),C(n,`background: ${l(t).value??``}`),v(n,`title`,l(t).name),v(n,`aria-label`,l(t).name)}),c(`click`,n,()=>void w(l(t).value)),a(e,n)}),f(o),r(()=>m=d(p,1,`swatch none svelte-58t64l`,null,m,{selected:l(s)===null})),c(`click`,p,()=>void w(null)),a(t,o)},$$slots:{trigger:!0,default:!0}}),f(E),a(t,E),_()}i([`click`]);var ae=o(`<span class="hint svelte-1k9wgg5"> </span>`),oe=o(`<div class="empty svelte-1k9wgg5">No manifests yet. Assets only get processed and generated once they are in a manifest.</div>`),se=o(`<span class="asset-type svelte-1k9wgg5"> </span>`),ce=o(`<li class="passive-member svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id passive-id svelte-1k9wgg5"> </span> <!> <span class="asset-via svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li>`),le=o(`<li class="svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id svelte-1k9wgg5"> </span> <span class="asset-type svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li> <!>`,1),ue=o(`<ul class="svelte-1k9wgg5"></ul>`),de=o(`<p class="hint svelte-1k9wgg5">Empty — an empty manifest still generates an (empty) module.</p>`),fe=o(`<section class="manifest svelte-1k9wgg5"><header class="svelte-1k9wgg5"><!> <h2 class="svelte-1k9wgg5"> </h2> <span class="size svelte-1k9wgg5" title="Total delivered proxy size incl. the reference closure — the preload budget"> </span> <span class="count svelte-1k9wgg5"> </span> <button class="control">Rename</button> <button class="control danger">Delete</button></header> <!></section>`),pe=o(`<div class="list svelte-1k9wgg5"></div>`),V=o(`<p class="dialog-text warn svelte-1k9wgg5"> </p>`),me=o(`<p class="dialog-text svelte-1k9wgg5">Delete manifest <strong> </strong> </p> <!>`,1),he=o(`<p class="dialog-text warn svelte-1k9wgg5">A manifest with this name already exists.</p>`),ge=o(`<label class="dialog-row svelte-1k9wgg5"><span class="dialog-label svelte-1k9wgg5">Name</span> <input class="control svelte-1k9wgg5" type="text" spellcheck="false"/></label> <!> <p class="dialog-text svelte-1k9wgg5">The generated module is renamed with the manifest — host code importing <code> </code> must be updated by hand.</p> <!>`,1),_e=o(`<div class="page svelte-1k9wgg5"><div class="create svelte-1k9wgg5"><input class="control svelte-1k9wgg5" type="text" placeholder="newManifestName" spellcheck="false"/> <button class="control primary">Create manifest</button> <!></div> <!></div> <!> <!>`,1);function H(i,o){b(o,!0);let d=g(``),M=y(()=>A.state?.assets??[]),N=y(()=>A.manifestNames);function P(e){return l(M).filter(t=>t.manifests.includes(e))}function F(e){return A.state?.manifestMemberships[e]?.passiveMembers??[]}function re(e,t){return F(e).filter(e=>e.via.includes(t))}function I(e){return A.state?.manifestDeliveredBytes[e]??0}let L=y(()=>l(d)?T(l(d)):null),R=y(()=>l(d)!==``&&!l(L)&&!l(N).includes(l(d)));async function z(){if(!l(R))return;let e=l(d),t=A.mutate(()=>E(e),ee(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});x(d,``);try{await t}catch{l(d)===``&&!Object.hasOwn(A.state?.library.manifests??{},e)&&x(d,e,!0)}}let B=g(null),H=g(null),U=g(``),W=g(!1),G=g(null),K=0;function ve(e){K+=1,x(G,null),x(B,e,!0)}function ye(e){K+=1,x(G,null),x(U,e,!0),x(H,e,!0)}function q(){K+=1,x(B,null),x(H,null),x(G,null)}let J=y(()=>l(H)!==null&&l(U)!==l(H)?T(l(U)):null),be=y(()=>l(H)!==null&&l(U)!==l(H)&&l(N).includes(l(U))),xe=y(()=>l(H)!==null&&l(U)!==l(H)&&!l(J)&&!l(be));async function Se(){if(l(B)===null)return;let e=l(B);x(W,!0),x(G,null);let t=A.mutate(()=>D(e),te(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});q();let n=K;x(W,!1);try{await t}catch(t){K===n&&Object.hasOwn(A.state?.library.manifests??{},e)&&(x(B,e,!0),x(G,t instanceof Error?t.message:String(t),!0))}finally{x(W,!1)}}async function Ce(){if(l(H)===null||!l(xe))return;let e=l(H),t=l(U);x(W,!0),x(G,null);let n=A.mutate(()=>O(e,{renameTo:t}),k(e,{renameTo:t}),{dependencies:[`manifest:${e}`,`manifest:${t}`],invalidatesOnFailure:[`manifest:${e}`,`manifest:${t}`]});q();let r=K;x(W,!1);try{await n}catch(n){K===r&&Object.hasOwn(A.state?.library.manifests??{},e)&&(x(H,e,!0),x(U,t,!0),x(G,n instanceof Error?n.message:String(n),!0))}finally{x(W,!1)}}var we=_e(),Y=s(we),X=u(Y),Z=u(X);p(Z);var Q=e(Z,2),Te=e(Q,2),Ee=e=>{var t=ae(),n=u(t,!0);f(t),r(()=>m(n,l(L))),a(e,t)};t(Te,e=>{l(L)&&e(Ee)}),f(X);var De=e(X,2),Oe=e=>{a(e,oe())},ke=i=>{var o=pe();n(o,20,()=>l(N),e=>e,(i,o)=>{var d=fe(),p=u(d),h=u(p);ie(h,{get name(){return o}});var g=e(h,2),_=u(g,!0);f(g);var b=e(g,2),x=u(b,!0);f(b);var S=e(b,2),T=u(S);f(S);var E=e(S,2),D=e(E,2);f(p);var ee=e(p,2),te=i=>{var c=ue();n(c,21,()=>P(o),e=>e.id,(i,c)=>{var d=le(),p=s(d),h=u(p),g=u(h),_=u(g,!0);f(g);var b=e(g,2),x=u(b,!0);f(b);var S=e(b,2),C=u(S,!0);f(S),f(h),f(p),n(e(p,2),17,()=>re(o,l(c).id),e=>e.assetId,(n,i)=>{let o=y(()=>A.assetById(l(i).assetId));var s=ce(),d=u(s),p=u(d),h=u(p,!0);f(p);var g=e(p,2),_=e=>{var t=se(),n=u(t,!0);f(t),r(()=>m(n,l(o).type)),a(e,t)};t(g,e=>{l(o)&&e(_)});var b=e(g,2),x=u(b);f(b);var S=e(b,2),C=u(S,!0);f(S),f(d),f(s),r((e,t)=>{v(d,`href`,e),m(h,l(i).assetId),m(x,`via ${l(c).id??``}`),m(C,t)},[()=>w(`/asset/[id]`,{id:l(i).assetId}),()=>l(o)?.proxy?j(l(o).proxy.fileSize):`—`]),a(n,s)}),r((e,t)=>{v(h,`href`,e),m(_,l(c).id),m(x,l(c).type),m(C,t)},[()=>w(`/asset/[id]`,{id:l(c).id}),()=>l(c).proxy?j(l(c).proxy.fileSize):`—`]),a(i,d)}),f(c),a(i,c)},O=y(()=>P(o).length>0),k=e=>{a(e,de())};t(ee,e=>{l(O)?e(te):e(k,-1)}),f(d),r((e,t,n,r)=>{C(d,`--manifest-color: ${e??``}`),m(_,o),m(x,t),m(T,`${n??``} asset(s)${r??``}`)},[()=>A.manifestAppearance(o).color??`var(--border-soft)`,()=>j(I(o)),()=>P(o).length,()=>F(o).length>0?` + ${F(o).length} passive`:``]),c(`click`,E,()=>ye(o)),c(`click`,D,()=>ve(o)),a(i,d)}),f(o),a(i,o)};t(De,e=>{l(N).length===0?e(Oe):e(ke,-1)}),f(Y);var $=e(Y,2),Ae=n=>{let i=y(()=>P(l(B)).length);{let o=y(()=>l(W)?`Deleting…`:`Delete`);ne(n,{title:`Delete manifest`,get confirmLabel(){return l(o)},danger:!0,get busy(){return l(W)},onConfirm:()=>void Se(),onCancel:q,children:(n,o)=>{var c=me(),d=s(c),p=e(u(d)),h=u(p,!0);f(p);var g=e(p);f(d);var _=e(d,2),v=e=>{var t=V(),n=u(t,!0);f(t),r(()=>m(n,l(G))),a(e,t)};t(_,e=>{l(G)&&e(v)}),r(()=>{m(h,l(B)),m(g,`? Its generated module is removed. Assets are
1
+ import{$ as e,A as t,D as n,K as r,L as i,M as a,P as o,Q as s,R as c,V as l,Z as u,b as d,dt as f,f as p,j as m,l as h,nt as g,ot as _,p as v,rt as y,st as b,tt as x,ut as S,y as C}from"../chunks/DLEDBLL1.js";import{l as w}from"../chunks/DX2oUnVm.js";import"../chunks/xihTtKlq.js";import{A as T,H as E,K as D,a as ee,c as te,et as O,f as k,t as A}from"../chunks/C0uU_Rhe.js";import{i as j,n as ne,t as M}from"../chunks/CzxolZCO.js";var N=[{name:`slate`,value:`#64748b`},{name:`red`,value:`#ef4444`},{name:`orange`,value:`#f97316`},{name:`amber`,value:`#f59e0b`},{name:`yellow`,value:`#eab308`},{name:`lime`,value:`#84cc16`},{name:`green`,value:`#22c55e`},{name:`teal`,value:`#14b8a6`},{name:`cyan`,value:`#06b6d4`},{name:`blue`,value:`#3b82f6`},{name:`indigo`,value:`#6366f1`},{name:`violet`,value:`#8b5cf6`},{name:`pink`,value:`#ec4899`}],P=`🗂️.🏠.🎯.⭐.🔥.💎.🎨.🧩.🚀.🎵.🏆.⚡.🌟.🍀.🎁.📦.🗺️.🔑.🛒.❤️.🐙.🎲.🌈.🧪.🎪.🎭.🎬.🎤.🎧.🎸.🥁.🔔.💡.🔮.🧭.⏰.📸.🖼️.📚.✏️.🖌️.🧲.⚙️.🛠️.🔧.🧰.🔌.🔋.🌍.🌙.☀️.❄️.🌊.🍄.🌵.🌸.🍎.🍕.🍩.☕.🐳.🦄.🐝`.split(`.`),F=o(`<button type="button" title="Emoji"> </button>`),re=o(`<button type="button"> </button>`),I=o(`<div class="picker emojis svelte-58t64l"><button type="button" title="No emoji" aria-label="No emoji">∅</button> <!></div>`),L=o(`<button type="button" title="Color"></button>`),R=o(`<button type="button"></button>`),z=o(`<div class="picker swatches svelte-58t64l"><button type="button" title="No color" aria-label="No color"></button> <!></div>`),B=o(`<div class="controls svelte-58t64l"><!> <!></div>`);function ie(t,i){b(i,!0);let o=y(()=>A.manifestAppearance(i.name)),s=y(()=>l(o).color??null),p=y(()=>l(o).emoji??null),h=g(!1),S=g(!1);async function w(e){let t=i.name;x(h,!1);try{await A.mutate(()=>O(t,{color:e}),k(t,{color:e}),{dependencies:[`manifest:${t}`]})}catch{}}async function T(e){let t=i.name;x(S,!1);try{await A.mutate(()=>O(t,{emoji:e}),k(t,{emoji:e}),{dependencies:[`manifest:${t}`]})}catch{}}var E=B(),D=u(E);M(D,{get label(){return`Pick an emoji for ${i.name??``}`},get open(){return l(S)},set open(e){x(S,e,!0)},trigger:(e,t)=>{let n=()=>(t?.()).toggle,o=()=>(t?.()).open;var s=F();let h;var g=u(s,!0);f(s),r(()=>{h=d(s,1,`emoji-trigger svelte-58t64l`,null,h,{empty:!l(p),active:o()}),v(s,`aria-label`,`Emoji for ${i.name??``}`),m(g,l(p)??`☺`)}),c(`click`,s,function(...e){n()?.apply(this,e)}),a(e,s)},children:(t,i)=>{var o=I(),s=u(o);let h;n(e(s,2),16,()=>P,e=>e,(e,t)=>{var n=re();let i;var o=u(n,!0);f(n),r(()=>{i=d(n,1,`emoji svelte-58t64l`,null,i,{selected:l(p)===t}),v(n,`title`,t),m(o,t)}),c(`click`,n,()=>void T(t)),a(e,n)}),f(o),r(()=>h=d(s,1,`emoji none svelte-58t64l`,null,h,{selected:l(p)===null})),c(`click`,s,()=>void T(null)),a(t,o)},$$slots:{trigger:!0,default:!0}}),M(e(D,2),{get label(){return`Pick a color for ${i.name??``}`},get open(){return l(h)},set open(e){x(h,e,!0)},trigger:(e,t)=>{let n=()=>(t?.()).toggle,o=()=>(t?.()).open;var u=L();let f;r(()=>{f=d(u,1,`swatch-trigger svelte-58t64l`,null,f,{empty:!l(s),active:o()}),C(u,`--swatch: ${l(s)??`transparent`??``}`),v(u,`aria-label`,`Color for ${i.name??``}`)}),c(`click`,u,function(...e){n()?.apply(this,e)}),a(e,u)},children:(t,i)=>{var o=z(),p=u(o);let m;n(e(p,2),17,()=>N,e=>e.value,(e,t)=>{var n=R();let i;r(()=>{i=d(n,1,`swatch svelte-58t64l`,null,i,{selected:l(s)===l(t).value}),C(n,`background: ${l(t).value??``}`),v(n,`title`,l(t).name),v(n,`aria-label`,l(t).name)}),c(`click`,n,()=>void w(l(t).value)),a(e,n)}),f(o),r(()=>m=d(p,1,`swatch none svelte-58t64l`,null,m,{selected:l(s)===null})),c(`click`,p,()=>void w(null)),a(t,o)},$$slots:{trigger:!0,default:!0}}),f(E),a(t,E),_()}i([`click`]);var ae=o(`<span class="hint svelte-1k9wgg5"> </span>`),oe=o(`<div class="empty svelte-1k9wgg5">No manifests yet. Assets only get processed and generated once they are in a manifest.</div>`),se=o(`<span class="asset-type svelte-1k9wgg5"> </span>`),ce=o(`<li class="passive-member svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id passive-id svelte-1k9wgg5"> </span> <!> <span class="asset-via svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li>`),le=o(`<li class="svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id svelte-1k9wgg5"> </span> <span class="asset-type svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li> <!>`,1),ue=o(`<ul class="svelte-1k9wgg5"></ul>`),de=o(`<p class="hint svelte-1k9wgg5">Empty — an empty manifest still generates an (empty) module.</p>`),fe=o(`<section class="manifest svelte-1k9wgg5"><header class="svelte-1k9wgg5"><!> <h2 class="svelte-1k9wgg5"> </h2> <span class="size svelte-1k9wgg5" title="Total delivered proxy size incl. the reference closure — the preload budget"> </span> <span class="count svelte-1k9wgg5"> </span> <button class="control">Rename</button> <button class="control danger">Delete</button></header> <!></section>`),pe=o(`<div class="list svelte-1k9wgg5"></div>`),V=o(`<p class="dialog-text warn svelte-1k9wgg5"> </p>`),me=o(`<p class="dialog-text svelte-1k9wgg5">Delete manifest <strong> </strong> </p> <!>`,1),he=o(`<p class="dialog-text warn svelte-1k9wgg5">A manifest with this name already exists.</p>`),ge=o(`<label class="dialog-row svelte-1k9wgg5"><span class="dialog-label svelte-1k9wgg5">Name</span> <input class="control svelte-1k9wgg5" type="text" spellcheck="false"/></label> <!> <p class="dialog-text svelte-1k9wgg5">The generated module is renamed with the manifest — host code importing <code> </code> must be updated by hand.</p> <!>`,1),_e=o(`<div class="page svelte-1k9wgg5"><div class="create svelte-1k9wgg5"><input class="control svelte-1k9wgg5" type="text" placeholder="newManifestName" spellcheck="false"/> <button class="control primary">Create manifest</button> <!></div> <!></div> <!> <!>`,1);function H(i,o){b(o,!0);let d=g(``),M=y(()=>A.state?.assets??[]),N=y(()=>A.manifestNames);function P(e){return l(M).filter(t=>t.manifests.includes(e))}function F(e){return A.state?.manifestMemberships[e]?.passiveMembers??[]}function re(e,t){return F(e).filter(e=>e.via.includes(t))}function I(e){return A.state?.manifestDeliveredBytes[e]??0}let L=y(()=>l(d)?T(l(d)):null),R=y(()=>l(d)!==``&&!l(L)&&!l(N).includes(l(d)));async function z(){if(!l(R))return;let e=l(d),t=A.mutate(()=>E(e),ee(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});x(d,``);try{await t}catch{l(d)===``&&!Object.hasOwn(A.state?.library.manifests??{},e)&&x(d,e,!0)}}let B=g(null),H=g(null),U=g(``),W=g(!1),G=g(null),K=0;function ve(e){K+=1,x(G,null),x(B,e,!0)}function ye(e){K+=1,x(G,null),x(U,e,!0),x(H,e,!0)}function q(){K+=1,x(B,null),x(H,null),x(G,null)}let J=y(()=>l(H)!==null&&l(U)!==l(H)?T(l(U)):null),be=y(()=>l(H)!==null&&l(U)!==l(H)&&l(N).includes(l(U))),xe=y(()=>l(H)!==null&&l(U)!==l(H)&&!l(J)&&!l(be));async function Se(){if(l(B)===null)return;let e=l(B);x(W,!0),x(G,null);let t=A.mutate(()=>D(e),te(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});q();let n=K;x(W,!1);try{await t}catch(t){K===n&&Object.hasOwn(A.state?.library.manifests??{},e)&&(x(B,e,!0),x(G,t instanceof Error?t.message:String(t),!0))}finally{x(W,!1)}}async function Ce(){if(l(H)===null||!l(xe))return;let e=l(H),t=l(U);x(W,!0),x(G,null);let n=A.mutate(()=>O(e,{renameTo:t}),k(e,{renameTo:t}),{dependencies:[`manifest:${e}`,`manifest:${t}`],invalidatesOnFailure:[`manifest:${e}`,`manifest:${t}`]});q();let r=K;x(W,!1);try{await n}catch(n){K===r&&Object.hasOwn(A.state?.library.manifests??{},e)&&(x(H,e,!0),x(U,t,!0),x(G,n instanceof Error?n.message:String(n),!0))}finally{x(W,!1)}}var we=_e(),Y=s(we),X=u(Y),Z=u(X);p(Z);var Q=e(Z,2),Te=e(Q,2),Ee=e=>{var t=ae(),n=u(t,!0);f(t),r(()=>m(n,l(L))),a(e,t)};t(Te,e=>{l(L)&&e(Ee)}),f(X);var De=e(X,2),Oe=e=>{a(e,oe())},ke=i=>{var o=pe();n(o,20,()=>l(N),e=>e,(i,o)=>{var d=fe(),p=u(d),h=u(p);ie(h,{get name(){return o}});var g=e(h,2),_=u(g,!0);f(g);var b=e(g,2),x=u(b,!0);f(b);var S=e(b,2),T=u(S);f(S);var E=e(S,2),D=e(E,2);f(p);var ee=e(p,2),te=i=>{var c=ue();n(c,21,()=>P(o),e=>e.id,(i,c)=>{var d=le(),p=s(d),h=u(p),g=u(h),_=u(g,!0);f(g);var b=e(g,2),x=u(b,!0);f(b);var S=e(b,2),C=u(S,!0);f(S),f(h),f(p),n(e(p,2),17,()=>re(o,l(c).id),e=>e.assetId,(n,i)=>{let o=y(()=>A.assetById(l(i).assetId));var s=ce(),d=u(s),p=u(d),h=u(p,!0);f(p);var g=e(p,2),_=e=>{var t=se(),n=u(t,!0);f(t),r(()=>m(n,l(o).type)),a(e,t)};t(g,e=>{l(o)&&e(_)});var b=e(g,2),x=u(b);f(b);var S=e(b,2),C=u(S,!0);f(S),f(d),f(s),r((e,t)=>{v(d,`href`,e),m(h,l(i).assetId),m(x,`via ${l(c).id??``}`),m(C,t)},[()=>w(`/asset/[id]`,{id:l(i).assetId}),()=>l(o)?.proxy?j(l(o).proxy.fileSize):`—`]),a(n,s)}),r((e,t)=>{v(h,`href`,e),m(_,l(c).id),m(x,l(c).type),m(C,t)},[()=>w(`/asset/[id]`,{id:l(c).id}),()=>l(c).proxy?j(l(c).proxy.fileSize):`—`]),a(i,d)}),f(c),a(i,c)},O=y(()=>P(o).length>0),k=e=>{a(e,de())};t(ee,e=>{l(O)?e(te):e(k,-1)}),f(d),r((e,t,n,r)=>{C(d,`--manifest-color: ${e??``}`),m(_,o),m(x,t),m(T,`${n??``} asset(s)${r??``}`)},[()=>A.manifestAppearance(o).color??`var(--border-soft)`,()=>j(I(o)),()=>P(o).length,()=>F(o).length>0?` + ${F(o).length} passive`:``]),c(`click`,E,()=>ye(o)),c(`click`,D,()=>ve(o)),a(i,d)}),f(o),a(i,o)};t(De,e=>{l(N).length===0?e(Oe):e(ke,-1)}),f(Y);var $=e(Y,2),Ae=n=>{let i=y(()=>P(l(B)).length);{let o=y(()=>l(W)?`Deleting…`:`Delete`);ne(n,{title:`Delete manifest`,get confirmLabel(){return l(o)},danger:!0,get busy(){return l(W)},onConfirm:()=>void Se(),onCancel:q,children:(n,o)=>{var c=me(),d=s(c),p=e(u(d)),h=u(p,!0);f(p);var g=e(p);f(d);var _=e(d,2),v=e=>{var t=V(),n=u(t,!0);f(t),r(()=>m(n,l(G))),a(e,t)};t(_,e=>{l(G)&&e(v)}),r(()=>{m(h,l(B)),m(g,`? Its generated module is removed. Assets are
2
2
  not deleted${l(i)>0?`, but ${l(i)} asset(s) lose this membership and may become unreachable`:``}.`)}),a(n,c)},$$slots:{default:!0}})}};t($,e=>{l(B)!==null&&e(Ae)});var je=e($,2),Me=n=>{{let i=y(()=>l(W)?`Renaming…`:`Rename`),o=y(()=>!l(xe));ne(n,{title:`Rename manifest`,get confirmLabel(){return l(i)},get confirmDisabled(){return l(o)},get busy(){return l(W)},onConfirm:()=>void Ce(),onCancel:q,children:(n,i)=>{var o=ge(),c=s(o),d=e(u(c),2);p(d),f(c);var g=e(c,2),_=e=>{var t=V(),n=u(t,!0);f(t),r(()=>m(n,l(J))),a(e,t)},v=e=>{a(e,he())};t(g,e=>{l(J)?e(_):l(be)&&e(v,1)});var y=e(g,2),b=e(u(y)),C=u(b,!0);f(b),S(),f(y);var w=e(y,2),T=e=>{var t=V(),n=u(t,!0);f(t),r(()=>m(n,l(G))),a(e,t)};t(w,e=>{l(G)&&e(T)}),r(()=>{d.disabled=l(W),m(C,l(H))}),h(d,()=>l(U),e=>x(U,e)),a(n,o)},$$slots:{default:!0}})}};t(je,e=>{l(H)!==null&&e(Me)}),r(()=>Q.disabled=!l(R)),c(`keydown`,Z,e=>{e.key===`Enter`&&z()}),h(Z,()=>l(d),e=>x(d,e)),c(`click`,Q,()=>void z()),a(i,we),_()}i([`keydown`,`click`]);export{H as component};
@@ -1 +1 @@
1
- {"version":"1790767052989"}
1
+ {"version":"1791451498973"}
Binary file
Binary file
package/build/handler.js CHANGED
@@ -2,9 +2,9 @@ import './shims.js';
2
2
  import 'node:fs';
3
3
  import 'node:path';
4
4
  import 'node:process';
5
- export { h as handler } from './server/chunks/handler-DwVfBx6r.js';
6
- import './server/chunks/index.js-DgPuPQJn.js';
7
- import './server/chunks/manifest.js-B054EcAf.js';
5
+ export { h as handler } from './server/chunks/handler-DJLsE3cc.js';
6
+ import './server/chunks/index.js-BYjtKmHQ.js';
7
+ import './server/chunks/manifest.js-CUqPgamt.js';
8
8
  import './env.js';
9
9
  import 'node:buffer';
10
10
  import 'node:crypto';
@@ -12,12 +12,12 @@ import 'node:http';
12
12
  import 'node:timers';
13
13
  import 'node:querystring';
14
14
  import 'node:stream';
15
- import './server/chunks/chunks/shared.js-BtmYg0tL.js';
16
- import './server/chunks/chunks/internal.js-DJGcNryj.js';
15
+ import './server/chunks/chunks/shared.js-xTT2CxAF.js';
16
+ import './server/chunks/chunks/internal.js-0bg1jWM6.js';
17
17
  import 'node:module';
18
- import './server/chunks/chunks/utils.js-CqXk0Ug6.js';
18
+ import './server/chunks/chunks/utils.js-BsAVB8Bp.js';
19
19
  import 'node:url';
20
20
  import './server/chunks/chunks/internal2.js-BlXt2rfE.js';
21
- import './server/chunks/chunks/exports.js-BsVKSGJk.js';
21
+ import './server/chunks/chunks/exports.js--TjIdS7-.js';
22
22
  import './server/chunks/chunks/routing.js-y-tryuip.js';
23
23
  //# sourceMappingURL=handler.js.map
package/build/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import http from 'node:http';
2
2
  import fs__default from 'node:fs';
3
3
  import process from 'node:process';
4
- import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-DwVfBx6r.js';
4
+ import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-DJLsE3cc.js';
5
5
  import { env, timeout_env } from './env.js';
6
6
  import { rm } from 'node:fs/promises';
7
7
  import './shims.js';
@@ -11,15 +11,15 @@ import 'node:path';
11
11
  import 'node:timers';
12
12
  import 'node:querystring';
13
13
  import 'node:stream';
14
- import './server/chunks/chunks/shared.js-BtmYg0tL.js';
15
- import './server/chunks/chunks/internal.js-DJGcNryj.js';
14
+ import './server/chunks/chunks/shared.js-xTT2CxAF.js';
15
+ import './server/chunks/chunks/internal.js-0bg1jWM6.js';
16
16
  import 'node:module';
17
- import './server/chunks/chunks/utils.js-CqXk0Ug6.js';
18
- import './server/chunks/index.js-DgPuPQJn.js';
17
+ import './server/chunks/chunks/utils.js-BsAVB8Bp.js';
18
+ import './server/chunks/index.js-BYjtKmHQ.js';
19
19
  import './server/chunks/chunks/internal2.js-BlXt2rfE.js';
20
- import './server/chunks/chunks/exports.js-BsVKSGJk.js';
20
+ import './server/chunks/chunks/exports.js--TjIdS7-.js';
21
21
  import './server/chunks/chunks/routing.js-y-tryuip.js';
22
- import './server/chunks/manifest.js-B054EcAf.js';
22
+ import './server/chunks/manifest.js-CUqPgamt.js';
23
23
  import 'node:url';
24
24
 
25
25
  const path = env('SOCKET_PATH', false);
@@ -1,8 +1,8 @@
1
1
  import { c as compareCodeUnits, h as folderOfRawPath, j as rawFileNameOfPath, g as canonicalizeParameters, n as normalizeFolderPath, J as typesForFileName, k as parentFolderPath, u as portableFolderPathKey } from './core.js-AGKlECJ0.js';
2
- import { i as isRecord, s as serverPluginsByType, L as LibraryStore, d as descriptorsByType, m as manifestModuleFileName, l as locateGeneratedAssetDeclaration, a as serializeLibrary, b as serverPluginForType, S as SourceImportError, p as processAssets, g as generateManifestModules, r as readCurrentProxy, e as encodeRelativePathForUrl, c as invalidInput, f as parseLibrary } from './contract.js-DGZXpcNX.js';
3
- import { c as collectAllReferences, a as assetIdError, b as computeLibraryMembership, d as allDeliveredAssetIds, i as isValidAssetId } from './manifest-membership.js-DkHaPk2F.js';
2
+ import { i as isRecord, s as serverPluginsByType, P as ProxyInfoCache, L as LibraryStore, d as descriptorsByType, m as manifestModuleFileName, l as locateGeneratedAssetDeclaration, a as serializeLibrary, b as serverPluginForType, S as SourceImportError, p as processAssets, g as generateManifestModules, r as readCurrentProxy, e as encodeRelativePathForUrl, c as invalidInput, f as parseLibrary } from './contract.js-DHeIVVv8.js';
3
+ import { c as collectAllReferences, d as allDeliveredAssetIds, b as computeLibraryMembership, a as assetIdError, i as isValidAssetId } from './manifest-membership.js-DkHaPk2F.js';
4
4
  import { v as validateDependencyList, f as formatRequiredBy } from './dependencies.js-pUkjICr5.js';
5
- import { v as verifyStableRawFile, c as classifyRawDirectory } from './raw-reconciliation2.js-CMpUvuMd.js';
5
+ import { m as mapConcurrent, v as verifyStableRawFile, c as classifyRawDirectory } from './raw-reconciliation.js-Cco4r8lr.js';
6
6
  import { createRequire } from 'node:module';
7
7
  import { isAbsolute, resolve, basename, dirname, join, extname, relative, sep } from 'node:path';
8
8
  import { existsSync, watch, readFileSync } from 'node:fs';
@@ -1513,22 +1513,22 @@ var ImageDuplicateDetector = class {
1513
1513
  const images = Object.entries(library.assets).filter(([, record]) => record.type === "image").sort(([left], [right]) => compareCodeUnits(left, right));
1514
1514
  const activeHashes = new Set(images.map(([, record]) => record.rawHash));
1515
1515
  for (const hash of this.#fingerprints.keys()) if (!activeHashes.has(hash)) this.#fingerprints.delete(hash);
1516
- const readable = [];
1517
- for (const [id, record] of images) {
1516
+ const readable = (await mapConcurrent(images, 8, async ([id, record]) => {
1518
1517
  let fingerprint = this.#fingerprints.get(record.rawHash);
1519
1518
  if (!fingerprint) {
1520
1519
  fingerprint = imageFingerprint(join(rawDir, record.raw), 8);
1521
1520
  this.#fingerprints.set(record.rawHash, fingerprint);
1522
1521
  }
1523
1522
  try {
1524
- readable.push({
1523
+ return {
1525
1524
  id,
1526
1525
  fingerprint: await fingerprint
1527
- });
1526
+ };
1528
1527
  } catch {
1529
1528
  this.#fingerprints.delete(record.rawHash);
1529
+ return null;
1530
1530
  }
1531
- }
1531
+ })).filter((entry) => entry !== null);
1532
1532
  const duplicates = /* @__PURE__ */ new Map();
1533
1533
  for (let leftIndex = 0; leftIndex < readable.length; leftIndex++) for (let rightIndex = leftIndex + 1; rightIndex < readable.length; rightIndex++) {
1534
1534
  const left = readable[leftIndex];
@@ -1589,6 +1589,7 @@ var FundusOperations = class {
1589
1589
  #importers;
1590
1590
  #usageAnalyzer;
1591
1591
  #duplicateDetector = new ImageDuplicateDetector();
1592
+ #proxyInfoCache = new ProxyInfoCache();
1592
1593
  #operationQueue = Promise.resolve();
1593
1594
  #pipelineQueue = Promise.resolve();
1594
1595
  constructor(config, registry = serverPluginsByType, importerRegistry = serverImporters) {
@@ -1684,6 +1685,17 @@ var FundusOperations = class {
1684
1685
  const classification = await this.#classifyRawDirectory(library);
1685
1686
  return this.#snapshotState(library, classification);
1686
1687
  }
1688
+ /**
1689
+ * Fill the image-fingerprint and proxy-probe caches without scanning raws or
1690
+ * joining the operation queue, so an early editor reconcile shares this
1691
+ * in-flight work instead of waiting behind it. Both caches are keyed by
1692
+ * content, so a concurrent mutation can only make an entry unused.
1693
+ */
1694
+ async warmCaches() {
1695
+ const library = await this.#store.read();
1696
+ const delivered = allDeliveredAssetIds(computeLibraryMembership(library, collectAllReferences(library, descriptorsByType(this.#registry))));
1697
+ await Promise.all([this.#duplicateDetector.find(library, this.#config.rawDir), mapConcurrent([...delivered].sort(compareCodeUnits), 8, (assetId) => this.#proxyState(assetId, library.assets[assetId], delivered))]);
1698
+ }
1687
1699
  /** Reconcile only changes that are safe without a user decision: unique moves and deletions. */
1688
1700
  reconcileRawState() {
1689
1701
  return this.#enqueueOperation(async () => {
@@ -2307,12 +2319,38 @@ var FundusOperations = class {
2307
2319
  state: await this.#snapshotState(latestLibrary, latestClassification, pipelineIssues)
2308
2320
  };
2309
2321
  }
2322
+ async #proxyState(assetId, record, delivered) {
2323
+ if (!delivered.has(assetId)) return { proxy: null };
2324
+ try {
2325
+ const currentProxy = await readCurrentProxy(assetId, record, this.#config, this.#registry, this.#proxyInfoCache);
2326
+ if (!currentProxy) return {
2327
+ proxy: null,
2328
+ warning: "Proxy is stale or missing — it will be (re)processed on the next save."
2329
+ };
2330
+ return { proxy: {
2331
+ url: `/files/proxy/${encodeRelativePathForUrl(currentProxy.relativePath)}`,
2332
+ upToDate: true,
2333
+ ...currentProxy
2334
+ } };
2335
+ } catch (cause) {
2336
+ return {
2337
+ proxy: null,
2338
+ warning: cause instanceof Error ? cause.message : String(cause)
2339
+ };
2340
+ }
2341
+ }
2310
2342
  async #buildState(library, issues, classification) {
2311
- const [gitBranch, changedGitAssets] = await Promise.all([currentGitBranch(this.#config.projectRoot), gitAssetChanges(this.#config.projectRoot, this.#config.library, library)]);
2312
2343
  const referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));
2313
- const duplicatesByAsset = await this.#duplicateDetector.find(library, this.#config.rawDir);
2314
2344
  const membershipByManifest = computeLibraryMembership(library, referencesByAsset);
2315
2345
  const delivered = allDeliveredAssetIds(membershipByManifest);
2346
+ const assetIds = Object.keys(library.assets).sort(compareCodeUnits);
2347
+ const [gitBranch, changedGitAssets, duplicatesByAsset, proxies] = await Promise.all([
2348
+ currentGitBranch(this.#config.projectRoot),
2349
+ gitAssetChanges(this.#config.projectRoot, this.#config.library, library),
2350
+ this.#duplicateDetector.find(library, this.#config.rawDir),
2351
+ mapConcurrent(assetIds, 8, (assetId) => this.#proxyState(assetId, library.assets[assetId], delivered))
2352
+ ]);
2353
+ this.#proxyInfoCache.retain(delivered);
2316
2354
  const passiveManifestsByAsset = /* @__PURE__ */ new Map();
2317
2355
  for (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) for (const passiveMember of membershipByManifest[manifestName].passiveMembers) {
2318
2356
  const passiveManifests = passiveManifestsByAsset.get(passiveMember.assetId) ?? [];
@@ -2334,24 +2372,14 @@ var FundusOperations = class {
2334
2372
  const requiredByAsset = /* @__PURE__ */ new Map();
2335
2373
  for (const dependency of this.#config.dependencies) requiredByAsset.set(dependency.id, [...dependency.sources]);
2336
2374
  const assets = [];
2337
- for (const assetId of Object.keys(library.assets).sort(compareCodeUnits)) {
2375
+ for (const [index, assetId] of assetIds.entries()) {
2338
2376
  const record = library.assets[assetId];
2339
2377
  const warnings = [];
2340
2378
  for (const issue of issues) if (issue.assetId === assetId) warnings.push(issue.message);
2341
2379
  if (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.");
2342
2380
  if (record.importSource && !this.#importers.has(record.importSource.importer)) warnings.push(`Importer "${record.importSource.importer}" is unavailable; the local raw file remains usable.`);
2343
- let proxy = null;
2344
- if (delivered.has(assetId)) try {
2345
- const currentProxy = await readCurrentProxy(assetId, record, this.#config, this.#registry);
2346
- if (currentProxy) proxy = {
2347
- url: `/files/proxy/${encodeRelativePathForUrl(currentProxy.relativePath)}`,
2348
- upToDate: true,
2349
- ...currentProxy
2350
- };
2351
- else warnings.push("Proxy is stale or missing — it will be (re)processed on the next save.");
2352
- } catch (cause) {
2353
- warnings.push(cause instanceof Error ? cause.message : String(cause));
2354
- }
2381
+ const { proxy, warning: proxyWarning } = proxies[index];
2382
+ if (proxyWarning) warnings.push(proxyWarning);
2355
2383
  assets.push({
2356
2384
  id: assetId,
2357
2385
  type: record.type,
@@ -2576,4 +2604,4 @@ async function createFundusContext() {
2576
2604
  }
2577
2605
 
2578
2606
  export { getFundusContext as g, initializeFundusContext as i };
2579
- //# sourceMappingURL=context.js-DFZgDxCD.js.map
2607
+ //# sourceMappingURL=context.js-BR2IRl9z.js.map