@dialecte/core 0.8.1 → 0.10.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/dist/assets/hub.worker-35vzG0HK.js +2 -0
- package/dist/dialecte/create-dialecte-project.d.ts +1 -2
- package/dist/dialecte/create-dialecte-project.d.ts.map +1 -1
- package/dist/dialecte/create-project-factory.d.ts +5 -5
- package/dist/dialecte/create-project-factory.d.ts.map +1 -1
- package/dist/dialecte/define-dialecte.d.ts +2 -2
- package/dist/dialecte/dialecte.types.d.ts +11 -23
- package/dist/dialecte/dialecte.types.d.ts.map +1 -1
- package/dist/{dialecte-gIPrRzni.js → dialecte-CVLWSkgW.js} +1726 -1673
- package/dist/document/document.d.ts +1 -1
- package/dist/document/query/get/record/get-record.d.ts +14 -1
- package/dist/document/query/get/record/get-record.d.ts.map +1 -1
- package/dist/document/query/get/record/get-records.d.ts +12 -2
- package/dist/document/query/get/record/get-records.d.ts.map +1 -1
- package/dist/{engine-store-CIEqgPUb.js → engine-store-Deo9XNhr.js} +21 -21
- package/dist/engine.constants-Bi4gw6BR.js +205 -0
- package/dist/errors/{codes.d.ts → codes.constants.d.ts} +33 -105
- package/dist/errors/{codes.d.ts.map → codes.constants.d.ts.map} +1 -1
- package/dist/errors/core-codes.constants.d.ts +3 -0
- package/dist/errors/core-codes.constants.d.ts.map +1 -0
- package/dist/errors/errors.constants.d.ts +5 -0
- package/dist/errors/errors.constants.d.ts.map +1 -1
- package/dist/errors/errors.d.ts.map +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/types.d.ts +1 -1
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/{helpers-DVShv41E.js → helpers-D8p0KiJu.js} +1 -1
- package/dist/helpers.js +2 -2
- package/dist/{in-process-link-DBeAOZRp.js → in-process-link-B-TCHrlb.js} +996 -993
- package/dist/index.js +8 -7
- package/dist/project/index.d.ts +1 -1
- package/dist/project/index.d.ts.map +1 -1
- package/dist/project/io/store-runtime.types.d.ts +1 -3
- package/dist/project/io/store-runtime.types.d.ts.map +1 -1
- package/dist/project/project.d.ts +13 -15
- package/dist/project/project.d.ts.map +1 -1
- package/dist/project/types.d.ts +24 -19
- package/dist/project/types.d.ts.map +1 -1
- package/dist/{project-key-Ch34EtFa.js → project-key-2ccZ-0gu.js} +195 -205
- package/dist/running-operations-DCKvzlU7.js +107 -0
- package/dist/{same-json-value-C6kUaoyt.js → same-json-value-_AChwM_n.js} +41 -41
- package/dist/sqlite-engine.d.ts +7 -0
- package/dist/sqlite-engine.d.ts.map +1 -0
- package/dist/{engine.js → sqlite-engine.js} +4144 -4079
- package/dist/sqlite.d.ts +27 -2
- package/dist/sqlite.d.ts.map +1 -1
- package/dist/sqlite.js +1118 -917
- package/dist/store/in-memory/in-memory-state.constants.d.ts +14 -0
- package/dist/store/in-memory/in-memory-state.constants.d.ts.map +1 -0
- package/dist/store/in-memory/in-memory-state.d.ts +0 -4
- package/dist/store/in-memory/in-memory-state.d.ts.map +1 -1
- package/dist/store/in-memory/in-memory-store.d.ts.map +1 -1
- package/dist/store/in-memory/types.d.ts +1 -2
- package/dist/store/in-memory/types.d.ts.map +1 -1
- package/dist/store/index.d.ts +2 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/lost-write.d.ts +8 -8
- package/dist/store/lost-write.d.ts.map +1 -1
- package/dist/store/lost-write.types.d.ts +1 -1
- package/dist/store/lost-write.types.d.ts.map +1 -1
- package/dist/store/{engine/project-key.d.ts → project-key.d.ts} +0 -5
- package/dist/store/project-key.d.ts.map +1 -0
- package/dist/store/resolve-store.d.ts +6 -18
- package/dist/store/resolve-store.d.ts.map +1 -1
- package/dist/store/sqlite/adapter/in-process-link.constants.d.ts +12 -0
- package/dist/store/sqlite/adapter/in-process-link.constants.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/in-process-link.d.ts +1 -1
- package/dist/store/sqlite/adapter/in-process-link.d.ts.map +1 -1
- package/dist/store/sqlite/adapter/sqlite-connector.d.ts +12 -11
- package/dist/store/sqlite/adapter/sqlite-connector.d.ts.map +1 -1
- package/dist/store/sqlite/adapter/sqlite-connector.types.d.ts +7 -0
- package/dist/store/sqlite/adapter/sqlite-connector.types.d.ts.map +1 -0
- package/dist/store/sqlite/adapter/sqlite-hub-spawner.d.ts +8 -3
- package/dist/store/sqlite/adapter/sqlite-hub-spawner.d.ts.map +1 -1
- package/dist/store/sqlite/adapter/sqlite-hub-spawner.types.d.ts +12 -1
- package/dist/store/sqlite/adapter/sqlite-hub-spawner.types.d.ts.map +1 -1
- package/dist/store/sqlite/adapter/sqlite-worker-connector.d.ts +2 -2
- package/dist/store/sqlite/adapter/sqlite-worker-connector.d.ts.map +1 -1
- package/dist/store/sqlite/adapter/sqlite-worker-connector.types.d.ts +1 -1
- package/dist/store/sqlite/adapter/sqlite-worker-connector.types.d.ts.map +1 -1
- package/dist/store/sqlite/engine/engine.types.d.ts +2 -2
- package/dist/store/sqlite/engine/engine.types.d.ts.map +1 -1
- package/dist/store/sqlite/engine/schema.d.ts.map +1 -1
- package/dist/store/sqlite/engine/sqlite-engine.d.ts.map +1 -1
- package/dist/store/{hub-public.d.ts → sqlite/hub-public.d.ts} +9 -9
- package/dist/store/sqlite/hub-public.d.ts.map +1 -0
- package/dist/store/sqlite/packaging/engine-packaging.constants.d.ts +15 -0
- package/dist/store/sqlite/packaging/engine-packaging.constants.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/close-engine.d.ts +5 -2
- package/dist/store/sqlite/runtime/close-engine.d.ts.map +1 -1
- package/dist/store/sqlite/runtime/engine-control-loop.d.ts +11 -0
- package/dist/store/sqlite/runtime/engine-control-loop.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/install-pool.d.ts +1 -1
- package/dist/store/sqlite/runtime/install-pool.d.ts.map +1 -1
- package/dist/store/sqlite/runtime/progress-beat.d.ts +1 -1
- package/dist/store/sqlite/runtime/progress-beat.d.ts.map +1 -1
- package/dist/store/sqlite/runtime/runtime.types.d.ts +7 -4
- package/dist/store/sqlite/runtime/runtime.types.d.ts.map +1 -1
- package/dist/store/sqlite/runtime/serve-sqlite-engine.d.ts +9 -0
- package/dist/store/sqlite/runtime/serve-sqlite-engine.d.ts.map +1 -0
- package/dist/store/sqlite/runtime/serve-sqlite-engine.types.d.ts +27 -0
- package/dist/store/sqlite/runtime/serve-sqlite-engine.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/client/check-engine-wire.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/client/client.constants.d.ts +3 -3
- package/dist/store/sqlite/served/client/client.constants.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/client/client.types.d.ts +13 -8
- package/dist/store/sqlite/served/client/client.types.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/client/engine-client.d.ts +1 -1
- package/dist/store/sqlite/served/client/engine-client.d.ts.map +1 -0
- package/dist/store/sqlite/served/client/engine-control.d.ts.map +1 -0
- package/dist/store/sqlite/served/client/heartbeat-watch.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/client/hub-connector.d.ts +1 -1
- package/dist/store/sqlite/served/client/hub-connector.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/client/hub-connector.types.d.ts +6 -7
- package/dist/store/sqlite/served/client/hub-connector.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/client/worker-connector.d.ts.map +1 -0
- package/dist/store/sqlite/served/creation-refusal.d.ts.map +1 -0
- package/dist/store/sqlite/served/dialecte-refusal.d.ts +19 -0
- package/dist/store/sqlite/served/dialecte-refusal.d.ts.map +1 -0
- package/dist/store/sqlite/served/engine-lock.d.ts +6 -0
- package/dist/store/sqlite/served/engine-lock.d.ts.map +1 -0
- package/dist/store/sqlite/served/engine-store.constants.d.ts +3 -0
- package/dist/store/sqlite/served/engine-store.constants.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/engine-store.d.ts +6 -6
- package/dist/store/sqlite/served/engine-store.d.ts.map +1 -0
- package/dist/store/sqlite/served/engine-store.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/engine.constants.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/engine.types.d.ts +2 -4
- package/dist/store/sqlite/served/engine.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/host/changed.d.ts +5 -0
- package/dist/store/sqlite/served/host/changed.d.ts.map +1 -0
- package/dist/store/sqlite/served/host/engine-wire.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/host/heartbeat.d.ts +1 -1
- package/dist/store/sqlite/served/host/heartbeat.d.ts.map +1 -0
- package/dist/store/sqlite/served/host/host.constants.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/host/host.types.d.ts +4 -3
- package/dist/store/sqlite/served/host/host.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/host/store-events.constants.d.ts +9 -0
- package/dist/store/sqlite/served/host/store-events.constants.d.ts.map +1 -0
- package/dist/store/sqlite/served/host/store-events.d.ts.map +1 -0
- package/dist/store/sqlite/served/hub/hub-client.constants.d.ts.map +1 -0
- package/dist/store/sqlite/served/hub/hub-client.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/hub/hub-client.types.d.ts +2 -9
- package/dist/store/sqlite/served/hub/hub-client.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/hub/hub-protocol.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/hub/hub-router.d.ts.map +1 -0
- package/dist/store/sqlite/served/hub/hub-shell.d.ts.map +1 -0
- package/dist/store/sqlite/served/hub/hub-shell.types.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/hub/hub.constants.d.ts +3 -3
- package/dist/store/sqlite/served/hub/hub.constants.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/hub/hub.types.d.ts +2 -2
- package/dist/store/sqlite/served/hub/hub.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/hub/hub.worker.d.ts.map +1 -0
- package/dist/store/sqlite/served/hub/realm-host.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/hub/realm-host.types.d.ts +3 -3
- package/dist/store/sqlite/served/hub/realm-host.types.d.ts.map +1 -0
- package/dist/store/sqlite/served/wire/error-envelope.d.ts.map +1 -0
- package/dist/store/sqlite/served/wire/wire-values.d.ts.map +1 -0
- package/dist/store/sqlite/served/wire/wire.constants.d.ts.map +1 -0
- package/dist/store/{engine → sqlite/served}/wire/wire.types.d.ts +1 -1
- package/dist/store/sqlite/served/wire/wire.types.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-connector-params.d.ts +13 -0
- package/dist/store/sqlite/sqlite-connector-params.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-engine-registration.d.ts +30 -0
- package/dist/store/sqlite/sqlite-engine-registration.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-error-entry.d.ts +10 -0
- package/dist/store/sqlite/sqlite-error-entry.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-errors.constants.d.ts +110 -0
- package/dist/store/sqlite/sqlite-errors.constants.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-errors.types.d.ts +7 -0
- package/dist/store/sqlite/sqlite-errors.types.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-storage-kind.constants.d.ts +10 -0
- package/dist/store/sqlite/sqlite-storage-kind.constants.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-storage-kind.d.ts +3 -0
- package/dist/store/sqlite/sqlite-storage-kind.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-storage.constants.d.ts +24 -0
- package/dist/store/sqlite/sqlite-storage.constants.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-storage.types.d.ts +27 -0
- package/dist/store/sqlite/sqlite-storage.types.d.ts.map +1 -0
- package/dist/store/sqlite/sqlite-store-of.d.ts +8 -3
- package/dist/store/sqlite/sqlite-store-of.d.ts.map +1 -1
- package/dist/store/storage-kinds.constants.d.ts +16 -0
- package/dist/store/storage-kinds.constants.d.ts.map +1 -0
- package/dist/store/storage-kinds.d.ts +43 -0
- package/dist/store/storage-kinds.d.ts.map +1 -0
- package/dist/store/storage-kinds.types.d.ts +46 -0
- package/dist/store/storage-kinds.types.d.ts.map +1 -0
- package/dist/store/store.types.d.ts +6 -4
- package/dist/store/store.types.d.ts.map +1 -1
- package/dist/test/assert-xml/assert-xml.d.ts +4 -2
- package/dist/test/assert-xml/assert-xml.d.ts.map +1 -1
- package/dist/test/assert-xml/index.d.ts +1 -0
- package/dist/test/assert-xml/index.d.ts.map +1 -1
- package/dist/test/assert-xml/xml-assertion-error.d.ts +8 -0
- package/dist/test/assert-xml/xml-assertion-error.d.ts.map +1 -0
- package/dist/test/create-test-dialecte.constants.d.ts +4 -0
- package/dist/test/create-test-dialecte.constants.d.ts.map +1 -0
- package/dist/test/create-test-dialecte.d.ts.map +1 -1
- package/dist/test/indexeddb-storage.setup.d.ts +1 -0
- package/dist/test/indexeddb-storage.setup.d.ts.map +1 -0
- package/dist/test/test-storage/index.d.ts +1 -1
- package/dist/test/test-storage/index.d.ts.map +1 -1
- package/dist/test/test-storage/sqlite-test-store.d.ts +15 -0
- package/dist/test/test-storage/sqlite-test-store.d.ts.map +1 -0
- package/dist/test/test-storage/test-storage.types.d.ts +12 -0
- package/dist/test/test-storage/test-storage.types.d.ts.map +1 -1
- package/dist/test/test-storage/test-store-for.d.ts +18 -6
- package/dist/test/test-storage/test-store-for.d.ts.map +1 -1
- package/dist/test/test-storage/test-store-providers.constants.d.ts +8 -0
- package/dist/test/test-storage/test-store-providers.constants.d.ts.map +1 -0
- package/dist/test/test-storage/test-store-providers.d.ts +11 -0
- package/dist/test/test-storage/test-store-providers.d.ts.map +1 -0
- package/dist/test.js +805 -765
- package/dist/{utils-USNkj4sT.js → utils-Cv4oHia0.js} +63 -137
- package/dist/utils.js +1 -1
- package/package.json +40 -8
- package/skills/dialecte/SKILL.md +8 -6
- package/skills/dialecte/references/api.json +93 -66
- package/skills/dialecte/references/api.md +463 -461
- package/skills/dialecte/references/core-api.md +42 -15
- package/skills/dialecte/references/testing.md +167 -11
- package/skills/dialecte-contributing/SKILL.md +1 -1
- package/skills/dialecte-contributing/references/code-rules.md +7 -0
- package/skills/dialecte-contributing/references/landing-changes.md +4 -4
- package/skills/dialecte-lot/SKILL.md +67 -28
- package/skills/dialecte-lot/references/briefs.md +30 -6
- package/skills/dialecte-lot/references/standard-check.md +2 -2
- package/skills/dialecte-lot/references/stations.md +5 -3
- package/dist/assets/hub.worker-B1HcVDhn.js +0 -2
- package/dist/engine.constants-DBMjMmV9.js +0 -98
- package/dist/engine.d.ts +0 -9
- package/dist/engine.d.ts.map +0 -1
- package/dist/running-operations-vnijBvn7.js +0 -76
- package/dist/store/engine/client/check-engine-wire.d.ts.map +0 -1
- package/dist/store/engine/client/client.constants.d.ts.map +0 -1
- package/dist/store/engine/client/client.types.d.ts.map +0 -1
- package/dist/store/engine/client/engine-client.d.ts.map +0 -1
- package/dist/store/engine/client/engine-control.d.ts.map +0 -1
- package/dist/store/engine/client/heartbeat-watch.d.ts.map +0 -1
- package/dist/store/engine/client/hub-connector.d.ts.map +0 -1
- package/dist/store/engine/client/hub-connector.types.d.ts.map +0 -1
- package/dist/store/engine/client/worker-connector.d.ts.map +0 -1
- package/dist/store/engine/creation-refusal.d.ts.map +0 -1
- package/dist/store/engine/dialecte-refusal.d.ts +0 -18
- package/dist/store/engine/dialecte-refusal.d.ts.map +0 -1
- package/dist/store/engine/engine-store.d.ts.map +0 -1
- package/dist/store/engine/engine-store.types.d.ts.map +0 -1
- package/dist/store/engine/engine.constants.d.ts.map +0 -1
- package/dist/store/engine/engine.types.d.ts.map +0 -1
- package/dist/store/engine/host/engine-wire.d.ts.map +0 -1
- package/dist/store/engine/host/heartbeat.d.ts.map +0 -1
- package/dist/store/engine/host/host.constants.d.ts.map +0 -1
- package/dist/store/engine/host/host.types.d.ts.map +0 -1
- package/dist/store/engine/host/store-events.d.ts.map +0 -1
- package/dist/store/engine/hub/hub-client.constants.d.ts.map +0 -1
- package/dist/store/engine/hub/hub-client.d.ts.map +0 -1
- package/dist/store/engine/hub/hub-client.types.d.ts.map +0 -1
- package/dist/store/engine/hub/hub-protocol.types.d.ts.map +0 -1
- package/dist/store/engine/hub/hub-router.d.ts.map +0 -1
- package/dist/store/engine/hub/hub-shell.d.ts.map +0 -1
- package/dist/store/engine/hub/hub-shell.types.d.ts.map +0 -1
- package/dist/store/engine/hub/hub.constants.d.ts.map +0 -1
- package/dist/store/engine/hub/hub.types.d.ts.map +0 -1
- package/dist/store/engine/hub/hub.worker.d.ts.map +0 -1
- package/dist/store/engine/hub/realm-host.d.ts.map +0 -1
- package/dist/store/engine/hub/realm-host.types.d.ts.map +0 -1
- package/dist/store/engine/project-key.d.ts.map +0 -1
- package/dist/store/engine/wire/error-envelope.d.ts.map +0 -1
- package/dist/store/engine/wire/wire-values.d.ts.map +0 -1
- package/dist/store/engine/wire/wire.constants.d.ts.map +0 -1
- package/dist/store/engine/wire/wire.types.d.ts.map +0 -1
- package/dist/store/hub-public.d.ts.map +0 -1
- package/dist/store/sqlite/runtime/serve-dialecte-engine.d.ts +0 -16
- package/dist/store/sqlite/runtime/serve-dialecte-engine.d.ts.map +0 -1
- package/dist/store/sqlite-storage.constants.d.ts +0 -14
- package/dist/store/sqlite-storage.constants.d.ts.map +0 -1
- package/dist/store/sqlite-storage.d.ts +0 -22
- package/dist/store/sqlite-storage.d.ts.map +0 -1
- package/dist/store/sqlite-storage.types.d.ts +0 -24
- package/dist/store/sqlite-storage.types.d.ts.map +0 -1
- package/dist/test/test-dialecte.worker.d.ts +0 -2
- package/dist/test/test-dialecte.worker.d.ts.map +0 -1
- /package/dist/store/{engine → sqlite/served}/client/check-engine-wire.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/client/engine-control.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/client/heartbeat-watch.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/client/worker-connector.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/creation-refusal.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/engine-store.types.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/engine.constants.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/host/engine-wire.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/host/host.constants.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/host/store-events.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/hub/hub-client.constants.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/hub/hub-client.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/hub/hub-protocol.types.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/hub/hub-router.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/hub/hub-shell.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/hub/hub-shell.types.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/hub/hub.worker.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/hub/realm-host.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/wire/error-envelope.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/wire/wire-values.d.ts +0 -0
- /package/dist/store/{engine → sqlite/served}/wire/wire.constants.d.ts +0 -0
package/dist/sqlite.js
CHANGED
|
@@ -1,77 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import * as
|
|
7
|
-
// src/store/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"no-heartbeat": "The project engine sent nothing for too long while a call waited",
|
|
11
|
-
"realm-dropped": "This view was dropped with the page that bound it: bound again, it reaches the engine"
|
|
12
|
-
};
|
|
13
|
-
// src/store/engine/dialecte-refusal.ts
|
|
14
|
-
function T(e) {
|
|
15
|
-
let { project: t, engine: n, asked: r } = e;
|
|
16
|
-
if (r.dialecteId !== n.dialecteId) throw v("PROJECT_DIALECTE_MISMATCH", {
|
|
17
|
-
detail: `"${t}" was asked as ${r.dialecteId} of an engine of ${n.dialecteId}: nothing was opened or removed`,
|
|
18
|
-
meta: {
|
|
19
|
-
project: t,
|
|
20
|
-
projectDialecteId: n.dialecteId,
|
|
21
|
-
realmDialecteId: r.dialecteId
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
if (r.dialecteVersion !== void 0 && r.dialecteVersion !== n.dialecteVersion) throw v("PROJECT_DIALECTE_VERSION_MISMATCH", {
|
|
25
|
-
detail: `the engine of "${t}" runs ${n.dialecteId} ${n.dialecteVersion}, the view ${r.dialecteVersion}`,
|
|
26
|
-
meta: {
|
|
27
|
-
project: t,
|
|
28
|
-
dialecteId: n.dialecteId,
|
|
29
|
-
engineVersion: n.dialecteVersion,
|
|
30
|
-
realmVersion: r.dialecteVersion
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
// src/store/engine/client/check-engine-wire.ts
|
|
35
|
-
function E(e) {
|
|
36
|
-
let { found: t } = e;
|
|
37
|
-
if (t !== 2) throw v("STORE_PROTOCOL_MISMATCH", {
|
|
38
|
-
detail: `The project engine speaks wire version ${t}, this page 2: another version of the library`,
|
|
39
|
-
meta: {
|
|
40
|
-
expected: 2,
|
|
41
|
-
found: t
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
// src/store/engine/wire/error-envelope.ts
|
|
46
|
-
function re(e) {
|
|
47
|
-
return O({
|
|
1
|
+
import { n as e, t } from "./engine-store-Deo9XNhr.js";
|
|
2
|
+
import { G as n, V as r, W as i } from "./utils-Cv4oHia0.js";
|
|
3
|
+
import { C as a, D as o, E as s, O as c, T as l } from "./engine.constants-Bi4gw6BR.js";
|
|
4
|
+
import { A as u, G as d, I as f, M as p, N as m, U as h, d as g, h as _, t as v } from "./project-key-2ccZ-0gu.js";
|
|
5
|
+
import { n as y, o as ee } from "./running-operations-DCKvzlU7.js";
|
|
6
|
+
import * as b from "comlink";
|
|
7
|
+
// src/store/sqlite/served/wire/error-envelope.ts
|
|
8
|
+
function x(e) {
|
|
9
|
+
return C({
|
|
48
10
|
thrown: e.thrown,
|
|
49
11
|
depth: 0
|
|
50
12
|
});
|
|
51
13
|
}
|
|
52
|
-
function
|
|
14
|
+
function S(e) {
|
|
53
15
|
let { data: t } = e;
|
|
54
16
|
switch (t.kind) {
|
|
55
17
|
case "dialecte": {
|
|
56
18
|
let { cause: e, ...n } = t.error, r = Error(t.message);
|
|
57
19
|
t.stack !== void 0 && (r.stack = t.stack);
|
|
58
20
|
let i = { ...n };
|
|
59
|
-
return e && (i.cause =
|
|
21
|
+
return e && (i.cause = te({ value: S({ data: e }) })), r.cause = i, r;
|
|
60
22
|
}
|
|
61
23
|
case "error": {
|
|
62
24
|
let e = Error(t.message);
|
|
63
|
-
return e.name = t.name, t.stack !== void 0 && (e.stack = t.stack), t.cause && (e.cause =
|
|
25
|
+
return e.name = t.name, t.stack !== void 0 && (e.stack = t.stack), t.cause && (e.cause = S({ data: t.cause })), e;
|
|
64
26
|
}
|
|
65
27
|
case "value": return t.value;
|
|
66
28
|
}
|
|
67
29
|
}
|
|
68
|
-
function
|
|
69
|
-
let { thrown: t, depth:
|
|
70
|
-
if (
|
|
71
|
-
let { cause: e, meta:
|
|
72
|
-
return
|
|
30
|
+
function C(e) {
|
|
31
|
+
let { thrown: t, depth: r } = e, i = n(t);
|
|
32
|
+
if (i && t instanceof Error) {
|
|
33
|
+
let { cause: e, meta: n, ref: a, ...o } = i, s = { ...o };
|
|
34
|
+
return n !== void 0 && (s.meta = w({ value: n })), a !== void 0 && (s.ref = w({ value: a })), e !== void 0 && r < 4 && (s.cause = C({
|
|
73
35
|
thrown: e,
|
|
74
|
-
depth:
|
|
36
|
+
depth: r + 1
|
|
75
37
|
})), {
|
|
76
38
|
kind: "dialecte",
|
|
77
39
|
message: t.message,
|
|
@@ -86,53 +48,134 @@ function O(e) {
|
|
|
86
48
|
message: t.message,
|
|
87
49
|
stack: t.stack
|
|
88
50
|
};
|
|
89
|
-
return t.cause !== void 0 &&
|
|
51
|
+
return t.cause !== void 0 && r < 4 && (e.cause = C({
|
|
90
52
|
thrown: t.cause,
|
|
91
|
-
depth:
|
|
53
|
+
depth: r + 1
|
|
92
54
|
})), e;
|
|
93
55
|
}
|
|
94
56
|
return {
|
|
95
57
|
kind: "value",
|
|
96
|
-
value:
|
|
58
|
+
value: w({ value: t })
|
|
97
59
|
};
|
|
98
60
|
}
|
|
99
|
-
function
|
|
61
|
+
function w(e) {
|
|
100
62
|
let { value: t, ancestors: n = /* @__PURE__ */ new Set() } = e;
|
|
101
|
-
if (
|
|
63
|
+
if (T({ value: t })) return t;
|
|
102
64
|
if (typeof t != "object" || !t || n.has(t)) return String(t);
|
|
103
65
|
let r = Object.getPrototypeOf(t), i = Array.isArray(t);
|
|
104
66
|
if (r !== (i ? Array.prototype : Object.prototype) && r !== null) return String(t);
|
|
105
67
|
n.add(t);
|
|
106
68
|
let a = i ? t.map(function(e) {
|
|
107
|
-
return
|
|
69
|
+
return w({
|
|
108
70
|
value: e,
|
|
109
71
|
ancestors: n
|
|
110
72
|
});
|
|
111
73
|
}) : Object.fromEntries(Object.entries(t).map(function([e, t]) {
|
|
112
|
-
return [e,
|
|
74
|
+
return [e, w({
|
|
113
75
|
value: t,
|
|
114
76
|
ancestors: n
|
|
115
77
|
})];
|
|
116
78
|
}));
|
|
117
79
|
return n.delete(t), a;
|
|
118
80
|
}
|
|
119
|
-
function
|
|
81
|
+
function T(e) {
|
|
120
82
|
try {
|
|
121
83
|
return structuredClone(e.value), !0;
|
|
122
84
|
} catch {
|
|
123
85
|
return !1;
|
|
124
86
|
}
|
|
125
87
|
}
|
|
126
|
-
function
|
|
88
|
+
function te(e) {
|
|
127
89
|
let { value: t } = e;
|
|
128
90
|
return t instanceof Error ? t : Error(String(t));
|
|
129
91
|
}
|
|
130
|
-
// src/store/
|
|
131
|
-
function
|
|
92
|
+
// src/store/sqlite/runtime/engine-control-loop.ts
|
|
93
|
+
function E(e) {
|
|
94
|
+
let { dialectes: t, loadEngine: n } = e;
|
|
95
|
+
self.addEventListener("error", function(e) {
|
|
96
|
+
console.error("Uncaught in the project engine:", e.error ?? e.message), e.preventDefault();
|
|
97
|
+
});
|
|
98
|
+
let r = new Promise(function(e) {
|
|
99
|
+
e(n());
|
|
100
|
+
}).then(function(e) {
|
|
101
|
+
return e.createSqliteEngineControl({ dialectes: t });
|
|
102
|
+
}).catch(function(e) {
|
|
103
|
+
return ne({ thrown: e });
|
|
104
|
+
}), i = Promise.resolve();
|
|
105
|
+
self.addEventListener("message", function(e) {
|
|
106
|
+
let t = e.data;
|
|
107
|
+
D(t) && (i = i.then(function() {
|
|
108
|
+
return r;
|
|
109
|
+
}).then(function(e) {
|
|
110
|
+
return e(t);
|
|
111
|
+
}).catch(function(e) {
|
|
112
|
+
console.error("The project engine could not answer a control message:", e);
|
|
113
|
+
}));
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function ne(e) {
|
|
117
|
+
let t = e.thrown instanceof Error ? e.thrown.message : String(e.thrown), n = x({ thrown: r(c.PROJECT_ENGINE_UNAVAILABLE, {
|
|
118
|
+
detail: `The engine worker could not load the engine's chunk, which serveSqliteEngine imports: ${t}. A build or a precache list that leaves that chunk out cannot open any project`,
|
|
119
|
+
meta: { failure: t }
|
|
120
|
+
}) });
|
|
121
|
+
return async function({ requestId: e }) {
|
|
122
|
+
self.postMessage({
|
|
123
|
+
type: "failed",
|
|
124
|
+
requestId: e,
|
|
125
|
+
thrown: n
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function D(e) {
|
|
130
|
+
return typeof e == "object" && !!e && typeof e.type == "string" && typeof e.requestId == "number";
|
|
131
|
+
}
|
|
132
|
+
var O = Symbol.for("@dialecte/core/sqlite/engine-registration/v3"), re = "@dialecte/core/sqlite", ie = 1e4, k = 2e3, A = 1e3, j = 3e4, M = 1e4, N = "unanswered", ae = {
|
|
133
|
+
"host-gone": "The project engine ended with the view that hosted it",
|
|
134
|
+
"no-heartbeat": "The project engine sent nothing for too long while a call waited",
|
|
135
|
+
"realm-dropped": "This view was dropped with the page that bound it: bound again, it reaches the engine"
|
|
136
|
+
};
|
|
137
|
+
// src/store/sqlite/served/dialecte-refusal.ts
|
|
138
|
+
function P(e) {
|
|
139
|
+
let { project: t, engine: n, asked: i } = e;
|
|
140
|
+
if (i.dialecteId !== n.dialecteId) throw r("PROJECT_DIALECTE_MISMATCH", {
|
|
141
|
+
detail: `"${t}" was asked as ${i.dialecteId} of an engine of ${n.dialecteId}: nothing was opened or removed`,
|
|
142
|
+
meta: {
|
|
143
|
+
project: t,
|
|
144
|
+
projectDialecteId: n.dialecteId,
|
|
145
|
+
realmDialecteId: i.dialecteId
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
if (i.dialecteVersion !== void 0 && i.dialecteVersion !== n.dialecteVersion) throw r("PROJECT_DIALECTE_VERSION_MISMATCH", {
|
|
149
|
+
detail: `the engine of "${t}" runs ${n.dialecteId} ${n.dialecteVersion}, the view ${i.dialecteVersion}`,
|
|
150
|
+
meta: {
|
|
151
|
+
project: t,
|
|
152
|
+
dialecteId: n.dialecteId,
|
|
153
|
+
engineVersion: n.dialecteVersion,
|
|
154
|
+
realmVersion: i.dialecteVersion
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
// src/store/sqlite/served/engine-lock.ts
|
|
159
|
+
function F(e) {
|
|
160
|
+
return `${l}${v(e)}`;
|
|
161
|
+
}
|
|
162
|
+
// src/store/sqlite/served/client/check-engine-wire.ts
|
|
163
|
+
function oe(e) {
|
|
164
|
+
let { found: t } = e;
|
|
165
|
+
if (t !== 2) throw r(c.STORE_PROTOCOL_MISMATCH, {
|
|
166
|
+
detail: `The project engine speaks wire version ${t}, this page 2: another version of the library`,
|
|
167
|
+
meta: {
|
|
168
|
+
expected: 2,
|
|
169
|
+
found: t
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
// src/store/sqlite/served/wire/wire-values.ts
|
|
174
|
+
function se(e) {
|
|
132
175
|
let t = [];
|
|
133
176
|
return {
|
|
134
177
|
values: e.values.map(function(e, n) {
|
|
135
|
-
return
|
|
178
|
+
return ce({
|
|
136
179
|
step: {
|
|
137
180
|
index: n,
|
|
138
181
|
path: [],
|
|
@@ -147,94 +190,94 @@ function j(e) {
|
|
|
147
190
|
standIns: t
|
|
148
191
|
};
|
|
149
192
|
}
|
|
150
|
-
function
|
|
193
|
+
function ce(e) {
|
|
151
194
|
let { step: t, read: n } = e, r;
|
|
152
195
|
try {
|
|
153
196
|
r = n();
|
|
154
197
|
} catch (e) {
|
|
155
|
-
return
|
|
198
|
+
return R({
|
|
156
199
|
step: t,
|
|
157
200
|
kind: "throwing-read",
|
|
158
|
-
message:
|
|
201
|
+
message: le({ thrown: e })
|
|
159
202
|
});
|
|
160
203
|
}
|
|
161
204
|
try {
|
|
162
|
-
return
|
|
205
|
+
return ue({
|
|
163
206
|
step: t,
|
|
164
207
|
value: r
|
|
165
208
|
});
|
|
166
209
|
} catch (e) {
|
|
167
|
-
return
|
|
210
|
+
return R({
|
|
168
211
|
step: t,
|
|
169
212
|
kind: "throwing-inspection",
|
|
170
|
-
message:
|
|
213
|
+
message: le({ thrown: e })
|
|
171
214
|
});
|
|
172
215
|
}
|
|
173
216
|
}
|
|
174
|
-
function
|
|
217
|
+
function le(e) {
|
|
175
218
|
let { thrown: t } = e;
|
|
176
219
|
return t instanceof Error ? t.message : String(t);
|
|
177
220
|
}
|
|
178
|
-
function
|
|
221
|
+
function ue(e) {
|
|
179
222
|
let { step: t, value: n } = e;
|
|
180
223
|
switch (typeof n) {
|
|
181
|
-
case "function": return
|
|
224
|
+
case "function": return R({
|
|
182
225
|
step: t,
|
|
183
226
|
kind: "function"
|
|
184
227
|
});
|
|
185
|
-
case "symbol": return
|
|
228
|
+
case "symbol": return R({
|
|
186
229
|
step: t,
|
|
187
230
|
kind: "symbol",
|
|
188
231
|
text: n.description
|
|
189
232
|
});
|
|
190
|
-
case "object": return n === null ? null :
|
|
233
|
+
case "object": return n === null ? null : de({
|
|
191
234
|
step: t,
|
|
192
235
|
held: n
|
|
193
236
|
});
|
|
194
237
|
default: return n;
|
|
195
238
|
}
|
|
196
239
|
}
|
|
197
|
-
function
|
|
240
|
+
function de(e) {
|
|
198
241
|
let { step: t, held: n } = e, r = Array.isArray(n), i = Object.getPrototypeOf(n);
|
|
199
|
-
if (!
|
|
242
|
+
if (!f({
|
|
200
243
|
prototype: i,
|
|
201
244
|
name: r ? "Array" : "Object"
|
|
202
|
-
})) return
|
|
245
|
+
})) return fe({
|
|
203
246
|
step: t,
|
|
204
247
|
held: n
|
|
205
248
|
});
|
|
206
|
-
if (i === null && JSON.isRawJSON?.(n)) return
|
|
249
|
+
if (i === null && JSON.isRawJSON?.(n)) return R({
|
|
207
250
|
step: t,
|
|
208
251
|
kind: "raw-json",
|
|
209
252
|
text: n.rawJSON
|
|
210
253
|
});
|
|
211
|
-
if (typeof n.toJSON == "function") return
|
|
254
|
+
if (typeof n.toJSON == "function") return R({
|
|
212
255
|
step: t,
|
|
213
256
|
kind: "to-json"
|
|
214
257
|
});
|
|
215
258
|
if (t.ancestors.has(n)) return t.ancestors.get(n);
|
|
216
259
|
if (t.ancestors.size >= 512) return r ? [] : {};
|
|
217
|
-
let
|
|
218
|
-
t.ancestors.set(n,
|
|
260
|
+
let a = r ? void 0 : Object.keys(n), o = r ? [] : {};
|
|
261
|
+
t.ancestors.set(n, o);
|
|
219
262
|
try {
|
|
220
|
-
r ?
|
|
263
|
+
r ? I({
|
|
221
264
|
step: t,
|
|
222
265
|
held: n,
|
|
223
|
-
copy:
|
|
224
|
-
}) :
|
|
266
|
+
copy: o
|
|
267
|
+
}) : L({
|
|
225
268
|
step: t,
|
|
226
269
|
held: n,
|
|
227
|
-
keys:
|
|
228
|
-
copy:
|
|
270
|
+
keys: a,
|
|
271
|
+
copy: o
|
|
229
272
|
});
|
|
230
273
|
} finally {
|
|
231
274
|
t.ancestors.delete(n);
|
|
232
275
|
}
|
|
233
|
-
return
|
|
276
|
+
return o;
|
|
234
277
|
}
|
|
235
|
-
function
|
|
278
|
+
function fe(e) {
|
|
236
279
|
let { step: t, held: n } = e;
|
|
237
|
-
|
|
280
|
+
R({
|
|
238
281
|
step: t,
|
|
239
282
|
kind: "instance",
|
|
240
283
|
name: n.constructor?.name ?? ""
|
|
@@ -244,7 +287,7 @@ function se(e) {
|
|
|
244
287
|
try {
|
|
245
288
|
for (let e of Object.keys(n)) {
|
|
246
289
|
let t = n[e];
|
|
247
|
-
|
|
290
|
+
pe({ value: t }) && Object.defineProperty(r, e, {
|
|
248
291
|
value: t,
|
|
249
292
|
writable: !0,
|
|
250
293
|
enumerable: !0,
|
|
@@ -254,16 +297,16 @@ function se(e) {
|
|
|
254
297
|
} catch {}
|
|
255
298
|
return r;
|
|
256
299
|
}
|
|
257
|
-
function
|
|
300
|
+
function pe(e) {
|
|
258
301
|
let { value: t } = e, n = typeof t;
|
|
259
302
|
return t === null || n === "string" || n === "boolean" || n === "number" && Number.isFinite(t);
|
|
260
303
|
}
|
|
261
|
-
function
|
|
304
|
+
function I(e) {
|
|
262
305
|
let { step: t, held: n, copy: r } = e, { length: i } = n;
|
|
263
306
|
for (let e = 0; e < i; e += 1) {
|
|
264
307
|
t.path.push(e);
|
|
265
308
|
try {
|
|
266
|
-
r.push(
|
|
309
|
+
r.push(ce({
|
|
267
310
|
step: t,
|
|
268
311
|
read: function() {
|
|
269
312
|
return n[e];
|
|
@@ -274,13 +317,13 @@ function le(e) {
|
|
|
274
317
|
}
|
|
275
318
|
}
|
|
276
319
|
}
|
|
277
|
-
function
|
|
320
|
+
function L(e) {
|
|
278
321
|
let { step: t, held: n, keys: r, copy: i } = e;
|
|
279
322
|
for (let e of r) {
|
|
280
323
|
t.path.push(e);
|
|
281
324
|
let r;
|
|
282
325
|
try {
|
|
283
|
-
r =
|
|
326
|
+
r = ce({
|
|
284
327
|
step: t,
|
|
285
328
|
read: function() {
|
|
286
329
|
return n[e];
|
|
@@ -297,7 +340,7 @@ function ue(e) {
|
|
|
297
340
|
}) : i[e] = r;
|
|
298
341
|
}
|
|
299
342
|
}
|
|
300
|
-
function
|
|
343
|
+
function R(e) {
|
|
301
344
|
let { step: t, kind: n, name: r, text: i, message: a } = e;
|
|
302
345
|
return t.standIns.push({
|
|
303
346
|
index: t.index,
|
|
@@ -308,24 +351,24 @@ function P(e) {
|
|
|
308
351
|
message: a
|
|
309
352
|
}), null;
|
|
310
353
|
}
|
|
311
|
-
function
|
|
354
|
+
function me(e) {
|
|
312
355
|
let { args: t, places: n } = e, r = t.map(function(e, t) {
|
|
313
356
|
let r = n.filter(function(e) {
|
|
314
357
|
return e.argument === t;
|
|
315
358
|
});
|
|
316
|
-
return r.some(
|
|
359
|
+
return r.some(_e) ? e : B({
|
|
317
360
|
value: e,
|
|
318
|
-
skip: new Set(r.map(
|
|
361
|
+
skip: new Set(r.map(ve)),
|
|
319
362
|
copies: /* @__PURE__ */ new Map()
|
|
320
363
|
});
|
|
321
|
-
}), i =
|
|
322
|
-
return
|
|
364
|
+
}), i = se({ values: n.map(function(e) {
|
|
365
|
+
return he({
|
|
323
366
|
args: t,
|
|
324
367
|
place: e
|
|
325
368
|
});
|
|
326
369
|
}) });
|
|
327
370
|
return {
|
|
328
|
-
args:
|
|
371
|
+
args: z({
|
|
329
372
|
args: r,
|
|
330
373
|
places: n,
|
|
331
374
|
values: i.values
|
|
@@ -333,7 +376,7 @@ function F(e) {
|
|
|
333
376
|
standIns: i.standIns
|
|
334
377
|
};
|
|
335
378
|
}
|
|
336
|
-
function
|
|
379
|
+
function he(e) {
|
|
337
380
|
let { args: t, place: n } = e, r = t[n.argument];
|
|
338
381
|
for (let e of n.path ?? []) {
|
|
339
382
|
if (r == null) return;
|
|
@@ -341,54 +384,54 @@ function de(e) {
|
|
|
341
384
|
}
|
|
342
385
|
return r;
|
|
343
386
|
}
|
|
344
|
-
function
|
|
387
|
+
function z(e) {
|
|
345
388
|
let { args: t, places: n, values: r } = e, i = [...t];
|
|
346
389
|
return n.forEach(function(e, t) {
|
|
347
|
-
i[e.argument] =
|
|
390
|
+
i[e.argument] = ge({
|
|
348
391
|
holder: i[e.argument],
|
|
349
392
|
path: e.path ?? [],
|
|
350
393
|
value: r[t]
|
|
351
394
|
});
|
|
352
395
|
}), i;
|
|
353
396
|
}
|
|
354
|
-
function
|
|
397
|
+
function ge(e) {
|
|
355
398
|
let { holder: t, path: n, value: r } = e;
|
|
356
399
|
if (n.length === 0) return r;
|
|
357
400
|
if (t == null) return t;
|
|
358
401
|
let [i, ...a] = n, o = t;
|
|
359
402
|
return {
|
|
360
403
|
...o,
|
|
361
|
-
[i]:
|
|
404
|
+
[i]: ge({
|
|
362
405
|
holder: o[i],
|
|
363
406
|
path: a,
|
|
364
407
|
value: r
|
|
365
408
|
})
|
|
366
409
|
};
|
|
367
410
|
}
|
|
368
|
-
function
|
|
411
|
+
function B(e) {
|
|
369
412
|
let { value: t, skip: n, copies: r } = e;
|
|
370
413
|
if (typeof t != "object" || !t) return t;
|
|
371
414
|
if (r.has(t)) return r.get(t);
|
|
372
415
|
let i = Array.isArray(t);
|
|
373
|
-
if (!
|
|
416
|
+
if (!f({
|
|
374
417
|
prototype: Object.getPrototypeOf(t),
|
|
375
418
|
name: i ? "Array" : "Object"
|
|
376
419
|
})) return t;
|
|
377
420
|
if (i) {
|
|
378
421
|
let e = [];
|
|
379
422
|
r.set(t, e);
|
|
380
|
-
for (let n of t) e.push(
|
|
423
|
+
for (let n of t) e.push(B({
|
|
381
424
|
value: n,
|
|
382
425
|
copies: r
|
|
383
426
|
}));
|
|
384
427
|
return e;
|
|
385
428
|
}
|
|
386
|
-
let
|
|
387
|
-
r.set(t,
|
|
429
|
+
let a = {};
|
|
430
|
+
r.set(t, a);
|
|
388
431
|
for (let e of Object.keys(t)) {
|
|
389
432
|
let i = t[e];
|
|
390
|
-
Object.defineProperty(
|
|
391
|
-
value: n?.has(e) ? i :
|
|
433
|
+
Object.defineProperty(a, e, {
|
|
434
|
+
value: n?.has(e) ? i : B({
|
|
392
435
|
value: i,
|
|
393
436
|
copies: r
|
|
394
437
|
}),
|
|
@@ -397,149 +440,149 @@ function L(e) {
|
|
|
397
440
|
configurable: !0
|
|
398
441
|
});
|
|
399
442
|
}
|
|
400
|
-
return
|
|
443
|
+
return a;
|
|
401
444
|
}
|
|
402
|
-
function
|
|
445
|
+
function _e(e) {
|
|
403
446
|
return (e.path ?? []).length === 0;
|
|
404
447
|
}
|
|
405
|
-
function
|
|
448
|
+
function ve(e) {
|
|
406
449
|
return e.path[0];
|
|
407
450
|
}
|
|
408
|
-
// src/store/
|
|
409
|
-
function
|
|
410
|
-
let { source: t, timeoutMs: n, waiting: r, lose: i } = e, a = performance.now(), o = e.busy ?? !1,
|
|
411
|
-
function
|
|
451
|
+
// src/store/sqlite/served/client/heartbeat-watch.ts
|
|
452
|
+
function ye(e) {
|
|
453
|
+
let { source: t, timeoutMs: n, waiting: r, lose: i } = e, a = performance.now(), o = e.busy ?? !1, c;
|
|
454
|
+
function l(e) {
|
|
412
455
|
a = performance.now();
|
|
413
456
|
let t = e.data?.type;
|
|
414
|
-
t ===
|
|
457
|
+
t === s.busy && (o = !0), t === s.heartbeat && (o = !1), d({ delayMs: n });
|
|
415
458
|
}
|
|
416
|
-
function
|
|
417
|
-
a = performance.now(),
|
|
459
|
+
function u() {
|
|
460
|
+
a = performance.now(), d({ delayMs: n });
|
|
418
461
|
}
|
|
419
|
-
function
|
|
420
|
-
|
|
462
|
+
function d(e) {
|
|
463
|
+
c === void 0 && (c = setTimeout(f, e.delayMs));
|
|
421
464
|
}
|
|
422
|
-
function
|
|
423
|
-
if (
|
|
465
|
+
function f() {
|
|
466
|
+
if (c = void 0, r() === 0) return;
|
|
424
467
|
let e = performance.now() - a;
|
|
425
|
-
o || e < n ?
|
|
468
|
+
o || e < n ? d({ delayMs: o ? n : n - e }) : g().then(p);
|
|
426
469
|
}
|
|
427
|
-
function
|
|
428
|
-
r() !== 0 &&
|
|
470
|
+
function p() {
|
|
471
|
+
r() !== 0 && c === void 0 && (o || performance.now() - a < n ? d({ delayMs: 0 }) : i());
|
|
429
472
|
}
|
|
430
|
-
let
|
|
431
|
-
return t.addEventListener("message",
|
|
432
|
-
restart:
|
|
473
|
+
let m = globalThis.document;
|
|
474
|
+
return t.addEventListener("message", l), m?.addEventListener("resume", u), globalThis.addEventListener?.("pageshow", u), {
|
|
475
|
+
restart: u,
|
|
433
476
|
stop: function() {
|
|
434
|
-
|
|
477
|
+
c !== void 0 && clearTimeout(c), c = void 0, t.removeEventListener("message", l), m?.removeEventListener("resume", u), globalThis.removeEventListener?.("pageshow", u);
|
|
435
478
|
}
|
|
436
479
|
};
|
|
437
480
|
}
|
|
438
|
-
// src/store/
|
|
439
|
-
function
|
|
440
|
-
let { port:
|
|
441
|
-
source:
|
|
442
|
-
timeoutMs:
|
|
481
|
+
// src/store/sqlite/served/client/engine-client.ts
|
|
482
|
+
function be(t) {
|
|
483
|
+
let { port: n, heartbeatTimeoutMs: i = M } = t, a = b.wrap(n), o = /* @__PURE__ */ new Set(), s = xe({ port: n }), c = Se({ port: n }), l = /* @__PURE__ */ new Set(), u = ye({
|
|
484
|
+
source: n,
|
|
485
|
+
timeoutMs: i,
|
|
443
486
|
waiting: function() {
|
|
444
|
-
return
|
|
487
|
+
return o.size;
|
|
445
488
|
},
|
|
446
489
|
lose: function() {
|
|
447
|
-
|
|
490
|
+
d({ reason: "no-heartbeat" });
|
|
448
491
|
}
|
|
449
492
|
});
|
|
450
|
-
function
|
|
493
|
+
function d(e) {
|
|
451
494
|
let { reason: t } = e;
|
|
452
|
-
for (let e of
|
|
495
|
+
for (let e of o) V({
|
|
453
496
|
entry: e,
|
|
454
497
|
reason: t,
|
|
455
|
-
unanswered:
|
|
456
|
-
}), t === "no-heartbeat" && e.exportId !== void 0 &&
|
|
457
|
-
|
|
458
|
-
}
|
|
459
|
-
function
|
|
460
|
-
let
|
|
461
|
-
args: [
|
|
462
|
-
places:
|
|
498
|
+
unanswered: l
|
|
499
|
+
}), t === "no-heartbeat" && e.exportId !== void 0 && f({ exportId: e.exportId });
|
|
500
|
+
o.clear(), s.clear();
|
|
501
|
+
}
|
|
502
|
+
function f(t) {
|
|
503
|
+
let n = e.abortExport, r = me({
|
|
504
|
+
args: [t],
|
|
505
|
+
places: n.json ?? []
|
|
463
506
|
});
|
|
464
|
-
|
|
507
|
+
a.call({
|
|
465
508
|
member: "abortExport",
|
|
466
509
|
args: r.args,
|
|
467
510
|
standIns: r.standIns
|
|
468
511
|
}).catch(function() {});
|
|
469
512
|
}
|
|
470
|
-
function
|
|
471
|
-
let { member:
|
|
472
|
-
if (
|
|
513
|
+
function p(t) {
|
|
514
|
+
let { member: n, args: r, connectionId: i } = t, c = e[n], d = c.listener === void 0 ? void 0 : r[c.listener], f = c.listener === void 0 ? r : r.slice(0, c.listener), p = c.identified ? f[0].writeId : void 0, m = c.abortable ? f[0].exportId : void 0;
|
|
515
|
+
if (n === "getWriteOutcome") {
|
|
473
516
|
let e = f[0].writeId;
|
|
474
|
-
if (
|
|
517
|
+
if (l.has(e)) return Promise.resolve("running");
|
|
475
518
|
}
|
|
476
|
-
let h =
|
|
519
|
+
let h = me({
|
|
477
520
|
args: f,
|
|
478
|
-
places:
|
|
521
|
+
places: c.json ?? []
|
|
479
522
|
});
|
|
480
|
-
return new Promise(function(e,
|
|
481
|
-
let r = typeof d == "function" ?
|
|
523
|
+
return new Promise(function(e, t) {
|
|
524
|
+
let r = typeof d == "function" ? s.add({ listener: d }) : void 0, c = {
|
|
482
525
|
writeId: p,
|
|
483
526
|
exportId: m,
|
|
484
|
-
reject:
|
|
527
|
+
reject: t,
|
|
485
528
|
lost: !1
|
|
486
529
|
};
|
|
487
|
-
|
|
488
|
-
member:
|
|
530
|
+
o.size === 0 && u.restart(), o.add(c), a.call({
|
|
531
|
+
member: n,
|
|
489
532
|
args: h.args,
|
|
490
533
|
standIns: h.standIns,
|
|
491
534
|
progressId: r,
|
|
492
|
-
...
|
|
493
|
-
}).then(function(
|
|
494
|
-
|
|
535
|
+
...i !== void 0 && { connectionId: i }
|
|
536
|
+
}).then(function(n) {
|
|
537
|
+
s.remove({ progressId: r }), o.delete(c), p !== void 0 && l.delete(p), c.lost || (n.ok ? e(n.value) : t(S({ data: n.thrown })));
|
|
495
538
|
}, function(e) {
|
|
496
|
-
|
|
539
|
+
s.remove({ progressId: r }), o.delete(c), c.lost || t(e);
|
|
497
540
|
});
|
|
498
541
|
});
|
|
499
542
|
}
|
|
500
|
-
function
|
|
501
|
-
let { connectionId:
|
|
502
|
-
return Object.fromEntries(Object.keys(
|
|
503
|
-
return [e, function(...
|
|
504
|
-
return
|
|
543
|
+
function m(t) {
|
|
544
|
+
let { connectionId: n } = t;
|
|
545
|
+
return Object.fromEntries(Object.keys(e).map(function(e) {
|
|
546
|
+
return [e, function(...t) {
|
|
547
|
+
return p({
|
|
505
548
|
member: e,
|
|
506
|
-
args:
|
|
507
|
-
connectionId:
|
|
549
|
+
args: t,
|
|
550
|
+
connectionId: n
|
|
508
551
|
});
|
|
509
552
|
}];
|
|
510
553
|
}));
|
|
511
554
|
}
|
|
512
555
|
return {
|
|
513
|
-
api:
|
|
556
|
+
api: m({ connectionId: void 0 }),
|
|
514
557
|
connection: function({ connectionId: e }) {
|
|
515
|
-
return
|
|
558
|
+
return m({ connectionId: e });
|
|
516
559
|
},
|
|
517
560
|
onEvent: function(e) {
|
|
518
|
-
return
|
|
561
|
+
return c.add({ listener: e });
|
|
519
562
|
},
|
|
520
|
-
lose:
|
|
563
|
+
lose: d,
|
|
521
564
|
close: function({ storeName: e }) {
|
|
522
|
-
|
|
523
|
-
for (let t of
|
|
565
|
+
u.stop(), s.stop(), c.stop();
|
|
566
|
+
for (let t of o) t.lost = !0, t.reject(r("STORE_CLOSED", {
|
|
524
567
|
detail: `The connection to project "${e}" was released while a call waited`,
|
|
525
568
|
meta: { storeName: e }
|
|
526
569
|
}));
|
|
527
|
-
|
|
570
|
+
o.clear(), n.close();
|
|
528
571
|
}
|
|
529
572
|
};
|
|
530
573
|
}
|
|
531
|
-
function
|
|
574
|
+
function xe(e) {
|
|
532
575
|
let { port: t } = e, n = /* @__PURE__ */ new Map(), r = 0;
|
|
533
576
|
function i(e) {
|
|
534
577
|
let t = e.data;
|
|
535
|
-
if (t?.type !==
|
|
578
|
+
if (t?.type !== s.progress) return;
|
|
536
579
|
let r = n.get(t.progressId);
|
|
537
|
-
|
|
580
|
+
p({
|
|
538
581
|
listener: r && function(e) {
|
|
539
582
|
return r.listener(...e);
|
|
540
583
|
},
|
|
541
584
|
value: t.progress,
|
|
542
|
-
of:
|
|
585
|
+
of: u.callProgress,
|
|
543
586
|
call: r
|
|
544
587
|
});
|
|
545
588
|
}
|
|
@@ -558,14 +601,14 @@ function ge(e) {
|
|
|
558
601
|
}
|
|
559
602
|
};
|
|
560
603
|
}
|
|
561
|
-
function
|
|
604
|
+
function Se(e) {
|
|
562
605
|
let { port: t } = e, n = /* @__PURE__ */ new Set();
|
|
563
606
|
function r(e) {
|
|
564
607
|
let t = e.data;
|
|
565
|
-
t?.type ===
|
|
608
|
+
t?.type === s.event && m({
|
|
566
609
|
listeners: n,
|
|
567
610
|
value: t,
|
|
568
|
-
of:
|
|
611
|
+
of: u.engineChanges
|
|
569
612
|
});
|
|
570
613
|
}
|
|
571
614
|
return t.addEventListener("message", r), t.start(), {
|
|
@@ -579,22 +622,22 @@ function _e(e) {
|
|
|
579
622
|
}
|
|
580
623
|
};
|
|
581
624
|
}
|
|
582
|
-
function
|
|
583
|
-
let { entry: t, reason: n, unanswered:
|
|
584
|
-
t.lost = !0, t.writeId !== void 0 && n === "no-heartbeat" &&
|
|
585
|
-
detail:
|
|
625
|
+
function V(e) {
|
|
626
|
+
let { entry: t, reason: n, unanswered: i } = e;
|
|
627
|
+
t.lost = !0, t.writeId !== void 0 && n === "no-heartbeat" && i.add(t.writeId), t.reject(r("STORE_CONNECTION_LOST", {
|
|
628
|
+
detail: ae[n],
|
|
586
629
|
meta: {
|
|
587
630
|
reason: n,
|
|
588
631
|
...t.writeId !== void 0 && { writeId: t.writeId }
|
|
589
632
|
}
|
|
590
633
|
}));
|
|
591
634
|
}
|
|
592
|
-
// src/store/
|
|
593
|
-
function
|
|
594
|
-
let { worker: t } = e, n = /* @__PURE__ */ new Map(),
|
|
635
|
+
// src/store/sqlite/served/client/engine-control.ts
|
|
636
|
+
function Ce(e) {
|
|
637
|
+
let { worker: t } = e, n = /* @__PURE__ */ new Map(), i = 0, a = !1, o, l = !1;
|
|
595
638
|
return t.addEventListener("error", function(e) {
|
|
596
|
-
if (
|
|
597
|
-
let t =
|
|
639
|
+
if (a) return;
|
|
640
|
+
let t = r(c.PROJECT_ENGINE_UNAVAILABLE, {
|
|
598
641
|
detail: `The project engine worker could not start: ${e.message || "its script failed to load"}`,
|
|
599
642
|
cause: Error(e.message || "worker error")
|
|
600
643
|
});
|
|
@@ -602,48 +645,48 @@ function z(e) {
|
|
|
602
645
|
n.clear();
|
|
603
646
|
}), t.addEventListener("message", function(e) {
|
|
604
647
|
let t = e.data;
|
|
605
|
-
if (t?.type ===
|
|
606
|
-
let
|
|
607
|
-
|
|
648
|
+
if (t?.type === s.busy && (l = !0), t?.type === s.heartbeat && (l = !1), !t || !("requestId" in t)) return;
|
|
649
|
+
let i = t, a = n.get(i.requestId);
|
|
650
|
+
a && (n.delete(i.requestId), i.type === "failed" ? a.reject(S({ data: i.thrown })) : i.type === a.expect ? a.resolve(i) : a.reject(r("ASSERTION_FAILED", { detail: `The engine answered "${i.type}" where "${a.expect}" was expected` })));
|
|
608
651
|
}), {
|
|
609
652
|
watchSilence: function({ budgetMs: e }) {
|
|
610
|
-
return
|
|
653
|
+
return H({
|
|
611
654
|
worker: t,
|
|
612
|
-
busy:
|
|
655
|
+
busy: l,
|
|
613
656
|
budgetMs: e
|
|
614
657
|
});
|
|
615
658
|
},
|
|
616
659
|
opened: function() {
|
|
617
|
-
|
|
660
|
+
a = !0;
|
|
618
661
|
},
|
|
619
662
|
end: function({ error: e }) {
|
|
620
|
-
|
|
663
|
+
o = e;
|
|
621
664
|
for (let t of n.values()) t.reject(e);
|
|
622
665
|
n.clear();
|
|
623
666
|
},
|
|
624
|
-
request: function({ message: e, expect:
|
|
625
|
-
|
|
626
|
-
let s =
|
|
627
|
-
return new Promise(function(
|
|
628
|
-
|
|
629
|
-
expect:
|
|
630
|
-
resolve:
|
|
667
|
+
request: function({ message: e, expect: r, transfer: a = [] }) {
|
|
668
|
+
i += 1;
|
|
669
|
+
let s = i;
|
|
670
|
+
return new Promise(function(i, c) {
|
|
671
|
+
o === void 0 ? (n.set(s, {
|
|
672
|
+
expect: r,
|
|
673
|
+
resolve: i,
|
|
631
674
|
reject: c
|
|
632
675
|
}), t.postMessage({
|
|
633
676
|
...e,
|
|
634
677
|
requestId: s
|
|
635
|
-
},
|
|
678
|
+
}, a)) : c(o);
|
|
636
679
|
});
|
|
637
680
|
}
|
|
638
681
|
};
|
|
639
682
|
}
|
|
640
|
-
function
|
|
641
|
-
let { worker: t, busy: n, budgetMs: r } = e, i =
|
|
683
|
+
function H(e) {
|
|
684
|
+
let { worker: t, busy: n, budgetMs: r } = e, i = Ee, a = new Promise(function(e) {
|
|
642
685
|
i = e;
|
|
643
|
-
}), o =
|
|
686
|
+
}), o = ye({
|
|
644
687
|
source: t,
|
|
645
688
|
timeoutMs: r,
|
|
646
|
-
waiting:
|
|
689
|
+
waiting: we,
|
|
647
690
|
lose: i,
|
|
648
691
|
busy: n
|
|
649
692
|
});
|
|
@@ -652,12 +695,12 @@ function ye(e) {
|
|
|
652
695
|
stop: o.stop
|
|
653
696
|
};
|
|
654
697
|
}
|
|
655
|
-
function
|
|
698
|
+
function we() {
|
|
656
699
|
return 1;
|
|
657
700
|
}
|
|
658
|
-
async function
|
|
701
|
+
async function Te(e) {
|
|
659
702
|
let { control: t, work: n, budgetMs: r } = e, i = t.watchSilence({ budgetMs: r }), a = i.silent.then(function() {
|
|
660
|
-
return
|
|
703
|
+
return N;
|
|
661
704
|
});
|
|
662
705
|
try {
|
|
663
706
|
return await Promise.race([n, a]);
|
|
@@ -665,66 +708,66 @@ async function xe(e) {
|
|
|
665
708
|
i.stop();
|
|
666
709
|
}
|
|
667
710
|
}
|
|
668
|
-
function
|
|
669
|
-
// src/store/
|
|
670
|
-
var
|
|
671
|
-
function
|
|
672
|
-
return
|
|
711
|
+
function Ee() {}
|
|
712
|
+
// src/store/sqlite/served/client/worker-connector.ts
|
|
713
|
+
var U = /* @__PURE__ */ new Map(), W = /* @__PURE__ */ new Map(), G = { next: 0 }, K = y(), q = /* @__PURE__ */ new WeakMap();
|
|
714
|
+
function De(e) {
|
|
715
|
+
return _({
|
|
673
716
|
project: e.name,
|
|
674
717
|
dialecteId: e.dialecteId
|
|
675
718
|
}), {
|
|
676
719
|
connect: function() {
|
|
677
|
-
return
|
|
720
|
+
return Oe(e);
|
|
678
721
|
},
|
|
679
722
|
destroy: function(t) {
|
|
680
|
-
return
|
|
723
|
+
return ze({
|
|
681
724
|
connector: e,
|
|
682
725
|
own: t?.own
|
|
683
726
|
});
|
|
684
727
|
}
|
|
685
728
|
};
|
|
686
729
|
}
|
|
687
|
-
async function
|
|
730
|
+
async function Oe(e) {
|
|
688
731
|
let t = e.openBudgetMs ?? 1e4, n = {
|
|
689
732
|
clientId: crypto.randomUUID(),
|
|
690
733
|
released: !1,
|
|
691
734
|
listeners: /* @__PURE__ */ new Set(),
|
|
692
|
-
follow:
|
|
735
|
+
follow: Fe,
|
|
693
736
|
mayFollow: !0,
|
|
694
737
|
followedAt: void 0,
|
|
695
|
-
followRearmMs:
|
|
738
|
+
followRearmMs: A,
|
|
696
739
|
adoption: void 0,
|
|
697
740
|
creationId: void 0,
|
|
698
741
|
refusal: void 0,
|
|
699
742
|
releasing: void 0
|
|
700
743
|
}, r = J(e);
|
|
701
|
-
|
|
744
|
+
K.markOpen({
|
|
702
745
|
name: r,
|
|
703
746
|
connection: n
|
|
704
|
-
}), await
|
|
747
|
+
}), await ke({
|
|
705
748
|
connector: e,
|
|
706
749
|
link: n
|
|
707
750
|
}).catch(function(e) {
|
|
708
|
-
throw
|
|
751
|
+
throw K.markClosed({
|
|
709
752
|
name: r,
|
|
710
753
|
connection: n
|
|
711
754
|
}), e;
|
|
712
755
|
});
|
|
713
756
|
async function i() {
|
|
714
|
-
n.released &&
|
|
715
|
-
let r = await
|
|
757
|
+
n.released && d({ storeName: e.name });
|
|
758
|
+
let r = await ke({
|
|
716
759
|
connector: e,
|
|
717
760
|
link: n
|
|
718
761
|
});
|
|
719
762
|
if (n.adoption?.generation !== r.generation) {
|
|
720
|
-
|
|
763
|
+
Le({
|
|
721
764
|
adoption: n.adoption,
|
|
722
765
|
storeName: e.name
|
|
723
766
|
});
|
|
724
767
|
let i = n.adoption !== void 0;
|
|
725
768
|
n.adoption = {
|
|
726
769
|
generation: r.generation,
|
|
727
|
-
client:
|
|
770
|
+
client: Ie({
|
|
728
771
|
name: e.name,
|
|
729
772
|
dialecteId: e.dialecteId,
|
|
730
773
|
engine: r,
|
|
@@ -733,14 +776,14 @@ async function we(e) {
|
|
|
733
776
|
openBudgetMs: t
|
|
734
777
|
}).then(function(e) {
|
|
735
778
|
return e.onEvent(function(e) {
|
|
736
|
-
|
|
779
|
+
Pe({
|
|
737
780
|
state: n,
|
|
738
781
|
notice: {
|
|
739
782
|
type: "event",
|
|
740
783
|
signal: e
|
|
741
784
|
}
|
|
742
785
|
});
|
|
743
|
-
}), i &&
|
|
786
|
+
}), i && Pe({
|
|
744
787
|
state: n,
|
|
745
788
|
notice: { type: "resync" }
|
|
746
789
|
}), e;
|
|
@@ -751,161 +794,172 @@ async function we(e) {
|
|
|
751
794
|
}
|
|
752
795
|
let a = {
|
|
753
796
|
engine: function() {
|
|
754
|
-
return n.mayFollow = !0, n.followRearmMs =
|
|
797
|
+
return n.mayFollow = !0, n.followRearmMs = A, i();
|
|
755
798
|
},
|
|
756
799
|
connectionId: n.clientId,
|
|
757
800
|
onNotice: function(e) {
|
|
758
|
-
return n.released ?
|
|
801
|
+
return n.released ? Fe : (n.listeners.add(e), function() {
|
|
759
802
|
n.listeners.delete(e);
|
|
760
803
|
});
|
|
761
804
|
},
|
|
762
805
|
close: function() {
|
|
763
|
-
return n.releasing ??=
|
|
806
|
+
return n.releasing ??= o(), n.releasing;
|
|
764
807
|
}
|
|
765
808
|
};
|
|
766
809
|
n.follow = function() {
|
|
767
810
|
let e = n.followedAt !== void 0 && performance.now() - n.followedAt >= n.followRearmMs;
|
|
768
|
-
!n.released && n.listeners.size !== 0 && (n.mayFollow || e) && (e && (n.followRearmMs = Math.min(n.followRearmMs * 2,
|
|
811
|
+
!n.released && n.listeners.size !== 0 && (n.mayFollow || e) && (e && (n.followRearmMs = Math.min(n.followRearmMs * 2, j)), n.mayFollow = !1, n.followedAt = void 0, i().then(function() {
|
|
769
812
|
n.followedAt = performance.now();
|
|
770
813
|
}, function() {}));
|
|
771
814
|
};
|
|
772
|
-
async function
|
|
773
|
-
n.released = !0, n.listeners.clear(),
|
|
815
|
+
async function o() {
|
|
816
|
+
n.released = !0, n.listeners.clear(), K.markClosed({
|
|
774
817
|
name: r,
|
|
775
818
|
connection: n
|
|
776
819
|
});
|
|
777
|
-
let i =
|
|
778
|
-
|
|
820
|
+
let i = U.get(r);
|
|
821
|
+
Re({
|
|
779
822
|
engine: i,
|
|
780
823
|
state: n,
|
|
781
824
|
storeName: e.name
|
|
782
|
-
}), i?.links.delete(n) ? i.links.size > 0 || await
|
|
825
|
+
}), i?.links.delete(n) ? i.links.size > 0 || await Ke({
|
|
783
826
|
name: e.name,
|
|
784
827
|
dialecteId: e.dialecteId,
|
|
785
828
|
engine: i,
|
|
786
829
|
openBudgetMs: t
|
|
787
|
-
}) : await
|
|
830
|
+
}) : await W.get(r);
|
|
788
831
|
}
|
|
789
|
-
return
|
|
832
|
+
return q.set(a, n), a;
|
|
790
833
|
}
|
|
791
|
-
async function
|
|
792
|
-
let { connector: t, link:
|
|
793
|
-
if (await
|
|
794
|
-
let
|
|
795
|
-
|
|
834
|
+
async function ke(e) {
|
|
835
|
+
let { connector: t, link: r } = e, { name: i } = t, a = J(t);
|
|
836
|
+
if (await W.get(a), r.released && d({ storeName: i }), r.refusal !== void 0) throw r.refusal;
|
|
837
|
+
let s = U.get(a);
|
|
838
|
+
s || (s = Ae({
|
|
796
839
|
connector: t,
|
|
797
|
-
expectedCreationId:
|
|
798
|
-
}),
|
|
840
|
+
expectedCreationId: r.creationId
|
|
841
|
+
}), U.set(a, s)), P({
|
|
842
|
+
project: i,
|
|
843
|
+
engine: {
|
|
844
|
+
dialecteId: t.dialecteId,
|
|
845
|
+
dialecteVersion: s.dialecteVersion
|
|
846
|
+
},
|
|
847
|
+
asked: {
|
|
848
|
+
dialecteId: t.dialecteId,
|
|
849
|
+
dialecteVersion: t.dialecteVersion
|
|
850
|
+
}
|
|
851
|
+
}), s.links.add(r);
|
|
799
852
|
try {
|
|
800
|
-
await
|
|
853
|
+
await s.opened;
|
|
801
854
|
} catch (t) {
|
|
802
|
-
|
|
803
|
-
let
|
|
804
|
-
if (
|
|
805
|
-
throw
|
|
855
|
+
s.links.delete(r), U.get(a) === s && U.delete(a);
|
|
856
|
+
let i = n(t)?.key === "PROJECT_DESTROYED_WHILE_AWAY";
|
|
857
|
+
if (i && r.creationId === void 0) return ke(e);
|
|
858
|
+
throw i && (r.refusal = t), t;
|
|
806
859
|
}
|
|
807
|
-
|
|
860
|
+
r.released && d({ storeName: i });
|
|
808
861
|
try {
|
|
809
|
-
|
|
810
|
-
project:
|
|
811
|
-
expectedCreationId:
|
|
812
|
-
creationId:
|
|
862
|
+
o({
|
|
863
|
+
project: i,
|
|
864
|
+
expectedCreationId: r.creationId,
|
|
865
|
+
creationId: s.creationId
|
|
813
866
|
});
|
|
814
867
|
} catch (e) {
|
|
815
|
-
throw
|
|
816
|
-
name:
|
|
868
|
+
throw r.refusal = e, s.links.delete(r) && s.links.size === 0 && !s.ended && Ke({
|
|
869
|
+
name: i,
|
|
817
870
|
dialecteId: t.dialecteId,
|
|
818
|
-
engine:
|
|
871
|
+
engine: s,
|
|
819
872
|
openBudgetMs: t.openBudgetMs ?? 1e4
|
|
820
873
|
}), e;
|
|
821
874
|
}
|
|
822
|
-
return
|
|
875
|
+
return r.creationId = s.creationId, s;
|
|
823
876
|
}
|
|
824
|
-
function
|
|
825
|
-
let { connector: t, expectedCreationId: n } = e, { name:
|
|
826
|
-
|
|
827
|
-
let
|
|
828
|
-
worker:
|
|
829
|
-
|
|
877
|
+
function Ae(e) {
|
|
878
|
+
let { connector: t, expectedCreationId: n } = e, { name: i, dialecteId: a, dialecteVersion: o, engineUrl: s, perf: l = !1, openBudgetMs: u = ie, liveness: d = {}, settings: f } = t, p = Math.max(t.openWindowMs ?? 3e4, u + k), m = new Worker(s, { type: "module" }), h = Ce({ worker: m });
|
|
879
|
+
G.next += 1;
|
|
880
|
+
let g = {
|
|
881
|
+
worker: m,
|
|
882
|
+
dialecteVersion: o,
|
|
883
|
+
generation: G.next,
|
|
830
884
|
opened: Promise.resolve(),
|
|
831
|
-
control:
|
|
885
|
+
control: h,
|
|
832
886
|
links: /* @__PURE__ */ new Set(),
|
|
833
887
|
ended: !1,
|
|
834
888
|
watch: void 0,
|
|
835
889
|
creationId: void 0
|
|
836
890
|
};
|
|
837
|
-
return
|
|
838
|
-
work:
|
|
891
|
+
return g.opened = et({
|
|
892
|
+
work: h.request({
|
|
839
893
|
message: {
|
|
840
894
|
type: "open",
|
|
841
|
-
project:
|
|
842
|
-
dialecteId:
|
|
843
|
-
dialecteVersion:
|
|
895
|
+
project: i,
|
|
896
|
+
dialecteId: a,
|
|
897
|
+
dialecteVersion: o,
|
|
844
898
|
expectedCreationId: n,
|
|
845
899
|
lock: "if-available",
|
|
846
|
-
budgetMs:
|
|
847
|
-
perf:
|
|
848
|
-
heartbeatIntervalMs:
|
|
849
|
-
settings:
|
|
900
|
+
budgetMs: u,
|
|
901
|
+
perf: l,
|
|
902
|
+
heartbeatIntervalMs: d.heartbeatIntervalMs,
|
|
903
|
+
settings: f
|
|
850
904
|
},
|
|
851
905
|
expect: "opened"
|
|
852
906
|
}),
|
|
853
|
-
budgetMs:
|
|
907
|
+
budgetMs: p
|
|
854
908
|
}).then(function(e) {
|
|
855
|
-
if (e === "unanswered") throw
|
|
856
|
-
name:
|
|
857
|
-
dialecteId:
|
|
858
|
-
engine:
|
|
859
|
-
worker:
|
|
860
|
-
ending: Promise.resolve(
|
|
861
|
-
lockBudgetMs:
|
|
862
|
-
}),
|
|
863
|
-
detail: `The engine of project "${
|
|
909
|
+
if (e === "unanswered") throw g.ended || qe({
|
|
910
|
+
name: i,
|
|
911
|
+
dialecteId: a,
|
|
912
|
+
engine: g,
|
|
913
|
+
worker: m,
|
|
914
|
+
ending: Promise.resolve(N),
|
|
915
|
+
lockBudgetMs: u
|
|
916
|
+
}), r(c.PROJECT_ENGINE_UNAVAILABLE, {
|
|
917
|
+
detail: `The engine of project "${i}" gave no answer to its open within ${p} ms: it was ended`,
|
|
864
918
|
meta: {
|
|
865
|
-
project:
|
|
866
|
-
openWindowMs:
|
|
919
|
+
project: i,
|
|
920
|
+
openWindowMs: p
|
|
867
921
|
}
|
|
868
922
|
});
|
|
869
|
-
|
|
923
|
+
g.creationId = e.creationId;
|
|
870
924
|
try {
|
|
871
|
-
|
|
872
|
-
project:
|
|
925
|
+
oe({ found: e.wireProtocol }), P({
|
|
926
|
+
project: i,
|
|
873
927
|
engine: e,
|
|
874
928
|
asked: {
|
|
875
|
-
dialecteId:
|
|
876
|
-
dialecteVersion:
|
|
929
|
+
dialecteId: a,
|
|
930
|
+
dialecteVersion: o
|
|
877
931
|
}
|
|
878
932
|
});
|
|
879
933
|
} catch (t) {
|
|
880
|
-
throw
|
|
881
|
-
name:
|
|
882
|
-
dialecteId:
|
|
883
|
-
engine:
|
|
884
|
-
worker:
|
|
934
|
+
throw qe({
|
|
935
|
+
name: i,
|
|
936
|
+
dialecteId: a,
|
|
937
|
+
engine: g,
|
|
938
|
+
worker: m,
|
|
885
939
|
ending: Promise.resolve(),
|
|
886
|
-
lockBudgetMs:
|
|
940
|
+
lockBudgetMs: u,
|
|
887
941
|
lockDialecteId: e.dialecteId
|
|
888
942
|
}), t;
|
|
889
943
|
}
|
|
890
944
|
}).then(function() {
|
|
891
|
-
|
|
892
|
-
name:
|
|
893
|
-
dialecteId:
|
|
894
|
-
engine:
|
|
945
|
+
h.opened(), g.ended || je({
|
|
946
|
+
name: i,
|
|
947
|
+
dialecteId: a,
|
|
948
|
+
engine: g
|
|
895
949
|
});
|
|
896
950
|
}, function(e) {
|
|
897
|
-
throw
|
|
898
|
-
}),
|
|
951
|
+
throw g.ended || (g.ended = !0, h.end({ error: e }), m.terminate()), e;
|
|
952
|
+
}), g;
|
|
899
953
|
}
|
|
900
|
-
function
|
|
901
|
-
let { name: t, dialecteId: n, engine: r } = e, i = new AbortController(), a =
|
|
954
|
+
function je(e) {
|
|
955
|
+
let { name: t, dialecteId: n, engine: r } = e, i = new AbortController(), a = F({
|
|
902
956
|
dialecteId: n,
|
|
903
957
|
project: t
|
|
904
958
|
});
|
|
905
959
|
r.watch = {
|
|
906
960
|
controller: i,
|
|
907
961
|
settled: navigator.locks.request(a, { signal: i.signal }, function() {
|
|
908
|
-
|
|
962
|
+
Me({
|
|
909
963
|
name: t,
|
|
910
964
|
dialecteId: n,
|
|
911
965
|
engine: r
|
|
@@ -913,7 +967,7 @@ function Ee(e) {
|
|
|
913
967
|
}).then(Y, Y)
|
|
914
968
|
};
|
|
915
969
|
}
|
|
916
|
-
function
|
|
970
|
+
function Me(e) {
|
|
917
971
|
let { name: t, dialecteId: n, engine: r } = e;
|
|
918
972
|
if (r.ended) return;
|
|
919
973
|
r.ended = !0;
|
|
@@ -921,85 +975,85 @@ function K(e) {
|
|
|
921
975
|
name: t,
|
|
922
976
|
dialecteId: n
|
|
923
977
|
});
|
|
924
|
-
|
|
978
|
+
U.get(i) === r && U.delete(i), r.control.end({ error: Qe() }), r.watch && Ze({
|
|
925
979
|
key: i,
|
|
926
980
|
until: r.watch.settled
|
|
927
|
-
}),
|
|
981
|
+
}), Ne({ engine: r }), r.worker.terminate();
|
|
928
982
|
}
|
|
929
|
-
function
|
|
983
|
+
function Ne(e) {
|
|
930
984
|
let { engine: t } = e;
|
|
931
985
|
for (let e of t.links) e.adoption?.generation === t.generation && e.adoption.client.then(function(t) {
|
|
932
986
|
t.lose({ reason: "host-gone" }), queueMicrotask(e.follow);
|
|
933
|
-
},
|
|
987
|
+
}, tt);
|
|
934
988
|
}
|
|
935
|
-
function
|
|
936
|
-
|
|
989
|
+
function Pe(e) {
|
|
990
|
+
m({
|
|
937
991
|
listeners: e.state.listeners,
|
|
938
992
|
value: e.notice,
|
|
939
|
-
of:
|
|
993
|
+
of: u.engineChanges
|
|
940
994
|
});
|
|
941
995
|
}
|
|
942
|
-
function
|
|
943
|
-
async function
|
|
944
|
-
let { name: t, dialecteId: n, engine:
|
|
996
|
+
function Fe() {}
|
|
997
|
+
async function Ie(e) {
|
|
998
|
+
let { name: t, dialecteId: n, engine: i, state: a, heartbeatTimeoutMs: o = M, openBudgetMs: s } = e, l = new MessageChannel(), u = i.control.request({
|
|
945
999
|
message: {
|
|
946
1000
|
type: "adopt-client",
|
|
947
|
-
clientId:
|
|
948
|
-
port:
|
|
1001
|
+
clientId: a.clientId,
|
|
1002
|
+
port: l.port2
|
|
949
1003
|
},
|
|
950
1004
|
expect: "adopted",
|
|
951
|
-
transfer: [
|
|
1005
|
+
transfer: [l.port2]
|
|
952
1006
|
});
|
|
953
|
-
if (await
|
|
954
|
-
control:
|
|
955
|
-
work:
|
|
956
|
-
budgetMs:
|
|
957
|
-
}) === "unanswered") throw
|
|
1007
|
+
if (await Te({
|
|
1008
|
+
control: i.control,
|
|
1009
|
+
work: u,
|
|
1010
|
+
budgetMs: o
|
|
1011
|
+
}) === "unanswered") throw l.port1.close(), i.ended || (Ne({ engine: i }), i.control.end({ error: Qe() }), qe({
|
|
958
1012
|
name: t,
|
|
959
1013
|
dialecteId: n,
|
|
960
|
-
engine:
|
|
961
|
-
worker:
|
|
962
|
-
ending: Promise.resolve(
|
|
963
|
-
lockBudgetMs:
|
|
964
|
-
})),
|
|
965
|
-
detail: `The engine of project "${t}" gave no answer to a new connection within ${
|
|
1014
|
+
engine: i,
|
|
1015
|
+
worker: i.worker,
|
|
1016
|
+
ending: Promise.resolve(N),
|
|
1017
|
+
lockBudgetMs: s
|
|
1018
|
+
})), r(c.PROJECT_ENGINE_UNAVAILABLE, {
|
|
1019
|
+
detail: `The engine of project "${t}" gave no answer to a new connection within ${o} ms: it was ended`,
|
|
966
1020
|
meta: {
|
|
967
1021
|
project: t,
|
|
968
|
-
heartbeatTimeoutMs:
|
|
1022
|
+
heartbeatTimeoutMs: o
|
|
969
1023
|
}
|
|
970
1024
|
});
|
|
971
|
-
return
|
|
972
|
-
port:
|
|
973
|
-
heartbeatTimeoutMs:
|
|
1025
|
+
return be({
|
|
1026
|
+
port: l.port1,
|
|
1027
|
+
heartbeatTimeoutMs: o
|
|
974
1028
|
});
|
|
975
1029
|
}
|
|
976
|
-
function
|
|
1030
|
+
function Le(e) {
|
|
977
1031
|
let { adoption: t, storeName: n } = e;
|
|
978
1032
|
t?.client.then(function(e) {
|
|
979
1033
|
e.close({ storeName: n });
|
|
980
|
-
},
|
|
1034
|
+
}, tt);
|
|
981
1035
|
}
|
|
982
|
-
function
|
|
1036
|
+
function Re(e) {
|
|
983
1037
|
let { engine: t, state: n, storeName: r } = e, i = n.adoption;
|
|
984
1038
|
n.adoption = void 0, i && (i.client.then(function(e) {
|
|
985
1039
|
e.close({ storeName: r });
|
|
986
|
-
},
|
|
1040
|
+
}, tt), t?.generation !== i.generation || t.ended || t.control.request({
|
|
987
1041
|
message: {
|
|
988
1042
|
type: "client-gone",
|
|
989
1043
|
clientId: n.clientId
|
|
990
1044
|
},
|
|
991
1045
|
expect: "released"
|
|
992
|
-
}).catch(
|
|
1046
|
+
}).catch(nt));
|
|
993
1047
|
}
|
|
994
|
-
async function
|
|
995
|
-
let { connector: t, own: n } = e, { name: r, dialecteId: i, engineUrl: a, openBudgetMs: o =
|
|
996
|
-
|
|
1048
|
+
async function ze(e) {
|
|
1049
|
+
let { connector: t, own: n } = e, { name: r, dialecteId: i, engineUrl: a, openBudgetMs: o = ie } = t, s = J(t);
|
|
1050
|
+
Ve({
|
|
997
1051
|
name: r,
|
|
998
1052
|
key: s,
|
|
999
|
-
own: n === void 0 ? void 0 :
|
|
1053
|
+
own: n === void 0 ? void 0 : q.get(n.link)
|
|
1000
1054
|
}), n?.letGo();
|
|
1001
|
-
let c =
|
|
1002
|
-
|
|
1055
|
+
let c = W.get(s), l = Y;
|
|
1056
|
+
Ze({
|
|
1003
1057
|
key: s,
|
|
1004
1058
|
until: new Promise(function(e) {
|
|
1005
1059
|
l = e;
|
|
@@ -1007,11 +1061,11 @@ async function Ne(e) {
|
|
|
1007
1061
|
});
|
|
1008
1062
|
let u = Promise.resolve();
|
|
1009
1063
|
try {
|
|
1010
|
-
await c,
|
|
1064
|
+
await c, He({
|
|
1011
1065
|
name: r,
|
|
1012
1066
|
key: s
|
|
1013
1067
|
});
|
|
1014
|
-
let e =
|
|
1068
|
+
let e = We({
|
|
1015
1069
|
name: r,
|
|
1016
1070
|
dialecteId: i,
|
|
1017
1071
|
engineUrl: a,
|
|
@@ -1023,60 +1077,60 @@ async function Ne(e) {
|
|
|
1023
1077
|
u.then(l, l);
|
|
1024
1078
|
}
|
|
1025
1079
|
}
|
|
1026
|
-
function
|
|
1027
|
-
return
|
|
1080
|
+
function Be(e) {
|
|
1081
|
+
return K.others({ name: J(e) }) > 0;
|
|
1028
1082
|
}
|
|
1029
|
-
function
|
|
1030
|
-
let t =
|
|
1083
|
+
function Ve(e) {
|
|
1084
|
+
let t = K.others({
|
|
1031
1085
|
name: e.key,
|
|
1032
1086
|
connection: e.own
|
|
1033
1087
|
});
|
|
1034
|
-
t > 0 &&
|
|
1088
|
+
t > 0 && h({
|
|
1035
1089
|
storeName: e.name,
|
|
1036
1090
|
connections: t
|
|
1037
1091
|
});
|
|
1038
1092
|
}
|
|
1039
|
-
function
|
|
1040
|
-
if (
|
|
1093
|
+
function He(e) {
|
|
1094
|
+
if (U.has(e.key)) throw r("ASSERTION_FAILED", {
|
|
1041
1095
|
detail: `Project "${e.name}" has an engine in this realm with no connection open on it`,
|
|
1042
1096
|
meta: { project: e.name }
|
|
1043
1097
|
});
|
|
1044
1098
|
}
|
|
1045
|
-
async function
|
|
1046
|
-
await
|
|
1099
|
+
async function Ue(e) {
|
|
1100
|
+
await We(e).done;
|
|
1047
1101
|
}
|
|
1048
|
-
function
|
|
1049
|
-
let { name: t, dialecteId: n, engineUrl:
|
|
1102
|
+
function We(e) {
|
|
1103
|
+
let { name: t, dialecteId: n, engineUrl: i, budgetMs: a, lock: o } = e, s = new Worker(i, { type: "module" }), { ended: c, released: l } = qe({
|
|
1050
1104
|
name: t,
|
|
1051
1105
|
dialecteId: n,
|
|
1052
1106
|
engine: void 0,
|
|
1053
|
-
worker:
|
|
1054
|
-
lockBudgetMs:
|
|
1055
|
-
ending:
|
|
1056
|
-
work:
|
|
1107
|
+
worker: s,
|
|
1108
|
+
lockBudgetMs: a,
|
|
1109
|
+
ending: et({
|
|
1110
|
+
work: Ge({
|
|
1057
1111
|
name: t,
|
|
1058
1112
|
dialecteId: n,
|
|
1059
|
-
control:
|
|
1060
|
-
budgetMs:
|
|
1061
|
-
lock:
|
|
1113
|
+
control: Ce({ worker: s }),
|
|
1114
|
+
budgetMs: a,
|
|
1115
|
+
lock: o
|
|
1062
1116
|
}),
|
|
1063
|
-
budgetMs:
|
|
1117
|
+
budgetMs: a + k
|
|
1064
1118
|
})
|
|
1065
1119
|
});
|
|
1066
1120
|
return {
|
|
1067
|
-
done:
|
|
1068
|
-
if (e === "unanswered") throw
|
|
1069
|
-
detail: `Project "${t}" was not destroyed: its engine worker gave no answer within ${
|
|
1121
|
+
done: c.then(function(e) {
|
|
1122
|
+
if (e === "unanswered") throw r("PROJECT_DESTROY_FAILED", {
|
|
1123
|
+
detail: `Project "${t}" was not destroyed: its engine worker gave no answer within ${a + k} ms`,
|
|
1070
1124
|
meta: {
|
|
1071
1125
|
project: t,
|
|
1072
|
-
budgetMs:
|
|
1126
|
+
budgetMs: a
|
|
1073
1127
|
}
|
|
1074
1128
|
});
|
|
1075
1129
|
}),
|
|
1076
|
-
released:
|
|
1130
|
+
released: l
|
|
1077
1131
|
};
|
|
1078
1132
|
}
|
|
1079
|
-
async function
|
|
1133
|
+
async function Ge(e) {
|
|
1080
1134
|
let { name: t, dialecteId: n, control: r, budgetMs: i, lock: a } = e;
|
|
1081
1135
|
await r.request({
|
|
1082
1136
|
message: {
|
|
@@ -1089,45 +1143,45 @@ async function ze(e) {
|
|
|
1089
1143
|
expect: "destroyed"
|
|
1090
1144
|
});
|
|
1091
1145
|
}
|
|
1092
|
-
function
|
|
1093
|
-
let { name: t, dialecteId: n, engine: r, openBudgetMs: i } = e, a =
|
|
1146
|
+
function Ke(e) {
|
|
1147
|
+
let { name: t, dialecteId: n, engine: r, openBudgetMs: i } = e, a = qe({
|
|
1094
1148
|
name: t,
|
|
1095
1149
|
dialecteId: n,
|
|
1096
1150
|
engine: r,
|
|
1097
1151
|
worker: r.worker,
|
|
1098
1152
|
lockBudgetMs: i,
|
|
1099
|
-
ending:
|
|
1153
|
+
ending: et({
|
|
1100
1154
|
work: r.control.request({
|
|
1101
1155
|
message: { type: "close" },
|
|
1102
1156
|
expect: "closed"
|
|
1103
1157
|
}),
|
|
1104
|
-
budgetMs:
|
|
1158
|
+
budgetMs: k
|
|
1105
1159
|
})
|
|
1106
1160
|
});
|
|
1107
|
-
return a.ended.catch(
|
|
1161
|
+
return a.ended.catch(nt), a.released;
|
|
1108
1162
|
}
|
|
1109
|
-
function
|
|
1163
|
+
function qe(e) {
|
|
1110
1164
|
let { name: t, dialecteId: n, engine: r, worker: i, ending: a, lockBudgetMs: o } = e, s = e.lockDialecteId ?? n, c = J({
|
|
1111
1165
|
name: t,
|
|
1112
1166
|
dialecteId: n
|
|
1113
1167
|
});
|
|
1114
|
-
r && (r.ended = !0,
|
|
1168
|
+
r && (r.ended = !0, U.get(c) === r && U.delete(c), r.watch?.controller.abort());
|
|
1115
1169
|
let l = !1, u = a.then(function(e) {
|
|
1116
|
-
return d({ unanswered: e ===
|
|
1170
|
+
return d({ unanswered: e === N }), e;
|
|
1117
1171
|
}, function(e) {
|
|
1118
1172
|
throw d({ unanswered: !1 }), e;
|
|
1119
1173
|
});
|
|
1120
1174
|
function d(e) {
|
|
1121
|
-
l = e.unanswered, r?.control.end({ error:
|
|
1175
|
+
l = e.unanswered, r?.control.end({ error: $e({ name: t }) }), i.terminate();
|
|
1122
1176
|
}
|
|
1123
1177
|
let f = u.then(Y, Y).then(function() {
|
|
1124
|
-
return
|
|
1178
|
+
return Je({
|
|
1125
1179
|
name: t,
|
|
1126
1180
|
dialecteId: s,
|
|
1127
|
-
budgetMs: l ? o :
|
|
1181
|
+
budgetMs: l ? o : k
|
|
1128
1182
|
});
|
|
1129
1183
|
}), p = Promise.all([f, r?.watch?.settled]).then(Y);
|
|
1130
|
-
return
|
|
1184
|
+
return Ze({
|
|
1131
1185
|
key: c,
|
|
1132
1186
|
until: p
|
|
1133
1187
|
}), {
|
|
@@ -1135,75 +1189,75 @@ function q(e) {
|
|
|
1135
1189
|
released: p
|
|
1136
1190
|
};
|
|
1137
1191
|
}
|
|
1138
|
-
function
|
|
1139
|
-
return navigator.locks.request(
|
|
1192
|
+
function Je(e) {
|
|
1193
|
+
return navigator.locks.request(F({
|
|
1140
1194
|
dialecteId: e.dialecteId,
|
|
1141
1195
|
project: e.name
|
|
1142
|
-
}), { signal: AbortSignal.timeout(e.budgetMs) }, Y).then(
|
|
1196
|
+
}), { signal: AbortSignal.timeout(e.budgetMs) }, Y).then(Ye, Xe);
|
|
1143
1197
|
}
|
|
1144
|
-
function
|
|
1198
|
+
function Ye() {
|
|
1145
1199
|
return !0;
|
|
1146
1200
|
}
|
|
1147
|
-
function
|
|
1201
|
+
function Xe() {
|
|
1148
1202
|
return !1;
|
|
1149
1203
|
}
|
|
1150
|
-
function
|
|
1151
|
-
let { key: t, until: n } = e, r = Promise.all([
|
|
1152
|
-
|
|
1153
|
-
|
|
1204
|
+
function Ze(e) {
|
|
1205
|
+
let { key: t, until: n } = e, r = Promise.all([W.get(t), n]).then(Y);
|
|
1206
|
+
W.set(t, r), r.then(function() {
|
|
1207
|
+
W.get(t) === r && W.delete(t);
|
|
1154
1208
|
});
|
|
1155
1209
|
}
|
|
1156
|
-
function
|
|
1157
|
-
return
|
|
1158
|
-
detail:
|
|
1210
|
+
function Qe() {
|
|
1211
|
+
return r("STORE_CONNECTION_LOST", {
|
|
1212
|
+
detail: ae["host-gone"],
|
|
1159
1213
|
meta: { reason: "host-gone" }
|
|
1160
1214
|
});
|
|
1161
1215
|
}
|
|
1162
|
-
function
|
|
1163
|
-
return
|
|
1216
|
+
function $e(e) {
|
|
1217
|
+
return r("STORE_CLOSED", {
|
|
1164
1218
|
detail: `The engine of project "${e.name}" was ended`,
|
|
1165
1219
|
meta: { storeName: e.name }
|
|
1166
1220
|
});
|
|
1167
1221
|
}
|
|
1168
|
-
function
|
|
1222
|
+
function et(e) {
|
|
1169
1223
|
let { work: t, budgetMs: n } = e, r, i = new Promise(function(e) {
|
|
1170
|
-
r = setTimeout(e, n,
|
|
1224
|
+
r = setTimeout(e, n, N);
|
|
1171
1225
|
});
|
|
1172
1226
|
return Promise.race([t, i]).finally(function() {
|
|
1173
1227
|
clearTimeout(r);
|
|
1174
1228
|
});
|
|
1175
1229
|
}
|
|
1176
1230
|
function J(e) {
|
|
1177
|
-
return
|
|
1231
|
+
return v({
|
|
1178
1232
|
dialecteId: e.dialecteId,
|
|
1179
1233
|
project: e.name
|
|
1180
1234
|
});
|
|
1181
1235
|
}
|
|
1182
1236
|
function Y() {}
|
|
1183
|
-
function
|
|
1184
|
-
function
|
|
1185
|
-
// src/store/
|
|
1186
|
-
var
|
|
1187
|
-
function
|
|
1188
|
-
|
|
1237
|
+
function tt() {}
|
|
1238
|
+
function nt() {}
|
|
1239
|
+
// src/store/sqlite/served/client/hub-connector.ts
|
|
1240
|
+
var rt = /* @__PURE__ */ new WeakMap();
|
|
1241
|
+
function it(e) {
|
|
1242
|
+
_({
|
|
1189
1243
|
project: e.name,
|
|
1190
1244
|
dialecteId: e.dialecteId
|
|
1191
1245
|
});
|
|
1192
|
-
let { name: t, connection: n, dialecteId: r, dialecteVersion: i, engineUrl: a, destroyBudgetMs: o =
|
|
1246
|
+
let { name: t, connection: n, dialecteId: r, dialecteVersion: i, engineUrl: a, destroyBudgetMs: o = ie, heartbeatTimeoutMs: s } = e;
|
|
1193
1247
|
return {
|
|
1194
1248
|
connect: async function() {
|
|
1195
1249
|
let e = n.openProject({
|
|
1196
1250
|
project: t,
|
|
1197
1251
|
dialecteId: r,
|
|
1198
1252
|
dialecteVersion: i,
|
|
1199
|
-
heartbeatTimeoutMs:
|
|
1253
|
+
heartbeatTimeoutMs: s
|
|
1200
1254
|
});
|
|
1201
1255
|
try {
|
|
1202
1256
|
await e.engine();
|
|
1203
1257
|
} catch (t) {
|
|
1204
1258
|
throw e.release(), t;
|
|
1205
1259
|
}
|
|
1206
|
-
let a = crypto.randomUUID(), o = /* @__PURE__ */ new WeakMap(),
|
|
1260
|
+
let a = crypto.randomUUID(), o = /* @__PURE__ */ new WeakMap(), c = {
|
|
1207
1261
|
engine: async function() {
|
|
1208
1262
|
let t = await e.engine(), n = o.get(t) ?? t.connection({ connectionId: a });
|
|
1209
1263
|
return o.set(t, n), n;
|
|
@@ -1212,10 +1266,10 @@ function Ze(e) {
|
|
|
1212
1266
|
onNotice: e.onNotice,
|
|
1213
1267
|
close: e.release
|
|
1214
1268
|
};
|
|
1215
|
-
return
|
|
1269
|
+
return rt.set(c, e), c;
|
|
1216
1270
|
},
|
|
1217
1271
|
destroy: function(e) {
|
|
1218
|
-
let s = e?.own, c = s &&
|
|
1272
|
+
let s = e?.own, c = s && rt.get(s.link);
|
|
1219
1273
|
return n.destroyProject({
|
|
1220
1274
|
project: t,
|
|
1221
1275
|
dialecteId: r,
|
|
@@ -1224,147 +1278,147 @@ function Ze(e) {
|
|
|
1224
1278
|
link: c,
|
|
1225
1279
|
letGo: s.letGo
|
|
1226
1280
|
},
|
|
1227
|
-
destroy:
|
|
1228
|
-
return
|
|
1281
|
+
destroy: a === void 0 ? void 0 : function() {
|
|
1282
|
+
return Ue({
|
|
1229
1283
|
name: t,
|
|
1230
1284
|
dialecteId: r,
|
|
1231
1285
|
engineUrl: a,
|
|
1232
1286
|
budgetMs: o,
|
|
1233
1287
|
lock: "wait"
|
|
1234
1288
|
});
|
|
1235
|
-
}
|
|
1289
|
+
}
|
|
1236
1290
|
});
|
|
1237
1291
|
}
|
|
1238
1292
|
};
|
|
1239
1293
|
}
|
|
1240
|
-
// src/store/
|
|
1241
|
-
var
|
|
1294
|
+
// src/store/sqlite/served/hub/hub.constants.ts
|
|
1295
|
+
var at = "dialecte:realm:", ot = "dialecte-hub", st = [
|
|
1242
1296
|
"PROJECT_DIALECTE_MISMATCH",
|
|
1243
1297
|
"PROJECT_DIALECTE_VERSION_MISMATCH",
|
|
1244
|
-
|
|
1298
|
+
c.STORE_PROTOCOL_MISMATCH.key,
|
|
1245
1299
|
"PROJECT_DESTROYED_WHILE_AWAY",
|
|
1246
1300
|
"PROJECT_NAME_INVALID"
|
|
1247
|
-
], X = Symbol.for("@dialecte/core/hub/
|
|
1248
|
-
// src/store/
|
|
1249
|
-
function
|
|
1250
|
-
let { report: t, adoptBudgetMs:
|
|
1301
|
+
], X = Symbol.for("@dialecte/core/hub/v6"), ct = 1e4, lt = 1e3, ut = 3e4;
|
|
1302
|
+
// src/store/sqlite/served/hub/realm-host.ts
|
|
1303
|
+
function dt(e) {
|
|
1304
|
+
let { report: t, adoptBudgetMs: i = M } = e, a = new Map(e.spawners.map(function(e) {
|
|
1251
1305
|
return [e.dialecteId, { ...e }];
|
|
1252
|
-
})),
|
|
1253
|
-
function
|
|
1306
|
+
})), o = /* @__PURE__ */ new Map();
|
|
1307
|
+
function s(e) {
|
|
1254
1308
|
let { engine: t } = e;
|
|
1255
|
-
t.ended = !0, t.watch?.abort(),
|
|
1309
|
+
t.ended = !0, t.watch?.abort(), o.delete(vt(t));
|
|
1256
1310
|
}
|
|
1257
1311
|
return {
|
|
1258
|
-
spawn: function({ project: e, dialecteId:
|
|
1259
|
-
let
|
|
1312
|
+
spawn: function({ project: e, dialecteId: i, generation: u, openBudgetMs: d, expectedCreationId: f }) {
|
|
1313
|
+
let p = a.get(i), m;
|
|
1260
1314
|
try {
|
|
1261
|
-
if (!
|
|
1262
|
-
detail: `This view cannot start an engine of ${
|
|
1315
|
+
if (!p) throw r(c.PROJECT_ENGINE_UNAVAILABLE, {
|
|
1316
|
+
detail: `This view cannot start an engine of ${i}`,
|
|
1263
1317
|
meta: {
|
|
1264
1318
|
project: e,
|
|
1265
|
-
dialecteId:
|
|
1319
|
+
dialecteId: i
|
|
1266
1320
|
}
|
|
1267
1321
|
});
|
|
1268
|
-
|
|
1269
|
-
} catch (
|
|
1322
|
+
m = new Worker(p.engineUrl, { type: "module" });
|
|
1323
|
+
} catch (n) {
|
|
1270
1324
|
t({
|
|
1271
1325
|
type: "engine-open-failed",
|
|
1272
1326
|
project: e,
|
|
1273
|
-
dialecteId:
|
|
1274
|
-
generation:
|
|
1327
|
+
dialecteId: i,
|
|
1328
|
+
generation: u,
|
|
1275
1329
|
key: void 0,
|
|
1276
|
-
error:
|
|
1330
|
+
error: x({ thrown: n })
|
|
1277
1331
|
});
|
|
1278
1332
|
return;
|
|
1279
1333
|
}
|
|
1280
|
-
let
|
|
1334
|
+
let h = Ce({ worker: m }), g = {
|
|
1281
1335
|
project: e,
|
|
1282
|
-
dialecteId:
|
|
1283
|
-
generation:
|
|
1284
|
-
worker:
|
|
1285
|
-
control:
|
|
1336
|
+
dialecteId: i,
|
|
1337
|
+
generation: u,
|
|
1338
|
+
worker: m,
|
|
1339
|
+
control: h,
|
|
1286
1340
|
ended: !1,
|
|
1287
1341
|
watch: void 0
|
|
1288
1342
|
};
|
|
1289
|
-
|
|
1290
|
-
let
|
|
1291
|
-
Promise.resolve().then(
|
|
1292
|
-
return
|
|
1343
|
+
o.set(vt(g), g);
|
|
1344
|
+
let _ = p.perf ?? !1;
|
|
1345
|
+
Promise.resolve().then(p.settings).then(function(t) {
|
|
1346
|
+
return h.request({
|
|
1293
1347
|
message: {
|
|
1294
1348
|
type: "open",
|
|
1295
1349
|
project: e,
|
|
1296
|
-
dialecteId:
|
|
1297
|
-
dialecteVersion:
|
|
1298
|
-
...
|
|
1350
|
+
dialecteId: i,
|
|
1351
|
+
dialecteVersion: p.dialecteVersion,
|
|
1352
|
+
...f !== void 0 && { expectedCreationId: f },
|
|
1299
1353
|
lock: "wait",
|
|
1300
|
-
budgetMs:
|
|
1301
|
-
perf:
|
|
1354
|
+
budgetMs: d,
|
|
1355
|
+
perf: _,
|
|
1302
1356
|
settings: t
|
|
1303
1357
|
},
|
|
1304
1358
|
expect: "opened"
|
|
1305
1359
|
});
|
|
1306
1360
|
}).then(function(t) {
|
|
1307
|
-
return
|
|
1361
|
+
return oe({ found: t.wireProtocol }), P({
|
|
1308
1362
|
project: e,
|
|
1309
1363
|
engine: t,
|
|
1310
1364
|
asked: {
|
|
1311
|
-
dialecteId:
|
|
1312
|
-
dialecteVersion:
|
|
1365
|
+
dialecteId: i,
|
|
1366
|
+
dialecteVersion: p.dialecteVersion
|
|
1313
1367
|
}
|
|
1314
1368
|
}), t.creationId;
|
|
1315
|
-
}).then(function(
|
|
1316
|
-
|
|
1317
|
-
engine:
|
|
1318
|
-
onGone:
|
|
1369
|
+
}).then(function(n) {
|
|
1370
|
+
g.ended || (h.opened(), ht({
|
|
1371
|
+
engine: g,
|
|
1372
|
+
onGone: l
|
|
1319
1373
|
}), t({
|
|
1320
1374
|
type: "engine-opened",
|
|
1321
1375
|
project: e,
|
|
1322
|
-
dialecteId:
|
|
1323
|
-
generation:
|
|
1324
|
-
creationId:
|
|
1376
|
+
dialecteId: i,
|
|
1377
|
+
generation: u,
|
|
1378
|
+
creationId: n
|
|
1325
1379
|
}));
|
|
1326
1380
|
}, function(r) {
|
|
1327
|
-
|
|
1381
|
+
g.ended || (s({ engine: g }), h.end({ error: r }), m.terminate(), t({
|
|
1328
1382
|
type: "engine-open-failed",
|
|
1329
1383
|
project: e,
|
|
1330
|
-
dialecteId:
|
|
1331
|
-
generation:
|
|
1332
|
-
key:
|
|
1333
|
-
error:
|
|
1384
|
+
dialecteId: i,
|
|
1385
|
+
generation: u,
|
|
1386
|
+
key: n(r)?.key,
|
|
1387
|
+
error: x({ thrown: r })
|
|
1334
1388
|
}));
|
|
1335
1389
|
});
|
|
1336
1390
|
},
|
|
1337
|
-
adopt: function({ project: e, generation:
|
|
1338
|
-
let c =
|
|
1391
|
+
adopt: function({ project: e, generation: n, adoptionId: r, clientId: a, port: s }) {
|
|
1392
|
+
let c = o.get(vt({
|
|
1339
1393
|
project: e,
|
|
1340
|
-
generation:
|
|
1394
|
+
generation: n
|
|
1341
1395
|
}));
|
|
1342
1396
|
if (!c) {
|
|
1343
1397
|
s.close(), t({
|
|
1344
1398
|
type: "client-adopt-failed",
|
|
1345
|
-
adoptionId:
|
|
1399
|
+
adoptionId: r
|
|
1346
1400
|
});
|
|
1347
1401
|
return;
|
|
1348
1402
|
}
|
|
1349
1403
|
let l = c.control.request({
|
|
1350
1404
|
message: {
|
|
1351
1405
|
type: "adopt-client",
|
|
1352
|
-
clientId:
|
|
1406
|
+
clientId: a,
|
|
1353
1407
|
port: s
|
|
1354
1408
|
},
|
|
1355
1409
|
expect: "adopted",
|
|
1356
1410
|
transfer: [s]
|
|
1357
1411
|
});
|
|
1358
|
-
|
|
1412
|
+
ft({
|
|
1359
1413
|
control: c.control,
|
|
1360
1414
|
adopting: l,
|
|
1361
|
-
adoptionId:
|
|
1362
|
-
budgetMs:
|
|
1415
|
+
adoptionId: r,
|
|
1416
|
+
budgetMs: i,
|
|
1363
1417
|
report: t
|
|
1364
1418
|
});
|
|
1365
1419
|
},
|
|
1366
1420
|
clientGone: async function({ project: e, generation: t, clientId: n }) {
|
|
1367
|
-
await
|
|
1421
|
+
await o.get(vt({
|
|
1368
1422
|
project: e,
|
|
1369
1423
|
generation: t
|
|
1370
1424
|
}))?.control.request({
|
|
@@ -1373,30 +1427,30 @@ function it(e) {
|
|
|
1373
1427
|
clientId: n
|
|
1374
1428
|
},
|
|
1375
1429
|
expect: "released"
|
|
1376
|
-
}).catch(
|
|
1430
|
+
}).catch(yt);
|
|
1377
1431
|
},
|
|
1378
1432
|
release: function({ project: e, generation: t }) {
|
|
1379
|
-
let n =
|
|
1433
|
+
let n = o.get(vt({
|
|
1380
1434
|
project: e,
|
|
1381
1435
|
generation: t
|
|
1382
1436
|
}));
|
|
1383
|
-
n && (
|
|
1384
|
-
n.control.end({ error:
|
|
1437
|
+
n && (s({ engine: n }), gt({ engine: n }).then(function() {
|
|
1438
|
+
n.control.end({ error: _t({ project: e }) }), n.worker.terminate();
|
|
1385
1439
|
}));
|
|
1386
1440
|
},
|
|
1387
1441
|
add: function({ spawners: e }) {
|
|
1388
1442
|
for (let t of e) {
|
|
1389
|
-
let e =
|
|
1390
|
-
e ? t.perf && (e.perf = !0) :
|
|
1443
|
+
let e = a.get(t.dialecteId);
|
|
1444
|
+
e ? t.perf && (e.perf = !0) : a.set(t.dialecteId, { ...t });
|
|
1391
1445
|
}
|
|
1392
1446
|
},
|
|
1393
1447
|
endAll: function() {
|
|
1394
|
-
for (let e of
|
|
1448
|
+
for (let e of o.values()) s({ engine: e }), e.control.end({ error: _t({ project: e.project }) }), e.worker.terminate();
|
|
1395
1449
|
}
|
|
1396
1450
|
};
|
|
1397
|
-
function
|
|
1451
|
+
function l(e) {
|
|
1398
1452
|
let { engine: n } = e;
|
|
1399
|
-
n.ended || (
|
|
1453
|
+
n.ended || (s({ engine: n }), n.control.end({ error: _t({ project: n.project }) }), n.worker.terminate(), t({
|
|
1400
1454
|
type: "engine-ended",
|
|
1401
1455
|
project: n.project,
|
|
1402
1456
|
dialecteId: n.dialecteId,
|
|
@@ -1404,11 +1458,11 @@ function it(e) {
|
|
|
1404
1458
|
}));
|
|
1405
1459
|
}
|
|
1406
1460
|
}
|
|
1407
|
-
function
|
|
1461
|
+
function ft(e) {
|
|
1408
1462
|
let { control: t, adopting: n, adoptionId: r, budgetMs: i, report: a } = e;
|
|
1409
|
-
|
|
1463
|
+
Te({
|
|
1410
1464
|
control: t,
|
|
1411
|
-
work: n.then(
|
|
1465
|
+
work: n.then(pt, mt),
|
|
1412
1466
|
budgetMs: i
|
|
1413
1467
|
}).then(function(e) {
|
|
1414
1468
|
a({
|
|
@@ -1417,85 +1471,85 @@ function at(e) {
|
|
|
1417
1471
|
});
|
|
1418
1472
|
});
|
|
1419
1473
|
}
|
|
1420
|
-
function
|
|
1474
|
+
function pt() {
|
|
1421
1475
|
return !0;
|
|
1422
1476
|
}
|
|
1423
|
-
function
|
|
1477
|
+
function mt() {
|
|
1424
1478
|
return !1;
|
|
1425
1479
|
}
|
|
1426
|
-
function
|
|
1480
|
+
function ht(e) {
|
|
1427
1481
|
let { engine: t, onGone: n } = e, r = new AbortController();
|
|
1428
|
-
t.watch = r, navigator.locks.request(
|
|
1482
|
+
t.watch = r, navigator.locks.request(F({
|
|
1429
1483
|
dialecteId: t.dialecteId,
|
|
1430
1484
|
project: t.project
|
|
1431
1485
|
}), { signal: r.signal }, function() {
|
|
1432
1486
|
n({ engine: t });
|
|
1433
|
-
}).catch(
|
|
1487
|
+
}).catch(yt);
|
|
1434
1488
|
}
|
|
1435
|
-
function
|
|
1489
|
+
function gt(e) {
|
|
1436
1490
|
let { engine: t } = e, n, r = new Promise(function(e) {
|
|
1437
|
-
n = setTimeout(e,
|
|
1491
|
+
n = setTimeout(e, k);
|
|
1438
1492
|
}), i = t.control.request({
|
|
1439
1493
|
message: { type: "close" },
|
|
1440
1494
|
expect: "closed"
|
|
1441
|
-
}).then(
|
|
1495
|
+
}).then(yt, yt);
|
|
1442
1496
|
return Promise.race([i, r]).finally(function() {
|
|
1443
1497
|
clearTimeout(n);
|
|
1444
1498
|
});
|
|
1445
1499
|
}
|
|
1446
|
-
function
|
|
1447
|
-
return
|
|
1500
|
+
function _t(e) {
|
|
1501
|
+
return r("STORE_CLOSED", {
|
|
1448
1502
|
detail: `The engine of project "${e.project}" was released`,
|
|
1449
1503
|
meta: { storeName: e.project }
|
|
1450
1504
|
});
|
|
1451
1505
|
}
|
|
1452
|
-
function
|
|
1506
|
+
function vt(e) {
|
|
1453
1507
|
return `${e.project}#${e.generation}`;
|
|
1454
1508
|
}
|
|
1455
|
-
function
|
|
1456
|
-
// src/store/
|
|
1457
|
-
function
|
|
1458
|
-
|
|
1509
|
+
function yt() {}
|
|
1510
|
+
// src/store/sqlite/served/hub/hub-client.ts
|
|
1511
|
+
function bt(e = {}) {
|
|
1512
|
+
St({
|
|
1459
1513
|
registered: [],
|
|
1460
|
-
asked: (e.spawners ?? []).map(
|
|
1514
|
+
asked: (e.spawners ?? []).map(zt)
|
|
1461
1515
|
});
|
|
1462
1516
|
let t = e.hostsNoEngine ? [] : e.spawners ?? [], n = globalThis[X];
|
|
1463
|
-
if (!n) return
|
|
1464
|
-
return
|
|
1517
|
+
if (!n) return Tt({ attempt: function() {
|
|
1518
|
+
return Et({ spawners: t });
|
|
1465
1519
|
} });
|
|
1466
|
-
let r =
|
|
1520
|
+
let r = Ot({ spawners: t });
|
|
1467
1521
|
return r.length === 0 ? n : n.then(function(e) {
|
|
1468
1522
|
return e?.addSpawners({ spawners: r }), e;
|
|
1469
1523
|
});
|
|
1470
1524
|
}
|
|
1471
|
-
function
|
|
1525
|
+
function xt() {
|
|
1472
1526
|
return globalThis[X];
|
|
1473
1527
|
}
|
|
1474
|
-
function
|
|
1528
|
+
function St(e) {
|
|
1475
1529
|
let { registered: t, asked: n } = e, r = n.filter(function(e) {
|
|
1476
1530
|
return [...t, ...n].some(function(t) {
|
|
1477
1531
|
return t.dialecteId === e.dialecteId && t.dialecteVersion !== e.dialecteVersion;
|
|
1478
1532
|
});
|
|
1479
1533
|
});
|
|
1480
|
-
r.length !== 0 &&
|
|
1481
|
-
detail: `This page's hub connection runs ${
|
|
1534
|
+
r.length !== 0 && i(c.STORE_HUB_SPAWNERS_FIXED, {
|
|
1535
|
+
detail: `This page's hub connection runs ${Ct({ spawners: t })}, not ${Ct({ spawners: r })}: a page runs one version of each dialecte's engine`,
|
|
1482
1536
|
meta: { spawners: r }
|
|
1483
1537
|
});
|
|
1484
1538
|
}
|
|
1485
|
-
function
|
|
1539
|
+
function Ct(e) {
|
|
1486
1540
|
let { spawners: t } = e;
|
|
1487
1541
|
return t.length === 0 ? "no engine" : t.map(function(e) {
|
|
1488
1542
|
return `${e.dialecteId}@${e.dialecteVersion}`;
|
|
1489
1543
|
}).join(", ");
|
|
1490
1544
|
}
|
|
1491
|
-
function
|
|
1545
|
+
function wt(e) {
|
|
1492
1546
|
let t = globalThis[X];
|
|
1493
1547
|
return t ? t.then(function(t) {
|
|
1494
|
-
return t?.adoptPort({ port: e.port }) ||
|
|
1548
|
+
return t?.adoptPort({ port: e.port }) || Yt({ port: e.port }), t;
|
|
1495
1549
|
}, function() {
|
|
1496
|
-
return
|
|
1497
|
-
}) :
|
|
1498
|
-
return
|
|
1550
|
+
return wt(e);
|
|
1551
|
+
}) : Tt({ attempt: function() {
|
|
1552
|
+
return kt({
|
|
1499
1553
|
openPort: function() {
|
|
1500
1554
|
return { port: e.port };
|
|
1501
1555
|
},
|
|
@@ -1507,7 +1561,7 @@ function _t(e) {
|
|
|
1507
1561
|
});
|
|
1508
1562
|
} });
|
|
1509
1563
|
}
|
|
1510
|
-
function
|
|
1564
|
+
function Tt(e) {
|
|
1511
1565
|
let t = globalThis, n = t[X];
|
|
1512
1566
|
if (n) return n;
|
|
1513
1567
|
let r = e.attempt();
|
|
@@ -1520,23 +1574,23 @@ function vt(e) {
|
|
|
1520
1574
|
e.ended.then(i);
|
|
1521
1575
|
}, i), r;
|
|
1522
1576
|
}
|
|
1523
|
-
async function
|
|
1577
|
+
async function Et(e = {}) {
|
|
1524
1578
|
if (typeof SharedWorker > "u") return;
|
|
1525
1579
|
let t;
|
|
1526
1580
|
try {
|
|
1527
|
-
t =
|
|
1581
|
+
t = Dt();
|
|
1528
1582
|
} catch (e) {
|
|
1529
1583
|
if (e instanceof DOMException) return;
|
|
1530
1584
|
throw e;
|
|
1531
1585
|
}
|
|
1532
|
-
let
|
|
1586
|
+
let r = !1;
|
|
1533
1587
|
try {
|
|
1534
|
-
return await
|
|
1588
|
+
return await kt({
|
|
1535
1589
|
openPort: function() {
|
|
1536
|
-
return
|
|
1590
|
+
return r ? Dt() : (r = !0, t);
|
|
1537
1591
|
},
|
|
1538
1592
|
topLevel: globalThis.top === globalThis,
|
|
1539
|
-
spawners:
|
|
1593
|
+
spawners: Ot({ spawners: e.spawners ?? [] }),
|
|
1540
1594
|
holdsLock: !0,
|
|
1541
1595
|
lifecycle: {
|
|
1542
1596
|
page: globalThis.document,
|
|
@@ -1544,22 +1598,22 @@ async function yt(e = {}) {
|
|
|
1544
1598
|
}
|
|
1545
1599
|
});
|
|
1546
1600
|
} catch (e) {
|
|
1547
|
-
if (
|
|
1601
|
+
if (n(e)?.key === "STORE_CONNECTION_FAILED") return;
|
|
1548
1602
|
throw e;
|
|
1549
1603
|
}
|
|
1550
1604
|
}
|
|
1551
|
-
function
|
|
1605
|
+
function Dt() {
|
|
1552
1606
|
let e = new SharedWorker(new URL(
|
|
1553
1607
|
/* @vite-ignore */
|
|
1554
|
-
new URL("assets/hub.worker-
|
|
1608
|
+
new URL("assets/hub.worker-35vzG0HK.js", import.meta.url).href,
|
|
1555
1609
|
"" + import.meta.url
|
|
1556
1610
|
), {
|
|
1557
1611
|
type: "module",
|
|
1558
|
-
name:
|
|
1612
|
+
name: ot
|
|
1559
1613
|
}), t = new Promise(function(t) {
|
|
1560
1614
|
e.addEventListener("error", function(e) {
|
|
1561
1615
|
let n = e.message;
|
|
1562
|
-
t(
|
|
1616
|
+
t(r("STORE_CONNECTION_FAILED", { detail: `The origin's hub could not start${n ? `: ${n}` : ""}` }));
|
|
1563
1617
|
}, { once: !0 });
|
|
1564
1618
|
});
|
|
1565
1619
|
return {
|
|
@@ -1567,7 +1621,7 @@ function bt() {
|
|
|
1567
1621
|
failed: t
|
|
1568
1622
|
};
|
|
1569
1623
|
}
|
|
1570
|
-
function
|
|
1624
|
+
function Ot(e) {
|
|
1571
1625
|
let { spawners: t, realm: n = globalThis } = e, r = n.document?.baseURI ?? n.location?.href;
|
|
1572
1626
|
return t.filter(function(e) {
|
|
1573
1627
|
try {
|
|
@@ -1577,69 +1631,69 @@ function xt(e) {
|
|
|
1577
1631
|
}
|
|
1578
1632
|
});
|
|
1579
1633
|
}
|
|
1580
|
-
async function
|
|
1581
|
-
let { openPort: t, topLevel:
|
|
1582
|
-
function
|
|
1583
|
-
let t =
|
|
1584
|
-
|
|
1634
|
+
async function kt(e) {
|
|
1635
|
+
let { openPort: t, topLevel: i, spawners: a, holdsLock: o, lifecycle: s, welcomeBudgetMs: l = ct, bound: u = !1 } = e, d = /* @__PURE__ */ new Map();
|
|
1636
|
+
function f(e) {
|
|
1637
|
+
let t = v(e);
|
|
1638
|
+
d.get(t) === e && d.delete(t);
|
|
1585
1639
|
}
|
|
1586
|
-
let
|
|
1587
|
-
|
|
1588
|
-
}),
|
|
1589
|
-
spawners:
|
|
1640
|
+
let p = /* @__PURE__ */ new WeakSet(), m = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Map(), y = [], ee = new AbortController(), b = crypto.randomUUID(), C = t, w = C(), T = w.port, te = Q, E = "joining", ne, D, O, re = /* @__PURE__ */ new Set(), k = !1, A, j, M, N = Q, P = lt, F, oe, se = 0, ce = Q, le = new Promise(function(e) {
|
|
1641
|
+
ce = e;
|
|
1642
|
+
}), ue, de = Q, fe = [...a], pe = fe.map(zt), I = dt({
|
|
1643
|
+
spawners: a,
|
|
1590
1644
|
report: L
|
|
1591
1645
|
});
|
|
1592
1646
|
function L(e, t = []) {
|
|
1593
|
-
|
|
1647
|
+
T.postMessage(e, t);
|
|
1594
1648
|
}
|
|
1595
|
-
async function
|
|
1596
|
-
let { key: t, project: n, dialecteId: r, dialecteVersion: i, own: a } = e, o =
|
|
1597
|
-
o && (o.asked = !1),
|
|
1649
|
+
async function R(e) {
|
|
1650
|
+
let { key: t, project: n, dialecteId: r, dialecteVersion: i, own: a } = e, o = d.get(t);
|
|
1651
|
+
o && (o.asked = !1), m.set(t, n);
|
|
1598
1652
|
try {
|
|
1599
1653
|
await new Promise(function(e, a) {
|
|
1600
|
-
|
|
1654
|
+
g.set(t, {
|
|
1601
1655
|
granted: e,
|
|
1602
1656
|
refused: a
|
|
1603
|
-
}),
|
|
1657
|
+
}), z({
|
|
1604
1658
|
type: "destroy-elsewhere",
|
|
1605
1659
|
project: n,
|
|
1606
1660
|
dialecteId: r,
|
|
1607
1661
|
dialecteVersion: i
|
|
1608
1662
|
});
|
|
1609
1663
|
}).finally(function() {
|
|
1610
|
-
|
|
1664
|
+
g.delete(t), m.delete(t);
|
|
1611
1665
|
});
|
|
1612
1666
|
} catch (e) {
|
|
1613
|
-
let n =
|
|
1667
|
+
let n = d.get(t);
|
|
1614
1668
|
throw n?.current ? n.asked = !0 : me({
|
|
1615
1669
|
key: t,
|
|
1616
1670
|
own: void 0
|
|
1617
1671
|
}), e;
|
|
1618
1672
|
}
|
|
1619
|
-
let s =
|
|
1673
|
+
let s = d.get(t);
|
|
1620
1674
|
s && (s.creationId = void 0), a?.letGo(), me({
|
|
1621
1675
|
key: t,
|
|
1622
1676
|
own: a?.link
|
|
1623
1677
|
});
|
|
1624
1678
|
}
|
|
1625
1679
|
function me(e) {
|
|
1626
|
-
let t =
|
|
1680
|
+
let t = d.get(e.key);
|
|
1627
1681
|
t && (je({
|
|
1628
1682
|
key: e.key,
|
|
1629
1683
|
own: e.own
|
|
1630
1684
|
}) > 0 || t.waiters.length > 0) && Se(t);
|
|
1631
1685
|
}
|
|
1632
1686
|
function he(e) {
|
|
1633
|
-
let { project: t, dialecteId: n } = e,
|
|
1687
|
+
let { project: t, dialecteId: n } = e, i = fe.find(function(e) {
|
|
1634
1688
|
return e.dialecteId === n;
|
|
1635
1689
|
});
|
|
1636
|
-
(
|
|
1690
|
+
(i ? Ue({
|
|
1637
1691
|
name: t,
|
|
1638
1692
|
dialecteId: n,
|
|
1639
|
-
engineUrl:
|
|
1640
|
-
budgetMs:
|
|
1693
|
+
engineUrl: i.engineUrl,
|
|
1694
|
+
budgetMs: ie,
|
|
1641
1695
|
lock: "wait"
|
|
1642
|
-
}) : Promise.reject(
|
|
1696
|
+
}) : Promise.reject(r("STORE_UNAVAILABLE", {
|
|
1643
1697
|
detail: `Project "${t}" cannot be deleted from this view: it runs no engine of "${n}"`,
|
|
1644
1698
|
meta: {
|
|
1645
1699
|
project: t,
|
|
@@ -1656,13 +1710,13 @@ async function St(e) {
|
|
|
1656
1710
|
type: "files-deleted",
|
|
1657
1711
|
project: t,
|
|
1658
1712
|
dialecteId: n,
|
|
1659
|
-
error:
|
|
1713
|
+
error: x({ thrown: e })
|
|
1660
1714
|
});
|
|
1661
1715
|
});
|
|
1662
1716
|
}
|
|
1663
|
-
function
|
|
1664
|
-
if (
|
|
1665
|
-
|
|
1717
|
+
function z(e, t = []) {
|
|
1718
|
+
if (E === "joined") return L(e, t);
|
|
1719
|
+
E !== "refused" && y.push({
|
|
1666
1720
|
message: e,
|
|
1667
1721
|
transfer: t
|
|
1668
1722
|
});
|
|
@@ -1670,38 +1724,38 @@ async function St(e) {
|
|
|
1670
1724
|
function ge(e) {
|
|
1671
1725
|
let t = e.data;
|
|
1672
1726
|
switch (t?.type) {
|
|
1673
|
-
case "engine-ready": return
|
|
1674
|
-
entry:
|
|
1727
|
+
case "engine-ready": return Pt({
|
|
1728
|
+
entry: d.get(v(t)),
|
|
1675
1729
|
message: t,
|
|
1676
1730
|
leave: ke,
|
|
1677
|
-
forget:
|
|
1731
|
+
forget: f
|
|
1678
1732
|
});
|
|
1679
|
-
case "engine-lost": return
|
|
1680
|
-
case "open-refused": return
|
|
1681
|
-
entry:
|
|
1682
|
-
error:
|
|
1683
|
-
forget:
|
|
1733
|
+
case "engine-lost": return It({ entry: d.get(v(t)) });
|
|
1734
|
+
case "open-refused": return Lt({
|
|
1735
|
+
entry: d.get(v(t)),
|
|
1736
|
+
error: S({ data: t.error }),
|
|
1737
|
+
forget: f
|
|
1684
1738
|
});
|
|
1685
1739
|
case "destroy-granted":
|
|
1686
|
-
|
|
1740
|
+
g.get(v(t))?.granted();
|
|
1687
1741
|
return;
|
|
1688
|
-
case "left": return Oe({ key:
|
|
1742
|
+
case "left": return Oe({ key: v(t) });
|
|
1689
1743
|
case "destroy-refused":
|
|
1690
|
-
|
|
1744
|
+
g.get(v(t))?.refused(S({ data: t.error }));
|
|
1691
1745
|
return;
|
|
1692
1746
|
case "destroyed-elsewhere":
|
|
1693
|
-
|
|
1747
|
+
g.get(v(t))?.granted();
|
|
1694
1748
|
return;
|
|
1695
1749
|
case "pong":
|
|
1696
|
-
|
|
1750
|
+
N();
|
|
1697
1751
|
return;
|
|
1698
1752
|
case "delete-files": return he({
|
|
1699
1753
|
project: t.project,
|
|
1700
1754
|
dialecteId: t.dialecteId
|
|
1701
1755
|
});
|
|
1702
|
-
case "dropped": return
|
|
1756
|
+
case "dropped": return U({});
|
|
1703
1757
|
case "spawn-engine":
|
|
1704
|
-
|
|
1758
|
+
E !== "suspended" && I.spawn(t);
|
|
1705
1759
|
return;
|
|
1706
1760
|
case "adopt-client": return I.adopt(t);
|
|
1707
1761
|
case "client-gone":
|
|
@@ -1711,91 +1765,91 @@ async function St(e) {
|
|
|
1711
1765
|
default: return;
|
|
1712
1766
|
}
|
|
1713
1767
|
}
|
|
1714
|
-
async function
|
|
1715
|
-
let e =
|
|
1716
|
-
|
|
1717
|
-
|
|
1768
|
+
async function B() {
|
|
1769
|
+
let e = T, t = b, n = w.failed, r = Ut({ budgetMs: l }), a = !1, s, c = new Promise(function(t, n) {
|
|
1770
|
+
de = function() {
|
|
1771
|
+
a = !0, t();
|
|
1718
1772
|
}, e.addEventListener("message", function(e) {
|
|
1719
|
-
e.data?.type === "welcome" && (
|
|
1773
|
+
e.data?.type === "welcome" && (s = e.data.hubLock, t()), e.data?.type === "hello-refused" && n(S({ data: e.data.error }));
|
|
1720
1774
|
});
|
|
1721
1775
|
});
|
|
1722
1776
|
async function u() {
|
|
1723
|
-
if (
|
|
1724
|
-
let e = await
|
|
1777
|
+
if (o) {
|
|
1778
|
+
let e = await qt({
|
|
1725
1779
|
realmId: t,
|
|
1726
|
-
expired:
|
|
1780
|
+
expired: r.expired
|
|
1727
1781
|
});
|
|
1728
|
-
if (
|
|
1729
|
-
|
|
1782
|
+
if (a) return e(), !1;
|
|
1783
|
+
te = e;
|
|
1730
1784
|
}
|
|
1731
1785
|
e.addEventListener("message", ge), e.start();
|
|
1732
|
-
let
|
|
1786
|
+
let l = {
|
|
1733
1787
|
type: "hello",
|
|
1734
|
-
protocol:
|
|
1788
|
+
protocol: 6,
|
|
1735
1789
|
realmId: t,
|
|
1736
|
-
topLevel:
|
|
1737
|
-
spawners: [...
|
|
1790
|
+
topLevel: i,
|
|
1791
|
+
spawners: [...pe]
|
|
1738
1792
|
};
|
|
1739
|
-
return e.postMessage(
|
|
1740
|
-
welcomed:
|
|
1741
|
-
failed:
|
|
1742
|
-
expired:
|
|
1743
|
-
}), !
|
|
1744
|
-
hubLock:
|
|
1793
|
+
return e.postMessage(l), await Ht({
|
|
1794
|
+
welcomed: c,
|
|
1795
|
+
failed: n,
|
|
1796
|
+
expired: r.expired
|
|
1797
|
+
}), !a && (de = Q, o && s !== void 0 && _e({
|
|
1798
|
+
hubLock: s,
|
|
1745
1799
|
instanceId: t
|
|
1746
1800
|
}), !0);
|
|
1747
1801
|
}
|
|
1748
1802
|
try {
|
|
1749
1803
|
return await u();
|
|
1750
1804
|
} catch (e) {
|
|
1751
|
-
if (
|
|
1805
|
+
if (a) return !1;
|
|
1752
1806
|
throw e;
|
|
1753
1807
|
} finally {
|
|
1754
|
-
|
|
1808
|
+
r.clear();
|
|
1755
1809
|
}
|
|
1756
1810
|
}
|
|
1757
|
-
function
|
|
1758
|
-
let { hubLock: t, instanceId: n } = e,
|
|
1759
|
-
|
|
1760
|
-
if (
|
|
1761
|
-
let e =
|
|
1762
|
-
|
|
1763
|
-
}).catch(
|
|
1811
|
+
function _e(e) {
|
|
1812
|
+
let { hubLock: t, instanceId: n } = e, i = new AbortController();
|
|
1813
|
+
ue = i, navigator.locks.request(t, { signal: i.signal }, function() {
|
|
1814
|
+
if (b !== n || E !== "joined") return;
|
|
1815
|
+
let e = r("STORE_CONNECTION_FAILED", { detail: "The origin's hub ended: this view joins the next one" }), t = F === void 0 ? 0 : performance.now() - F;
|
|
1816
|
+
ve(), t < 1e3 ? Ee({ error: e }) : se >= 3 ? Ee({ error: r("STORE_CONNECTION_FAILED", { detail: "The origin's hub keeps ending: this view's calls are refused until it joins one that lasts" }) }) : (se += 1, ye({ error: e }));
|
|
1817
|
+
}).catch(Jt);
|
|
1764
1818
|
}
|
|
1765
|
-
function
|
|
1819
|
+
function ve() {
|
|
1766
1820
|
let e = performance.now();
|
|
1767
|
-
|
|
1821
|
+
F !== void 0 && (oe === void 0 || F > oe) && e - F > 3e4 && (P = lt, se = 0), oe = e;
|
|
1768
1822
|
}
|
|
1769
1823
|
function ye(e) {
|
|
1770
|
-
|
|
1824
|
+
E = "suspended", D = void 0, V({ reason: "host-gone" }), H({ error: e.error }), q();
|
|
1771
1825
|
}
|
|
1772
1826
|
function be() {
|
|
1773
1827
|
clearTimeout(M);
|
|
1774
|
-
let e =
|
|
1775
|
-
|
|
1828
|
+
let e = b, t = !1;
|
|
1829
|
+
N = function() {
|
|
1776
1830
|
t = !0;
|
|
1777
1831
|
}, L({ type: "ping" }), M = setTimeout(function() {
|
|
1778
|
-
if (M = void 0,
|
|
1779
|
-
for (let e of
|
|
1832
|
+
if (M = void 0, N = Q, !t && b === e && E === "joined" && A) {
|
|
1833
|
+
for (let e of d.values()) e.asked && L({
|
|
1780
1834
|
type: "leave",
|
|
1781
1835
|
project: e.project,
|
|
1782
1836
|
dialecteId: e.dialecteId
|
|
1783
1837
|
});
|
|
1784
|
-
|
|
1838
|
+
D = void 0, V({ reason: "host-gone" }), H({ error: r("STORE_CONNECTION_FAILED", { detail: "The origin's hub ended: this view joins the next one" }) }), E = "dropped", O = void 0, G();
|
|
1785
1839
|
}
|
|
1786
|
-
},
|
|
1840
|
+
}, l);
|
|
1787
1841
|
}
|
|
1788
1842
|
function xe() {
|
|
1789
|
-
|
|
1790
|
-
for (let { message: e, transfer: t } of
|
|
1791
|
-
for (let e of
|
|
1792
|
-
if (
|
|
1793
|
-
|
|
1843
|
+
E = "joined", F = performance.now();
|
|
1844
|
+
for (let { message: e, transfer: t } of y.splice(0)) L(e, t);
|
|
1845
|
+
for (let e of d.values()) (e.waiters.length > 0 || e.users > 0) && Se(e);
|
|
1846
|
+
if (k) for (let e of re) queueMicrotask(function() {
|
|
1847
|
+
re.has(e) && e();
|
|
1794
1848
|
});
|
|
1795
|
-
|
|
1849
|
+
k = !0;
|
|
1796
1850
|
}
|
|
1797
1851
|
function Se(e) {
|
|
1798
|
-
e.asked ||
|
|
1852
|
+
e.asked || E !== "joined" || m.has(v(e)) || (e.asked = !0, L({
|
|
1799
1853
|
type: "open",
|
|
1800
1854
|
project: e.project,
|
|
1801
1855
|
dialecteId: e.dialecteId,
|
|
@@ -1803,26 +1857,26 @@ async function St(e) {
|
|
|
1803
1857
|
...e.creationId !== void 0 && { expectedCreationId: e.creationId }
|
|
1804
1858
|
}));
|
|
1805
1859
|
}
|
|
1806
|
-
function
|
|
1807
|
-
|
|
1808
|
-
for (let t of
|
|
1860
|
+
function V(e) {
|
|
1861
|
+
de(), ue?.abort(), ue = void 0, De(), I.endAll();
|
|
1862
|
+
for (let t of d.values()) Rt({
|
|
1809
1863
|
entry: t,
|
|
1810
1864
|
reason: e.reason
|
|
1811
1865
|
}), t.asked = !1;
|
|
1812
|
-
|
|
1866
|
+
te(), te = Q, T.close();
|
|
1813
1867
|
}
|
|
1814
|
-
function
|
|
1868
|
+
function Ce(e) {
|
|
1815
1869
|
let t = /* @__PURE__ */ new Set();
|
|
1816
|
-
for (let e =
|
|
1817
|
-
let { message: n } =
|
|
1818
|
-
(n.type === "destroy" || n.type === "destroy-elsewhere") && (t.add(
|
|
1870
|
+
for (let e = y.length - 1; e >= 0; e--) {
|
|
1871
|
+
let { message: n } = y[e];
|
|
1872
|
+
(n.type === "destroy" || n.type === "destroy-elsewhere") && (t.add(v(n)), y.splice(e, 1));
|
|
1819
1873
|
}
|
|
1820
|
-
for (let [n,
|
|
1821
|
-
let
|
|
1822
|
-
|
|
1823
|
-
detail: `Project "${
|
|
1874
|
+
for (let [n, i] of g) {
|
|
1875
|
+
let a = m.get(n);
|
|
1876
|
+
a === void 0 || t.has(n) ? i.refused(e.error) : i.refused(r("STORE_CONNECTION_LOST", {
|
|
1877
|
+
detail: `Project "${a}" may be partly deleted: this view lost its hub before the deletion was answered`,
|
|
1824
1878
|
meta: {
|
|
1825
|
-
project:
|
|
1879
|
+
project: a,
|
|
1826
1880
|
reason: "host-gone"
|
|
1827
1881
|
}
|
|
1828
1882
|
}));
|
|
@@ -1830,26 +1884,26 @@ async function St(e) {
|
|
|
1830
1884
|
}
|
|
1831
1885
|
function H(e) {
|
|
1832
1886
|
let { error: t } = e;
|
|
1833
|
-
|
|
1834
|
-
for (let { message: e } of
|
|
1887
|
+
Ce({ error: t });
|
|
1888
|
+
for (let { message: e } of y.splice(0)) {
|
|
1835
1889
|
if (e.type !== "bind-child") continue;
|
|
1836
1890
|
let n = {
|
|
1837
1891
|
type: "hello-refused",
|
|
1838
|
-
error:
|
|
1892
|
+
error: x({ thrown: t })
|
|
1839
1893
|
};
|
|
1840
1894
|
e.port.postMessage(n), e.port.close();
|
|
1841
1895
|
}
|
|
1842
1896
|
}
|
|
1843
|
-
function
|
|
1844
|
-
|
|
1897
|
+
function we() {
|
|
1898
|
+
E !== "suspended" && E !== "refused" && (E = "suspended", V({ reason: "host-gone" }), Ce({ error: r(c.PROJECT_ENGINE_UNAVAILABLE, {
|
|
1845
1899
|
detail: "The page was suspended before the hub granted the destroy",
|
|
1846
|
-
meta: { realmId:
|
|
1900
|
+
meta: { realmId: b }
|
|
1847
1901
|
}) }));
|
|
1848
1902
|
}
|
|
1849
|
-
function
|
|
1903
|
+
function Te(e) {
|
|
1850
1904
|
let { error: t } = e;
|
|
1851
|
-
|
|
1852
|
-
for (let e of
|
|
1905
|
+
E = "refused", ne = t, clearTimeout(j), clearTimeout(M), ce(t), ee.abort(), V({ reason: "host-gone" }), A && Yt({ port: A }), A = void 0, H({ error: t });
|
|
1906
|
+
for (let e of d.values()) {
|
|
1853
1907
|
e.refusal = t;
|
|
1854
1908
|
for (let n of e.waiters.splice(0)) Z({
|
|
1855
1909
|
waiter: n,
|
|
@@ -1857,150 +1911,150 @@ async function St(e) {
|
|
|
1857
1911
|
});
|
|
1858
1912
|
}
|
|
1859
1913
|
}
|
|
1860
|
-
function
|
|
1914
|
+
function Ee(e) {
|
|
1861
1915
|
let { error: t } = e;
|
|
1862
|
-
|
|
1863
|
-
for (let e of
|
|
1916
|
+
ve(), E = "suspended", D = t, V({ reason: "host-gone" }), H({ error: t });
|
|
1917
|
+
for (let e of d.values()) for (let n of e.waiters.splice(0)) Z({
|
|
1864
1918
|
waiter: n,
|
|
1865
1919
|
error: t
|
|
1866
1920
|
});
|
|
1867
|
-
j = setTimeout(
|
|
1921
|
+
j = setTimeout(K, P), P = Math.min(P * 2, ut);
|
|
1868
1922
|
}
|
|
1869
|
-
function
|
|
1870
|
-
let { cause: t } = e, n =
|
|
1871
|
-
detail:
|
|
1923
|
+
function U(e) {
|
|
1924
|
+
let { cause: t } = e, n = r("STORE_CONNECTION_LOST", {
|
|
1925
|
+
detail: ae["realm-dropped"],
|
|
1872
1926
|
meta: { reason: "realm-dropped" },
|
|
1873
1927
|
...t instanceof Error && { cause: t }
|
|
1874
1928
|
});
|
|
1875
|
-
O = n,
|
|
1876
|
-
for (let e of
|
|
1929
|
+
O = n, E = "dropped", V({ reason: "realm-dropped" }), H({ error: n });
|
|
1930
|
+
for (let e of d.values()) for (let t of e.waiters.splice(0)) Z({
|
|
1877
1931
|
waiter: t,
|
|
1878
1932
|
error: n
|
|
1879
1933
|
});
|
|
1880
1934
|
G();
|
|
1881
1935
|
}
|
|
1882
|
-
function
|
|
1883
|
-
|
|
1936
|
+
function W() {
|
|
1937
|
+
de(), E = "dropped", V({ reason: "realm-dropped" }), G();
|
|
1884
1938
|
}
|
|
1885
1939
|
function G() {
|
|
1886
1940
|
let e = A;
|
|
1887
|
-
e && (A = void 0,
|
|
1941
|
+
e && (A = void 0, C = function() {
|
|
1888
1942
|
return { port: e };
|
|
1889
|
-
},
|
|
1943
|
+
}, q());
|
|
1890
1944
|
}
|
|
1891
|
-
function
|
|
1892
|
-
j = void 0,
|
|
1945
|
+
function K() {
|
|
1946
|
+
j = void 0, q();
|
|
1893
1947
|
}
|
|
1894
|
-
async function
|
|
1895
|
-
if (
|
|
1896
|
-
clearTimeout(j), j = void 0, clearTimeout(M), M = void 0,
|
|
1948
|
+
async function q() {
|
|
1949
|
+
if (E === "suspended" || E === "dropped") {
|
|
1950
|
+
clearTimeout(j), j = void 0, clearTimeout(M), M = void 0, E = "joining", b = crypto.randomUUID();
|
|
1897
1951
|
try {
|
|
1898
|
-
if (
|
|
1899
|
-
|
|
1952
|
+
if (w = Vt({ openPort: C }), T = w.port, !await B()) return;
|
|
1953
|
+
D = void 0, xe();
|
|
1900
1954
|
} catch (e) {
|
|
1901
|
-
if (
|
|
1902
|
-
|
|
1955
|
+
if (E !== "joining") return;
|
|
1956
|
+
u ? U({ cause: e }) : n(e)?.key === "STORE_CONNECTION_FAILED" ? Ee({ error: e }) : Te({ error: e });
|
|
1903
1957
|
}
|
|
1904
1958
|
}
|
|
1905
1959
|
}
|
|
1906
1960
|
function De() {
|
|
1907
|
-
for (let e of
|
|
1908
|
-
|
|
1961
|
+
for (let e of _.values()) for (let t of e.splice(0)) t();
|
|
1962
|
+
_.clear();
|
|
1909
1963
|
}
|
|
1910
1964
|
function Oe(e) {
|
|
1911
|
-
let t =
|
|
1912
|
-
t?.shift()?.(), t?.length === 0 &&
|
|
1965
|
+
let t = _.get(e.key);
|
|
1966
|
+
t?.shift()?.(), t?.length === 0 && _.delete(e.key);
|
|
1913
1967
|
}
|
|
1914
1968
|
function ke(e) {
|
|
1915
1969
|
Ae({
|
|
1916
1970
|
entry: e,
|
|
1917
|
-
key:
|
|
1971
|
+
key: v(e)
|
|
1918
1972
|
});
|
|
1919
1973
|
}
|
|
1920
1974
|
function Ae(e) {
|
|
1921
1975
|
let { entry: t, key: n } = e;
|
|
1922
1976
|
return new Promise(function(e) {
|
|
1923
|
-
let r =
|
|
1924
|
-
r.push(e),
|
|
1977
|
+
let r = _.get(n) ?? [];
|
|
1978
|
+
r.push(e), _.set(n, r), L({
|
|
1925
1979
|
type: "leave",
|
|
1926
1980
|
project: t.project,
|
|
1927
1981
|
dialecteId: t.dialecteId
|
|
1928
|
-
}),
|
|
1982
|
+
}), o || setTimeout(e, l);
|
|
1929
1983
|
});
|
|
1930
1984
|
}
|
|
1931
1985
|
function je(e) {
|
|
1932
|
-
return (
|
|
1986
|
+
return (d.get(e.key)?.users ?? 0) - (e.own !== void 0 && p.has(e.own) ? 1 : 0);
|
|
1933
1987
|
}
|
|
1934
1988
|
function Me() {
|
|
1935
|
-
if (
|
|
1936
|
-
if (
|
|
1937
|
-
if (
|
|
1989
|
+
if (ne !== void 0) return ne;
|
|
1990
|
+
if (E === "dropped") return O;
|
|
1991
|
+
if (E === "suspended") return D;
|
|
1938
1992
|
}
|
|
1939
|
-
|
|
1940
|
-
targets:
|
|
1993
|
+
s && Bt({
|
|
1994
|
+
targets: s,
|
|
1941
1995
|
signal: ee.signal,
|
|
1942
|
-
suspend:
|
|
1943
|
-
resume:
|
|
1944
|
-
end:
|
|
1996
|
+
suspend: we,
|
|
1997
|
+
resume: q,
|
|
1998
|
+
end: we
|
|
1945
1999
|
});
|
|
1946
2000
|
try {
|
|
1947
|
-
await
|
|
2001
|
+
await B() && xe();
|
|
1948
2002
|
} catch (e) {
|
|
1949
|
-
throw
|
|
2003
|
+
throw Te({ error: e }), e;
|
|
1950
2004
|
}
|
|
1951
2005
|
return {
|
|
1952
2006
|
realmId: function() {
|
|
1953
|
-
return
|
|
2007
|
+
return b;
|
|
1954
2008
|
},
|
|
1955
|
-
bound:
|
|
2009
|
+
bound: u,
|
|
1956
2010
|
addSpawners: function({ spawners: e }) {
|
|
1957
|
-
if (
|
|
1958
|
-
registered:
|
|
1959
|
-
asked: e.map(
|
|
1960
|
-
}),
|
|
2011
|
+
if (St({
|
|
2012
|
+
registered: pe,
|
|
2013
|
+
asked: e.map(zt)
|
|
2014
|
+
}), u) return;
|
|
1961
2015
|
let t = [];
|
|
1962
|
-
for (let n of e) [...
|
|
2016
|
+
for (let n of e) [...fe, ...t].some(function(e) {
|
|
1963
2017
|
return e.dialecteId === n.dialecteId;
|
|
1964
2018
|
}) || t.push(n);
|
|
1965
|
-
I.add({ spawners: e }), t.length !== 0 && (
|
|
2019
|
+
I.add({ spawners: e }), t.length !== 0 && (fe.push(...t), pe.push(...t.map(zt)), z({
|
|
1966
2020
|
type: "spawners",
|
|
1967
|
-
spawners: t.map(
|
|
2021
|
+
spawners: t.map(zt)
|
|
1968
2022
|
}));
|
|
1969
2023
|
},
|
|
1970
|
-
ended:
|
|
2024
|
+
ended: le,
|
|
1971
2025
|
close: function() {
|
|
1972
|
-
if (
|
|
1973
|
-
if (
|
|
2026
|
+
if (E !== "refused") {
|
|
2027
|
+
if (E === "joined") for (let e of d.values()) e.asked && L({
|
|
1974
2028
|
type: "leave",
|
|
1975
2029
|
project: e.project,
|
|
1976
2030
|
dialecteId: e.dialecteId
|
|
1977
2031
|
});
|
|
1978
|
-
|
|
2032
|
+
Te({ error: r("STORE_CLOSED", {
|
|
1979
2033
|
detail: "This view's connection to the hub was closed",
|
|
1980
|
-
meta: { realmId:
|
|
2034
|
+
meta: { realmId: b }
|
|
1981
2035
|
}) });
|
|
1982
2036
|
}
|
|
1983
2037
|
},
|
|
1984
2038
|
openProject: function(e) {
|
|
1985
|
-
let t =
|
|
2039
|
+
let t = v(e), n = d.get(t), r = ne === void 0 && n && At({
|
|
1986
2040
|
entry: n,
|
|
1987
2041
|
asked: e
|
|
1988
2042
|
});
|
|
1989
|
-
if (r) return
|
|
2043
|
+
if (r) return jt({
|
|
1990
2044
|
error: r,
|
|
1991
2045
|
project: e.project
|
|
1992
2046
|
});
|
|
1993
|
-
let i = n ??
|
|
1994
|
-
|
|
2047
|
+
let i = n ?? Nt(e);
|
|
2048
|
+
d.set(t, i), i.users += 1;
|
|
1995
2049
|
let a = !1, o, s = /* @__PURE__ */ new Set();
|
|
1996
2050
|
async function c() {
|
|
1997
|
-
a = !0,
|
|
2051
|
+
a = !0, p.delete(l);
|
|
1998
2052
|
for (let e of s) i.listeners.delete(e);
|
|
1999
2053
|
if (s.clear(), --i.users, !(i.users > 0)) {
|
|
2000
|
-
|
|
2054
|
+
d.get(t) === i && d.delete(t), i.current?.client.close({ storeName: i.project }), i.current = void 0;
|
|
2001
2055
|
for (let e of i.waiters.splice(0)) Z({
|
|
2002
2056
|
waiter: e,
|
|
2003
|
-
error:
|
|
2057
|
+
error: Kt({ project: i.project })
|
|
2004
2058
|
});
|
|
2005
2059
|
i.asked && await Ae({
|
|
2006
2060
|
entry: i,
|
|
@@ -2008,9 +2062,9 @@ async function St(e) {
|
|
|
2008
2062
|
});
|
|
2009
2063
|
}
|
|
2010
2064
|
}
|
|
2011
|
-
let
|
|
2065
|
+
let l = {
|
|
2012
2066
|
engine: function() {
|
|
2013
|
-
if (a) return Promise.reject(
|
|
2067
|
+
if (a) return Promise.reject(Kt({ project: i.project }));
|
|
2014
2068
|
let e = Me();
|
|
2015
2069
|
return e === void 0 ? i.refusal === void 0 ? i.current ? Promise.resolve(i.current.client) : new Promise(function(e, t) {
|
|
2016
2070
|
i.waiters.push({
|
|
@@ -2023,15 +2077,15 @@ async function St(e) {
|
|
|
2023
2077
|
return o ??= c(), o;
|
|
2024
2078
|
},
|
|
2025
2079
|
onNotice: function(e) {
|
|
2026
|
-
return a ?
|
|
2080
|
+
return a ? Mt : (s.add(e), i.listeners.add(e), function() {
|
|
2027
2081
|
s.delete(e), i.listeners.delete(e);
|
|
2028
2082
|
});
|
|
2029
2083
|
}
|
|
2030
2084
|
};
|
|
2031
|
-
return
|
|
2085
|
+
return p.add(l), l;
|
|
2032
2086
|
},
|
|
2033
|
-
destroyProject: async function({ project: e, dialecteId: t, dialecteVersion: n, destroy:
|
|
2034
|
-
let o =
|
|
2087
|
+
destroyProject: async function({ project: e, dialecteId: t, dialecteVersion: n, destroy: i, own: a }) {
|
|
2088
|
+
let o = v({
|
|
2035
2089
|
project: e,
|
|
2036
2090
|
dialecteId: t
|
|
2037
2091
|
}), s = Me();
|
|
@@ -2040,14 +2094,14 @@ async function St(e) {
|
|
|
2040
2094
|
key: o,
|
|
2041
2095
|
own: a?.link
|
|
2042
2096
|
});
|
|
2043
|
-
if (c > 0 &&
|
|
2097
|
+
if (c > 0 && h({
|
|
2044
2098
|
storeName: e,
|
|
2045
2099
|
connections: c
|
|
2046
|
-
}),
|
|
2100
|
+
}), g.has(o)) throw r("PROJECT_OPEN_ELSEWHERE", {
|
|
2047
2101
|
detail: `"${e}" is being destroyed from this view already`,
|
|
2048
2102
|
meta: { project: e }
|
|
2049
2103
|
});
|
|
2050
|
-
if (!
|
|
2104
|
+
if (!i) await R({
|
|
2051
2105
|
key: o,
|
|
2052
2106
|
project: e,
|
|
2053
2107
|
dialecteId: t,
|
|
@@ -2056,26 +2110,26 @@ async function St(e) {
|
|
|
2056
2110
|
});
|
|
2057
2111
|
else {
|
|
2058
2112
|
await new Promise(function(n, r) {
|
|
2059
|
-
|
|
2113
|
+
g.set(o, {
|
|
2060
2114
|
granted: n,
|
|
2061
2115
|
refused: r
|
|
2062
|
-
}),
|
|
2116
|
+
}), z({
|
|
2063
2117
|
type: "destroy",
|
|
2064
2118
|
project: e,
|
|
2065
2119
|
dialecteId: t
|
|
2066
2120
|
});
|
|
2067
2121
|
}).finally(function() {
|
|
2068
|
-
|
|
2122
|
+
g.delete(o);
|
|
2069
2123
|
});
|
|
2070
2124
|
try {
|
|
2071
2125
|
let t = je({
|
|
2072
2126
|
key: o,
|
|
2073
2127
|
own: a?.link
|
|
2074
2128
|
});
|
|
2075
|
-
t > 0 &&
|
|
2129
|
+
t > 0 && h({
|
|
2076
2130
|
storeName: e,
|
|
2077
2131
|
connections: t
|
|
2078
|
-
}), a?.letGo(), await
|
|
2132
|
+
}), a?.letGo(), await i();
|
|
2079
2133
|
} finally {
|
|
2080
2134
|
L({
|
|
2081
2135
|
type: "destroyed",
|
|
@@ -2086,25 +2140,25 @@ async function St(e) {
|
|
|
2086
2140
|
}
|
|
2087
2141
|
},
|
|
2088
2142
|
onRejoined: function(e) {
|
|
2089
|
-
return
|
|
2090
|
-
|
|
2143
|
+
return re.add(e), function() {
|
|
2144
|
+
re.delete(e);
|
|
2091
2145
|
};
|
|
2092
2146
|
},
|
|
2093
2147
|
adoptPort: function({ port: e }) {
|
|
2094
|
-
return !
|
|
2148
|
+
return !u || E === "refused" ? !1 : (A && Yt({ port: A }), A = e, E === "dropped" ? G() : E === "joined" ? (De(), be()) : E === "joining" && W(), !0);
|
|
2095
2149
|
},
|
|
2096
2150
|
createHubPort: function() {
|
|
2097
2151
|
let e = Me();
|
|
2098
2152
|
if (e !== void 0) throw e;
|
|
2099
2153
|
let t = new MessageChannel(), n = crypto.randomUUID();
|
|
2100
|
-
return
|
|
2154
|
+
return z({
|
|
2101
2155
|
type: "bind-child",
|
|
2102
2156
|
bindingId: n,
|
|
2103
2157
|
port: t.port2
|
|
2104
2158
|
}, [t.port2]), {
|
|
2105
2159
|
port: t.port1,
|
|
2106
2160
|
unbind: function() {
|
|
2107
|
-
|
|
2161
|
+
z({
|
|
2108
2162
|
type: "unbind-child",
|
|
2109
2163
|
bindingId: n
|
|
2110
2164
|
});
|
|
@@ -2113,9 +2167,9 @@ async function St(e) {
|
|
|
2113
2167
|
}
|
|
2114
2168
|
};
|
|
2115
2169
|
}
|
|
2116
|
-
function
|
|
2170
|
+
function At(e) {
|
|
2117
2171
|
let { entry: t, asked: n } = e;
|
|
2118
|
-
if (n.dialecteVersion !== t.dialecteVersion) return
|
|
2172
|
+
if (n.dialecteVersion !== t.dialecteVersion) return r("PROJECT_DIALECTE_VERSION_MISMATCH", {
|
|
2119
2173
|
detail: `"${t.project}" is open in this view with ${t.dialecteId} ${t.dialecteVersion}, asked with ${n.dialecteVersion}`,
|
|
2120
2174
|
meta: {
|
|
2121
2175
|
project: t.project,
|
|
@@ -2125,22 +2179,22 @@ function Ct(e) {
|
|
|
2125
2179
|
}
|
|
2126
2180
|
});
|
|
2127
2181
|
}
|
|
2128
|
-
function
|
|
2182
|
+
function jt(e) {
|
|
2129
2183
|
let { error: t, project: n } = e, r = !1;
|
|
2130
2184
|
return {
|
|
2131
2185
|
engine: function() {
|
|
2132
|
-
return Promise.reject(r ?
|
|
2186
|
+
return Promise.reject(r ? Kt({ project: n }) : t);
|
|
2133
2187
|
},
|
|
2134
2188
|
release: async function() {
|
|
2135
2189
|
r = !0;
|
|
2136
2190
|
},
|
|
2137
2191
|
onNotice: function() {
|
|
2138
|
-
return
|
|
2192
|
+
return Mt;
|
|
2139
2193
|
}
|
|
2140
2194
|
};
|
|
2141
2195
|
}
|
|
2142
|
-
function
|
|
2143
|
-
function
|
|
2196
|
+
function Mt() {}
|
|
2197
|
+
function Nt(e) {
|
|
2144
2198
|
return {
|
|
2145
2199
|
...e,
|
|
2146
2200
|
users: 0,
|
|
@@ -2153,18 +2207,18 @@ function Et(e) {
|
|
|
2153
2207
|
creationId: void 0
|
|
2154
2208
|
};
|
|
2155
2209
|
}
|
|
2156
|
-
function
|
|
2210
|
+
function Pt(e) {
|
|
2157
2211
|
let { entry: t, message: n, leave: r } = e;
|
|
2158
2212
|
if (!t) {
|
|
2159
2213
|
n.port.close();
|
|
2160
2214
|
return;
|
|
2161
2215
|
}
|
|
2162
|
-
|
|
2216
|
+
Rt({
|
|
2163
2217
|
entry: t,
|
|
2164
2218
|
reason: "host-gone"
|
|
2165
2219
|
});
|
|
2166
2220
|
try {
|
|
2167
|
-
|
|
2221
|
+
o({
|
|
2168
2222
|
project: t.project,
|
|
2169
2223
|
expectedCreationId: t.creationId,
|
|
2170
2224
|
creationId: n.creationId
|
|
@@ -2179,7 +2233,7 @@ function Dt(e) {
|
|
|
2179
2233
|
return;
|
|
2180
2234
|
}
|
|
2181
2235
|
t.creationId = n.creationId;
|
|
2182
|
-
let i =
|
|
2236
|
+
let i = be({
|
|
2183
2237
|
port: n.port,
|
|
2184
2238
|
heartbeatTimeoutMs: t.heartbeatTimeoutMs
|
|
2185
2239
|
});
|
|
@@ -2187,60 +2241,60 @@ function Dt(e) {
|
|
|
2187
2241
|
generation: n.generation,
|
|
2188
2242
|
client: i
|
|
2189
2243
|
}, i.onEvent(function(e) {
|
|
2190
|
-
|
|
2244
|
+
Ft({
|
|
2191
2245
|
entry: t,
|
|
2192
2246
|
notice: {
|
|
2193
2247
|
type: "event",
|
|
2194
2248
|
signal: e
|
|
2195
2249
|
}
|
|
2196
2250
|
});
|
|
2197
|
-
}), t.reached &&
|
|
2251
|
+
}), t.reached && Ft({
|
|
2198
2252
|
entry: t,
|
|
2199
2253
|
notice: { type: "resync" }
|
|
2200
2254
|
}), t.reached = !0;
|
|
2201
2255
|
for (let e of t.waiters.splice(0)) e.resolve(i);
|
|
2202
2256
|
}
|
|
2203
|
-
function
|
|
2204
|
-
|
|
2257
|
+
function Ft(e) {
|
|
2258
|
+
m({
|
|
2205
2259
|
listeners: e.entry.listeners,
|
|
2206
2260
|
value: e.notice,
|
|
2207
|
-
of:
|
|
2261
|
+
of: u.engineChanges
|
|
2208
2262
|
});
|
|
2209
2263
|
}
|
|
2210
|
-
function
|
|
2211
|
-
e.entry &&
|
|
2264
|
+
function It(e) {
|
|
2265
|
+
e.entry && Rt({
|
|
2212
2266
|
entry: e.entry,
|
|
2213
2267
|
reason: "host-gone"
|
|
2214
2268
|
});
|
|
2215
2269
|
}
|
|
2216
|
-
function
|
|
2217
|
-
let { entry: t, error:
|
|
2270
|
+
function Lt(e) {
|
|
2271
|
+
let { entry: t, error: r } = e;
|
|
2218
2272
|
if (!t) return;
|
|
2219
2273
|
t.asked = !1;
|
|
2220
|
-
let
|
|
2221
|
-
|
|
2222
|
-
return e ===
|
|
2223
|
-
}) && (t.refusal =
|
|
2274
|
+
let i = n(r)?.key;
|
|
2275
|
+
st.some(function(e) {
|
|
2276
|
+
return e === i;
|
|
2277
|
+
}) && (t.refusal = r);
|
|
2224
2278
|
for (let e of t.waiters.splice(0)) Z({
|
|
2225
2279
|
waiter: e,
|
|
2226
|
-
error:
|
|
2280
|
+
error: r
|
|
2227
2281
|
});
|
|
2228
|
-
|
|
2282
|
+
i === "PROJECT_DESTROYED_WHILE_AWAY" && e.forget(t);
|
|
2229
2283
|
}
|
|
2230
2284
|
function Z(e) {
|
|
2231
2285
|
e.waiter.reject(e.error);
|
|
2232
2286
|
}
|
|
2233
|
-
function
|
|
2287
|
+
function Rt(e) {
|
|
2234
2288
|
let { entry: t, reason: n } = e, r = t.current;
|
|
2235
2289
|
t.current = void 0, r && (r.client.lose({ reason: n }), r.client.close({ storeName: t.project }));
|
|
2236
2290
|
}
|
|
2237
|
-
function
|
|
2291
|
+
function zt(e) {
|
|
2238
2292
|
return {
|
|
2239
2293
|
dialecteId: e.dialecteId,
|
|
2240
2294
|
dialecteVersion: e.dialecteVersion
|
|
2241
2295
|
};
|
|
2242
2296
|
}
|
|
2243
|
-
function
|
|
2297
|
+
function Bt(e) {
|
|
2244
2298
|
let { targets: t, signal: n, suspend: r, resume: i, end: a } = e;
|
|
2245
2299
|
t.page.addEventListener("freeze", r, { signal: n }), t.page.addEventListener("resume", function() {
|
|
2246
2300
|
i();
|
|
@@ -2250,82 +2304,82 @@ function Nt(e) {
|
|
|
2250
2304
|
e.persisted && i();
|
|
2251
2305
|
}, { signal: n });
|
|
2252
2306
|
}
|
|
2253
|
-
function
|
|
2307
|
+
function Vt(e) {
|
|
2254
2308
|
try {
|
|
2255
2309
|
return e.openPort();
|
|
2256
2310
|
} catch (e) {
|
|
2257
|
-
throw e instanceof DOMException ?
|
|
2311
|
+
throw e instanceof DOMException ? r("STORE_CONNECTION_FAILED", { detail: `The origin's hub could not start: ${e instanceof Error ? e.message : String(e)}` }) : e;
|
|
2258
2312
|
}
|
|
2259
2313
|
}
|
|
2260
|
-
async function
|
|
2314
|
+
async function Ht(e) {
|
|
2261
2315
|
let { welcomed: t, failed: n, expired: r } = e, i = n?.then(function(e) {
|
|
2262
2316
|
throw e;
|
|
2263
|
-
}) ?? new Promise(
|
|
2264
|
-
i.catch(
|
|
2317
|
+
}) ?? new Promise(Wt);
|
|
2318
|
+
i.catch(Gt), await Promise.race([
|
|
2265
2319
|
t,
|
|
2266
2320
|
r,
|
|
2267
2321
|
i
|
|
2268
2322
|
]);
|
|
2269
2323
|
}
|
|
2270
|
-
function
|
|
2271
|
-
let { budgetMs: t } = e, n,
|
|
2324
|
+
function Ut(e) {
|
|
2325
|
+
let { budgetMs: t } = e, n, i = new Promise(function(e, i) {
|
|
2272
2326
|
n = setTimeout(function() {
|
|
2273
|
-
r(
|
|
2327
|
+
i(r("STORE_CONNECTION_FAILED", {
|
|
2274
2328
|
detail: `The origin's hub did not welcome this view within ${t} ms (its lock, then the welcome)`,
|
|
2275
2329
|
meta: { budgetMs: t }
|
|
2276
2330
|
}));
|
|
2277
2331
|
}, t);
|
|
2278
2332
|
});
|
|
2279
|
-
return
|
|
2280
|
-
expired:
|
|
2333
|
+
return i.catch(Gt), {
|
|
2334
|
+
expired: i,
|
|
2281
2335
|
clear: function() {
|
|
2282
2336
|
clearTimeout(n);
|
|
2283
2337
|
}
|
|
2284
2338
|
};
|
|
2285
2339
|
}
|
|
2286
|
-
function
|
|
2287
|
-
function
|
|
2288
|
-
function
|
|
2289
|
-
return
|
|
2340
|
+
function Wt() {}
|
|
2341
|
+
function Gt() {}
|
|
2342
|
+
function Kt(e) {
|
|
2343
|
+
return r("STORE_CLOSED", {
|
|
2290
2344
|
detail: `The link to project "${e.project}" was released: it reaches no engine`,
|
|
2291
2345
|
meta: { storeName: e.project }
|
|
2292
2346
|
});
|
|
2293
2347
|
}
|
|
2294
|
-
function
|
|
2348
|
+
function qt(e) {
|
|
2295
2349
|
let { realmId: t, expired: n } = e;
|
|
2296
|
-
return new Promise(function(e,
|
|
2297
|
-
let
|
|
2350
|
+
return new Promise(function(e, i) {
|
|
2351
|
+
let a = !1;
|
|
2298
2352
|
n.catch(function(e) {
|
|
2299
|
-
|
|
2300
|
-
}), navigator.locks.request(`${
|
|
2353
|
+
a = !0, i(e);
|
|
2354
|
+
}), navigator.locks.request(`${at}${t}`, function() {
|
|
2301
2355
|
return new Promise(function(t) {
|
|
2302
|
-
|
|
2356
|
+
a ? t() : e(t);
|
|
2303
2357
|
});
|
|
2304
2358
|
}).catch(function(e) {
|
|
2305
|
-
r(
|
|
2359
|
+
i(r("STORE_CONNECTION_FAILED", {
|
|
2306
2360
|
detail: "This view could not ask for its lock: it cannot join the hub",
|
|
2307
2361
|
cause: e instanceof Error ? e : void 0
|
|
2308
2362
|
}));
|
|
2309
2363
|
});
|
|
2310
2364
|
});
|
|
2311
2365
|
}
|
|
2312
|
-
function
|
|
2366
|
+
function Jt() {}
|
|
2313
2367
|
function Q() {}
|
|
2314
|
-
function
|
|
2368
|
+
function Yt(e) {
|
|
2315
2369
|
e.port.postMessage({ type: "port-unused" }), e.port.close();
|
|
2316
2370
|
}
|
|
2317
2371
|
// src/store/sqlite/adapter/realm-storage.ts
|
|
2318
|
-
async function
|
|
2319
|
-
return typeof Worker < "u" && await
|
|
2372
|
+
async function Xt() {
|
|
2373
|
+
return typeof Worker < "u" && await Qt();
|
|
2320
2374
|
}
|
|
2321
|
-
function
|
|
2375
|
+
function Zt(e) {
|
|
2322
2376
|
let t = typeof Worker < "u";
|
|
2323
|
-
|
|
2377
|
+
i("STORE_UNAVAILABLE", {
|
|
2324
2378
|
detail: `Project "${e.name}" cannot be stored with SQLite here: this ${t ? "browser gives no private file system" : "environment has no worker"}`,
|
|
2325
2379
|
meta: { project: e.name }
|
|
2326
2380
|
});
|
|
2327
2381
|
}
|
|
2328
|
-
async function
|
|
2382
|
+
async function Qt() {
|
|
2329
2383
|
let e = globalThis.navigator?.storage;
|
|
2330
2384
|
if (typeof e?.getDirectory != "function") return !1;
|
|
2331
2385
|
try {
|
|
@@ -2335,14 +2389,14 @@ async function Gt() {
|
|
|
2335
2389
|
}
|
|
2336
2390
|
}
|
|
2337
2391
|
// src/store/sqlite/adapter/sqlite-engine-settings.ts
|
|
2338
|
-
function
|
|
2392
|
+
function $t(e = {}) {
|
|
2339
2393
|
return {
|
|
2340
2394
|
...e,
|
|
2341
|
-
wasmUrl:
|
|
2395
|
+
wasmUrl: a
|
|
2342
2396
|
};
|
|
2343
2397
|
}
|
|
2344
2398
|
// src/store/sqlite/adapter/sqlite-hub-spawner.ts
|
|
2345
|
-
function
|
|
2399
|
+
function en(e) {
|
|
2346
2400
|
let { dialecteId: t, dialecteVersion: n, engineUrl: r, perf: i, options: a, progressBeatOps: o } = e;
|
|
2347
2401
|
return {
|
|
2348
2402
|
dialecteId: t,
|
|
@@ -2350,114 +2404,249 @@ function qt(e) {
|
|
|
2350
2404
|
engineUrl: r,
|
|
2351
2405
|
perf: i,
|
|
2352
2406
|
settings: async function() {
|
|
2353
|
-
return
|
|
2407
|
+
return $t({
|
|
2354
2408
|
options: a,
|
|
2355
2409
|
progressBeatOps: o
|
|
2356
2410
|
});
|
|
2357
2411
|
}
|
|
2358
2412
|
};
|
|
2359
2413
|
}
|
|
2414
|
+
function tn(e) {
|
|
2415
|
+
let { registration: t, own: n } = e;
|
|
2416
|
+
return t ? t.dialectes.map(function({ id: e, version: r }) {
|
|
2417
|
+
return en({
|
|
2418
|
+
dialecteId: e,
|
|
2419
|
+
dialecteVersion: r,
|
|
2420
|
+
engineUrl: t.url,
|
|
2421
|
+
perf: e === n?.dialecteId ? n.perf : void 0
|
|
2422
|
+
});
|
|
2423
|
+
}) : [];
|
|
2424
|
+
}
|
|
2360
2425
|
// src/store/sqlite/adapter/sqlite-worker-connector.ts
|
|
2361
|
-
function
|
|
2426
|
+
function nn(e) {
|
|
2362
2427
|
let { options: t, progressBeatOps: n, ...r } = e;
|
|
2363
|
-
return
|
|
2428
|
+
return De({
|
|
2364
2429
|
...r,
|
|
2365
2430
|
settings: {
|
|
2366
|
-
wasmUrl:
|
|
2431
|
+
wasmUrl: a,
|
|
2367
2432
|
options: t,
|
|
2368
2433
|
progressBeatOps: n
|
|
2369
2434
|
}
|
|
2370
2435
|
});
|
|
2371
2436
|
}
|
|
2372
2437
|
// src/store/sqlite/adapter/sqlite-connector.ts
|
|
2373
|
-
function
|
|
2374
|
-
let { name: t, dialecteId: n, dialecteVersion: r,
|
|
2375
|
-
name: t,
|
|
2376
|
-
dialecteId: n,
|
|
2377
|
-
dialecteVersion: r,
|
|
2378
|
-
engineUrl: i,
|
|
2379
|
-
perf: a
|
|
2380
|
-
});
|
|
2438
|
+
function rn(e) {
|
|
2439
|
+
let { name: t, dialecteId: n, dialecteVersion: r, perf: i, engine: a } = e, o;
|
|
2381
2440
|
function s(e) {
|
|
2382
|
-
return
|
|
2441
|
+
return o ??= nn({
|
|
2442
|
+
name: t,
|
|
2443
|
+
dialecteId: n,
|
|
2444
|
+
dialecteVersion: r,
|
|
2445
|
+
engineUrl: e.engineUrl,
|
|
2446
|
+
perf: i
|
|
2447
|
+
}), o;
|
|
2448
|
+
}
|
|
2449
|
+
function c(e) {
|
|
2450
|
+
return it({
|
|
2383
2451
|
name: t,
|
|
2384
2452
|
connection: e.connection,
|
|
2385
2453
|
dialecteId: n,
|
|
2386
2454
|
dialecteVersion: r,
|
|
2387
|
-
engineUrl:
|
|
2388
|
-
deletesFiles: e.deletesFiles
|
|
2455
|
+
engineUrl: e.engineUrl
|
|
2389
2456
|
});
|
|
2390
2457
|
}
|
|
2391
|
-
async function
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2458
|
+
async function l() {
|
|
2459
|
+
let e = await Xt(), r = e ? on({
|
|
2460
|
+
registration: a(),
|
|
2461
|
+
dialecteId: n
|
|
2462
|
+
}) : void 0;
|
|
2463
|
+
if (!r) {
|
|
2464
|
+
let r = await an();
|
|
2465
|
+
if (r) return c({ connection: r });
|
|
2466
|
+
e || Zt({ name: t }), sn({
|
|
2467
|
+
name: t,
|
|
2468
|
+
dialecteId: n
|
|
2397
2469
|
});
|
|
2398
|
-
Wt({ name: t });
|
|
2399
2470
|
}
|
|
2400
|
-
|
|
2471
|
+
let o = r.url;
|
|
2472
|
+
if (Be({
|
|
2401
2473
|
name: t,
|
|
2402
2474
|
dialecteId: n
|
|
2403
|
-
})) return o;
|
|
2404
|
-
let
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2475
|
+
})) return s({ engineUrl: o });
|
|
2476
|
+
let l = await bt({ spawners: tn({
|
|
2477
|
+
registration: r,
|
|
2478
|
+
own: {
|
|
2479
|
+
dialecteId: n,
|
|
2480
|
+
perf: i
|
|
2481
|
+
}
|
|
2482
|
+
}) });
|
|
2483
|
+
return l ? c({
|
|
2484
|
+
connection: l,
|
|
2485
|
+
engineUrl: o
|
|
2486
|
+
}) : s({ engineUrl: o });
|
|
2414
2487
|
}
|
|
2415
2488
|
return {
|
|
2416
2489
|
connect: async function() {
|
|
2417
|
-
return (await
|
|
2490
|
+
return (await l()).connect();
|
|
2418
2491
|
},
|
|
2419
2492
|
destroy: async function(e) {
|
|
2420
|
-
return (await
|
|
2493
|
+
return (await l()).destroy(e);
|
|
2421
2494
|
}
|
|
2422
2495
|
};
|
|
2423
2496
|
}
|
|
2424
|
-
async function
|
|
2425
|
-
let e = await
|
|
2497
|
+
async function an() {
|
|
2498
|
+
let e = await xt();
|
|
2426
2499
|
return e?.bound ? e : void 0;
|
|
2427
2500
|
}
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
connector: Yt(t)
|
|
2434
|
-
});
|
|
2501
|
+
function on(e) {
|
|
2502
|
+
let { registration: t, dialecteId: n } = e;
|
|
2503
|
+
return t?.dialectes.some(function({ id: e }) {
|
|
2504
|
+
return e === n;
|
|
2505
|
+
}) ? t : void 0;
|
|
2435
2506
|
}
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2507
|
+
function sn(e) {
|
|
2508
|
+
let { name: t, dialecteId: n } = e;
|
|
2509
|
+
i(c.PROJECT_SQLITE_ENGINE_NOT_REGISTERED, {
|
|
2510
|
+
detail: `Project "${t}" asks for SQLite storage, but no engine is registered for ${n}: call \`registerSqliteEngine({ url, dialectes })\` from '@dialecte/core/sqlite' once, before the first project opens, naming ${n} among the dialectes of the app's engine worker. Registered already? Then a copy of @dialecte/core of another SQLite version registered it (a dialecte bringing its own core): align the core versions`,
|
|
2511
|
+
meta: {
|
|
2512
|
+
project: t,
|
|
2513
|
+
dialecteId: n
|
|
2514
|
+
}
|
|
2441
2515
|
});
|
|
2442
|
-
return n && nn({ connection: n });
|
|
2443
2516
|
}
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2517
|
+
// src/store/sqlite/sqlite-connector-params.ts
|
|
2518
|
+
function cn(e) {
|
|
2519
|
+
let { name: t, runtime: n, dialecteId: r } = e, { dialecteVersion: a, perf: o } = n;
|
|
2520
|
+
return _({
|
|
2521
|
+
project: t,
|
|
2522
|
+
dialecteId: r
|
|
2523
|
+
}), (r === void 0 || a === void 0) && i(c.PROJECT_ENGINE_NOT_DECLARED, {
|
|
2524
|
+
detail: `Project "${t}" asks for SQLite storage, but no dialecte's factory made it: no engine is known to start (dialecte ${r ?? "none"}, version ${a ?? "none"})`,
|
|
2525
|
+
meta: {
|
|
2526
|
+
project: t,
|
|
2527
|
+
dialecteId: r,
|
|
2528
|
+
dialecteVersion: a
|
|
2529
|
+
}
|
|
2530
|
+
}), {
|
|
2531
|
+
name: t,
|
|
2532
|
+
dialecteId: r,
|
|
2533
|
+
dialecteVersion: a,
|
|
2534
|
+
perf: o
|
|
2451
2535
|
};
|
|
2452
2536
|
}
|
|
2453
|
-
|
|
2454
|
-
|
|
2537
|
+
// src/store/sqlite/sqlite-engine-registration.ts
|
|
2538
|
+
function ln(e) {
|
|
2539
|
+
let { url: t, dialectes: n } = e;
|
|
2540
|
+
fn({ dialectes: n });
|
|
2541
|
+
let r = {
|
|
2542
|
+
url: t,
|
|
2543
|
+
dialectes: dn({ dialectes: n })
|
|
2544
|
+
}, a = un();
|
|
2545
|
+
a ? pn({
|
|
2546
|
+
registered: a,
|
|
2547
|
+
asked: r
|
|
2548
|
+
}) || i(c.STORE_SQLITE_ENGINE_FIXED, {
|
|
2549
|
+
detail: `This page's SQLite engine is registered already (${mn({ registration: a })}), not ${mn({ registration: r })}: an app names all its dialectes in one registration`,
|
|
2550
|
+
meta: {
|
|
2551
|
+
registered: a,
|
|
2552
|
+
asked: r
|
|
2553
|
+
}
|
|
2554
|
+
}) : gn({ engine: r });
|
|
2455
2555
|
}
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
return t && nn({ connection: t });
|
|
2556
|
+
function un() {
|
|
2557
|
+
return globalThis[O];
|
|
2459
2558
|
}
|
|
2460
|
-
function
|
|
2559
|
+
function dn(e) {
|
|
2560
|
+
return e.dialectes.filter(function({ id: e, version: t }, n, r) {
|
|
2561
|
+
return r.findIndex(function(n) {
|
|
2562
|
+
return n.id === e && n.version === t;
|
|
2563
|
+
}) === n;
|
|
2564
|
+
}).map(function({ id: e, version: t }) {
|
|
2565
|
+
return {
|
|
2566
|
+
id: e,
|
|
2567
|
+
version: t
|
|
2568
|
+
};
|
|
2569
|
+
});
|
|
2570
|
+
}
|
|
2571
|
+
function fn(e) {
|
|
2572
|
+
let t = e.dialectes.filter(function({ id: e, version: t }, n, r) {
|
|
2573
|
+
return r.some(function(n) {
|
|
2574
|
+
return n.id === e && n.version !== t;
|
|
2575
|
+
});
|
|
2576
|
+
});
|
|
2577
|
+
if (t.length === 0) return;
|
|
2578
|
+
let n = t.map(function({ id: e, version: t }) {
|
|
2579
|
+
return {
|
|
2580
|
+
dialecteId: e,
|
|
2581
|
+
dialecteVersion: t
|
|
2582
|
+
};
|
|
2583
|
+
});
|
|
2584
|
+
i(c.STORE_HUB_SPAWNERS_FIXED, {
|
|
2585
|
+
detail: `One registration names ${hn({ dialectes: t })}: a page runs one version of each dialecte's engine`,
|
|
2586
|
+
meta: { spawners: n }
|
|
2587
|
+
});
|
|
2588
|
+
}
|
|
2589
|
+
function pn(e) {
|
|
2590
|
+
let { registered: t, asked: n } = e;
|
|
2591
|
+
return t.url !== n.url || t.dialectes.length !== n.dialectes.length ? !1 : n.dialectes.every(function({ id: e, version: n }) {
|
|
2592
|
+
return t.dialectes.some(function(t) {
|
|
2593
|
+
return t.id === e && t.version === n;
|
|
2594
|
+
});
|
|
2595
|
+
});
|
|
2596
|
+
}
|
|
2597
|
+
function mn(e) {
|
|
2598
|
+
let { url: t, dialectes: n } = e.registration;
|
|
2599
|
+
return `${t} for ${hn({ dialectes: n })}`;
|
|
2600
|
+
}
|
|
2601
|
+
function hn(e) {
|
|
2602
|
+
let { dialectes: t } = e;
|
|
2603
|
+
return t.length === 0 ? "no dialecte" : t.map(function({ id: e, version: t }) {
|
|
2604
|
+
return `${e}@${t}`;
|
|
2605
|
+
}).join(", ");
|
|
2606
|
+
}
|
|
2607
|
+
function gn(e) {
|
|
2608
|
+
let t = globalThis;
|
|
2609
|
+
e.engine ? t[O] = e.engine : delete t[O];
|
|
2610
|
+
}
|
|
2611
|
+
// src/store/sqlite/sqlite-store-of.ts
|
|
2612
|
+
function _n(e) {
|
|
2613
|
+
let { name: n, runtime: r, dialecteId: i } = e, a = cn({
|
|
2614
|
+
name: n,
|
|
2615
|
+
runtime: r,
|
|
2616
|
+
dialecteId: i
|
|
2617
|
+
});
|
|
2618
|
+
return new t({
|
|
2619
|
+
name: n,
|
|
2620
|
+
connector: rn({
|
|
2621
|
+
...a,
|
|
2622
|
+
engine: un
|
|
2623
|
+
})
|
|
2624
|
+
});
|
|
2625
|
+
}
|
|
2626
|
+
// src/store/sqlite/sqlite-storage-kind.constants.ts
|
|
2627
|
+
var vn = {
|
|
2628
|
+
id: re,
|
|
2629
|
+
storeOf: function({ name: e, runtime: t, dialecteId: n }) {
|
|
2630
|
+
return _n({
|
|
2631
|
+
name: e,
|
|
2632
|
+
runtime: t,
|
|
2633
|
+
dialecteId: n
|
|
2634
|
+
});
|
|
2635
|
+
}
|
|
2636
|
+
};
|
|
2637
|
+
// src/store/sqlite/hub-public.ts
|
|
2638
|
+
async function yn() {
|
|
2639
|
+
let e = await Xt(), t = await bt({
|
|
2640
|
+
spawners: tn({ registration: un() }),
|
|
2641
|
+
hostsNoEngine: !e
|
|
2642
|
+
});
|
|
2643
|
+
return t && xn({ connection: t });
|
|
2644
|
+
}
|
|
2645
|
+
async function bn(e) {
|
|
2646
|
+
let t = await wt(e);
|
|
2647
|
+
return t && xn({ connection: t });
|
|
2648
|
+
}
|
|
2649
|
+
function xn(e) {
|
|
2461
2650
|
let { connection: t } = e;
|
|
2462
2651
|
return {
|
|
2463
2652
|
realmId: t.realmId,
|
|
@@ -2466,39 +2655,39 @@ function nn(e) {
|
|
|
2466
2655
|
};
|
|
2467
2656
|
}
|
|
2468
2657
|
// src/store/sqlite/list-projects.constants.ts
|
|
2469
|
-
var
|
|
2658
|
+
var Sn = {
|
|
2470
2659
|
magic: "SQLite format 3\0",
|
|
2471
2660
|
userVersionOffset: 60,
|
|
2472
2661
|
bytes: 100
|
|
2473
|
-
},
|
|
2662
|
+
}, Cn = "dialecte-projects", wn = "/project.sqlite3", $ = {
|
|
2474
2663
|
bytes: 4096,
|
|
2475
2664
|
flagsOffset: 512,
|
|
2476
2665
|
digestOffset: 516,
|
|
2477
2666
|
digestBytes: 8,
|
|
2478
2667
|
headBytes: 524
|
|
2479
|
-
},
|
|
2668
|
+
}, Tn = {
|
|
2480
2669
|
deleteOnClose: 8,
|
|
2481
2670
|
digestV2: 128,
|
|
2482
2671
|
persistentTypes: 542976
|
|
2483
|
-
},
|
|
2672
|
+
}, En = {
|
|
2484
2673
|
seeds: [3735928559, 1103547991],
|
|
2485
2674
|
multipliers: [2654435761, 104729]
|
|
2486
2675
|
};
|
|
2487
2676
|
// src/store/sqlite/runtime/pool-header.ts
|
|
2488
|
-
function
|
|
2677
|
+
function Dn(e) {
|
|
2489
2678
|
let { files: t } = e;
|
|
2490
|
-
return t.some(
|
|
2679
|
+
return t.some(On) ? "database" : t.every(kn) ? "blank" : "lost";
|
|
2491
2680
|
}
|
|
2492
|
-
function
|
|
2493
|
-
return
|
|
2681
|
+
function On(e) {
|
|
2682
|
+
return An({ header: e.header }) === wn;
|
|
2494
2683
|
}
|
|
2495
|
-
function
|
|
2684
|
+
function kn(e) {
|
|
2496
2685
|
return e.size <= $.bytes;
|
|
2497
2686
|
}
|
|
2498
|
-
function
|
|
2499
|
-
let { header: t } = e, n = t.subarray(0, $.digestOffset), r = new DataView(t.buffer, t.byteOffset, t.byteLength).getUint32($.flagsOffset), i = (r &
|
|
2687
|
+
function An(e) {
|
|
2688
|
+
let { header: t } = e, n = t.subarray(0, $.digestOffset), r = new DataView(t.buffer, t.byteOffset, t.byteLength).getUint32($.flagsOffset), i = (r & Tn.deleteOnClose) !== 0 || (r & Tn.persistentTypes) === 0;
|
|
2500
2689
|
if (n[0] !== 0 && i) return;
|
|
2501
|
-
let a = new Uint32Array(t.slice($.digestOffset, $.digestOffset + $.digestBytes).buffer), [o, s] =
|
|
2690
|
+
let a = new Uint32Array(t.slice($.digestOffset, $.digestOffset + $.digestBytes).buffer), [o, s] = jn({
|
|
2502
2691
|
corpus: n,
|
|
2503
2692
|
flags: r
|
|
2504
2693
|
});
|
|
@@ -2506,41 +2695,41 @@ function fn(e) {
|
|
|
2506
2695
|
let c = n.indexOf(0);
|
|
2507
2696
|
return new TextDecoder().decode(n.subarray(0, c === -1 ? n.length : c));
|
|
2508
2697
|
}
|
|
2509
|
-
function
|
|
2698
|
+
function jn(e) {
|
|
2510
2699
|
let { corpus: t, flags: n } = e;
|
|
2511
|
-
if ((n &
|
|
2512
|
-
let r =
|
|
2700
|
+
if ((n & Tn.digestV2) === 0) return [0, 0];
|
|
2701
|
+
let r = En.seeds[0], i = En.seeds[1], [a, o] = En.multipliers;
|
|
2513
2702
|
for (let e of t) r = Math.imul(r ^ e, a), i = Math.imul(i ^ e, o);
|
|
2514
2703
|
return [r >>> 0, i >>> 0];
|
|
2515
2704
|
}
|
|
2516
2705
|
// src/store/sqlite/list-projects.ts
|
|
2517
|
-
async function
|
|
2518
|
-
return
|
|
2519
|
-
root: await
|
|
2706
|
+
async function Mn(e = {}) {
|
|
2707
|
+
return Nn({
|
|
2708
|
+
root: await zn(),
|
|
2520
2709
|
dialecteId: e.dialecteId
|
|
2521
2710
|
});
|
|
2522
2711
|
}
|
|
2523
|
-
async function
|
|
2524
|
-
let { root: t, dialecteId: n } = e, r = await
|
|
2712
|
+
async function Nn(e) {
|
|
2713
|
+
let { root: t, dialecteId: n } = e, r = await Bn({
|
|
2525
2714
|
parent: t,
|
|
2526
|
-
name:
|
|
2715
|
+
name: Cn
|
|
2527
2716
|
});
|
|
2528
2717
|
if (!r) return [];
|
|
2529
2718
|
let i = [];
|
|
2530
|
-
for (let e of await
|
|
2719
|
+
for (let e of await Fn({ directory: r }) ?? []) {
|
|
2531
2720
|
if (e.kind !== "directory") continue;
|
|
2532
|
-
let t =
|
|
2533
|
-
if (t !== void 0 && (n === void 0 || t === n)) for (let n of await
|
|
2721
|
+
let t = Hn({ part: e.name });
|
|
2722
|
+
if (t !== void 0 && (n === void 0 || t === n)) for (let n of await Fn({ directory: e }) ?? []) {
|
|
2534
2723
|
if (n.kind !== "directory") continue;
|
|
2535
|
-
let r =
|
|
2536
|
-
if (r === void 0 ||
|
|
2724
|
+
let r = Hn({ part: n.name });
|
|
2725
|
+
if (r === void 0 || v({
|
|
2537
2726
|
dialecteId: t,
|
|
2538
2727
|
project: r
|
|
2539
|
-
}) !==
|
|
2728
|
+
}) !== Un({
|
|
2540
2729
|
dialecteDirectory: e,
|
|
2541
2730
|
projectDirectory: n
|
|
2542
2731
|
})) continue;
|
|
2543
|
-
let a = await
|
|
2732
|
+
let a = await Pn({
|
|
2544
2733
|
name: r,
|
|
2545
2734
|
dialecteId: t,
|
|
2546
2735
|
directory: n
|
|
@@ -2548,17 +2737,17 @@ async function hn(e) {
|
|
|
2548
2737
|
a && i.push(a);
|
|
2549
2738
|
}
|
|
2550
2739
|
}
|
|
2551
|
-
return i.sort(
|
|
2740
|
+
return i.sort(Wn);
|
|
2552
2741
|
}
|
|
2553
|
-
async function
|
|
2742
|
+
async function Pn(e) {
|
|
2554
2743
|
let { name: t, dialecteId: n } = e, r;
|
|
2555
2744
|
try {
|
|
2556
|
-
let t = await
|
|
2745
|
+
let t = await Fn({ directory: e.directory });
|
|
2557
2746
|
if (t === void 0) return;
|
|
2558
2747
|
let n = t.find(function(e) {
|
|
2559
2748
|
return e.kind === "directory" && e.name === ".opaque";
|
|
2560
2749
|
});
|
|
2561
|
-
r = n ? await
|
|
2750
|
+
r = n ? await Fn({ directory: n }) : [];
|
|
2562
2751
|
} catch {
|
|
2563
2752
|
return {
|
|
2564
2753
|
name: t,
|
|
@@ -2572,7 +2761,7 @@ async function gn(e) {
|
|
|
2572
2761
|
let i = [], a = !1;
|
|
2573
2762
|
for (let e of r) {
|
|
2574
2763
|
if (e.kind !== "file") continue;
|
|
2575
|
-
let t = await
|
|
2764
|
+
let t = await Rn({ handle: e });
|
|
2576
2765
|
t ? i.push(t) : a = !0;
|
|
2577
2766
|
}
|
|
2578
2767
|
let o = i.reduce(function(e, t) {
|
|
@@ -2583,35 +2772,35 @@ async function gn(e) {
|
|
|
2583
2772
|
return {
|
|
2584
2773
|
name: t,
|
|
2585
2774
|
dialecteId: n,
|
|
2586
|
-
state: a ? "unknown" :
|
|
2775
|
+
state: a ? "unknown" : In({ files: i }),
|
|
2587
2776
|
bytes: o,
|
|
2588
2777
|
lastModified: s
|
|
2589
2778
|
};
|
|
2590
2779
|
}
|
|
2591
|
-
async function
|
|
2780
|
+
async function Fn(e) {
|
|
2592
2781
|
let t = [];
|
|
2593
2782
|
try {
|
|
2594
2783
|
for await (let n of e.directory.values()) t.push(n);
|
|
2595
2784
|
} catch (e) {
|
|
2596
|
-
if (
|
|
2785
|
+
if (Vn({ thrown: e })) return;
|
|
2597
2786
|
throw e;
|
|
2598
2787
|
}
|
|
2599
2788
|
return t;
|
|
2600
2789
|
}
|
|
2601
|
-
function
|
|
2602
|
-
let { files: t } = e, n =
|
|
2790
|
+
function In(e) {
|
|
2791
|
+
let { files: t } = e, n = Dn({ files: t });
|
|
2603
2792
|
if (n === "blank") return "new";
|
|
2604
2793
|
if (n === "lost") return "lost";
|
|
2605
|
-
let r =
|
|
2794
|
+
let r = Ln({ data: t.findLast(On).data });
|
|
2606
2795
|
return r === void 0 ? "new" : r === 4 ? "current" : "outdated";
|
|
2607
2796
|
}
|
|
2608
|
-
function
|
|
2797
|
+
function Ln(e) {
|
|
2609
2798
|
let { data: t } = e;
|
|
2610
|
-
if (!(t.byteLength <
|
|
2799
|
+
if (!(t.byteLength < Sn.bytes) && new TextDecoder().decode(t.subarray(0, Sn.magic.length)) === Sn.magic) return new DataView(t.buffer, t.byteOffset, t.byteLength).getUint32(Sn.userVersionOffset);
|
|
2611
2800
|
}
|
|
2612
|
-
async function
|
|
2801
|
+
async function Rn(e) {
|
|
2613
2802
|
for (let t = 1; t <= 3; t++) try {
|
|
2614
|
-
let t = await e.handle.getFile(), n = await t.slice(0, $.bytes +
|
|
2803
|
+
let t = await e.handle.getFile(), n = await t.slice(0, $.bytes + Sn.bytes).arrayBuffer(), r = new Uint8Array(n);
|
|
2615
2804
|
return {
|
|
2616
2805
|
size: t.size,
|
|
2617
2806
|
lastModified: t.lastModified,
|
|
@@ -2625,47 +2814,59 @@ async function bn(e) {
|
|
|
2625
2814
|
});
|
|
2626
2815
|
}
|
|
2627
2816
|
}
|
|
2628
|
-
async function
|
|
2817
|
+
async function zn() {
|
|
2629
2818
|
let e = globalThis.navigator?.storage;
|
|
2630
2819
|
try {
|
|
2631
2820
|
if (typeof e?.getDirectory == "function") return await e.getDirectory();
|
|
2632
2821
|
} catch {}
|
|
2633
|
-
|
|
2822
|
+
i("STORE_UNAVAILABLE", { detail: "The projects on SQLite storage cannot be listed here: this browser gives no private file system" });
|
|
2634
2823
|
}
|
|
2635
|
-
async function
|
|
2824
|
+
async function Bn(e) {
|
|
2636
2825
|
try {
|
|
2637
2826
|
return await e.parent.getDirectoryHandle(e.name);
|
|
2638
2827
|
} catch (e) {
|
|
2639
|
-
if (
|
|
2828
|
+
if (Vn({ thrown: e })) return;
|
|
2640
2829
|
throw e;
|
|
2641
2830
|
}
|
|
2642
2831
|
}
|
|
2643
|
-
function
|
|
2832
|
+
function Vn(e) {
|
|
2644
2833
|
return e.thrown instanceof DOMException && e.thrown.name === "NotFoundError";
|
|
2645
2834
|
}
|
|
2646
|
-
function
|
|
2835
|
+
function Hn(e) {
|
|
2647
2836
|
try {
|
|
2648
2837
|
return decodeURIComponent(e.part);
|
|
2649
2838
|
} catch {
|
|
2650
2839
|
return;
|
|
2651
2840
|
}
|
|
2652
2841
|
}
|
|
2653
|
-
function
|
|
2842
|
+
function Un(e) {
|
|
2654
2843
|
return `${e.dialecteDirectory.name}/${e.projectDirectory.name}`;
|
|
2655
2844
|
}
|
|
2656
|
-
function
|
|
2657
|
-
return
|
|
2845
|
+
function Wn(e, t) {
|
|
2846
|
+
return Gn({
|
|
2658
2847
|
first: e.dialecteId,
|
|
2659
2848
|
second: t.dialecteId
|
|
2660
|
-
}) ||
|
|
2849
|
+
}) || Gn({
|
|
2661
2850
|
first: e.name,
|
|
2662
2851
|
second: t.name
|
|
2663
2852
|
});
|
|
2664
2853
|
}
|
|
2665
|
-
function
|
|
2854
|
+
function Gn(e) {
|
|
2666
2855
|
let { first: t, second: n } = e;
|
|
2667
2856
|
return t < n ? -1 : +(t > n);
|
|
2668
2857
|
}
|
|
2669
2858
|
// src/sqlite.ts
|
|
2670
|
-
|
|
2671
|
-
|
|
2859
|
+
ee({
|
|
2860
|
+
type: "sqlite",
|
|
2861
|
+
kind: vn
|
|
2862
|
+
});
|
|
2863
|
+
function Kn(e) {
|
|
2864
|
+
let { dialectes: t } = e;
|
|
2865
|
+
E({
|
|
2866
|
+
dialectes: t,
|
|
2867
|
+
loadEngine: function() {
|
|
2868
|
+
return import("./sqlite-engine.js");
|
|
2869
|
+
}
|
|
2870
|
+
});
|
|
2871
|
+
}
|
|
2872
|
+
export { c as SQLITE_ERRORS, bn as adoptHubPort, yn as connectHub, Mn as listProjects, ln as registerSqliteEngine, Kn as serveSqliteEngine };
|