@cleocode/core 2026.10.17 → 2026.10.18
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/audit-prune.d.ts +37 -8
- package/dist/audit-prune.d.ts.map +1 -1
- package/dist/audit-prune.js +46 -12
- package/dist/audit-prune.js.map +1 -1
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/manifest-check.d.ts +21 -0
- package/dist/cloud/manifest-check.d.ts.map +1 -1
- package/dist/cloud/manifest-check.js +46 -1
- package/dist/cloud/manifest-check.js.map +1 -1
- package/dist/cloud/nexus-vault.d.ts +19 -0
- package/dist/cloud/nexus-vault.d.ts.map +1 -1
- package/dist/cloud/nexus-vault.js +134 -23
- package/dist/cloud/nexus-vault.js.map +1 -1
- package/dist/cloud/signing.d.ts.map +1 -1
- package/dist/cloud/signing.js +4 -0
- package/dist/cloud/signing.js.map +1 -1
- package/dist/doctor/row-identity.d.ts.map +1 -1
- package/dist/doctor/row-identity.js +2 -1
- package/dist/doctor/row-identity.js.map +1 -1
- package/dist/git/work-tree.d.ts +17 -0
- package/dist/git/work-tree.d.ts.map +1 -1
- package/dist/git/work-tree.js +30 -0
- package/dist/git/work-tree.js.map +1 -1
- package/dist/goal/close.d.ts +95 -0
- package/dist/goal/close.d.ts.map +1 -0
- package/dist/goal/close.js +497 -0
- package/dist/goal/close.js.map +1 -0
- package/dist/goal/draft.d.ts +81 -0
- package/dist/goal/draft.d.ts.map +1 -0
- package/dist/goal/draft.js +331 -0
- package/dist/goal/draft.js.map +1 -0
- package/dist/hooks/release-gate.d.ts +3 -0
- package/dist/hooks/release-gate.d.ts.map +1 -1
- package/dist/hooks/release-gate.js +4 -1
- package/dist/hooks/release-gate.js.map +1 -1
- package/dist/orchestration/lean-gain.d.ts +26 -0
- package/dist/orchestration/lean-gain.d.ts.map +1 -0
- package/dist/orchestration/lean-gain.js +61 -0
- package/dist/orchestration/lean-gain.js.map +1 -0
- package/dist/release/backfill.d.ts.map +1 -1
- package/dist/release/backfill.js +15 -5
- package/dist/release/backfill.js.map +1 -1
- package/dist/release/ci-evidence.d.ts +90 -5
- package/dist/release/ci-evidence.d.ts.map +1 -1
- package/dist/release/ci-evidence.js +277 -4
- package/dist/release/ci-evidence.js.map +1 -1
- package/dist/release/plan.d.ts +4 -1
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +10 -2
- package/dist/release/plan.js.map +1 -1
- package/dist/release/reconcile.d.ts +10 -0
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +42 -19
- package/dist/release/reconcile.js.map +1 -1
- package/dist/release/release-manifest.d.ts +2 -1
- package/dist/release/release-manifest.d.ts.map +1 -1
- package/dist/release/release-manifest.js +15 -1
- package/dist/release/release-manifest.js.map +1 -1
- package/dist/resources/admission-ledger.d.ts +21 -4
- package/dist/resources/admission-ledger.d.ts.map +1 -1
- package/dist/resources/admission-ledger.js +102 -19
- package/dist/resources/admission-ledger.js.map +1 -1
- package/dist/resources/run-class.d.ts +22 -0
- package/dist/resources/run-class.d.ts.map +1 -1
- package/dist/resources/run-class.js +81 -0
- package/dist/resources/run-class.js.map +1 -1
- package/dist/sessions/handoff.d.ts +2 -2
- package/dist/sessions/handoff.js +2 -2
- package/dist/store/audit-log-schema.d.ts +106 -39
- package/dist/store/audit-log-schema.d.ts.map +1 -1
- package/dist/store/audit-log-schema.js +6 -3
- package/dist/store/audit-log-schema.js.map +1 -1
- package/dist/store/row-identity-registry.d.ts +42 -6
- package/dist/store/row-identity-registry.d.ts.map +1 -1
- package/dist/store/row-identity-registry.js +256 -34
- package/dist/store/row-identity-registry.js.map +1 -1
- package/dist/store/row-identity.d.ts.map +1 -1
- package/dist/store/row-identity.js +16 -4
- package/dist/store/row-identity.js.map +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +16 -0
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +4 -1
- package/dist/store/schema/cleo-global/nexus.js.map +1 -1
- package/dist/store/schema/cleo-project/audit.d.ts +48 -0
- package/dist/store/schema/cleo-project/audit.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/audit.js +15 -1
- package/dist/store/schema/cleo-project/audit.js.map +1 -1
- package/dist/store/schema/cleo-project/lifecycle.d.ts +112 -0
- package/dist/store/schema/cleo-project/lifecycle.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/lifecycle.js +36 -4
- package/dist/store/schema/cleo-project/lifecycle.js.map +1 -1
- package/dist/store/schema/cleo-project/provenance-commits.d.ts +48 -0
- package/dist/store/schema/cleo-project/provenance-commits.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/provenance-commits.js +10 -1
- package/dist/store/schema/cleo-project/provenance-commits.js.map +1 -1
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +128 -0
- package/dist/store/schema/cleo-project/provenance-rest.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/provenance-rest.js +25 -1
- package/dist/store/schema/cleo-project/provenance-rest.js.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +16 -0
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +6 -1
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/session-store.d.ts +5 -4
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +19 -5
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/sync/apply/parent-delete.d.ts.map +1 -1
- package/dist/store/sync/apply/parent-delete.js +8 -0
- package/dist/store/sync/apply/parent-delete.js.map +1 -1
- package/dist/store/sync/apply/write-api.d.ts +3 -2
- package/dist/store/sync/apply/write-api.d.ts.map +1 -1
- package/dist/store/sync/apply/write-api.js +19 -0
- package/dist/store/sync/apply/write-api.js.map +1 -1
- package/dist/store/sync/capture.d.ts +11 -0
- package/dist/store/sync/capture.d.ts.map +1 -1
- package/dist/store/sync/capture.js +13 -3
- package/dist/store/sync/capture.js.map +1 -1
- package/dist/store/sync/flags.d.ts +10 -0
- package/dist/store/sync/flags.d.ts.map +1 -1
- package/dist/store/sync/flags.js +43 -5
- package/dist/store/sync/flags.js.map +1 -1
- package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
- package/dist/store/sync/timestamp-canon.js +37 -0
- package/dist/store/sync/timestamp-canon.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +1 -1
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +5 -1
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/twin-collapse.d.ts +2 -1
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +128 -104
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +390 -38
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/vault-manifest.d.ts +9 -2
- package/dist/store/vault-manifest.d.ts.map +1 -1
- package/dist/store/vault-manifest.js +25 -4
- package/dist/store/vault-manifest.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +3 -2
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +21 -2
- package/dist/tasks/affected-packages.d.ts.map +1 -1
- package/dist/tasks/affected-packages.js +96 -8
- package/dist/tasks/affected-packages.js.map +1 -1
- package/dist/tasks/affected-scope.d.ts +7 -2
- package/dist/tasks/affected-scope.d.ts.map +1 -1
- package/dist/tasks/affected-scope.js +158 -14
- package/dist/tasks/affected-scope.js.map +1 -1
- package/dist/tasks/change-set.d.ts +10 -0
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +70 -3
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/done-plan.d.ts +11 -5
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +54 -10
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +25 -0
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +22 -2
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-result-cache.d.ts.map +1 -1
- package/dist/tasks/gate-result-cache.js +24 -3
- package/dist/tasks/gate-result-cache.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts +27 -3
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +77 -29
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/qa-run-binding.d.ts +22 -3
- package/dist/tasks/qa-run-binding.d.ts.map +1 -1
- package/dist/tasks/qa-run-binding.js +46 -4
- package/dist/tasks/qa-run-binding.js.map +1 -1
- package/dist/tasks/test-run-binding.d.ts +21 -3
- package/dist/tasks/test-run-binding.d.ts.map +1 -1
- package/dist/tasks/test-run-binding.js +60 -14
- package/dist/tasks/test-run-binding.js.map +1 -1
- package/dist/tasks/tool-cache.d.ts.map +1 -1
- package/dist/tasks/tool-cache.js +24 -12
- package/dist/tasks/tool-cache.js.map +1 -1
- package/migrations/drizzle-cleo-global/20261016130000_t13777-nexus-audit-row-uids/migration.sql +18 -0
- package/migrations/drizzle-cleo-project/20261015100000_t12914-lifecycle-release-row-uids/migration.sql +88 -0
- package/migrations/drizzle-cleo-project/20261016130000_t13777-log-row-uids/migration.sql +42 -0
- package/migrations/drizzle-cleo-project/20261016140000_t13777-audit-collapse/migration.sql +31 -0
- package/package.json +18 -18
- package/templates/CLEO-REFERENCE.md +1 -1
package/dist/audit-prune.d.ts
CHANGED
|
@@ -20,21 +20,49 @@ export interface PruneResult {
|
|
|
20
20
|
archivePath?: string;
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Audit actions that age-based pruning never deletes, whatever their age
|
|
23
|
+
* Audit actions that age-based pruning never deletes, whatever their age:
|
|
24
|
+
* receipts code reads back.
|
|
24
25
|
*
|
|
25
|
-
* `ac.bindings.pruned
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* - `ac.bindings.pruned`: the only surviving record of an evidence binding
|
|
27
|
+
* whose acceptance criterion was removed. Alias-drift detection
|
|
28
|
+
* (`E_AC_ALIAS_DRIFTED`, ADR-079-r2 §3) reads them to know what `AC<n>` used
|
|
29
|
+
* to mean; pruning them would silently turn a drifted alias into a rebind
|
|
30
|
+
* (T12790).
|
|
31
|
+
* - `saga_reconciled`: a saga's reconcile receipt (`SAGA_RECONCILE_RECEIPT_ACTION`,
|
|
32
|
+
* sagas/reconcile.ts).
|
|
33
|
+
* - `ranking_changed`: the ranking-input audit trail `cleo history ranking`
|
|
34
|
+
* lists and `cleo history revert` undoes (`RANKING_CHANGED_ACTION`, D11161).
|
|
35
|
+
*
|
|
36
|
+
* Literals, not imports: the startup prune must not load those modules
|
|
37
|
+
* (a test pins them to the constants). `gate.verify.typed` is kept only for an
|
|
38
|
+
* open task ({@link auditPruneCondition}).
|
|
29
39
|
*
|
|
30
40
|
* @task T12790
|
|
41
|
+
* @task T13777
|
|
31
42
|
*/
|
|
32
43
|
export declare const AUDIT_PRUNE_EXEMPT_ACTIONS: readonly string[];
|
|
44
|
+
/**
|
|
45
|
+
* The typed-gate receipt completion reads back (gate-runner.ts): kept while
|
|
46
|
+
* its task is neither done nor cancelled.
|
|
47
|
+
*
|
|
48
|
+
* @task T13777
|
|
49
|
+
*/
|
|
50
|
+
export declare const AUDIT_GATE_RECEIPT_ACTION = "gate.verify.typed";
|
|
51
|
+
/**
|
|
52
|
+
* The shortest retention age-based pruning honours. The prune deletes rows
|
|
53
|
+
* that sync, so the delete reaches every device: one device or agent set to a
|
|
54
|
+
* day must not erase the fleet's recent history. A smaller
|
|
55
|
+
* `auditRetentionDays` is clamped up to it.
|
|
56
|
+
*
|
|
57
|
+
* @task T13777
|
|
58
|
+
*/
|
|
59
|
+
export declare const AUDIT_RETENTION_FLOOR_DAYS = 30;
|
|
33
60
|
/** An audit table age-based pruning may target: legacy `audit_log` or `tasks_audit_log`. */
|
|
34
61
|
export type PrunableAuditTable = typeof auditLog | typeof tasksAuditLog;
|
|
35
62
|
/**
|
|
36
|
-
* The row predicate for age-based pruning of `table`: older than `cutoff
|
|
37
|
-
*
|
|
63
|
+
* The row predicate for age-based pruning of `table`: older than `cutoff`, not
|
|
64
|
+
* an {@link AUDIT_PRUNE_EXEMPT_ACTIONS} action, and not a
|
|
65
|
+
* {@link AUDIT_GATE_RECEIPT_ACTION} receipt of a task still open.
|
|
38
66
|
*
|
|
39
67
|
* Every prune — of either audit table — selects and deletes through this one
|
|
40
68
|
* predicate, so retargeting the prune cannot drop the exemption.
|
|
@@ -49,7 +77,8 @@ export declare function auditPruneCondition(table: PrunableAuditTable, cutoff: s
|
|
|
49
77
|
* Prune old audit_log rows from tasks.db.
|
|
50
78
|
*
|
|
51
79
|
* 1. If auditRetentionDays is 0 or undefined, skip age-based pruning.
|
|
52
|
-
* 2. Compute cutoff timestamp from auditRetentionDays
|
|
80
|
+
* 2. Compute cutoff timestamp from auditRetentionDays, clamped up to
|
|
81
|
+
* {@link AUDIT_RETENTION_FLOOR_DAYS}: the deletes sync to every device.
|
|
53
82
|
* 3. If archiveBeforePrune, select rows older than cutoff and write to
|
|
54
83
|
* .cleo/backups/logs/audit-YYYY-MM-DD.jsonl.gz.
|
|
55
84
|
* 4. Delete rows older than cutoff from audit_log.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-prune.d.ts","sourceRoot":"","sources":["../src/audit-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAuB,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"audit-prune.d.ts","sourceRoot":"","sources":["../src/audit-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAuB,KAAK,GAAG,EAAO,MAAM,aAAa,CAAC;AAGjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAI1E,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAIvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAE7D;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,4FAA4F;AAC5F,MAAM,MAAM,kBAAkB,GAAG,OAAO,QAAQ,GAAG,OAAO,aAAa,CAAC;AAExE;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CASlF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA8EhG"}
|
package/dist/audit-prune.js
CHANGED
|
@@ -15,24 +15,56 @@ import { join } from 'node:path';
|
|
|
15
15
|
import { Readable } from 'node:stream';
|
|
16
16
|
import { pipeline } from 'node:stream/promises';
|
|
17
17
|
import { createGzip } from 'node:zlib';
|
|
18
|
-
import { and, lt, notInArray } from 'drizzle-orm';
|
|
18
|
+
import { and, lt, notInArray, sql } from 'drizzle-orm';
|
|
19
19
|
import { getLogger } from './logger.js';
|
|
20
20
|
import { AC_BINDINGS_PRUNED_ACTION } from './store/ac-binding-prune.js';
|
|
21
21
|
const log = getLogger('prune');
|
|
22
22
|
/**
|
|
23
|
-
* Audit actions that age-based pruning never deletes, whatever their age
|
|
23
|
+
* Audit actions that age-based pruning never deletes, whatever their age:
|
|
24
|
+
* receipts code reads back.
|
|
24
25
|
*
|
|
25
|
-
* `ac.bindings.pruned
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* - `ac.bindings.pruned`: the only surviving record of an evidence binding
|
|
27
|
+
* whose acceptance criterion was removed. Alias-drift detection
|
|
28
|
+
* (`E_AC_ALIAS_DRIFTED`, ADR-079-r2 §3) reads them to know what `AC<n>` used
|
|
29
|
+
* to mean; pruning them would silently turn a drifted alias into a rebind
|
|
30
|
+
* (T12790).
|
|
31
|
+
* - `saga_reconciled`: a saga's reconcile receipt (`SAGA_RECONCILE_RECEIPT_ACTION`,
|
|
32
|
+
* sagas/reconcile.ts).
|
|
33
|
+
* - `ranking_changed`: the ranking-input audit trail `cleo history ranking`
|
|
34
|
+
* lists and `cleo history revert` undoes (`RANKING_CHANGED_ACTION`, D11161).
|
|
35
|
+
*
|
|
36
|
+
* Literals, not imports: the startup prune must not load those modules
|
|
37
|
+
* (a test pins them to the constants). `gate.verify.typed` is kept only for an
|
|
38
|
+
* open task ({@link auditPruneCondition}).
|
|
29
39
|
*
|
|
30
40
|
* @task T12790
|
|
41
|
+
* @task T13777
|
|
42
|
+
*/
|
|
43
|
+
export const AUDIT_PRUNE_EXEMPT_ACTIONS = [
|
|
44
|
+
AC_BINDINGS_PRUNED_ACTION,
|
|
45
|
+
'saga_reconciled',
|
|
46
|
+
'ranking_changed',
|
|
47
|
+
];
|
|
48
|
+
/**
|
|
49
|
+
* The typed-gate receipt completion reads back (gate-runner.ts): kept while
|
|
50
|
+
* its task is neither done nor cancelled.
|
|
51
|
+
*
|
|
52
|
+
* @task T13777
|
|
53
|
+
*/
|
|
54
|
+
export const AUDIT_GATE_RECEIPT_ACTION = 'gate.verify.typed';
|
|
55
|
+
/**
|
|
56
|
+
* The shortest retention age-based pruning honours. The prune deletes rows
|
|
57
|
+
* that sync, so the delete reaches every device: one device or agent set to a
|
|
58
|
+
* day must not erase the fleet's recent history. A smaller
|
|
59
|
+
* `auditRetentionDays` is clamped up to it.
|
|
60
|
+
*
|
|
61
|
+
* @task T13777
|
|
31
62
|
*/
|
|
32
|
-
export const
|
|
63
|
+
export const AUDIT_RETENTION_FLOOR_DAYS = 30;
|
|
33
64
|
/**
|
|
34
|
-
* The row predicate for age-based pruning of `table`: older than `cutoff
|
|
35
|
-
*
|
|
65
|
+
* The row predicate for age-based pruning of `table`: older than `cutoff`, not
|
|
66
|
+
* an {@link AUDIT_PRUNE_EXEMPT_ACTIONS} action, and not a
|
|
67
|
+
* {@link AUDIT_GATE_RECEIPT_ACTION} receipt of a task still open.
|
|
36
68
|
*
|
|
37
69
|
* Every prune — of either audit table — selects and deletes through this one
|
|
38
70
|
* predicate, so retargeting the prune cannot drop the exemption.
|
|
@@ -43,7 +75,7 @@ export const AUDIT_PRUNE_EXEMPT_ACTIONS = [AC_BINDINGS_PRUNED_ACTION];
|
|
|
43
75
|
* @task T12790
|
|
44
76
|
*/
|
|
45
77
|
export function auditPruneCondition(table, cutoff) {
|
|
46
|
-
const condition = and(lt(table.timestamp, cutoff), notInArray(table.action, [...AUDIT_PRUNE_EXEMPT_ACTIONS]));
|
|
78
|
+
const condition = and(lt(table.timestamp, cutoff), notInArray(table.action, [...AUDIT_PRUNE_EXEMPT_ACTIONS]), sql `NOT (${table.action} = ${AUDIT_GATE_RECEIPT_ACTION} AND ${table.taskId} IN (SELECT id FROM tasks_tasks WHERE status NOT IN ('done', 'cancelled')))`);
|
|
47
79
|
// `and()` of two defined conditions is always defined.
|
|
48
80
|
if (!condition)
|
|
49
81
|
throw new Error('auditPruneCondition: empty predicate');
|
|
@@ -53,7 +85,8 @@ export function auditPruneCondition(table, cutoff) {
|
|
|
53
85
|
* Prune old audit_log rows from tasks.db.
|
|
54
86
|
*
|
|
55
87
|
* 1. If auditRetentionDays is 0 or undefined, skip age-based pruning.
|
|
56
|
-
* 2. Compute cutoff timestamp from auditRetentionDays
|
|
88
|
+
* 2. Compute cutoff timestamp from auditRetentionDays, clamped up to
|
|
89
|
+
* {@link AUDIT_RETENTION_FLOOR_DAYS}: the deletes sync to every device.
|
|
57
90
|
* 3. If archiveBeforePrune, select rows older than cutoff and write to
|
|
58
91
|
* .cleo/backups/logs/audit-YYYY-MM-DD.jsonl.gz.
|
|
59
92
|
* 4. Delete rows older than cutoff from audit_log.
|
|
@@ -73,7 +106,8 @@ export async function pruneAuditLog(cleoDir, config) {
|
|
|
73
106
|
log.debug('auditRetentionDays is 0 or unset; skipping audit prune');
|
|
74
107
|
return { rowsArchived: 0, rowsDeleted: 0 };
|
|
75
108
|
}
|
|
76
|
-
const
|
|
109
|
+
const days = Math.max(config.auditRetentionDays, AUDIT_RETENTION_FLOOR_DAYS);
|
|
110
|
+
const cutoff = new Date(Date.now() - days * 86_400_000).toISOString();
|
|
77
111
|
// Derive projectRoot from cleoDir (cleoDir = /path/to/project/.cleo)
|
|
78
112
|
const projectRoot = join(cleoDir, '..');
|
|
79
113
|
const { getDb } = await import('./store/sqlite.js');
|
package/dist/audit-prune.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-prune.js","sourceRoot":"","sources":["../src/audit-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"audit-prune.js","sourceRoot":"","sources":["../src/audit-prune.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,6 +124,19 @@ export type AccountingFinding = {
|
|
|
124
124
|
table: string;
|
|
125
125
|
pruned: number;
|
|
126
126
|
max: number;
|
|
127
|
+
} | {
|
|
128
|
+
reason: 'authoritative-not-normal';
|
|
129
|
+
} | {
|
|
130
|
+
reason: 'authoritative-grew';
|
|
131
|
+
table: string;
|
|
132
|
+
} | {
|
|
133
|
+
reason: 'authoritative-declared';
|
|
134
|
+
table: string;
|
|
135
|
+
} | {
|
|
136
|
+
reason: 'authoritative-omitted';
|
|
137
|
+
} | {
|
|
138
|
+
reason: 'authoritative-vault-key';
|
|
139
|
+
table: string;
|
|
127
140
|
};
|
|
128
141
|
/** The v3 verdict: the v2 outcomes, accounting refusals, or the stream's v3 ratchet. */
|
|
129
142
|
export type ManifestVerdictV3 = ManifestVerdict | {
|
|
@@ -158,6 +171,10 @@ export declare function txnRefKey(r: TxnRef): string;
|
|
|
158
171
|
* only the named transactions need loading: Decl(window) + Decl(parent.pending) − Decl(pending).
|
|
159
172
|
* The snapshot-authoritative keys ({@link isSnapshotAuthoritativeKey}: the vault's files and other
|
|
160
173
|
* databases) are not reconciled: no segment declares their rows (T12999).
|
|
174
|
+
* Neither are the tables `next.snapshotAuthoritative` lists (T13777): sorted and unique, never a vault
|
|
175
|
+
* key, a subset of the parent's list and never omitted after it when the parent has one, and never a
|
|
176
|
+
* table any segment at or below coversSeq ever declared rows for ({@link input.journaledTables}), nor one
|
|
177
|
+
* the window or the parent's pending declare.
|
|
161
178
|
* A v2 manifest is the v3 one with empty lists; a v2 segment is one transaction (txn 0) with the
|
|
162
179
|
* segment's deltas. Once a stream has a v3 checkpoint, a v2 one is refused (E_STREAM_VERSION): the
|
|
163
180
|
* lineage is linear, so checking the parent ratchets the whole stream.
|
|
@@ -167,6 +184,9 @@ export declare function txnRefKey(r: TxnRef): string;
|
|
|
167
184
|
* them must be here (`pending-unresolved` otherwise).
|
|
168
185
|
* @param input.voidedBefore - The stream's cumulative voided set before this checkpoint: at least
|
|
169
186
|
* the entries of every ref `next.revived` names.
|
|
187
|
+
* @param input.journaledTables - Of the tables `next.snapshotAuthoritative` lists, those any segment of
|
|
188
|
+
* the stream at or below coversSeq has ever declared rows for (T13777). The server computes it from the
|
|
189
|
+
* stored segments; omitted, only the window and the parent's pending are checked.
|
|
170
190
|
*/
|
|
171
191
|
export declare function checkManifestV3(input: {
|
|
172
192
|
readonly parent: Manifest | null;
|
|
@@ -175,6 +195,7 @@ export declare function checkManifestV3(input: {
|
|
|
175
195
|
readonly parentPending: readonly DeclaredTxn[];
|
|
176
196
|
readonly voidedBefore: readonly DeclaredTxn[];
|
|
177
197
|
readonly maxAcceptedSchemaVersion: number;
|
|
198
|
+
readonly journaledTables?: readonly string[];
|
|
178
199
|
}): ManifestVerdictV3;
|
|
179
200
|
/**
|
|
180
201
|
* The stream's cumulative voided set after an accepted checkpoint: the set before it, plus this
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-check.d.ts","sourceRoot":"","sources":["../../src/cloud/manifest-check.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manifest-check.d.ts","sourceRoot":"","sources":["../../src/cloud/manifest-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -162,6 +162,10 @@ function addInto(into, d, sign = 1) {
|
|
|
162
162
|
* only the named transactions need loading: Decl(window) + Decl(parent.pending) − Decl(pending).
|
|
163
163
|
* The snapshot-authoritative keys ({@link isSnapshotAuthoritativeKey}: the vault's files and other
|
|
164
164
|
* databases) are not reconciled: no segment declares their rows (T12999).
|
|
165
|
+
* Neither are the tables `next.snapshotAuthoritative` lists (T13777): sorted and unique, never a vault
|
|
166
|
+
* key, a subset of the parent's list and never omitted after it when the parent has one, and never a
|
|
167
|
+
* table any segment at or below coversSeq ever declared rows for ({@link input.journaledTables}), nor one
|
|
168
|
+
* the window or the parent's pending declare.
|
|
165
169
|
* A v2 manifest is the v3 one with empty lists; a v2 segment is one transaction (txn 0) with the
|
|
166
170
|
* segment's deltas. Once a stream has a v3 checkpoint, a v2 one is refused (E_STREAM_VERSION): the
|
|
167
171
|
* lineage is linear, so checking the parent ratchets the whole stream.
|
|
@@ -171,6 +175,9 @@ function addInto(into, d, sign = 1) {
|
|
|
171
175
|
* them must be here (`pending-unresolved` otherwise).
|
|
172
176
|
* @param input.voidedBefore - The stream's cumulative voided set before this checkpoint: at least
|
|
173
177
|
* the entries of every ref `next.revived` names.
|
|
178
|
+
* @param input.journaledTables - Of the tables `next.snapshotAuthoritative` lists, those any segment of
|
|
179
|
+
* the stream at or below coversSeq has ever declared rows for (T13777). The server computes it from the
|
|
180
|
+
* stored segments; omitted, only the window and the parent's pending are checked.
|
|
174
181
|
*/
|
|
175
182
|
export function checkManifestV3(input) {
|
|
176
183
|
const { parent, next } = input;
|
|
@@ -211,6 +218,31 @@ export function checkManifestV3(input) {
|
|
|
211
218
|
seen.add(k);
|
|
212
219
|
}
|
|
213
220
|
}
|
|
221
|
+
// T13777: the snapshot-authoritative list is sorted and unique, and only shrinks along the lineage (a
|
|
222
|
+
// parent without one allows any list).
|
|
223
|
+
const authoritative = next.snapshotAuthoritative ?? [];
|
|
224
|
+
if (authoritative.some((t, i) => i > 0 && t <= (authoritative[i - 1] ?? ''))) {
|
|
225
|
+
findings.push({ reason: 'authoritative-not-normal' });
|
|
226
|
+
}
|
|
227
|
+
if (parent?.snapshotAuthoritative !== undefined) {
|
|
228
|
+
// The effective list is inherited: omitting it after a checkpoint that had one is no reset.
|
|
229
|
+
if (next.snapshotAuthoritative === undefined)
|
|
230
|
+
findings.push({ reason: 'authoritative-omitted' });
|
|
231
|
+
const allowed = new Set(parent.snapshotAuthoritative);
|
|
232
|
+
for (const table of authoritative) {
|
|
233
|
+
if (!allowed.has(table))
|
|
234
|
+
findings.push({ reason: 'authoritative-grew', table });
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
const journaled = new Set(input.journaledTables ?? []);
|
|
238
|
+
for (const table of authoritative) {
|
|
239
|
+
// The vault's own keys are always the snapshot's; listing them is malformed.
|
|
240
|
+
if (isSnapshotAuthoritativeKey(table))
|
|
241
|
+
findings.push({ reason: 'authoritative-vault-key', table });
|
|
242
|
+
// A table any segment of the stream ever declared rows for is the journal's, at genesis too.
|
|
243
|
+
if (journaled.has(table))
|
|
244
|
+
findings.push({ reason: 'authoritative-declared', table });
|
|
245
|
+
}
|
|
214
246
|
if (parent === null) {
|
|
215
247
|
// Genesis snapshots the store: there is no window to account for or replay.
|
|
216
248
|
const empty = pending.length === 0 &&
|
|
@@ -261,6 +293,18 @@ export function checkManifestV3(input) {
|
|
|
261
293
|
addInto(declA, t.deltas, -1);
|
|
262
294
|
}
|
|
263
295
|
const appliedByKey = new Map([...candidates].filter(([k]) => !pendingKeys.has(k)));
|
|
296
|
+
// A table some segment declares rows for is the journal's, never the snapshot's alone (T13777).
|
|
297
|
+
for (const table of authoritative) {
|
|
298
|
+
const declared = [
|
|
299
|
+
input.window.deltas,
|
|
300
|
+
...[...parentPending.values()].map((t) => t.deltas),
|
|
301
|
+
].some((d) => {
|
|
302
|
+
const c = own(d, table);
|
|
303
|
+
return c.created !== 0 || c.deleted !== 0;
|
|
304
|
+
});
|
|
305
|
+
if (declared && !journaled.has(table))
|
|
306
|
+
findings.push({ reason: 'authoritative-declared', table });
|
|
307
|
+
}
|
|
264
308
|
for (const v of voided) {
|
|
265
309
|
const declared = appliedByKey.get(txnRefKey(v.ref));
|
|
266
310
|
if (!declared) {
|
|
@@ -331,9 +375,10 @@ export function checkManifestV3(input) {
|
|
|
331
375
|
...adjust.keys(),
|
|
332
376
|
...Object.keys(next.tables),
|
|
333
377
|
]);
|
|
378
|
+
const authoritativeSet = new Set(authoritative);
|
|
334
379
|
const regressions = [];
|
|
335
380
|
for (const table of [...tables].sort()) {
|
|
336
|
-
if (isSnapshotAuthoritativeKey(table))
|
|
381
|
+
if (isSnapshotAuthoritativeKey(table) || authoritativeSet.has(table))
|
|
337
382
|
continue;
|
|
338
383
|
const parentRows = Object.hasOwn(parent.tables, table) ? (parent.tables[table]?.rows ?? 0) : 0;
|
|
339
384
|
const { created, deleted } = declA.get(table) ?? ZERO;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-check.js","sourceRoot":"","sources":["../../src/cloud/manifest-check.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,CAAW;IACzC,OAAO,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAmBD,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,MAA8B;IACtD,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,4FAA4F;YAC5F,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;gBACnE,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;aACX,CAAC;YACF,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;QACpF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAuB,EACvB,IAAc,EACd,OAAoB,EACpB,wBAAgC;IAEhC,IAAI,IAAI,CAAC,aAAa,GAAG,wBAAwB,EAAE,CAAC;QAClD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,gBAAgB;YACtB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,wBAAwB;SACtC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,mFAAmF;IACnF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;QACrB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACvB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;YACxD,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAChD,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,+FAA+F;YAC/F,IAAI,UAAU,GAAG,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACzC,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK;oBACL,UAAU;oBACV,OAAO;oBACP,OAAO;oBACP,YAAY;oBACZ,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,eAAe;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,UAAU;gBACV,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,UAAU,EAAE,KAAK,CAAC,IAAI;gBACtB,MAAM,EAAE,gBAAgB;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;QACd,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,OAAO,GAAG,KAAK,gBAAgB,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACpE,CAAC;AA2BD,8GAA8G;AAC9G,MAAM,UAAU,QAAQ,CACtB,IAA4B,EAC5B,iBAAwC,EAAE;IAE1C,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,cAAqC;IACjF,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YACzD,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAsBD,4CAA4C;AAC5C,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,GAAG,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,UAAU,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7D,CAAC;AAGD,MAAM,IAAI,GAAW,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAChD,MAAM,GAAG,GAAG,CAAC,CAAc,EAAE,CAAS,EAAU,EAAE,CAChD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAwB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAEtE,SAAS,OAAO,CAAC,IAAyB,EAAE,CAAc,EAAE,IAAI,GAAG,CAAC;IAClE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,eAAe,CAAC,KAO/B;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,IAAI,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IACvF,IAAI,KAAK,GAAG,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,gBAAgB;YACtB,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE,KAAK,CAAC,wBAAwB;SAC5C,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpF,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI;QACzB,CAAC,SAAS,EAAE,OAAO,CAAC;QACpB,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC9B,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,4EAA4E;QAC5E,MAAM,KAAK,GACT,OAAO,CAAC,MAAM,KAAK,CAAC;YACpB,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,OAAO,CAAC,MAAM,KAAK,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;YAChC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC3D,yFAAyF;QACzF,uFAAuF;QACvF,2EAA2E;QAC3E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC;YACrF,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,4BAA4B;oBACpC,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE;YACxD,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IAC9F,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI;QAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa;QAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,+FAA+F;IAC/F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;;YAC3D,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IACtF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,IAAI,GACR,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;YACjC,QAAQ,CAAC,KAAK,CACZ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,CACnF,CAAC;QACJ,IAAI,CAAC,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,iGAAiG;QACjG,iGAAiG;QACjG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,4BAA4B;gBACpC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC;IAEvF,iCAAiC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/E,KAAK,MAAM,CAAC,IAAI,MAAM;QACpB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAChF,KAAK,MAAM,CAAC,IAAI,OAAO;QACrB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAChF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;QACrB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,GAAG,KAAK,CAAC,IAAI,EAAE;QACf,GAAG,MAAM,CAAC,IAAI,EAAE;QAChB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;KAC5B,CAAC,CAAC;IACH,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,0BAA0B,CAAC,KAAK,CAAC;YAAE,SAAS;QAChD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;QACtD,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,UAAU,GAAG,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACzC,WAAW,CAAC,IAAI,CAAC;oBACf,KAAK;oBACL,UAAU;oBACV,OAAO;oBACP,OAAO;oBACP,YAAY;oBACZ,UAAU,EAAE,CAAC;oBACb,MAAM,EAAE,eAAe;iBACxB,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK;gBACL,UAAU;gBACV,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,UAAU,EAAE,KAAK,CAAC,IAAI;gBACtB,MAAM,EAAE,gBAAgB;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,KAAK,CAAC;QAC7B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;QACd,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,MAA8B,EAC9B,MAA8B,EAC9B,OAA+B;IAE/B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAwD,CAAC;IAC5E,MAAM,KAAK,GAAG,CAAC,IAA4B,EAAE,IAAY,EAAE,EAAE;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAG,EAAkB,EAAE,CAAC;YAC1E,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7F,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"manifest-check.js","sourceRoot":"","sources":["../../src/cloud/manifest-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,7 @@ import type { CloudLeaseReleaseResult, CloudPushResult, CloudRestoreResult, Clou
|
|
|
55
55
|
import { type PullStreamReport } from '../store/sync/pull.js';
|
|
56
56
|
import { type PushStreamReport } from '../store/sync/push.js';
|
|
57
57
|
import type { ServerRetirement } from '../store/sync/retire.js';
|
|
58
|
+
import { type JournalTallies } from './journal-tallies.js';
|
|
58
59
|
import { type NexusVaultConnection, type NexusVaultOptions } from './nexus-vault-keys.js';
|
|
59
60
|
/** Default lease length of a push: long enough for a large upload, short enough to hand off. */
|
|
60
61
|
export declare const NEXUS_VAULT_LEASE_TTL_SECONDS = 900;
|
|
@@ -99,6 +100,24 @@ export interface NexusVaultCommandOptions extends NexusVaultOptions {
|
|
|
99
100
|
/** `project` (the current project, default) or `global` (this account's global store). */
|
|
100
101
|
scope?: CloudVaultScope;
|
|
101
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* The rows a parent hashed under an older vault format counted that this
|
|
105
|
+
* format leaves out (T13808): rows local by row-identity spec. They never
|
|
106
|
+
* travelled, so the journal declares no delete for them; the checkpoint names
|
|
107
|
+
* them `pruned`, so the server's row rule takes them off the parent's count.
|
|
108
|
+
* Per table, the shortfall against the tallies, capped by the local rows this
|
|
109
|
+
* store holds now; a parent in the current format prunes nothing.
|
|
110
|
+
*
|
|
111
|
+
* @param parentFormat - The parent's {@link vaultManifestFormat}.
|
|
112
|
+
* @param tallies - The window's tallies.
|
|
113
|
+
* @param local - The store's rows per manifest key.
|
|
114
|
+
* @param localRows - Per table, the rows the manifest left out as local.
|
|
115
|
+
* @returns The tallies less the pruned rows, and the `pruned` map.
|
|
116
|
+
*/
|
|
117
|
+
export declare function formatTransitionPruned(parentFormat: number | 'unknown', tallies: JournalTallies, local: Readonly<Record<string, number>>, localRows: Readonly<Record<string, number>>): {
|
|
118
|
+
tallies: JournalTallies;
|
|
119
|
+
pruned: Record<string, number>;
|
|
120
|
+
};
|
|
102
121
|
/**
|
|
103
122
|
* The server's retirements a receiver of `scope`'s stream confirms a `retire`
|
|
104
123
|
* by (T13366). The home stream: `retiredAt` and `successor` on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexus-vault.d.ts","sourceRoot":"","sources":["../../src/cloud/nexus-vault.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAQH,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EAGf,eAAe,EAEf,sBAAsB,EAGtB,iBAAiB,EAGlB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"nexus-vault.d.ts","sourceRoot":"","sources":["../../src/cloud/nexus-vault.ts"],"names":[],"mappings":"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"}
|