fundus 0.29.0 → 0.29.1
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/build/client/_app/immutable/chunks/CE3cWlK6.js +1 -0
- package/build/client/_app/immutable/chunks/CE3cWlK6.js.br +0 -0
- package/build/client/_app/immutable/chunks/CE3cWlK6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{kkVEh3_1.js → Cq3PJxJG.js} +1 -1
- package/build/client/_app/immutable/chunks/Cq3PJxJG.js.br +2 -0
- package/build/client/_app/immutable/chunks/Cq3PJxJG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BCmR1_e0.js → Wk7WcyQU.js} +1 -1
- package/build/client/_app/immutable/chunks/Wk7WcyQU.js.br +0 -0
- package/build/client/_app/immutable/chunks/Wk7WcyQU.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.DCXSqiQ1.js → app.Dit62aNJ.js} +2 -2
- package/build/client/_app/immutable/entry/app.Dit62aNJ.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Dit62aNJ.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CCBu6ABN.js +1 -0
- package/build/client/_app/immutable/entry/start.CCBu6ABN.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CCBu6ABN.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.CsqkK05g.js → 0.DnyKXqLr.js} +1 -1
- package/build/client/_app/immutable/nodes/0.DnyKXqLr.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.DnyKXqLr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.BVSXvtU9.js → 1.Cz-4S6LF.js} +1 -1
- package/build/client/_app/immutable/nodes/1.Cz-4S6LF.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Cz-4S6LF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.BJEXWmrT.js → 2.C75-hsCY.js} +1 -1
- package/build/client/_app/immutable/nodes/2.C75-hsCY.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C75-hsCY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.BDMmDyL1.js → 3.4pSddugU.js} +1 -1
- package/build/client/_app/immutable/nodes/3.4pSddugU.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.4pSddugU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.dd49_qQE.js → 4.KoQxJEWQ.js} +1 -1
- package/build/client/_app/immutable/nodes/4.KoQxJEWQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.KoQxJEWQ.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-DFZgDxCD.js → context.js-BR2IRl9z.js} +52 -24
- package/build/server/chunks/chunks/context.js-BR2IRl9z.js.map +1 -0
- package/build/server/chunks/chunks/{contract.js-DGZXpcNX.js → contract.js-DHeIVVv8.js} +44 -10
- package/build/server/chunks/chunks/contract.js-DHeIVVv8.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-BsVKSGJk.js → exports.js-CNZgoxR0.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-BsVKSGJk.js.map → exports.js-CNZgoxR0.js.map} +1 -1
- package/build/server/chunks/chunks/{http.js-BQhjMaW9.js → http.js-dk5jbOFm.js} +2 -2
- package/build/server/chunks/chunks/{http.js-BQhjMaW9.js.map → http.js-dk5jbOFm.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-DJGcNryj.js → internal.js-DlRiYJji.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-DJGcNryj.js.map → internal.js-DlRiYJji.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{raw-reconciliation2.js-CMpUvuMd.js → raw-reconciliation.js-Cco4r8lr.js} +51 -17
- package/build/server/chunks/chunks/raw-reconciliation.js-Cco4r8lr.js.map +1 -0
- package/build/server/chunks/chunks/{raw-reconciliation.js-D2sI2C-t.js → raw-reconciliation2.js-CuYSsYTP.js} +2 -2
- package/build/server/chunks/chunks/raw-reconciliation2.js-CuYSsYTP.js.map +1 -0
- package/build/server/chunks/chunks/{shared.js-BtmYg0tL.js → shared.js-C6qC0jnA.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-BtmYg0tL.js.map → shared.js-C6qC0jnA.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-CqXk0Ug6.js → utils.js-BZ32hXFI.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-CqXk0Ug6.js.map → utils.js-BZ32hXFI.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-DKGD9Jk2.js → _server.ts.js-8jGLP2Aj.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-DKGD9Jk2.js.map → _server.ts.js-8jGLP2Aj.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-C1UfF0EO.js → _server.ts.js-BOW9Ejim.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-C1UfF0EO.js.map → _server.ts.js-BOW9Ejim.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DpASkk00.js → _server.ts.js-Clac8atJ.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/{_server.ts.js-DpASkk00.js.map → _server.ts.js-Clac8atJ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-C3jU2vC8.js → _server.ts.js-EdHTA-SO.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/assets/_id_/reimport/{_server.ts.js-C3jU2vC8.js.map → _server.ts.js-EdHTA-SO.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-B7OwufF3.js → _server.ts.js-ZBCRgRYi.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/assets/_id_/retag/{_server.ts.js-B7OwufF3.js.map → _server.ts.js-ZBCRgRYi.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-COhg1nYk.js → _server.ts.js-DY_e5K6d.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-COhg1nYk.js.map → _server.ts.js-DY_e5K6d.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DAEE17eM.js → _server.ts.js-Cl2jxJNi.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DAEE17eM.js.map → _server.ts.js-Cl2jxJNi.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BrZSS4gm.js → _server.ts.js-DrrZWUbd.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BrZSS4gm.js.map → _server.ts.js-DrrZWUbd.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/events/{_server.ts.js-Cfst-Brd.js → _server.ts.js-Bnw0HbEk.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/events/{_server.ts.js-Cfst-Brd.js.map → _server.ts.js-Bnw0HbEk.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-aN_h2Ifo.js → _server.ts.js-NeVn2ap9.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-aN_h2Ifo.js.map → _server.ts.js-NeVn2ap9.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CX2A66ij.js → _server.ts.js-ENGDgoLy.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-CX2A66ij.js.map → _server.ts.js-ENGDgoLy.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CwTiaheP.js → _server.ts.js-BQVGCzBR.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/imports/{_server.ts.js-CwTiaheP.js.map → _server.ts.js-BQVGCzBR.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-fIbsr_2e.js → _server.ts.js-Pxver0Y-.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-fIbsr_2e.js.map → _server.ts.js-Pxver0Y-.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Dvo1bsLi.js → _server.ts.js-DYtiqzJq.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-Dvo1bsLi.js.map → _server.ts.js-DYtiqzJq.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-VLg1G3mN.js → _server.ts.js-lBgmEZHV.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/raw/adopt/{_server.ts.js-VLg1G3mN.js.map → _server.ts.js-lBgmEZHV.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DqctsOop.js → _server.ts.js-BJHyONFH.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/raw/edited/accept/{_server.ts.js-DqctsOop.js.map → _server.ts.js-BJHyONFH.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-CoxSU5iO.js → _server.ts.js-Bm5XO80W.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/raw/edited/dismiss/{_server.ts.js-CoxSU5iO.js.map → _server.ts.js-Bm5XO80W.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-wUxsLZdr.js → _server.ts.js-B7Z20kYf.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/reconcile/{_server.ts.js-wUxsLZdr.js.map → _server.ts.js-B7Z20kYf.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-BKsF0Oit.js → _server.ts.js-Cg-f37jc.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/reveal/{_server.ts.js-BKsF0Oit.js.map → _server.ts.js-Cg-f37jc.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-Dk9oOZwM.js → _server.ts.js-dIXZiq5l.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-Dk9oOZwM.js.map → _server.ts.js-dIXZiq5l.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DxjNmmtL.js → _server.ts.js-CnTrS5pT.js} +5 -5
- package/build/server/chunks/entries/endpoints/api/usage/{_server.ts.js-DxjNmmtL.js.map → _server.ts.js-CnTrS5pT.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DD0b38VV.js → _server.ts.js-B7TcFRuL.js} +4 -4
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-DD0b38VV.js.map → _server.ts.js-B7TcFRuL.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DId6F2i_.js → _server.ts.js-BkUQInqW.js} +5 -5
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DId6F2i_.js.map → _server.ts.js-BkUQInqW.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-DKKkGoK2.js → _server.ts.js-CshyvqOq.js} +5 -5
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-DKKkGoK2.js.map → _server.ts.js-CshyvqOq.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-B5Ctvorj.js → hooks.server.js-D4DECjz_.js} +6 -5
- package/build/server/chunks/entries/hooks.server.js-D4DECjz_.js.map +1 -0
- package/build/server/chunks/{handler-DwVfBx6r.js → handler-Cna54zf6.js} +5 -5
- package/build/server/chunks/{handler-DwVfBx6r.js.map → handler-Cna54zf6.js.map} +1 -1
- package/build/server/chunks/{index.js-DgPuPQJn.js → index.js-BnpHWDec.js} +5 -5
- package/build/server/chunks/{index.js-DgPuPQJn.js.map → index.js-BnpHWDec.js.map} +1 -1
- package/build/server/chunks/{manifest.js-B054EcAf.js → manifest.js-9WMEOpxH.js} +31 -31
- package/build/server/chunks/{manifest.js-B054EcAf.js.map → manifest.js-9WMEOpxH.js.map} +1 -1
- package/build/server/chunks/nodes/{0.js-DoHZTmnT.js → 0.js-C2b1a672.js} +2 -2
- package/build/server/chunks/nodes/{0.js-DoHZTmnT.js.map → 0.js-C2b1a672.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-P3Ai28oj.js +7 -0
- package/build/server/chunks/nodes/{1.js-BcPlsloO.js.map → 1.js-P3Ai28oj.js.map} +1 -1
- package/build/server/chunks/nodes/{2.js-5qCXkvzl.js → 2.js-sM3j5BqB.js} +2 -2
- package/build/server/chunks/nodes/{2.js-5qCXkvzl.js.map → 2.js-sM3j5BqB.js.map} +1 -1
- package/build/server/chunks/nodes/3.js-G0jV-ymM.js +7 -0
- package/build/server/chunks/nodes/{3.js-D6fAMX1w.js.map → 3.js-G0jV-ymM.js.map} +1 -1
- package/build/server/chunks/nodes/{4.js-CGkeT0SQ.js → 4.js-BUTPrI45.js} +2 -2
- package/build/server/chunks/nodes/{4.js-CGkeT0SQ.js.map → 4.js-BUTPrI45.js.map} +1 -1
- package/dist/server/concurrency.d.ts +12 -0
- package/dist/server/concurrency.js +23 -0
- package/dist/server/image-duplicates.js +6 -4
- package/dist/server/operations.d.ts +7 -0
- package/dist/server/operations.js +53 -26
- package/dist/server/processing/processor.d.ts +29 -1
- package/dist/server/processing/processor.js +42 -5
- package/dist/server/raw-reconciliation.js +26 -10
- package/package.json +1 -1
- package/build/client/_app/immutable/chunks/BCmR1_e0.js.br +0 -0
- package/build/client/_app/immutable/chunks/BCmR1_e0.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kkVEh3_1.js.br +0 -2
- package/build/client/_app/immutable/chunks/kkVEh3_1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wBLhaPea.js +0 -1
- package/build/client/_app/immutable/chunks/wBLhaPea.js.br +0 -0
- package/build/client/_app/immutable/chunks/wBLhaPea.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DCXSqiQ1.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DCXSqiQ1.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BOUpxuMU.js +0 -1
- package/build/client/_app/immutable/entry/start.BOUpxuMU.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BOUpxuMU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.CsqkK05g.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CsqkK05g.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BVSXvtU9.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.BVSXvtU9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.BJEXWmrT.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.BJEXWmrT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BDMmDyL1.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BDMmDyL1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.dd49_qQE.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.dd49_qQE.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-DFZgDxCD.js.map +0 -1
- package/build/server/chunks/chunks/contract.js-DGZXpcNX.js.map +0 -1
- package/build/server/chunks/chunks/raw-reconciliation.js-D2sI2C-t.js.map +0 -1
- package/build/server/chunks/chunks/raw-reconciliation2.js-CMpUvuMd.js.map +0 -1
- package/build/server/chunks/entries/hooks.server.js-B5Ctvorj.js.map +0 -1
- package/build/server/chunks/nodes/1.js-BcPlsloO.js +0 -7
- package/build/server/chunks/nodes/3.js-D6fAMX1w.js +0 -7
package/build/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import http from 'node:http';
|
|
2
2
|
import fs__default from 'node:fs';
|
|
3
3
|
import process from 'node:process';
|
|
4
|
-
import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-
|
|
4
|
+
import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-Cna54zf6.js';
|
|
5
5
|
import { env, timeout_env } from './env.js';
|
|
6
6
|
import { rm } from 'node:fs/promises';
|
|
7
7
|
import './shims.js';
|
|
@@ -11,15 +11,15 @@ import 'node:path';
|
|
|
11
11
|
import 'node:timers';
|
|
12
12
|
import 'node:querystring';
|
|
13
13
|
import 'node:stream';
|
|
14
|
-
import './server/chunks/chunks/shared.js-
|
|
15
|
-
import './server/chunks/chunks/internal.js-
|
|
14
|
+
import './server/chunks/chunks/shared.js-C6qC0jnA.js';
|
|
15
|
+
import './server/chunks/chunks/internal.js-DlRiYJji.js';
|
|
16
16
|
import 'node:module';
|
|
17
|
-
import './server/chunks/chunks/utils.js-
|
|
18
|
-
import './server/chunks/index.js-
|
|
17
|
+
import './server/chunks/chunks/utils.js-BZ32hXFI.js';
|
|
18
|
+
import './server/chunks/index.js-BnpHWDec.js';
|
|
19
19
|
import './server/chunks/chunks/internal2.js-BlXt2rfE.js';
|
|
20
|
-
import './server/chunks/chunks/exports.js-
|
|
20
|
+
import './server/chunks/chunks/exports.js-CNZgoxR0.js';
|
|
21
21
|
import './server/chunks/chunks/routing.js-y-tryuip.js';
|
|
22
|
-
import './server/chunks/manifest.js-
|
|
22
|
+
import './server/chunks/manifest.js-9WMEOpxH.js';
|
|
23
23
|
import 'node:url';
|
|
24
24
|
|
|
25
25
|
const path = env('SOCKET_PATH', false);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { c as compareCodeUnits, h as folderOfRawPath, j as rawFileNameOfPath, g as canonicalizeParameters, n as normalizeFolderPath, J as typesForFileName, k as parentFolderPath, u as portableFolderPathKey } from './core.js-AGKlECJ0.js';
|
|
2
|
-
import { i as isRecord, s as serverPluginsByType, L as LibraryStore, d as descriptorsByType, m as manifestModuleFileName, l as locateGeneratedAssetDeclaration, a as serializeLibrary, b as serverPluginForType, S as SourceImportError, p as processAssets, g as generateManifestModules, r as readCurrentProxy, e as encodeRelativePathForUrl, c as invalidInput, f as parseLibrary } from './contract.js-
|
|
3
|
-
import { c as collectAllReferences,
|
|
2
|
+
import { i as isRecord, s as serverPluginsByType, P as ProxyInfoCache, L as LibraryStore, d as descriptorsByType, m as manifestModuleFileName, l as locateGeneratedAssetDeclaration, a as serializeLibrary, b as serverPluginForType, S as SourceImportError, p as processAssets, g as generateManifestModules, r as readCurrentProxy, e as encodeRelativePathForUrl, c as invalidInput, f as parseLibrary } from './contract.js-DHeIVVv8.js';
|
|
3
|
+
import { c as collectAllReferences, d as allDeliveredAssetIds, b as computeLibraryMembership, a as assetIdError, i as isValidAssetId } from './manifest-membership.js-DkHaPk2F.js';
|
|
4
4
|
import { v as validateDependencyList, f as formatRequiredBy } from './dependencies.js-pUkjICr5.js';
|
|
5
|
-
import { v as verifyStableRawFile, c as classifyRawDirectory } from './raw-
|
|
5
|
+
import { m as mapConcurrent, v as verifyStableRawFile, c as classifyRawDirectory } from './raw-reconciliation.js-Cco4r8lr.js';
|
|
6
6
|
import { createRequire } from 'node:module';
|
|
7
7
|
import { isAbsolute, resolve, basename, dirname, join, extname, relative, sep } from 'node:path';
|
|
8
8
|
import { existsSync, watch, readFileSync } from 'node:fs';
|
|
@@ -1513,22 +1513,22 @@ var ImageDuplicateDetector = class {
|
|
|
1513
1513
|
const images = Object.entries(library.assets).filter(([, record]) => record.type === "image").sort(([left], [right]) => compareCodeUnits(left, right));
|
|
1514
1514
|
const activeHashes = new Set(images.map(([, record]) => record.rawHash));
|
|
1515
1515
|
for (const hash of this.#fingerprints.keys()) if (!activeHashes.has(hash)) this.#fingerprints.delete(hash);
|
|
1516
|
-
const readable = []
|
|
1517
|
-
for (const [id, record] of images) {
|
|
1516
|
+
const readable = (await mapConcurrent(images, 8, async ([id, record]) => {
|
|
1518
1517
|
let fingerprint = this.#fingerprints.get(record.rawHash);
|
|
1519
1518
|
if (!fingerprint) {
|
|
1520
1519
|
fingerprint = imageFingerprint(join(rawDir, record.raw), 8);
|
|
1521
1520
|
this.#fingerprints.set(record.rawHash, fingerprint);
|
|
1522
1521
|
}
|
|
1523
1522
|
try {
|
|
1524
|
-
|
|
1523
|
+
return {
|
|
1525
1524
|
id,
|
|
1526
1525
|
fingerprint: await fingerprint
|
|
1527
|
-
}
|
|
1526
|
+
};
|
|
1528
1527
|
} catch {
|
|
1529
1528
|
this.#fingerprints.delete(record.rawHash);
|
|
1529
|
+
return null;
|
|
1530
1530
|
}
|
|
1531
|
-
}
|
|
1531
|
+
})).filter((entry) => entry !== null);
|
|
1532
1532
|
const duplicates = /* @__PURE__ */ new Map();
|
|
1533
1533
|
for (let leftIndex = 0; leftIndex < readable.length; leftIndex++) for (let rightIndex = leftIndex + 1; rightIndex < readable.length; rightIndex++) {
|
|
1534
1534
|
const left = readable[leftIndex];
|
|
@@ -1589,6 +1589,7 @@ var FundusOperations = class {
|
|
|
1589
1589
|
#importers;
|
|
1590
1590
|
#usageAnalyzer;
|
|
1591
1591
|
#duplicateDetector = new ImageDuplicateDetector();
|
|
1592
|
+
#proxyInfoCache = new ProxyInfoCache();
|
|
1592
1593
|
#operationQueue = Promise.resolve();
|
|
1593
1594
|
#pipelineQueue = Promise.resolve();
|
|
1594
1595
|
constructor(config, registry = serverPluginsByType, importerRegistry = serverImporters) {
|
|
@@ -1684,6 +1685,17 @@ var FundusOperations = class {
|
|
|
1684
1685
|
const classification = await this.#classifyRawDirectory(library);
|
|
1685
1686
|
return this.#snapshotState(library, classification);
|
|
1686
1687
|
}
|
|
1688
|
+
/**
|
|
1689
|
+
* Fill the image-fingerprint and proxy-probe caches without scanning raws or
|
|
1690
|
+
* joining the operation queue, so an early editor reconcile shares this
|
|
1691
|
+
* in-flight work instead of waiting behind it. Both caches are keyed by
|
|
1692
|
+
* content, so a concurrent mutation can only make an entry unused.
|
|
1693
|
+
*/
|
|
1694
|
+
async warmCaches() {
|
|
1695
|
+
const library = await this.#store.read();
|
|
1696
|
+
const delivered = allDeliveredAssetIds(computeLibraryMembership(library, collectAllReferences(library, descriptorsByType(this.#registry))));
|
|
1697
|
+
await Promise.all([this.#duplicateDetector.find(library, this.#config.rawDir), mapConcurrent([...delivered].sort(compareCodeUnits), 8, (assetId) => this.#proxyState(assetId, library.assets[assetId], delivered))]);
|
|
1698
|
+
}
|
|
1687
1699
|
/** Reconcile only changes that are safe without a user decision: unique moves and deletions. */
|
|
1688
1700
|
reconcileRawState() {
|
|
1689
1701
|
return this.#enqueueOperation(async () => {
|
|
@@ -2307,12 +2319,38 @@ var FundusOperations = class {
|
|
|
2307
2319
|
state: await this.#snapshotState(latestLibrary, latestClassification, pipelineIssues)
|
|
2308
2320
|
};
|
|
2309
2321
|
}
|
|
2322
|
+
async #proxyState(assetId, record, delivered) {
|
|
2323
|
+
if (!delivered.has(assetId)) return { proxy: null };
|
|
2324
|
+
try {
|
|
2325
|
+
const currentProxy = await readCurrentProxy(assetId, record, this.#config, this.#registry, this.#proxyInfoCache);
|
|
2326
|
+
if (!currentProxy) return {
|
|
2327
|
+
proxy: null,
|
|
2328
|
+
warning: "Proxy is stale or missing — it will be (re)processed on the next save."
|
|
2329
|
+
};
|
|
2330
|
+
return { proxy: {
|
|
2331
|
+
url: `/files/proxy/${encodeRelativePathForUrl(currentProxy.relativePath)}`,
|
|
2332
|
+
upToDate: true,
|
|
2333
|
+
...currentProxy
|
|
2334
|
+
} };
|
|
2335
|
+
} catch (cause) {
|
|
2336
|
+
return {
|
|
2337
|
+
proxy: null,
|
|
2338
|
+
warning: cause instanceof Error ? cause.message : String(cause)
|
|
2339
|
+
};
|
|
2340
|
+
}
|
|
2341
|
+
}
|
|
2310
2342
|
async #buildState(library, issues, classification) {
|
|
2311
|
-
const [gitBranch, changedGitAssets] = await Promise.all([currentGitBranch(this.#config.projectRoot), gitAssetChanges(this.#config.projectRoot, this.#config.library, library)]);
|
|
2312
2343
|
const referencesByAsset = collectAllReferences(library, descriptorsByType(this.#registry));
|
|
2313
|
-
const duplicatesByAsset = await this.#duplicateDetector.find(library, this.#config.rawDir);
|
|
2314
2344
|
const membershipByManifest = computeLibraryMembership(library, referencesByAsset);
|
|
2315
2345
|
const delivered = allDeliveredAssetIds(membershipByManifest);
|
|
2346
|
+
const assetIds = Object.keys(library.assets).sort(compareCodeUnits);
|
|
2347
|
+
const [gitBranch, changedGitAssets, duplicatesByAsset, proxies] = await Promise.all([
|
|
2348
|
+
currentGitBranch(this.#config.projectRoot),
|
|
2349
|
+
gitAssetChanges(this.#config.projectRoot, this.#config.library, library),
|
|
2350
|
+
this.#duplicateDetector.find(library, this.#config.rawDir),
|
|
2351
|
+
mapConcurrent(assetIds, 8, (assetId) => this.#proxyState(assetId, library.assets[assetId], delivered))
|
|
2352
|
+
]);
|
|
2353
|
+
this.#proxyInfoCache.retain(delivered);
|
|
2316
2354
|
const passiveManifestsByAsset = /* @__PURE__ */ new Map();
|
|
2317
2355
|
for (const manifestName of Object.keys(library.manifests).sort(compareCodeUnits)) for (const passiveMember of membershipByManifest[manifestName].passiveMembers) {
|
|
2318
2356
|
const passiveManifests = passiveManifestsByAsset.get(passiveMember.assetId) ?? [];
|
|
@@ -2334,24 +2372,14 @@ var FundusOperations = class {
|
|
|
2334
2372
|
const requiredByAsset = /* @__PURE__ */ new Map();
|
|
2335
2373
|
for (const dependency of this.#config.dependencies) requiredByAsset.set(dependency.id, [...dependency.sources]);
|
|
2336
2374
|
const assets = [];
|
|
2337
|
-
for (const assetId of
|
|
2375
|
+
for (const [index, assetId] of assetIds.entries()) {
|
|
2338
2376
|
const record = library.assets[assetId];
|
|
2339
2377
|
const warnings = [];
|
|
2340
2378
|
for (const issue of issues) if (issue.assetId === assetId) warnings.push(issue.message);
|
|
2341
2379
|
if (record.manifests.length === 0 && !delivered.has(assetId)) warnings.push("In no manifest and not referenced by any delivered asset — nothing is processed or generated for it.");
|
|
2342
2380
|
if (record.importSource && !this.#importers.has(record.importSource.importer)) warnings.push(`Importer "${record.importSource.importer}" is unavailable; the local raw file remains usable.`);
|
|
2343
|
-
|
|
2344
|
-
if (
|
|
2345
|
-
const currentProxy = await readCurrentProxy(assetId, record, this.#config, this.#registry);
|
|
2346
|
-
if (currentProxy) proxy = {
|
|
2347
|
-
url: `/files/proxy/${encodeRelativePathForUrl(currentProxy.relativePath)}`,
|
|
2348
|
-
upToDate: true,
|
|
2349
|
-
...currentProxy
|
|
2350
|
-
};
|
|
2351
|
-
else warnings.push("Proxy is stale or missing — it will be (re)processed on the next save.");
|
|
2352
|
-
} catch (cause) {
|
|
2353
|
-
warnings.push(cause instanceof Error ? cause.message : String(cause));
|
|
2354
|
-
}
|
|
2381
|
+
const { proxy, warning: proxyWarning } = proxies[index];
|
|
2382
|
+
if (proxyWarning) warnings.push(proxyWarning);
|
|
2355
2383
|
assets.push({
|
|
2356
2384
|
id: assetId,
|
|
2357
2385
|
type: record.type,
|
|
@@ -2576,4 +2604,4 @@ async function createFundusContext() {
|
|
|
2576
2604
|
}
|
|
2577
2605
|
|
|
2578
2606
|
export { getFundusContext as g, initializeFundusContext as i };
|
|
2579
|
-
//# sourceMappingURL=context.js-
|
|
2607
|
+
//# sourceMappingURL=context.js-BR2IRl9z.js.map
|