fundus 0.10.0 → 0.11.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 +58 -0
- package/build/client/_app/immutable/assets/3.BuCXJbRG.css +1 -0
- package/build/client/_app/immutable/assets/3.BuCXJbRG.css.br +0 -0
- package/build/client/_app/immutable/assets/3.BuCXJbRG.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.C0QkCMQ4.css +1 -0
- package/build/client/_app/immutable/assets/4.C0QkCMQ4.css.br +0 -0
- package/build/client/_app/immutable/assets/4.C0QkCMQ4.css.gz +0 -0
- package/build/client/_app/immutable/assets/Popover.Et4sBRbI.css +1 -0
- package/build/client/_app/immutable/assets/Popover.Et4sBRbI.css.br +0 -0
- package/build/client/_app/immutable/assets/Popover.Et4sBRbI.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BAva9YXm.js +1 -0
- package/build/client/_app/immutable/chunks/BAva9YXm.js.br +0 -0
- package/build/client/_app/immutable/chunks/BAva9YXm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGAUmugt.js +1 -0
- package/build/client/_app/immutable/chunks/BGAUmugt.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGAUmugt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BMORe2Gb.js +3 -0
- package/build/client/_app/immutable/chunks/BMORe2Gb.js.br +0 -0
- package/build/client/_app/immutable/chunks/BMORe2Gb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CBygkKLq.js +1 -0
- package/build/client/_app/immutable/chunks/CBygkKLq.js.br +0 -0
- package/build/client/_app/immutable/chunks/CBygkKLq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cil0r9BR.js +108 -0
- package/build/client/_app/immutable/chunks/Cil0r9BR.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cil0r9BR.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D-p-QSzz.js +1 -0
- package/build/client/_app/immutable/chunks/D-p-QSzz.js.br +0 -0
- package/build/client/_app/immutable/chunks/D-p-QSzz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D15yxLq9.js +1 -0
- package/build/client/_app/immutable/chunks/D15yxLq9.js.br +0 -0
- package/build/client/_app/immutable/chunks/D15yxLq9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DFRlZOKz.js +2 -0
- package/build/client/_app/immutable/chunks/DFRlZOKz.js.br +0 -0
- package/build/client/_app/immutable/chunks/DFRlZOKz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CliRE4wo.js → DpFtnEPx.js} +1 -1
- package/build/client/_app/immutable/chunks/DpFtnEPx.js.br +4 -0
- package/build/client/_app/immutable/chunks/DpFtnEPx.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BaP08B0_.js +2 -0
- package/build/client/_app/immutable/entry/app.BaP08B0_.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BaP08B0_.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DntfygIK.js +1 -0
- package/build/client/_app/immutable/entry/start.DntfygIK.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DntfygIK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.6A6JK0Xm.js +1 -0
- package/build/client/_app/immutable/nodes/0.6A6JK0Xm.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.6A6JK0Xm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.8K7wLW9R.js +1 -0
- package/build/client/_app/immutable/nodes/1.8K7wLW9R.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.8K7wLW9R.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CB_PeUBC.js +3 -0
- package/build/client/_app/immutable/nodes/2.CB_PeUBC.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CB_PeUBC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.qIkVQyP6.js +1 -0
- package/build/client/_app/immutable/nodes/3.qIkVQyP6.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.qIkVQyP6.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.SmoVIy5D.js +2 -0
- package/build/client/_app/immutable/nodes/4.SmoVIy5D.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.SmoVIy5D.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/{context.js-Cg-Pih8x.js → context.js-BJfk3ZiR.js} +440 -6
- package/build/server/chunks/chunks/context.js-BJfk3ZiR.js.map +1 -0
- package/build/server/chunks/chunks/{contract.js-C6yL03Hj.js → contract.js-DRcxzb4o.js} +17 -3
- package/build/server/chunks/chunks/contract.js-DRcxzb4o.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-CKLcHEPO.js → exports.js-aVVdkXgn.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-CKLcHEPO.js.map → exports.js-aVVdkXgn.js.map} +1 -1
- package/build/server/chunks/chunks/{http.js-B2joT3YT.js → http.js-DMkgmpI5.js} +2 -2
- package/build/server/chunks/chunks/{http.js-B2joT3YT.js.map → http.js-DMkgmpI5.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-ByCfjWgU.js → internal.js-C6cIfe5d.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-ByCfjWgU.js.map → internal.js-C6cIfe5d.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{shared.js-BDdrmPL3.js → shared.js-BNd0HSxp.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-BDdrmPL3.js.map → shared.js-BNd0HSxp.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-CD_wf0ka.js → utils.js-6HSqnONB.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-CD_wf0ka.js.map → utils.js-6HSqnONB.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Cn8Ztaiw.js → _server.ts.js-m2QGyBiV.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Cn8Ztaiw.js.map → _server.ts.js-m2QGyBiV.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-CrOiDQG8.js → _server.ts.js-eMNgdaf4.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-CrOiDQG8.js.map → _server.ts.js-eMNgdaf4.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-CpJ_OzDV.js → _server.ts.js-CEQd4Wxn.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-CpJ_OzDV.js.map → _server.ts.js-CEQd4Wxn.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-BCZRAtqn.js → _server.ts.js-B2JoGCzy.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-BCZRAtqn.js.map → _server.ts.js-B2JoGCzy.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-CwyV_AMP.js → _server.ts.js-DTpkVywC.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-CwyV_AMP.js.map → _server.ts.js-DTpkVywC.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-BZAM3HSB.js → _server.ts.js-D6Z_pGEZ.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-BZAM3HSB.js.map → _server.ts.js-D6Z_pGEZ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CPNISyB1.js → _server.ts.js-CnDi9p0a.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-CPNISyB1.js.map → _server.ts.js-CnDi9p0a.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-5R7ywd4H.js → _server.ts.js-BCzuPX5Z.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-5R7ywd4H.js.map → _server.ts.js-BCzuPX5Z.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-ZQiaSMNA.js → _server.ts.js-CGbYyJ6S.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-ZQiaSMNA.js.map → _server.ts.js-CGbYyJ6S.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CE29dwBF.js → _server.ts.js-CL_89klb.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CE29dwBF.js.map → _server.ts.js-CL_89klb.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-CU3gpNeg.js → _server.ts.js-DZUKtjz9.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-CU3gpNeg.js.map → _server.ts.js-DZUKtjz9.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-BhJDoTAq.js → _server.ts.js-Dz25LG_P.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-BhJDoTAq.js.map → _server.ts.js-Dz25LG_P.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-B72NkhD1.js → _server.ts.js-C-NuN3JJ.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-B72NkhD1.js.map → _server.ts.js-C-NuN3JJ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CWK5em43.js → _server.ts.js-CwL9UPh3.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-CWK5em43.js.map → _server.ts.js-CwL9UPh3.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-BBxmYiE6.js → _server.ts.js-DanXYrj1.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-BBxmYiE6.js.map → _server.ts.js-DanXYrj1.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-DR4xHt0w.js → _server.ts.js-BZrun0up.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-DR4xHt0w.js.map → _server.ts.js-BZrun0up.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-CfiypExu.js → _server.ts.js-DQOabHbS.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-CfiypExu.js.map → _server.ts.js-DQOabHbS.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-DjmTUX8d.js → _server.ts.js-k8Ueydx1.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-DjmTUX8d.js.map → _server.ts.js-k8Ueydx1.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/usage/_server.ts.js-DmMmiFiu.js +82 -0
- package/build/server/chunks/entries/endpoints/api/usage/_server.ts.js-DmMmiFiu.js.map +1 -0
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-qfzdfNHQ.js → _server.ts.js-CT7yOdDS.js} +3 -3
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-qfzdfNHQ.js.map → _server.ts.js-CT7yOdDS.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CS_5SEL-.js → _server.ts.js-BQTC0OSC.js} +4 -4
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-CS_5SEL-.js.map → _server.ts.js-BQTC0OSC.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-Cv-y3Nqu.js → _server.ts.js-mv9cqSuS.js} +4 -4
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-Cv-y3Nqu.js.map → _server.ts.js-mv9cqSuS.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-WOShZElI.js → hooks.server.js-BNQO3cZr.js} +3 -3
- package/build/server/chunks/entries/{hooks.server.js-WOShZElI.js.map → hooks.server.js-BNQO3cZr.js.map} +1 -1
- package/build/server/chunks/{handler-CIOnH690.js → handler-rG16rikT.js} +5 -5
- package/build/server/chunks/{handler-CIOnH690.js.map → handler-rG16rikT.js.map} +1 -1
- package/build/server/chunks/{index.js-nSuivP3M.js → index.js-DYK_SfL5.js} +5 -5
- package/build/server/chunks/{index.js-nSuivP3M.js.map → index.js-DYK_SfL5.js.map} +1 -1
- package/build/server/chunks/{manifest.js-CIFnCWGv.js → manifest.js-h2lDpEPs.js} +35 -28
- package/build/server/chunks/manifest.js-h2lDpEPs.js.map +1 -0
- package/build/server/chunks/nodes/{0.js-BSbmgTIm.js → 0.js-Db28RwnA.js} +2 -2
- package/build/server/chunks/nodes/{0.js-BSbmgTIm.js.map → 0.js-Db28RwnA.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-D26Uv3YT.js +7 -0
- package/build/server/chunks/nodes/{1.js-kvz4iUXK.js.map → 1.js-D26Uv3YT.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-BeRlEFid.js +7 -0
- package/build/server/chunks/nodes/{2.js-B9ILHJtB.js.map → 2.js-BeRlEFid.js.map} +1 -1
- package/build/server/chunks/nodes/3.js-BRUNmCyG.js +7 -0
- package/build/server/chunks/nodes/3.js-BRUNmCyG.js.map +1 -0
- package/build/server/chunks/nodes/4.js-CTHWqDf1.js +7 -0
- package/build/server/chunks/nodes/4.js-CTHWqDf1.js.map +1 -0
- package/dist/cli.js +6 -1
- package/dist/config.d.ts +1 -1
- package/dist/core/api-types.d.ts +36 -1
- package/dist/core/config.d.ts +35 -0
- package/dist/core/index.d.ts +2 -2
- package/dist/server/check.d.ts +6 -0
- package/dist/server/check.js +4 -1
- package/dist/server/cli-commands.d.ts +3 -1
- package/dist/server/cli-commands.js +117 -2
- package/dist/server/codegen.d.ts +3 -0
- package/dist/server/codegen.js +19 -2
- package/dist/server/config-loader.d.ts +3 -1
- package/dist/server/config-loader.js +13 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +1 -1
- package/dist/server/operations.d.ts +7 -1
- package/dist/server/operations.js +85 -2
- package/dist/server/start.d.ts +8 -0
- package/dist/server/start.js +24 -0
- package/dist/server/usage.d.ts +24 -0
- package/dist/server/usage.js +441 -0
- package/package.json +1 -1
- package/build/client/_app/immutable/assets/3.CmXD8k9d.css +0 -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/assets/4.p004hmEN.css +0 -1
- package/build/client/_app/immutable/assets/4.p004hmEN.css.br +0 -0
- package/build/client/_app/immutable/assets/4.p004hmEN.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BD3hQKzV.js +0 -1
- package/build/client/_app/immutable/chunks/BD3hQKzV.js.br +0 -0
- package/build/client/_app/immutable/chunks/BD3hQKzV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C3HGm51f.js +0 -1
- package/build/client/_app/immutable/chunks/C3HGm51f.js.br +0 -0
- package/build/client/_app/immutable/chunks/C3HGm51f.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C7OUKWnm.js +0 -1
- package/build/client/_app/immutable/chunks/C7OUKWnm.js.br +0 -0
- package/build/client/_app/immutable/chunks/C7OUKWnm.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CaKQ_luf.js +0 -1
- package/build/client/_app/immutable/chunks/CaKQ_luf.js.br +0 -0
- package/build/client/_app/immutable/chunks/CaKQ_luf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CliRE4wo.js.br +0 -1
- package/build/client/_app/immutable/chunks/CliRE4wo.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DPZDGjcn.js +0 -1
- package/build/client/_app/immutable/chunks/DPZDGjcn.js.br +0 -0
- package/build/client/_app/immutable/chunks/DPZDGjcn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/JSnjcoVL.js +0 -108
- package/build/client/_app/immutable/chunks/JSnjcoVL.js.br +0 -0
- package/build/client/_app/immutable/chunks/JSnjcoVL.js.gz +0 -0
- package/build/client/_app/immutable/chunks/NblqapDQ.js +0 -3
- package/build/client/_app/immutable/chunks/NblqapDQ.js.br +0 -0
- package/build/client/_app/immutable/chunks/NblqapDQ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.p0Th9Q3c.js +0 -2
- package/build/client/_app/immutable/entry/app.p0Th9Q3c.js.br +0 -0
- package/build/client/_app/immutable/entry/app.p0Th9Q3c.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.p06L3A6u.js +0 -1
- package/build/client/_app/immutable/entry/start.p06L3A6u.js.br +0 -0
- package/build/client/_app/immutable/entry/start.p06L3A6u.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.D2yDRY2E.js +0 -2
- package/build/client/_app/immutable/nodes/0.D2yDRY2E.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.D2yDRY2E.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.nLMgahSZ.js +0 -1
- package/build/client/_app/immutable/nodes/1.nLMgahSZ.js.br +0 -3
- package/build/client/_app/immutable/nodes/1.nLMgahSZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.Cr-DsqQM.js +0 -3
- package/build/client/_app/immutable/nodes/2.Cr-DsqQM.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.Cr-DsqQM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.CmsMY1VJ.js +0 -1
- package/build/client/_app/immutable/nodes/3.CmsMY1VJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.CmsMY1VJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CeeDVfsm.js +0 -2
- package/build/client/_app/immutable/nodes/4.CeeDVfsm.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CeeDVfsm.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-Cg-Pih8x.js.map +0 -1
- package/build/server/chunks/chunks/contract.js-C6yL03Hj.js.map +0 -1
- package/build/server/chunks/manifest.js-CIFnCWGv.js.map +0 -1
- package/build/server/chunks/nodes/1.js-kvz4iUXK.js +0 -7
- package/build/server/chunks/nodes/2.js-B9ILHJtB.js +0 -7
- package/build/server/chunks/nodes/3.js-YAjQeV5C.js +0 -7
- package/build/server/chunks/nodes/3.js-YAjQeV5C.js.map +0 -1
- package/build/server/chunks/nodes/4.js-7My4KJNM.js +0 -7
- package/build/server/chunks/nodes/4.js-7My4KJNM.js.map +0 -1
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,E as r,F as i,G as a,H as o,I as s,J as c,K as l,M as u,N as d,O as f,P as p,Q as m,R as h,V as g,X as _,Y as v,Z as y,_ as b,a as x,at as S,b as ee,c as C,d as te,g as w,i as T,j as E,k as ne,l as re,nt as ie,o as ae,ot as D,p as O,q as k,s as A,tt as oe,u as j,w as se,x as M,z as ce}from"../chunks/NblqapDQ.js";import{c as le,t as ue}from"../chunks/CaKQ_luf.js";import"../chunks/xihTtKlq.js";import{t as de}from"../chunks/CliRE4wo.js";import{F as fe,J as pe,N as me,O as he,P as ge,U as _e,X as ve,Y as ye,a as be,c as xe,j as Se,l as Ce,nt as we,p as Te,t as N,tt as Ee,u as De}from"../chunks/C7OUKWnm.js";import{a as Oe}from"../chunks/C3HGm51f.js";import{t as ke}from"../chunks/DPZDGjcn.js";import{a as Ae,c as je,f as Me,i as Ne,l as Pe,m as Fe,n as Ie,o as Le,p as Re,r as ze,s as Be,t as Ve,u as He}from"../chunks/JSnjcoVL.js";import{t as Ue}from"../chunks/BD3hQKzV.js";function P(e){return Array.isArray?Array.isArray(e):Ke(e)===`[object Array]`}function We(e){if(typeof e==`string`)return e;if(typeof e==`bigint`)return e.toString();let t=e+``;return t==`0`&&1/e==-1/0?`-0`:t}function F(e){return e==null?``:We(e)}function I(e){return typeof e==`string`}function L(e){return typeof e==`number`}function Ge(e){return e===!0||e===!1||z(e)&&Ke(e)==`[object Boolean]`}function R(e){return typeof e==`object`}function z(e){return R(e)&&e!==null}function B(e){return e!=null}function V(e){return!e.trim().length}function Ke(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var H=`Incorrect 'index' type`,U=`Invalid doc index: must be a non-negative integer within the bounds of the docs array`,qe=e=>`Invalid value for key ${e}`,W=e=>`Pattern length exceeds max of ${e}.`,G=e=>`Missing ${e} property in key`,Je=e=>`Property 'weight' in key '${e}' must be a positive integer`,Ye=`Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.`,Xe=Object.prototype.hasOwnProperty,Ze=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(e=>{let n=Qe(e);this._keys.push(n),this._keyMap[n.id]=n,t+=n.weight}),this._keys.forEach(e=>{e.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function Qe(e){let t=null,n=null,r=null,i=1,a=null;if(I(e)||P(e))r=e,t=$e(e),n=et(e);else{if(!Xe.call(e,`name`))throw Error(G(`name`));let o=e.name;if(r=o,Xe.call(e,`weight`)&&e.weight!==void 0&&(i=e.weight,i<=0))throw Error(Je(et(o)));t=$e(o),n=et(o),a=e.getFn??null}return{path:t,id:n,weight:i,src:r,getFn:a}}function $e(e){return P(e)?e:e.split(`.`)}function et(e){return P(e)?e.join(`.`):e}function K(e,t){let n=[],r=!1,i=(e,t,a,o)=>{if(B(e))if(!t[a])n.push(o===void 0?e:{v:e,i:o});else{let s=e[t[a]];if(!B(s))return;if(a===t.length-1&&(I(s)||L(s)||Ge(s)||typeof s==`bigint`))n.push(o===void 0?F(s):{v:F(s),i:o});else if(P(s)){r=!0;for(let e=0,n=s.length;e<n;e+=1)i(s[e],t,a+1,e)}else t.length&&i(s,t,a+1,o)}};return i(e,I(t)?t.split(`.`):t,0),r?n:n[0]}var q={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},tt={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(e,t)=>e.score===t.score?e.idx<t.idx?-1:1:e.score<t.score?-1:1},nt={location:0,threshold:.6,distance:100},rt={useExtendedSearch:!1,useTokenSearch:!1,tokenize:void 0,tokenMatch:`any`,getFn:K,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},J=Object.freeze({...tt,...q,...nt,...rt});function it(e=1,t=3){let n=new Map,r=10**t;return{get(t){let i=1,a=!1;for(let e=0;e<t.length;e++)t.charCodeAt(e)===32?a||=(i++,!0):a=!1;if(n.has(i))return n.get(i);let o=Math.round(r/i**(.5*e))/r;return n.set(i,o),o},clear(){n.clear()}}}var at=class{constructor({getFn:e=J.getFn,fieldNormWeight:t=J.fieldNormWeight}={}){this.norm=it(t,3),this.getFn=e,this.isCreated=!1,this.docs=[],this.keys=[],this._keysMap={},this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((e,t)=>{this._keysMap[e.id]=t})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;let e=this.docs.length;this.records=Array(e);let t=0;if(I(this.docs[0]))for(let n=0;n<e;n++){let e=this._createStringRecord(this.docs[n],n);e&&(this.records[t++]=e)}else for(let n=0;n<e;n++)this.records[t++]=this._createObjectRecord(this.docs[n],n);this.records.length=t,this.norm.clear()}add(e,t){if(!Number.isInteger(t)||t<0)throw Error(U);if(I(e)){let n=this._createStringRecord(e,t);return n&&this.records.push(n),n}let n=this._createObjectRecord(e,t);return this.records.push(n),n}removeAt(e){if(!Number.isInteger(e)||e<0)throw Error(U);for(let t=0,n=this.records.length;t<n;t+=1)if(this.records[t].i===e){this.records.splice(t,1);break}for(let t=0,n=this.records.length;t<n;t+=1)this.records[t].i>e&&--this.records[t].i}removeAll(e){let t=new Set;for(let n of e)Number.isInteger(n)&&n>=0&&t.add(n);if(t.size===0)return;this.records=this.records.filter(e=>!t.has(e.i));let n=Array.from(t).sort((e,t)=>e-t);for(let e of this.records){let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e.i?t=i+1:r=i}e.i-=t}}getValueForItemAtKeyId(e,t){return e[this._keysMap[t]]}size(){return this.records.length}_createStringRecord(e,t){return!B(e)||V(e)?null:{v:e,i:t,n:this.norm.get(e)}}_createObjectRecord(e,t){let n={i:t,$:{}};for(let t=0,r=this.keys.length;t<r;t++){let r=this.keys[t],i=r.getFn?r.getFn(e):this.getFn(e,r.path);if(B(i)){if(P(i)){let e=[];for(let t=0,n=i.length;t<n;t+=1){let n=i[t];if(B(n)){if(I(n)){if(!V(n)){let r={v:n,i:t,n:this.norm.get(n)};e.push(r)}}else if(B(n.v)){let t=I(n.v)?n.v:F(n.v);if(!V(t)){let r={v:t,i:n.i,n:this.norm.get(t)};e.push(r)}}}}n.$[t]=e}else if(I(i)&&!V(i)){let e={v:i,n:this.norm.get(i)};n.$[t]=e}}}return n}toJSON(){return{keys:this.keys.map(({getFn:e,...t})=>t),records:this.records}}};function ot(e,t,{getFn:n=J.getFn,fieldNormWeight:r=J.fieldNormWeight}={}){let i=new at({getFn:n,fieldNormWeight:r});return i.setKeys(e.map(Qe)),i.setSources(t),i.create(),i}function st(e,{getFn:t=J.getFn,fieldNormWeight:n=J.fieldNormWeight}={}){let{keys:r,records:i}=e,a=new at({getFn:t,fieldNormWeight:n});return a.setKeys(r),a.setIndexRecords(i),a}function Y(e=[],t=J.minMatchCharLength){let n=[],r=-1,i=-1,a=0;for(let o=e.length;a<o;a+=1){let o=e[a];o&&r===-1?r=a:!o&&r!==-1&&(i=a-1,i-r+1>=t&&n.push([r,i]),r=-1)}return e[a-1]&&a-r>=t&&n.push([r,a-1]),n}function ct(e,t,n,{location:r=J.location,distance:i=J.distance,threshold:a=J.threshold,findAllMatches:o=J.findAllMatches,minMatchCharLength:s=J.minMatchCharLength,includeMatches:c=J.includeMatches,ignoreLocation:l=J.ignoreLocation}={}){if(t.length>32)throw Error(W(32));let u=t.length,d=e.length,f=Math.max(0,Math.min(r,d)),p=a,m=f,h=(e,t)=>{let n=e/u;if(l)return n;let r=Math.abs(f-t);return i?n+r/i:r?1:n},g=s>1||c,_=g?Array(d):[],v;for(;(v=e.indexOf(t,m))>-1;){let e=h(0,v);if(p=Math.min(e,p),m=v+u,g){let e=0;for(;e<u;)_[v+e]=1,e+=1}}m=-1;let y=[],b=1,x=0,S=u+d,ee=1<<u-1;for(let t=0;t<u;t+=1){let r=0,i=S;for(;r<i;)h(t,f+i)<=p?r=i:S=i,i=Math.floor((S-r)/2+r);S=i;let a=Math.max(1,f-i+1),s=o?d:Math.min(f+i,d)+u,c=Array(s+2);c[s+1]=(1<<t)-1;for(let r=s;r>=a;--r){let i=r-1,o=n[e[i]];if(c[r]=(c[r+1]<<1|1)&o,t&&(c[r]|=(y[r+1]|y[r])<<1|1|y[r+1]),c[r]&ee&&(b=h(t,i),b<=p)){if(p=b,m=i,x=t,m<=f)break;a=Math.max(1,2*f-m)}}if(h(t+1,f)>p)break;y=c}if(g&&m>=0){let t=Math.min(d-1,m+u-1+x);for(let r=m;r<=t;r+=1)n[e[r]]&&(_[r]=1)}let C={isMatch:m>=0,score:Math.max(.001,b)};if(g){let e=Y(_,s);e.length?c&&(C.indices=e):C.isMatch=!1}return C}function lt(e){let t={};for(let n=0,r=e.length;n<r;n+=1){let i=e.charAt(n);t[i]=(t[i]||0)|1<<r-n-1}return t}function ut(e){if(e.length<=1)return e;e.sort((e,t)=>e[0]-t[0]||e[1]-t[1]);let t=[e[0]];for(let n=1,r=e.length;n<r;n+=1){let r=t[t.length-1],i=e[n];i[0]<=r[1]+1?r[1]=Math.max(r[1],i[1]):t.push(i)}return t}var dt={ł:`l`,Ł:`L`,đ:`d`,Đ:`D`,ø:`o`,Ø:`O`,ħ:`h`,Ħ:`H`,ŧ:`t`,Ŧ:`T`,ı:`i`,ß:`ss`},ft=RegExp(`[`+Object.keys(dt).join(``)+`]`,`g`),pt=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFD`).replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,``).replace(ft,e=>dt[e]):e=>e,X=class{constructor(e,{location:t=J.location,threshold:n=J.threshold,distance:r=J.distance,includeMatches:i=J.includeMatches,findAllMatches:a=J.findAllMatches,minMatchCharLength:o=J.minMatchCharLength,isCaseSensitive:s=J.isCaseSensitive,ignoreDiacritics:c=J.ignoreDiacritics,ignoreLocation:l=J.ignoreLocation}={}){if(this.options={location:t,threshold:n,distance:r,includeMatches:i,findAllMatches:a,minMatchCharLength:o,isCaseSensitive:s,ignoreDiacritics:c,ignoreLocation:l},e=s?e:e.toLowerCase(),e=c?pt(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;let u=(e,t)=>{this.chunks.push({pattern:e,alphabet:lt(e),startIndex:t})},d=this.pattern.length;if(d>32){let e=0,t=d%32,n=d-t;for(;e<n;)u(this.pattern.substr(e,32),e),e+=32;if(t){let e=d-32;u(this.pattern.substr(e),e)}}else u(this.pattern,0)}searchIn(e){let{isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r}=this.options;if(e=t?e:e.toLowerCase(),e=n?pt(e):e,this.pattern===e){let t={isMatch:!0,score:0};return r&&(t.indices=[[0,e.length-1]]),t}let{location:i,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,ignoreLocation:l}=this.options,u=[],d=0,f=!1;this.chunks.forEach(({pattern:t,alphabet:n,startIndex:p})=>{let{isMatch:m,score:h,indices:g}=ct(e,t,n,{location:i+p,distance:a,threshold:o,findAllMatches:s,minMatchCharLength:c,includeMatches:r,ignoreLocation:l});m&&(f=!0),d+=h,m&&g&&u.push(...g)});let p={isMatch:f,score:f?d/this.chunks.length:1};return f&&r&&(p.indices=ut(u)),p}},mt=new Set([`fuzzy`,`include`]);function ht(e){return e.startsWith(`inverse`)}var gt=[{type:`exact`,multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:e=>({type:`exact`,search(t){let n=t===e;return{isMatch:n,score:+!n,indices:[0,e.length-1]}}})},{type:`include`,multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:e=>({type:`include`,search(t){let n=0,r,i=[],a=e.length;for(;(r=t.indexOf(e,n))>-1;)n=r+a,i.push([r,n-1]);let o=!!i.length;return{isMatch:o,score:+!o,indices:i}}})},{type:`prefix-exact`,multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:e=>({type:`prefix-exact`,search(t){let n=t.startsWith(e);return{isMatch:n,score:+!n,indices:[0,e.length-1]}}})},{type:`inverse-prefix-exact`,multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:e=>({type:`inverse-prefix-exact`,search(t){let n=!t.startsWith(e);return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`inverse-suffix-exact`,multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:e=>({type:`inverse-suffix-exact`,search(t){let n=!t.endsWith(e);return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`suffix-exact`,multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:e=>({type:`suffix-exact`,search(t){let n=t.endsWith(e);return{isMatch:n,score:+!n,indices:[t.length-e.length,t.length-1]}}})},{type:`inverse-exact`,multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:e=>({type:`inverse-exact`,search(t){let n=t.indexOf(e)===-1;return{isMatch:n,score:+!n,indices:[0,t.length-1]}}})},{type:`fuzzy`,multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(e,t={})=>{let n=new X(e,{location:t.location??J.location,threshold:t.threshold??J.threshold,distance:t.distance??J.distance,includeMatches:t.includeMatches??J.includeMatches,findAllMatches:t.findAllMatches??J.findAllMatches,minMatchCharLength:t.minMatchCharLength??J.minMatchCharLength,isCaseSensitive:t.isCaseSensitive??J.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics??J.ignoreDiacritics,ignoreLocation:t.ignoreLocation??J.ignoreLocation});return{type:`fuzzy`,search(e){return n.searchIn(e)}}}}],_t=gt.length,vt=`\0`,yt=`|`;function bt(e){let t=[],n=e.length,r=0;for(;r<n;){for(;r<n&&e[r]===` `;)r++;if(r>=n)break;let i=r;for(;i<n&&e[i]!==` `&&e[i]!==`"`;)i++;if(i<n&&e[i]===`"`){for(i++;i<n;){if(e[i]===`"`){let t=i+1;if(t>=n||e[t]===` `){i++;break}if(e[t]===`$`&&(t+1>=n||e[t+1]===` `)){i+=2;break}}i++}t.push(e.substring(r,i)),r=i}else{for(;i<n&&e[i]!==` `;)i++;t.push(e.substring(r,i)),r=i}}return t}function xt(e,t){let n=e.match(t);return n?n[1]:null}function St(e,t={}){return e.replace(/\\\|/g,vt).split(yt).map(e=>{let n=bt(e.replace(/\u0000/g,`|`).trim()).filter(e=>e&&!!e.trim()),r=[];for(let e=0,i=n.length;e<i;e+=1){let i=n[e],a=!1,o=-1;for(;!a&&++o<_t;){let e=gt[o],n=xt(i,e.multiRegex);n&&(r.push(e.create(n,t)),a=!0)}if(!a)for(o=-1;++o<_t;){let e=gt[o],n=xt(i,e.singleRegex);if(n){r.push(e.create(n,t));break}}}return r})}var Ct=class{constructor(e,{isCaseSensitive:t=J.isCaseSensitive,ignoreDiacritics:n=J.ignoreDiacritics,includeMatches:r=J.includeMatches,minMatchCharLength:i=J.minMatchCharLength,ignoreLocation:a=J.ignoreLocation,findAllMatches:o=J.findAllMatches,location:s=J.location,threshold:c=J.threshold,distance:l=J.distance}={}){this.query=null,this.options={isCaseSensitive:t,ignoreDiacritics:n,includeMatches:r,minMatchCharLength:i,findAllMatches:o,ignoreLocation:a,location:s,threshold:c,distance:l},e=t?e:e.toLowerCase(),e=n?pt(e):e,this.pattern=e,this.query=St(this.pattern,this.options)}static condition(e,t){return t.useExtendedSearch}searchIn(e){let t=this.query;if(!t)return{isMatch:!1,score:1};let{includeMatches:n,isCaseSensitive:r,ignoreDiacritics:i}=this.options;e=r?e:e.toLowerCase(),e=i?pt(e):e;let a=0,o=[],s=0,c=!1;for(let r=0,i=t.length;r<i;r+=1){let i=t[r];o.length=0,a=0,c=!1;for(let t=0,r=i.length;t<r;t+=1){let r=i[t],{isMatch:l,indices:u,score:d}=r.search(e);if(l)a+=1,s+=d,ht(r.type)&&(c=!0),n&&(mt.has(r.type)?o.push(...u):o.push(u));else{s=0,a=0,o.length=0,c=!1;break}}if(a){let e={isMatch:!0,score:s/a};return c&&(e.hasInverse=!0),n&&(e.indices=ut(o)),e}}return{isMatch:!1,score:1}}},wt=[];function Tt(...e){wt.push(...e)}function Et(e,t){for(let n=0,r=wt.length;n<r;n+=1){let r=wt[n];if(r.condition(e,t))return new r(e,t)}return new X(e,t)}var Z={AND:`$and`,OR:`$or`},Dt={PATH:`$path`,PATTERN:`$val`},Ot=e=>!!(e[Z.AND]||e[Z.OR]),kt=e=>!!e[Dt.PATH],Q=e=>!P(e)&&R(e)&&!Ot(e),At=e=>({[Z.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function jt(e,t,{auto:n=!0}={}){let r=e=>{if(I(e)){let r={keyId:null,pattern:e};return n&&(r.searcher=Et(e,t)),r}let i=Object.keys(e),a=kt(e);if(!a&&i.length>1&&!Ot(e))return r(At(e));if(Q(e)){let r=a?e[Dt.PATH]:i[0],o=a?e[Dt.PATTERN]:e[r];if(!I(o))throw Error(qe(r));let s={keyId:et(r),pattern:o};return n&&(s.searcher=Et(o,t)),s}let o={children:[],operator:i[0]};return i.forEach(t=>{let n=e[t];P(n)&&n.forEach(e=>{o.children.push(r(e))})}),o};return Ot(e)||(e=At(e)),r(e)}function Mt(e,{ignoreFieldNorm:t=J.ignoreFieldNorm}){let n=1;return e.forEach(({key:e,norm:r,score:i})=>{let a=e?e.weight:null;n*=(i===0&&a?2**-52:i)**+((a||1)*(t?1:r))}),n}function Nt(e,{ignoreFieldNorm:t=J.ignoreFieldNorm}){e.forEach(e=>{e.score=Mt(e.matches,{ignoreFieldNorm:t})})}var Pt=class{constructor(e){this.limit=e,this.heap=[]}get size(){return this.heap.length}shouldInsert(e){return this.size<this.limit||e<this.heap[0].score}insert(e){this.size<this.limit?(this.heap.push(e),this._bubbleUp(this.size-1)):e.score<this.heap[0].score&&(this.heap[0]=e,this._sinkDown(0))}extractSorted(e){return this.heap.sort(e)}_bubbleUp(e){let t=this.heap;for(;e>0;){let n=e-1>>1;if(t[e].score<=t[n].score)break;let r=t[e];t[e]=t[n],t[n]=r,e=n}}_sinkDown(e){let t=this.heap,n=t.length,r=e;do{e=r;let i=2*e+1,a=2*e+2;if(i<n&&t[i].score>t[r].score&&(r=i),a<n&&t[a].score>t[r].score&&(r=a),r!==e){let n=t[e];t[e]=t[r],t[r]=n}}while(r!==e)}};function Ft(e){let t=[];return e.matches.forEach(e=>{if(!B(e.indices)||!e.indices.length)return;let n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.id),e.idx>-1&&(n.refIndex=e.idx),t.push(n)}),t}function It(e,t,{includeMatches:n=J.includeMatches,includeScore:r=J.includeScore}={}){return e.map(e=>{let{idx:i}=e,a={item:t[i],refIndex:i};return n&&(a.matches=Ft(e)),r&&(a.score=e.score),a})}var Lt=/[\p{L}\p{M}\p{N}_]+/gu,Rt=new WeakSet;function zt(e){Rt.has(e)||(Rt.add(e),console.warn(`[Fuse] tokenize regex ${e} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function Bt(e){if(typeof e==`function`){let t=!1;return n=>{let r=e(n);if(!t&&(t=!0,!Array.isArray(r)||r.some(e=>typeof e!=`string`)))throw Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(r)?`array containing non-strings`:typeof r}.`);return r}}return e instanceof RegExp?(e.global||zt(e),t=>t.match(e)||[]):e=>e.match(Lt)||[]}function Vt({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:n}={}){let r=Bt(n);return{tokenize(n){return e||(n=n.toLowerCase()),t&&(n=pt(n)),r(n)}}}var Ht=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=Vt({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,tokenize:t.tokenize});let n=this.analyzer.tokenize(e),{df:r,fieldCount:i}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(let e of n){this.termSearchers.push(new X(e,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));let n=r.get(e)||0,a=Math.log(1+(i-n+.5)/(n+.5));this.idfWeights.push(a)}this.combineAll=t.tokenMatch===`all`,this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};let t=[],n=0,r=0,i=0,a=0,o=this.combineAll&&!this.useMask?new Set:null;for(let s=0;s<this.termSearchers.length;s++){let c=this.termSearchers[s].searchIn(e),l=this.idfWeights[s];r+=l,c.isMatch&&(i++,n+=l*(1-c.score),c.indices&&t.push(...c.indices),this.combineAll&&(this.useMask?a|=1<<s:o.add(s)))}if(i===0)return{isMatch:!1,score:1};let s=r>0?1-n/r:0,c={isMatch:!0,score:Math.max(.001,s)};return this.options.includeMatches&&t.length&&(c.indices=ut(t)),this.combineAll&&(this.useMask?c.matchedMask=a:c.matchedTerms=o,c.termCount=this.numTerms),c}};function Ut(e,t,n,r){let i=r.tokenize(t);if(!i.length)return;e.fieldCount++,e.docFieldCount.set(n,(e.docFieldCount.get(n)||0)+1);let a=new Set(i),o=e.docTermFieldHits.get(n);o||(o=new Map,e.docTermFieldHits.set(n,o));for(let t of a)o.set(t,(o.get(t)||0)+1),e.df.set(t,(e.df.get(t)||0)+1)}function Wt(e,t,n,r){let{i,v:a,$:o}=t;if(a!==void 0){Ut(e,a,i,r);return}if(o)for(let t=0;t<n;t++){let n=o[t];if(n)if(Array.isArray(n))for(let t of n)Ut(e,t.v,i,r);else Ut(e,n.v,i,r)}}function Gt(e,t,n){let r={fieldCount:0,df:new Map,docFieldCount:new Map,docTermFieldHits:new Map};for(let i of e)Wt(r,i,t,n);return r}function Kt(e,t,n,r){Wt(e,t,n,r)}function qt(e,t){let n=e.docFieldCount.get(t);if(n===void 0)return;e.fieldCount-=n,e.docFieldCount.delete(t);let r=e.docTermFieldHits.get(t);if(r){for(let[t,n]of r){let r=(e.df.get(t)||0)-n;r<=0?e.df.delete(t):e.df.set(t,r)}e.docTermFieldHits.delete(t)}}function Jt(e,t){if(t.length===0)return;let n=Array.from(new Set(t)).sort((e,t)=>e-t);for(let t of n)qt(e,t);let r=e=>{let t=0,r=n.length;for(;t<r;){let i=t+r>>>1;n[i]<e?t=i+1:r=i}return e-t},i=n[0],a=new Map;for(let[t,n]of e.docFieldCount)a.set(t>i?r(t):t,n);e.docFieldCount=a;let o=new Map;for(let[t,n]of e.docTermFieldHits)o.set(t>i?r(t):t,n);e.docTermFieldHits=o}var $=class{constructor(e,t,n){this.options={...J,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new Ze(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;let t=Et(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof at))throw Error(H);if(this._myIndex=t||ot(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){let e=Vt({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=Gt(this._myIndex.records,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}add(e){if(!B(e))return;this._docs.push(e);let t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){let e=Vt({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Kt(this._invertedIndex,t,this._myIndex.keys.length,e)}this._invalidateSearcherCache()}remove(e=()=>!1){let t=[],n=[];for(let r=0,i=this._docs.length;r<i;r+=1)e(this._docs[r],r)&&(t.push(this._docs[r]),n.push(r));if(n.length){this._invertedIndex&&Jt(this._invertedIndex,n);let e=new Set(n);this._docs=this._docs.filter((t,n)=>!e.has(n)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return t}removeAt(e){if(!Number.isInteger(e)||e<0||e>=this._docs.length)throw Error(U);this._invertedIndex&&Jt(this._invertedIndex,[e]);let t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),this._invalidateSearcherCache(),t}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}search(e,t){let{limit:n=-1}=t||{},{includeMatches:r,includeScore:i,shouldSort:a,sortFn:o,ignoreFieldNorm:s}=this.options;if(I(e)&&!e.trim()){let e=this._docs.map((e,t)=>({item:e,refIndex:t}));return L(n)&&n>-1&&(e=e.slice(0,n)),e}let c=L(n)&&n>0&&I(e),l;if(c){let t=new Pt(n);I(this._docs[0])?this._searchStringList(e,{heap:t,ignoreFieldNorm:s}):this._searchObjectList(e,{heap:t,ignoreFieldNorm:s}),l=t.extractSorted(o)}else l=I(e)?I(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),Nt(l,{ignoreFieldNorm:s}),a&&l.sort(o),L(n)&&n>-1&&(l=l.slice(0,n));return It(l,this._docs,{includeMatches:r,includeScore:i})}_searchStringList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{records:a}=this._myIndex,o=t?null:[];return a.forEach(({v:e,i:a,n:s})=>{if(!B(e))return;let c=r.searchIn(e);if(c.isMatch){let r={score:c.score,value:e,norm:s,indices:c.indices};i&&(r.matchedMask=c.matchedMask,r.matchedTerms=c.matchedTerms,r.termCount=c.termCount);let l=[r];if(!i||this._coversAllTokens(l)){let r={item:e,idx:a,matches:l};t?(r.score=Mt(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):o.push(r)}}}),o}_searchLogical(e){let t=jt(e,this.options),n=(e,t,r)=>{if(!(`children`in e)){let{keyId:n,searcher:i}=e,a;return n===null?(a=[],this._myIndex.keys.forEach((e,n)=>{a.push(...this._findMatches({key:e,value:t[n],searcher:i}))})):a=this._findMatches({key:this._keyStore.get(n),value:this._myIndex.getValueForItemAtKeyId(t,n),searcher:i}),a&&a.length?[{idx:r,item:t,matches:a}]:[]}let{children:i,operator:a}=e,o=[];for(let e=0,s=i.length;e<s;e+=1){let s=i[e],c=n(s,t,r);if(c.length)o.push(...c);else if(a===Z.AND)return[]}return o},r=this._myIndex.records,i=new Map,a=[];return r.forEach(({$:e,i:r})=>{if(B(e)){let o=n(t,e,r);o.length&&(i.has(r)||(i.set(r,{idx:r,item:e,matches:[]}),a.push(i.get(r))),o.forEach(({matches:e})=>{i.get(r).matches.push(...e)}))}}),a}_searchObjectList(e,{heap:t,ignoreFieldNorm:n}={}){let r=this._getSearcher(e),i=this.options.useTokenSearch&&this.options.tokenMatch===`all`,{keys:a,records:o}=this._myIndex,s=t?null:[];return o.forEach(({$:e,i:o})=>{if(!B(e))return;let c=[],l=!1,u=!1;if(a.forEach((t,n)=>{let i=this._findMatches({key:t,value:e[n],searcher:r});i.length?(c.push(...i),i[0].hasInverse&&(u=!0)):l=!0}),!(u&&l)&&c.length&&(!i||this._coversAllTokens(c))){let r={idx:o,item:e,matches:c};t?(r.score=Mt(r.matches,{ignoreFieldNorm:n}),t.shouldInsert(r.score)&&t.insert(r)):s.push(r)}}),s}_findMatches({key:e,value:t,searcher:n}){if(!B(t))return[];let r=[];if(P(t))t.forEach(({v:t,i,n:a})=>{if(!B(t))return;let o=n.searchIn(t);if(o.isMatch){let n={score:o.score,key:e,value:t,idx:i,norm:a,indices:o.indices,hasInverse:o.hasInverse};o.termCount!==void 0&&(n.matchedMask=o.matchedMask,n.matchedTerms=o.matchedTerms,n.termCount=o.termCount),r.push(n)}});else{let{v:i,n:a}=t,o=n.searchIn(i);if(o.isMatch){let t={score:o.score,key:e,value:i,norm:a,indices:o.indices,hasInverse:o.hasInverse};o.termCount!==void 0&&(t.matchedMask=o.matchedMask,t.matchedTerms=o.matchedTerms,t.termCount=o.termCount),r.push(t)}}return r}_coversAllTokens(e){let t=e.length?e[0].termCount:void 0;if(t===void 0)return!0;if(t<=31){let n=0;for(let t=0;t<e.length;t++)n|=e[t].matchedMask||0;return n===2**t-1}let n=new Set;for(let t=0;t<e.length;t++){let r=e[t].matchedTerms;if(r)for(let e of r)n.add(e)}return n.size===t}};$.version=`7.4.2`,$.createIndex=ot,$.parseIndex=st,$.config=J,$.match=function(e,t,n){if(n&&n.useTokenSearch)throw Error(Ye);return Et(e,{...J,...n}).searchIn(t)},$.parseQuery=jt,Tt(Ct),Tt(Ht),$.use=function(...e){e.forEach(e=>Tt(e))};var Yt=$;function Xt(e,t){return t===`all`?!0:t===`changed`?e===`edited`:t===`new`?e===`new`:e!==null}var Zt=e(`<span class="arrow svelte-13hq4tl" aria-hidden="true">›</span>`),Qt=e(`<hr class="svelte-13hq4tl"/>`),$t=e(`<button role="menuitem" tabindex="-1" class="svelte-13hq4tl"> </button>`),en=e(`<!> <!>`,1),tn=e(`<div role="menu" tabindex="-1"></div>`),nn=e(`<div class="submenu-anchor svelte-13hq4tl" role="presentation"><button class="submenu-trigger svelte-13hq4tl" role="menuitem"><span> </span> <!></button> <!></div>`);function rn(e,a){ie(a,!0);let o=T(a,`alwaysSubmenu`,3,!1),u=y(void 0),d=y(void 0),v=y(!1),S=y(!1),ee=y(240),C=m(()=>a.sections.filter(e=>e.length>0)),te=m(()=>s(C).flat()),E=m(()=>o()||s(te).length>1);async function ne(e=!1){if(!s(E)||(_(v,!0),await h(),!s(u)||!s(d)))return;let t=s(u).getBoundingClientRect();_(S,t.right+s(d).offsetWidth+8>window.innerWidth),_(ee,Math.max(32,window.innerHeight-t.top-8),!0),e&&s(d).querySelector(`[role="menuitem"]:not(:disabled)`)?.focus()}function re(e){if(!s(E)){let e=s(te)[0];e&&a.onSelect(e.value);return}e.stopPropagation(),ne()}function ae(e){!s(E)||e.key!==`ArrowRight`&&e.key!==`ArrowDown`||(e.preventDefault(),e.stopPropagation(),ne(!0))}function O(e){if(e.key===`ArrowLeft`||e.key===`Escape`){e.preventDefault(),e.stopPropagation(),_(v,!1),s(u)?.focus();return}if(!s(d))return;let t=[...s(d).querySelectorAll(`[role="menuitem"]:not(:disabled)`)];if(t.length===0)return;let n=t.indexOf(document.activeElement),r;if(e.key===`ArrowDown`)r=(n+1)%t.length;else if(e.key===`ArrowUp`)r=(n-1+t.length)%t.length;else if(e.key===`Home`)r=0;else if(e.key===`End`)r=t.length-1;else return;e.preventDefault(),e.stopPropagation(),t[r]?.focus()}var A=nn(),M=l(A),ce=l(M),le=l(ce,!0);D(ce);var ue=c(ce,2),de=e=>{f(e,Zt())};r(ue,e=>{s(E)&&e(de)}),D(M),x(M,e=>_(u,e),()=>s(u));var fe=c(M,2),pe=e=>{var i=tn();let o,u;t(i,21,()=>s(C),se,(e,i,o)=>{var u=en(),d=k(u),m=e=>{f(e,Qt())};r(d,e=>{o>0&&e(m)}),t(c(d,2),17,()=>s(i),e=>e.value,(e,t)=>{var r=$t(),i=l(r,!0);D(r),g(()=>{r.disabled=s(t).disabled,j(r,`title`,s(t).title),n(i,s(t).label)}),p(`click`,r,()=>a.onSelect(s(t).value)),f(e,r)}),f(e,u)}),D(i),x(i,e=>_(d,e),()=>s(d)),g(()=>{o=b(i,1,`submenu svelte-13hq4tl`,null,o,{"opens-left":s(S)}),j(i,`aria-label`,a.label),u=w(i,``,u,{"max-height":`${s(ee)}px`})}),p(`keydown`,i,O),f(e,i)};r(fe,e=>{s(E)&&s(v)&&e(pe)}),D(A),g(()=>{j(M,`aria-haspopup`,s(E)?`menu`:void 0),j(M,`aria-expanded`,s(E)?s(v):void 0),n(le,a.label)}),i(`mouseenter`,A,()=>void ne()),i(`mouseleave`,A,()=>_(v,!1)),p(`focusout`,A,e=>{e.currentTarget.contains(e.relatedTarget)||_(v,!1)}),p(`click`,M,re),p(`keydown`,M,ae),f(e,A),oe()}d([`focusout`,`click`,`keydown`]);var an=e(`<button role="menuitem" class="svelte-109nkvw">Rename</button>`),on=e(`<div class="context-menu svelte-109nkvw" role="menu" aria-label="Asset actions" tabindex="-1"><!> <!> <button class="danger svelte-109nkvw" role="menuitem"> </button> <hr class="svelte-109nkvw"/> <!></div>`);function sn(e,t){ie(t,!0);let o=m(()=>Math.max(8,Math.min(t.x,window.innerWidth-176))),u=m(()=>t.assetCount===1&&t.copyOptions.length>0),d=m(()=>2+ +!!s(u)+ +!!t.onRename),h=m(()=>Math.max(8,Math.min(t.y,window.innerHeight-(s(d)*32+17)))),_=/Mac|iPhone|iPad/.test(navigator.platform)?`Open in Finder`:/Win/.test(navigator.platform)?`Open in Explorer`:`Open in File Manager`;function v(e){e(),t.onClose()}var y=on();i(`click`,a,function(...e){t.onClose?.apply(this,e)}),i(`blur`,a,function(...e){t.onClose?.apply(this,e)}),i(`keydown`,a,e=>e.key===`Escape`&&t.onClose()),i(`resize`,a,function(...e){t.onClose?.apply(this,e)}),i(`scroll`,a,function(...e){t.onClose?.apply(this,e)});let b;var x=l(y),S=e=>{{let n=m(()=>[t.copyOptions.slice(0,1).map(e=>({label:e,value:e})),t.copyOptions.slice(1).map(e=>({label:e,value:e}))]);rn(e,{label:`Copy Asset ID`,get sections(){return s(n)},alwaysSubmenu:!0,onSelect:e=>v(()=>t.onCopy(e))})}};r(x,e=>{s(u)&&e(S)});var ee=c(x,2),C=e=>{var n=an();p(`click`,n,()=>v(t.onRename)),f(e,n)};r(ee,e=>{t.onRename&&e(C)});var te=c(ee,2),T=l(te,!0);D(te);var E=c(te,4);{let e=m(()=>[[{label:`Raw`,value:`raw`},{label:`Proxy`,value:`proxy`,disabled:!t.hasProxy,title:t.hasProxy?void 0:`No proxy is available for this asset.`}]]);rn(E,{get label(){return _},get sections(){return s(e)},alwaysSubmenu:!0,onSelect:e=>v(()=>t.onReveal(e))})}D(y),g(()=>{b=w(y,``,b,{left:`${s(o)}px`,top:`${s(h)}px`}),n(T,t.assetCount===1?`Delete Asset`:`Delete ${t.assetCount} Assets`)}),p(`contextmenu`,y,e=>e.preventDefault()),p(`click`,te,()=>v(t.onDelete)),f(e,y),oe()}d([`contextmenu`,`click`]);var cn=e(`<span class="emoji svelte-1b4m5oj"> </span>`),ln=e(`<span><!> <span class="name svelte-1b4m5oj"> </span></span>`);function un(e,t){ie(t,!0);let i=T(t,`variant`,3,`chip`),a=T(t,`passive`,3,!1),o=T(t,`via`,19,()=>[]),u=m(()=>N.manifestAppearance(t.name)),d=m(()=>s(u).color??`var(--accent)`),p=m(()=>a()?`${t.name} — passive member${o().length>0?`, via ${o().join(`, `)}`:``}`:t.name);var h=ln();let _;var v=l(h),y=e=>{var t=cn(),r=l(t,!0);D(t),g(()=>n(r,s(u).emoji)),f(e,t)};r(v,e=>{s(u).emoji&&e(y)});var x=c(v,2),S=l(x,!0);D(x),D(h),g(()=>{_=b(h,1,`manifest-label ${i()??``}`,`svelte-1b4m5oj`,_,{passive:a()}),w(h,`--manifest-color: ${s(d)??``}`),j(h,`title`,s(p)),n(S,t.name)}),f(e,h),oe()}function dn(e){return[e.id,...e.manifests.map(t=>`${t}.${e.id}`)]}var fn=e(`<!>`,1),pn=e(`<div><span class="icon-slot svelte-dr99ka"><!></span> <select class="svelte-dr99ka"><!></select></div>`);function mn(e,t){ie(t,!0);let n=T(t,`value`,15),r=T(t,`active`,3,!1);var i=pn();let a;var o=l(i);Oe(l(o),{get name(){return t.icon},size:14}),D(o);var s=c(o,2);C(s,()=>{var e=l(s),n=fn();M(k(n),()=>t.children),f(e,n)}),D(i),g(()=>{a=b(i,1,`browse-select control svelte-dr99ka`,null,a,{"filter-active":r()}),j(o,`title`,t.label),j(s,`aria-label`,t.label)}),p(`change`,s,()=>t.onChange?.(n())),O(s,n),f(e,i),oe()}d([`change`]);var hn=e(`<span class="selection-summary svelte-1uha8ag"> </span> <button class="control">Select all shown</button> <button class="control">Clear</button>`,1),gn=e(`<button class="control">Select All</button>`),_n=e(`<option>Sort alphabetically</option> <option>Sort by type</option> <option>Sort by manifest</option>`,1),vn=e(`<option> </option>`),yn=e(`<option>All types</option> <!>`,1),bn=e(`<option>All manifests</option> <!>`,1),xn=e(`<option>All Assets</option> <option>Changed Assets</option> <option>New Assets</option> <option>Changed & New Assets</option>`,1),Sn=E(`<rect class="svelte-1uha8ag"></rect>`),Cn=e(`<div class="empty svelte-1uha8ag">Loading library…</div>`),wn=e(`<div class="empty svelte-1uha8ag"> </div>`),Tn=e(`<button draggable="true"><span class="folder-card-icon svelte-1uha8ag"><!></span> <span class="folder-card-details svelte-1uha8ag"><strong class="svelte-1uha8ag"> </strong> <span class="svelte-1uha8ag"> </span></span> <span class="folder-card-arrow svelte-1uha8ag">›</span></button>`),En=e(`<section class="section folder-section svelte-1uha8ag"><!> <div class="folder-grid svelte-1uha8ag"></div></section>`),Dn=e(`<span class="section-emoji svelte-1uha8ag"> </span>`),On=e(`<!> `,1),kn=e(`<span class="badge warning svelte-1uha8ag">⚠</span>`),An=e(`<a draggable="true"><!> <input class="asset-select svelte-1uha8ag" type="checkbox"/> <div class="thumbnail checkerboard svelte-1uha8ag"><!></div> <div class="meta svelte-1uha8ag"><span class="id svelte-1uha8ag"> </span> <span class="type-badge svelte-1uha8ag"> </span></div> <div class="badges svelte-1uha8ag"><!> <!> <!></div></a>`),jn=e(`<section class="section svelte-1uha8ag"><!> <div class="grid svelte-1uha8ag"></div></section>`),Mn=e(`<!> <!>`,1),Nn=e(`<div class="drop-hint svelte-1uha8ag"> </div>`),Pn=e(`<p class="dialog-warning svelte-1uha8ag"> </p>`),Fn=e(`<p class="dialog-warning svelte-1uha8ag">An asset with this ID already exists.</p>`),In=e(`<label class="dialog-row svelte-1uha8ag"><span class="svelte-1uha8ag">ID</span> <input class="control svelte-1uha8ag" spellcheck="false"/></label> <!> <!> <!> <!>`,1),Ln=e(`<p class="dialog-text svelte-1uha8ag"> </p> <!> <!>`,1),Rn=e(`<div class="library-view svelte-1uha8ag"><!> <div role="application" aria-label="Asset library — drop a file anywhere to import it"><div class="selection-bar svelte-1uha8ag"><!> <button class="control import svelte-1uha8ag">Import file</button> <button class="control">Import from Figma</button> <input type="file" hidden=""/></div> <div class="filter-bar svelte-1uha8ag"><!> <!> <!> <!> <div><span class="search-icon-slot svelte-1uha8ag"><svg class="search-icon svelte-1uha8ag" viewBox="0 0 16 16" aria-hidden="true"><circle cx="7" cy="7" r="4.5"></circle><path d="m10.5 10.5 3 3"></path></svg></span> <input class="search-input svelte-1uha8ag" type="search" placeholder="Search assets and folders…" aria-label="Search assets and folders" spellcheck="false"/> <kbd class="svelte-1uha8ag"> </kbd></div> <label class="toggle svelte-1uha8ag"><input type="checkbox"/> Warnings only</label> <label class="preview-size-control control svelte-1uha8ag"><svg class="preview-size-icon dense svelte-1uha8ag" viewBox="0 0 14 14" aria-hidden="true"></svg> <input class="preview-size-range svelte-1uha8ag" type="range" step="8" aria-label="Preview size"/> <svg class="preview-size-icon roomy svelte-1uha8ag" viewBox="0 0 14 14" aria-hidden="true"><rect x="0.75" y="0.75" width="5.25" height="5.25" class="svelte-1uha8ag"></rect><rect x="8" y="0.75" width="5.25" height="5.25" class="svelte-1uha8ag"></rect><rect x="0.75" y="8" width="5.25" height="5.25" class="svelte-1uha8ag"></rect><rect x="8" y="8" width="5.25" height="5.25" class="svelte-1uha8ag"></rect></svg></label></div> <!> <!></div></div> <!> <!> <!> <!> <!> <!>`,1);function zn(e,d){ie(d,!0);let C=Me(de.url),T=y(v(C.sort)),E=y(v(C.folder)),O=y(v(C.type)),M=y(v(C.manifest)),Oe=y(v(C.changes)),P=y(v(C.query)),We=y(v(C.warningsOnly)),F=y(!1),I=y(null),L=y(null),Ge=y(``),R=y(null),z=y(null),B=y(null),V=y(``),Ke=y(void 0),H=y(v([])),U=y(null),qe=y(null),W=y(!1),G=y(null),Je=0,Ye=y(null),Xe=0,Ze=y(null),Qe=0,$e=y(null),et=0,K=y(v([])),q=y(null),tt=y(void 0),nt=y(void 0),rt=`fundus-library-preview-card-width`,J=y(v(st())),it=Te().join(`,`),at=/Mac|iPhone|iPad/.test(navigator.platform)?`⌘K`:`Ctrl K`,ot=m(()=>(s(J)-64)/304*100);function st(){try{let e=Number.parseInt(localStorage.getItem(rt)??``,10);return Number.isFinite(e)?Math.min(368,Math.max(64,e)):160}catch{return 160}}o(()=>{try{localStorage.setItem(rt,String(s(J)))}catch{}}),o(()=>{let e=Me(de.url);ce(()=>kt(e))});let Y=m(()=>N.state?.assets??[]),ct=m(()=>s(B)!==null&&s(V)!==s(B)?he(s(V)):null),lt=m(()=>s(B)!==null&&s(Y).some(e=>e.id!==s(B)&&e.id===s(V))),ut=m(()=>s(B)!==null&&s(V)!==s(B)&&s(ct)===null&&!s(lt)&&!s(W)),dt=m(()=>s(B)===null?[]:(s(Y).find(e=>e.id===s(B))?.references.incoming??[]).map(e=>`${e.assetId}.${e.field} → ${s(B)}`)),ft=m(()=>new Set(s(H))),pt=m(()=>s(H).flatMap(e=>(s(Y).find(t=>t.id===e)?.references.incoming??[]).filter(e=>!s(ft).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e}`))),X=m(()=>N.state?.library.folders??[]),mt=m(()=>N.manifestNames),ht=m(()=>[...new Set(s(Y).map(e=>e.type))].sort()),gt=m(()=>s(P).trim()),_t=m(()=>new Yt(s(Y),{keys:[{name:`id`,weight:.5},{name:`raw`,weight:.2},{name:`folder`,weight:.1},{name:`manifests`,weight:.08},{name:`passiveManifests.manifest`,weight:.07},{name:`type`,weight:.05}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),vt=m(()=>s(gt)===``?null:new Set(s(_t).search(s(gt)).map(({item:e})=>e.id))),yt=m(()=>s(X).map(e=>({path:e,name:Se(e)}))),bt=m(()=>new Yt(s(yt),{keys:[{name:`name`,weight:.7},{name:`path`,weight:.3}],threshold:.35,ignoreLocation:!0,ignoreDiacritics:!0})),xt=m(()=>s(gt)===``?null:new Set(s(bt).search(s(gt)).map(({item:e})=>e.path))),St=m(()=>s(E)===null?[]:s(X).filter(e=>fe(e)===s(E)).sort((e,t)=>e.localeCompare(t))),Ct=m(()=>s(xt)===null?s(St):s(St).filter(e=>s(xt).has(e)));o(()=>{N.state&&s(E)!==null&&s(E)!==``&&!s(X).includes(s(E))&&Ot(s(E))});let wt=m(()=>s(Y).filter(e=>!(s(E)!==null&&e.folder!==s(E)||s(vt)!==null&&!s(vt).has(e.id)||s(O)!==`all`&&e.type!==s(O)||!Xt(e.gitStatus,s(Oe))||s(M)!==`all`&&!e.manifests.includes(s(M))&&!e.passiveManifests.some(e=>e.manifest===s(M))||s(We)&&e.warnings.length===0))),Tt=(e,t)=>e.id.localeCompare(t.id),Et=m(()=>{let e=[...s(wt)].sort(Tt);if(s(T)===`alphabetical`)return[{key:`all`,heading:null,assets:e}];if(s(T)===`type`)return[...new Set(e.map(e=>e.type))].sort().map(t=>({key:t,heading:t,assets:e.filter(e=>e.type===t)}));let t=[];for(let n of s(mt)){let r=e.filter(e=>e.manifests.includes(n)||e.passiveManifests.some(e=>e.manifest===n));r.length>0&&t.push({key:n,heading:n,emoji:N.manifestAppearance(n).emoji,assets:r})}let n=e.filter(e=>e.manifests.length===0&&e.passiveManifests.length===0);return n.length>0&&t.push({key:`__no-manifest__`,heading:`No manifest`,assets:n}),t}),Z=m(()=>[...new Set(s(Et).flatMap(e=>e.assets.map(e=>e.id)))]);o(()=>{let e=new Set(s(Y).map(e=>e.id)),t=s(K).filter(t=>e.has(t));t.length!==s(K).length&&_(K,t,!0)});function Dt(){return{folder:s(E),sort:s(T),type:s(O),manifest:s(M),changes:s(Oe),query:s(P),warningsOnly:s(We)}}async function Ot(e){await h(),s(E)===e&&N.state&&!N.state.library.folders.includes(e)&&Q({folder:null},!0)}function kt(e){let t=Re(s(E),e.folder,{selectedAssetIds:s(K),lastSelectedAssetId:s(q)});_(K,t.selectedAssetIds,!0),_(q,t.lastSelectedAssetId,!0),_(E,e.folder,!0),_(T,e.sort,!0),_(O,e.type,!0),_(M,e.manifest,!0),_(Oe,e.changes,!0),_(P,e.query,!0),_(We,e.warningsOnly,!0)}function Q(e,t){let n={...Dt(),...e};kt(n);let r=Fe(de.url,n);r.href!==de.url.href&&ue(r,{replaceState:t,noScroll:!0,keepFocus:!0})}function At(e,t=!1){He.begin(),Q({folder:e},t)}function jt(e,t){if(t&&s(q)!==null){let t=s(Z).indexOf(s(q)),n=s(Z).indexOf(e);if(t!==-1&&n!==-1){let r=Math.min(t,n),i=Math.max(t,n);_(K,[...new Set([...s(K),...s(Z).slice(r,i+1)])],!0),_(q,e,!0);return}}_(K,s(K).includes(e)?s(K).filter(t=>t!==e):[...s(K),e],!0),_(q,e,!0)}function Mt(){_(K,[...s(Z)],!0),_(q,s(Z).at(-1)??null,!0)}function Nt(e,t){if(!e.dataTransfer||t.length<2)return;let n=[...document.querySelectorAll(`.card[data-asset-id]`)],r=t.map(e=>n.find(t=>t.dataset.assetId===e)).filter(e=>e!==void 0);if(r.length<2)return;let i=document.createElement(`div`),a=44/(r.length-1),o=Math.min(r[0].offsetWidth,180),s=r[0].offsetHeight;Object.assign(i.style,{position:`fixed`,left:`-10000px`,top:`-10000px`,width:`${o+44}px`,height:`${s+44}px`,pointerEvents:`none`});for(let[e,t]of r.entries()){let n=t.cloneNode(!0);n.querySelector(`.asset-select`)?.remove(),n.removeAttribute(`href`),n.setAttribute(`aria-hidden`,`true`),Object.assign(n.style,{position:`absolute`,left:`${e*a}px`,top:`${e*a}px`,width:`${o}px`,height:`${s}px`,boxSizing:`border-box`,opacity:`1`}),i.append(n)}let c=document.createElement(`span`);c.textContent=String(t.length),Object.assign(c.style,{position:`absolute`,right:`0`,top:`0`,minWidth:`28px`,height:`28px`,padding:`0 7px`,boxSizing:`border-box`,borderRadius:`14px`,background:`var(--accent)`,color:`var(--text)`,font:`600 13px/28px system-ui, sans-serif`,textAlign:`center`,boxShadow:`0 2px 8px rgba(0, 0, 0, 0.35)`}),i.append(c),document.body.append(i),e.dataTransfer.setDragImage(i,24,24),requestAnimationFrame(()=>i.remove())}function Pt(e){e.preventDefault(),_(F,!1);let t=e.dataTransfer?.files?.[0];t&&(_(Ge,s(E)??``,!0),_(I,t,!0))}function Ft(e){_(Ge,e,!0),s(tt)?.click()}function It(e){Xe+=1,_(Ye,{id:Xe,parent:e},!0)}function Lt(e){Qe+=1,_(Ze,{id:Qe,path:e},!0)}function Rt(e){et+=1,_($e,{id:et,path:e},!0)}function zt(e){e.preventDefault(),_(z,null),_(R,{x:e.clientX,y:e.clientY,parent:s(E)??``,renamePath:null},!0)}function Bt(e,t){e.preventDefault(),e.stopPropagation(),_(z,null),_(R,{x:e.clientX,y:e.clientY,parent:t,renamePath:t},!0)}function Vt(e,t){e.preventDefault(),e.stopPropagation(),_(R,null);let n=s(K).includes(t)?[...s(K)]:[t];s(K).includes(t)||(_(K,[t],!0),_(q,t,!0)),_(z,{x:e.clientX,y:e.clientY,assetIds:n,targetAssetId:t},!0)}function Ht(e){Je+=1,_(B,e,!0),_(V,e,!0),_(G,null),h().then(()=>{s(Ke)?.focus(),s(Ke)?.select()})}function Ut(e){Je+=1,_(H,[...new Set(e)],!0),_(G,null)}async function Wt(e,t){try{await Ee(e,t),N.error=null}catch(e){N.error=e instanceof Error?e.message:String(e)}}function Gt(e){let t=N.assetById(e);return t?dn(t):[e]}async function Kt(e){try{await navigator.clipboard.writeText(e),N.error=null}catch(e){N.error=`Could not copy asset ID: ${e instanceof Error?e.message:String(e)}`}}async function qt(e){try{await we(e),N.error=null}catch(e){N.error=e instanceof Error?e.message:String(e)}}function Jt(){s(W)||(Je+=1,_(B,null),_(H,[],!0),_(G,null))}async function $(){if(!s(ut)||s(B)===null)return;let e=s(B),t=s(V);_(W,!0),_(G,null);let n=N.mutate(()=>ve(e,{renameTo:t}),De(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});_(K,s(K).map(n=>n===e?t:n),!0),_(q,s(q)===e?t:s(q),!0),_(B,null);let r=++Je;_(W,!1);try{await n}catch(n){let i=N.assetById(e)!==null;i&&(_(K,s(K).map(n=>n===t?e:n),!0),_(q,s(q)===t?e:s(q),!0)),i&&Je===r&&(_(B,e,!0),_(V,t,!0),_(G,n instanceof Error?n.message:String(n),!0))}finally{_(W,!1)}}async function Zt(){if(s(H).length===0)return;let e=[...s(H)],t=[...s(K)],n=s(q);_(W,!0),_(G,null);let r=N.mutate(()=>_e(e),be(e),{dependencies:e.map(e=>`asset:${e}`),invalidatesOnFailure:e.map(e=>`asset:${e}`)}),i=new Set(e);_(K,s(K).filter(e=>!i.has(e)),!0),s(q)!==null&&i.has(s(q))&&_(q,null);let a=[...s(K)],o=s(q);_(H,[],!0);let c=++Je;_(W,!1);try{await r}catch(r){let i=new Set(e.filter(e=>N.assetById(e)));i.size>0&&s(K).length===a.length&&s(K).every((e,t)=>e===a[t])&&s(q)===o&&(_(K,t.filter(e=>i.has(e)),!0),_(q,n!==null&&i.has(n)?n:null,!0)),i.size>0&&Je===c&&(_(H,e.filter(e=>i.has(e)),!0),_(G,r instanceof Error?r.message:String(r),!0))}finally{_(W,!1)}}function Qt(e){return s(Y).filter(t=>t.folder===e).length}function $t(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&_(I,n,!0)}async function en(e){_(I,null),_(L,null),await ue(le(`/asset/[id]`,{id:e}))}async function tn(e,t){let n=e.filter(e=>N.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=N.assetById(e)?.folder;return t===void 0?[]:[t]})])],i=[...s(K)],a=s(q),o=N.mutate(()=>pe(n,t),xe(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]});_(K,[],!0),_(q,null);try{await o}catch{n.some(e=>N.assetById(e)?.folder!==t)&&s(K).length===0&&s(q)===null&&(_(K,i,!0),_(q,a,!0))}}function nn(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,r=Ne(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,s(U),t,s(X));!n&&!r||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),_(qe,t,!0))}function rn(e,t){e.preventDefault(),_(qe,null);let n=e.dataTransfer?.getData(`application/x-fundus-assets`);if(n){try{let e=JSON.parse(n);Array.isArray(e)&&e.every(e=>typeof e==`string`)&&tn(e,t)}catch{}return}let r=e.dataTransfer?.getData(`application/x-fundus-folder`);r&&Ae(r,t,s(X))&&an(r,t)}async function an(e,t){let n=ge(t,Se(e)),r=s(E),i=r,a=N.mutate(()=>ye(e,t),Ce(e,t),{dependencies:[`folder:${e}`,`folder:${t}`,`folder:${n}`],invalidatesOnFailure:[`folder:${e}`,`folder:${n}`]});s(E)!==null&&me(s(E),e)&&(i=`${n}${s(E).slice(e.length)}`,At(i,!0));try{await a}catch{s(E)===i&&s(X).some(t=>me(t,e))&&At(r,!0)}finally{_(U,null),_(qe,null)}}function on(e){e&&e.play().catch(()=>{})}function cn(e){e&&(e.pause(),e.currentTime=0)}function ln(e){e.defaultPrevented||e.altKey||e.shiftKey||!e.metaKey&&!e.ctrlKey||e.key.toLowerCase()!==`k`||document.querySelector(`[role="dialog"]`)!==null||(e.preventDefault(),s(nt)?.focus(),s(nt)?.select())}var fn=Rn();i(`keydown`,a,ln),i(`dragenter`,a,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),_(F,!0))}),i(`dragover`,a,e=>{e.dataTransfer?.types.includes(`Files`)&&(e.preventDefault(),_(F,!0))}),i(`drop`,a,Pt);var pn=k(fn),zn=l(pn);Ie(zn,{get selectedFolder(){return s(E)},get createRequest(){return s(Ye)},get renameRequest(){return s(Ze)},get deleteRequest(){return s($e)},onSelect:At,onMoveAssets:(e,t)=>void tn(e,t),get sharedDraggedFolder(){return s(U)},onFolderDragStart:e=>_(U,e,!0),onFolderDragEnd:()=>_(U,null),onContextMenu:(e,t,n,r)=>{_(z,null),_(R,{x:e,y:t,parent:n,renamePath:r},!0)}});var Bn=c(zn,2);let Vn;var Hn=l(Bn),Un=l(Hn),Wn=e=>{var t=hn(),r=k(t),i=l(r);D(r);var a=c(r,2),o=c(a,2);g(()=>n(i,`${s(K).length??``} selected`)),p(`click`,a,Mt),p(`click`,o,()=>{_(K,[],!0),_(q,null)}),f(e,t)},Gn=e=>{var t=gn();g(()=>t.disabled=s(Z).length===0),p(`click`,t,Mt),f(e,t)};r(Un,e=>{s(K).length>0?e(Wn):e(Gn,-1)});var Kn=c(Un,2),qn=c(Kn,2),Jn=c(qn,2);x(Jn,e=>_(tt,e),()=>s(tt)),D(Hn);var Yn=c(Hn,2),Xn=l(Yn);mn(Xn,{label:`Sort`,icon:`sort`,onChange:e=>Q({sort:e},!0),get value(){return s(T)},set value(e){_(T,e,!0)},children:(e,t)=>{var n=_n(),r=k(n);r.value=r.__value=`alphabetical`;var i=c(r,2);i.value=i.__value=`type`;var a=c(i,2);a.value=a.__value=`manifest`,f(e,n)},$$slots:{default:!0}});var Zn=c(Xn,2);{let e=m(()=>s(O)!==`all`);mn(Zn,{label:`Filter by type`,icon:`asset-type`,get active(){return s(e)},onChange:e=>Q({type:e},!0),get value(){return s(O)},set value(e){_(O,e,!0)},children:(e,r)=>{var i=yn(),a=k(i);a.value=a.__value=`all`,t(c(a,2),16,()=>s(ht),e=>e,(e,t)=>{var r=vn(),i=l(r,!0);D(r);var a={};g(()=>{n(i,t),a!==(a=t)&&(r.value=(r.__value=t)??``)}),f(e,r)}),f(e,i)},$$slots:{default:!0}})}var Qn=c(Zn,2);{let e=m(()=>s(M)!==`all`);mn(Qn,{label:`Filter by manifest`,icon:`manifest`,get active(){return s(e)},onChange:e=>Q({manifest:e},!0),get value(){return s(M)},set value(e){_(M,e,!0)},children:(e,r)=>{var i=bn(),a=k(i);a.value=a.__value=`all`,t(c(a,2),16,()=>s(mt),e=>e,(e,t)=>{let r=m(()=>N.manifestAppearance(t).emoji);var i=vn(),a=l(i,!0);D(i);var o={};g(()=>{n(a,s(r)?`${s(r)} ${t}`:t),o!==(o=t)&&(i.value=(i.__value=t)??``)}),f(e,i)}),f(e,i)},$$slots:{default:!0}})}var $n=c(Qn,2);{let e=m(()=>s(Oe)!==`all`);mn($n,{label:`Filter by Git status`,icon:`git-branch`,get active(){return s(e)},onChange:e=>Q({changes:e},!0),get value(){return s(Oe)},set value(e){_(Oe,e,!0)},children:(e,t)=>{var n=xn(),r=k(n);r.value=r.__value=`all`;var i=c(r,2);i.value=i.__value=`changed`;var a=c(i,2);a.value=a.__value=`new`;var o=c(a,2);o.value=o.__value=`changed-and-new`,f(e,n)},$$slots:{default:!0}})}var er=c($n,2);let tr;var nr=c(l(er),2);re(nr),x(nr,e=>_(nt,e),()=>s(nt));var rr=c(nr,2),ir=l(rr,!0);D(rr),D(er);var ar=c(er,2),or=l(ar);re(or),S(),D(ar);var sr=c(ar,2),cr=l(sr);t(cr,20,()=>Array(9),se,(e,t,n)=>{var r=Sn();j(r,`x`,n%3*4.5+.5),g(e=>j(r,`y`,e),[()=>Math.floor(n/3)*4.5+.5]),f(e,r)}),D(cr);var lr=c(cr,2);re(lr),j(lr,`min`,64),j(lr,`max`,368),S(2),D(sr),D(Yn);var ur=c(Yn,2),dr=e=>{f(e,Cn())},fr=e=>{var t=wn(),r=l(t,!0);D(t),g(()=>n(r,s(Y).length===0?`No assets yet — drop an image anywhere to import it.`:`Nothing matches the current filters.`)),f(e,t)},pr=e=>{var a=Mn(),o=k(a),d=e=>{var r=En(),a=l(r);Pe(a,{children:(e,t)=>{S(),f(e,u(`Folders`))},$$slots:{default:!0}});var o=c(a,2);t(o,20,()=>s(Ct),e=>e,(e,t)=>{var r=Tn();let a;var o=l(r);ze(l(o),{size:18}),D(o);var u=c(o,2),d=l(u),m=l(d,!0);D(d);var h=c(d,2),v=l(h);D(h),D(u),S(2),D(r),g((e,i)=>{a=b(r,1,`folder-card svelte-1uha8ag`,null,a,{"drop-target":s(qe)===t,"dragging-folder":s(U)===t}),n(m,e),n(v,`${i??``} assets`)},[()=>Se(t),()=>Qt(t)]),p(`click`,r,()=>At(t)),p(`contextmenu`,r,e=>Bt(e,t)),i(`dragstart`,r,e=>{_(U,t,!0),e.dataTransfer?.setData(`application/x-fundus-folder`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),i(`dragend`,r,()=>{_(U,null),_(qe,null)}),i(`dragover`,r,e=>nn(e,t)),i(`dragleave`,r,()=>_(qe,null)),i(`drop`,r,e=>rn(e,t)),f(e,r)}),D(o),D(r),f(e,r)};r(o,e=>{s(Ct).length>0&&e(d)});var h=c(o,2),v=e=>{var a=ne();t(k(a),17,()=>s(Et),e=>e.key,(e,a)=>{var o=jn(),u=l(o),d=e=>{Pe(e,{children:(e,t)=>{var i=On(),o=k(i),u=e=>{var t=Dn(),r=l(t,!0);D(t),g(()=>n(r,s(a).emoji)),f(e,t)};r(o,e=>{s(a).emoji&&e(u)});var d=c(o,1,!0);g(()=>n(d,s(a).heading)),f(e,i)},$$slots:{default:!0}})};r(u,e=>{s(a).heading&&e(d)});var h=c(u,2);t(h,21,()=>s(a).assets,e=>e.id,(e,a)=>{let o=m(()=>je[s(a).type]?.thumbnail);var u=An();let d;var h=l(u),_=e=>{{let t=m(()=>`${s(a).gitStatus===`new`?`New`:`Edited`} on ${N.state?.gitBranch??`the current Git branch`}`);ke(e,{get kind(){return s(a).gitStatus},overlay:!0,get title(){return s(t)}})}};r(h,e=>{s(a).gitStatus&&e(_)});var v=c(h,2);re(v);var y=c(v,2),x=l(y),S=e=>{var t=ne();ee(k(t),()=>s(o),(e,t)=>{t(e,{get asset(){return s(a)}})}),f(e,t)};r(x,e=>{s(o)&&e(S)}),D(y);var C=c(y,2),w=l(C),T=l(w,!0);D(w);var E=c(w,2),ie=l(E,!0);D(E),D(C);var ae=c(C,2),O=l(ae);t(O,16,()=>s(a).manifests,e=>e,(e,t)=>{un(e,{get name(){return t}})});var A=c(O,2);t(A,17,()=>s(a).passiveManifests,e=>e.manifest,(e,t)=>{un(e,{get name(){return s(t).manifest},passive:!0,get via(){return s(t).via}})}),t(c(A,2),16,()=>s(a).warnings,e=>e,(e,t)=>{var n=kn();g(()=>j(n,`title`,t)),f(e,n)}),D(ae),D(u),g((e,t,r)=>{d=b(u,1,`card svelte-1uha8ag`,null,d,e),j(u,`data-asset-id`,s(a).id),j(u,`href`,t),te(v,r),j(v,`aria-label`,`Select ${s(a).id}`),n(T,s(a).id),n(ie,s(a).type)},[()=>({selected:s(K).includes(s(a).id)}),()=>le(`/asset/[id]`,{id:s(a).id}),()=>s(K).includes(s(a).id)]),p(`contextmenu`,u,e=>Vt(e,s(a).id)),p(`click`,u,e=>{(s(K).length>0||e.metaKey||e.ctrlKey||e.shiftKey)&&(e.preventDefault(),jt(s(a).id,e.shiftKey))}),i(`dragstart`,u,e=>{let t=s(K).includes(s(a).id)?s(K):[s(a).id];e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify(t)),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`),Nt(e,t)}),i(`focus`,u,e=>on(e.currentTarget.querySelector(`video`))),i(`blur`,u,e=>cn(e.currentTarget.querySelector(`video`))),p(`click`,v,e=>{e.stopPropagation(),jt(s(a).id,e.shiftKey)}),f(e,u)}),D(h),D(o),f(e,o)}),f(e,a)};r(h,e=>{s(wt).length>0&&e(v)}),f(e,a)};r(ur,e=>{N.state?s(wt).length===0&&s(Ct).length===0?e(fr,1):e(pr,-1):e(dr)});var mr=c(ur,2),hr=e=>{var t=Nn(),r=l(t);D(t),g(()=>n(r,`Drop to import into ${(s(E)||`Root`)??``}`)),f(e,t)};r(mr,e=>{s(F)&&e(hr)}),D(Bn),D(pn);var gr=c(pn,2),_r=e=>{{let t=m(()=>s(R).renamePath===null?void 0:()=>Lt(s(R)?.renamePath??``)),n=m(()=>s(R).renamePath===null?void 0:()=>Rt(s(R)?.renamePath??``));Ve(e,{get x(){return s(R).x},get y(){return s(R).y},onReveal:()=>void qt(s(R)?.renamePath??s(R)?.parent??``),onNewDirectory:()=>It(s(R)?.parent??``),get onRenameDirectory(){return s(t)},onImportFile:()=>Ft(s(R)?.parent??``),onImportFigma:()=>_(L,s(R)?.parent??``,!0),get onDeleteDirectory(){return s(n)},onClose:()=>_(R,null)})}};r(gr,e=>{s(R)&&e(_r)});var vr=c(gr,2),yr=e=>{{let t=m(()=>Gt(s(z).targetAssetId)),n=m(()=>!!N.assetById(s(z).targetAssetId)?.proxy),r=m(()=>s(z).assetIds.length===1?()=>Ht(s(z)?.assetIds[0]??``):void 0);sn(e,{get x(){return s(z).x},get y(){return s(z).y},get assetCount(){return s(z).assetIds.length},get copyOptions(){return s(t)},onCopy:e=>void Kt(e),get hasProxy(){return s(n)},onReveal:e=>void Wt(s(z)?.targetAssetId??``,e),get onRename(){return s(r)},onDelete:()=>Ut(s(z)?.assetIds??[]),onClose:()=>_(z,null)})}};r(vr,e=>{s(z)&&e(yr)});var br=c(vr,2),xr=e=>{{let t=m(()=>s(W)?`Renaming…`:`Rename`),i=m(()=>!s(ut));Ue(e,{title:`Rename asset`,get confirmLabel(){return s(t)},get confirmDisabled(){return s(i)},get busy(){return s(W)},onConfirm:()=>void $(),onCancel:Jt,children:(e,t)=>{var i=In(),a=k(i),o=c(l(a),2);re(o),x(o,e=>_(Ke,e),()=>s(Ke)),D(a);var u=c(a,2),d=e=>{var t=Pn(),r=l(t,!0);D(t),g(()=>n(r,s(ct))),f(e,t)};r(u,e=>{s(ct)&&e(d)});var p=c(u,2),m=e=>{f(e,Fn())};r(p,e=>{s(lt)&&e(m)});var h=c(p,2),v=e=>{var t=Pn(),r=l(t);D(t),g(e=>n(r,`Renaming leaves ${s(dt).length??``} reference(s) pointing to the old ID:
|
|
2
|
-
${e??``}`),[()=>s(dt).join(`, `)]),f(e,t)};r(h,e=>{s(dt).length>0&&e(v)});var y=c(h,2),b=e=>{var t=Pn(),r=l(t,!0);D(t),g(()=>n(r,s(G))),f(e,t)};r(y,e=>{s(G)&&e(b)}),g(()=>o.disabled=s(W)),A(o,()=>s(V),e=>_(V,e)),f(e,i)},$$slots:{default:!0}})}};r(br,e=>{s(B)!==null&&e(xr)});var Sr=c(br,2),Cr=e=>{{let t=m(()=>s(H).length===1?`Delete asset`:`Delete ${s(H).length} assets`),i=m(()=>s(W)?`Deleting…`:s(H).length===1?`Delete asset`:`Delete ${s(H).length} assets`);Ue(e,{get title(){return s(t)},get confirmLabel(){return s(i)},danger:!0,get busy(){return s(W)},onConfirm:()=>void Zt(),onCancel:Jt,children:(e,t)=>{var i=Ln(),a=k(i),o=l(a);D(a);var u=c(a,2),d=e=>{var t=Pn(),r=l(t);D(t),g(e=>n(r,`This leaves ${s(pt).length??``} external reference(s) dangling:
|
|
3
|
-
${e??``}`),[()=>s(pt).join(`, `)]),f(e,t)};r(u,e=>{s(pt).length>0&&e(d)});var p=c(u,2),m=e=>{var t=Pn(),r=l(t,!0);D(t),g(()=>n(r,s(G))),f(e,t)};r(p,e=>{s(G)&&e(m)}),g(e=>n(o,`Delete ${e??``}? Their raw files and proxies are removed.`),[()=>s(H).join(`, `)]),f(e,i)},$$slots:{default:!0}})}};r(Sr,e=>{s(H).length>0&&e(Cr)});var wr=c(Sr,2),Tr=e=>{Be(e,{get file(){return s(I)},get folder(){return s(Ge)},onDone:e=>void en(e),onCancel:()=>_(I,null)})};r(wr,e=>{s(I)&&e(Tr)});var Er=c(wr,2),Dr=e=>{Le(e,{get folder(){return s(L)},onDone:e=>void en(e),onCancel:()=>_(L,null)})};r(Er,e=>{s(L)!==null&&e(Dr)}),g(()=>{Vn=b(Bn,1,`page svelte-1uha8ag`,null,Vn,{dragging:s(F)}),w(Bn,`--preview-card-width: ${s(J)}px; --preview-card-height: ${s(J)*.6}px`),j(Jn,`accept`,it),tr=b(er,1,`control search svelte-1uha8ag`,null,tr,{"filter-active":s(gt)!==``}),n(ir,at),j(sr,`title`,`Preview size: ${s(J)}px`),w(lr,`--preview-size-progress: ${s(ot)}%`),j(lr,`aria-valuetext`,`${s(J)}px wide cards`)}),p(`contextmenu`,Bn,zt),i(`dragleave`,Bn,e=>{e.relatedTarget===null&&_(F,!1)}),p(`click`,Kn,()=>Ft(s(E)??``)),p(`click`,qn,()=>_(L,s(E)??``,!0)),p(`change`,Jn,$t),p(`input`,nr,()=>Q({query:s(P)},!0)),p(`keydown`,nr,e=>{e.key===`Escape`&&(e.stopPropagation(),s(P)===``?e.currentTarget.blur():Q({query:``},!0))}),A(nr,()=>s(P),e=>_(P,e)),p(`change`,or,()=>Q({warningsOnly:s(We)},!0)),ae(or,()=>s(We),e=>_(We,e)),A(lr,()=>s(J),e=>_(J,e)),f(e,fn),oe()}d([`contextmenu`,`click`,`change`,`input`,`keydown`]);export{zn as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,E as r,H as i,I as a,J as o,K as s,M as c,N as l,O as u,P as d,Q as f,V as p,X as m,Z as h,_ as ee,a as g,at as _,b as v,f as y,it as b,k as x,l as te,nt as S,ot as C,p as ne,q as w,s as re,tt as T,u as E}from"../chunks/NblqapDQ.js";import{c as D,t as O}from"../chunks/CaKQ_luf.js";import"../chunks/xihTtKlq.js";import{t as k}from"../chunks/CliRE4wo.js";import{H as A,J as ie,O as ae,Q as oe,X as se,a as ce,c as le,et as j,m as ue,n as de,nt as fe,p as pe,t as M,u as N}from"../chunks/C7OUKWnm.js";import{t as me}from"../chunks/C3HGm51f.js";import{c as he,d as ge,l as P,m as _e,n as ve,o as ye,s as F,t as be,u as I}from"../chunks/JSnjcoVL.js";function xe(e,t,n){return n===t.revision?e??t:e}var Se=e(`<div class="center empty svelte-xy8zsr">Loading…</div>`),L=e(`<div class="center empty svelte-xy8zsr"> </div>`),Ce=e(`<div class="empty svelte-xy8zsr"> </div>`),we=e(`<p class="warning svelte-xy8zsr"> </p>`),Te=e(`<p class="hint error svelte-xy8zsr"> </p>`),Ee=e(`<section class="svelte-xy8zsr"><!> <p class="hint source-label svelte-xy8zsr"> </p> <label class="source-field svelte-xy8zsr"><span>Selection link</span> <input class="control svelte-xy8zsr" type="url"/></label> <label class="source-field svelte-xy8zsr"><span>Export scale</span> <select class="control svelte-xy8zsr"><option>1x</option><option>2x</option><option>3x</option><option>4x</option></select></label> <div class="source-actions svelte-xy8zsr"><a class="control svelte-xy8zsr" target="_blank" rel="noreferrer">Open in Figma</a> <button> </button></div> <!></section>`),De=e(`<p class="hint svelte-xy8zsr">No manifests yet — create one in the Manifests view.</p>`),Oe=e(`<p class="hint svelte-xy8zsr">No references.</p>`),ke=e(`<a class="reference-row svelte-xy8zsr"><span class="reference-field svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-asset svelte-xy8zsr"> </span></a>`),Ae=e(`<h4 class="svelte-xy8zsr">Outgoing</h4> <!>`,1),je=e(`<a class="reference-row svelte-xy8zsr"><span class="reference-asset svelte-xy8zsr"> </span> <span class="reference-arrow svelte-xy8zsr">→</span> <span class="reference-field svelte-xy8zsr"> </span></a>`),Me=e(`<h4 class="svelte-xy8zsr">Incoming</h4> <!>`,1),Ne=e(`<!> <!>`,1),Pe=e(`<div class="center svelte-xy8zsr"><!></div> <aside class="inspector svelte-xy8zsr"><section class="head svelte-xy8zsr"><h2 class="svelte-xy8zsr"> </h2> <p class="raw svelte-xy8zsr"> <span title="Raw file"> </span></p> <!></section> <!> <!> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <!></section> <section class="svelte-xy8zsr"><!> <button class="control replace-raw svelte-xy8zsr"> </button> <!> <div class="rename svelte-xy8zsr"><input class="control svelte-xy8zsr" type="text" spellcheck="false"/> <button class="control">Rename</button></div> <!> <button class="control danger svelte-xy8zsr">Delete asset</button></section></aside>`,1),Fe=e(`<div class="detail svelte-xy8zsr"><!> <!></div> <input type="file" hidden=""/> <input type="file" hidden=""/> <!> <!> <!>`,1);function R(e,l){S(l,!0);let R=f(()=>k.params.id??``),z=f(()=>M.assetById(a(R))),Ie=f(()=>M.manifestNames),Le=f(()=>a(z)?M.state?.presetNames[a(z).type]??[]:[]),Re=f(()=>a(z)?M.state?.presetCapabilities[a(z).type]??{}:{}),ze=f(()=>a(z)?he[a(z).type]??null:null),Be=f(()=>a(ze)?.panel??null),Ve=f(()=>a(ze)?.editor??null),B=f(()=>{if(a(z)?.importSource?.importer!==`figma`)return null;let e=a(z).importSource.parameters;if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=e;return typeof t.fileKey!=`string`||typeof t.nodeId!=`string`||!/^\d+:\d+$/.test(t.nodeId)||t.scale!==1&&t.scale!==2&&t.scale!==3&&t.scale!==4?null:{fileKey:t.fileKey,nodeId:t.nodeId,scale:t.scale,url:`https://www.figma.com/design/${encodeURIComponent(t.fileKey)}/fundus?node-id=${t.nodeId.replace(`:`,`-`)}`}}),V=h(null),He=0,H=f(()=>a(z)?a(V)&&a(V).assetId===a(z).id?a(V).value:b(a(z)).parameters:null);function Ue(e){a(z)&&m(V,{assetId:a(z).id,value:e,revision:++He},!0)}let U=null,W=h(null),We=h(null),Ge=0,Ke=h(null),qe=0,Je=h(null),Ye=0,G=h(null),K=h(null),Xe=h(``),Ze=h(void 0),Qe=h(void 0),q=h(null),J=h(null),Y=h(null),X=h(null),$e=h(null),Z=h(``),Q=h(2),et=f(()=>a(B)!==null&&(a(Z).trim()!==a(B).url||a(Q)!==a(B).scale));i(()=>{let e=a(B),t=a(z)&&e?`${a(z).id}|${e.fileKey}|${e.nodeId}|${e.scale}`:null;t!==a($e)&&(m($e,t,!0),m(Z,e?.url??``,!0),m(Q,e?.scale??2,!0),m(X,null))});let tt=pe().join(`,`),nt=f(()=>a(z)?ue(a(z).type).join(`,`):``),rt=h(null),$=f(()=>a(z)&&a(rt)?.assetId===a(z).id?a(rt).value:a(z)?.id??``),it=f(()=>a(z)&&a($)!==a(z).id?ae(a($))??(M.assetById(a($))?`An asset with this ID already exists.`:null):null);async function at(e){if(!a(z))return;let t=a(z).id,n=M.state?de(M.state,t,e):[`asset:${t}`];Ue(e);let r=a(V),i=M.mutate(()=>se(t,{parameters:e}),N(t,{parameters:e}),{dependencies:n});a(V)?.revision===r.revision&&m(V,null);try{await i}catch{m(V,xe(a(V),r,He),!0)}}async function ot(e){if(!a(z))return;let t=a(z).id,n=a(z).manifests.includes(e)?a(z).manifests.filter(t=>t!==e):[...a(z).manifests,e];try{await M.mutate(()=>se(t,{manifests:n}),N(t,{manifests:n}),{dependencies:[`asset:${t}`,...[...new Set([...n,e])].map(e=>`manifest:${e}`)]})}catch{}}async function st(){if(!a(z)||a($)===a(z).id||a(it))return;let e=a(z).id,t=a($),n=M.mutate(()=>se(e,{renameTo:t}),N(e,{renameTo:t}),{dependencies:[`asset:${e}`,`asset:${t}`],invalidatesOnFailure:[`asset:${e}`,`asset:${t}`]});m(rt,null);let r=a(R)===e?O(D(`/asset/[id]`,{id:t}),{replaceState:!0}):Promise.resolve();try{await Promise.all([n,r])}catch{a(R)===t&&M.assetById(e)&&await O(D(`/asset/[id]`,{id:e}),{replaceState:!0})}}async function ct(){if(!a(z))return;let e=a(z).id,t=a(z).folder;if(!confirm(`Delete "${e}"? The raw file and its proxies are removed.`))return;let n=M.mutate(()=>A(e),ce([e]),{dependencies:[`asset:${e}`],invalidatesOnFailure:[`asset:${e}`]}),r=a(R)===e?I.begin():null;U=null;let i=r===null?Promise.resolve():O(ut(t));try{await Promise.all([n,i])}catch{r!==null&&I.isCurrent(r)&&k.url.pathname===D(`/`)&&M.assetById(e)&&await O(D(`/asset/[id]`,{id:e}))}}async function lt(e,t){let n=I.begin();U=t?{assetId:t,intent:n}:null,await O(ut(e))}function ut(e){let t=new URL(D(`/`),k.url);return t.search=``,_e(t,{...ge,folder:e})}async function dt(e){let t=U;t?.assetId!==e||!I.isCurrent(t.intent)||k.url.pathname!==D(`/`)||!M.assetById(e)||(U=null,await O(D(`/asset/[id]`,{id:e})))}async function ft(e){await lt(e,a(R))}async function pt(e,t){let n=e.filter(e=>M.assetById(e)?.folder!==t);if(n.length===0)return;let r=[...new Set([t,...n.flatMap(e=>{let t=M.assetById(e)?.folder;return t===void 0?[]:[t]})])];try{await M.mutate(()=>ie(n,t),le(n,t),{dependencies:[...n.map(e=>`asset:${e}`),...r.map(e=>`folder:${e}`)]})}catch{}}function mt(e){Ge+=1,m(We,{id:Ge,parent:e},!0)}function ht(e){qe+=1,m(Ke,{id:qe,path:e},!0)}function gt(e){Ye+=1,m(Je,{id:Ye,path:e},!0)}function _t(e){m(Xe,e,!0),a(Ze)?.click()}function vt(e){let t=e.currentTarget,n=t.files?.[0];t.value=``,n&&m(G,n,!0)}async function yt(e){let t=e.currentTarget,n=t.files?.[0];if(t.value=``,!n||!a(z))return;let r=a(z).id;m(q,r,!0),m(J,null);try{await M.mutateFromServer(()=>j(r,n),{dependencies:[`asset:${r}`]})}catch(e){m(J,{assetId:r,message:e instanceof Error?e.message:String(e)},!0)}finally{a(q)===r&&m(q,null)}}function bt(){a(z)&&(a(z).importSource&&!confirm(`Replace file and disconnect Figma source? Future re-imports will no longer be available.`)||a(Qe)?.click())}async function xt(){if(!a(z)||!a(B))return;let e=a(z).id,t=a(Z).trim();if(t.length===0){m(X,{assetId:e,message:`Enter a Figma selection link.`},!0);return}m(Y,e,!0),m(X,null);let n=a(et)?{url:t,scale:a(Q)}:void 0;try{await M.mutateFromServer(()=>oe(e,n),{dependencies:[`asset:${e}`]}),m($e,null)}catch(t){m(X,{assetId:e,message:t instanceof Error?t.message:String(t)},!0)}finally{a(Y)===e&&m(Y,null)}}async function St(e){m(G,null),m(K,null),await O(D(`/asset/[id]`,{id:e}))}async function Ct(e){try{await fe(e),M.error=null}catch(e){M.error=e instanceof Error?e.message:String(e)}}var wt=Fe(),Tt=w(wt),Et=s(Tt);{let e=f(()=>a(z)?.folder??null);ve(Et,{get selectedFolder(){return a(e)},get activeAsset(){return a(z)},get createRequest(){return a(We)},get renameRequest(){return a(Ke)},get deleteRequest(){return a(Je)},onSelect:e=>void lt(e),onMoveAssets:(e,t)=>void pt(e,t),onActiveAssetDeleted:e=>void ft(e),onActiveAssetDeleteFailed:e=>void dt(e),onContextMenu:(e,t,n,r)=>{m(W,{x:e,y:t,parent:n,renamePath:r},!0)}})}var Dt=o(Et,2),Ot=e=>{u(e,Se())},kt=e=>{var t=L(),r=s(t);C(t),p(()=>n(r,`No asset with id "${a(R)??``}".`)),u(e,t)},At=e=>{var i=Pe(),l=w(i),f=s(l),h=e=>{var t=x();v(w(t),()=>a(Ve),(e,t)=>{t(e,{get asset(){return a(z)},get parameters(){return a(H)},onParametersChange:Ue,onParametersCommit:e=>void at(e)})}),u(e,t)},g=e=>{var t=Ce(),r=s(t);C(t),p(()=>n(r,`No editor registered for asset type "${a(z).type??``}".`)),u(e,t)};r(f,e=>{a(Ve)&&a(H)!==null?e(h):e(g,-1)}),C(l);var b=o(l,2),S=s(b),T=s(S),O=s(T,!0);C(T);var k=o(T,2),A=s(k),ie=o(A),ae=s(ie,!0);C(ie),C(k),t(o(k,2),16,()=>a(z).warnings,e=>e,(e,t)=>{var r=we(),i=s(r);C(r),p(()=>n(i,`⚠ ${t??``}`)),u(e,r)}),C(S);var oe=o(S,2),se=e=>{var t=x();v(w(t),()=>a(Be),(e,t)=>{t(e,{get asset(){return a(z)},get parameters(){return a(H)},onParametersChange:e=>Ue(e),onParametersCommit:e=>void at(e),get presetNames(){return a(Le)},get presetCapabilities(){return a(Re)}})}),u(e,t)};r(oe,e=>{a(Be)&&a(H)!==null&&e(se)});var ce=o(oe,2),le=e=>{var t=Ee(),i=s(t);P(i,{children:(e,t)=>{_(),u(e,c(`Source`))},$$slots:{default:!0}});var l=o(i,2),f=s(l);C(l);var h=o(l,2),g=o(s(h),2);te(g),C(h);var v=o(h,2),y=o(s(v),2),b=s(y);b.value=b.__value=1;var x=o(b);x.value=x.__value=2;var S=o(x);S.value=S.__value=3;var w=o(S);w.value=w.__value=4,C(y),C(v);var T=o(v,2),D=s(T),O=o(D,2);let k;var A=s(O,!0);C(O),C(T);var ie=o(T,2),ae=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(X).message)),u(e,t)};r(ie,e=>{a(X)?.assetId===a(z).id&&e(ae)}),C(t),p(e=>{n(f,`Figma · node ${a(B).nodeId??``}`),g.disabled=a(Y)===a(z).id,y.disabled=a(Y)===a(z).id,E(D,`href`,a(B).url),k=ee(O,1,`control svelte-xy8zsr`,null,k,{primary:a(et)}),O.disabled=e,n(A,a(Y)===a(z).id?a(et)?`Reimporting…`:`Refreshing…`:a(et)?`Reimport from Figma`:`Refresh`)},[()=>a(Y)===a(z).id||a(Z).trim().length===0]),re(g,()=>a(Z),e=>m(Z,e)),ne(y,()=>a(Q),e=>m(Q,e)),d(`click`,O,()=>void xt()),u(e,t)};r(ce,e=>{a(B)&&e(le)});var j=o(ce,2),ue=s(j);P(ue,{children:(e,t)=>{_(),u(e,c(`Manifests`))},$$slots:{default:!0}});var de=o(ue,2),fe=e=>{u(e,De())},pe=e=>{me(e,{get manifests(){return a(Ie)},get selected(){return a(z).manifests},get passive(){return a(z).passiveManifests},onToggle:e=>void ot(e)})};r(de,e=>{a(Ie).length===0?e(fe):e(pe,-1)}),C(j);var M=o(j,2),N=s(M);P(N,{children:(e,t)=>{_(),u(e,c(`References`))},$$slots:{default:!0}});var he=o(N,2),ge=e=>{u(e,Oe())},_e=e=>{var i=Ne(),c=w(i),l=e=>{var r=Ae();t(o(w(r),2),17,()=>a(z).references.outgoing,e=>`${e.field}→${e.assetId}`,(e,t)=>{var r=ke(),i=s(r),c=s(i,!0);C(i);var l=o(i,4),d=s(l,!0);C(l),C(r),p(e=>{E(r,`href`,e),n(c,a(t).field),n(d,a(t).assetId)},[()=>D(`/asset/[id]`,{id:a(t).assetId})]),u(e,r)}),u(e,r)};r(c,e=>{a(z).references.outgoing.length>0&&e(l)});var d=o(c,2),f=e=>{var r=Me();t(o(w(r),2),17,()=>a(z).references.incoming,e=>`${e.assetId}→${e.field}`,(e,t)=>{var r=je(),i=s(r),c=s(i,!0);C(i);var l=o(i,4),d=s(l,!0);C(l),C(r),p(e=>{E(r,`href`,e),n(c,a(t).assetId),n(d,a(t).field)},[()=>D(`/asset/[id]`,{id:a(t).assetId})]),u(e,r)}),u(e,r)};r(d,e=>{a(z).references.incoming.length>0&&e(f)}),u(e,i)};r(he,e=>{a(z).references.outgoing.length===0&&a(z).references.incoming.length===0?e(ge):e(_e,-1)}),C(M);var ve=o(M,2),ye=s(ve);P(ye,{children:(e,t)=>{_(),u(e,c(`Asset`))},$$slots:{default:!0}});var F=o(ye,2),be=s(F,!0);C(F);var I=o(F,2),xe=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(J).message)),u(e,t)};r(I,e=>{a(J)?.assetId===a(z).id&&e(xe)});var Se=o(I,2),L=s(Se);te(L);var Fe=o(L,2);C(Se);var R=o(Se,2),ze=e=>{var t=Te(),r=s(t,!0);C(t),p(()=>n(r,a(it))),u(e,t)};r(R,e=>{a(it)&&e(ze)});var V=o(R,2);C(ve),C(b),p(()=>{n(O,a(z).id),n(A,`${a(z).type??``} · `),n(ae,a(z).raw),F.disabled=a(q)===a(z).id,n(be,a(q)===a(z).id?`Replacing…`:`Replace`),y(L,a($)),Fe.disabled=a($)===a(z).id||a(it)!==null}),d(`click`,F,bt),d(`input`,L,e=>m(rt,{assetId:a(z).id,value:e.currentTarget.value},!0)),d(`click`,Fe,()=>void st()),d(`click`,V,()=>void ct()),u(e,i)};r(Dt,e=>{M.loaded?a(z)?e(At,-1):e(kt,1):e(Ot)}),C(Tt);var jt=o(Tt,2);g(jt,e=>m(Ze,e),()=>a(Ze));var Mt=o(jt,2);g(Mt,e=>m(Qe,e),()=>a(Qe));var Nt=o(Mt,2),Pt=e=>{{let t=f(()=>a(W).renamePath===null?void 0:()=>ht(a(W)?.renamePath??``)),n=f(()=>a(W).renamePath===null?void 0:()=>gt(a(W)?.renamePath??``));be(e,{get x(){return a(W).x},get y(){return a(W).y},onReveal:()=>void Ct(a(W)?.renamePath??a(W)?.parent??``),onNewDirectory:()=>mt(a(W)?.parent??``),get onRenameDirectory(){return a(t)},onImportFile:()=>_t(a(W)?.parent??``),onImportFigma:()=>m(K,a(W)?.parent??``,!0),get onDeleteDirectory(){return a(n)},onClose:()=>m(W,null)})}};r(Nt,e=>{a(W)&&e(Pt)});var Ft=o(Nt,2),It=e=>{F(e,{get file(){return a(G)},get folder(){return a(Xe)},onDone:e=>void St(e),onCancel:()=>m(G,null)})};r(Ft,e=>{a(G)&&e(It)});var Lt=o(Ft,2),Rt=e=>{ye(e,{get folder(){return a(K)},onDone:e=>void St(e),onCancel:()=>m(K,null)})};r(Lt,e=>{a(K)!==null&&e(Rt)}),p(()=>{E(jt,`accept`,tt),E(Mt,`accept`,a(nt))}),d(`change`,jt,vt),d(`change`,Mt,e=>void yt(e)),u(e,wt),T()}l([`click`,`input`,`change`]);export{R as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,E as r,H as i,I as a,J as o,K as s,N as c,O as l,P as u,Q as d,V as f,X as p,Z as m,_ as h,a as g,at as _,g as v,i as y,l as b,nt as x,ot as S,q as C,s as w,tt as T,u as E,x as D}from"../chunks/NblqapDQ.js";import{c as ee}from"../chunks/CaKQ_luf.js";import"../chunks/xihTtKlq.js";import{G as te,V as O,Z as k,d as A,i as j,k as M,s as ne,t as N}from"../chunks/C7OUKWnm.js";import{r as P,t as F}from"../chunks/BD3hQKzV.js";var I=[{name:`slate`,value:`#64748b`},{name:`red`,value:`#ef4444`},{name:`orange`,value:`#f97316`},{name:`amber`,value:`#f59e0b`},{name:`yellow`,value:`#eab308`},{name:`lime`,value:`#84cc16`},{name:`green`,value:`#22c55e`},{name:`teal`,value:`#14b8a6`},{name:`cyan`,value:`#06b6d4`},{name:`blue`,value:`#3b82f6`},{name:`indigo`,value:`#6366f1`},{name:`violet`,value:`#8b5cf6`},{name:`pink`,value:`#ec4899`}],L=`🗂️.🏠.🎯.⭐.🔥.💎.🎨.🧩.🚀.🎵.🏆.⚡.🌟.🍀.🎁.📦.🗺️.🔑.🛒.❤️.🐙.🎲.🌈.🧪.🎪.🎭.🎬.🎤.🎧.🎸.🥁.🔔.💡.🔮.🧭.⏰.📸.🖼️.📚.✏️.🖌️.🧲.⚙️.🛠️.🔧.🧰.🔌.🔋.🌍.🌙.☀️.❄️.🌊.🍄.🌵.🌸.🍎.🍕.🍩.☕.🐳.🦄.🐝`.split(`.`),R=e(`<div role="dialog"><!></div>`),z=e(`<div class="popover-anchor svelte-1rznwff"><!> <!></div>`);function B(e,t){x(t,!0);let n=y(t,`open`,15,!1),c=y(t,`align`,3,`left`),u=m(void 0);function d(){n(!n())}i(()=>{if(!n())return;function e(e){a(u)&&!a(u).contains(e.target)&&n(!1)}function t(e){e.key===`Escape`&&n(!1)}return window.addEventListener(`pointerdown`,e,!0),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e,!0),window.removeEventListener(`keydown`,t)}});var _=z(),v=s(_);D(v,()=>t.trigger,()=>({toggle:d,open:n()}));var b=o(v,2),C=e=>{var n=R();let r;D(s(n),()=>t.children),S(n),f(()=>{r=h(n,1,`popover svelte-1rznwff`,null,r,{right:c()===`right`}),E(n,`aria-label`,t.label)}),l(e,n)};r(b,e=>{n()&&e(C)}),S(_),g(_,e=>p(u,e),()=>a(u)),l(e,_),T()}var V=e(`<button type="button" title="Emoji"> </button>`),H=e(`<button type="button"> </button>`),U=e(`<div class="picker emojis svelte-58t64l"><button type="button" title="No emoji" aria-label="No emoji">∅</button> <!></div>`),W=e(`<button type="button" title="Color"></button>`),G=e(`<button type="button"></button>`),K=e(`<div class="picker swatches svelte-58t64l"><button type="button" title="No color" aria-label="No color"></button> <!></div>`),re=e(`<div class="controls svelte-58t64l"><!> <!></div>`);function ie(e,r){x(r,!0);let i=d(()=>N.manifestAppearance(r.name)),c=d(()=>a(i).color??null),g=d(()=>a(i).emoji??null),_=m(!1),y=m(!1);async function b(e){let t=r.name;p(_,!1);try{await N.mutate(()=>k(t,{color:e}),A(t,{color:e}),{dependencies:[`manifest:${t}`]})}catch{}}async function C(e){let t=r.name;p(y,!1);try{await N.mutate(()=>k(t,{emoji:e}),A(t,{emoji:e}),{dependencies:[`manifest:${t}`]})}catch{}}var w=re(),D=s(w);B(D,{get label(){return`Pick an emoji for ${r.name??``}`},get open(){return a(y)},set open(e){p(y,e,!0)},trigger:(e,t)=>{let i=()=>(t?.()).toggle,o=()=>(t?.()).open;var c=V();let d;var p=s(c,!0);S(c),f(()=>{d=h(c,1,`emoji-trigger svelte-58t64l`,null,d,{empty:!a(g),active:o()}),E(c,`aria-label`,`Emoji for ${r.name??``}`),n(p,a(g)??`☺`)}),u(`click`,c,function(...e){i()?.apply(this,e)}),l(e,c)},children:(e,r)=>{var i=U(),c=s(i);let d;t(o(c,2),16,()=>L,e=>e,(e,t)=>{var r=H();let i;var o=s(r,!0);S(r),f(()=>{i=h(r,1,`emoji svelte-58t64l`,null,i,{selected:a(g)===t}),E(r,`title`,t),n(o,t)}),u(`click`,r,()=>void C(t)),l(e,r)}),S(i),f(()=>d=h(c,1,`emoji none svelte-58t64l`,null,d,{selected:a(g)===null})),u(`click`,c,()=>void C(null)),l(e,i)},$$slots:{trigger:!0,default:!0}}),B(o(D,2),{get label(){return`Pick a color for ${r.name??``}`},get open(){return a(_)},set open(e){p(_,e,!0)},trigger:(e,t)=>{let n=()=>(t?.()).toggle,i=()=>(t?.()).open;var o=W();let s;f(()=>{s=h(o,1,`swatch-trigger svelte-58t64l`,null,s,{empty:!a(c),active:i()}),v(o,`--swatch: ${a(c)??`transparent`??``}`),E(o,`aria-label`,`Color for ${r.name??``}`)}),u(`click`,o,function(...e){n()?.apply(this,e)}),l(e,o)},children:(e,n)=>{var r=K(),i=s(r);let d;t(o(i,2),17,()=>I,e=>e.value,(e,t)=>{var n=G();let r;f(()=>{r=h(n,1,`swatch svelte-58t64l`,null,r,{selected:a(c)===a(t).value}),v(n,`background: ${a(t).value??``}`),E(n,`title`,a(t).name),E(n,`aria-label`,a(t).name)}),u(`click`,n,()=>void b(a(t).value)),l(e,n)}),S(r),f(()=>d=h(i,1,`swatch none svelte-58t64l`,null,d,{selected:a(c)===null})),u(`click`,i,()=>void b(null)),l(e,r)},$$slots:{trigger:!0,default:!0}}),S(w),l(e,w),T()}c([`click`]);var ae=e(`<span class="hint svelte-1k9wgg5"> </span>`),oe=e(`<div class="empty svelte-1k9wgg5">No manifests yet. Assets only get processed and generated once they are in a manifest.</div>`),se=e(`<span class="asset-type svelte-1k9wgg5"> </span>`),ce=e(`<li class="passive-member svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id passive-id svelte-1k9wgg5"> </span> <!> <span class="asset-via svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li>`),le=e(`<li class="svelte-1k9wgg5"><a class="svelte-1k9wgg5"><span class="asset-id svelte-1k9wgg5"> </span> <span class="asset-type svelte-1k9wgg5"> </span> <span class="asset-size svelte-1k9wgg5"> </span></a></li> <!>`,1),ue=e(`<ul class="svelte-1k9wgg5"></ul>`),de=e(`<p class="hint svelte-1k9wgg5">Empty — an empty manifest still generates an (empty) module.</p>`),fe=e(`<section class="manifest svelte-1k9wgg5"><header class="svelte-1k9wgg5"><!> <h2 class="svelte-1k9wgg5"> </h2> <span class="size svelte-1k9wgg5" title="Total delivered proxy size incl. the reference closure — the preload budget"> </span> <span class="count svelte-1k9wgg5"> </span> <button class="control">Rename</button> <button class="control danger">Delete</button></header> <!></section>`),pe=e(`<div class="list svelte-1k9wgg5"></div>`),q=e(`<p class="dialog-text warn svelte-1k9wgg5"> </p>`),me=e(`<p class="dialog-text svelte-1k9wgg5">Delete manifest <strong> </strong> </p> <!>`,1),he=e(`<p class="dialog-text warn svelte-1k9wgg5">A manifest with this name already exists.</p>`),ge=e(`<label class="dialog-row svelte-1k9wgg5"><span class="dialog-label svelte-1k9wgg5">Name</span> <input class="control svelte-1k9wgg5" type="text" spellcheck="false"/></label> <!> <p class="dialog-text svelte-1k9wgg5">The generated module is renamed with the manifest — host code importing <code> </code> must be updated by hand.</p> <!>`,1),_e=e(`<div class="page svelte-1k9wgg5"><div class="create svelte-1k9wgg5"><input class="control svelte-1k9wgg5" type="text" placeholder="newManifestName" spellcheck="false"/> <button class="control primary">Create manifest</button> <!></div> <!></div> <!> <!>`,1);function ve(e,i){x(i,!0);let c=m(``),h=d(()=>N.state?.assets??[]),g=d(()=>N.manifestNames);function y(e){return a(h).filter(t=>t.manifests.includes(e))}function D(e){return N.state?.manifestMemberships[e]?.passiveMembers??[]}function I(e,t){return D(e).filter(e=>e.via.includes(t))}function L(e){return N.state?.manifestDeliveredBytes[e]??0}let R=d(()=>a(c)?M(a(c)):null),z=d(()=>a(c)!==``&&!a(R)&&!a(g).includes(a(c)));async function B(){if(!a(z))return;let e=a(c),t=N.mutate(()=>O(e),j(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});p(c,``);try{await t}catch{a(c)===``&&!Object.hasOwn(N.state?.library.manifests??{},e)&&p(c,e,!0)}}let V=m(null),H=m(null),U=m(``),W=m(!1),G=m(null),K=0;function re(e){K+=1,p(G,null),p(V,e,!0)}function ve(e){K+=1,p(G,null),p(U,e,!0),p(H,e,!0)}function J(){K+=1,p(V,null),p(H,null),p(G,null)}let Y=d(()=>a(H)!==null&&a(U)!==a(H)?M(a(U)):null),ye=d(()=>a(H)!==null&&a(U)!==a(H)&&a(g).includes(a(U))),be=d(()=>a(H)!==null&&a(U)!==a(H)&&!a(Y)&&!a(ye));async function xe(){if(a(V)===null)return;let e=a(V);p(W,!0),p(G,null);let t=N.mutate(()=>te(e),ne(e),{dependencies:[`manifest:${e}`],invalidatesOnFailure:[`manifest:${e}`]});J();let n=K;p(W,!1);try{await t}catch(t){K===n&&Object.hasOwn(N.state?.library.manifests??{},e)&&(p(V,e,!0),p(G,t instanceof Error?t.message:String(t),!0))}finally{p(W,!1)}}async function Se(){if(a(H)===null||!a(be))return;let e=a(H),t=a(U);p(W,!0),p(G,null);let n=N.mutate(()=>k(e,{renameTo:t}),A(e,{renameTo:t}),{dependencies:[`manifest:${e}`,`manifest:${t}`],invalidatesOnFailure:[`manifest:${e}`,`manifest:${t}`]});J();let r=K;p(W,!1);try{await n}catch(n){K===r&&Object.hasOwn(N.state?.library.manifests??{},e)&&(p(H,e,!0),p(U,t,!0),p(G,n instanceof Error?n.message:String(n),!0))}finally{p(W,!1)}}var Ce=_e(),X=C(Ce),Z=s(X),Q=s(Z);b(Q);var $=o(Q,2),we=o($,2),Te=e=>{var t=ae(),r=s(t,!0);S(t),f(()=>n(r,a(R))),l(e,t)};r(we,e=>{a(R)&&e(Te)}),S(Z);var Ee=o(Z,2),De=e=>{l(e,oe())},Oe=e=>{var i=pe();t(i,20,()=>a(g),e=>e,(e,i)=>{var c=fe(),p=s(c),m=s(p);ie(m,{get name(){return i}});var h=o(m,2),g=s(h,!0);S(h);var _=o(h,2),b=s(_,!0);S(_);var x=o(_,2),w=s(x);S(x);var T=o(x,2),te=o(T,2);S(p);var O=o(p,2),k=e=>{var c=ue();t(c,21,()=>y(i),e=>e.id,(e,c)=>{var u=le(),p=C(u),m=s(p),h=s(m),g=s(h,!0);S(h);var _=o(h,2),v=s(_,!0);S(_);var y=o(_,2),b=s(y,!0);S(y),S(m),S(p),t(o(p,2),17,()=>I(i,a(c).id),e=>e.assetId,(e,t)=>{let i=d(()=>N.assetById(a(t).assetId));var u=ce(),p=s(u),m=s(p),h=s(m,!0);S(m);var g=o(m,2),_=e=>{var t=se(),r=s(t,!0);S(t),f(()=>n(r,a(i).type)),l(e,t)};r(g,e=>{a(i)&&e(_)});var v=o(g,2),y=s(v);S(v);var b=o(v,2),x=s(b,!0);S(b),S(p),S(u),f((e,r)=>{E(p,`href`,e),n(h,a(t).assetId),n(y,`via ${a(c).id??``}`),n(x,r)},[()=>ee(`/asset/[id]`,{id:a(t).assetId}),()=>a(i)?.proxy?P(a(i).proxy.fileSize):`—`]),l(e,u)}),f((e,t)=>{E(m,`href`,e),n(g,a(c).id),n(v,a(c).type),n(b,t)},[()=>ee(`/asset/[id]`,{id:a(c).id}),()=>a(c).proxy?P(a(c).proxy.fileSize):`—`]),l(e,u)}),S(c),l(e,c)},A=d(()=>y(i).length>0),j=e=>{l(e,de())};r(O,e=>{a(A)?e(k):e(j,-1)}),S(c),f((e,t,r,a)=>{v(c,`--manifest-color: ${e??``}`),n(g,i),n(b,t),n(w,`${r??``} asset(s)${a??``}`)},[()=>N.manifestAppearance(i).color??`var(--border-soft)`,()=>P(L(i)),()=>y(i).length,()=>D(i).length>0?` + ${D(i).length} passive`:``]),u(`click`,T,()=>ve(i)),u(`click`,te,()=>re(i)),l(e,c)}),S(i),l(e,i)};r(Ee,e=>{a(g).length===0?e(De):e(Oe,-1)}),S(X);var ke=o(X,2),Ae=e=>{let t=d(()=>y(a(V)).length);{let i=d(()=>a(W)?`Deleting…`:`Delete`);F(e,{title:`Delete manifest`,get confirmLabel(){return a(i)},danger:!0,get busy(){return a(W)},onConfirm:()=>void xe(),onCancel:J,children:(e,i)=>{var c=me(),u=C(c),d=o(s(u)),p=s(d,!0);S(d);var m=o(d);S(u);var h=o(u,2),g=e=>{var t=q(),r=s(t,!0);S(t),f(()=>n(r,a(G))),l(e,t)};r(h,e=>{a(G)&&e(g)}),f(()=>{n(p,a(V)),n(m,`? Its generated module is removed. Assets are
|
|
2
|
-
not deleted${a(t)>0?`, but ${a(t)} asset(s) lose this membership and may become unreachable`:``}.`)}),l(e,c)},$$slots:{default:!0}})}};r(ke,e=>{a(V)!==null&&e(Ae)});var je=o(ke,2),Me=e=>{{let t=d(()=>a(W)?`Renaming…`:`Rename`),i=d(()=>!a(be));F(e,{title:`Rename manifest`,get confirmLabel(){return a(t)},get confirmDisabled(){return a(i)},get busy(){return a(W)},onConfirm:()=>void Se(),onCancel:J,children:(e,t)=>{var i=ge(),c=C(i),u=o(s(c),2);b(u),S(c);var d=o(c,2),m=e=>{var t=q(),r=s(t,!0);S(t),f(()=>n(r,a(Y))),l(e,t)},h=e=>{l(e,he())};r(d,e=>{a(Y)?e(m):a(ye)&&e(h,1)});var g=o(d,2),v=o(s(g)),y=s(v,!0);S(v),_(),S(g);var x=o(g,2),T=e=>{var t=q(),r=s(t,!0);S(t),f(()=>n(r,a(G))),l(e,t)};r(x,e=>{a(G)&&e(T)}),f(()=>{u.disabled=a(W),n(y,a(H))}),w(u,()=>a(U),e=>p(U,e)),l(e,i)},$$slots:{default:!0}})}};r(je,e=>{a(H)!==null&&e(Me)}),f(()=>$.disabled=!a(z)),u(`keydown`,Q,e=>{e.key===`Enter`&&B()}),w(Q,()=>a(c),e=>p(c,e)),u(`click`,$,()=>void B()),l(e,Ce),T()}c([`keydown`,`click`]);export{ve as component};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js-Cg-Pih8x.js","sources":["../../../../.svelte-kit/output/server/chunks/context.js"],"sourcesContent":["import { _ as normalizeFolderPath, a as proposeAssetId, b as rawFileNameOfPath, n as compareCodeUnits, o as typesForFileName, p as folderOfRawPath, t as canonicalizeParameters, v as parentFolderPath, y as portableFolderPathKey } from \"./core.js\";\nimport { a as processAssets, c as generateManifestModules, d as serverPluginsByType, f as isRecord, l as descriptorsByType, n as invalidInput, o as readCurrentProxy, p as parseLibrary, r as LibraryStore, s as encodeRelativePathForUrl, t as SourceImportError, u as serverPluginForType } from \"./contract.js\";\nimport { n as computeLibraryMembership, o as assetIdError, r as collectAllReferences, t as allDeliveredAssetIds } from \"./manifest-membership.js\";\nimport { a as verifyStableRawFile, t as classifyRawDirectory } from \"./raw-reconciliation2.js\";\nimport { extname, isAbsolute, join, relative, resolve, sep } from \"node:path\";\nimport { existsSync } from \"node:fs\";\nimport { createJiti } from \"jiti\";\nimport { realpath } from \"node:fs/promises\";\nimport { execFile } from \"node:child_process\";\nimport { isDeepStrictEqual, promisify } from \"node:util\";\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\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\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 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 || 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/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/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}\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\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\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 (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 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\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\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\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: { scale: this.#config.import.figma.defaults.scale } },\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...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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"}
|