@ryanstark24/sfgraph-core 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyze/__tests__/audit-graph.test.js +79 -0
- package/dist/analyze/__tests__/audit-graph.test.js.map +1 -1
- package/dist/analyze/__tests__/edge-filters.test.d.ts +2 -0
- package/dist/analyze/__tests__/edge-filters.test.d.ts.map +1 -0
- package/dist/analyze/__tests__/edge-filters.test.js +66 -0
- package/dist/analyze/__tests__/edge-filters.test.js.map +1 -0
- package/dist/analyze/__tests__/findings.test.js +19 -9
- package/dist/analyze/__tests__/findings.test.js.map +1 -1
- package/dist/analyze/__tests__/governor-risks-detection.test.js +90 -0
- package/dist/analyze/__tests__/governor-risks-detection.test.js.map +1 -1
- package/dist/analyze/__tests__/security-fls-filter.test.d.ts +2 -0
- package/dist/analyze/__tests__/security-fls-filter.test.d.ts.map +1 -0
- package/dist/analyze/__tests__/security-fls-filter.test.js +23 -0
- package/dist/analyze/__tests__/security-fls-filter.test.js.map +1 -0
- package/dist/analyze/audit-graph.d.ts +26 -2
- package/dist/analyze/audit-graph.d.ts.map +1 -1
- package/dist/analyze/audit-graph.js +52 -5
- package/dist/analyze/audit-graph.js.map +1 -1
- package/dist/analyze/dependencies.d.ts +2 -2
- package/dist/analyze/dependencies.d.ts.map +1 -1
- package/dist/analyze/dependencies.js +9 -3
- package/dist/analyze/dependencies.js.map +1 -1
- package/dist/analyze/dependents.d.ts +6 -1
- package/dist/analyze/dependents.d.ts.map +1 -1
- package/dist/analyze/dependents.js +12 -2
- package/dist/analyze/dependents.js.map +1 -1
- package/dist/analyze/edge-filters.d.ts +37 -0
- package/dist/analyze/edge-filters.d.ts.map +1 -0
- package/dist/analyze/edge-filters.js +51 -0
- package/dist/analyze/edge-filters.js.map +1 -0
- package/dist/analyze/find-nodes.d.ts.map +1 -1
- package/dist/analyze/find-nodes.js.map +1 -1
- package/dist/analyze/findings.d.ts +1 -1
- package/dist/analyze/findings.d.ts.map +1 -1
- package/dist/analyze/findings.js +1 -3
- package/dist/analyze/findings.js.map +1 -1
- package/dist/analyze/populate.d.ts.map +1 -1
- package/dist/analyze/populate.js +55 -10
- package/dist/analyze/populate.js.map +1 -1
- package/dist/analyze/security.d.ts +15 -0
- package/dist/analyze/security.d.ts.map +1 -1
- package/dist/analyze/security.js +59 -3
- package/dist/analyze/security.js.map +1 -1
- package/dist/analyze/wip-impact.d.ts.map +1 -1
- package/dist/analyze/wip-impact.js +12 -2
- package/dist/analyze/wip-impact.js.map +1 -1
- package/dist/domain/metadata-category.d.ts +1 -0
- package/dist/domain/metadata-category.d.ts.map +1 -1
- package/dist/domain/metadata-category.js +1 -0
- package/dist/domain/metadata-category.js.map +1 -1
- package/dist/embedding/embed.d.ts.map +1 -1
- package/dist/embedding/embed.js +14 -1
- package/dist/embedding/embed.js.map +1 -1
- package/dist/extractors/interfaces/metadata-source.d.ts +11 -0
- package/dist/extractors/interfaces/metadata-source.d.ts.map +1 -1
- package/dist/extractors/live-org/__tests__/bulk-retrieve.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/custom-settings.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/custom-settings.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/custom-settings.test.js +79 -0
- package/dist/extractors/live-org/__tests__/custom-settings.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/extractor-enrichment.test.js +70 -8
- package/dist/extractors/live-org/__tests__/extractor-enrichment.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.js +9 -6
- package/dist/extractors/live-org/__tests__/mcd-baseline.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.js +1 -1
- package/dist/extractors/live-org/__tests__/metadata-read-batch.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.js +1 -1
- package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/pools.test.js +4 -1
- package/dist/extractors/live-org/__tests__/pools.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/rate-limit.test.js +1 -6
- package/dist/extractors/live-org/__tests__/rate-limit.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/soql-rebatch.test.js.map +1 -1
- package/dist/extractors/live-org/__tests__/stop-waiting.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/stop-waiting.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/stop-waiting.test.js +243 -0
- package/dist/extractors/live-org/__tests__/stop-waiting.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.js +40 -0
- package/dist/extractors/live-org/__tests__/watchdog-budgets.test.js.map +1 -0
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.d.ts +2 -0
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.d.ts.map +1 -0
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.js +270 -0
- package/dist/extractors/live-org/__tests__/wedge-isolation.test.js.map +1 -0
- package/dist/extractors/live-org/bulk-retrieve.d.ts +169 -0
- package/dist/extractors/live-org/bulk-retrieve.d.ts.map +1 -1
- package/dist/extractors/live-org/bulk-retrieve.js +499 -70
- package/dist/extractors/live-org/bulk-retrieve.js.map +1 -1
- package/dist/extractors/live-org/capabilities.d.ts.map +1 -1
- package/dist/extractors/live-org/capabilities.js.map +1 -1
- package/dist/extractors/live-org/extractors/__tests__/apex.test.d.ts +2 -0
- package/dist/extractors/live-org/extractors/__tests__/apex.test.d.ts.map +1 -0
- package/dist/extractors/live-org/extractors/__tests__/apex.test.js +73 -0
- package/dist/extractors/live-org/extractors/__tests__/apex.test.js.map +1 -0
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.d.ts +2 -0
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.d.ts.map +1 -0
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.js +183 -0
- package/dist/extractors/live-org/extractors/__tests__/lwc.parallel.test.js.map +1 -0
- package/dist/extractors/live-org/extractors/apex.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/apex.js +76 -51
- package/dist/extractors/live-org/extractors/apex.js.map +1 -1
- package/dist/extractors/live-org/extractors/custom-settings.d.ts +3 -0
- package/dist/extractors/live-org/extractors/custom-settings.d.ts.map +1 -0
- package/dist/extractors/live-org/extractors/custom-settings.js +66 -0
- package/dist/extractors/live-org/extractors/custom-settings.js.map +1 -0
- package/dist/extractors/live-org/extractors/flow.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/flow.js.map +1 -1
- package/dist/extractors/live-org/extractors/generic-metadata.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/generic-metadata.js.map +1 -1
- package/dist/extractors/live-org/extractors/generic-sobject.js.map +1 -1
- package/dist/extractors/live-org/extractors/lwc.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/lwc.js +81 -41
- package/dist/extractors/live-org/extractors/lwc.js.map +1 -1
- package/dist/extractors/live-org/extractors/mcd-baseline.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/mcd-baseline.js +2 -4
- package/dist/extractors/live-org/extractors/mcd-baseline.js.map +1 -1
- package/dist/extractors/live-org/extractors/object.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/object.js.map +1 -1
- package/dist/extractors/live-org/extractors/omnistudio-retrieve.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/omnistudio-retrieve.js.map +1 -1
- package/dist/extractors/live-org/extractors/omnistudio.d.ts +8 -1
- package/dist/extractors/live-org/extractors/omnistudio.d.ts.map +1 -1
- package/dist/extractors/live-org/extractors/omnistudio.js +59 -6
- package/dist/extractors/live-org/extractors/omnistudio.js.map +1 -1
- package/dist/extractors/live-org/rate-limit.d.ts +41 -15
- package/dist/extractors/live-org/rate-limit.d.ts.map +1 -1
- package/dist/extractors/live-org/rate-limit.js +185 -33
- package/dist/extractors/live-org/rate-limit.js.map +1 -1
- package/dist/extractors/live-org/vlocity/runner.d.ts.map +1 -1
- package/dist/extractors/live-org/vlocity/runner.js +30 -6
- package/dist/extractors/live-org/vlocity/runner.js.map +1 -1
- package/dist/ingest/__tests__/config-values.test.d.ts +2 -0
- package/dist/ingest/__tests__/config-values.test.d.ts.map +1 -0
- package/dist/ingest/__tests__/config-values.test.js +65 -0
- package/dist/ingest/__tests__/config-values.test.js.map +1 -0
- package/dist/ingest/__tests__/full-sync-deletion.test.js +11 -4
- package/dist/ingest/__tests__/full-sync-deletion.test.js.map +1 -1
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.d.ts +10 -0
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.d.ts.map +1 -0
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.js +251 -0
- package/dist/ingest/__tests__/live-ingest.detect-deletions-guard.test.js.map +1 -0
- package/dist/ingest/__tests__/live-ingest.test.js.map +1 -1
- package/dist/ingest/__tests__/parser-dispatch.test.d.ts +2 -0
- package/dist/ingest/__tests__/parser-dispatch.test.d.ts.map +1 -0
- package/dist/ingest/__tests__/parser-dispatch.test.js +55 -0
- package/dist/ingest/__tests__/parser-dispatch.test.js.map +1 -0
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.d.ts +2 -0
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.d.ts.map +1 -0
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.js +134 -0
- package/dist/ingest/__tests__/vlocity-dispatch-integration.test.js.map +1 -0
- package/dist/ingest/detect-deletions-guard.d.ts +45 -0
- package/dist/ingest/detect-deletions-guard.d.ts.map +1 -0
- package/dist/ingest/detect-deletions-guard.js +63 -0
- package/dist/ingest/detect-deletions-guard.js.map +1 -0
- package/dist/ingest/live-ingest.d.ts +16 -0
- package/dist/ingest/live-ingest.d.ts.map +1 -1
- package/dist/ingest/live-ingest.js +776 -549
- package/dist/ingest/live-ingest.js.map +1 -1
- package/dist/parsers/__tests__/datatransform-structured.test.d.ts +2 -0
- package/dist/parsers/__tests__/datatransform-structured.test.d.ts.map +1 -0
- package/dist/parsers/__tests__/datatransform-structured.test.js +147 -0
- package/dist/parsers/__tests__/datatransform-structured.test.js.map +1 -0
- package/dist/parsers/__tests__/edge-provenance.test.js +4 -1
- package/dist/parsers/__tests__/edge-provenance.test.js.map +1 -1
- package/dist/parsers/__tests__/lwc-bindings.test.js +6 -3
- package/dist/parsers/__tests__/lwc-bindings.test.js.map +1 -1
- package/dist/parsers/__tests__/object-inline-fields.test.js +2 -2
- package/dist/parsers/__tests__/object-inline-fields.test.js.map +1 -1
- package/dist/parsers/__tests__/omnistudio.golden.test.js +5 -6
- package/dist/parsers/__tests__/omnistudio.golden.test.js.map +1 -1
- package/dist/parsers/__tests__/vlocity.golden.test.js +9 -13
- package/dist/parsers/__tests__/vlocity.golden.test.js.map +1 -1
- package/dist/parsers/apex/__tests__/ast-extractor.test.js +64 -4
- package/dist/parsers/apex/__tests__/ast-extractor.test.js.map +1 -1
- package/dist/parsers/apex/__tests__/empty-body.test.d.ts +2 -0
- package/dist/parsers/apex/__tests__/empty-body.test.d.ts.map +1 -0
- package/dist/parsers/apex/__tests__/empty-body.test.js +40 -0
- package/dist/parsers/apex/__tests__/empty-body.test.js.map +1 -0
- package/dist/parsers/apex/__tests__/is-test-attribute.test.js +4 -2
- package/dist/parsers/apex/__tests__/is-test-attribute.test.js.map +1 -1
- package/dist/parsers/apex/__tests__/regex-arg-count.test.js +1 -1
- package/dist/parsers/apex/__tests__/regex-arg-count.test.js.map +1 -1
- package/dist/parsers/apex/__tests__/regex-inloop.test.d.ts +2 -0
- package/dist/parsers/apex/__tests__/regex-inloop.test.d.ts.map +1 -0
- package/dist/parsers/apex/__tests__/regex-inloop.test.js +70 -0
- package/dist/parsers/apex/__tests__/regex-inloop.test.js.map +1 -0
- package/dist/parsers/apex/arity-resolver.d.ts.map +1 -1
- package/dist/parsers/apex/arity-resolver.js.map +1 -1
- package/dist/parsers/apex/ast-extractor.d.ts.map +1 -1
- package/dist/parsers/apex/ast-extractor.js +33 -1
- package/dist/parsers/apex/ast-extractor.js.map +1 -1
- package/dist/parsers/apex/class.d.ts.map +1 -1
- package/dist/parsers/apex/class.js +62 -3
- package/dist/parsers/apex/class.js.map +1 -1
- package/dist/parsers/apex/trigger.d.ts.map +1 -1
- package/dist/parsers/apex/trigger.js +10 -0
- package/dist/parsers/apex/trigger.js.map +1 -1
- package/dist/parsers/flow/__tests__/invocable-resolver.test.js.map +1 -1
- package/dist/parsers/flow/invocable-resolver.d.ts.map +1 -1
- package/dist/parsers/flow/invocable-resolver.js.map +1 -1
- package/dist/parsers/generic/reflection-walker.d.ts.map +1 -1
- package/dist/parsers/generic/reflection-walker.js +1 -3
- package/dist/parsers/generic/reflection-walker.js.map +1 -1
- package/dist/parsers/lwc/html-visitor.d.ts.map +1 -1
- package/dist/parsers/lwc/html-visitor.js +3 -2
- package/dist/parsers/lwc/html-visitor.js.map +1 -1
- package/dist/parsers/lwc/js-visitor.d.ts.map +1 -1
- package/dist/parsers/lwc/js-visitor.js +6 -2
- package/dist/parsers/lwc/js-visitor.js.map +1 -1
- package/dist/parsers/object/object.d.ts.map +1 -1
- package/dist/parsers/object/object.js +1 -5
- package/dist/parsers/object/object.js.map +1 -1
- package/dist/parsers/omnistudio/data-transform.d.ts.map +1 -1
- package/dist/parsers/omnistudio/data-transform.js +39 -6
- package/dist/parsers/omnistudio/data-transform.js.map +1 -1
- package/dist/parsers/omnistudio/integration-procedure.d.ts.map +1 -1
- package/dist/parsers/omnistudio/integration-procedure.js +3 -2
- package/dist/parsers/omnistudio/integration-procedure.js.map +1 -1
- package/dist/parsers/omnistudio/overlap-detector.d.ts.map +1 -1
- package/dist/parsers/omnistudio/overlap-detector.js +2 -9
- package/dist/parsers/omnistudio/overlap-detector.js.map +1 -1
- package/dist/parsers/omnistudio/process.d.ts.map +1 -1
- package/dist/parsers/omnistudio/process.js +3 -2
- package/dist/parsers/omnistudio/process.js.map +1 -1
- package/dist/parsers/omnistudio/ui-card.d.ts.map +1 -1
- package/dist/parsers/omnistudio/ui-card.js +3 -2
- package/dist/parsers/omnistudio/ui-card.js.map +1 -1
- package/dist/parsers/rules/custom-metadata-type.yml +7 -0
- package/dist/parsers/rules/custom-setting.yml +24 -0
- package/dist/parsers/vlocity/common.d.ts +16 -0
- package/dist/parsers/vlocity/common.d.ts.map +1 -1
- package/dist/parsers/vlocity/common.js +62 -0
- package/dist/parsers/vlocity/common.js.map +1 -1
- package/dist/parsers/vlocity/data-raptor.d.ts.map +1 -1
- package/dist/parsers/vlocity/data-raptor.js +43 -14
- package/dist/parsers/vlocity/data-raptor.js.map +1 -1
- package/dist/render/__tests__/sarif.test.js +1 -4
- package/dist/render/__tests__/sarif.test.js.map +1 -1
- package/dist/render/sarif.d.ts.map +1 -1
- package/dist/render/sarif.js +1 -3
- package/dist/render/sarif.js.map +1 -1
- package/dist/storage/__tests__/analysis-tables-migration.test.js +1 -1
- package/dist/storage/__tests__/graph-store.test.js +13 -0
- package/dist/storage/__tests__/graph-store.test.js.map +1 -1
- package/dist/storage/__tests__/migrations.test.js +4 -4
- package/dist/storage/__tests__/rename-stability.test.js.map +1 -1
- package/dist/storage/__tests__/sync-generation.test.d.ts +2 -0
- package/dist/storage/__tests__/sync-generation.test.d.ts.map +1 -0
- package/dist/storage/__tests__/sync-generation.test.js +159 -0
- package/dist/storage/__tests__/sync-generation.test.js.map +1 -0
- package/dist/storage/interfaces.d.ts +57 -0
- package/dist/storage/interfaces.d.ts.map +1 -1
- package/dist/storage/sqlite/graph-store.d.ts +15 -1
- package/dist/storage/sqlite/graph-store.d.ts.map +1 -1
- package/dist/storage/sqlite/graph-store.js +78 -0
- package/dist/storage/sqlite/graph-store.js.map +1 -1
- package/dist/storage/sqlite/migrations.d.ts.map +1 -1
- package/dist/storage/sqlite/migrations.js +19 -0
- package/dist/storage/sqlite/migrations.js.map +1 -1
- package/dist/storage/sqlite/rename-stability.d.ts +1 -1
- package/dist/storage/sqlite/rename-stability.d.ts.map +1 -1
- package/dist/storage/sqlite/rename-stability.js +2 -6
- package/dist/storage/sqlite/rename-stability.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { mkdtempSync, rmSync } from "node:fs";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { asOrgId } from "@ryanstark24/sfgraph-shared";
|
|
5
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
6
|
+
import { SqliteGraphStore } from "../sqlite/graph-store.js";
|
|
7
|
+
// W1.5-08: sync-generation counter + in-progress flag tests. These all
|
|
8
|
+
// exercise the additive ALTER TABLE migration on `_sfgraph_orgs` plus the
|
|
9
|
+
// four lifecycle helpers (markSyncStarted / markSyncComplete / markSyncFailed
|
|
10
|
+
// / getSyncStatus).
|
|
11
|
+
let workDir;
|
|
12
|
+
let store;
|
|
13
|
+
const ORG = asOrgId("org-w1508");
|
|
14
|
+
function freshOrg() {
|
|
15
|
+
return {
|
|
16
|
+
id: ORG,
|
|
17
|
+
alias: "DevHub",
|
|
18
|
+
instanceUrl: "https://example.my.salesforce.com",
|
|
19
|
+
apiVersion: "62.0",
|
|
20
|
+
createdAt: 1,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
beforeEach(async () => {
|
|
24
|
+
workDir = mkdtempSync(path.join(tmpdir(), "sfg-syncgen-"));
|
|
25
|
+
store = new SqliteGraphStore({
|
|
26
|
+
dbPath: path.join(workDir, "g.sqlite"),
|
|
27
|
+
backupDir: path.join(workDir, "bkp"),
|
|
28
|
+
});
|
|
29
|
+
await store.init();
|
|
30
|
+
store.upsertOrg(freshOrg());
|
|
31
|
+
});
|
|
32
|
+
afterEach(async () => {
|
|
33
|
+
await store.close();
|
|
34
|
+
rmSync(workDir, { recursive: true, force: true });
|
|
35
|
+
});
|
|
36
|
+
describe("W1.5-08 sync-generation lifecycle", () => {
|
|
37
|
+
it("default state for a freshly-upserted org is (0, false, null, null)", () => {
|
|
38
|
+
const s = store.getSyncStatus(ORG);
|
|
39
|
+
expect(s).toEqual({
|
|
40
|
+
generation: 0,
|
|
41
|
+
in_progress: false,
|
|
42
|
+
started_at: null,
|
|
43
|
+
last_sync_at: null,
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
it("markSyncStarted sets in_progress=true and started_at, generation stays 0", () => {
|
|
47
|
+
const iso = new Date("2025-01-01T00:00:00Z").toISOString();
|
|
48
|
+
store.markSyncStarted(ORG, iso);
|
|
49
|
+
const s = store.getSyncStatus(ORG);
|
|
50
|
+
expect(s.in_progress).toBe(true);
|
|
51
|
+
expect(s.started_at).toBe(iso);
|
|
52
|
+
expect(s.generation).toBe(0);
|
|
53
|
+
expect(s.last_sync_at).toBeNull();
|
|
54
|
+
});
|
|
55
|
+
it("markSyncComplete increments generation, clears in_progress and started_at, updates last_sync_at", () => {
|
|
56
|
+
const startIso = "2025-01-01T00:00:00Z";
|
|
57
|
+
const endIso = "2025-01-01T00:05:00Z";
|
|
58
|
+
store.markSyncStarted(ORG, startIso);
|
|
59
|
+
store.markSyncComplete(ORG, endIso);
|
|
60
|
+
const s = store.getSyncStatus(ORG);
|
|
61
|
+
expect(s.generation).toBe(1);
|
|
62
|
+
expect(s.in_progress).toBe(false);
|
|
63
|
+
expect(s.started_at).toBeNull();
|
|
64
|
+
expect(s.last_sync_at).toBe(Date.parse(endIso));
|
|
65
|
+
});
|
|
66
|
+
it("markSyncFailed clears in_progress and started_at but does NOT increment generation", () => {
|
|
67
|
+
store.markSyncStarted(ORG, "2025-01-01T00:00:00Z");
|
|
68
|
+
store.markSyncFailed(ORG);
|
|
69
|
+
const s = store.getSyncStatus(ORG);
|
|
70
|
+
expect(s.generation).toBe(0);
|
|
71
|
+
expect(s.in_progress).toBe(false);
|
|
72
|
+
expect(s.started_at).toBeNull();
|
|
73
|
+
expect(s.last_sync_at).toBeNull();
|
|
74
|
+
});
|
|
75
|
+
it("getSyncStatus returns combined state at each lifecycle stage", () => {
|
|
76
|
+
// Pre-start
|
|
77
|
+
expect(store.getSyncStatus(ORG).in_progress).toBe(false);
|
|
78
|
+
// In flight
|
|
79
|
+
store.markSyncStarted(ORG, "2025-01-01T00:00:00Z");
|
|
80
|
+
expect(store.getSyncStatus(ORG)).toMatchObject({
|
|
81
|
+
generation: 0,
|
|
82
|
+
in_progress: true,
|
|
83
|
+
started_at: "2025-01-01T00:00:00Z",
|
|
84
|
+
});
|
|
85
|
+
// Complete
|
|
86
|
+
store.markSyncComplete(ORG, "2025-01-01T00:01:00Z");
|
|
87
|
+
expect(store.getSyncStatus(ORG)).toMatchObject({
|
|
88
|
+
generation: 1,
|
|
89
|
+
in_progress: false,
|
|
90
|
+
started_at: null,
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
it("generation is monotonic across three successful ingests (0 -> 1 -> 2 -> 3)", () => {
|
|
94
|
+
expect(store.getSyncStatus(ORG).generation).toBe(0);
|
|
95
|
+
for (let i = 1; i <= 3; i += 1) {
|
|
96
|
+
store.markSyncStarted(ORG, new Date(1_700_000_000_000 + i).toISOString());
|
|
97
|
+
store.markSyncComplete(ORG, new Date(1_700_000_000_000 + i * 1000).toISOString());
|
|
98
|
+
expect(store.getSyncStatus(ORG).generation).toBe(i);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
it("failed ingest does not increment generation even when sandwiched between successes", () => {
|
|
102
|
+
store.markSyncStarted(ORG, "2025-01-01T00:00:00Z");
|
|
103
|
+
store.markSyncComplete(ORG, "2025-01-01T00:01:00Z");
|
|
104
|
+
expect(store.getSyncStatus(ORG).generation).toBe(1);
|
|
105
|
+
// Failed in the middle — generation should still be 1.
|
|
106
|
+
store.markSyncStarted(ORG, "2025-01-02T00:00:00Z");
|
|
107
|
+
store.markSyncFailed(ORG);
|
|
108
|
+
expect(store.getSyncStatus(ORG).generation).toBe(1);
|
|
109
|
+
// Next success brings us to 2 (not 3).
|
|
110
|
+
store.markSyncStarted(ORG, "2025-01-03T00:00:00Z");
|
|
111
|
+
store.markSyncComplete(ORG, "2025-01-03T00:01:00Z");
|
|
112
|
+
expect(store.getSyncStatus(ORG).generation).toBe(2);
|
|
113
|
+
});
|
|
114
|
+
it("getSyncStatus on an unknown org returns the zero-defaults block", () => {
|
|
115
|
+
const s = store.getSyncStatus(asOrgId("does-not-exist"));
|
|
116
|
+
expect(s).toEqual({
|
|
117
|
+
generation: 0,
|
|
118
|
+
in_progress: false,
|
|
119
|
+
started_at: null,
|
|
120
|
+
last_sync_at: null,
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
it("migration is idempotent — reopening an existing DB does not error", async () => {
|
|
124
|
+
// Drive state into the DB, close, reopen via a fresh store.
|
|
125
|
+
store.markSyncStarted(ORG, "2025-01-01T00:00:00Z");
|
|
126
|
+
store.markSyncComplete(ORG, "2025-01-01T00:01:00Z");
|
|
127
|
+
const dbPath = path.join(workDir, "g.sqlite");
|
|
128
|
+
await store.close();
|
|
129
|
+
const reopened = new SqliteGraphStore({
|
|
130
|
+
dbPath,
|
|
131
|
+
backupDir: path.join(workDir, "bkp"),
|
|
132
|
+
});
|
|
133
|
+
await reopened.init();
|
|
134
|
+
const s = reopened.getSyncStatus(ORG);
|
|
135
|
+
expect(s.generation).toBe(1);
|
|
136
|
+
expect(s.in_progress).toBe(false);
|
|
137
|
+
await reopened.close();
|
|
138
|
+
// Reassign so afterEach's close() is a no-op on the closed handle.
|
|
139
|
+
store = new SqliteGraphStore({ dbPath, backupDir: path.join(workDir, "bkp") });
|
|
140
|
+
await store.init();
|
|
141
|
+
});
|
|
142
|
+
it("markSyncComplete uses a transaction — readers never see partial state", () => {
|
|
143
|
+
// We can't truly observe a partial state in single-threaded better-sqlite3,
|
|
144
|
+
// but we can at least assert that all four mutations land together.
|
|
145
|
+
store.markSyncStarted(ORG, "2025-01-01T00:00:00Z");
|
|
146
|
+
store.markSyncComplete(ORG, "2025-01-01T00:01:00Z");
|
|
147
|
+
const s = store.getSyncStatus(ORG);
|
|
148
|
+
// All four mutations must have applied — if any one didn't, this fails.
|
|
149
|
+
expect(s.generation).toBe(1);
|
|
150
|
+
expect(s.in_progress).toBe(false);
|
|
151
|
+
expect(s.started_at).toBeNull();
|
|
152
|
+
expect(s.last_sync_at).toBe(Date.parse("2025-01-01T00:01:00Z"));
|
|
153
|
+
});
|
|
154
|
+
it("invalid ISO timestamps to markSyncStarted / markSyncComplete throw", () => {
|
|
155
|
+
expect(() => store.markSyncStarted(ORG, "not-an-iso")).toThrow();
|
|
156
|
+
expect(() => store.markSyncComplete(ORG, "")).toThrow();
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=sync-generation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-generation.test.js","sourceRoot":"","sources":["../../../src/storage/__tests__/sync-generation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,12 +29,65 @@ export interface SnippetUpsertResult {
|
|
|
29
29
|
updated: boolean;
|
|
30
30
|
unchanged: boolean;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* W1.5-08: combined sync-state snapshot read by MCP tool responses so
|
|
34
|
+
* concurrent readers can detect "the graph is currently being rewritten"
|
|
35
|
+
* without requiring a global ingest transaction or snapshot isolation.
|
|
36
|
+
*
|
|
37
|
+
* - `generation` is monotonic across successful ingests. It does NOT
|
|
38
|
+
* change when an ingest fails (markSyncFailed leaves it alone).
|
|
39
|
+
* - `in_progress` is true while an ingest holds the org (between
|
|
40
|
+
* markSyncStarted and markSyncComplete/Failed).
|
|
41
|
+
* - `started_at` is the ISO timestamp of the in-flight ingest, or null
|
|
42
|
+
* when no ingest is running.
|
|
43
|
+
* - `last_sync_at` is the unix-ms timestamp of the last successful
|
|
44
|
+
* completion (the existing `last_synced_at` column).
|
|
45
|
+
*/
|
|
46
|
+
export interface SyncStatus {
|
|
47
|
+
generation: number;
|
|
48
|
+
in_progress: boolean;
|
|
49
|
+
started_at: string | null;
|
|
50
|
+
last_sync_at: number | null;
|
|
51
|
+
}
|
|
32
52
|
export interface GraphStore {
|
|
33
53
|
init(): Promise<void>;
|
|
34
54
|
close(): Promise<void>;
|
|
35
55
|
upsertOrg(org: Org): void;
|
|
36
56
|
getOrg(id: OrgId): Org | null;
|
|
37
57
|
touchSync(orgId: OrgId, iso: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* W1.5-08 lifecycle: flag the start of an ingest. Sets `sync_in_progress = 1`
|
|
60
|
+
* and `sync_started_at = NOW_ISO`. Does NOT increment `sync_generation`
|
|
61
|
+
* yet — the counter only advances on successful completion via
|
|
62
|
+
* `markSyncComplete`. Called from the very top of the ingest function so
|
|
63
|
+
* concurrent MCP readers see `staleness.in_progress: true` for the entire
|
|
64
|
+
* sync duration.
|
|
65
|
+
*/
|
|
66
|
+
markSyncStarted(orgId: OrgId, startedAtIso: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* W1.5-08 lifecycle: flag a successful ingest completion. In one
|
|
69
|
+
* transaction: increments `sync_generation` by 1, clears
|
|
70
|
+
* `sync_in_progress`, clears `sync_started_at`, and updates
|
|
71
|
+
* `last_synced_at` to the supplied completion timestamp. Pairs with
|
|
72
|
+
* `markSyncStarted`; intentionally distinct from `markSyncFailed`
|
|
73
|
+
* because the generation counter must only advance on success.
|
|
74
|
+
*/
|
|
75
|
+
markSyncComplete(orgId: OrgId, completedAtIso: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* W1.5-08 lifecycle: flag an ingest that threw. Clears
|
|
78
|
+
* `sync_in_progress` and `sync_started_at` but leaves both
|
|
79
|
+
* `sync_generation` and `last_synced_at` unchanged so failed runs do
|
|
80
|
+
* not look like fresh data to readers.
|
|
81
|
+
*/
|
|
82
|
+
markSyncFailed(orgId: OrgId): void;
|
|
83
|
+
/**
|
|
84
|
+
* W1.5-08: combined sync-state read used by the MCP tool dispatcher to
|
|
85
|
+
* attach a `staleness` block on every response. Returns sensible
|
|
86
|
+
* defaults (generation=0, in_progress=false, both timestamps null) when
|
|
87
|
+
* the org row does not exist yet so callers do not need to special-case
|
|
88
|
+
* "first ingest hasn't run".
|
|
89
|
+
*/
|
|
90
|
+
getSyncStatus(orgId: OrgId): SyncStatus;
|
|
38
91
|
deleteNode(orgId: OrgId, qname: QualifiedName): void;
|
|
39
92
|
deleteEdgesFor(orgId: OrgId, qname: QualifiedName): void;
|
|
40
93
|
mergeNodes(facts: NodeFact[]): MergeResult;
|
|
@@ -57,6 +110,10 @@ export interface GraphStore {
|
|
|
57
110
|
* find-nodes glob matching to enumerate label tables. */
|
|
58
111
|
listAllLabels(): string[];
|
|
59
112
|
countNodes(orgId: OrgId): number;
|
|
113
|
+
/** Count nodes of a given label for `orgId`. Returns 0 if the label table
|
|
114
|
+
* has not yet been created. Used by the W1.5-07 detect-deletions guard
|
|
115
|
+
* to compute per-label drop ratios before mass-wiping nodes. */
|
|
116
|
+
countNodesByLabel(orgId: OrgId, label: string): number;
|
|
60
117
|
countEdges(orgId: OrgId): number;
|
|
61
118
|
transaction<T>(fn: () => T): T;
|
|
62
119
|
upsertSnippet(rec: SnippetRecord): SnippetUpsertResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/storage/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAErF,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAEtD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACrD,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACzD,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAC3C,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;IAC3C,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC7D,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IAC1E,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAC/E,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAC7E;;6FAEyF;IACzF,kBAAkB,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/storage/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { OrgId, QualifiedName } from "@ryanstark24/sfgraph-shared";
|
|
2
2
|
import type { EdgeFact, NodeFact, Org, RelType } from "../../domain/index.js";
|
|
3
|
-
import type { BetterSqlite3Database, GraphStore, MergeResult, SnippetRecord, SnippetUpsertResult } from "../interfaces.js";
|
|
3
|
+
import type { BetterSqlite3Database, GraphStore, MergeResult, SnippetRecord, SnippetUpsertResult, SyncStatus } from "../interfaces.js";
|
|
4
4
|
export interface SqliteGraphStoreOptions {
|
|
5
5
|
dbPath: string;
|
|
6
6
|
backupDir?: string;
|
|
@@ -34,6 +34,10 @@ export declare class SqliteGraphStore implements GraphStore {
|
|
|
34
34
|
upsertOrg(org: Org): void;
|
|
35
35
|
getOrg(id: OrgId): Org | null;
|
|
36
36
|
touchSync(orgId: OrgId, iso: string): void;
|
|
37
|
+
markSyncStarted(orgId: OrgId, startedAtIso: string): void;
|
|
38
|
+
markSyncComplete(orgId: OrgId, completedAtIso: string): void;
|
|
39
|
+
markSyncFailed(orgId: OrgId): void;
|
|
40
|
+
getSyncStatus(orgId: OrgId): SyncStatus;
|
|
37
41
|
deleteNode(orgId: OrgId, qname: QualifiedName): void;
|
|
38
42
|
deleteEdgesFor(orgId: OrgId, qname: QualifiedName): void;
|
|
39
43
|
mergeNodes(facts: NodeFact[]): MergeResult;
|
|
@@ -65,6 +69,16 @@ export declare class SqliteGraphStore implements GraphStore {
|
|
|
65
69
|
*/
|
|
66
70
|
listAllLabels(): string[];
|
|
67
71
|
countNodes(orgId: OrgId): number;
|
|
72
|
+
/**
|
|
73
|
+
* Count nodes of `label` for `orgId`. Returns 0 if the label table has
|
|
74
|
+
* not been created yet. Used by the W1.5-07 detect-deletions guard.
|
|
75
|
+
*
|
|
76
|
+
* Note: a similar helper `countNodes(orgId)` already exists for whole-org
|
|
77
|
+
* counts, but it sums across all labels. The guard needs per-label
|
|
78
|
+
* precision to compute drop ratios per deletion-target, so a dedicated
|
|
79
|
+
* helper is added rather than overloading countNodes.
|
|
80
|
+
*/
|
|
81
|
+
countNodesByLabel(orgId: OrgId, label: string): number;
|
|
68
82
|
countEdges(orgId: OrgId): number;
|
|
69
83
|
transaction<T>(fn: () => T): T;
|
|
70
84
|
upsertSnippet(rec: SnippetRecord): SnippetUpsertResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-store.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/graph-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAU,MAAM,6BAA6B,CAAC;AAEhF,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EACV,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,aAAa,EAEb,mBAAmB,
|
|
1
|
+
{"version":3,"file":"graph-store.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/graph-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -224,6 +224,68 @@ export class SqliteGraphStore {
|
|
|
224
224
|
}
|
|
225
225
|
this.db.prepare("UPDATE _sfgraph_orgs SET last_synced_at = ? WHERE id = ?").run(ts, orgId);
|
|
226
226
|
}
|
|
227
|
+
// ─── W1.5-08: sync-generation lifecycle ────────────────────────────────────
|
|
228
|
+
// Three helpers (started / complete / failed) plus a getter. The shape is
|
|
229
|
+
// designed so concurrent MCP readers can answer "is the graph being
|
|
230
|
+
// rewritten right now?" cheaply (one SELECT) without taking a global lock.
|
|
231
|
+
// Generation only advances on success — failed ingests are invisible to
|
|
232
|
+
// the counter, matching how readers would expect "the graph has been
|
|
233
|
+
// updated" to be a synonym of "an ingest completed cleanly".
|
|
234
|
+
markSyncStarted(orgId, startedAtIso) {
|
|
235
|
+
// Validate the ISO early — better to fail loud at start than to write a
|
|
236
|
+
// garbage timestamp and confuse the staleness block readers see.
|
|
237
|
+
if (!Number.isFinite(Date.parse(startedAtIso))) {
|
|
238
|
+
throw new StorageError(`markSyncStarted: invalid ISO timestamp ${JSON.stringify(startedAtIso)}`);
|
|
239
|
+
}
|
|
240
|
+
this.db
|
|
241
|
+
.prepare("UPDATE _sfgraph_orgs SET sync_in_progress = 1, sync_started_at = ? WHERE id = ?")
|
|
242
|
+
.run(startedAtIso, orgId);
|
|
243
|
+
}
|
|
244
|
+
markSyncComplete(orgId, completedAtIso) {
|
|
245
|
+
const ts = Date.parse(completedAtIso);
|
|
246
|
+
if (!Number.isFinite(ts)) {
|
|
247
|
+
throw new StorageError(`markSyncComplete: invalid ISO timestamp ${JSON.stringify(completedAtIso)}`);
|
|
248
|
+
}
|
|
249
|
+
// Single transaction so concurrent readers never observe a half-applied
|
|
250
|
+
// state (e.g. generation incremented but in_progress still 1).
|
|
251
|
+
const apply = this.db.transaction(() => {
|
|
252
|
+
this.db
|
|
253
|
+
.prepare(`UPDATE _sfgraph_orgs
|
|
254
|
+
SET sync_generation = sync_generation + 1,
|
|
255
|
+
sync_in_progress = 0,
|
|
256
|
+
sync_started_at = NULL,
|
|
257
|
+
last_synced_at = ?
|
|
258
|
+
WHERE id = ?`)
|
|
259
|
+
.run(ts, orgId);
|
|
260
|
+
});
|
|
261
|
+
apply();
|
|
262
|
+
}
|
|
263
|
+
markSyncFailed(orgId) {
|
|
264
|
+
// Generation deliberately untouched — a failed ingest is not a new
|
|
265
|
+
// version of the graph, so readers polling the counter should not be
|
|
266
|
+
// tricked into thinking data refreshed.
|
|
267
|
+
this.db
|
|
268
|
+
.prepare("UPDATE _sfgraph_orgs SET sync_in_progress = 0, sync_started_at = NULL WHERE id = ?")
|
|
269
|
+
.run(orgId);
|
|
270
|
+
}
|
|
271
|
+
getSyncStatus(orgId) {
|
|
272
|
+
const row = this.db
|
|
273
|
+
.prepare(`SELECT sync_generation, sync_in_progress, sync_started_at, last_synced_at
|
|
274
|
+
FROM _sfgraph_orgs WHERE id = ?`)
|
|
275
|
+
.get(orgId);
|
|
276
|
+
if (!row) {
|
|
277
|
+
// Org row not present yet (e.g. tool fired against an MCP context
|
|
278
|
+
// whose DB was just provisioned). Return sane defaults so callers
|
|
279
|
+
// don't have to null-check every field.
|
|
280
|
+
return { generation: 0, in_progress: false, started_at: null, last_sync_at: null };
|
|
281
|
+
}
|
|
282
|
+
return {
|
|
283
|
+
generation: row.sync_generation ?? 0,
|
|
284
|
+
in_progress: (row.sync_in_progress ?? 0) === 1,
|
|
285
|
+
started_at: row.sync_started_at ?? null,
|
|
286
|
+
last_sync_at: row.last_synced_at ?? null,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
227
289
|
deleteNode(orgId, qname) {
|
|
228
290
|
const apply = this.db.transaction(() => {
|
|
229
291
|
const idx = this.db
|
|
@@ -485,6 +547,22 @@ export class SqliteGraphStore {
|
|
|
485
547
|
}
|
|
486
548
|
return total;
|
|
487
549
|
}
|
|
550
|
+
/**
|
|
551
|
+
* Count nodes of `label` for `orgId`. Returns 0 if the label table has
|
|
552
|
+
* not been created yet. Used by the W1.5-07 detect-deletions guard.
|
|
553
|
+
*
|
|
554
|
+
* Note: a similar helper `countNodes(orgId)` already exists for whole-org
|
|
555
|
+
* counts, but it sums across all labels. The guard needs per-label
|
|
556
|
+
* precision to compute drop ratios per deletion-target, so a dedicated
|
|
557
|
+
* helper is added rather than overloading countNodes.
|
|
558
|
+
*/
|
|
559
|
+
countNodesByLabel(orgId, label) {
|
|
560
|
+
const tbl = this.nodeLabelCache.get(label);
|
|
561
|
+
if (!tbl)
|
|
562
|
+
return 0;
|
|
563
|
+
const row = this.db.prepare(`SELECT COUNT(*) AS c FROM ${tbl} WHERE org_id = ?`).get(orgId);
|
|
564
|
+
return row?.c ?? 0;
|
|
565
|
+
}
|
|
488
566
|
countEdges(orgId) {
|
|
489
567
|
let total = 0;
|
|
490
568
|
for (const tbl of this.edgeRelCache.values()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-store.js","sourceRoot":"","sources":["../../../src/storage/sqlite/graph-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph-store.js","sourceRoot":"","sources":["../../../src/storage/sqlite/graph-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE/F,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAUhG,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA4B9D,SAAS,SAAS,CAAC,GAAe,EAAE,KAAa;IAC/C,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1B,aAAa,EAAE,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;QAClD,KAAK;QACL,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAA4B;QACjE,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QACrC,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,UAAU,EAAE,GAAG,CAAC,YAAY;QAC5B,cAAc,EAAE,GAAG,CAAC,gBAAgB;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAe,EAAE,OAAgB;IAClD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1B,gBAAgB,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;QAChD,gBAAgB,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;QAChD,OAAO;QACP,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAA4B;QACjE,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,UAAU,EAAE,GAAG,CAAC,YAAY;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,gBAAgB;IAClB,EAAE,CAAwB;IAClB,MAAM,CAAU;IAChB,IAAI,CAA0B;IACvC,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;IAChD,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;IAC9C,WAAW,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,IAA6B;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG;oBAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,OAAO;oBAAE,MAAM,OAAO,CAAC;gBAC3B,MAAM,CAAC,CAAC;YACV,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvC,qEAAqE;QACrE,uEAAuE;QACvE,qEAAqE;QACrE,mEAAmE;QACnE,gEAAgE;QAChE,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAC3C,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,CAAC,SAAS;YACnB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU;gBAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE;YACtD,SAAS;YACT,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,4DAA4D;gBAC5D,+DAA+D;gBAC/D,qDAAqD;gBACrD,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,OAAO,CAAC,oDAAoD,CAAC;aAC7D,GAAG,EAAkD,CAAC;QACzD,KAAK,MAAM,GAAG,IAAI,MAAM;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE;aAClB,OAAO,CAAC,sDAAsD,CAAC;aAC/D,GAAG,EAAqD,CAAC;QAC5D,KAAK,MAAM,GAAG,IAAI,KAAK;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/E,CAAC;IAEO,eAAe,CAAC,KAAa;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;mCACkB,GAAG;;;;;;;;;;mCAUH,GAAG,WAAW,GAAG;KAC/C,CAAC,CAAC;QACH,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,4FAA4F,CAC7F;aACA,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;mCACkB,GAAG;;;;;;;;;mCASH,GAAG,WAAW,GAAG;KAC/C,CAAC,CAAC;QACH,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,8FAA8F,CAC/F;aACA,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,CAAC,GAAQ;QAChB,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;kIAE0H,CAC3H;aACA,GAAG,CACF,GAAG,CAAC,EAAE,EACN,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,YAAY,IAAI,IAAI,CACzB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,EAAS;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN,yGAAyG,CAC1G;aACA,GAAG,CAAC,EAAE,CASI,CAAC;QACd,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,GAAG,GAAQ;YACf,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;SAC1B,CAAC;QACF,IAAI,GAAG,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,CAAC,KAAY,EAAE,GAAW;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,YAAY,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7F,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,oEAAoE;IACpE,2EAA2E;IAC3E,wEAAwE;IACxE,qEAAqE;IACrE,6DAA6D;IAE7D,eAAe,CAAC,KAAY,EAAE,YAAoB;QAChD,wEAAwE;QACxE,iEAAiE;QACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,YAAY,CACpB,0CAA0C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CACzE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,iFAAiF,CAAC;aAC1F,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,KAAY,EAAE,cAAsB;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,YAAY,CACpB,2CAA2C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAC5E,CAAC;QACJ,CAAC;QACD,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;;;wBAKc,CACf;iBACA,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,CAAC;IACV,CAAC;IAED,cAAc,CAAC,KAAY;QACzB,mEAAmE;QACnE,qEAAqE;QACrE,wCAAwC;QACxC,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,oFAAoF,CAAC;aAC7F,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,KAAY;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;2CACmC,CACpC;aACA,GAAG,CAAC,KAAK,CAOC,CAAC;QACd,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,kEAAkE;YAClE,kEAAkE;YAClE,wCAAwC;YACxC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACrF,CAAC;QACD,OAAO;YACL,UAAU,EAAE,GAAG,CAAC,eAAe,IAAI,CAAC;YACpC,WAAW,EAAE,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,KAAK,CAAC;YAC9C,UAAU,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI;YACvC,YAAY,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;SACzC,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,KAAY,EAAE,KAAoB;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;iBAChB,OAAO,CAAC,+EAA+E,CAAC;iBACxF,GAAG,CAAC,KAAK,EAAE,KAAK,CAAkC,CAAC;YACtD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,EAAE;yBACJ,OAAO,CAAC,eAAe,GAAG,0CAA0C,CAAC;yBACrE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,EAAE;qBACJ,OAAO,CAAC,yEAAyE,CAAC;qBAClF,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,CAAC;IACV,CAAC;IAED,cAAc,CAAC,KAAY,EAAE,KAAoB;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC7C,IAAI,CAAC,EAAE;qBACJ,OAAO,CAAC,eAAe,GAAG,wDAAwD,CAAC;qBACnF,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,CAAC;IACV,CAAC;IAED,UAAU,CAAC,KAAiB;QAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACrC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAChC,0CAA0C,GAAG,0CAA0C,CACxF,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAChC,eAAe,GAAG;wCACY,CAC/B,CAAC;gBACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACvC,UAAU,GAAG,sHAAsH,CACpI,CAAC;gBACF,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACzC,UAAU,GAAG,+DAA+D,CAC7E,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC/B;kFACwE,CACzE,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAEjD,CAAC;oBACd,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,EAClB,SAAS,EACT,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,cAAc,CACpB,CAAC;wBACF,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;wBACrD,QAAQ,IAAI,CAAC,CAAC;oBAChB,CAAC;yBAAM,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpD,iBAAiB,CAAC,GAAG,CACnB,SAAS,EACT,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,CACnB,CAAC;wBACF,OAAO,IAAI,CAAC,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;wBACzE,SAAS,IAAI,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,KAAiB;QAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACrC,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAChC,yCAAyC,GAAG,uDAAuD,CACpG,CAAC;gBACF,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAChC,eAAe,GAAG,mGAAmG,CACtH,CAAC;gBACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACvC,UAAU,GAAG,4FAA4F,CAC1G,CAAC;gBACF,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACpC,UAAU,GAAG,4EAA4E,CAC1F,CAAC;gBACF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAC7B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,gBAAgB,CACuC,CAAC;oBAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,gBAAgB,EACrB,SAAS,EACT,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,CAChB,CAAC;wBACF,QAAQ,IAAI,CAAC,CAAC;oBAChB,CAAC;yBAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;wBAC7C,iBAAiB,CAAC,GAAG,CACnB,SAAS,EACT,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,gBAAgB,CACtB,CAAC;wBACF,OAAO,IAAI,CAAC,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,cAAc,CAAC,GAAG,CAChB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,gBAAgB,CACtB,CAAC;wBACF,SAAS,IAAI,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,KAAY,EAAE,KAAoB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,+EAA+E,CAAC;aACxF,GAAG,CAAC,KAAK,EAAE,KAAK,CAAkC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN,8GAA8G,GAAG,0CAA0C,CAC5J;aACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAA2B,CAAC;QAC/C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,gBAAgB,CAAC,KAAY,EAAE,KAAa,EAAE,KAAc;QAC1D,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,8GAA8G,GAAG,oBAAoB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/L,MAAM,MAAM,GAAc,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAiB,CAAC;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,KAAY,EAAE,GAAkB,EAAE,OAAiB;QAC/D,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CACN,qFAAqF,GAAG,qCAAqC,CAC9H;iBACA,GAAG,CAAC,KAAK,EAAE,GAAG,CAAiB,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAY,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,WAAW,CAAC,KAAY,EAAE,GAAkB,EAAE,OAAiB;QAC7D,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CACN,qFAAqF,GAAG,qCAAqC,CAC9H;iBACA,GAAG,CAAC,KAAK,EAAE,GAAG,CAAiB,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAY,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kBAAkB,CAAC,KAAY,EAAE,OAAe,EAAE,OAAiB,EAAE,KAAc;QACjF,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBAAE,MAAM;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,GAAG,GACP,SAAS,GAAG,CAAC;gBACX,CAAC,CAAC,qFAAqF,GAAG,gDAAgD,SAAS,EAAE;gBACrJ,CAAC,CAAC,qFAAqF,GAAG,wCAAwC,CAAC;YACvI,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAiB,CAAC;YACtE,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAY,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,UAAU,CAAC,KAAY,EAAE,GAAkB,EAAE,GAAkB,EAAE,OAAgB;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,eAAe,GAAG,uDAAuD,CAAC;aAClF,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAY,EAAE,KAAc;QAC5C,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAClE,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBAAE,MAAM;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CACN;kBACQ,GAAG;;;;aAIR,WAAW,EAAE,CACjB;iBACA,GAAG,CAAC,KAAK,CAAiB,CAAC;YAC9B,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAkB,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAY;QACxB,MAAM,GAAG,GAAoB,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,OAAO,CAAC,8BAA8B,GAAG,mBAAmB,CAAC;iBAC7D,GAAG,CAAC,KAAK,CAAsC,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAA+B,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,KAAY;QACrB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6BAA6B,GAAG,mBAAmB,CAAC,CAAC,GAAG,CAAC,KAAK,CAE7E,CAAC;YACd,KAAK,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACH,iBAAiB,CAAC,KAAY,EAAE,KAAa;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6BAA6B,GAAG,mBAAmB,CAAC,CAAC,GAAG,CAAC,KAAK,CAE7E,CAAC;QACd,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,KAAY;QACrB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6BAA6B,GAAG,mBAAmB,CAAC,CAAC,GAAG,CAAC,KAAK,CAE7E,CAAC;YACd,KAAK,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW,CAAI,EAAW;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,GAAkB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,OAAO,CAAC,mFAAmF,CAAC;aAC5F,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAwC,CAAC;QAC5E,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC;YACxD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC9D,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,EAAE;iBACJ,OAAO,CACN;;;mDAGyC,CAC1C;iBACA,GAAG,CACF,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,SAAS,IAAI,IAAI,EACrB,GAAG,CAAC,OAAO,IAAI,IAAI,EACnB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,aAAa,CAClB,CAAC;YACJ,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;4CAEoC,CACrC;aACA,GAAG,CACF,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,aAAa,EACjB,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,SAAS,IAAI,IAAI,EACrB,GAAG,CAAC,OAAO,IAAI,IAAI,EACnB,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,cAAc,IAAI,IAAI,EAC1B,GAAG,CAAC,WAAW,IAAI,IAAI,CACxB,CAAC;QACJ,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IAED,UAAU,CAAC,KAAY,EAAE,KAAoB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;0EAEkE,CACnE;aACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAYN,CAAC;QACd,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,GAAG,GAAkB;YACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAC1B,aAAa,EAAE,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,YAAY,EAAE,GAAG,CAAC,aAAoC;YACtD,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;SACtC,CAAC;QACF,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI;YAAE,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC;QAC3D,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI;YAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC;QACrD,IAAI,GAAG,CAAC,eAAe,IAAI,IAAI;YAAE,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,eAAe,CAAC;QAC1E,IAAI,GAAG,CAAC,YAAY,IAAI,IAAI;YAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC;QACjE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,wBAAwB,CACtB,KAAY,EACZ,KAAoB,EACpB,cAAsB,EACtB,WAAmB;QAEnB,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE;aACd,OAAO,CACN;;kDAE0C,CAC3C;aACA,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,8BAA8B,CAAC,KAAY,EAAE,KAAc;QACzD,MAAM,GAAG,GAAG;;;gEAII,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAC3C,EAAE,CAAC;QACjB,MAAM,MAAM,GAAc,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAU7C,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,GAAG,GAAkB;gBACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC1B,aAAa,EAAE,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;gBAClD,YAAY,EAAE,GAAG,CAAC,aAAoC;gBACtD,UAAU,EAAE,GAAG,CAAC,WAAW;gBAC3B,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;aACtC,CAAC;YACF,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI;gBAAE,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC;YAC3D,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI;gBAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC;YACrD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,kBAAkB;QAChB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,wBAAwB;IACxB,wBAAwB,CAAC,OAAgB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,YAAY,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CAAC,oCAAoC,GAAG,qCAAqC,CAAC;aACrF,GAAG,CAAC,GAAG,EAAE,GAAG,CAA8B,CAAC;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/migrations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEzE,eAAO,MAAM,UAAU,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/migrations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEzE,eAAO,MAAM,UAAU,EAAE,SAAS,EAgPjC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAFJ,EAAE,EAAE,qBAAqB,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,IAAI,EAAE,mBAAmB;IAG5C,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,aAAa;IAqBrB,YAAY,IAAI,IAAI;CAsBrB"}
|
|
@@ -221,6 +221,25 @@ export const MIGRATIONS = [
|
|
|
221
221
|
`);
|
|
222
222
|
},
|
|
223
223
|
},
|
|
224
|
+
{
|
|
225
|
+
version: 8,
|
|
226
|
+
description: "W1.5-08: sync-generation counter + in-progress flag on _sfgraph_orgs so concurrent MCP readers can detect 'graph is being rewritten' mid-ingest. Additive ALTER TABLE; pre-existing rows default to (0, 0, NULL).",
|
|
227
|
+
up(db) {
|
|
228
|
+
// SQLite forbids ALTER TABLE ADD COLUMN with a non-constant default,
|
|
229
|
+
// but constant 0 / NULL are fine. Existing rows pick up the defaults
|
|
230
|
+
// automatically. Three separate ALTERs (SQLite ALTER syntax doesn't
|
|
231
|
+
// batch column adds).
|
|
232
|
+
db.exec(`
|
|
233
|
+
ALTER TABLE _sfgraph_orgs ADD COLUMN sync_generation INTEGER NOT NULL DEFAULT 0;
|
|
234
|
+
`);
|
|
235
|
+
db.exec(`
|
|
236
|
+
ALTER TABLE _sfgraph_orgs ADD COLUMN sync_in_progress INTEGER NOT NULL DEFAULT 0;
|
|
237
|
+
`);
|
|
238
|
+
db.exec(`
|
|
239
|
+
ALTER TABLE _sfgraph_orgs ADD COLUMN sync_started_at TEXT;
|
|
240
|
+
`);
|
|
241
|
+
},
|
|
242
|
+
},
|
|
224
243
|
];
|
|
225
244
|
export class MigrationRunner {
|
|
226
245
|
db;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/storage/sqlite/migrations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/storage/sqlite/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type Database from "better-sqlite3";
|
|
2
1
|
import type { OrgId } from "@ryanstark24/sfgraph-shared";
|
|
2
|
+
import type Database from "better-sqlite3";
|
|
3
3
|
/** Alias for better-sqlite3's Database handle — kept local rather than
|
|
4
4
|
* re-exported from load-better-sqlite3 so the dep graph stays one-way. */
|
|
5
5
|
type BetterSqlite3Database = Database.Database;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename-stability.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/rename-stability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"rename-stability.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/rename-stability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;2EAC2E;AAC3E,KAAK,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,IAAI,CAAC;IACf,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,uBAAuB,CAAC;AAErE;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,qBAAqB,EACzB,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,IAAI,CAwBxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,qBAAqB,EACzB,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACZ,YAAY,CA2Bd;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,qBAAqB,EACzB,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAkBhD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,qBAAqB,EACzB,KAAK,EAAE,KAAK,GAAG,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAGrB"}
|
|
@@ -63,9 +63,7 @@ export function recordServiceId(db, orgId, serviceId, qualifiedName, label) {
|
|
|
63
63
|
*/
|
|
64
64
|
export function rewriteEdgesForRename(db, orgId, oldQname, newQname) {
|
|
65
65
|
const orgIdStr = String(orgId);
|
|
66
|
-
const edgeTables = db
|
|
67
|
-
.prepare("SELECT table_name FROM _sfgraph_edge_types")
|
|
68
|
-
.all();
|
|
66
|
+
const edgeTables = db.prepare("SELECT table_name FROM _sfgraph_edge_types").all();
|
|
69
67
|
let srcRewritten = 0;
|
|
70
68
|
let dstRewritten = 0;
|
|
71
69
|
for (const { table_name } of edgeTables) {
|
|
@@ -88,9 +86,7 @@ export function rewriteEdgesForRename(db, orgId, oldQname, newQname) {
|
|
|
88
86
|
* The next ingest re-populates from scratch.
|
|
89
87
|
*/
|
|
90
88
|
export function resetServiceIdMap(db, orgId) {
|
|
91
|
-
const result = db
|
|
92
|
-
.prepare("DELETE FROM _sfgraph_service_ids WHERE org_id = ?")
|
|
93
|
-
.run(String(orgId));
|
|
89
|
+
const result = db.prepare("DELETE FROM _sfgraph_service_ids WHERE org_id = ?").run(String(orgId));
|
|
94
90
|
return { cleared: result.changes };
|
|
95
91
|
}
|
|
96
92
|
//# sourceMappingURL=rename-stability.js.map
|