@cavelang/store 0.35.0 → 0.36.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/README.md +884 -15
- package/dist/src/backup.d.ts.map +1 -1
- package/dist/src/backup.js +143 -70
- package/dist/src/backup.js.map +1 -1
- package/dist/src/capture-claim.d.ts +4 -0
- package/dist/src/capture-claim.d.ts.map +1 -0
- package/dist/src/capture-claim.js +26 -0
- package/dist/src/capture-claim.js.map +1 -0
- package/dist/src/descriptor.d.ts +3 -0
- package/dist/src/descriptor.d.ts.map +1 -0
- package/dist/src/descriptor.js +21 -0
- package/dist/src/descriptor.js.map +1 -0
- package/dist/src/error-message.d.ts +3 -0
- package/dist/src/error-message.d.ts.map +1 -0
- package/dist/src/error-message.js +10 -0
- package/dist/src/error-message.js.map +1 -0
- package/dist/src/locate.d.ts.map +1 -1
- package/dist/src/locate.js +33 -13
- package/dist/src/locate.js.map +1 -1
- package/dist/src/node-adapter.d.ts.map +1 -1
- package/dist/src/node-adapter.js +29 -1
- package/dist/src/node-adapter.js.map +1 -1
- package/dist/src/provenance.d.ts +4 -0
- package/dist/src/provenance.d.ts.map +1 -1
- package/dist/src/provenance.js +36 -1
- package/dist/src/provenance.js.map +1 -1
- package/dist/src/query-sql.d.ts.map +1 -1
- package/dist/src/query-sql.js +4 -2
- package/dist/src/query-sql.js.map +1 -1
- package/dist/src/read-snapshot.d.ts +4 -0
- package/dist/src/read-snapshot.d.ts.map +1 -0
- package/dist/src/read-snapshot.js +22 -0
- package/dist/src/read-snapshot.js.map +1 -0
- package/dist/src/record.d.ts.map +1 -1
- package/dist/src/record.js +102 -25
- package/dist/src/record.js.map +1 -1
- package/dist/src/resolve.d.ts.map +1 -1
- package/dist/src/resolve.js +42 -18
- package/dist/src/resolve.js.map +1 -1
- package/dist/src/row.d.ts.map +1 -1
- package/dist/src/row.js +45 -17
- package/dist/src/row.js.map +1 -1
- package/dist/src/runtime.d.ts.map +1 -1
- package/dist/src/runtime.js +8 -4
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/schema.d.ts +1 -2
- package/dist/src/schema.d.ts.map +1 -1
- package/dist/src/schema.js +116 -15
- package/dist/src/schema.js.map +1 -1
- package/dist/src/store.d.ts +17 -5
- package/dist/src/store.d.ts.map +1 -1
- package/dist/src/store.js +451 -104
- package/dist/src/store.js.map +1 -1
- package/package.json +4 -4
- package/src/backup.ts +141 -65
- package/src/capture-claim.ts +30 -0
- package/src/descriptor.ts +19 -0
- package/src/error-message.ts +8 -0
- package/src/locate.ts +31 -12
- package/src/node-adapter.ts +28 -1
- package/src/provenance.ts +33 -1
- package/src/query-sql.ts +4 -2
- package/src/read-snapshot.ts +21 -0
- package/src/record.ts +102 -26
- package/src/resolve.ts +43 -20
- package/src/row.ts +29 -2
- package/src/runtime.ts +8 -4
- package/src/schema.ts +117 -18
- package/src/store.ts +452 -125
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-adapter.js","sourceRoot":"","sources":["../../src/node-adapter.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"node-adapter.js","sourceRoot":"","sources":["../../src/node-adapter.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,cAAc,GAAG,CAAC,EAAY,EAAgB,EAAE,CAAC,EAAkB,CAAA;AAEzE,IAAI,YAAY,GAAG,KAAK,CAAA;AAExB,gFAAgF;AAChF,MAAM,UAAU,GAAG,GAAS,EAAE;IAC5B,IAAI,YAAY;QAAE,OAAM;IACxB,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAA;IAC1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAA;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAA;QAC9H,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,EAC1C,kCAAkC,YAAY,CAAC,KAAK,CAAC,iCAAiC,YAAY,CAAC,UAAU,CAAC,EAAE,EAChH,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QACrB,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IACD,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,YAAY,GAAG,IAAI,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAY;IACxC,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE;QACZ,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QACnD,QAAQ,EAAE,MAAM;QAChB,aAAa,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QACnE,MAAM,EAAE;YACN,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC7C,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,aAAa;YACrD,KAAK,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE;gBACzB,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC9C,CAAC;SACF;KACF;IACD,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;QAC3B,UAAU,EAAE,CAAA;QACZ,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxC,CAAC;CACF,CAAA"}
|
package/dist/src/provenance.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ export type Entry = {
|
|
|
19
19
|
};
|
|
20
20
|
export declare const entries: (contexts: readonly string[], input?: Input) => Entry[];
|
|
21
21
|
export declare const fromEntries: (values: readonly Entry[]) => t;
|
|
22
|
+
/** Stable set representation for interchange and identity comparison. */
|
|
23
|
+
export declare const normalize: (value: t) => t;
|
|
24
|
+
/** Parse a complete explicit provenance object; reject unknown dimensions and malformed entries. */
|
|
25
|
+
export declare const parse: (value: unknown) => undefined | t;
|
|
22
26
|
/** Idempotently derives dimensions for rows written by older CAVE versions. */
|
|
23
27
|
export declare const backfill: (db: Database) => void;
|
|
24
28
|
//# sourceMappingURL=provenance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAA;AAE7D,MAAM,MAAM,CAAC,GAAG;IACd,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAwCD,eAAO,MAAM,OAAO,GAAI,UAAU,SAAS,MAAM,EAAE,EAAE,QAAO,KAAU,KAAG,KAAK,EAe7E,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,QAAQ,SAAS,KAAK,EAAE,KAAG,CAKrD,CAAA;AAEF,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,IAAI,QAAQ,KAAG,
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAA;AAE7D,MAAM,MAAM,CAAC,GAAG;IACd,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAwCD,eAAO,MAAM,OAAO,GAAI,UAAU,SAAS,MAAM,EAAE,EAAE,QAAO,KAAU,KAAG,KAAK,EAe7E,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,QAAQ,SAAS,KAAK,EAAE,KAAG,CAKrD,CAAA;AAEF,yEAAyE;AACzE,eAAO,MAAM,SAAS,GAAI,OAAO,CAAC,KAAG,CAKnC,CAAA;AAEF,oGAAoG;AACpG,eAAO,MAAM,KAAK,GAAI,OAAO,OAAO,KAAG,SAAS,GAAG,CAgBlD,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,IAAI,QAAQ,KAAG,IAwBvC,CAAA"}
|
package/dist/src/provenance.js
CHANGED
|
@@ -51,6 +51,35 @@ export const fromEntries = (values) => ({
|
|
|
51
51
|
runs: values.filter(entry => entry.dimension === 'run').map(entry => entry.value),
|
|
52
52
|
domains: values.filter(entry => entry.dimension === 'domain').map(entry => entry.value)
|
|
53
53
|
});
|
|
54
|
+
/** Stable set representation for interchange and identity comparison. */
|
|
55
|
+
export const normalize = (value) => ({
|
|
56
|
+
actors: [...new Set(value.actors)].sort(),
|
|
57
|
+
sources: [...new Set(value.sources)].sort(),
|
|
58
|
+
runs: [...new Set(value.runs)].sort(),
|
|
59
|
+
domains: [...new Set(value.domains)].sort(),
|
|
60
|
+
});
|
|
61
|
+
/** Parse a complete explicit provenance object; reject unknown dimensions and malformed entries. */
|
|
62
|
+
export const parse = (value) => {
|
|
63
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
64
|
+
return undefined;
|
|
65
|
+
const object = value;
|
|
66
|
+
const keys = ['actors', 'sources', 'runs', 'domains'];
|
|
67
|
+
const fields = Object.keys(object);
|
|
68
|
+
if (fields.length !== keys.length || keys.some(key => !fields.includes(key)))
|
|
69
|
+
return undefined;
|
|
70
|
+
const captured = { actors: [], sources: [], runs: [], domains: [] };
|
|
71
|
+
for (const key of keys) {
|
|
72
|
+
const dimension = object[key];
|
|
73
|
+
if (!Array.isArray(dimension))
|
|
74
|
+
return undefined;
|
|
75
|
+
const values = Array.from(dimension);
|
|
76
|
+
if (!values.every((entry) => typeof entry === 'string' && entry.length > 0 &&
|
|
77
|
+
!/[\uD800-\uDFFF]/u.test(entry)))
|
|
78
|
+
return undefined;
|
|
79
|
+
captured[key] = values;
|
|
80
|
+
}
|
|
81
|
+
return normalize(captured);
|
|
82
|
+
};
|
|
54
83
|
/** Idempotently derives dimensions for rows written by older CAVE versions. */
|
|
55
84
|
export const backfill = (db) => {
|
|
56
85
|
const missing = db.prepare(`
|
|
@@ -61,7 +90,13 @@ export const backfill = (db) => {
|
|
|
61
90
|
`).all();
|
|
62
91
|
const grouped = new Map();
|
|
63
92
|
for (const row of missing) {
|
|
64
|
-
|
|
93
|
+
let contexts = grouped.get(row.id);
|
|
94
|
+
if (contexts === undefined) {
|
|
95
|
+
contexts = [];
|
|
96
|
+
grouped.set(row.id, contexts);
|
|
97
|
+
}
|
|
98
|
+
if (row.context !== null)
|
|
99
|
+
contexts.push(row.context);
|
|
65
100
|
}
|
|
66
101
|
const insert = db.prepare(`
|
|
67
102
|
INSERT OR IGNORE INTO cave_provenance (claim_id, dimension, value) VALUES (?, ?, ?)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-sql.d.ts","sourceRoot":"","sources":["../../src/query-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"query-sql.d.ts","sourceRoot":"","sources":["../../src/query-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,iBAAiB,GAAG,SASpE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,YAAY,GAAG,SAK1D,CAAA;AAED,4EAA4E;AAC5E,eAAO,MAAM,aAAa,GAAI,UAAU,YAAY,EAAE,eAAa,KAAG,MACnB,CAAA;AAEnD,2DAA2D;AAC3D,eAAO,MAAM,MAAM,GAAI,WAAW,YAAY,KAAG,MAEgB,CAAA;AAEjE;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,SAAQ,MAAiB,KAAG,MAMnD,CAAA;AAED,0EAA0E;AAC1E,eAAO,MAAM,UAAU,GAAI,aAAY,MAAkB,KAAG,MAQ1D,CAAA;AAEF,iFAAiF;AACjF,eAAO,MAAM,UAAU,GAAI,aAAY,MAAkB,KAAG,MAK1D,CAAA;AAEF,gFAAgF;AAChF,eAAO,MAAM,SAAS,QAAO,MAI3B,CAAA;AAEF,8EAA8E;AAC9E,eAAO,MAAM,YAAY,GAAI,aAAY,MAAkB,KAAG,MACA,CAAA;AAE9D,yEAAyE;AACzE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAC8C,CAAA"}
|
package/dist/src/query-sql.js
CHANGED
|
@@ -13,9 +13,11 @@ export const transactionBounds = (text) => {
|
|
|
13
13
|
const boundary = Time.parseBoundary(text);
|
|
14
14
|
if (boundary === undefined)
|
|
15
15
|
return undefined;
|
|
16
|
+
// UUID transactions cannot precede the Unix epoch. Earlier calendar
|
|
17
|
+
// intervals are empty; intervals crossing the epoch retain their overlap.
|
|
16
18
|
return {
|
|
17
|
-
lo: Uuidv7.at(boundary.start, 0, new Uint8Array(8)),
|
|
18
|
-
hi: Uuidv7.at(boundary.end, 0, new Uint8Array(8)),
|
|
19
|
+
lo: Uuidv7.at(Math.max(0, boundary.start), 0, new Uint8Array(8)),
|
|
20
|
+
hi: Uuidv7.at(Math.max(0, boundary.end), 0, new Uint8Array(8)),
|
|
19
21
|
};
|
|
20
22
|
};
|
|
21
23
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-sql.js","sourceRoot":"","sources":["../../src/query-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAY/B,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAiC,EAAE;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC5C,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"query-sql.js","sourceRoot":"","sources":["../../src/query-sql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Database } from './adapter.ts';
|
|
2
|
+
/** Keep a multi-query read on one deferred snapshot, including inside caller transactions. */
|
|
3
|
+
export declare const readSnapshot: <T>(db: Database, operation: "export" | "resolution" | "reverse", read: () => T) => T;
|
|
4
|
+
//# sourceMappingURL=read-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-snapshot.d.ts","sourceRoot":"","sources":["../../src/read-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,8FAA8F;AAC9F,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,IAAI,QAAQ,EAAE,WAAW,QAAQ,GAAG,YAAY,GAAG,SAAS,EAAE,MAAM,MAAM,CAAC,KAAG,CAgB7G,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { errorMessage } from "./error-message.js";
|
|
2
|
+
/** Keep a multi-query read on one deferred snapshot, including inside caller transactions. */
|
|
3
|
+
export const readSnapshot = (db, operation, read) => {
|
|
4
|
+
const savepoint = `cave_${operation}_read`;
|
|
5
|
+
db.exec(`SAVEPOINT ${savepoint}`);
|
|
6
|
+
let result;
|
|
7
|
+
try {
|
|
8
|
+
result = read();
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
try {
|
|
12
|
+
db.exec(`RELEASE ${savepoint}`);
|
|
13
|
+
}
|
|
14
|
+
catch (releaseError) {
|
|
15
|
+
throw new AggregateError([error, releaseError], `CAVE ${operation} failed: ${errorMessage(error)}; read snapshot release also failed: ${errorMessage(releaseError)}`, { cause: error });
|
|
16
|
+
}
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
db.exec(`RELEASE ${savepoint}`);
|
|
20
|
+
return result;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=read-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-snapshot.js","sourceRoot":"","sources":["../../src/read-snapshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,EAAY,EAAE,SAA8C,EAAE,IAAa,EAAK,EAAE;IAChH,MAAM,SAAS,GAAG,QAAQ,SAAS,OAAO,CAAA;IAC1C,EAAE,CAAC,IAAI,CAAC,aAAa,SAAS,EAAE,CAAC,CAAA;IACjC,IAAI,MAAS,CAAA;IACb,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,EAAE,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,CAAC,WAAW,SAAS,EAAE,CAAC,CAAA;QAAC,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YAC5D,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,EAC5C,QAAQ,SAAS,YAAY,YAAY,CAAC,KAAK,CAAC,wCAAwC,YAAY,CAAC,YAAY,CAAC,EAAE,EACpH,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QACrB,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,WAAW,SAAS,EAAE,CAAC,CAAA;IAC/B,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
|
package/dist/src/record.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAGpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAGpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAElD,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AAEpC,eAAO,MAAM,MAAM,EAAG,YAAqB,CAAA;AAC3C,eAAO,MAAM,OAAO,EAAG,CAAU,CAAA;AAEjC;;;;GAIG;AACH,MAAM,MAAM,EAAE,GAAG;IACf,QAAQ,CAAC,MAAM,EAAE,OAAO,MAAM,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAA;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;AAQlB,eAAO,MAAM,EAAE,GAAI,KAAK,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,KAAG,CAuBzE,CAAA;AAwED,8EAA8E;AAC9E,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,GAAG,OAAO,KAAG,CAoBhD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,QAAQ,CAAC,EAAE,QAAQ,MAAM,KAAG,MACT,CAAA"}
|
package/dist/src/record.js
CHANGED
|
@@ -1,46 +1,123 @@
|
|
|
1
1
|
/** Versioned, storage-independent claim and transaction records. */
|
|
2
|
-
import { Key, Uuidv7 } from '@cavelang/core';
|
|
2
|
+
import { Key, Uuidv7, Value } from '@cavelang/core';
|
|
3
3
|
import { emitClaim } from '@cavelang/canonical';
|
|
4
|
+
import { parse as parseProvenance } from "./provenance.js";
|
|
4
5
|
export const format = 'cave.claim';
|
|
5
6
|
export const version = 1;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
const requireTransactionIdentity = (id, tx) => {
|
|
8
|
+
if (typeof id !== 'string' || !Uuidv7.is(id) || tx !== id) {
|
|
9
|
+
throw new Error(`CAVE record: malformed ${format}/v${version} transaction identity`);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export const of = (row, claim, provenance) => {
|
|
13
|
+
const id = row.id, tx = row.tx;
|
|
14
|
+
requireTransactionIdentity(id, tx);
|
|
15
|
+
const key = row.claim_key;
|
|
16
|
+
const capturedClaim = structuredClone(claim);
|
|
17
|
+
validateClaim(capturedClaim);
|
|
18
|
+
if (Key.of(capturedClaim) !== key) {
|
|
19
|
+
throw new Error(`CAVE record: malformed ${format}/v${version} semantic identity`);
|
|
20
|
+
}
|
|
21
|
+
const capturedProvenance = structuredClone(provenance);
|
|
22
|
+
if (parseProvenance(capturedProvenance) === undefined) {
|
|
23
|
+
throw new Error(`CAVE record: malformed ${format}/v${version} provenance`);
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
format,
|
|
27
|
+
version,
|
|
28
|
+
id,
|
|
29
|
+
tx,
|
|
30
|
+
key,
|
|
31
|
+
canonical: emitClaim(capturedClaim),
|
|
32
|
+
claim: capturedClaim,
|
|
33
|
+
provenance: capturedProvenance,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
16
36
|
const object = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
17
|
-
const strings = (value) =>
|
|
37
|
+
const strings = (value) => {
|
|
38
|
+
if (!Array.isArray(value))
|
|
39
|
+
return false;
|
|
40
|
+
for (const entry of value)
|
|
41
|
+
if (typeof entry !== 'string')
|
|
42
|
+
return false;
|
|
43
|
+
return true;
|
|
44
|
+
};
|
|
45
|
+
const term = (value) => object(value) &&
|
|
46
|
+
(value['kind'] === 'entity' || value['kind'] === 'text' || value['kind'] === 'code') &&
|
|
47
|
+
typeof value['text'] === 'string';
|
|
48
|
+
const semanticValue = (value) => {
|
|
49
|
+
if (!object(value) || typeof value['kind'] !== 'string' ||
|
|
50
|
+
!['number', 'trajectory', 'date', 'atom', 'text', 'code'].includes(value['kind']) ||
|
|
51
|
+
typeof value['raw'] !== 'string' || typeof value['approx'] !== 'boolean' ||
|
|
52
|
+
(value['unit'] !== undefined && typeof value['unit'] !== 'string'))
|
|
53
|
+
return false;
|
|
54
|
+
for (const field of ['num', 'from', 'to']) {
|
|
55
|
+
const number = value[field];
|
|
56
|
+
if (number !== undefined && (typeof number !== 'number' || !Number.isFinite(number)))
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
const parsed = value['kind'] === 'text' ? Value.ofText(value['raw']) :
|
|
60
|
+
value['kind'] === 'code' ? Value.ofCode(value['raw']) : Value.parse(value['raw']);
|
|
61
|
+
return value['kind'] === parsed.kind && value['approx'] === parsed.approx &&
|
|
62
|
+
value['num'] === parsed.num && value['from'] === parsed.from && value['to'] === parsed.to &&
|
|
63
|
+
value['unit'] === parsed.unit;
|
|
64
|
+
};
|
|
65
|
+
const payload = (value) => {
|
|
66
|
+
switch (value['kind']) {
|
|
67
|
+
case 'none': return true;
|
|
68
|
+
case 'relation': return term(value['object']);
|
|
69
|
+
case 'attribute': return typeof value['attribute'] === 'string' && semanticValue(value['value']);
|
|
70
|
+
case 'metric': return semanticValue(value['value']);
|
|
71
|
+
default: return false;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const validateClaim = (claim) => {
|
|
75
|
+
if (!object(claim) || !object(claim['subject']) || !object(claim['payload']) ||
|
|
76
|
+
typeof claim['verb'] !== 'string' || typeof claim['negated'] !== 'boolean' ||
|
|
77
|
+
!strings(claim['contexts']) || !Array.isArray(claim['tags']) ||
|
|
78
|
+
typeof claim['conf'] !== 'number' || typeof claim['importance'] !== 'boolean' ||
|
|
79
|
+
typeof claim['raw'] !== 'string') {
|
|
80
|
+
throw new Error(`CAVE record: malformed ${format}/v${version}`);
|
|
81
|
+
}
|
|
82
|
+
for (const tag of claim['tags']) {
|
|
83
|
+
if (!object(tag) || typeof tag['key'] !== 'string' ||
|
|
84
|
+
(tag['value'] !== undefined && typeof tag['value'] !== 'string')) {
|
|
85
|
+
throw new Error(`CAVE record: malformed ${format}/v${version} tag`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (!term(claim['subject']) ||
|
|
89
|
+
(claim['payload']['kind'] === 'relation' && !term(claim['payload']['object']))) {
|
|
90
|
+
throw new Error(`CAVE record: malformed ${format}/v${version} term`);
|
|
91
|
+
}
|
|
92
|
+
if (!payload(claim['payload'])) {
|
|
93
|
+
throw new Error(`CAVE record: malformed ${format}/v${version} payload`);
|
|
94
|
+
}
|
|
95
|
+
const sigmaLevel = claim['sigmaLevel'];
|
|
96
|
+
const delta = claim['delta'];
|
|
97
|
+
if ((delta !== undefined && (!semanticValue(delta) || !object(delta) ||
|
|
98
|
+
typeof delta['num'] !== 'number' || delta['num'] <= 0)) ||
|
|
99
|
+
(sigmaLevel !== undefined && (typeof sigmaLevel !== 'number' || !Number.isFinite(sigmaLevel) || sigmaLevel <= 0)) ||
|
|
100
|
+
(claim['comment'] !== undefined && typeof claim['comment'] !== 'string')) {
|
|
101
|
+
throw new Error(`CAVE record: malformed ${format}/v${version} metadata`);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
18
104
|
/** Decode a persisted v1 fixture, rejecting unknown future formats loudly. */
|
|
19
105
|
export const decode = (input) => {
|
|
20
|
-
const value = typeof input === 'string' ? JSON.parse(input) : input;
|
|
106
|
+
const value = typeof input === 'string' ? JSON.parse(input) : structuredClone(input);
|
|
21
107
|
if (!object(value) || value['format'] !== format) {
|
|
22
108
|
throw new Error(`CAVE record: expected format ${JSON.stringify(format)}`);
|
|
23
109
|
}
|
|
24
110
|
if (value['version'] !== version) {
|
|
25
111
|
throw new Error(`CAVE record: unsupported ${format} version ${JSON.stringify(value['version'])}`);
|
|
26
112
|
}
|
|
27
|
-
const claim = value['claim'];
|
|
28
|
-
const provenance = value['provenance'];
|
|
29
113
|
if (typeof value['id'] !== 'string' || typeof value['tx'] !== 'string' ||
|
|
30
114
|
typeof value['key'] !== 'string' || typeof value['canonical'] !== 'string' ||
|
|
31
|
-
|
|
32
|
-
typeof claim['verb'] !== 'string' || typeof claim['negated'] !== 'boolean' ||
|
|
33
|
-
!strings(claim['contexts']) || !Array.isArray(claim['tags']) ||
|
|
34
|
-
typeof claim['conf'] !== 'number' || typeof claim['importance'] !== 'boolean' ||
|
|
35
|
-
typeof claim['raw'] !== 'string' || !object(provenance) ||
|
|
36
|
-
!strings(provenance['actors']) || !strings(provenance['sources']) ||
|
|
37
|
-
!strings(provenance['runs']) || !strings(provenance['domains'])) {
|
|
115
|
+
parseProvenance(value['provenance']) === undefined) {
|
|
38
116
|
throw new Error(`CAVE record: malformed ${format}/v${version}`);
|
|
39
117
|
}
|
|
118
|
+
validateClaim(value['claim']);
|
|
40
119
|
const decoded = value;
|
|
41
|
-
|
|
42
|
-
throw new Error(`CAVE record: malformed ${format}/v${version} transaction identity`);
|
|
43
|
-
}
|
|
120
|
+
requireTransactionIdentity(decoded.id, decoded.tx);
|
|
44
121
|
if (Key.of(decoded.claim) !== decoded.key || emitClaim(decoded.claim) !== decoded.canonical) {
|
|
45
122
|
throw new Error(`CAVE record: malformed ${format}/v${version} semantic identity`);
|
|
46
123
|
}
|
package/dist/src/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AAEpC,+CAA+C;AAC/C,MAAM,MAAM,KAAK,GAAG;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,mEAAmE;AACnE,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,uEAAuE;AACvE,MAAM,MAAM,SAAS,GAAG;IACtB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,KAAK,EAMpC,CAAA;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AAEpC,+CAA+C;AAC/C,MAAM,MAAM,KAAK,GAAG;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,mEAAmE;AACnE,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,uEAAuE;AACvE,MAAM,MAAM,SAAS,GAAG;IACtB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,KAAK,EAMpC,CAAA;AA2DD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,QAAQ,EAAE,YAAY,MAAM,KAAG,KAAK,EA0ClE,CAAA;AAkBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,SAAS,KAAK,EAAE,EACzB,YAAY,MAAM,EAClB,UAAS;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,KAClC,MA4DF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,SAAS,KAAK,EAAE,EACzB,YAAY,MAAM,EAClB,UAAS;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,KAClC,MAC4F,CAAA"}
|
package/dist/src/resolve.js
CHANGED
|
@@ -58,9 +58,12 @@ const rootOf = (entries, dimension) => entries.find(entry => entry.prefix === ''
|
|
|
58
58
|
*/
|
|
59
59
|
const classOf = (entries, paths) => {
|
|
60
60
|
const root = rootOf(entries, 'precedence') ?? 0;
|
|
61
|
-
|
|
62
|
-
root
|
|
63
|
-
|
|
61
|
+
if (paths.length === 0)
|
|
62
|
+
return root;
|
|
63
|
+
let maximum = Number.NEGATIVE_INFINITY;
|
|
64
|
+
for (const path of paths)
|
|
65
|
+
maximum = Math.max(maximum, lookup(entries, path, 'precedence') ?? root);
|
|
66
|
+
return maximum;
|
|
64
67
|
};
|
|
65
68
|
/**
|
|
66
69
|
* Declared value of a policy row, normalized — `undefined` when it does
|
|
@@ -98,8 +101,7 @@ export const readPolicy = (db, currentSql) => {
|
|
|
98
101
|
AND (c.subject = 'source' OR substr(c.subject, 1, 7) = 'source/')
|
|
99
102
|
`).all();
|
|
100
103
|
const sourcesOf = db.prepare(`
|
|
101
|
-
SELECT
|
|
102
|
-
ELSE substr(substr(context, 5), 1, instr(substr(context, 5), '#') - 1) END AS path
|
|
104
|
+
SELECT context
|
|
103
105
|
FROM cave_context
|
|
104
106
|
WHERE claim_id = ? AND substr(context, 1, 4) = 'src:'
|
|
105
107
|
`);
|
|
@@ -110,15 +112,16 @@ export const readPolicy = (db, currentSql) => {
|
|
|
110
112
|
if (value === undefined) {
|
|
111
113
|
continue;
|
|
112
114
|
}
|
|
113
|
-
const paths = sourcesOf.all(row.id)
|
|
114
|
-
|
|
115
|
+
const paths = sourcesOf.all(row.id)
|
|
116
|
+
.map(source => source.context.slice(4).split('#', 1)[0]);
|
|
117
|
+
const key = JSON.stringify([row.subject, row.attribute]);
|
|
115
118
|
const candidates = contests.get(key) ?? [];
|
|
116
119
|
candidates.push({ row, value, cls: classOf(builtins, paths) });
|
|
117
120
|
contests.set(key, candidates);
|
|
118
121
|
}
|
|
119
122
|
const merged = new Map(builtins.map(entry => [entry.prefix, { ...entry }]));
|
|
120
123
|
for (const [key, candidates] of contests) {
|
|
121
|
-
const [subject, attribute] =
|
|
124
|
+
const [subject, attribute] = JSON.parse(key);
|
|
122
125
|
const winner = candidates.sort((a, b) => b.cls - a.cls || b.row.conf - a.row.conf || (a.row.tx < b.row.tx ? 1 : a.row.tx > b.row.tx ? -1 : 0))[0];
|
|
123
126
|
const prefix = subject === 'source' ? '' : subject.slice('source/'.length);
|
|
124
127
|
const entry = merged.get(prefix) ?? { prefix };
|
|
@@ -127,7 +130,13 @@ export const readPolicy = (db, currentSql) => {
|
|
|
127
130
|
}
|
|
128
131
|
return [...merged.values()].sort((a, b) => a.prefix < b.prefix ? -1 : a.prefix > b.prefix ? 1 : 0);
|
|
129
132
|
};
|
|
130
|
-
const sqlString = (text) =>
|
|
133
|
+
const sqlString = (text) => {
|
|
134
|
+
if (text.includes('\0')) {
|
|
135
|
+
const hex = Array.from(new TextEncoder().encode(text), byte => byte.toString(16).padStart(2, '0')).join('');
|
|
136
|
+
return `CAST(X'${hex}' AS TEXT)`;
|
|
137
|
+
}
|
|
138
|
+
return `'${text.replaceAll("'", "''")}'`;
|
|
139
|
+
};
|
|
131
140
|
const sqlNumber = (value) => value !== undefined && Number.isFinite(value) ? String(value) : 'NULL';
|
|
132
141
|
/** `cave_claim` columns, for projecting helper columns away. */
|
|
133
142
|
const claimColumns = 'id, tx, subject, verb, negated, object, attribute, value_text, value_num, value_unit, value_approx, ' +
|
|
@@ -145,7 +154,18 @@ const claimColumns = 'id, tx, subject, verb, negated, object, attribute, value_t
|
|
|
145
154
|
* grouping only — returned rows keep their stored spelling.
|
|
146
155
|
*/
|
|
147
156
|
export const rankedSql = (entries, currentSql, options = {}) => {
|
|
148
|
-
|
|
157
|
+
let policySql;
|
|
158
|
+
const materialized = entries.length > 16;
|
|
159
|
+
if (materialized) {
|
|
160
|
+
const finite = (value) => value !== undefined && Number.isFinite(value) ? value : null;
|
|
161
|
+
const data = JSON.stringify(entries.map(entry => [entry.prefix, finite(entry.precedence), finite(entry.reliability)]));
|
|
162
|
+
policySql = `SELECT json_extract(value, '$[0]'), json_extract(value, '$[1]'), ` +
|
|
163
|
+
`json_extract(value, '$[2]') FROM json_each(${sqlString(data)})`;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
const values = entries.map(entry => `(${sqlString(entry.prefix)}, ${sqlNumber(entry.precedence)}, ${sqlNumber(entry.reliability)})`);
|
|
167
|
+
policySql = values.length === 0 ? 'SELECT NULL, NULL, NULL WHERE 0' : `VALUES ${values.join(', ')}`;
|
|
168
|
+
}
|
|
149
169
|
const rootClass = sqlNumber(rootOf(entries, 'precedence') ?? 0);
|
|
150
170
|
const rootReliability = sqlNumber(rootOf(entries, 'reliability') ?? 1);
|
|
151
171
|
// Alias representative: the closure group's smallest member name —
|
|
@@ -153,11 +173,13 @@ export const rankedSql = (entries, currentSql, options = {}) => {
|
|
|
153
173
|
const representative = (expr) => `min(${expr}, COALESCE((SELECT MIN(ap.b) FROM alias_pair ap WHERE ap.a = ${expr}), ${expr}))`;
|
|
154
174
|
const subjectPart = `json_extract(c.claim_key, '$[0]')`;
|
|
155
175
|
const payloadPart = `json_extract(c.claim_key, '$[3]')`;
|
|
176
|
+
// Strip the ASCII key marker in bytes; TEXT substr stops at an embedded NUL.
|
|
177
|
+
const entityName = (part, start) => `CAST(substr(CAST(${part} AS BLOB), ${start}) AS TEXT)`;
|
|
156
178
|
const subjectExpr = options.aliases === true ?
|
|
157
|
-
`CASE WHEN substr(${subjectPart}, 1, 2) = 'e:' THEN 'e:' || ${representative(
|
|
179
|
+
`CASE WHEN substr(${subjectPart}, 1, 2) = 'e:' THEN 'e:' || ${representative(entityName(subjectPart, 3))} ELSE ${subjectPart} END` :
|
|
158
180
|
subjectPart;
|
|
159
181
|
const payloadExpr = options.aliases === true ?
|
|
160
|
-
`CASE WHEN substr(${payloadPart}, 1, 4) = 'r:e:' THEN 'r:e:' || ${representative(
|
|
182
|
+
`CASE WHEN substr(${payloadPart}, 1, 4) = 'r:e:' THEN 'r:e:' || ${representative(entityName(payloadPart, 5))} ELSE ${payloadPart} END` :
|
|
161
183
|
payloadPart;
|
|
162
184
|
// Claim key modulo polarity and src: contexts (spec §26.1). Contexts in
|
|
163
185
|
// the key are already sorted; filtering preserves the order.
|
|
@@ -173,14 +195,16 @@ export const rankedSql = (entries, currentSql, options = {}) => {
|
|
|
173
195
|
`SELECT 1 FROM cave_context pc WHERE pc.claim_id = c.id AND pc.context = 'src:' || p.value)))`;
|
|
174
196
|
// Longest-prefix match of one source path against the policy (spec §26.3).
|
|
175
197
|
const matched = (column) => `(SELECT y.${column} FROM cave_policy y WHERE y.${column} IS NOT NULL AND ` +
|
|
176
|
-
`(y.prefix = '' OR x.path = y.prefix OR
|
|
177
|
-
`
|
|
178
|
-
|
|
179
|
-
const
|
|
198
|
+
`(y.prefix = '' OR x.path = y.prefix OR ` +
|
|
199
|
+
`substr(CAST(x.path AS BLOB), 1, length(CAST(y.prefix AS BLOB)) + 1) = CAST(y.prefix || '/' AS BLOB)) ` +
|
|
200
|
+
`ORDER BY length(CAST(y.prefix AS BLOB)) DESC LIMIT 1)`;
|
|
201
|
+
const classExpr = `COALESCE((SELECT MAX(COALESCE(${matched('cls')}, ${rootClass})) FROM (${paths}) x), ${rootClass})`;
|
|
202
|
+
const reliabilityExpr = `COALESCE((SELECT MIN(COALESCE(${matched('rel')}, ${rootReliability})) FROM (${paths}) x), ${rootReliability})`;
|
|
180
203
|
const order = `${classExpr} DESC, c.conf * ${reliabilityExpr} DESC, c.tx DESC`;
|
|
204
|
+
// REAL projection keeps finite JS numbers out of the driver's int64 decoder.
|
|
181
205
|
return `
|
|
182
|
-
WITH cave_policy(prefix, cls, rel) AS
|
|
183
|
-
SELECT c.*, ${groupExpr} AS res_group, ${classExpr} AS res_class, c.conf * ${reliabilityExpr} AS res_conf,
|
|
206
|
+
WITH cave_policy(prefix, cls, rel) AS ${materialized ? 'MATERIALIZED ' : ''}(${policySql})
|
|
207
|
+
SELECT c.*, ${groupExpr} AS res_group, CAST(${classExpr} AS REAL) AS res_class, c.conf * ${reliabilityExpr} AS res_conf,
|
|
184
208
|
ROW_NUMBER() OVER (PARTITION BY ${groupExpr} ORDER BY ${order}) AS res_rank
|
|
185
209
|
FROM (${currentSql}) c
|
|
186
210
|
WHERE c.conf > 0`;
|
package/dist/src/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAwCH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IAC7B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE;IAChC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE;IAClC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE;IACnC,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;CAClC,CAAA;AAED,2EAA2E;AAC3E,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,MAAc,EAAW,EAAE,CACvD,MAAM,KAAK,EAAE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAA;AAEnE,mEAAmE;AACnE,MAAM,MAAM,GAAG,CAAC,OAAyB,EAAE,IAAY,EAAE,SAAuC,EAAsB,EAAE;IACtH,IAAI,IAAuB,CAAA;IAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YAC5D,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrE,IAAI,GAAG,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,EAAE,CAAC,SAAS,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,OAAyB,EAAE,SAAuC,EAAsB,EAAE,CACxG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;AAEzD;;;GAGG;AACH,MAAM,OAAO,GAAG,CAAC,OAAyB,EAAE,KAAwB,EAAU,EAAE;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/C,
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/src/row.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.d.ts","sourceRoot":"","sources":["../../src/row.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE7C,0BAA0B;AAC1B,MAAM,MAAM,GAAG,GAAG;IAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAA;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,CAAC,GAAG,GAAG,CAAA;AAEnB,gEAAgE;AAChE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,KAAK,CAAC,IAQ9C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,MACmF,CAAA;AAElI,kEAAkE;AAClE,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,KAAK,CAAC,CAQ/C,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,CAAC,CAAC,KAAG;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,IAAI,GAAG,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CA2BjB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,GAAG,EACR,UAAU,SAAS,MAAM,EAAE,EAC3B,MAAM,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAA;CAAE,EAAE,KACrD,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"row.d.ts","sourceRoot":"","sources":["../../src/row.ts"],"names":[],"mappings":"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"}
|