fundus 0.17.2 → 0.19.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 (221) hide show
  1. package/README.md +60 -121
  2. package/build/client/_app/immutable/assets/2.C-1MfvLQ.css +1 -0
  3. package/build/client/_app/immutable/assets/2.C-1MfvLQ.css.br +0 -0
  4. package/build/client/_app/immutable/assets/2.C-1MfvLQ.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/{3.66PJT3JC.css → 3.q3CUOEpz.css} +1 -1
  6. package/build/client/_app/immutable/assets/3.q3CUOEpz.css.br +0 -0
  7. package/build/client/_app/immutable/assets/3.q3CUOEpz.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/{AssetSourceMenu.Buj2UxUg.css → AssetSourceMenu.CgyMTAb6.css} +1 -1
  9. package/build/client/_app/immutable/assets/AssetSourceMenu.CgyMTAb6.css.br +0 -0
  10. package/build/client/_app/immutable/assets/AssetSourceMenu.CgyMTAb6.css.gz +0 -0
  11. package/build/client/_app/immutable/chunks/Bly9uffh.js +1 -0
  12. package/build/client/_app/immutable/chunks/Bly9uffh.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/Bly9uffh.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{R0o69z6O.js → BpsKkIFc.js} +1 -1
  15. package/build/client/_app/immutable/chunks/BpsKkIFc.js.br +2 -0
  16. package/build/client/_app/immutable/chunks/BpsKkIFc.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{jEVVu5G9.js → CrIZjnDr.js} +1 -1
  18. package/build/client/_app/immutable/chunks/CrIZjnDr.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/CrIZjnDr.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/ZGU9Utak.js +108 -0
  21. package/build/client/_app/immutable/chunks/ZGU9Utak.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/ZGU9Utak.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/lw3KP4og.js +2 -0
  24. package/build/client/_app/immutable/chunks/lw3KP4og.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/lw3KP4og.js.gz +0 -0
  26. package/build/client/_app/immutable/entry/{app.DxYfHxs-.js → app.D-lO1MC-.js} +2 -2
  27. package/build/client/_app/immutable/entry/app.D-lO1MC-.js.br +0 -0
  28. package/build/client/_app/immutable/entry/app.D-lO1MC-.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/start.BrSEFrid.js +1 -0
  30. package/build/client/_app/immutable/entry/start.BrSEFrid.js.br +1 -0
  31. package/build/client/_app/immutable/entry/start.BrSEFrid.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{0.Do0MsVUC.js → 0.BPGg3A-F.js} +1 -1
  33. package/build/client/_app/immutable/nodes/0.BPGg3A-F.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/0.BPGg3A-F.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{1.DhfAdUbg.js → 1.-VJ5Mlss.js} +1 -1
  36. package/build/client/_app/immutable/nodes/1.-VJ5Mlss.js.br +1 -0
  37. package/build/client/_app/immutable/nodes/1.-VJ5Mlss.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/2.Dhyvb4bF.js +3 -0
  39. package/build/client/_app/immutable/nodes/2.Dhyvb4bF.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/2.Dhyvb4bF.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/3.D9Fgsq-b.js +1 -0
  42. package/build/client/_app/immutable/nodes/3.D9Fgsq-b.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/3.D9Fgsq-b.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{4.gPNAednG.js → 4.DErtysFP.js} +1 -1
  45. package/build/client/_app/immutable/nodes/4.DErtysFP.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/4.DErtysFP.js.gz +0 -0
  47. package/build/client/_app/version.json +1 -1
  48. package/build/client/_app/version.json.br +0 -0
  49. package/build/client/_app/version.json.gz +0 -0
  50. package/build/handler.js +7 -7
  51. package/build/index.js +7 -7
  52. package/build/server/chunks/chunks/{context.js-Dh0ibRIF.js → context.js-BIgcUcEl.js} +216 -604
  53. package/build/server/chunks/chunks/context.js-BIgcUcEl.js.map +1 -0
  54. package/build/server/chunks/chunks/{contract.js-_LTMZBo2.js → contract.js-B6KBK8D9.js} +59 -95
  55. package/build/server/chunks/chunks/contract.js-B6KBK8D9.js.map +1 -0
  56. package/build/server/chunks/chunks/{core.js-CTyKR4bu.js → core.js-Bp-ReC60.js} +38 -38
  57. package/build/server/chunks/chunks/core.js-Bp-ReC60.js.map +1 -0
  58. package/build/server/chunks/chunks/dependencies.js-pUkjICr5.js +45 -0
  59. package/build/server/chunks/chunks/dependencies.js-pUkjICr5.js.map +1 -0
  60. package/build/server/chunks/chunks/{exports.js-gUMFfqhw.js → exports.js-bhKV7cEL.js} +2 -2
  61. package/build/server/chunks/chunks/{exports.js-gUMFfqhw.js.map → exports.js-bhKV7cEL.js.map} +1 -1
  62. package/build/server/chunks/chunks/{http.js-BiqUcAuu.js → http.js-BTq44nR5.js} +2 -2
  63. package/build/server/chunks/chunks/{http.js-BiqUcAuu.js.map → http.js-BTq44nR5.js.map} +1 -1
  64. package/build/server/chunks/chunks/{internal.js-DvC1GD8s.js → internal.js-7MmaxxwZ.js} +3 -3
  65. package/build/server/chunks/chunks/{internal.js-DvC1GD8s.js.map → internal.js-7MmaxxwZ.js.map} +1 -1
  66. package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
  67. package/build/server/chunks/chunks/{manifest-membership.js-at1ixQdW.js → manifest-membership.js-Dj3WwZgz.js} +2 -2
  68. package/build/server/chunks/chunks/{manifest-membership.js-at1ixQdW.js.map → manifest-membership.js-Dj3WwZgz.js.map} +1 -1
  69. package/build/server/chunks/chunks/{raw-reconciliation.js-CUH8IIJx.js → raw-reconciliation.js-mWOAOdgL.js} +3 -3
  70. package/build/server/chunks/chunks/raw-reconciliation.js-mWOAOdgL.js.map +1 -0
  71. package/build/server/chunks/chunks/{raw-reconciliation2.js-z4xl5zw2.js → raw-reconciliation2.js-Bo1jJgvd.js} +2 -2
  72. package/build/server/chunks/chunks/{raw-reconciliation2.js-z4xl5zw2.js.map → raw-reconciliation2.js-Bo1jJgvd.js.map} +1 -1
  73. package/build/server/chunks/chunks/{shared.js-nXNT--BO.js → shared.js-B0m3s2U9.js} +2 -2
  74. package/build/server/chunks/chunks/{shared.js-nXNT--BO.js.map → shared.js-B0m3s2U9.js.map} +1 -1
  75. package/build/server/chunks/chunks/{utils.js-C5pr7OK-.js → utils.js-BXV0zq44.js} +3 -3
  76. package/build/server/chunks/chunks/{utils.js-C5pr7OK-.js.map → utils.js-BXV0zq44.js.map} +1 -1
  77. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-CdDjuW0r.js → _server.ts.js-B_aa_zh7.js} +6 -6
  78. package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-CdDjuW0r.js.map → _server.ts.js-B_aa_zh7.js.map} +1 -1
  79. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-OWM1eORG.js → _server.ts.js-DbEPdkbO.js} +8 -8
  80. package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-OWM1eORG.js.map → _server.ts.js-DbEPdkbO.js.map} +1 -1
  81. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DoG-7ZpZ.js → _server.ts.js-BzA96yBM.js} +8 -8
  82. package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DoG-7ZpZ.js.map → _server.ts.js-BzA96yBM.js.map} +1 -1
  83. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-CAWjVeGd.js → _server.ts.js-fQAXFRLh.js} +8 -8
  84. package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-CAWjVeGd.js.map → _server.ts.js-fQAXFRLh.js.map} +1 -1
  85. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-CqS4aALY.js → _server.ts.js-RTBrlhk5.js} +8 -8
  86. package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-CqS4aALY.js.map → _server.ts.js-RTBrlhk5.js.map} +1 -1
  87. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-Bo_EsYXJ.js → _server.ts.js-Baz4gPRd.js} +8 -8
  88. package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-Bo_EsYXJ.js.map → _server.ts.js-Baz4gPRd.js.map} +1 -1
  89. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DW4w0XAr.js → _server.ts.js-CnqdPxWQ.js} +8 -8
  90. package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DW4w0XAr.js.map → _server.ts.js-CnqdPxWQ.js.map} +1 -1
  91. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-_MiNPnSy.js → _server.ts.js-bvrtSRDz.js} +8 -8
  92. package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-_MiNPnSy.js.map → _server.ts.js-bvrtSRDz.js.map} +1 -1
  93. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DwbrQnBc.js → _server.ts.js-cgYcVXgU.js} +8 -8
  94. package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-DwbrQnBc.js.map → _server.ts.js-cgYcVXgU.js.map} +1 -1
  95. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CEnHQf3b.js → _server.ts.js-DbXw3YEr.js} +8 -8
  96. package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CEnHQf3b.js.map → _server.ts.js-DbXw3YEr.js.map} +1 -1
  97. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-BZDuJZtF.js → _server.ts.js-D0PEYlzG.js} +8 -8
  98. package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-BZDuJZtF.js.map → _server.ts.js-D0PEYlzG.js.map} +1 -1
  99. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DRgdpKKd.js → _server.ts.js-Dt9Wfgs7.js} +8 -8
  100. package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-DRgdpKKd.js.map → _server.ts.js-Dt9Wfgs7.js.map} +1 -1
  101. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-CP5QyIhz.js → _server.ts.js-BBuZYakQ.js} +8 -8
  102. package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-CP5QyIhz.js.map → _server.ts.js-BBuZYakQ.js.map} +1 -1
  103. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-BKEvt065.js → _server.ts.js-DQ_CWMTu.js} +8 -8
  104. package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-BKEvt065.js.map → _server.ts.js-DQ_CWMTu.js.map} +1 -1
  105. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-C_zihkDS.js → _server.ts.js-B3TVoDCl.js} +8 -8
  106. package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-C_zihkDS.js.map → _server.ts.js-B3TVoDCl.js.map} +1 -1
  107. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-watkBmy6.js → _server.ts.js--2C2x6Q0.js} +8 -8
  108. package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-watkBmy6.js.map → _server.ts.js--2C2x6Q0.js.map} +1 -1
  109. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-YtumLIou.js → _server.ts.js-DD2Hz15k.js} +8 -8
  110. package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-YtumLIou.js.map → _server.ts.js-DD2Hz15k.js.map} +1 -1
  111. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Dkouuu-M.js → _server.ts.js-Ei98ilB5.js} +8 -8
  112. package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Dkouuu-M.js.map → _server.ts.js-Ei98ilB5.js.map} +1 -1
  113. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-DwsEQeuf.js → _server.ts.js-NNuDGwyK.js} +8 -8
  114. package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-DwsEQeuf.js.map → _server.ts.js-NNuDGwyK.js.map} +1 -1
  115. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-CdQxfhV3.js → _server.ts.js-6_Wl_k0H.js} +8 -8
  116. package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-CdQxfhV3.js.map → _server.ts.js-6_Wl_k0H.js.map} +1 -1
  117. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DDdMocWj.js → _server.ts.js-DkYQlG9U.js} +6 -6
  118. package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DDdMocWj.js.map → _server.ts.js-DkYQlG9U.js.map} +1 -1
  119. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DbzjbH32.js → _server.ts.js-Dft0Zgh3.js} +8 -8
  120. package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DbzjbH32.js.map → _server.ts.js-Dft0Zgh3.js.map} +1 -1
  121. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-K_JbXZsU.js → _server.ts.js-rlV0QRQS.js} +8 -8
  122. package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-K_JbXZsU.js.map → _server.ts.js-rlV0QRQS.js.map} +1 -1
  123. package/build/server/chunks/entries/{hooks.server.js-DgZAVFbQ.js → hooks.server.js-C345JVQ2.js} +7 -7
  124. package/build/server/chunks/entries/{hooks.server.js-DgZAVFbQ.js.map → hooks.server.js-C345JVQ2.js.map} +1 -1
  125. package/build/server/chunks/{handler-C4m7sKKb.js → handler-C_S3CtEF.js} +5 -5
  126. package/build/server/chunks/{handler-C4m7sKKb.js.map → handler-C_S3CtEF.js.map} +1 -1
  127. package/build/server/chunks/{index.js-pAnkrzRH.js → index.js-CSCxgyyg.js} +5 -5
  128. package/build/server/chunks/{index.js-pAnkrzRH.js.map → index.js-CSCxgyyg.js.map} +1 -1
  129. package/build/server/chunks/{manifest.js-CXQHeYnS.js → manifest.js-CO6AjAUm.js} +30 -30
  130. package/build/server/chunks/{manifest.js-CXQHeYnS.js.map → manifest.js-CO6AjAUm.js.map} +1 -1
  131. package/build/server/chunks/nodes/{0.js-lmQMhWZd.js → 0.js-CRc8onmc.js} +2 -2
  132. package/build/server/chunks/nodes/{0.js-lmQMhWZd.js.map → 0.js-CRc8onmc.js.map} +1 -1
  133. package/build/server/chunks/nodes/1.js-CZm_Doa7.js +7 -0
  134. package/build/server/chunks/nodes/{1.js-CdH3UJI2.js.map → 1.js-CZm_Doa7.js.map} +1 -1
  135. package/build/server/chunks/nodes/2.js-B92vn1Hu.js +7 -0
  136. package/build/server/chunks/nodes/2.js-B92vn1Hu.js.map +1 -0
  137. package/build/server/chunks/nodes/3.js-C14BP7Jm.js +7 -0
  138. package/build/server/chunks/nodes/3.js-C14BP7Jm.js.map +1 -0
  139. package/build/server/chunks/nodes/4.js-BLNdVCa1.js +7 -0
  140. package/build/server/chunks/nodes/{4.js-DtgDNAZF.js.map → 4.js-BLNdVCa1.js.map} +1 -1
  141. package/dist/config.d.ts +5 -3
  142. package/dist/config.js +3 -2
  143. package/dist/core/api-types.d.ts +7 -22
  144. package/dist/core/config.d.ts +8 -82
  145. package/dist/core/config.js +0 -9
  146. package/dist/core/dependencies.d.ts +52 -0
  147. package/dist/core/dependencies.js +56 -0
  148. package/dist/core/dependency-validation.d.ts +17 -0
  149. package/dist/core/dependency-validation.js +19 -0
  150. package/dist/core/index.d.ts +8 -10
  151. package/dist/core/index.js +4 -5
  152. package/dist/core/library.d.ts +0 -19
  153. package/dist/core/library.js +4 -4
  154. package/dist/core/manifest-membership.d.ts +2 -2
  155. package/dist/core/reference-graph.d.ts +3 -3
  156. package/dist/server/build.js +12 -26
  157. package/dist/server/check.d.ts +3 -13
  158. package/dist/server/check.js +33 -112
  159. package/dist/server/codegen.d.ts +1 -3
  160. package/dist/server/codegen.js +0 -18
  161. package/dist/server/config-loader.d.ts +10 -33
  162. package/dist/server/config-loader.js +87 -156
  163. package/dist/server/index.d.ts +1 -1
  164. package/dist/server/index.js +1 -1
  165. package/dist/server/library-store.d.ts +1 -11
  166. package/dist/server/library-store.js +60 -42
  167. package/dist/server/operations.js +54 -161
  168. package/package.json +1 -1
  169. package/build/client/_app/immutable/assets/2.X44Wyac-.css +0 -1
  170. package/build/client/_app/immutable/assets/2.X44Wyac-.css.br +0 -0
  171. package/build/client/_app/immutable/assets/2.X44Wyac-.css.gz +0 -0
  172. package/build/client/_app/immutable/assets/3.66PJT3JC.css.br +0 -0
  173. package/build/client/_app/immutable/assets/3.66PJT3JC.css.gz +0 -0
  174. package/build/client/_app/immutable/assets/AssetSourceMenu.Buj2UxUg.css.br +0 -0
  175. package/build/client/_app/immutable/assets/AssetSourceMenu.Buj2UxUg.css.gz +0 -0
  176. package/build/client/_app/immutable/chunks/0SQyBKXe.js +0 -108
  177. package/build/client/_app/immutable/chunks/0SQyBKXe.js.br +0 -0
  178. package/build/client/_app/immutable/chunks/0SQyBKXe.js.gz +0 -0
  179. package/build/client/_app/immutable/chunks/DXiUbZ9S.js +0 -2
  180. package/build/client/_app/immutable/chunks/DXiUbZ9S.js.br +0 -0
  181. package/build/client/_app/immutable/chunks/DXiUbZ9S.js.gz +0 -0
  182. package/build/client/_app/immutable/chunks/R0o69z6O.js.br +0 -0
  183. package/build/client/_app/immutable/chunks/R0o69z6O.js.gz +0 -0
  184. package/build/client/_app/immutable/chunks/TrnW_5ju.js +0 -1
  185. package/build/client/_app/immutable/chunks/TrnW_5ju.js.br +0 -0
  186. package/build/client/_app/immutable/chunks/TrnW_5ju.js.gz +0 -0
  187. package/build/client/_app/immutable/chunks/jEVVu5G9.js.br +0 -0
  188. package/build/client/_app/immutable/chunks/jEVVu5G9.js.gz +0 -0
  189. package/build/client/_app/immutable/entry/app.DxYfHxs-.js.br +0 -0
  190. package/build/client/_app/immutable/entry/app.DxYfHxs-.js.gz +0 -0
  191. package/build/client/_app/immutable/entry/start.CdM7ozdO.js +0 -1
  192. package/build/client/_app/immutable/entry/start.CdM7ozdO.js.br +0 -0
  193. package/build/client/_app/immutable/entry/start.CdM7ozdO.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/0.Do0MsVUC.js.br +0 -0
  195. package/build/client/_app/immutable/nodes/0.Do0MsVUC.js.gz +0 -0
  196. package/build/client/_app/immutable/nodes/1.DhfAdUbg.js.br +0 -1
  197. package/build/client/_app/immutable/nodes/1.DhfAdUbg.js.gz +0 -0
  198. package/build/client/_app/immutable/nodes/2.lLNAdU5s.js +0 -3
  199. package/build/client/_app/immutable/nodes/2.lLNAdU5s.js.br +0 -0
  200. package/build/client/_app/immutable/nodes/2.lLNAdU5s.js.gz +0 -0
  201. package/build/client/_app/immutable/nodes/3.DA8xzCvA.js +0 -1
  202. package/build/client/_app/immutable/nodes/3.DA8xzCvA.js.br +0 -0
  203. package/build/client/_app/immutable/nodes/3.DA8xzCvA.js.gz +0 -0
  204. package/build/client/_app/immutable/nodes/4.gPNAednG.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/4.gPNAednG.js.gz +0 -0
  206. package/build/server/chunks/chunks/context.js-Dh0ibRIF.js.map +0 -1
  207. package/build/server/chunks/chunks/contract.js-_LTMZBo2.js.map +0 -1
  208. package/build/server/chunks/chunks/core.js-CTyKR4bu.js.map +0 -1
  209. package/build/server/chunks/chunks/raw-reconciliation.js-CUH8IIJx.js.map +0 -1
  210. package/build/server/chunks/nodes/1.js-CdH3UJI2.js +0 -7
  211. package/build/server/chunks/nodes/2.js-BHnsJqcE.js +0 -7
  212. package/build/server/chunks/nodes/2.js-BHnsJqcE.js.map +0 -1
  213. package/build/server/chunks/nodes/3.js-cR9NdrYS.js +0 -7
  214. package/build/server/chunks/nodes/3.js-cR9NdrYS.js.map +0 -1
  215. package/build/server/chunks/nodes/4.js-DtgDNAZF.js +0 -7
  216. package/dist/core/library-validation.d.ts +0 -13
  217. package/dist/core/library-validation.js +0 -48
  218. package/dist/core/package-declaration.d.ts +0 -43
  219. package/dist/core/package-declaration.js +0 -80
  220. package/dist/core/package-merge.d.ts +0 -65
  221. package/dist/core/package-merge.js +0 -173
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js-BIgcUcEl.js","sources":["../../../../.svelte-kit/output/server/chunks/context.js"],"sourcesContent":["import { B as portableFolderPathKey, P as folderOfRawPath, R as normalizeFolderPath, V as rawFileNameOfPath, a as typesForFileName, n as compareCodeUnits, t as canonicalizeParameters, z as parentFolderPath } from \"./core.js\";\nimport { a as processAssets, c as generateManifestModules, d as descriptorsByType, f as serverPluginForType, g as serializeLibrary, h as parseLibrary, l as locateGeneratedAssetDeclaration, m as isRecord, n as invalidInput, o as readCurrentProxy, p as serverPluginsByType, r as LibraryStore, s as encodeRelativePathForUrl, t as SourceImportError, u as manifestModuleFileName } from \"./contract.js\";\nimport { n as computeLibraryMembership, o as assetIdError, r as collectAllReferences, s as isValidAssetId, t as allDeliveredAssetIds } from \"./manifest-membership.js\";\nimport { n as validateDependencyList, t as formatRequiredBy } from \"./dependencies.js\";\nimport { a as verifyStableRawFile, t as classifyRawDirectory } from \"./raw-reconciliation2.js\";\nimport { createRequire } from \"node:module\";\nimport { dirname, extname, isAbsolute, join, relative, resolve, sep } from \"node:path\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { createJiti } from \"jiti\";\nimport { readFile, realpath } from \"node:fs/promises\";\nimport { execFile } from \"node:child_process\";\nimport { isDeepStrictEqual, promisify } from \"node:util\";\nimport sharp from \"sharp\";\nimport { createHash, createHmac, randomBytes, timingSafeEqual } from \"node:crypto\";\nimport { lookup } from \"node:dns/promises\";\nimport { isIP } from \"node:net\";\nimport { request } from \"node:https\";\n//#region src/lib/core/propose-asset-id.ts\n/**\n* Propose a camelCase asset id from a file (or node) name: split on\n* non-alphanumeric runs and case boundaries, drop a `@2x`-style scale suffix,\n* lowercase the first word, capitalize the rest, strip leading digits.\n*\n* Pure and dependency-free so it can be shared everywhere — including the Figma\n* plugin bundle, which must not pull in the plugin registry that `ingest.ts`\n* imports.\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\n//#region src/lib/core/dependency-validation.ts\nfunction validateDependencies(dependencies, library) {\n\tconst findings = [];\n\tfor (const dependency of dependencies) {\n\t\tif (!Object.hasOwn(library.assets, dependency.id)) {\n\t\t\tfindings.push({ message: `Missing ${dependency.type} \"${dependency.id}\" required by ${formatRequiredBy(dependency.sources)}.` });\n\t\t\tcontinue;\n\t\t}\n\t\tconst record = library.assets[dependency.id];\n\t\tif (record.type !== dependency.type) findings.push({ message: `Type mismatch for \"${dependency.id}\" required by ${formatRequiredBy(dependency.sources)}: expected ${dependency.type}, library has ${record.type}.` });\n\t}\n\treturn findings;\n}\n//#endregion\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\tconst importConfig = value.import === void 0 ? {} : value.import;\n\tif (!isRecord(importConfig)) throw new Error(\"fundus.config: \\\"import\\\" must be an object.\");\n\tconst figma = importConfig.figma === void 0 ? {} : importConfig.figma;\n\tif (!isRecord(figma)) throw new Error(\"fundus.config: \\\"import.figma\\\" must be an object.\");\n\tif (figma.token !== void 0 && (typeof figma.token !== \"string\" || figma.token.length === 0)) throw new Error(\"fundus.config: \\\"import.figma.token\\\" must be a non-empty string.\");\n\tif (figma.defaultFileKey !== void 0 && (typeof figma.defaultFileKey !== \"string\" || figma.defaultFileKey.length === 0)) throw new Error(\"fundus.config: \\\"import.figma.defaultFileKey\\\" must be a non-empty string.\");\n\tconst defaults = figma.defaults === void 0 ? {} : figma.defaults;\n\tif (!isRecord(defaults)) throw new Error(\"fundus.config: \\\"import.figma.defaults\\\" must be an object.\");\n\tconst scale = defaults.scale === void 0 ? 2 : defaults.scale;\n\tif (scale !== 1 && scale !== 2 && scale !== 3 && scale !== 4) throw new Error(\"fundus.config: \\\"import.figma.defaults.scale\\\" must be 1, 2, 3, or 4.\");\n\tdependencySpecs(value);\n\tconst usage = value.usage;\n\tif (usage !== void 0 && !isRecord(usage)) throw new Error(\"fundus.config: \\\"usage\\\" must be an object.\");\n\tif (usage !== void 0 && typeof usage.referenceProvider !== \"function\") throw new Error(\"fundus.config: \\\"usage.referenceProvider\\\" must be a function.\");\n\tif (usage !== void 0 && typeof usage.openLocation !== \"function\") throw new Error(\"fundus.config: \\\"usage.openLocation\\\" must be a function.\");\n\treturn {\n\t\tprojectRoot: resolve(projectRoot),\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\tdependencies: [],\n\t\tplugins: resolvedPlugins,\n\t\timport: { figma: {\n\t\t\t...figma.token !== void 0 ? { token: figma.token } : {},\n\t\t\t...figma.defaultFileKey !== void 0 ? { defaultFileKey: figma.defaultFileKey } : {},\n\t\t\tdefaults: { scale }\n\t\t} },\n\t\tusage: usage === void 0 ? null : usage\n\t};\n}\n/** Validated dependency source specs (shape only; absent means none). */\nfunction dependencySpecs(value) {\n\tconst specs = value.dependencies;\n\tif (specs === void 0) return [];\n\tif (!Array.isArray(specs) || specs.some((spec) => typeof spec !== \"string\" || spec.length === 0)) throw new Error(\"fundus.config: \\\"dependencies\\\" must be an array of non-empty strings.\");\n\treturn specs;\n}\n/** Reject a `.json` dependency source: JSON carries no literal types (D4). */\nfunction assertNotJson(spec, context) {\n\tif (spec.endsWith(\".json\")) throw new Error(`Dependency ${context} \"${spec}\" must be a .ts or .js module; JSON is not supported.`);\n}\n/** A dependency spec is a path when it is relative/absolute or names a module file. */\nfunction isPathSpec(spec) {\n\treturn spec.startsWith(\".\") || spec.startsWith(\"/\") || spec.endsWith(\".ts\") || spec.endsWith(\".js\");\n}\n/** Walk up from `fromPath` to the nearest package.json whose `name` matches. */\nfunction nearestPackageJson(fromPath, name) {\n\tlet dir = dirname(fromPath);\n\tfor (;;) {\n\t\tconst candidate = join(dir, \"package.json\");\n\t\tif (existsSync(candidate)) try {\n\t\t\tif (JSON.parse(readFileSync(candidate, \"utf8\")).name === name) return candidate;\n\t\t} catch {}\n\t\tconst parent = dirname(dir);\n\t\tif (parent === dir) break;\n\t\tdir = parent;\n\t}\n\tthrow new Error(`Cannot resolve the package.json of dependency \"${name}\".`);\n}\n/** Resolve an npm-name dependency spec to its declared source module path. */\nfunction resolveNpmDependencyModule(spec, require) {\n\tlet packageJsonPath;\n\ttry {\n\t\tpackageJsonPath = require.resolve(`${spec}/package.json`);\n\t} catch (cause) {\n\t\tif (cause !== null && typeof cause === \"object\" && cause.code === \"ERR_PACKAGE_PATH_NOT_EXPORTED\") packageJsonPath = nearestPackageJson(require.resolve(spec), spec);\n\t\telse throw cause;\n\t}\n\tconst field = JSON.parse(readFileSync(packageJsonPath, \"utf8\")).fundus?.dependencies;\n\tif (typeof field !== \"string\" || field.length === 0) throw new Error(`Dependency \"${spec}\" is missing a non-empty \"fundus\".dependencies module path in its package.json.`);\n\tassertNotJson(field, `package.json \"fundus\".dependencies field of \"${spec}\"`);\n\treturn resolve(dirname(packageJsonPath), field);\n}\n/**\n* Load and aggregate every configured dependency source (D3, D6). `requireAnchor`\n* anchors npm-name resolution at the host project (injectable for tests). Flat:\n* the dependencies of a referenced npm package are not resolved recursively.\n*/\nasync function resolveDependencies(projectRoot, specs, requireAnchor = join(resolve(projectRoot), \"package.json\")) {\n\tif (specs.length === 0) return [];\n\tconst jiti = createJiti(import.meta.url, { interopDefault: false });\n\tconst require = createRequire(requireAnchor);\n\tconst aggregated = /* @__PURE__ */ new Map();\n\tfor (const spec of specs) {\n\t\tassertNotJson(spec, \"source\");\n\t\tconst modulePath = isPathSpec(spec) ? resolve(resolve(projectRoot), spec) : resolveNpmDependencyModule(spec, require);\n\t\tconst loaded = await jiti.import(modulePath);\n\t\tconst value = loaded.default ?? loaded;\n\t\tfor (const dependency of validateDependencyList(spec, value)) {\n\t\t\tconst existing = aggregated.get(dependency.id);\n\t\t\tif (existing === void 0) {\n\t\t\t\taggregated.set(dependency.id, {\n\t\t\t\t\ttype: dependency.type,\n\t\t\t\t\tsources: [spec]\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (existing.type !== dependency.type) throw new Error(`Dependency \"${dependency.id}\" is declared as \"${existing.type}\" by \"${existing.sources.join(\"\\\", \\\"\")}\" and as \"${dependency.type}\" by \"${spec}\".`);\n\t\t\tif (!existing.sources.includes(spec)) existing.sources.push(spec);\n\t\t}\n\t}\n\treturn [...aggregated].map(([id, { type, sources }]) => ({\n\t\tid,\n\t\ttype,\n\t\tsources\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\tconst value = isRecord(module) && \"default\" in module ? module.default : module;\n\tconst resolved = resolveConfig(root, value);\n\tconst dependencies = await resolveDependencies(root, isRecord(value) ? dependencySpecs(value) : []);\n\treturn {\n\t\t...resolved,\n\t\tdependencies\n\t};\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/importers/pinned-https.ts\nfunction pinnedUrl(url, address) {\n\tconst pinned = new URL(url);\n\tpinned.hostname = address.family === 6 ? `[${address.address}]` : address.address;\n\treturn pinned;\n}\nfunction responseHeaders(source) {\n\tconst headers = new Headers();\n\tfor (const [name, value] of Object.entries(source)) if (Array.isArray(value)) for (const item of value) headers.append(name, item);\n\telse if (value !== void 0) headers.set(name, value);\n\treturn headers;\n}\nfunction createPinnedHttpsTransport(requester = request) {\n\treturn (target, signal) => new Promise((resolve, reject) => {\n\t\tlet addressIndex = 0;\n\t\tlet lastError;\n\t\tlet settled = false;\n\t\tconst attempt = () => {\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(signal.reason);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst address = target.addresses[addressIndex++];\n\t\t\tif (!address) {\n\t\t\t\treject(lastError ?? /* @__PURE__ */ new Error(`No validated address is available for ${target.url.hostname}.`));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet clientRequest;\n\t\t\ttry {\n\t\t\t\tclientRequest = requester(pinnedUrl(target.url, address), {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\tagent: false,\n\t\t\t\t\theaders: { host: target.url.host },\n\t\t\t\t\tservername: target.url.hostname,\n\t\t\t\t\trejectUnauthorized: true,\n\t\t\t\t\tsignal\n\t\t\t\t}, (response) => {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tstatus: response.statusCode ?? 0,\n\t\t\t\t\t\theaders: responseHeaders(response.headers),\n\t\t\t\t\t\tbody: response,\n\t\t\t\t\t\tcancel: () => response.destroy()\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} catch (cause) {\n\t\t\t\tlastError = cause;\n\t\t\t\tattempt();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tclientRequest.once(\"error\", (cause) => {\n\t\t\t\tif (settled) return;\n\t\t\t\tlastError = cause;\n\t\t\t\tattempt();\n\t\t\t});\n\t\t\tclientRequest.end();\n\t\t};\n\t\tattempt();\n\t});\n}\nvar requestPinnedHttps = createPinnedHttpsTransport();\n//#endregion\n//#region src/lib/server/importers/figma.ts\nvar MAX_DOWNLOAD_BYTES = 50 * 1024 * 1024;\nvar MAX_PIXELS = 32e6;\nvar MAX_REDIRECTS = 3;\nvar REQUEST_TIMEOUT_MS = 3e4;\nvar PNG_SIGNATURE = Uint8Array.from([\n\t137,\n\t80,\n\t78,\n\t71,\n\t13,\n\t10,\n\t26,\n\t10\n]);\nfunction record(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value) ? value : null;\n}\nfunction parseFigmaSelectionUrl(value) {\n\tlet url;\n\ttry {\n\t\turl = new URL(value);\n\t} catch {\n\t\treturn invalidInput(\"Enter a valid Figma selection link.\");\n\t}\n\tif (url.protocol !== \"https:\" || url.hostname !== \"figma.com\" && url.hostname !== \"www.figma.com\") return invalidInput(\"Figma links must use HTTPS on figma.com.\");\n\tconst segments = url.pathname.split(\"/\").filter(Boolean);\n\tif (![\n\t\t\"design\",\n\t\t\"file\",\n\t\t\"proto\"\n\t].includes(segments[0] ?? \"\") || !segments[1]) return invalidInput(\"The Figma link must point to a design, file, or prototype.\");\n\tconst nodeIds = url.searchParams.getAll(\"node-id\");\n\tif (nodeIds.length !== 1 || !/^\\d+[-:]\\d+$/.test(nodeIds[0])) return invalidInput(\"The Figma link must contain exactly one valid node-id.\");\n\tconst [left, right] = nodeIds[0].split(/[-:]/);\n\treturn {\n\t\tfileKey: segments[1],\n\t\tnodeId: `${left}:${right}`\n\t};\n}\nfunction validateScale(value) {\n\tif (value !== 1 && value !== 2 && value !== 3 && value !== 4) return invalidInput(\"Figma export scale must be 1, 2, 3, or 4.\");\n\treturn value;\n}\nfunction validateInput(value) {\n\tconst input = record(value);\n\tif (!input) return invalidInput(\"Figma import requires a URL.\");\n\tif (input.format !== void 0 && input.format !== \"png\") return invalidInput(\"Figma import currently supports PNG only.\");\n\tif (input.mode === \"tag\") {\n\t\tif (typeof input.tag !== \"string\" || !isValidAssetId(input.tag)) return invalidInput(\"Figma tag import requires a valid Fundus asset id as the tag.\");\n\t\tif (input.fileKey !== void 0 && (typeof input.fileKey !== \"string\" || input.fileKey.length === 0)) return invalidInput(\"Figma tag import fileKey must be a non-empty string.\");\n\t\treturn {\n\t\t\tmode: \"tag\",\n\t\t\ttag: input.tag,\n\t\t\tformat: \"png\",\n\t\t\t...input.fileKey !== void 0 ? { fileKey: input.fileKey } : {},\n\t\t\t...input.scale !== void 0 ? { scale: validateScale(input.scale) } : {}\n\t\t};\n\t}\n\tif (typeof input.url !== \"string\") return invalidInput(\"Figma import requires a URL.\");\n\treturn {\n\t\tmode: \"node\",\n\t\turl: input.url,\n\t\tformat: \"png\",\n\t\t...input.scale !== void 0 ? { scale: validateScale(input.scale) } : {}\n\t};\n}\nfunction validateFigmaSourceParameters(value) {\n\tconst source = record(value);\n\tif (!source || typeof source.fileKey !== \"string\" || source.fileKey.length === 0 || typeof source.nodeId !== \"string\" || !/^\\d+:\\d+$/.test(source.nodeId) || source.format !== \"png\") return invalidInput(\"Stored Figma source parameters are invalid.\");\n\tif (source.mode === \"tag\") {\n\t\tif (typeof source.fundusTag !== \"string\" || !isValidAssetId(source.fundusTag)) return invalidInput(\"Stored Figma source parameters are invalid.\");\n\t\treturn {\n\t\t\tmode: \"tag\",\n\t\t\tfileKey: source.fileKey,\n\t\t\tfundusTag: source.fundusTag,\n\t\t\tnodeId: source.nodeId,\n\t\t\tformat: \"png\",\n\t\t\tscale: validateScale(source.scale)\n\t\t};\n\t}\n\treturn {\n\t\tfileKey: source.fileKey,\n\t\tnodeId: source.nodeId,\n\t\tformat: \"png\",\n\t\tscale: validateScale(source.scale)\n\t};\n}\nfunction retryAfter(response) {\n\tconst raw = response.headers.get(\"retry-after\");\n\tif (!raw || !/^\\d+$/.test(raw.trim())) return void 0;\n\tconst seconds = Number(raw);\n\treturn Number.isSafeInteger(seconds) ? seconds : void 0;\n}\nfunction upstreamStatusError(response) {\n\tif (response.status === 401) return new SourceImportError(\"unauthorized\", \"Figma authentication failed.\");\n\tif (response.status === 403) return new SourceImportError(\"forbidden\", \"Figma authentication or access failed. The token may be invalid or expired, or it may not have access to this file.\");\n\tif (response.status === 404) return new SourceImportError(\"not-found\", \"The Figma file or node was not found.\");\n\tif (response.status === 429) return new SourceImportError(\"rate-limited\", \"Figma rate-limited this request.\", retryAfter(response));\n\treturn new SourceImportError(\"upstream-failed\", `Figma export failed with status ${response.status}.`);\n}\nfunction isForbiddenIpv4(address) {\n\tconst parts = address.split(\".\").map(Number);\n\tconst [a, b] = parts;\n\treturn a === 0 || a === 10 || a === 127 || a === 100 && b >= 64 && b <= 127 || a === 169 && b === 254 || a === 172 && b >= 16 && b <= 31 || a === 192 && b === 0 || a === 192 && b === 0 && parts[2] === 2 || a === 192 && b === 168 || a === 198 && (b === 18 || b === 19) || a === 198 && b === 51 && parts[2] === 100 || a === 203 && b === 0 && parts[2] === 113 || a >= 224;\n}\nfunction mappedIpv4Address(address) {\n\tconst normalized = address.toLowerCase().split(\"%\")[0];\n\tconst dotted = /^(?:::ffff:|0:0:0:0:0:ffff:)(\\d+\\.\\d+\\.\\d+\\.\\d+)$/.exec(normalized);\n\tif (dotted && isIP(dotted[1]) === 4) return dotted[1];\n\tconst halves = normalized.split(\"::\");\n\tif (halves.length > 2) return null;\n\tconst left = halves[0] ? halves[0].split(\":\") : [];\n\tconst right = halves.length === 2 && halves[1] ? halves[1].split(\":\") : [];\n\tconst missing = 8 - left.length - right.length;\n\tif (missing < 0 || halves.length === 1 && missing !== 0) return null;\n\tconst parts = [\n\t\t...left,\n\t\t...Array.from({ length: missing }, () => \"0\"),\n\t\t...right\n\t];\n\tif (parts.length !== 8 || parts.slice(0, 5).some((part) => Number.parseInt(part || \"0\", 16) !== 0) || Number.parseInt(parts[5] || \"0\", 16) !== 65535) return null;\n\tconst high = Number.parseInt(parts[6], 16);\n\tconst low = Number.parseInt(parts[7], 16);\n\tif (!Number.isInteger(high) || !Number.isInteger(low) || high < 0 || high > 65535 || low < 0 || low > 65535) return null;\n\treturn `${high >>> 8}.${high & 255}.${low >>> 8}.${low & 255}`;\n}\nfunction isForbiddenIp(address) {\n\tif (isIP(address) === 4) return isForbiddenIpv4(address);\n\tconst normalized = address.toLowerCase().split(\"%\")[0];\n\tconst mapped = mappedIpv4Address(normalized);\n\tif (mapped) return isForbiddenIpv4(mapped);\n\treturn normalized === \"::\" || normalized === \"::1\" || normalized.startsWith(\"fc\") || normalized.startsWith(\"fd\") || normalized.startsWith(\"fe8\") || normalized.startsWith(\"fe9\") || normalized.startsWith(\"fea\") || normalized.startsWith(\"feb\") || normalized.startsWith(\"ff\") || normalized.startsWith(\"2001:db8:\");\n}\nasync function resolveSafeDownloadTarget(value) {\n\tlet url;\n\ttry {\n\t\turl = value instanceof URL ? value : new URL(value);\n\t} catch {\n\t\tthrow new SourceImportError(\"unsafe-download-url\", \"Figma returned an unsafe download target.\");\n\t}\n\tif (url.protocol !== \"https:\" || url.username !== \"\" || url.password !== \"\" || url.port !== \"\" && url.port !== \"443\" || url.hostname === \"\" || url.hostname === \"localhost\" || url.hostname.endsWith(\".localhost\") || url.hostname.endsWith(\".local\") || url.hostname.startsWith(\"[\") || isIP(url.hostname) !== 0) throw new SourceImportError(\"unsafe-download-url\", \"Figma returned an unsafe download target.\");\n\tlet resolvedAddresses;\n\ttry {\n\t\tresolvedAddresses = await lookup(url.hostname, { all: true });\n\t} catch {\n\t\tthrow new SourceImportError(\"unsafe-download-url\", \"Figma returned an unavailable download target.\");\n\t}\n\tif (resolvedAddresses.length === 0 || resolvedAddresses.some(({ address }) => isIP(address) === 0 || isForbiddenIp(address))) throw new SourceImportError(\"unsafe-download-url\", \"Figma returned an unsafe download target.\");\n\tconst addresses = resolvedAddresses.map(({ address }) => ({\n\t\taddress,\n\t\tfamily: isIP(address)\n\t}));\n\treturn {\n\t\turl,\n\t\taddresses\n\t};\n}\nasync function fetchWithDeadline(fetcher, url, init, consume) {\n\tconst controller = new AbortController();\n\tconst timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);\n\ttry {\n\t\tconst response = await fetcher(url, {\n\t\t\t...init,\n\t\t\tsignal: controller.signal\n\t\t});\n\t\tif (!response.ok) throw upstreamStatusError(response);\n\t\treturn await consume(response);\n\t} catch (cause) {\n\t\tif (controller.signal.aborted || cause instanceof Error && cause.name === \"AbortError\") throw new SourceImportError(\"download-timeout\", \"Figma export timed out.\");\n\t\tif (cause instanceof SourceImportError) throw cause;\n\t\tthrow new SourceImportError(\"upstream-failed\", \"Figma export request failed.\");\n\t} finally {\n\t\tclearTimeout(timeout);\n\t}\n}\nasync function readLimitedBody(response, signal) {\n\tlet canceled = false;\n\tconst cancel = () => {\n\t\tif (canceled) return;\n\t\tcanceled = true;\n\t\tresponse.cancel();\n\t};\n\tconst declared = response.headers.get(\"content-length\");\n\tif (declared && /^\\d+$/.test(declared) && Number(declared) > MAX_DOWNLOAD_BYTES) {\n\t\tcancel();\n\t\tthrow new SourceImportError(\"download-too-large\", \"Figma export exceeds the 50 MiB limit.\");\n\t}\n\tconst iterator = response.body[Symbol.asyncIterator]();\n\tconst chunks = [];\n\tlet size = 0;\n\tlet rejectAbort;\n\tconst aborted = new Promise((_, reject) => rejectAbort = reject);\n\tconst onAbort = () => {\n\t\trejectAbort(new SourceImportError(\"download-timeout\", \"Figma export download timed out.\"));\n\t\tcancel();\n\t};\n\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\ttry {\n\t\tfor (;;) {\n\t\t\tconst { done, value } = await Promise.race([iterator.next(), aborted]);\n\t\t\tif (signal.aborted) throw new SourceImportError(\"download-timeout\", \"Figma export download timed out.\");\n\t\t\tif (done) break;\n\t\t\tsize += value.byteLength;\n\t\t\tif (size > MAX_DOWNLOAD_BYTES) {\n\t\t\t\tcancel();\n\t\t\t\tthrow new SourceImportError(\"download-too-large\", \"Figma export exceeds the 50 MiB limit.\");\n\t\t\t}\n\t\t\tchunks.push(value);\n\t\t}\n\t} catch (cause) {\n\t\tcancel();\n\t\tthrow cause;\n\t} finally {\n\t\tsignal.removeEventListener(\"abort\", onAbort);\n\t}\n\tconst bytes = new Uint8Array(size);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tbytes.set(chunk, offset);\n\t\toffset += chunk.byteLength;\n\t}\n\treturn bytes;\n}\nasync function downloadExport(transport, initial) {\n\tlet target = await resolveSafeDownloadTarget(initial);\n\tconst controller = new AbortController();\n\tconst timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);\n\ttry {\n\t\tfor (let redirects = 0;; redirects++) {\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tresponse = await transport(target, controller.signal);\n\t\t\t} catch (cause) {\n\t\t\t\tif (controller.signal.aborted || cause instanceof Error && cause.name === \"AbortError\") throw new SourceImportError(\"download-timeout\", \"Figma export download timed out.\");\n\t\t\t\tthrow new SourceImportError(\"upstream-failed\", \"Figma export download failed.\");\n\t\t\t}\n\t\t\tif (response.status >= 300 && response.status < 400) {\n\t\t\t\tif (redirects >= MAX_REDIRECTS) {\n\t\t\t\t\tresponse.cancel();\n\t\t\t\t\tthrow new SourceImportError(\"unsafe-download-url\", \"Figma export redirected too many times.\");\n\t\t\t\t}\n\t\t\t\tconst location = response.headers.get(\"location\");\n\t\t\t\tif (!location) {\n\t\t\t\t\tresponse.cancel();\n\t\t\t\t\tthrow new SourceImportError(\"invalid-response\", \"Figma export redirect was invalid.\");\n\t\t\t\t}\n\t\t\t\tresponse.cancel();\n\t\t\t\ttarget = await resolveSafeDownloadTarget(new URL(location, target.url));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (response.status < 200 || response.status >= 300) {\n\t\t\t\tresponse.cancel();\n\t\t\t\tthrow upstreamStatusError(response);\n\t\t\t}\n\t\t\treturn await readLimitedBody(response, controller.signal);\n\t\t}\n\t} finally {\n\t\tclearTimeout(timeout);\n\t}\n}\nasync function validatePng(bytes) {\n\tif (bytes.byteLength < PNG_SIGNATURE.byteLength || PNG_SIGNATURE.some((value, index) => bytes[index] !== value)) throw new SourceImportError(\"invalid-response\", \"Figma export is not a valid PNG.\");\n\tlet metadata;\n\ttry {\n\t\tmetadata = await sharp(bytes).metadata();\n\t} catch {\n\t\tthrow new SourceImportError(\"invalid-response\", \"Figma export is not a readable PNG.\");\n\t}\n\tif (!metadata.width || !metadata.height) throw new SourceImportError(\"invalid-response\", \"Figma export has invalid dimensions.\");\n\tif (metadata.width * metadata.height > MAX_PIXELS) throw new SourceImportError(\"image-too-large\", \"Figma export exceeds the 32 megapixel limit.\");\n}\nfunction collectTaggedNodeIds(node, tag, matches) {\n\tconst current = record(node);\n\tif (!current) return;\n\tconst shared = record(current.sharedPluginData);\n\tconst fundus = shared ? record(shared.fundus) : null;\n\tif (fundus && fundus.assetId === tag && typeof current.id === \"string\") matches.push(current.id);\n\tif (Array.isArray(current.children)) for (const child of current.children) collectTaggedNodeIds(child, tag, matches);\n}\nasync function resolveTagToNode(fileKey, tag, context) {\n\tconst token = context.config.import.figma.token;\n\tif (!token) throw new SourceImportError(\"not-configured\", \"Figma access is not configured.\");\n\tconst endpoint = new URL(`https://api.figma.com/v1/files/${encodeURIComponent(fileKey)}`);\n\tendpoint.searchParams.set(\"plugin_data\", \"shared\");\n\tconst jsonBytes = await fetchWithDeadline(context.fetch, endpoint, {\n\t\tredirect: \"error\",\n\t\theaders: { \"X-Figma-Token\": token }\n\t}, async (response) => new Uint8Array(await response.arrayBuffer()));\n\tlet payload;\n\ttry {\n\t\tpayload = JSON.parse(new TextDecoder().decode(jsonBytes));\n\t} catch {\n\t\tthrow new SourceImportError(\"invalid-response\", \"Figma returned an invalid response.\");\n\t}\n\tconst body = record(payload);\n\tif (!body || body.err || typeof body.status === \"number\" && body.status >= 400) throw new SourceImportError(\"invalid-response\", \"Figma returned an invalid response.\");\n\tconst matches = [];\n\tcollectTaggedNodeIds(body.document, tag, matches);\n\tif (matches.length === 0) throw new SourceImportError(\"not-found\", `No Figma node is tagged \"${tag}\" in this file.`);\n\tif (matches.length > 1) throw new SourceImportError(\"ambiguous-tag\", `More than one Figma node is tagged \"${tag}\" in this file.`);\n\treturn matches[0];\n}\nasync function materialize(source, context) {\n\tconst token = context.config.import.figma.token;\n\tif (!token) throw new SourceImportError(\"not-configured\", \"Figma access is not configured.\");\n\tconst endpoint = new URL(`https://api.figma.com/v1/images/${encodeURIComponent(source.fileKey)}`);\n\tendpoint.searchParams.set(\"ids\", source.nodeId);\n\tendpoint.searchParams.set(\"format\", source.format);\n\tendpoint.searchParams.set(\"scale\", String(source.scale));\n\tconst jsonBytes = await fetchWithDeadline(context.fetch, endpoint, {\n\t\tredirect: \"error\",\n\t\theaders: { \"X-Figma-Token\": token }\n\t}, async (response) => new Uint8Array(await response.arrayBuffer()));\n\tlet payload;\n\ttry {\n\t\tpayload = JSON.parse(new TextDecoder().decode(jsonBytes));\n\t} catch {\n\t\tthrow new SourceImportError(\"invalid-response\", \"Figma returned an invalid response.\");\n\t}\n\tconst body = record(payload);\n\tif (!body || body.err || typeof body.status === \"number\" && body.status >= 400) throw new SourceImportError(\"invalid-response\", \"Figma could not render this node.\");\n\tconst images = record(body.images);\n\tif (!images || !Object.hasOwn(images, source.nodeId)) throw new SourceImportError(\"invalid-response\", \"Figma did not return the requested node.\");\n\tconst imageUrl = images[source.nodeId];\n\tif (typeof imageUrl !== \"string\" || imageUrl.length === 0) throw new SourceImportError(\"invalid-response\", \"Figma could not render the requested node.\");\n\tconst bytes = await downloadExport(context.httpsTransport ?? requestPinnedHttps, imageUrl);\n\tawait validatePng(bytes);\n\treturn {\n\t\tbytes,\n\t\textension: \"png\",\n\t\timportSource: {\n\t\t\timporter: \"figma\",\n\t\t\tparameters: source\n\t\t}\n\t};\n}\nvar figmaSourceImporter = {\n\tkind: \"figma\",\n\tlabel: \"Figma\",\n\tvalidateInput,\n\tasync importRaw(input, context) {\n\t\tif (input.mode === \"tag\") {\n\t\t\tconst fileKey = input.fileKey ?? context.config.import.figma.defaultFileKey;\n\t\t\tif (!fileKey) throw new SourceImportError(\"not-configured\", \"Figma tag import needs a fileKey or import.figma.defaultFileKey in fundus.config.\");\n\t\t\tconst nodeId = await resolveTagToNode(fileKey, input.tag, context);\n\t\t\treturn materialize({\n\t\t\t\tmode: \"tag\",\n\t\t\t\tfileKey,\n\t\t\t\tfundusTag: input.tag,\n\t\t\t\tnodeId,\n\t\t\t\tformat: \"png\",\n\t\t\t\tscale: input.scale ?? context.config.import.figma.defaults.scale\n\t\t\t}, context);\n\t\t}\n\t\tconst parsed = parseFigmaSelectionUrl(input.url);\n\t\treturn materialize({\n\t\t\tfileKey: parsed.fileKey,\n\t\t\tnodeId: parsed.nodeId,\n\t\t\tformat: \"png\",\n\t\t\tscale: input.scale ?? context.config.import.figma.defaults.scale\n\t\t}, context);\n\t},\n\tvalidateSourceParameters: validateFigmaSourceParameters,\n\tasync reimportRaw(source, context) {\n\t\tif (source.mode === \"tag\") {\n\t\t\tconst nodeId = await resolveTagToNode(source.fileKey, source.fundusTag, context);\n\t\t\treturn materialize({\n\t\t\t\t...source,\n\t\t\t\tnodeId\n\t\t\t}, context);\n\t\t}\n\t\treturn materialize(source, context);\n\t}\n};\n//#endregion\n//#region src/lib/server/importers/file.ts\nfunction validate(value) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new SourceImportError(\"invalid-input\", \"File import input must be an object.\");\n\tconst input = value;\n\tif (typeof input.fileName !== \"string\" || input.fileName.length === 0) throw new SourceImportError(\"invalid-input\", \"File import requires a file name.\");\n\tif (!(input.bytes instanceof Uint8Array)) throw new SourceImportError(\"invalid-input\", \"File import requires byte data.\");\n\treturn {\n\t\tfileName: input.fileName,\n\t\tbytes: input.bytes\n\t};\n}\nvar fileSourceImporter = {\n\tkind: \"file\",\n\tlabel: \"File\",\n\tvalidateInput: validate,\n\tasync importRaw(input) {\n\t\tconst extension = extname(input.fileName).slice(1).toLowerCase();\n\t\tif (!extension) throw new SourceImportError(\"invalid-input\", \"The file needs an extension.\");\n\t\treturn {\n\t\t\tbytes: input.bytes,\n\t\t\textension,\n\t\t\tsuggestedFileName: input.fileName\n\t\t};\n\t},\n\tvalidateSourceParameters() {\n\t\tthrow new SourceImportError(\"invalid-input\", \"File imports cannot be re-imported.\");\n\t}\n};\n//#endregion\n//#region src/lib/server/importers/registry.ts\nvar SourceImporterRegistry = class {\n\t#byKind = /* @__PURE__ */ new Map();\n\tconstructor(importers) {\n\t\tfor (const importer of importers) {\n\t\t\tif (!importer.kind) throw new Error(\"Source importer kind must not be empty.\");\n\t\t\tif (this.#byKind.has(importer.kind)) throw new Error(`Duplicate source importer kind \"${importer.kind}\".`);\n\t\t\tthis.#byKind.set(importer.kind, importer);\n\t\t}\n\t}\n\trequire(kind) {\n\t\tconst importer = this.#byKind.get(kind);\n\t\tif (!importer) throw new SourceImportError(\"invalid-input\", `Unknown source importer \"${kind}\".`);\n\t\treturn importer;\n\t}\n\thas(kind) {\n\t\treturn this.#byKind.has(kind);\n\t}\n\trequireReimport(source) {\n\t\tconst importer = this.require(source.importer);\n\t\tif (!importer.reimportRaw) throw new SourceImportError(\"invalid-input\", `Source importer \"${source.importer}\" does not support re-import.`);\n\t\treturn {\n\t\t\timporter,\n\t\t\tparameters: importer.validateSourceParameters(source.parameters)\n\t\t};\n\t}\n};\n//#endregion\n//#region src/lib/server/importers.ts\nvar serverImporters = new SourceImporterRegistry([fileSourceImporter, figmaSourceImporter]);\n//#endregion\n//#region src/lib/server/git.ts\nvar execFileAsync = promisify(execFile);\nvar MAX_LIBRARY_BLOB_BYTES = 64 * 1024 * 1024;\nasync function git(projectRoot, args, options = {}) {\n\tconst { stdout } = await execFileAsync(\"git\", [\n\t\t\"-C\",\n\t\tprojectRoot,\n\t\t...args\n\t], {\n\t\tencoding: \"utf8\",\n\t\t...options\n\t});\n\treturn stdout;\n}\nasync function gitBlob(projectRoot, objectId) {\n\tconst { stdout } = await execFileAsync(\"git\", [\n\t\t\"-C\",\n\t\tprojectRoot,\n\t\t\"cat-file\",\n\t\t\"blob\",\n\t\tobjectId\n\t], {\n\t\tencoding: null,\n\t\tmaxBuffer: MAX_LIBRARY_BLOB_BYTES\n\t});\n\treturn new TextDecoder(\"utf-8\", { fatal: true }).decode(stdout);\n}\n/** Current branch of the repository containing projectRoot; null outside Git or when detached. */\nasync function currentGitBranch(projectRoot) {\n\ttry {\n\t\treturn (await git(projectRoot, [\"branch\", \"--show-current\"])).trim() || null;\n\t} catch {\n\t\treturn null;\n\t}\n}\nasync function verifiedRef(projectRoot, ref) {\n\ttry {\n\t\tawait git(projectRoot, [\n\t\t\t\"rev-parse\",\n\t\t\t\"--verify\",\n\t\t\t\"--quiet\",\n\t\t\tref\n\t\t]);\n\t\treturn ref;\n\t} catch {\n\t\treturn null;\n\t}\n}\nasync function firstExistingRef(projectRoot, refs) {\n\tfor (const ref of refs) if (await verifiedRef(projectRoot, ref)) return ref;\n\treturn null;\n}\nasync function defaultBranchRef(projectRoot) {\n\ttry {\n\t\tconst remoteHead = (await git(projectRoot, [\n\t\t\t\"symbolic-ref\",\n\t\t\t\"--quiet\",\n\t\t\t\"refs/remotes/origin/HEAD\"\n\t\t])).trim();\n\t\tif (remoteHead && await verifiedRef(projectRoot, remoteHead)) return remoteHead;\n\t} catch {}\n\treturn firstExistingRef(projectRoot, [\n\t\t\"refs/remotes/origin/main\",\n\t\t\"refs/remotes/origin/master\",\n\t\t\"refs/heads/main\",\n\t\t\"refs/heads/master\"\n\t]);\n}\nasync function repositoryLibraryPath(repositoryRoot, libraryPath) {\n\tconst path = relative(repositoryRoot, await realpath(resolve(libraryPath)));\n\tif (path === \"\" || isAbsolute(path) || path === \"..\" || path.startsWith(`..${sep}`)) return null;\n\treturn path.split(sep).join(\"/\");\n}\nasync function historicalLibrary(projectRoot, mergeBase, repositoryRelativeLibraryPath) {\n\tlet tree;\n\ttry {\n\t\ttree = await git(projectRoot, [\n\t\t\t\"ls-tree\",\n\t\t\t\"--full-tree\",\n\t\t\t\"-z\",\n\t\t\tmergeBase,\n\t\t\t\"--\",\n\t\t\t`:(literal)${repositoryRelativeLibraryPath}`\n\t\t]);\n\t} catch {\n\t\treturn { kind: \"unavailable\" };\n\t}\n\tif (tree === \"\") return { kind: \"missing\" };\n\tif (!tree.endsWith(\"\\0\")) return { kind: \"unavailable\" };\n\tconst entries = tree.slice(0, -1).split(\"\\0\");\n\tif (entries.length !== 1) return { kind: \"unavailable\" };\n\tconst match = /^([0-7]{6}) (blob) ([0-9a-fA-F]+)\\t([\\s\\S]+)$/.exec(entries[0]);\n\tif (!match || match[4] !== repositoryRelativeLibraryPath) return { kind: \"unavailable\" };\n\ttry {\n\t\treturn {\n\t\t\tkind: \"available\",\n\t\t\tlibrary: parseLibrary(await gitBlob(projectRoot, match[3]))\n\t\t};\n\t} catch {\n\t\treturn { kind: \"unavailable\" };\n\t}\n}\nfunction comparableRecord(record) {\n\treturn {\n\t\t...record,\n\t\tmanifests: [...new Set(record.manifests)].sort(compareCodeUnits)\n\t};\n}\n/**\n* Asset-record changes made since this branch diverged from the repository's\n* default branch. The current parsed library includes committed and local\n* changes; raw-file state is intentionally handled by raw reconciliation.\n*/\nasync function gitAssetChanges(projectRoot, libraryPath, currentLibrary) {\n\ttry {\n\t\tconst repositoryRoot = (await git(projectRoot, [\"rev-parse\", \"--show-toplevel\"])).trim();\n\t\tif (!repositoryRoot) return /* @__PURE__ */ new Map();\n\t\tconst libraryGitPath = await repositoryLibraryPath(repositoryRoot, libraryPath);\n\t\tif (!libraryGitPath) return /* @__PURE__ */ new Map();\n\t\tconst defaultRef = await defaultBranchRef(projectRoot);\n\t\tif (!defaultRef) return /* @__PURE__ */ new Map();\n\t\tconst mergeBase = (await git(projectRoot, [\n\t\t\t\"merge-base\",\n\t\t\t\"HEAD\",\n\t\t\tdefaultRef\n\t\t])).trim();\n\t\tif (!mergeBase) return /* @__PURE__ */ new Map();\n\t\tconst historical = await historicalLibrary(projectRoot, mergeBase, libraryGitPath);\n\t\tif (historical.kind === \"unavailable\") return /* @__PURE__ */ new Map();\n\t\tconst changes = /* @__PURE__ */ new Map();\n\t\tfor (const [assetId, currentRecord] of Object.entries(currentLibrary.assets)) {\n\t\t\tif (historical.kind === \"missing\") {\n\t\t\t\tchanges.set(assetId, \"new\");\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!Object.hasOwn(historical.library.assets, assetId)) {\n\t\t\t\tchanges.set(assetId, \"new\");\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!isDeepStrictEqual(comparableRecord(currentRecord), comparableRecord(historical.library.assets[assetId]))) changes.set(assetId, \"edited\");\n\t\t}\n\t\treturn changes;\n\t} catch {\n\t\treturn /* @__PURE__ */ new Map();\n\t}\n}\n//#endregion\n//#region src/lib/server/usage.ts\nvar MAX_PATHS = 20;\nvar TOKEN_TTL_MS = 600 * 1e3;\nfunction locationKey(location) {\n\treturn `${location.file}\\u0000${location.line}\\u0000${location.column}`;\n}\nfunction compareLocations(left, right) {\n\treturn compareCodeUnits(left.file, right.file) || left.line - right.line || left.column - right.column || compareCodeUnits(left.label ?? \"\", right.label ?? \"\");\n}\nfunction validateLocation(value, context, allowLabel) {\n\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(`${context} must be an object.`);\n\tconst record = value;\n\tif (typeof record.file !== \"string\" || record.file.length === 0 || !isAbsolute(record.file)) throw new Error(`${context}.file must be an absolute path.`);\n\tfor (const key of [\"line\", \"column\"]) if (!Number.isSafeInteger(record[key]) || record[key] <= 0) throw new Error(`${context}.${key} must be a positive safe integer.`);\n\tif (allowLabel && record.label !== void 0 && typeof record.label !== \"string\") throw new Error(`${context}.label must be a string.`);\n\treturn {\n\t\tfile: record.file,\n\t\tline: record.line,\n\t\tcolumn: record.column,\n\t\t...allowLabel && typeof record.label === \"string\" ? { label: record.label } : {}\n\t};\n}\nfunction normalizeResult(value, target) {\n\tconst context = `fundus.config: usage.referenceProvider for ${target.manifest}.${target.assetId}`;\n\ttry {\n\t\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) throw new Error(`${context} must return an object.`);\n\t\tconst result = value;\n\t\tif (result.status === \"unknown\") {\n\t\t\tif (result.reason !== void 0 && typeof result.reason !== \"string\") throw new Error(`${context} unknown reason must be a string.`);\n\t\t\treturn {\n\t\t\t\tstatus: \"unknown\",\n\t\t\t\t...typeof result.reason === \"string\" ? { reason: result.reason } : {}\n\t\t\t};\n\t\t}\n\t\tif (result.status !== \"resolved\" || !Array.isArray(result.references)) throw new Error(`${context} must return resolved references or unknown.`);\n\t\tconst declarationKey = locationKey(target.declaration);\n\t\tconst references = result.references.map((reference, index) => validateLocation(reference, `${context} references[${index}]`, true)).filter((reference) => locationKey(reference) !== declarationKey).sort(compareLocations);\n\t\tconst deduplicated = [];\n\t\tconst seen = /* @__PURE__ */ new Set();\n\t\tfor (const reference of references) {\n\t\t\tconst key = locationKey(reference);\n\t\t\tif (seen.has(key)) continue;\n\t\t\tseen.add(key);\n\t\t\tdeduplicated.push(reference);\n\t\t}\n\t\treturn {\n\t\t\tstatus: \"resolved\",\n\t\t\treferences: deduplicated\n\t\t};\n\t} catch (cause) {\n\t\treturn {\n\t\t\tstatus: \"unknown\",\n\t\t\treason: cause instanceof Error ? cause.message : String(cause)\n\t\t};\n\t}\n}\nvar FifoLimiter = class {\n\t#active = 0;\n\t#queue = [];\n\tasync run(operation) {\n\t\tif (this.#active >= 4) await new Promise((resolve) => this.#queue.push(resolve));\n\t\tthis.#active++;\n\t\ttry {\n\t\t\treturn await operation();\n\t\t} finally {\n\t\t\tthis.#active--;\n\t\t\tthis.#queue.shift()?.();\n\t\t}\n\t}\n};\nvar FundusUsageAnalyzer = class {\n\t#usage;\n\t#secret = randomBytes(32);\n\t#limiter = new FifoLimiter();\n\t#inflight = /* @__PURE__ */ new Map();\n\t#freshGeneration = 0;\n\tconstructor(usage) {\n\t\tthis.#usage = usage;\n\t}\n\tasync analyze(snapshot, options = {}) {\n\t\tif (options.assetId && !Object.hasOwn(snapshot.library.assets, options.assetId)) throw new Error(`Unknown asset \"${options.assetId}\".`);\n\t\tconst rootsToAnalyze = options.assetId ? relevantRootsForAsset(snapshot, options.assetId) : snapshot.roots;\n\t\tconst freshKey = options.forceFresh ? `fresh:${++this.#freshGeneration}` : \"normal\";\n\t\tconst rootResults = /* @__PURE__ */ new Map();\n\t\tawait Promise.all(rootsToAnalyze.map(async (root) => {\n\t\t\tconst key = rootKey(root);\n\t\t\tif (!root.declaration) {\n\t\t\t\trootResults.set(key, {\n\t\t\t\t\tstatus: \"unknown\",\n\t\t\t\t\treason: root.declarationError ?? `Cannot locate generated declaration for ${root.manifest}.${root.assetId}.`\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst target = {\n\t\t\t\tassetId: root.assetId,\n\t\t\t\tmanifest: root.manifest,\n\t\t\t\tdeclaration: root.declaration\n\t\t\t};\n\t\t\tconst inflightKey = `${snapshot.revision}|${locationKey(root.declaration)}|${freshKey}`;\n\t\t\tlet run = !options.forceFresh ? this.#inflight.get(inflightKey) : void 0;\n\t\t\tif (!run) {\n\t\t\t\trun = this.#limiter.run(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn normalizeResult(await this.#usage.referenceProvider(target), target);\n\t\t\t\t\t} catch (cause) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstatus: \"unknown\",\n\t\t\t\t\t\t\treason: `usage.referenceProvider failed for ${root.manifest}.${root.assetId}: ${cause instanceof Error ? cause.message : String(cause)}`\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (!options.forceFresh) {\n\t\t\t\t\tthis.#inflight.set(inflightKey, run);\n\t\t\t\t\trun.finally(() => this.#inflight.delete(inflightKey));\n\t\t\t\t}\n\t\t\t}\n\t\t\trootResults.set(key, await run);\n\t\t}));\n\t\treturn this.#assemble(snapshot, rootResults, options.assetId);\n\t}\n\tstale(snapshot, assetId) {\n\t\tconst results = /* @__PURE__ */ new Map();\n\t\tfor (const root of assetId ? relevantRootsForAsset(snapshot, assetId) : snapshot.roots) results.set(rootKey(root), {\n\t\t\tstatus: \"unknown\",\n\t\t\treason: \"The Fundus project changed repeatedly during usage analysis; refresh to retry.\"\n\t\t});\n\t\treturn this.#assemble(snapshot, results, assetId);\n\t}\n\tasync open(token) {\n\t\tif (typeof token !== \"string\" || token.length === 0) throw new Error(\"Usage location token must be a non-empty string.\");\n\t\tconst [encoded, signature, extra] = token.split(\".\");\n\t\tif (!encoded || !signature || extra !== void 0) throw new Error(\"Invalid usage location token.\");\n\t\tconst expected = createHmac(\"sha256\", this.#secret).update(encoded).digest();\n\t\tlet received;\n\t\ttry {\n\t\t\treceived = Buffer.from(signature, \"base64url\");\n\t\t} catch {\n\t\t\tthrow new Error(\"Invalid usage location token.\");\n\t\t}\n\t\tif (received.length !== expected.length || !timingSafeEqual(received, expected)) throw new Error(\"Invalid usage location token; refresh usage and try again.\");\n\t\tlet payload;\n\t\ttry {\n\t\t\tpayload = JSON.parse(Buffer.from(encoded, \"base64url\").toString(\"utf8\"));\n\t\t} catch {\n\t\t\tthrow new Error(\"Invalid usage location token.\");\n\t\t}\n\t\tif (typeof payload !== \"object\" || payload === null || Array.isArray(payload)) throw new Error(\"Invalid usage location token.\");\n\t\tconst record = payload;\n\t\tif (record.v !== 1 || typeof record.expiresAt !== \"number\" || Date.now() > record.expiresAt) throw new Error(\"Usage location token expired; refresh usage and try again.\");\n\t\tconst location = validateLocation(record.location, \"Usage location token\", false);\n\t\tconst normalized = {\n\t\t\tfile: location.file,\n\t\t\tline: location.line,\n\t\t\tcolumn: location.column\n\t\t};\n\t\ttry {\n\t\t\tawait this.#usage.openLocation(normalized);\n\t\t} catch (cause) {\n\t\t\tthrow new Error(`Could not open ${normalized.file}:${normalized.line}:${normalized.column}: ${cause instanceof Error ? cause.message : String(cause)}`);\n\t\t}\n\t}\n\t#token(location) {\n\t\tconst encoded = Buffer.from(JSON.stringify({\n\t\t\tv: 1,\n\t\t\texpiresAt: Date.now() + TOKEN_TTL_MS,\n\t\t\tlocation\n\t\t})).toString(\"base64url\");\n\t\treturn `${encoded}.${createHmac(\"sha256\", this.#secret).update(encoded).digest(\"base64url\")}`;\n\t}\n\t#assemble(snapshot, rootResults, requestedAssetId) {\n\t\tconst assetIds = requestedAssetId ? [requestedAssetId] : Object.keys(snapshot.library.assets).sort(compareCodeUnits);\n\t\tconst analyzedRoots = snapshot.roots.filter((root) => rootResults.has(rootKey(root)));\n\t\tconst cyclicNodes = referenceCycleNodes(snapshot.referencesByAsset);\n\t\tconst cycleAncestors = reverseClosure(cyclicNodes, snapshot.referencesByAsset);\n\t\tconst adjustedResults = /* @__PURE__ */ new Map();\n\t\tfor (const root of analyzedRoots) {\n\t\t\tconst result = rootResults.get(rootKey(root));\n\t\t\tadjustedResults.set(rootKey(root), cycleAncestors.has(root.assetId) && result.status === \"resolved\" && result.references.length === 0 ? {\n\t\t\t\tstatus: \"unknown\",\n\t\t\t\treason: \"A reference cycle prevents complete usage analysis for this root.\"\n\t\t\t} : result);\n\t\t}\n\t\tconst usedAssets = referenceClosureFromSources(analyzedRoots.filter((root) => {\n\t\t\tconst result = adjustedResults.get(rootKey(root));\n\t\t\treturn result?.status === \"resolved\" && result.references.length > 0;\n\t\t}).map((root) => root.assetId), snapshot.referencesByAsset);\n\t\tconst unknownAssets = referenceClosureFromSources(analyzedRoots.filter((root) => adjustedResults.get(rootKey(root))?.status === \"unknown\").map((root) => root.assetId), snapshot.referencesByAsset);\n\t\treturn { assets: assetIds.map((assetId) => {\n\t\t\tconst status = usedAssets.has(assetId) ? \"used\" : unknownAssets.has(assetId) ? \"unknown\" : \"unused\";\n\t\t\tif (!requestedAssetId) return {\n\t\t\t\tassetId,\n\t\t\t\tstatus,\n\t\t\t\treferences: [],\n\t\t\t\troots: []\n\t\t\t};\n\t\t\tconst groups = [];\n\t\t\tconst pathCountMemo = /* @__PURE__ */ new Map();\n\t\t\tfor (const root of analyzedRoots) {\n\t\t\t\tconst paths = pathsFromRoot(root.assetId, assetId, snapshot.referencesByAsset, pathCountMemo, cyclicNodes);\n\t\t\t\tif (paths.count > 0n) groups.push({\n\t\t\t\t\troot,\n\t\t\t\t\tpaths: paths.paths,\n\t\t\t\t\tcount: paths.count\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst allReferences = [];\n\t\t\tfor (const group of groups) {\n\t\t\t\tconst result = adjustedResults.get(rootKey(group.root));\n\t\t\t\tif (result?.status === \"resolved\") allReferences.push(...result.references);\n\t\t\t}\n\t\t\tallReferences.sort(compareLocations);\n\t\t\tconst uniqueReferences = [];\n\t\t\tconst referenceIdByKey = /* @__PURE__ */ new Map();\n\t\t\tfor (const reference of allReferences) {\n\t\t\t\tconst key = locationKey(reference);\n\t\t\t\tif (referenceIdByKey.has(key)) continue;\n\t\t\t\tconst id = `r${uniqueReferences.length}`;\n\t\t\t\treferenceIdByKey.set(key, id);\n\t\t\t\tuniqueReferences.push(reference);\n\t\t\t}\n\t\t\tconst roots = groups.map(({ root, paths, count }) => {\n\t\t\t\tconst result = adjustedResults.get(rootKey(root)) ?? {\n\t\t\t\t\tstatus: \"unknown\",\n\t\t\t\t\treason: \"Usage analysis result is missing.\"\n\t\t\t\t};\n\t\t\t\tconst dtoResult = result.status === \"unknown\" ? result : {\n\t\t\t\t\tstatus: \"resolved\",\n\t\t\t\t\treferenceIds: result.references.map((reference) => referenceIdByKey.get(locationKey(reference))).filter((id) => id !== void 0)\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tmanifest: root.manifest,\n\t\t\t\t\trootAssetId: root.assetId,\n\t\t\t\t\tpaths,\n\t\t\t\t\tpathsTruncated: count > BigInt(paths.length),\n\t\t\t\t\t...count > BigInt(paths.length) ? { additionalPathCount: (count - BigInt(paths.length)).toString() } : {},\n\t\t\t\t\tdeclaration: root.declaration,\n\t\t\t\t\tresult: dtoResult\n\t\t\t\t};\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tassetId,\n\t\t\t\tstatus,\n\t\t\t\treferences: uniqueReferences.map((reference, index) => ({\n\t\t\t\t\t...reference,\n\t\t\t\t\tid: `r${index}`,\n\t\t\t\t\topenToken: this.#token(reference)\n\t\t\t\t})),\n\t\t\t\troots\n\t\t\t};\n\t\t}) };\n\t}\n};\nfunction rootKey(root) {\n\treturn `${root.manifest}\\u0000${root.assetId}`;\n}\nfunction relevantRootsForAsset(snapshot, assetId) {\n\tconst ancestors = reverseClosure(/* @__PURE__ */ new Set([assetId]), snapshot.referencesByAsset);\n\treturn snapshot.roots.filter((root) => ancestors.has(root.assetId));\n}\nfunction reverseClosure(sources, referencesByAsset) {\n\tconst incoming = /* @__PURE__ */ new Map();\n\tfor (const [source, references] of Object.entries(referencesByAsset)) for (const target of new Set(references.map((reference) => reference.assetId))) {\n\t\tconst sources = incoming.get(target);\n\t\tif (sources) sources.push(source);\n\t\telse incoming.set(target, [source]);\n\t}\n\tconst closure = /* @__PURE__ */ new Set();\n\tconst pending = [...sources];\n\twhile (pending.length > 0) {\n\t\tconst current = pending.pop();\n\t\tif (closure.has(current)) continue;\n\t\tclosure.add(current);\n\t\tpending.push(...incoming.get(current) ?? []);\n\t}\n\treturn closure;\n}\nfunction referenceClosureFromSources(sources, referencesByAsset) {\n\tconst closure = /* @__PURE__ */ new Set();\n\tconst pending = [...sources];\n\twhile (pending.length > 0) {\n\t\tconst current = pending.pop();\n\t\tif (closure.has(current) || !Object.hasOwn(referencesByAsset, current)) continue;\n\t\tclosure.add(current);\n\t\tfor (const reference of referencesByAsset[current]) pending.push(reference.assetId);\n\t}\n\treturn closure;\n}\n/** Tarjan SCC detection; singleton components count only when they self-reference. */\nfunction referenceCycleNodes(referencesByAsset) {\n\tlet nextIndex = 0;\n\tconst indexByNode = /* @__PURE__ */ new Map();\n\tconst lowLink = /* @__PURE__ */ new Map();\n\tconst stack = [];\n\tconst onStack = /* @__PURE__ */ new Set();\n\tconst cyclic = /* @__PURE__ */ new Set();\n\tconst visit = (node) => {\n\t\tindexByNode.set(node, nextIndex);\n\t\tlowLink.set(node, nextIndex++);\n\t\tstack.push(node);\n\t\tonStack.add(node);\n\t\tfor (const target of new Set((referencesByAsset[node] ?? []).map((ref) => ref.assetId))) {\n\t\t\tif (!Object.hasOwn(referencesByAsset, target)) continue;\n\t\t\tif (!indexByNode.has(target)) {\n\t\t\t\tvisit(target);\n\t\t\t\tlowLink.set(node, Math.min(lowLink.get(node), lowLink.get(target)));\n\t\t\t} else if (onStack.has(target)) lowLink.set(node, Math.min(lowLink.get(node), indexByNode.get(target)));\n\t\t}\n\t\tif (lowLink.get(node) !== indexByNode.get(node)) return;\n\t\tconst component = [];\n\t\tfor (;;) {\n\t\t\tconst member = stack.pop();\n\t\t\tonStack.delete(member);\n\t\t\tcomponent.push(member);\n\t\t\tif (member === node) break;\n\t\t}\n\t\tif (component.length > 1 || (referencesByAsset[node] ?? []).some((reference) => reference.assetId === node)) for (const member of component) cyclic.add(member);\n\t};\n\tfor (const node of Object.keys(referencesByAsset)) if (!indexByNode.has(node)) visit(node);\n\treturn cyclic;\n}\nfunction pathsFromRoot(root, target, referencesByAsset, countMemo = /* @__PURE__ */ new Map(), cyclicNodes = referenceCycleNodes(referencesByAsset)) {\n\tconst count = (assetId, visiting) => {\n\t\tif (assetId === target) return 1n;\n\t\tconst visitedCyclicNodes = [...visiting].filter((id) => cyclicNodes.has(id)).sort(compareCodeUnits);\n\t\tconst memoKey = JSON.stringify([assetId, visitedCyclicNodes]);\n\t\tconst cached = countMemo.get(memoKey);\n\t\tif (cached !== void 0) return cached;\n\t\tif (visiting.has(assetId)) return 0n;\n\t\tconst nextVisiting = new Set(visiting).add(assetId);\n\t\tlet total = 0n;\n\t\tconst nextIds = [...new Set((referencesByAsset[assetId] ?? []).map((ref) => ref.assetId))].sort(compareCodeUnits);\n\t\tfor (const next of nextIds) total += count(next, nextVisiting);\n\t\tcountMemo.set(memoKey, total);\n\t\treturn total;\n\t};\n\tconst total = count(root, /* @__PURE__ */ new Set());\n\tconst paths = [];\n\tconst collect = (assetId, path, visiting) => {\n\t\tif (paths.length >= MAX_PATHS) return;\n\t\tif (assetId === target) {\n\t\t\tpaths.push(path);\n\t\t\treturn;\n\t\t}\n\t\tif (visiting.has(assetId)) return;\n\t\tconst nextVisiting = new Set(visiting).add(assetId);\n\t\tconst nextIds = [...new Set((referencesByAsset[assetId] ?? []).map((ref) => ref.assetId))].sort(compareCodeUnits);\n\t\tfor (const next of nextIds) {\n\t\t\tif (count(next, nextVisiting) > 0n) collect(next, [...path, next], nextVisiting);\n\t\t\tif (paths.length >= MAX_PATHS) break;\n\t\t}\n\t};\n\tif (total > 0n) collect(root, [root], /* @__PURE__ */ new Set());\n\treturn {\n\t\tpaths,\n\t\tcount: total\n\t};\n}\nfunction usageSnapshotRevision(parts) {\n\treturn createHash(\"sha256\").update(parts.join(\"\\0\")).digest(\"hex\");\n}\nasync function imageFingerprint(filePath, hashSize) {\n\tconst width = hashSize + 1;\n\tconst pixels = await sharp(filePath).rotate().trim({\n\t\tbackground: {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\talpha: 0\n\t\t},\n\t\tthreshold: 0\n\t}).resize({\n\t\twidth,\n\t\theight: hashSize,\n\t\tfit: \"fill\"\n\t}).ensureAlpha().toColourspace(\"srgb\").raw().toBuffer();\n\tconst hash = new Uint8Array(Math.ceil(hashSize * hashSize / 8));\n\tconst alphaHash = new Uint8Array(hash.length);\n\tconst colorTotals = [\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tlet alphaTotal = 0;\n\tlet bit = 0;\n\tfor (let row = 0; row < hashSize; row++) for (let column = 0; column < hashSize; column++) {\n\t\tconst leftOffset = (row * width + column) * 4;\n\t\tconst rightOffset = leftOffset + 4;\n\t\tconst leftAlpha = pixels[leftOffset + 3] / 255;\n\t\tconst rightAlpha = pixels[rightOffset + 3] / 255;\n\t\tif (visibleLuminance(pixels, leftOffset, leftAlpha) < visibleLuminance(pixels, rightOffset, rightAlpha)) hash[bit >> 3] |= 1 << 7 - (bit & 7);\n\t\tif (leftAlpha < rightAlpha) alphaHash[bit >> 3] |= 1 << 7 - (bit & 7);\n\t\tfor (let channel = 0; channel < 3; channel++) colorTotals[channel] += pixels[leftOffset + channel] * leftAlpha;\n\t\talphaTotal += leftAlpha;\n\t\tbit += 1;\n\t}\n\tconst pixelCount = hashSize * hashSize;\n\treturn {\n\t\thash,\n\t\talphaHash,\n\t\tmeanColor: colorTotals.map((total) => alphaTotal === 0 ? 0 : total / alphaTotal),\n\t\tmeanAlpha: alphaTotal / pixelCount\n\t};\n}\nfunction visibleLuminance(pixels, offset, alpha) {\n\treturn (pixels[offset] * .2126 + pixels[offset + 1] * .7152 + pixels[offset + 2] * .0722) * alpha + 127 * (1 - alpha);\n}\nfunction colorDistance(left, right) {\n\treturn Math.hypot(left[0] - right[0], left[1] - right[1], left[2] - right[2]);\n}\n/** Count differing bits between two equally sized perceptual hashes. */\nfunction hammingDistance(left, right) {\n\tif (left.length !== right.length) throw new Error(\"Image hashes must have the same length.\");\n\tlet distance = 0;\n\tfor (let index = 0; index < left.length; index++) {\n\t\tlet value = left[index] ^ right[index];\n\t\twhile (value !== 0) {\n\t\t\tvalue &= value - 1;\n\t\t\tdistance += 1;\n\t\t}\n\t}\n\treturn distance;\n}\n/**\n* Stateful so the editor can reuse fingerprints by content hash between state\n* snapshots. Unreadable raws are omitted: duplicate detection is advisory and\n* must not hide the editor or replace the pipeline's canonical diagnostics.\n*/\nvar ImageDuplicateDetector = class {\n\t#fingerprints = /* @__PURE__ */ new Map();\n\tasync find(library, rawDir) {\n\t\tconst images = Object.entries(library.assets).filter(([, record]) => record.type === \"image\").sort(([left], [right]) => compareCodeUnits(left, right));\n\t\tconst activeHashes = new Set(images.map(([, record]) => record.rawHash));\n\t\tfor (const hash of this.#fingerprints.keys()) if (!activeHashes.has(hash)) this.#fingerprints.delete(hash);\n\t\tconst readable = [];\n\t\tfor (const [id, record] of images) {\n\t\t\tlet fingerprint = this.#fingerprints.get(record.rawHash);\n\t\t\tif (!fingerprint) {\n\t\t\t\tfingerprint = imageFingerprint(join(rawDir, record.raw), 8);\n\t\t\t\tthis.#fingerprints.set(record.rawHash, fingerprint);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\treadable.push({\n\t\t\t\t\tid,\n\t\t\t\t\tfingerprint: await fingerprint\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\tthis.#fingerprints.delete(record.rawHash);\n\t\t\t}\n\t\t}\n\t\tconst duplicates = /* @__PURE__ */ new Map();\n\t\tfor (let leftIndex = 0; leftIndex < readable.length; leftIndex++) for (let rightIndex = leftIndex + 1; rightIndex < readable.length; rightIndex++) {\n\t\t\tconst left = readable[leftIndex];\n\t\t\tconst right = readable[rightIndex];\n\t\t\tif (hammingDistance(left.fingerprint.hash, right.fingerprint.hash) > 5 || hammingDistance(left.fingerprint.alphaHash, right.fingerprint.alphaHash) > 5 || Math.abs(left.fingerprint.meanAlpha - right.fingerprint.meanAlpha) > .125 || colorDistance(left.fingerprint.meanColor, right.fingerprint.meanColor) > 32) continue;\n\t\t\tconst leftDuplicates = duplicates.get(left.id) ?? [];\n\t\t\tleftDuplicates.push(right.id);\n\t\t\tduplicates.set(left.id, leftDuplicates);\n\t\t\tconst rightDuplicates = duplicates.get(right.id) ?? [];\n\t\t\trightDuplicates.push(left.id);\n\t\t\tduplicates.set(right.id, rightDuplicates);\n\t\t}\n\t\treturn duplicates;\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}\nfunction figmaSlicePixelRatio(raw, type) {\n\tif (type !== \"slice\" || raw.importSource?.importer !== \"figma\") return void 0;\n\treturn validateFigmaSourceParameters(raw.importSource.parameters).scale;\n}\n/**\n* The Fundus tag of a Figma tag-mode import source, else null. In tag mode the\n* tag IS the asset id, so this is the single seam that ties provenance to\n* identity — used to assert id equality on import/reimport and to forbid\n* renaming a tag-referenced asset. Only Figma sources are inspected.\n*/\nfunction figmaTagOf(importSource) {\n\tif (importSource?.importer !== \"figma\") return null;\n\tconst params = validateFigmaSourceParameters(importSource.parameters);\n\treturn params.mode === \"tag\" ? params.fundusTag : null;\n}\nvar FundusOperations = class {\n\t#config;\n\t#registry;\n\t#store;\n\t#importers;\n\t#usageAnalyzer;\n\t#duplicateDetector = new ImageDuplicateDetector();\n\t#operationQueue = Promise.resolve();\n\t#pipelineQueue = Promise.resolve();\n\tconstructor(config, registry = serverPluginsByType, importerRegistry = serverImporters) {\n\t\tthis.#config = config;\n\t\tthis.#registry = registry;\n\t\tthis.#store = new LibraryStore(config, registry);\n\t\tthis.#importers = importerRegistry;\n\t\tthis.#usageAnalyzer = config.usage ? new FundusUsageAnalyzer(config.usage) : null;\n\t}\n\tget config() {\n\t\treturn this.#config;\n\t}\n\tget store() {\n\t\treturn this.#store;\n\t}\n\tget usageAvailable() {\n\t\treturn this.#usageAnalyzer !== null;\n\t}\n\tasync analyzeUsage(options = {}) {\n\t\tconst analyzer = this.#usageAnalyzer;\n\t\tif (!analyzer) throw new Error(\"Usage analysis is not configured.\");\n\t\tfor (let attempt = 0; attempt < 2; attempt++) {\n\t\t\tconst snapshot = await this.#enqueueOperation(() => this.#usageSnapshot());\n\t\t\tconst report = await analyzer.analyze(snapshot, {\n\t\t\t\t...options,\n\t\t\t\tforceFresh: options.forceFresh === true || attempt > 0\n\t\t\t});\n\t\t\tif ((await this.#enqueueOperation(() => this.#usageSnapshot())).revision === snapshot.revision) return report;\n\t\t}\n\t\tconst current = await this.#enqueueOperation(() => this.#usageSnapshot());\n\t\tif (options.assetId && !Object.hasOwn(current.library.assets, options.assetId)) throw new Error(`Unknown asset \"${options.assetId}\".`);\n\t\treturn analyzer.stale(current, options.assetId);\n\t}\n\tasync openUsageLocation(token) {\n\t\tif (!this.#usageAnalyzer) throw new Error(\"Usage analysis is not configured.\");\n\t\tawait this.#usageAnalyzer.open(token);\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\tasync #usageSnapshot() {\n\t\tawait this.#pipelineQueue;\n\t\tconst library = structuredClone(await this.#store.read());\n\t\tconst referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));\n\t\tconst modules = /* @__PURE__ */ new Map();\n\t\tconst roots = [];\n\t\tfor (const manifest of Object.keys(library.manifests).sort(compareCodeUnits)) {\n\t\t\tconst rootAssetIds = Object.keys(library.assets).filter((assetId) => library.assets[assetId].manifests.includes(manifest)).sort(compareCodeUnits);\n\t\t\tif (rootAssetIds.length === 0) continue;\n\t\t\tconst path = join(this.#config.manifestsDir, manifestModuleFileName(manifest));\n\t\t\tlet content;\n\t\t\ttry {\n\t\t\t\tcontent = await readFile(path, \"utf8\");\n\t\t\t} catch (cause) {\n\t\t\t\tif (cause.code !== \"ENOENT\") throw cause;\n\t\t\t\tcontent = null;\n\t\t\t}\n\t\t\tmodules.set(manifest, {\n\t\t\t\tcontent,\n\t\t\t\tpath\n\t\t\t});\n\t\t\tfor (const assetId of rootAssetIds) {\n\t\t\t\tconst declaration = content === null ? null : locateGeneratedAssetDeclaration(path, content, assetId);\n\t\t\t\troots.push({\n\t\t\t\t\tmanifest,\n\t\t\t\t\tassetId,\n\t\t\t\t\tdeclaration,\n\t\t\t\t\t...declaration ? {} : { declarationError: content === null ? `Generated manifest module is missing: ${path}.` : `Generated declaration ${manifest}.${assetId} was not found in ${path}.` }\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tconst revisionParts = [serializeLibrary(library)];\n\t\tfor (const manifest of [...modules.keys()].sort(compareCodeUnits)) {\n\t\t\tconst module = modules.get(manifest);\n\t\t\trevisionParts.push(manifest, module.path, module.content ?? \"<missing>\");\n\t\t}\n\t\treturn {\n\t\t\trevision: usageSnapshotRevision(revisionParts),\n\t\t\tlibrary,\n\t\t\treferencesByAsset,\n\t\t\troots\n\t\t};\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\tdelete record.importSource;\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\tdelete candidate.assets[edited.assetId].importSource;\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(async () => {\n\t\t\tconst importer = this.#importers.require(\"file\");\n\t\t\tconst input = importer.validateInput({\n\t\t\t\tfileName: options.fileName,\n\t\t\t\tbytes: options.bytes\n\t\t\t});\n\t\t\tconst raw = await importer.importRaw(input, {\n\t\t\t\tconfig: this.#config,\n\t\t\t\tfetch: globalThis.fetch\n\t\t\t});\n\t\t\treturn this.#createImportedAsset(raw, options);\n\t\t});\n\t}\n\t/** Materialize a source outside the operation queue, then atomically create the asset. */\n\tasync importAsset(options) {\n\t\tconst preflight = await this.#enqueueOperation(async () => {\n\t\t\tconst library = await this.#store.read();\n\t\t\tthis.#validateImportTarget(options, library);\n\t\t\tif (Object.hasOwn(library.assets, options.id)) throw new SourceImportError(\"invalid-input\", `An asset with id \"${options.id}\" already exists.`);\n\t\t\tconst importer = this.#importers.require(options.importer);\n\t\t\treturn {\n\t\t\t\timporter,\n\t\t\t\tinput: importer.validateInput(options.input)\n\t\t\t};\n\t\t});\n\t\tconst raw = await preflight.importer.importRaw(preflight.input, {\n\t\t\tconfig: this.#config,\n\t\t\tfetch: globalThis.fetch\n\t\t});\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tthis.#validateImportedRaw(raw, options.importer);\n\t\t\tconst tag = figmaTagOf(raw.importSource);\n\t\t\tif (tag !== null && tag !== options.id) throw new SourceImportError(\"invalid-input\", `A Figma tag import must use its tag as the asset id: the tag is \"${tag}\", not \"${options.id}\".`);\n\t\t\treturn this.#createImportedAsset(raw, options);\n\t\t});\n\t}\n\t/** Re-materialize a persisted source with record and on-disk CAS protection. */\n\tasync reimportAsset(id, input) {\n\t\tconst snapshot = await this.#enqueueOperation(async () => {\n\t\t\tconst library = await this.#store.read();\n\t\t\tthis.#requireAsset(library, id);\n\t\t\tconst record = library.assets[id];\n\t\t\tif (!record.importSource) throw new SourceImportError(\"invalid-input\", `Asset \"${id}\" has no repeatable import source.`);\n\t\t\tconst resolved = this.#importers.requireReimport(record.importSource);\n\t\t\ttry {\n\t\t\t\tawait verifyStableRawFile(join(this.#config.rawDir, record.raw), record.rawHash);\n\t\t\t} catch {\n\t\t\t\tthrow new SourceImportError(\"stale-import\", \"The local raw file changed. Apply or discard that edit before re-importing.\");\n\t\t\t}\n\t\t\treturn {\n\t\t\t\timporter: resolved.importer,\n\t\t\t\tparameters: resolved.parameters,\n\t\t\t\tinput: input === void 0 ? void 0 : resolved.importer.validateInput(input),\n\t\t\t\texpected: {\n\t\t\t\t\traw: record.raw,\n\t\t\t\t\trawHash: record.rawHash,\n\t\t\t\t\ttype: record.type,\n\t\t\t\t\tcanonicalSource: canonicalizeParameters(record.importSource)\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t\tconst context = {\n\t\t\tconfig: this.#config,\n\t\t\tfetch: globalThis.fetch\n\t\t};\n\t\tconst raw = snapshot.input === void 0 ? await snapshot.importer.reimportRaw(snapshot.parameters, context) : await snapshot.importer.importRaw(snapshot.input, context);\n\t\tif (snapshot.input !== void 0 && !raw.importSource) throw new SourceImportError(\"invalid-response\", \"The source importer did not return provenance for the updated source.\");\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tthis.#validateImportedRaw(raw, snapshot.importer.kind);\n\t\t\tconst tag = figmaTagOf(raw.importSource);\n\t\t\tif (tag !== null && tag !== id) throw new SourceImportError(\"invalid-input\", `A Figma tag reimport may not retarget asset \"${id}\" to a different tag \"${tag}\".`);\n\t\t\tconst plugin = serverPluginForType(snapshot.expected.type, this.#registry);\n\t\t\tif (!plugin.descriptor.accepts.includes(raw.extension)) throw new SourceImportError(\"invalid-response\", `The ${snapshot.expected.type} type does not accept \".${raw.extension}\" files.`);\n\t\t\tconst pixelRatio = snapshot.input === void 0 ? void 0 : figmaSlicePixelRatio(raw, snapshot.expected.type);\n\t\t\tlet library;\n\t\t\ttry {\n\t\t\t\tlibrary = await this.#store.replaceRawFromImportSource(id, raw.bytes, snapshot.expected, raw.importSource, pixelRatio === void 0 ? void 0 : (parameters) => plugin.descriptor.validateParameters(mergeParameterPatch(parameters, { pixelRatio })));\n\t\t\t} catch (cause) {\n\t\t\t\tif (cause instanceof Error && cause.message === \"stale-import\") throw new SourceImportError(\"stale-import\", \"The asset or local raw file changed while Figma was exporting. Nothing was replaced.\");\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t\treturn this.#afterMutation(library);\n\t\t});\n\t}\n\t/** Materialize a new source, then atomically replace an existing asset's raw file. */\n\tasync replaceRawFromSource(id, options) {\n\t\tconst preflight = await this.#enqueueOperation(async () => {\n\t\t\tif (typeof options.importer !== \"string\") throw new SourceImportError(\"invalid-input\", \"Source replacement requires an importer string.\");\n\t\t\tconst library = await this.#store.read();\n\t\t\tthis.#requireAsset(library, id);\n\t\t\tconst record = library.assets[id];\n\t\t\ttry {\n\t\t\t\tawait verifyStableRawFile(join(this.#config.rawDir, record.raw), record.rawHash);\n\t\t\t} catch {\n\t\t\t\tthrow new SourceImportError(\"stale-import\", \"The local raw file changed. Apply or discard that edit before replacing it.\");\n\t\t\t}\n\t\t\tconst importer = this.#importers.require(options.importer);\n\t\t\tconst expected = {\n\t\t\t\traw: record.raw,\n\t\t\t\trawHash: record.rawHash,\n\t\t\t\ttype: record.type,\n\t\t\t\tcanonicalSource: record.importSource ? canonicalizeParameters(record.importSource) : null\n\t\t\t};\n\t\t\treturn {\n\t\t\t\timporter,\n\t\t\t\tinput: importer.validateInput(options.input),\n\t\t\t\texpected\n\t\t\t};\n\t\t});\n\t\tconst raw = await preflight.importer.importRaw(preflight.input, {\n\t\t\tconfig: this.#config,\n\t\t\tfetch: globalThis.fetch\n\t\t});\n\t\tif (!raw.importSource) throw new SourceImportError(\"invalid-response\", \"The source importer did not return provenance for the replacement.\");\n\t\tconst importSource = raw.importSource;\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tthis.#validateImportedRaw(raw, preflight.importer.kind);\n\t\t\tconst tag = figmaTagOf(importSource);\n\t\t\tif (tag !== null && tag !== id) throw new SourceImportError(\"invalid-input\", `A Figma tag replacement must use its own tag as the asset id: the tag is \"${tag}\", not \"${id}\".`);\n\t\t\tconst plugin = serverPluginForType(preflight.expected.type, this.#registry);\n\t\t\tif (!plugin.descriptor.accepts.includes(raw.extension)) throw new SourceImportError(\"invalid-response\", `The ${preflight.expected.type} type does not accept \".${raw.extension}\" files.`);\n\t\t\tconst previousName = rawFileNameOfPath(preflight.expected.raw);\n\t\t\tconst dot = previousName.lastIndexOf(\".\");\n\t\t\tconst stem = dot > 0 ? previousName.slice(0, dot) : previousName;\n\t\t\tconst pixelRatio = figmaSlicePixelRatio(raw, preflight.expected.type);\n\t\t\ttry {\n\t\t\t\tconst library = await this.#store.replaceRawFileFromSource(id, {\n\t\t\t\t\tfileName: `${stem}.${raw.extension}`,\n\t\t\t\t\tbytes: raw.bytes,\n\t\t\t\t\timportSource,\n\t\t\t\t\texpected: preflight.expected,\n\t\t\t\t\tupdateParameters: pixelRatio === void 0 ? void 0 : (parameters) => plugin.descriptor.validateParameters(mergeParameterPatch(parameters, { pixelRatio }))\n\t\t\t\t});\n\t\t\t\treturn this.#afterMutation(library);\n\t\t\t} catch (cause) {\n\t\t\t\tif (cause instanceof Error && cause.message === \"stale-import\") throw new SourceImportError(\"stale-import\", \"The asset or local raw file changed while the source was exporting. Nothing was replaced.\");\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* Edit a Figma tag asset's tag, fileKey, and/or scale in place. Because in tag\n\t* mode the tag IS the asset id, changing the tag renames the asset (moves the\n\t* library key); changing only fileKey/scale is an in-place re-point. Mirrors\n\t* `reimportAsset`'s three phases: preflight in the queue, materialize outside\n\t* it, then commit atomically through `store.repointTagAsset`.\n\t*/\n\tasync retagFigmaAsset(id, input) {\n\t\tconst snapshot = await this.#enqueueOperation(async () => {\n\t\t\tconst library = await this.#store.read();\n\t\t\tthis.#requireAsset(library, id);\n\t\t\tconst record = library.assets[id];\n\t\t\tconst currentTag = figmaTagOf(record.importSource);\n\t\t\tif (currentTag === null || !record.importSource) throw new SourceImportError(\"invalid-input\", `Asset \"${id}\" is not a Figma tag import.`);\n\t\t\tconst current = validateFigmaSourceParameters(record.importSource.parameters);\n\t\t\tconst newTag = input.tag ?? currentTag;\n\t\t\tconst fileKey = input.fileKey ?? current.fileKey;\n\t\t\tconst scale = input.scale ?? current.scale;\n\t\t\tif (newTag !== id) {\n\t\t\t\tconst problem = assetIdError(newTag);\n\t\t\t\tif (problem) throw new SourceImportError(\"invalid-input\", problem);\n\t\t\t\tif (Object.hasOwn(library.assets, newTag)) throw new SourceImportError(\"invalid-input\", `An asset with id \"${newTag}\" already exists.`);\n\t\t\t\tconst candidate = structuredClone(library);\n\t\t\t\tcandidate.assets[newTag] = candidate.assets[id];\n\t\t\t\tdelete candidate.assets[id];\n\t\t\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait verifyStableRawFile(join(this.#config.rawDir, record.raw), record.rawHash);\n\t\t\t} catch {\n\t\t\t\tthrow new SourceImportError(\"stale-import\", \"The local raw file changed. Apply or discard that edit before retagging.\");\n\t\t\t}\n\t\t\tconst importer = this.#importers.require(\"figma\");\n\t\t\treturn {\n\t\t\t\timporter,\n\t\t\t\tinput: importer.validateInput({\n\t\t\t\t\tmode: \"tag\",\n\t\t\t\t\ttag: newTag,\n\t\t\t\t\tfileKey,\n\t\t\t\t\tscale,\n\t\t\t\t\tformat: \"png\"\n\t\t\t\t}),\n\t\t\t\tnewTag,\n\t\t\t\texpected: {\n\t\t\t\t\traw: record.raw,\n\t\t\t\t\trawHash: record.rawHash,\n\t\t\t\t\ttype: record.type,\n\t\t\t\t\tcanonicalSource: canonicalizeParameters(record.importSource)\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t\tconst raw = await snapshot.importer.importRaw(snapshot.input, {\n\t\t\tconfig: this.#config,\n\t\t\tfetch: globalThis.fetch\n\t\t});\n\t\tif (!raw.importSource) throw new SourceImportError(\"invalid-response\", \"The Figma importer did not return provenance for the retagged source.\");\n\t\tconst importSource = raw.importSource;\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tthis.#validateImportedRaw(raw, snapshot.importer.kind);\n\t\t\tif (figmaTagOf(importSource) !== snapshot.newTag) throw new SourceImportError(\"invalid-response\", `The Figma importer resolved a different tag than \"${snapshot.newTag}\".`);\n\t\t\tconst plugin = serverPluginForType(snapshot.expected.type, this.#registry);\n\t\t\tif (!plugin.descriptor.accepts.includes(raw.extension)) throw new SourceImportError(\"invalid-response\", `The ${snapshot.expected.type} type does not accept \".${raw.extension}\" files.`);\n\t\t\tconst pixelRatio = figmaSlicePixelRatio(raw, snapshot.expected.type);\n\t\t\tlet library;\n\t\t\ttry {\n\t\t\t\tlibrary = await this.#store.repointTagAsset(id, snapshot.newTag, raw.bytes, snapshot.expected, importSource, pixelRatio === void 0 ? void 0 : (parameters) => plugin.descriptor.validateParameters(mergeParameterPatch(parameters, { pixelRatio })));\n\t\t\t} catch (cause) {\n\t\t\t\tif (cause instanceof Error && cause.message === \"stale-import\") throw new SourceImportError(\"stale-import\", \"The asset or local raw file changed while Figma was exporting. Nothing was changed.\");\n\t\t\t\tthrow cause;\n\t\t\t}\n\t\t\treturn this.#afterMutation(library);\n\t\t});\n\t}\n\tasync #createImportedAsset(raw, options) {\n\t\tthis.#validateImportedRaw(raw);\n\t\tconst fileName = raw.suggestedFileName ?? `${options.id}.${raw.extension}`;\n\t\tconst plugin = serverPluginForType(options.type, this.#registry);\n\t\tconst library = await this.#store.createAsset({\n\t\t\tfileName,\n\t\t\tbytes: raw.bytes,\n\t\t\ttype: options.type,\n\t\t\tid: options.id,\n\t\t\tfolder: options.folder,\n\t\t\tmanifests: options.manifests,\n\t\t\timportSource: raw.importSource\n\t\t}, async ({ rawPath, rawFileName, parameters }) => {\n\t\t\tlet next = parameters;\n\t\t\tif (plugin.seedIngestParameters) {\n\t\t\t\tconst seeded = await plugin.seedIngestParameters({\n\t\t\t\t\trawPath,\n\t\t\t\t\trawFileName,\n\t\t\t\t\tparameters: next,\n\t\t\t\t\tconfig: this.#config\n\t\t\t\t});\n\t\t\t\tif (seeded !== void 0) next = seeded;\n\t\t\t}\n\t\t\tconst pixelRatio = figmaSlicePixelRatio(raw, options.type);\n\t\t\tif (pixelRatio !== void 0) next = mergeParameterPatch(next, { pixelRatio });\n\t\t\tif (options.parametersPatch !== void 0) next = mergeParameterPatch(next, options.parametersPatch);\n\t\t\treturn plugin.descriptor.validateParameters(next);\n\t\t});\n\t\treturn this.#afterMutation(library);\n\t}\n\t#validateImportTarget(options, library) {\n\t\tif (typeof options.importer !== \"string\" || typeof options.id !== \"string\" || typeof options.type !== \"string\") throw new SourceImportError(\"invalid-input\", \"Import requires importer, type, and id strings.\");\n\t\tconst problem = assetIdError(options.id);\n\t\tif (problem) throw new SourceImportError(\"invalid-input\", problem);\n\t\tserverPluginForType(options.type, this.#registry);\n\t\tif (options.folder !== void 0 && typeof options.folder !== \"string\") throw new SourceImportError(\"invalid-input\", \"Import folder must be a string.\");\n\t\tconst folder = normalizeFolderPath(options.folder ?? \"\");\n\t\tif (folder !== \"\" && !library.folders.includes(folder)) throw new SourceImportError(\"invalid-input\", `Unknown folder \"${folder}\".`);\n\t\tif (options.manifests !== void 0 && (!Array.isArray(options.manifests) || options.manifests.some((value) => typeof value !== \"string\"))) throw new SourceImportError(\"invalid-input\", \"Import manifests must be an array of strings.\");\n\t\tfor (const manifest of new Set(options.manifests ?? [])) if (!Object.hasOwn(library.manifests, manifest)) throw new SourceImportError(\"invalid-input\", `Unknown manifest \"${manifest}\".`);\n\t}\n\t#validateImportedRaw(raw, importerKind) {\n\t\tif (!(raw.bytes instanceof Uint8Array) || !/^[a-z0-9]+$/.test(raw.extension)) throw new SourceImportError(\"invalid-response\", \"The source importer returned invalid raw data.\");\n\t\tif (raw.importSource) {\n\t\t\tif (importerKind && raw.importSource.importer !== importerKind) throw new SourceImportError(\"invalid-response\", \"The source importer returned mismatched provenance.\");\n\t\t\tthis.#importers.require(raw.importSource.importer).validateSourceParameters(raw.importSource.parameters);\n\t\t}\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 (figmaTagOf(library.assets[id].importSource) !== null) throw new SourceImportError(\"invalid-input\", \"This asset is referenced by a Figma tag and cannot be renamed; re-import with a new tag instead.\");\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 [gitBranch, changedGitAssets] = await Promise.all([currentGitBranch(this.#config.projectRoot), gitAssetChanges(this.#config.projectRoot, this.#config.library, library)]);\n\t\tconst referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));\n\t\tconst duplicatesByAsset = await this.#duplicateDetector.find(library, this.#config.rawDir);\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 requiredByAsset = /* @__PURE__ */ new Map();\n\t\tfor (const dependency of this.#config.dependencies) requiredByAsset.set(dependency.id, [...dependency.sources]);\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\tif (record.importSource && !this.#importers.has(record.importSource.importer)) warnings.push(`Importer \"${record.importSource.importer}\" is unavailable; the local raw file remains usable.`);\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\tgitStatus: changedGitAssets.get(assetId) ?? null,\n\t\t\t\timportSource: record.importSource,\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\tduplicateIds: duplicatesByAsset.get(assetId) ?? [],\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\trequiredBy: requiredByAsset.get(assetId) ?? []\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\tconst presetCapabilities = {};\n\t\tfor (const [type, plugin] of Object.entries(this.#registry)) {\n\t\t\tconst presets = plugin.presets(this.#config);\n\t\t\tconst names = Object.keys(presets).sort();\n\t\t\tpresetNames[type] = names;\n\t\t\tpresetCapabilities[type] = Object.fromEntries(names.map((name) => [name, plugin.presetCapabilities?.(presets[name]) ?? {}]));\n\t\t}\n\t\tconst rawIngestionQueue = this.#buildRawIngestionQueue(library, classification);\n\t\treturn {\n\t\t\tgitBranch,\n\t\t\tlibrary,\n\t\t\tassets,\n\t\t\timportDefaults: { figma: {\n\t\t\t\tscale: this.#config.import.figma.defaults.scale,\n\t\t\t\t...this.#config.import.figma.defaultFileKey !== void 0 ? { defaultFileKey: this.#config.import.figma.defaultFileKey } : {}\n\t\t\t} },\n\t\t\tissues,\n\t\t\tpresetNames,\n\t\t\tpresetCapabilities,\n\t\t\tmanifestMemberships,\n\t\t\tmanifestDeliveredBytes,\n\t\t\trawIngestionQueue\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...validateDependencies(this.#config.dependencies, library),\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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"}