@ontrails/core 1.0.0-beta.14 → 1.0.0-beta.15
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/.turbo/turbo-lint.log +1 -1
- package/CHANGELOG.md +11 -0
- package/README.md +17 -13
- package/dist/branded.d.ts +1 -1
- package/dist/branded.d.ts.map +1 -1
- package/dist/branded.js +1 -1
- package/dist/branded.js.map +1 -1
- package/dist/context.d.ts +13 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +19 -3
- package/dist/context.js.map +1 -1
- package/dist/contour.d.ts +81 -0
- package/dist/contour.d.ts.map +1 -0
- package/dist/contour.js +176 -0
- package/dist/contour.js.map +1 -0
- package/dist/cross-schema.d.ts +18 -0
- package/dist/cross-schema.d.ts.map +1 -0
- package/dist/cross-schema.js +29 -0
- package/dist/cross-schema.js.map +1 -0
- package/dist/draft.d.ts +5 -5
- package/dist/draft.d.ts.map +1 -1
- package/dist/draft.js +28 -27
- package/dist/draft.js.map +1 -1
- package/dist/errors.d.ts +62 -4
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +44 -1
- package/dist/errors.js.map +1 -1
- package/dist/execute.d.ts +26 -9
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +441 -20
- package/dist/execute.js.map +1 -1
- package/dist/fire.d.ts +43 -0
- package/dist/fire.d.ts.map +1 -0
- package/dist/fire.js +185 -0
- package/dist/fire.js.map +1 -0
- package/dist/index.d.ts +31 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -13
- package/dist/index.js.map +1 -1
- package/dist/internal/cross-batch.d.ts +44 -0
- package/dist/internal/cross-batch.d.ts.map +1 -0
- package/dist/internal/cross-batch.js +58 -0
- package/dist/internal/cross-batch.js.map +1 -0
- package/dist/internal/fork-ctx.d.ts +41 -0
- package/dist/internal/fork-ctx.d.ts.map +1 -0
- package/dist/internal/fork-ctx.js +47 -0
- package/dist/internal/fork-ctx.js.map +1 -0
- package/dist/internal/signal-ref.d.ts +15 -0
- package/dist/internal/signal-ref.d.ts.map +1 -0
- package/dist/internal/signal-ref.js +41 -0
- package/dist/internal/signal-ref.js.map +1 -0
- package/dist/internal/topo-saves.d.ts +8 -2
- package/dist/internal/topo-saves.d.ts.map +1 -1
- package/dist/internal/topo-saves.js +162 -23
- package/dist/internal/topo-saves.js.map +1 -1
- package/dist/internal/topo-snapshots.d.ts +57 -0
- package/dist/internal/topo-snapshots.d.ts.map +1 -0
- package/dist/internal/topo-snapshots.js +372 -0
- package/dist/internal/topo-snapshots.js.map +1 -0
- package/dist/internal/topo-store-read.d.ts +23 -20
- package/dist/internal/topo-store-read.d.ts.map +1 -1
- package/dist/internal/topo-store-read.js +82 -83
- package/dist/internal/topo-store-read.js.map +1 -1
- package/dist/internal/topo-store.d.ts +19 -5
- package/dist/internal/topo-store.d.ts.map +1 -1
- package/dist/internal/topo-store.js +174 -124
- package/dist/internal/topo-store.js.map +1 -1
- package/dist/internal/tracing.d.ts +98 -0
- package/dist/internal/tracing.d.ts.map +1 -0
- package/dist/internal/tracing.js +102 -0
- package/dist/internal/tracing.js.map +1 -0
- package/dist/internal/trails-db.d.ts +2 -2
- package/dist/internal/trails-db.d.ts.map +1 -1
- package/dist/internal/trails-db.js +8 -8
- package/dist/internal/trails-db.js.map +1 -1
- package/dist/internal/zod-wrappers.d.ts +40 -0
- package/dist/internal/zod-wrappers.d.ts.map +1 -0
- package/dist/internal/zod-wrappers.js +59 -0
- package/dist/internal/zod-wrappers.js.map +1 -0
- package/dist/layer.d.ts +22 -5
- package/dist/layer.d.ts.map +1 -1
- package/dist/layer.js +20 -3
- package/dist/layer.js.map +1 -1
- package/dist/path-security.d.ts +1 -1
- package/dist/path-security.d.ts.map +1 -1
- package/dist/path-security.js +1 -1
- package/dist/path-security.js.map +1 -1
- package/dist/resilience.d.ts +1 -1
- package/dist/resilience.d.ts.map +1 -1
- package/dist/resilience.js +3 -3
- package/dist/resilience.js.map +1 -1
- package/dist/resource-config.d.ts +22 -0
- package/dist/resource-config.d.ts.map +1 -0
- package/dist/resource-config.js +210 -0
- package/dist/resource-config.js.map +1 -0
- package/dist/resource.d.ts +74 -0
- package/dist/resource.d.ts.map +1 -0
- package/dist/resource.js +61 -0
- package/dist/resource.js.map +1 -0
- package/dist/run.d.ts +4 -3
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +5 -4
- package/dist/run.js.map +1 -1
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +2 -1
- package/dist/serialization.js.map +1 -1
- package/dist/store/accessor-protocol.d.ts +51 -0
- package/dist/store/accessor-protocol.d.ts.map +1 -0
- package/dist/store/accessor-protocol.js +2 -0
- package/dist/store/accessor-protocol.js.map +1 -0
- package/dist/store/index.d.ts +2 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +2 -0
- package/dist/store/index.js.map +1 -0
- package/dist/surface-filter.d.ts +13 -0
- package/dist/surface-filter.d.ts.map +1 -0
- package/dist/surface-filter.js +76 -0
- package/dist/surface-filter.js.map +1 -0
- package/dist/topo-store.d.ts +36 -22
- package/dist/topo-store.d.ts.map +1 -1
- package/dist/topo-store.js +215 -71
- package/dist/topo-store.js.map +1 -1
- package/dist/topo.d.ts +23 -9
- package/dist/topo.d.ts.map +1 -1
- package/dist/topo.js +175 -46
- package/dist/topo.js.map +1 -1
- package/dist/trail.d.ts +86 -19
- package/dist/trail.d.ts.map +1 -1
- package/dist/trail.js +59 -4
- package/dist/trail.js.map +1 -1
- package/dist/trails/derive-trail.d.ts +66 -0
- package/dist/trails/derive-trail.d.ts.map +1 -0
- package/dist/trails/derive-trail.js +378 -0
- package/dist/trails/derive-trail.js.map +1 -0
- package/dist/trails/index.d.ts +5 -0
- package/dist/trails/index.d.ts.map +1 -0
- package/dist/trails/index.js +3 -0
- package/dist/trails/index.js.map +1 -0
- package/dist/trails/ingest.d.ts +24 -0
- package/dist/trails/ingest.d.ts.map +1 -0
- package/dist/trails/ingest.js +63 -0
- package/dist/trails/ingest.js.map +1 -0
- package/dist/transport-error-map.d.ts +106 -0
- package/dist/transport-error-map.d.ts.map +1 -0
- package/dist/transport-error-map.js +24 -0
- package/dist/transport-error-map.js.map +1 -0
- package/dist/type-checks.test-d.d.ts +71 -0
- package/dist/type-checks.test-d.d.ts.map +1 -0
- package/dist/type-checks.test-d.js +12 -0
- package/dist/type-checks.test-d.js.map +1 -0
- package/dist/type-utils.d.ts +11 -2
- package/dist/type-utils.d.ts.map +1 -1
- package/dist/type-utils.js.map +1 -1
- package/dist/types.d.ts +113 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validate-established-topo.js +2 -2
- package/dist/validate-established-topo.js.map +1 -1
- package/dist/validate-topo.d.ts.map +1 -1
- package/dist/validate-topo.js +24 -7
- package/dist/validate-topo.js.map +1 -1
- package/dist/workspace.d.ts +1 -1
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +1 -1
- package/dist/workspace.js.map +1 -1
- package/package.json +8 -2
- package/src/__tests__/branded.test.ts +5 -5
- package/src/__tests__/context.test.ts +3 -3
- package/src/__tests__/contour.test.ts +263 -0
- package/src/__tests__/derive-trail.test.ts +668 -0
- package/src/__tests__/errors.test.ts +118 -0
- package/src/__tests__/execute.test.ts +1179 -141
- package/src/__tests__/fire.test.ts +1056 -0
- package/src/__tests__/fork-ctx.test.ts +83 -0
- package/src/__tests__/ingest.test.ts +191 -0
- package/src/__tests__/{gate.test.ts → layer.test.ts} +21 -21
- package/src/__tests__/path-security.test.ts +7 -7
- package/src/__tests__/resilience.test.ts +8 -8
- package/src/__tests__/resource.test.ts +204 -0
- package/src/__tests__/run.test.ts +13 -13
- package/src/__tests__/service-config.test.ts +28 -32
- package/src/__tests__/surface-filter.test.ts +196 -0
- package/src/__tests__/topo-store-read.test.ts +41 -36
- package/src/__tests__/topo-store.test.ts +493 -93
- package/src/__tests__/topo.test.ts +350 -54
- package/src/__tests__/trail.test.ts +189 -24
- package/src/__tests__/trails-db.test.ts +32 -25
- package/src/__tests__/transport-error-map.test.ts +82 -0
- package/src/__tests__/type-utils.test.ts +29 -1
- package/src/__tests__/validate-topo.test.ts +147 -25
- package/src/__tests__/workspace.test.ts +6 -6
- package/src/__tests__/zod-wrappers.test.ts +62 -0
- package/src/branded.ts +1 -1
- package/src/context.ts +24 -4
- package/src/contour.ts +344 -0
- package/src/cross-schema.ts +36 -0
- package/src/draft.ts +56 -52
- package/src/errors.ts +62 -18
- package/src/execute.ts +840 -29
- package/src/fire.ts +295 -0
- package/src/index.ts +116 -29
- package/src/internal/cross-batch.ts +77 -0
- package/src/internal/fork-ctx.ts +69 -0
- package/src/internal/signal-ref.ts +87 -0
- package/src/internal/topo-snapshots.ts +517 -0
- package/src/internal/topo-store-read.ts +140 -132
- package/src/internal/topo-store.ts +291 -186
- package/src/internal/tracing.ts +187 -0
- package/src/internal/trails-db.ts +9 -11
- package/src/internal/zod-wrappers.ts +78 -0
- package/src/layer.ts +50 -0
- package/src/path-security.ts +1 -1
- package/src/resilience.ts +3 -3
- package/src/{provision-config.ts → resource-config.ts} +109 -123
- package/src/resource.ts +155 -0
- package/src/run.ts +5 -4
- package/src/serialization.ts +2 -0
- package/src/store/accessor-protocol.ts +56 -0
- package/src/store/index.ts +4 -0
- package/src/surface-filter.ts +182 -0
- package/src/topo-store.ts +313 -104
- package/src/topo.ts +328 -57
- package/src/trail.ts +199 -31
- package/src/trails/derive-trail.ts +842 -0
- package/src/trails/index.ts +9 -0
- package/src/trails/ingest.ts +146 -0
- package/src/transport-error-map.ts +56 -0
- package/src/type-checks.test-d.ts +106 -0
- package/src/type-utils.ts +17 -2
- package/src/types.ts +148 -11
- package/src/validate-established-topo.ts +2 -2
- package/src/validate-topo.ts +32 -8
- package/src/workspace.ts +1 -1
- package/tsconfig.tests.json +10 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/adapters.d.ts +0 -39
- package/dist/adapters.d.ts.map +0 -1
- package/dist/adapters.js +0 -2
- package/dist/adapters.js.map +0 -1
- package/dist/dispatch.d.ts +0 -27
- package/dist/dispatch.d.ts.map +0 -1
- package/dist/dispatch.js +0 -34
- package/dist/dispatch.js.map +0 -1
- package/dist/event.d.ts +0 -8
- package/dist/event.d.ts.map +0 -1
- package/dist/event.js +0 -7
- package/dist/event.js.map +0 -1
- package/dist/gate.d.ts +0 -17
- package/dist/gate.d.ts.map +0 -1
- package/dist/gate.js +0 -21
- package/dist/gate.js.map +0 -1
- package/dist/health.d.ts +0 -18
- package/dist/health.d.ts.map +0 -1
- package/dist/health.js +0 -5
- package/dist/health.js.map +0 -1
- package/dist/job.d.ts +0 -24
- package/dist/job.d.ts.map +0 -1
- package/dist/job.js +0 -17
- package/dist/job.js.map +0 -1
- package/dist/provision-config.d.ts +0 -22
- package/dist/provision-config.d.ts.map +0 -1
- package/dist/provision-config.js +0 -210
- package/dist/provision-config.js.map +0 -1
- package/dist/provision.d.ts +0 -71
- package/dist/provision.d.ts.map +0 -1
- package/dist/provision.js +0 -56
- package/dist/provision.js.map +0 -1
- package/dist/service-config.d.ts +0 -22
- package/dist/service-config.d.ts.map +0 -1
- package/dist/service-config.js +0 -210
- package/dist/service-config.js.map +0 -1
- package/dist/service.d.ts +0 -71
- package/dist/service.d.ts.map +0 -1
- package/dist/service.js +0 -56
- package/dist/service.js.map +0 -1
- package/src/__tests__/service.test.ts +0 -197
- package/src/event.ts +0 -15
- package/src/gate.ts +0 -44
- package/src/internal/topo-saves.ts +0 -429
- package/src/provision.ts +0 -148
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const LATE_BOUND_SIGNAL_REF = Symbol('trails.late-bound-signal-ref');
|
|
2
|
+
const LATE_BOUND_SIGNAL_MARKER_PREFIX = '@@trails:late-bound-signal-ref:';
|
|
3
|
+
const defineLateBoundSignalRef = (value, ref) => {
|
|
4
|
+
Object.defineProperty(value, LATE_BOUND_SIGNAL_REF, {
|
|
5
|
+
configurable: false,
|
|
6
|
+
enumerable: false,
|
|
7
|
+
value: ref,
|
|
8
|
+
writable: false,
|
|
9
|
+
});
|
|
10
|
+
return value;
|
|
11
|
+
};
|
|
12
|
+
export const getLateBoundSignalRef = (signal) => signal === undefined
|
|
13
|
+
? undefined
|
|
14
|
+
: signal[LATE_BOUND_SIGNAL_REF];
|
|
15
|
+
export const attachLateBoundSignalRef = (signal, ref) => Object.freeze(defineLateBoundSignalRef({
|
|
16
|
+
...signal,
|
|
17
|
+
}, ref));
|
|
18
|
+
export const cloneSignalWithId = (signal, id) => {
|
|
19
|
+
const clone = {
|
|
20
|
+
...signal,
|
|
21
|
+
id,
|
|
22
|
+
};
|
|
23
|
+
const ref = getLateBoundSignalRef(signal);
|
|
24
|
+
return Object.freeze(ref ? defineLateBoundSignalRef(clone, ref) : clone);
|
|
25
|
+
};
|
|
26
|
+
export const createLateBoundSignalMarker = (ref, displayId) => `${LATE_BOUND_SIGNAL_MARKER_PREFIX}${ref.token}:${displayId}`;
|
|
27
|
+
export const parseLateBoundSignalMarker = (value) => {
|
|
28
|
+
if (!value.startsWith(LATE_BOUND_SIGNAL_MARKER_PREFIX)) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const remainder = value.slice(LATE_BOUND_SIGNAL_MARKER_PREFIX.length);
|
|
32
|
+
const separator = remainder.indexOf(':');
|
|
33
|
+
if (separator <= 0 || separator === remainder.length - 1) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
displayId: remainder.slice(separator + 1),
|
|
38
|
+
token: remainder.slice(0, separator),
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=signal-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-ref.js","sourceRoot":"","sources":["../../src/internal/signal-ref.ts"],"names":[],"mappings":"AAYA,MAAM,qBAAqB,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AACrE,MAAM,+BAA+B,GAAG,iCAAiC,CAAC;AAE1E,MAAM,wBAAwB,GAAG,CAC/B,KAAQ,EACR,GAAuB,EACpB,EAAE;IACL,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,qBAAqB,EAAE;QAClD,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAyC,EACT,EAAE,CAClC,MAAM,KAAK,SAAS;IAClB,CAAC,CAAC,SAAS;IACX,CAAC,CAAG,MAAuC,CAAC,qBAAqB,CAEjD,CAAC;AAErB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAiB,EACjB,GAAuB,EACZ,EAAE,CACb,MAAM,CAAC,MAAM,CACX,wBAAwB,CACtB;IACE,GAAG,MAAM;CACV,EACD,GAAG,CACJ,CACW,CAAC;AAEjB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAiB,EACjB,EAAU,EACC,EAAE;IACb,MAAM,KAAK,GAAG;QACZ,GAAG,MAAM;QACT,EAAE;KACH,CAAC;IACF,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,CAClB,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CACtC,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,GAAuB,EACvB,SAAiB,EACT,EAAE,CAAC,GAAG,+BAA+B,GAAG,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;AAE3E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAa,EACiB,EAAE;IAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACzC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;KACrC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@ export interface TopoSaveRecord {
|
|
|
4
4
|
readonly gitDirty: boolean;
|
|
5
5
|
readonly gitSha?: string;
|
|
6
6
|
readonly id: string;
|
|
7
|
-
readonly
|
|
7
|
+
readonly resourceCount: number;
|
|
8
8
|
readonly signalCount: number;
|
|
9
9
|
readonly trailCount: number;
|
|
10
10
|
}
|
|
@@ -13,7 +13,7 @@ export interface CreateTopoSaveInput {
|
|
|
13
13
|
readonly gitDirty?: boolean;
|
|
14
14
|
readonly gitSha?: string;
|
|
15
15
|
readonly id?: string;
|
|
16
|
-
readonly
|
|
16
|
+
readonly resourceCount?: number;
|
|
17
17
|
readonly signalCount?: number;
|
|
18
18
|
readonly trailCount?: number;
|
|
19
19
|
}
|
|
@@ -27,6 +27,12 @@ export interface CreateTopoPinInput {
|
|
|
27
27
|
readonly name: string;
|
|
28
28
|
readonly saveId: string;
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Current topo subsystem schema version. Exported so read-only callers can
|
|
32
|
+
* peek at `meta_schema_versions` and skip the write-mode migration escalation
|
|
33
|
+
* when the store is already current.
|
|
34
|
+
*/
|
|
35
|
+
export declare const TOPO_SCHEMA_VERSION = 5;
|
|
30
36
|
export declare const ensureTopoHistorySchema: (db: Database) => void;
|
|
31
37
|
export declare const insertTopoSaveRecord: (db: Database, input?: CreateTopoSaveInput) => TopoSaveRecord;
|
|
32
38
|
export declare const createTopoSave: (db: Database, input?: CreateTopoSaveInput) => TopoSaveRecord;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topo-saves.d.ts","sourceRoot":"","sources":["../../src/internal/topo-saves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"topo-saves.d.ts","sourceRoot":"","sources":["../../src/internal/topo-saves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6J3C,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAiLD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,eAAO,MAAM,uBAAuB,GAAI,IAAI,QAAQ,KAAG,IAQtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,IAAI,QAAQ,EACZ,QAAQ,mBAAmB,KAC1B,cA2BF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,IAAI,QAAQ,EACZ,QAAQ,mBAAmB,KAC1B,cAGF,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,IAAI,QAAQ,EACZ,OAAO,kBAAkB,KACxB,aAkBF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,KAAG,SAAS,cAAc,EAYnE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,SAAS,aAAa,EAYjE,CAAC;AASF,eAAO,MAAM,cAAc,GAAI,IAAI,QAAQ,KAAG,MAK7C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,KAAG,MAQ5C,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,IAAI,QAAQ,EACZ,IAAI,MAAM,KACT,cAAc,GAAG,SAYnB,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,IAAI,QAAQ,EACZ,MAAM,MAAM,KACX,aAAa,GAAG,SAYlB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAkBF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAyBF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,KAAG,OAI1D,CAAC"}
|
|
@@ -7,7 +7,7 @@ const TOPO_TABLE_STATEMENTS = [
|
|
|
7
7
|
git_dirty INTEGER NOT NULL DEFAULT 0,
|
|
8
8
|
trail_count INTEGER NOT NULL DEFAULT 0,
|
|
9
9
|
signal_count INTEGER NOT NULL DEFAULT 0,
|
|
10
|
-
|
|
10
|
+
resource_count INTEGER NOT NULL DEFAULT 0,
|
|
11
11
|
created_at TEXT NOT NULL
|
|
12
12
|
)`,
|
|
13
13
|
`CREATE TABLE IF NOT EXISTS topo_pins (
|
|
@@ -36,14 +36,14 @@ const TOPO_TABLE_STATEMENTS = [
|
|
|
36
36
|
PRIMARY KEY (source_id, target_id, save_id),
|
|
37
37
|
FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
|
|
38
38
|
)`,
|
|
39
|
-
`CREATE TABLE IF NOT EXISTS
|
|
39
|
+
`CREATE TABLE IF NOT EXISTS topo_trail_resources (
|
|
40
40
|
trail_id TEXT NOT NULL,
|
|
41
|
-
|
|
41
|
+
resource_id TEXT NOT NULL,
|
|
42
42
|
save_id TEXT NOT NULL,
|
|
43
|
-
PRIMARY KEY (trail_id,
|
|
43
|
+
PRIMARY KEY (trail_id, resource_id, save_id),
|
|
44
44
|
FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
|
|
45
45
|
)`,
|
|
46
|
-
`CREATE TABLE IF NOT EXISTS
|
|
46
|
+
`CREATE TABLE IF NOT EXISTS topo_resources (
|
|
47
47
|
id TEXT NOT NULL,
|
|
48
48
|
has_mock INTEGER NOT NULL DEFAULT 0,
|
|
49
49
|
has_health INTEGER NOT NULL DEFAULT 0,
|
|
@@ -103,14 +103,28 @@ const TOPO_TABLE_STATEMENTS = [
|
|
|
103
103
|
serialized_lock TEXT NOT NULL,
|
|
104
104
|
FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
|
|
105
105
|
)`,
|
|
106
|
+
`CREATE TABLE IF NOT EXISTS topo_trail_fires (
|
|
107
|
+
trail_id TEXT NOT NULL,
|
|
108
|
+
signal_id TEXT NOT NULL,
|
|
109
|
+
save_id TEXT NOT NULL,
|
|
110
|
+
PRIMARY KEY (trail_id, signal_id, save_id),
|
|
111
|
+
FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
|
|
112
|
+
)`,
|
|
113
|
+
`CREATE TABLE IF NOT EXISTS topo_trail_on (
|
|
114
|
+
trail_id TEXT NOT NULL,
|
|
115
|
+
signal_id TEXT NOT NULL,
|
|
116
|
+
save_id TEXT NOT NULL,
|
|
117
|
+
PRIMARY KEY (trail_id, signal_id, save_id),
|
|
118
|
+
FOREIGN KEY (save_id) REFERENCES topo_saves(id) ON DELETE CASCADE
|
|
119
|
+
)`,
|
|
106
120
|
];
|
|
107
121
|
const TOPO_INDEX_STATEMENTS = [
|
|
108
122
|
'CREATE INDEX IF NOT EXISTS idx_topo_saves_created_at ON topo_saves(created_at DESC)',
|
|
109
123
|
'CREATE INDEX IF NOT EXISTS idx_topo_pins_save_id ON topo_pins(save_id)',
|
|
110
124
|
'CREATE INDEX IF NOT EXISTS idx_topo_trails_save_id ON topo_trails(save_id)',
|
|
111
125
|
'CREATE INDEX IF NOT EXISTS idx_topo_crossings_save_id ON topo_crossings(save_id)',
|
|
112
|
-
'CREATE INDEX IF NOT EXISTS
|
|
113
|
-
'CREATE INDEX IF NOT EXISTS
|
|
126
|
+
'CREATE INDEX IF NOT EXISTS idx_topo_trail_resources_save_id ON topo_trail_resources(save_id)',
|
|
127
|
+
'CREATE INDEX IF NOT EXISTS idx_topo_resources_save_id ON topo_resources(save_id)',
|
|
114
128
|
'CREATE INDEX IF NOT EXISTS idx_topo_signals_save_id ON topo_signals(save_id)',
|
|
115
129
|
'CREATE INDEX IF NOT EXISTS idx_topo_trail_signals_save_id ON topo_trail_signals(save_id)',
|
|
116
130
|
'CREATE INDEX IF NOT EXISTS idx_topo_trailheads_save_id ON topo_trailheads(save_id)',
|
|
@@ -118,12 +132,14 @@ const TOPO_INDEX_STATEMENTS = [
|
|
|
118
132
|
'CREATE INDEX IF NOT EXISTS idx_topo_schemas_save_id ON topo_schemas(save_id)',
|
|
119
133
|
`CREATE INDEX IF NOT EXISTS idx_topo_schemas_lookup
|
|
120
134
|
ON topo_schemas(owner_id, owner_kind, schema_kind, zod_hash)`,
|
|
135
|
+
'CREATE INDEX IF NOT EXISTS idx_topo_trail_fires_save_id ON topo_trail_fires(save_id)',
|
|
136
|
+
'CREATE INDEX IF NOT EXISTS idx_topo_trail_on_save_id ON topo_trail_on(save_id)',
|
|
121
137
|
];
|
|
122
138
|
const rowToSave = (row) => ({
|
|
123
139
|
createdAt: row.created_at,
|
|
124
140
|
gitDirty: row.git_dirty === 1,
|
|
125
141
|
id: row.id,
|
|
126
|
-
|
|
142
|
+
resourceCount: row.resource_count,
|
|
127
143
|
signalCount: row.signal_count,
|
|
128
144
|
trailCount: row.trail_count,
|
|
129
145
|
...(row.git_sha === null ? {} : { gitSha: row.git_sha }),
|
|
@@ -144,21 +160,144 @@ const runStatements = (db, statements) => {
|
|
|
144
160
|
db.run(statement);
|
|
145
161
|
}
|
|
146
162
|
};
|
|
163
|
+
const LEGACY_PROVISION_TABLES = [
|
|
164
|
+
'topo_provisions',
|
|
165
|
+
'topo_trail_provisions',
|
|
166
|
+
];
|
|
167
|
+
const ALL_TOPO_TABLES = [
|
|
168
|
+
'topo_exports',
|
|
169
|
+
'topo_schemas',
|
|
170
|
+
'topo_examples',
|
|
171
|
+
'topo_trailheads',
|
|
172
|
+
'topo_trail_signals',
|
|
173
|
+
'topo_signals',
|
|
174
|
+
'topo_trail_on',
|
|
175
|
+
'topo_trail_fires',
|
|
176
|
+
'topo_resources',
|
|
177
|
+
'topo_trail_resources',
|
|
178
|
+
'topo_crossings',
|
|
179
|
+
'topo_trails',
|
|
180
|
+
'topo_pins',
|
|
181
|
+
'topo_saves',
|
|
182
|
+
];
|
|
183
|
+
const notifyLegacyDrop = (savesCleared) => {
|
|
184
|
+
// biome-ignore lint/suspicious/noConsole: one-shot migration notice
|
|
185
|
+
console.info(savesCleared
|
|
186
|
+
? 'topo store schema updated per ADR-0023; previous topo saves cleared'
|
|
187
|
+
: 'topo store schema updated per ADR-0023; legacy provision tables removed');
|
|
188
|
+
};
|
|
189
|
+
const topoSavesHasLegacyProvisionColumn = (db) => {
|
|
190
|
+
if (!tableExists(db, 'topo_saves')) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
const columns = db
|
|
194
|
+
.query('PRAGMA table_info(topo_saves)')
|
|
195
|
+
.all();
|
|
196
|
+
return columns.some((column) => column.name === 'provision_count');
|
|
197
|
+
};
|
|
198
|
+
const dropAllTopoTables = (db) => {
|
|
199
|
+
for (const table of ALL_TOPO_TABLES) {
|
|
200
|
+
db.run(`DROP TABLE IF EXISTS ${table}`);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
const dropLegacyProvisionTables = (db) => {
|
|
204
|
+
let dropped = false;
|
|
205
|
+
for (const table of LEGACY_PROVISION_TABLES) {
|
|
206
|
+
if (tableExists(db, table)) {
|
|
207
|
+
db.run(`DROP TABLE IF EXISTS ${table}`);
|
|
208
|
+
dropped = true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return dropped;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* Drop legacy provision schema per ADR-0023.
|
|
215
|
+
*
|
|
216
|
+
* Returns `true` when anything legacy was dropped — either the orphan
|
|
217
|
+
* `topo_provisions` / `topo_trail_provisions` tables, or the full topo
|
|
218
|
+
* table set (because `topo_saves` still carried the legacy `provision_count`
|
|
219
|
+
* column). In either case the caller MUST recreate every table from scratch,
|
|
220
|
+
* regardless of the recorded subsystem version. The version-delta migration
|
|
221
|
+
* branches only add incremental tables and cannot be trusted to rebuild
|
|
222
|
+
* missing base tables.
|
|
223
|
+
*
|
|
224
|
+
* Pure-rename stores (v4 with `resource_count` already in place) return
|
|
225
|
+
* `false` and skip the rebuild path.
|
|
226
|
+
*/
|
|
227
|
+
const dropLegacyProvisionSchema = (db) => {
|
|
228
|
+
const droppedLegacyTables = dropLegacyProvisionTables(db);
|
|
229
|
+
const hasLegacyColumn = topoSavesHasLegacyProvisionColumn(db);
|
|
230
|
+
if (hasLegacyColumn) {
|
|
231
|
+
dropAllTopoTables(db);
|
|
232
|
+
}
|
|
233
|
+
const anyDropHappened = droppedLegacyTables || hasLegacyColumn;
|
|
234
|
+
if (anyDropHappened) {
|
|
235
|
+
notifyLegacyDrop(hasLegacyColumn);
|
|
236
|
+
}
|
|
237
|
+
return anyDropHappened;
|
|
238
|
+
};
|
|
239
|
+
const createAllTopoTables = (db) => {
|
|
240
|
+
runStatements(db, TOPO_TABLE_STATEMENTS);
|
|
241
|
+
runStatements(db, TOPO_INDEX_STATEMENTS);
|
|
242
|
+
};
|
|
243
|
+
const createSchemaCacheAndExportTables = (db) => {
|
|
244
|
+
// v2→v3: add schema cache and export tables
|
|
245
|
+
runStatements(db, TOPO_TABLE_STATEMENTS.slice(10, 12));
|
|
246
|
+
runStatements(db, TOPO_INDEX_STATEMENTS.slice(10, 12));
|
|
247
|
+
};
|
|
248
|
+
const createSignalEdgeTables = (db) => {
|
|
249
|
+
// v3→v4: add persisted signal edges (fires/on)
|
|
250
|
+
runStatements(db, TOPO_TABLE_STATEMENTS.slice(12));
|
|
251
|
+
runStatements(db, TOPO_INDEX_STATEMENTS.slice(12));
|
|
252
|
+
};
|
|
253
|
+
const runVersionDeltaMigration = (db, currentVersion) => {
|
|
254
|
+
if (currentVersion < 2) {
|
|
255
|
+
createAllTopoTables(db);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
if (currentVersion === 2) {
|
|
259
|
+
createSchemaCacheAndExportTables(db);
|
|
260
|
+
}
|
|
261
|
+
if (currentVersion < 4) {
|
|
262
|
+
createSignalEdgeTables(db);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
// currentVersion >= 4: (re)create all tables with the new resource*
|
|
266
|
+
// names. IF NOT EXISTS guards keep this safe when the store was already
|
|
267
|
+
// consistent.
|
|
268
|
+
createAllTopoTables(db);
|
|
269
|
+
};
|
|
270
|
+
const runTopoMigration = (db, currentVersion) => {
|
|
271
|
+
// v4→v5 (ADR-0023): drop any legacy `provision*` tables and rebuild
|
|
272
|
+
// `topo_saves` when it still carries the legacy `provision_count`
|
|
273
|
+
// column. Runs before the create-if-not-exists statements below so
|
|
274
|
+
// the new schema lands cleanly. Rows are not migrated.
|
|
275
|
+
const legacyDropHappened = dropLegacyProvisionSchema(db);
|
|
276
|
+
// When any legacy artifact was dropped — orphan provision tables OR the
|
|
277
|
+
// full topo table set — the version-delta branches can't be trusted to
|
|
278
|
+
// recreate the base tables (v2/v3 deltas only add incremental tables and
|
|
279
|
+
// would leave the store permanently missing `topo_resources`,
|
|
280
|
+
// `topo_trail_resources`, etc.). Rebuild everything from scratch and skip
|
|
281
|
+
// the old deltas.
|
|
282
|
+
if (legacyDropHappened) {
|
|
283
|
+
createAllTopoTables(db);
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
runVersionDeltaMigration(db, currentVersion);
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* Current topo subsystem schema version. Exported so read-only callers can
|
|
290
|
+
* peek at `meta_schema_versions` and skip the write-mode migration escalation
|
|
291
|
+
* when the store is already current.
|
|
292
|
+
*/
|
|
293
|
+
export const TOPO_SCHEMA_VERSION = 5;
|
|
147
294
|
export const ensureTopoHistorySchema = (db) => {
|
|
148
295
|
ensureSubsystemSchema(db, {
|
|
149
296
|
migrate: (currentVersion) => {
|
|
150
|
-
|
|
151
|
-
runStatements(db, TOPO_TABLE_STATEMENTS);
|
|
152
|
-
runStatements(db, TOPO_INDEX_STATEMENTS);
|
|
153
|
-
}
|
|
154
|
-
if (currentVersion === 2) {
|
|
155
|
-
// v2→v3: add schema cache and export tables
|
|
156
|
-
runStatements(db, TOPO_TABLE_STATEMENTS.slice(10));
|
|
157
|
-
runStatements(db, TOPO_INDEX_STATEMENTS.slice(10));
|
|
158
|
-
}
|
|
297
|
+
runTopoMigration(db, currentVersion);
|
|
159
298
|
},
|
|
160
299
|
subsystem: TOPO_SUBSYSTEM,
|
|
161
|
-
version:
|
|
300
|
+
version: TOPO_SCHEMA_VERSION,
|
|
162
301
|
});
|
|
163
302
|
};
|
|
164
303
|
export const insertTopoSaveRecord = (db, input) => {
|
|
@@ -166,20 +305,20 @@ export const insertTopoSaveRecord = (db, input) => {
|
|
|
166
305
|
createdAt: input?.createdAt ?? new Date().toISOString(),
|
|
167
306
|
gitDirty: input?.gitDirty ?? false,
|
|
168
307
|
id: input?.id ?? Bun.randomUUIDv7(),
|
|
169
|
-
|
|
308
|
+
resourceCount: input?.resourceCount ?? 0,
|
|
170
309
|
signalCount: input?.signalCount ?? 0,
|
|
171
310
|
trailCount: input?.trailCount ?? 0,
|
|
172
311
|
...(input?.gitSha === undefined ? {} : { gitSha: input.gitSha }),
|
|
173
312
|
};
|
|
174
313
|
db.run(`INSERT INTO topo_saves (
|
|
175
|
-
id, git_sha, git_dirty, trail_count, signal_count,
|
|
314
|
+
id, git_sha, git_dirty, trail_count, signal_count, resource_count, created_at
|
|
176
315
|
) VALUES (?, ?, ?, ?, ?, ?, ?)`, [
|
|
177
316
|
record.id,
|
|
178
317
|
record.gitSha ?? null,
|
|
179
318
|
record.gitDirty ? 1 : 0,
|
|
180
319
|
record.trailCount,
|
|
181
320
|
record.signalCount,
|
|
182
|
-
record.
|
|
321
|
+
record.resourceCount,
|
|
183
322
|
record.createdAt,
|
|
184
323
|
]);
|
|
185
324
|
return record;
|
|
@@ -206,7 +345,7 @@ export const listTopoSaves = (db) => {
|
|
|
206
345
|
return [];
|
|
207
346
|
}
|
|
208
347
|
const rows = db
|
|
209
|
-
.query(`SELECT id, git_sha, git_dirty, trail_count, signal_count,
|
|
348
|
+
.query(`SELECT id, git_sha, git_dirty, trail_count, signal_count, resource_count, created_at
|
|
210
349
|
FROM topo_saves
|
|
211
350
|
ORDER BY created_at DESC, id DESC`)
|
|
212
351
|
.all();
|
|
@@ -249,7 +388,7 @@ export const getTopoSave = (db, id) => {
|
|
|
249
388
|
return undefined;
|
|
250
389
|
}
|
|
251
390
|
const row = db
|
|
252
|
-
.query(`SELECT id, git_sha, git_dirty, trail_count, signal_count,
|
|
391
|
+
.query(`SELECT id, git_sha, git_dirty, trail_count, signal_count, resource_count, created_at
|
|
253
392
|
FROM topo_saves
|
|
254
393
|
WHERE id = ?`)
|
|
255
394
|
.get(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topo-saves.js","sourceRoot":"","sources":["../../src/internal/topo-saves.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,qBAAqB,GAAG;IAC5B;;;;;;;;IAQE;IACF;;;;;IAKE;IACF;;;;;;;;;;;;IAYE;IACF;;;;;;IAME;IACF;;;;;;IAME;IACF;;;;;;;IAOE;IACF;;;;;;IAME;IACF;;;;;;IAME;IACF;;;;;;;;IAQE;IACF;;;;;;;;;;;IAWE;IACF;;;;;;;;;IASE;IACF;;;;;;IAME;CACM,CAAC;AACX,MAAM,qBAAqB,GAAG;IAC5B,qFAAqF;IACrF,wEAAwE;IACxE,4EAA4E;IAC5E,kFAAkF;IAClF,
|
|
1
|
+
{"version":3,"file":"topo-saves.js","sourceRoot":"","sources":["../../src/internal/topo-saves.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Database } from 'bun:sqlite';
|
|
2
|
+
export interface TopoSnapshot {
|
|
3
|
+
readonly createdAt: string;
|
|
4
|
+
readonly gitDirty: boolean;
|
|
5
|
+
readonly gitSha?: string;
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly pinnedAs?: string;
|
|
8
|
+
readonly resourceCount: number;
|
|
9
|
+
readonly signalCount: number;
|
|
10
|
+
readonly trailCount: number;
|
|
11
|
+
}
|
|
12
|
+
export interface CreateTopoSnapshotInput {
|
|
13
|
+
readonly createdAt?: string;
|
|
14
|
+
readonly gitDirty?: boolean;
|
|
15
|
+
readonly gitSha?: string;
|
|
16
|
+
readonly id?: string;
|
|
17
|
+
readonly resourceCount?: number;
|
|
18
|
+
readonly signalCount?: number;
|
|
19
|
+
readonly trailCount?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface ListTopoSnapshotsOptions {
|
|
22
|
+
readonly before?: string;
|
|
23
|
+
readonly limit?: number;
|
|
24
|
+
readonly pinned?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Current topo subsystem schema version.
|
|
28
|
+
*
|
|
29
|
+
* Version 8 adds `pattern TEXT` column to `topo_trails`.
|
|
30
|
+
*
|
|
31
|
+
* Version 7 defined the snapshot-first topo tables (`topo_snapshots`,
|
|
32
|
+
* `topo_surfaces`, and `snapshot_id` foreign keys) as the only supported
|
|
33
|
+
* schema. Older pre-release tables are ignored in place; we create the current
|
|
34
|
+
* tables and advance the subsystem version without translating or deleting
|
|
35
|
+
* legacy rows.
|
|
36
|
+
*/
|
|
37
|
+
export declare const TOPO_SCHEMA_VERSION = 8;
|
|
38
|
+
export declare const ensureTopoSnapshotSchema: (db: Database) => void;
|
|
39
|
+
export declare const insertTopoSnapshotRecord: (db: Database, input?: CreateTopoSnapshotInput) => TopoSnapshot;
|
|
40
|
+
export declare const readTopoSnapshot: (db: Database, id: string) => TopoSnapshot | undefined;
|
|
41
|
+
export declare const readPinnedTopoSnapshot: (db: Database, name: string) => TopoSnapshot | undefined;
|
|
42
|
+
export declare const listTopoSnapshots: (db: Database, options?: ListTopoSnapshotsOptions) => readonly TopoSnapshot[];
|
|
43
|
+
export declare const countTopoSnapshots: (db: Database) => number;
|
|
44
|
+
export declare const countPinnedSnapshots: (db: Database) => number;
|
|
45
|
+
export declare const countPrunableSnapshots: (db: Database, options: {
|
|
46
|
+
readonly keep: number;
|
|
47
|
+
}) => number;
|
|
48
|
+
export declare const createTopoSnapshot: (db: Database, input?: CreateTopoSnapshotInput) => TopoSnapshot;
|
|
49
|
+
export declare const pinTopoSnapshot: (db: Database, input: {
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly name: string;
|
|
52
|
+
}) => TopoSnapshot | undefined;
|
|
53
|
+
export declare const unpinTopoSnapshot: (db: Database, nameOrId: string) => TopoSnapshot | undefined;
|
|
54
|
+
export declare const pruneUnpinnedSnapshots: (db: Database, options: {
|
|
55
|
+
readonly keep: number;
|
|
56
|
+
}) => number;
|
|
57
|
+
//# sourceMappingURL=topo-snapshots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topo-snapshots.d.ts","sourceRoot":"","sources":["../../src/internal/topo-snapshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAoJ7D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAiCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,eAAO,MAAM,wBAAwB,GAAI,IAAI,QAAQ,KAAG,IAWvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,IAAI,QAAQ,EACZ,QAAQ,uBAAuB,KAC9B,YA4BF,CAAC;AASF,eAAO,MAAM,gBAAgB,GAC3B,IAAI,QAAQ,EACZ,IAAI,MAAM,KACT,YAAY,GAAG,SAYjB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,MAAM,MAAM,KACX,YAAY,GAAG,SAajB,CAAC;AAiFF,eAAO,MAAM,iBAAiB,GAC5B,IAAI,QAAQ,EACZ,UAAU,wBAAwB,KACjC,SAAS,YAAY,EAAsD,CAAC;AAW/E,eAAO,MAAM,kBAAkB,GAAI,IAAI,QAAQ,KAAG,MAKjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,IAAI,QAAQ,KAAG,MAKnD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAiBF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,IAAI,QAAQ,EACZ,QAAQ,uBAAuB,KAC9B,YAGF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,IAAI,QAAQ,EACZ,OAAO;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACpD,YAAY,GAAG,SAmBjB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,IAAI,QAAQ,EACZ,UAAU,MAAM,KACf,YAAY,GAAG,SAgBjB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,QAAQ,EACZ,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KACjC,MAwBF,CAAC"}
|