fundus 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -2
- package/build/client/_app/immutable/assets/2.B5tQm8hR.css +1 -0
- package/build/client/_app/immutable/assets/2.B5tQm8hR.css.br +0 -0
- package/build/client/_app/immutable/assets/2.B5tQm8hR.css.gz +0 -0
- package/build/client/_app/immutable/assets/{3.ChSpCG-T.css → 3.CmXD8k9d.css} +1 -1
- package/build/client/_app/immutable/assets/3.CmXD8k9d.css.br +0 -0
- package/build/client/_app/immutable/assets/3.CmXD8k9d.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BPiGyn-T.js +1 -0
- package/build/client/_app/immutable/chunks/BPiGyn-T.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPiGyn-T.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BPJdVAz5.js → BoEHtxM8.js} +1 -1
- package/build/client/_app/immutable/chunks/BoEHtxM8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BoEHtxM8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C-T1_s5P.js +1 -0
- package/build/client/_app/immutable/chunks/C-T1_s5P.js.br +0 -0
- package/build/client/_app/immutable/chunks/C-T1_s5P.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CLcR3DTB.js → CeJsL6hj.js} +1 -1
- package/build/client/_app/immutable/chunks/CeJsL6hj.js.br +0 -0
- package/build/client/_app/immutable/chunks/CeJsL6hj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CLZr1L0m.js → Cq4Yaq35.js} +2 -2
- package/build/client/_app/immutable/chunks/Cq4Yaq35.js.br +0 -0
- package/build/client/_app/immutable/chunks/{CLZr1L0m.js.gz → Cq4Yaq35.js.gz} +0 -0
- package/build/client/_app/immutable/chunks/D5sQSsUv.js +1 -0
- package/build/client/_app/immutable/chunks/D5sQSsUv.js.br +0 -0
- package/build/client/_app/immutable/chunks/D5sQSsUv.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.xrZU0FIS.js → app.BQ4TfPHG.js} +2 -2
- package/build/client/_app/immutable/entry/app.BQ4TfPHG.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BQ4TfPHG.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.COP9tIRH.js +1 -0
- package/build/client/_app/immutable/entry/start.COP9tIRH.js.br +0 -0
- package/build/client/_app/immutable/entry/start.COP9tIRH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CftchwYV.js +2 -0
- package/build/client/_app/immutable/nodes/0.CftchwYV.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CftchwYV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.0KLmHZC4.js → 1.C8DOqctV.js} +1 -1
- package/build/client/_app/immutable/nodes/1.C8DOqctV.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.C8DOqctV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BR8OVsS9.js +3 -0
- package/build/client/_app/immutable/nodes/2.BR8OVsS9.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BR8OVsS9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BO5hcxIH.js +1 -0
- package/build/client/_app/immutable/nodes/3.BO5hcxIH.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BO5hcxIH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.CsuRmAsC.js → 4.DTaH-k-c.js} +1 -1
- package/build/client/_app/immutable/nodes/4.DTaH-k-c.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.DTaH-k-c.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +7 -7
- package/build/index.js +7 -7
- package/build/server/chunks/chunks/asset-id.js-CFsW8jeL.js +48 -0
- package/build/server/chunks/chunks/asset-id.js-CFsW8jeL.js.map +1 -0
- package/build/server/chunks/chunks/{context.js-B77ZAVLi.js → context.js-CG2t-ufq.js} +568 -25
- package/build/server/chunks/chunks/context.js-CG2t-ufq.js.map +1 -0
- package/build/server/chunks/chunks/{library-store.js-DJ-JRE-g.js → contract.js-sHny3b-s.js} +133 -359
- package/build/server/chunks/chunks/contract.js-sHny3b-s.js.map +1 -0
- package/build/server/chunks/chunks/{core.js-EA_ysb1J.js → core.js-Clg1CHb6.js} +2 -48
- package/build/server/chunks/chunks/core.js-Clg1CHb6.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-ScnpVC8o.js → exports.js-rOfFZumP.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-ScnpVC8o.js.map → exports.js-rOfFZumP.js.map} +1 -1
- package/build/server/chunks/chunks/{http.js-DyoR9XRI.js → http.js--6sDZFfm.js} +35 -3
- package/build/server/chunks/chunks/http.js--6sDZFfm.js.map +1 -0
- package/build/server/chunks/chunks/{internal.js-D_k3d8Qh.js → internal.js-DnveDsYn.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-D_k3d8Qh.js.map → internal.js-DnveDsYn.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/raw-reconciliation.js-DOFtjkgu.js +343 -0
- package/build/server/chunks/chunks/raw-reconciliation.js-DOFtjkgu.js.map +1 -0
- package/build/server/chunks/chunks/raw-reconciliation2.js-DFwky2ou.js +11 -0
- package/build/server/chunks/chunks/raw-reconciliation2.js-DFwky2ou.js.map +1 -0
- package/build/server/chunks/chunks/{shared.js-MLULcRRJ.js → shared.js-DtvIbMLj.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-MLULcRRJ.js.map → shared.js-DtvIbMLj.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-D64X9Sx8.js → utils.js-bP1j9RdM.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-D64X9Sx8.js.map → utils.js-bP1j9RdM.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-H4Pq1KAE.js → _server.ts.js-CkSErIdC.js} +7 -5
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-H4Pq1KAE.js.map → _server.ts.js-CkSErIdC.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-BI3KHSfE.js → _server.ts.js-BfdsBPWo.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-BI3KHSfE.js.map → _server.ts.js-BfdsBPWo.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BlNYUbXX.js → _server.ts.js-D0aKDq87.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-BlNYUbXX.js.map → _server.ts.js-D0aKDq87.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/_server.ts.js-DsX_m2gc.js +31 -0
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/_server.ts.js-DsX_m2gc.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-j-_N540j.js → _server.ts.js-nfThjRxs.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-j-_N540j.js.map → _server.ts.js-nfThjRxs.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-BHKobzAg.js → _server.ts.js-CseHmsYB.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-BHKobzAg.js.map → _server.ts.js-CseHmsYB.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BFKjIOCv.js → _server.ts.js-CHiICsyC.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BFKjIOCv.js.map → _server.ts.js-CHiICsyC.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BxZeVw8y.js → _server.ts.js-Dgf46K5u.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BxZeVw8y.js.map → _server.ts.js-Dgf46K5u.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CO36U_CT.js → _server.ts.js-DwQJUZFa.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CO36U_CT.js.map → _server.ts.js-DwQJUZFa.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/imports/_server.ts.js-BnKS8nVF.js +37 -0
- package/build/server/chunks/entries/endpoints/api/imports/_server.ts.js-BnKS8nVF.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-CBlg1Bkl.js → _server.ts.js-BrDbLcyO.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-CBlg1Bkl.js.map → _server.ts.js-BrDbLcyO.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-DcGLCjIs.js → _server.ts.js-DIUiQuyd.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-DcGLCjIs.js.map → _server.ts.js-DIUiQuyd.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-AqhtjOiL.js → _server.ts.js-BrReStaf.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-AqhtjOiL.js.map → _server.ts.js-BrReStaf.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CSa6-DcU.js → _server.ts.js-B31iGwJ-.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CSa6-DcU.js.map → _server.ts.js-B31iGwJ-.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DnzZUoAo.js → _server.ts.js-DeZQFNdj.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-DnzZUoAo.js.map → _server.ts.js-DeZQFNdj.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-B0KMprKq.js → _server.ts.js-DhDhUU7V.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-B0KMprKq.js.map → _server.ts.js-DhDhUU7V.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-Dhj5O9Lv.js → _server.ts.js-DGkPIMcq.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/reveal/_server.ts.js-DGkPIMcq.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-B1N9o1Ne.js → _server.ts.js-BTQgWDH1.js} +11 -6
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-B1N9o1Ne.js.map → _server.ts.js-BTQgWDH1.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-B6HbnRqq.js → _server.ts.js-DB3i4juR.js} +7 -5
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-B6HbnRqq.js.map → _server.ts.js-DB3i4juR.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-7wzPyG9v.js → _server.ts.js-kmc-gejQ.js} +11 -6
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-7wzPyG9v.js.map → _server.ts.js-kmc-gejQ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BWztxYge.js → _server.ts.js-B8EE1DD9.js} +11 -6
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BWztxYge.js.map → _server.ts.js-B8EE1DD9.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-CVKLksJ1.js → hooks.server.js-DbBA5yYQ.js} +10 -5
- package/build/server/chunks/entries/{hooks.server.js-CVKLksJ1.js.map → hooks.server.js-DbBA5yYQ.js.map} +1 -1
- package/build/server/chunks/{handler-C22elTeC.js → handler-J6aKdov3.js} +5 -5
- package/build/server/chunks/{handler-C22elTeC.js.map → handler-J6aKdov3.js.map} +1 -1
- package/build/server/chunks/{index.js-CqN1-wfe.js → index.js-CsvWJ7Qu.js} +5 -5
- package/build/server/chunks/{index.js-CqN1-wfe.js.map → index.js-CsvWJ7Qu.js.map} +1 -1
- package/build/server/chunks/{manifest.js-5SY_cfDE.js → manifest.js-wHtZ9vlA.js} +40 -26
- package/build/server/chunks/manifest.js-wHtZ9vlA.js.map +1 -0
- package/build/server/chunks/nodes/0.js-By6-kbk6.js +11 -0
- package/build/server/chunks/nodes/0.js-By6-kbk6.js.map +1 -0
- package/build/server/chunks/nodes/1.js-CrPfmKpN.js +7 -0
- package/build/server/chunks/nodes/{1.js-B92oHDrL.js.map → 1.js-CrPfmKpN.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-C-i3Y5t2.js +7 -0
- package/build/server/chunks/nodes/2.js-C-i3Y5t2.js.map +1 -0
- package/build/server/chunks/nodes/3.js-C1gcIGeV.js +7 -0
- package/build/server/chunks/nodes/{3.js-C1yCh8Tq.js.map → 3.js-C1gcIGeV.js.map} +1 -1
- package/build/server/chunks/nodes/4.js-tgwl3VD3.js +7 -0
- package/build/server/chunks/nodes/{4.js-B9BEDKwq.js.map → 4.js-tgwl3VD3.js.map} +1 -1
- package/dist/cli.js +2 -0
- package/dist/config.d.ts +1 -1
- package/dist/core/api-types.d.ts +12 -1
- package/dist/core/config.d.ts +12 -0
- package/dist/core/index.d.ts +3 -2
- package/dist/core/library.d.ts +8 -1
- package/dist/core/library.js +30 -6
- package/dist/server/cli-commands.d.ts +2 -1
- package/dist/server/cli-commands.js +155 -34
- package/dist/server/config-loader.d.ts +9 -1
- package/dist/server/config-loader.js +26 -1
- package/dist/server/http.d.ts +1 -0
- package/dist/server/http.js +37 -0
- package/dist/server/importers/contract.d.ts +29 -0
- package/dist/server/importers/contract.js +13 -0
- package/dist/server/importers/figma.d.ts +21 -0
- package/dist/server/importers/figma.js +386 -0
- package/dist/server/importers/file.d.ts +6 -0
- package/dist/server/importers/file.js +33 -0
- package/dist/server/importers/pinned-https.d.ts +23 -0
- package/dist/server/importers/pinned-https.js +60 -0
- package/dist/server/importers/registry.d.ts +12 -0
- package/dist/server/importers/registry.js +31 -0
- package/dist/server/importers.d.ts +2 -0
- package/dist/server/importers.js +7 -0
- package/dist/server/library-store.d.ts +19 -1
- package/dist/server/library-store.js +110 -14
- package/dist/server/operations.d.ts +13 -1
- package/dist/server/operations.js +159 -23
- package/package.json +1 -1
- package/build/client/_app/immutable/assets/2.AA5XNK5k.css +0 -1
- package/build/client/_app/immutable/assets/2.AA5XNK5k.css.br +0 -0
- package/build/client/_app/immutable/assets/2.AA5XNK5k.css.gz +0 -0
- package/build/client/_app/immutable/assets/3.ChSpCG-T.css.br +0 -0
- package/build/client/_app/immutable/assets/3.ChSpCG-T.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BPJdVAz5.js.br +0 -0
- package/build/client/_app/immutable/chunks/BPJdVAz5.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CLZr1L0m.js.br +0 -0
- package/build/client/_app/immutable/chunks/CLcR3DTB.js.br +0 -4
- package/build/client/_app/immutable/chunks/CLcR3DTB.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DkK6dXFi.js +0 -1
- package/build/client/_app/immutable/chunks/DkK6dXFi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DkK6dXFi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/RVmTMq_g.js +0 -1
- package/build/client/_app/immutable/chunks/RVmTMq_g.js.br +0 -0
- package/build/client/_app/immutable/chunks/RVmTMq_g.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.xrZU0FIS.js.br +0 -0
- package/build/client/_app/immutable/entry/app.xrZU0FIS.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BT85omvY.js +0 -1
- package/build/client/_app/immutable/entry/start.BT85omvY.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BT85omvY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BjZZ-SXT.js +0 -2
- package/build/client/_app/immutable/nodes/0.BjZZ-SXT.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BjZZ-SXT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.0KLmHZC4.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.0KLmHZC4.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BG8fXI4n.js +0 -3
- package/build/client/_app/immutable/nodes/2.BG8fXI4n.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BG8fXI4n.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DMFh-x1Y.js +0 -1
- package/build/client/_app/immutable/nodes/3.DMFh-x1Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DMFh-x1Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CsuRmAsC.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CsuRmAsC.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-B77ZAVLi.js.map +0 -1
- package/build/server/chunks/chunks/core.js-EA_ysb1J.js.map +0 -1
- package/build/server/chunks/chunks/http.js-DyoR9XRI.js.map +0 -1
- package/build/server/chunks/chunks/library-store.js-DJ-JRE-g.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/reveal/_server.ts.js-Dhj5O9Lv.js.map +0 -1
- package/build/server/chunks/manifest.js-5SY_cfDE.js.map +0 -1
- package/build/server/chunks/nodes/0.js-CoD1zSiQ.js +0 -11
- package/build/server/chunks/nodes/0.js-CoD1zSiQ.js.map +0 -1
- package/build/server/chunks/nodes/1.js-B92oHDrL.js +0 -7
- package/build/server/chunks/nodes/2.js-COlJ22cI.js +0 -7
- package/build/server/chunks/nodes/2.js-COlJ22cI.js.map +0 -1
- package/build/server/chunks/nodes/3.js-C1yCh8Tq.js +0 -7
- package/build/server/chunks/nodes/4.js-B9BEDKwq.js +0 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js-CG2t-ufq.js","sources":["../../../../.svelte-kit/output/server/chunks/context.js"],"sourcesContent":["import { _ as portableFolderPathKey, d as folderOfRawPath, g as parentFolderPath, h as normalizeFolderPath, i as typesForFileName, r as proposeAssetId, v as rawFileNameOfPath } from \"./core.js\";\nimport { a as processAssets, c as generateManifestModules, d as serverPluginsByType, f as isRecord, h as collectAllReferences, l as descriptorsByType, m as computeLibraryMembership, n as invalidInput, o as readCurrentProxy, p as allDeliveredAssetIds, r as LibraryStore, s as encodeRelativePathForUrl, t as SourceImportError, u as serverPluginForType } from \"./contract.js\";\nimport { t as assetIdError } from \"./asset-id.js\";\nimport { a as verifyStableRawFile, o as canonicalizeParameters, s as compareCodeUnits, t as classifyRawDirectory } from \"./raw-reconciliation.js\";\nimport { extname, isAbsolute, join, resolve } from \"node:path\";\nimport { existsSync } from \"node:fs\";\nimport { createJiti } from \"jiti\";\nimport sharp from \"sharp\";\nimport { lookup } from \"node:dns/promises\";\nimport { isIP } from \"node:net\";\nimport { request } from \"node:https\";\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\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\treturn {\n\t\trawDir: resolvePath(projectRoot, requiredString(value, \"rawDir\")),\n\t\tproxyDir: resolvePath(projectRoot, requiredString(value, \"proxyDir\")),\n\t\tlibrary: resolvePath(projectRoot, requiredString(value, \"library\")),\n\t\tmanifestsDir: resolvePath(projectRoot, requiredString(value, \"manifestsDir\")),\n\t\tproxyBasePath,\n\t\tplugins: resolvedPlugins,\n\t\timport: { figma: {\n\t\t\t...figma.token !== void 0 ? { token: figma.token } : {},\n\t\t\tdefaults: { scale }\n\t\t} }\n\t};\n}\n/** Load `fundus.config.ts` from the host project root. */\nasync function loadConfig(projectRoot) {\n\tconst root = resolve(projectRoot);\n\tconst configPath = resolve(root, \"fundus.config.ts\");\n\tif (!existsSync(configPath)) throw new Error(`No fundus.config.ts found in ${root}.`);\n\tlet module;\n\ttry {\n\t\tmodule = await createJiti(import.meta.url, { interopDefault: false }).import(configPath);\n\t} catch (cause) {\n\t\tthrow new Error(`Cannot load fundus.config.ts: ${cause instanceof Error ? cause.message : String(cause)}`);\n\t}\n\treturn resolveConfig(root, isRecord(module) && \"default\" in module ? module.default : module);\n}\n//#endregion\n//#region src/lib/server/raw-safety.ts\nfunction rawSafetyIssueKey(issue) {\n\treturn `${issue.kind}|${issue.assetId ?? \"\"}|${issue.path}`;\n}\n/** Managed-source safety gate shared by editor operations and `fundus build`. */\nfunction rawSafetyIssues(library, classification, compatibleTypes) {\n\tconst issues = [];\n\tif (!classification.complete) for (const diagnostic of classification.diagnostics) issues.push({\n\t\tkind: \"incomplete\",\n\t\tpath: diagnostic.path,\n\t\tmessage: diagnostic.reason\n\t});\n\tfor (const blocker of classification.blockers) {\n\t\tconst affected = blocker.assetId ? [blocker.assetId] : Object.entries(library.assets).filter(([, record]) => record.raw === blocker.path || record.raw.startsWith(`${blocker.path}/`)).map(([assetId]) => assetId);\n\t\tfor (const assetId of affected) issues.push({\n\t\t\tkind: \"blocker\",\n\t\t\tpath: blocker.path,\n\t\t\tassetId,\n\t\t\tmessage: `Raw source \"${blocker.path}\" is unsafe: ${blocker.reason}`\n\t\t});\n\t}\n\tfor (const missing of classification.deletions) issues.push({\n\t\tkind: \"missing\",\n\t\tpath: missing.path,\n\t\tassetId: missing.assetId,\n\t\tmessage: `Raw file \"${missing.path}\" is missing from the raw directory.`\n\t});\n\tfor (const move of classification.moves) issues.push({\n\t\tkind: \"missing\",\n\t\tpath: move.from,\n\t\tassetId: move.assetId,\n\t\tmessage: `Raw file \"${move.from}\" is missing from the raw directory.`\n\t});\n\tfor (const edited of classification.edited) issues.push({\n\t\tkind: \"edited\",\n\t\tpath: edited.path,\n\t\tassetId: edited.assetId,\n\t\tmessage: `Raw file \"${edited.path}\" changed outside Fundus.`\n\t});\n\tfor (const [assetId, record] of Object.entries(library.assets)) if (!compatibleTypes(record.raw).includes(record.type)) issues.push({\n\t\tkind: \"type-incompatible\",\n\t\tpath: record.raw,\n\t\tassetId,\n\t\tmessage: `Raw file \"${record.raw}\" is not compatible with its current ${record.type} type.`\n\t});\n\tconst seen = /* @__PURE__ */ new Set();\n\treturn issues.filter((issue) => {\n\t\tconst key = rawSafetyIssueKey(issue);\n\t\tif (seen.has(key)) return false;\n\t\tseen.add(key);\n\t\treturn true;\n\t});\n}\n//#endregion\n//#region src/lib/server/importers/pinned-https.ts\nfunction lookupError(hostname) {\n\tconst error = /* @__PURE__ */ new Error(`No validated address is available for ${hostname}.`);\n\terror.code = \"ENOTFOUND\";\n\treturn error;\n}\nfunction createPinnedLookup(target) {\n\treturn (hostname, options, callback) => {\n\t\tif (hostname !== target.url.hostname) {\n\t\t\tcallback(lookupError(hostname), \"\", 0);\n\t\t\treturn;\n\t\t}\n\t\tconst requestedFamily = options.family === 4 || options.family === 6 ? options.family : 0;\n\t\tconst addresses = target.addresses.filter((candidate) => requestedFamily === 0 || candidate.family === requestedFamily);\n\t\tif (addresses.length === 0) {\n\t\t\tcallback(lookupError(hostname), \"\", 0);\n\t\t\treturn;\n\t\t}\n\t\tif (options.all) {\n\t\t\tcallback(null, addresses.map(({ address, family }) => ({\n\t\t\t\taddress,\n\t\t\t\tfamily\n\t\t\t})));\n\t\t\treturn;\n\t\t}\n\t\tcallback(null, addresses[0].address, addresses[0].family);\n\t};\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\tconst request = requester(target.url, {\n\t\t\tmethod: \"GET\",\n\t\t\tagent: false,\n\t\t\tlookup: createPinnedLookup(target),\n\t\t\tservername: target.url.hostname,\n\t\t\trejectUnauthorized: true,\n\t\t\tsignal\n\t\t}, (response) => {\n\t\t\tresolve({\n\t\t\t\tstatus: response.statusCode ?? 0,\n\t\t\t\theaders: responseHeaders(response.headers),\n\t\t\t\tbody: response,\n\t\t\t\tcancel: () => response.destroy()\n\t\t\t});\n\t\t});\n\t\trequest.once(\"error\", reject);\n\t\trequest.end();\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 || typeof input.url !== \"string\") 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\treturn {\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\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}\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\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\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/operations.ts\n/**\n* The one operations layer: builds the state payload and runs\n* every mutation through the autosave chain — write library → process affected\n* assets → regenerate codegen → return fresh state. Both the REST server\n* and the CLI consume this class, so every\n* operation has exactly one implementation and there is no other save path.\n*/\n/**\n* The CLI's `--parameters` merge semantics (M7): a SHALLOW merge at the top\n* level onto the current parameters — a nested object value replaces the whole\n* current object under that key, a top-level `null` clears an optional field,\n* and an asset reference is set with the normal `{\"$asset\": \"<id>\"}` marker.\n* The merged result still passes the owning plugin's full validation.\n*/\nfunction mergeParameterPatch(currentParameters, patch) {\n\tif (typeof patch !== \"object\" || patch === null || Array.isArray(patch)) throw new Error(\"The parameter patch must be a JSON object, e.g. {\\\"preset\\\": \\\"default\\\"}.\");\n\tconst merged = typeof currentParameters === \"object\" && currentParameters !== null && !Array.isArray(currentParameters) ? { ...currentParameters } : {};\n\tfor (const [key, value] of Object.entries(patch)) if (value === null) delete merged[key];\n\telse merged[key] = value;\n\treturn merged;\n}\nvar FundusOperations = class {\n\t#config;\n\t#registry;\n\t#store;\n\t#importers;\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}\n\tget config() {\n\t\treturn this.#config;\n\t}\n\tget store() {\n\t\treturn this.#store;\n\t}\n\t#enqueueOperation(operation) {\n\t\tconst run = this.#operationQueue.then(operation, operation);\n\t\tthis.#operationQueue = run.then(() => {}, () => {});\n\t\treturn run;\n\t}\n\t/** Read-only state snapshot, serialized with mutations but never processing or writing. */\n\tstate() {\n\t\treturn this.#enqueueOperation(() => this.#state());\n\t}\n\tasync #state() {\n\t\tawait this.#pipelineQueue;\n\t\tconst library = await this.#store.read();\n\t\tconst classification = await this.#classifyRawDirectory(library);\n\t\treturn this.#snapshotState(library, classification);\n\t}\n\t/** Reconcile only changes that are safe without a user decision: unique moves and deletions. */\n\treconcileRawState() {\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tlet library = await this.#store.read();\n\t\t\tlet classification = await this.#classifyRawDirectory(library);\n\t\t\tif (!this.#canAutoReconcile(classification)) return this.#snapshotState(library, classification);\n\t\t\tfor (let pass = 0; pass < 2; pass++) {\n\t\t\t\tconst result = await this.#store.transactCandidate(async (candidate, current) => {\n\t\t\t\t\tconst fresh = await this.#classifyRawDirectory(current);\n\t\t\t\t\tconst affectedIds = [];\n\t\t\t\t\tif (!this.#canAutoReconcile(fresh)) return {\n\t\t\t\t\t\tclassification: fresh,\n\t\t\t\t\t\taffectedIds\n\t\t\t\t\t};\n\t\t\t\t\tfor (const move of fresh.moves) {\n\t\t\t\t\t\tcandidate.assets[move.assetId].raw = move.path;\n\t\t\t\t\t\tthis.#registerFolderAncestors(candidate, folderOfRawPath(move.path));\n\t\t\t\t\t\taffectedIds.push(move.assetId);\n\t\t\t\t\t}\n\t\t\t\t\tfor (const deletion of fresh.deletions) {\n\t\t\t\t\t\tdelete candidate.assets[deletion.assetId];\n\t\t\t\t\t\taffectedIds.push(deletion.assetId);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tclassification: fresh,\n\t\t\t\t\t\taffectedIds\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tlibrary = result.library;\n\t\t\t\tclassification = result.value.classification;\n\t\t\t\tif (!result.changed) return this.#snapshotState(library, classification);\n\t\t\t\tawait this.#store.syncFolders(library);\n\t\t\t\tfor (const id of result.value.affectedIds) await this.#store.deleteProxiesOf(id);\n\t\t\t\tconst snapshot = await this.#afterMutationSnapshot(library);\n\t\t\t\tlibrary = snapshot.library;\n\t\t\t\tclassification = snapshot.classification;\n\t\t\t\tif (classification.moves.length === 0 && classification.deletions.length === 0) return snapshot.state;\n\t\t\t\tif (!this.#canAutoReconcile(classification, true)) return snapshot.state;\n\t\t\t}\n\t\t\treturn this.#snapshotState(library, classification, [{ message: \"Raw directory kept changing during reconciliation; refresh again after external file operations settle.\" }]);\n\t\t});\n\t}\n\t/** Adopt an already-existing raw file without copying, renaming, or deleting it. */\n\tadoptRawFile(token, id, type, manifests = []) {\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tconst result = await this.#store.transactCandidate(async (candidate, current) => {\n\t\t\t\tconst file = (await this.#classifyRawDirectory(current)).unmanaged.find((entry) => this.#newToken(entry.path, entry.hash) === token);\n\t\t\t\tif (!file) throw new Error(\"This ingestion item is stale; refresh the editor and try again.\");\n\t\t\t\tconst idProblem = assetIdError(id);\n\t\t\t\tif (idProblem) throw new Error(idProblem);\n\t\t\t\tif (Object.hasOwn(candidate.assets, id)) throw new Error(`An asset with id \"${id}\" already exists.`);\n\t\t\t\tif (!this.#compatibleTypes(file.path).includes(type)) throw new Error(`The ${type} type does not accept \"${file.path}\".`);\n\t\t\t\tconst uniqueManifests = [...new Set(manifests)];\n\t\t\t\tfor (const name of uniqueManifests) if (!Object.hasOwn(candidate.manifests, name)) throw new Error(`Unknown manifest \"${name}\".`);\n\t\t\t\tconst plugin = serverPluginForType(type, this.#registry);\n\t\t\t\tlet parameters = plugin.descriptor.defaultParameters(plugin.pluginConfig(this.#config));\n\t\t\t\tparameters = plugin.descriptor.validateParameters(parameters);\n\t\t\t\tif (plugin.seedIngestParameters) {\n\t\t\t\t\tconst seeded = await plugin.seedIngestParameters({\n\t\t\t\t\t\trawPath: join(this.#config.rawDir, file.path),\n\t\t\t\t\t\trawFileName: rawFileNameOfPath(file.path),\n\t\t\t\t\t\tparameters,\n\t\t\t\t\t\tconfig: this.#config\n\t\t\t\t\t});\n\t\t\t\t\tif (seeded !== void 0) parameters = plugin.descriptor.validateParameters(seeded);\n\t\t\t\t}\n\t\t\t\tawait verifyStableRawFile(join(this.#config.rawDir, file.path), file.hash);\n\t\t\t\tthis.#registerFolderAncestors(candidate, folderOfRawPath(file.path));\n\t\t\t\tcandidate.assets[id] = {\n\t\t\t\t\ttype,\n\t\t\t\t\traw: file.path,\n\t\t\t\t\trawHash: file.hash,\n\t\t\t\t\tparameters,\n\t\t\t\t\tmanifests: uniqueManifests.sort()\n\t\t\t\t};\n\t\t\t});\n\t\t\tawait this.#store.syncFolders(result.library);\n\t\t\treturn this.#afterMutation(result.library);\n\t\t});\n\t}\n\t/** Reset/reseed edited bytes, optionally changing to another compatible type. */\n\tacceptEditedRawFile(token, type) {\n\t\treturn this.#enqueueOperation(async () => {\n\t\t\tconst result = await this.#store.transactCandidate(async (candidate, current) => {\n\t\t\t\tconst classification = await this.#classifyRawDirectory(current);\n\t\t\t\tconst edited = this.#editedRawFiles(classification, current).find((entry) => this.#editedToken(entry.assetId, entry.path, entry.hash) === token);\n\t\t\t\tif (!edited) throw new Error(\"This edited item is stale; refresh the editor and try again.\");\n\t\t\t\tif (!this.#compatibleTypes(edited.path).includes(type)) throw new Error(`The ${type} type does not accept \"${edited.path}\".`);\n\t\t\t\tconst plugin = serverPluginForType(type, this.#registry);\n\t\t\t\tlet parameters = plugin.descriptor.validateParameters(plugin.descriptor.defaultParameters(plugin.pluginConfig(this.#config)));\n\t\t\t\tif (plugin.seedIngestParameters) {\n\t\t\t\t\tconst seeded = await plugin.seedIngestParameters({\n\t\t\t\t\t\trawPath: join(this.#config.rawDir, edited.path),\n\t\t\t\t\t\trawFileName: rawFileNameOfPath(edited.path),\n\t\t\t\t\t\tparameters,\n\t\t\t\t\t\tconfig: this.#config\n\t\t\t\t\t});\n\t\t\t\t\tif (seeded !== void 0) parameters = plugin.descriptor.validateParameters(seeded);\n\t\t\t\t}\n\t\t\t\tawait verifyStableRawFile(join(this.#config.rawDir, edited.path), edited.hash);\n\t\t\t\tconst record = candidate.assets[edited.assetId];\n\t\t\t\trecord.type = type;\n\t\t\t\trecord.rawHash = edited.hash;\n\t\t\t\trecord.parameters = parameters;\n\t\t\t\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\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\tif (!serverPluginForType(snapshot.expected.type, this.#registry).descriptor.accepts.includes(raw.extension)) throw new SourceImportError(\"invalid-response\", `The ${snapshot.expected.type} type does not accept \".${raw.extension}\" files.`);\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);\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\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\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 (newId !== id && !Object.hasOwn(library.assets, newId)) {\n\t\t\tconst candidate = structuredClone(library);\n\t\t\tcandidate.assets[newId] = candidate.assets[id];\n\t\t\tdelete candidate.assets[id];\n\t\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\t}\n\t\treturn this.#afterMutation(await this.#store.renameAsset(id, newId));\n\t}\n\t/**\n\t* Delete an asset: the record, its raw file, and its proxies. With\n\t* `failOnIntroducedIssues` (the CLI), a delete that would break references\n\t* (the asset is a reference target) is rejected before anything —\n\t* including the raw file — is removed; the REST route stays lenient.\n\t*/\n\tdeleteAsset(id, options) {\n\t\treturn this.#enqueueOperation(() => this.#deleteAsset(id, options));\n\t}\n\tasync #deleteAsset(id, options) {\n\t\tif (options?.failOnIntroducedIssues) {\n\t\t\tconst library = await this.#store.read();\n\t\t\tthis.#requireAsset(library, id);\n\t\t\tconst candidate = structuredClone(library);\n\t\t\tdelete candidate.assets[id];\n\t\t\tawait this.#assertNoIntroducedIssues(library, candidate);\n\t\t}\n\t\treturn this.#afterMutation(await this.#store.deleteAsset(id));\n\t}\n\t/** Delete a selected asset set as one lenient editor mutation. */\n\tdeleteAssets(assetIds) {\n\t\treturn this.#enqueueOperation(() => this.#deleteAssets(assetIds));\n\t}\n\tasync #deleteAssets(assetIds) {\n\t\tconst uniqueIds = [...new Set(assetIds)];\n\t\tif (uniqueIds.length === 0) throw new Error(\"At least one asset id is required.\");\n\t\treturn this.#afterMutation(await this.#store.deleteAssets(uniqueIds));\n\t}\n\tcreateManifest(name) {\n\t\treturn this.#enqueueOperation(() => this.#createManifest(name));\n\t}\n\tasync #createManifest(name) {\n\t\treturn this.#afterMutation(await this.#store.createManifest(name));\n\t}\n\tsetManifestAppearance(name, appearance) {\n\t\treturn this.#enqueueOperation(() => this.#setManifestAppearance(name, appearance));\n\t}\n\tasync #setManifestAppearance(name, appearance) {\n\t\treturn this.#afterMutation(await this.#store.setManifestAppearance(name, appearance));\n\t}\n\t/** Apply a PATCH body: appearance fields and/or a rename — in that order. */\n\tpatchManifest(name, body) {\n\t\treturn this.#enqueueOperation(() => this.#patchManifest(name, body));\n\t}\n\tasync #patchManifest(name, body) {\n\t\tlet library = await this.#store.setManifestAppearance(name, {\n\t\t\tcolor: body.color,\n\t\t\temoji: body.emoji\n\t\t});\n\t\tif (body.renameTo !== void 0) {\n\t\t\tif (typeof body.renameTo !== \"string\") throw new Error(\"\\\"renameTo\\\" must be a string.\");\n\t\t\tlibrary = await this.#store.renameManifest(name, body.renameTo);\n\t\t}\n\t\treturn this.#afterMutation(library);\n\t}\n\t/**\n\t* Rename a manifest: rewrites every asset's membership and replaces the\n\t* generated module (the old one is pruned as a stray). Host code importing\n\t* the module must be updated by hand — both the file name and the exported\n\t* const change with the manifest name.\n\t*/\n\trenameManifest(name, newName) {\n\t\treturn this.#enqueueOperation(() => this.#renameManifest(name, newName));\n\t}\n\tasync #renameManifest(name, newName) {\n\t\treturn this.#afterMutation(await this.#store.renameManifest(name, newName));\n\t}\n\tdeleteManifest(name) {\n\t\treturn this.#enqueueOperation(() => this.#deleteManifest(name));\n\t}\n\tasync #deleteManifest(name) {\n\t\treturn this.#afterMutation(await this.#store.deleteManifest(name));\n\t}\n\t/** The autosave chain tail: process + regenerate, then report fresh state. */\n\tasync #afterMutation(library) {\n\t\treturn (await this.#afterMutationSnapshot(library)).state;\n\t}\n\tasync #afterMutationSnapshot(library) {\n\t\tconst run = this.#pipelineQueue.then(() => this.#runAfterMutation(library), () => this.#runAfterMutation(library));\n\t\tthis.#pipelineQueue = run.then(() => {}, () => {});\n\t\treturn run;\n\t}\n\tasync #runAfterMutation(library) {\n\t\tconst pipelineIssues = [];\n\t\tconst classification = await this.#classifyRawDirectory(library);\n\t\tconst ordinaryIssues = await this.#store.validate(library);\n\t\tconst safetyIssues = this.#rawSafetyIssues(library, classification);\n\t\tif (ordinaryIssues.length === 0 && safetyIssues.length === 0) try {\n\t\t\tconst report = await processAssets(this.#config, library, this.#registry);\n\t\t\tawait generateManifestModules(this.#config, library, report.proxies, this.#registry);\n\t\t} catch (cause) {\n\t\t\tpipelineIssues.push({ message: `Processing failed: ${cause instanceof Error ? cause.message : String(cause)}` });\n\t\t}\n\t\tconst latestLibrary = await this.#store.read();\n\t\tconst latestClassification = await this.#classifyRawDirectory(latestLibrary);\n\t\treturn {\n\t\t\tlibrary: latestLibrary,\n\t\t\tclassification: latestClassification,\n\t\t\tstate: await this.#snapshotState(latestLibrary, latestClassification, pipelineIssues)\n\t\t};\n\t}\n\tasync #buildState(library, issues, classification) {\n\t\tconst referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));\n\t\tconst membershipByManifest = computeLibraryMembership(library, referencesByAsset);\n\t\tconst delivered = allDeliveredAssetIds(membershipByManifest);\n\t\tconst passiveManifestsByAsset = /* @__PURE__ */ new Map();\n\t\tfor (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) for (const passiveMember of membershipByManifest[manifestName].passiveMembers) {\n\t\t\tconst passiveManifests = passiveManifestsByAsset.get(passiveMember.assetId) ?? [];\n\t\t\tpassiveManifests.push({\n\t\t\t\tmanifest: manifestName,\n\t\t\t\tvia: passiveMember.via\n\t\t\t});\n\t\t\tpassiveManifestsByAsset.set(passiveMember.assetId, passiveManifests);\n\t\t}\n\t\tconst incomingByAsset = /* @__PURE__ */ new Map();\n\t\tfor (const [referrerId, references] of Object.entries(referencesByAsset)) for (const reference of references) {\n\t\t\tconst incoming = incomingByAsset.get(reference.assetId) ?? [];\n\t\t\tincoming.push({\n\t\t\t\tfield: reference.field,\n\t\t\t\tassetId: referrerId\n\t\t\t});\n\t\t\tincomingByAsset.set(reference.assetId, incoming);\n\t\t}\n\t\tconst assets = [];\n\t\tfor (const assetId of Object.keys(library.assets).sort(compareCodeUnits)) {\n\t\t\tconst record = library.assets[assetId];\n\t\t\tconst warnings = [];\n\t\t\tfor (const issue of issues) if (issue.assetId === assetId) warnings.push(issue.message);\n\t\t\tif (record.manifests.length === 0 && !delivered.has(assetId)) warnings.push(\"In no manifest and not referenced by any delivered asset — nothing is processed or generated for it.\");\n\t\t\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\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\treferences: {\n\t\t\t\t\toutgoing: referencesByAsset[assetId].map((reference) => ({\n\t\t\t\t\t\tfield: reference.field,\n\t\t\t\t\t\tassetId: reference.assetId\n\t\t\t\t\t})),\n\t\t\t\t\tincoming: incomingByAsset.get(assetId) ?? []\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tconst proxySizeByAssetId = new Map(assets.filter((asset) => asset.proxy).map((asset) => [asset.id, asset.proxy?.fileSize ?? 0]));\n\t\tconst manifestMemberships = {};\n\t\tconst manifestDeliveredBytes = {};\n\t\tfor (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) {\n\t\t\tconst membership = membershipByManifest[manifestName];\n\t\t\tmanifestMemberships[manifestName] = {\n\t\t\t\texplicitMemberIds: membership.explicitMemberIds,\n\t\t\t\tpassiveMembers: membership.passiveMembers\n\t\t\t};\n\t\t\tlet deliveredBytes = 0;\n\t\t\tfor (const deliveredAssetId of membership.deliveredAssetIds) deliveredBytes += proxySizeByAssetId.get(deliveredAssetId) ?? 0;\n\t\t\tmanifestDeliveredBytes[manifestName] = deliveredBytes;\n\t\t}\n\t\tconst presetNames = {};\n\t\tfor (const [type, plugin] of Object.entries(this.#registry)) presetNames[type] = Object.keys(plugin.presets(this.#config)).sort();\n\t\tconst rawIngestionQueue = this.#buildRawIngestionQueue(library, classification);\n\t\treturn {\n\t\t\tlibrary,\n\t\t\tassets,\n\t\t\timportDefaults: { figma: { scale: this.#config.import.figma.defaults.scale } },\n\t\t\tissues,\n\t\t\tpresetNames,\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...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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"}
|