@cavelang/store 0.34.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/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/locate.d.ts +13 -1
- package/dist/src/locate.d.ts.map +1 -1
- package/dist/src/locate.js +35 -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/index.ts +1 -1
- package/src/locate.ts +45 -13
- 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
package/dist/src/row.js
CHANGED
|
@@ -67,21 +67,49 @@ export const toColumns = (claim) => {
|
|
|
67
67
|
* @returns canonical claim reconstructed from a row plus its side tables.
|
|
68
68
|
* `sigmaLevel` collapses to `undefined` at the semantic default of 2.
|
|
69
69
|
*/
|
|
70
|
-
export const toClaim = (row, contexts, tags) =>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
70
|
+
export const toClaim = (row, contexts, tags) => {
|
|
71
|
+
for (const field of ['negated', 'importance', 'value_approx']) {
|
|
72
|
+
if (row[field] !== 0 && row[field] !== 1) {
|
|
73
|
+
throw new TypeError(`stored claim ${field} must be 0 or 1`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (row.object !== null && (row.attribute !== null || row.value_text !== null)) {
|
|
77
|
+
throw new TypeError('stored claim payload cannot combine an object with an attribute or value');
|
|
78
|
+
}
|
|
79
|
+
if (row.attribute !== null && row.value_text === null) {
|
|
80
|
+
throw new TypeError('stored claim attribute payload requires a value');
|
|
81
|
+
}
|
|
82
|
+
const claim = Claim.of({
|
|
83
|
+
subject: parseTerm(row.subject),
|
|
84
|
+
verb: row.verb,
|
|
85
|
+
negated: row.negated !== 0,
|
|
86
|
+
payload: row.object !== null ? Claim.relation(parseTerm(row.object)) :
|
|
87
|
+
row.attribute !== null && row.value_text !== null ? Claim.attribute(row.attribute, parseValue(row.value_text)) :
|
|
88
|
+
row.value_text !== null ? Claim.metric(parseValue(row.value_text)) :
|
|
89
|
+
Claim.none,
|
|
90
|
+
contexts,
|
|
91
|
+
tags: tags.map(tag => tag.value === null ? { key: tag.key } : { key: tag.key, value: tag.value }),
|
|
92
|
+
conf: row.conf,
|
|
93
|
+
importance: row.importance !== 0,
|
|
94
|
+
...row.delta_text !== null ? { delta: parseValue(row.delta_text) } : {},
|
|
95
|
+
...row.sigma_level !== null && row.sigma_level !== 2 ? { sigmaLevel: row.sigma_level } : {},
|
|
96
|
+
...row.comment !== null ? { comment: row.comment } : {},
|
|
97
|
+
raw: row.raw_line
|
|
98
|
+
});
|
|
99
|
+
const value = claim.payload.kind === 'attribute' || claim.payload.kind === 'metric'
|
|
100
|
+
? claim.payload.value : undefined;
|
|
101
|
+
const expected = {
|
|
102
|
+
value_num: value?.num ?? null,
|
|
103
|
+
value_unit: value?.unit ?? null,
|
|
104
|
+
value_approx: value?.approx === true ? 1 : 0,
|
|
105
|
+
delta_num: claim.delta?.num ?? null,
|
|
106
|
+
delta_unit: claim.delta?.unit ?? null
|
|
107
|
+
};
|
|
108
|
+
for (const field of Object.keys(expected)) {
|
|
109
|
+
if (row[field] !== expected[field]) {
|
|
110
|
+
throw new TypeError(`stored claim ${field} does not agree with its authored value`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return claim;
|
|
114
|
+
};
|
|
87
115
|
//# sourceMappingURL=row.js.map
|
package/dist/src/row.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../src/row.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AA4B7C,gEAAgE;AAChE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAc,EAAE;IACpD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAU,EAAE,CACtD,eAAe,MAAM,qBAAqB,MAAM,oBAAoB,MAAM,uBAAuB,MAAM,yBAAyB,CAAA;AAElI,kEAAkE;AAClE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAW,EAAE;IAClD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAmBtC,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3C,SAAS,CAAA;IACX,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QACxC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7E,SAAS,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QAClE,SAAS,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3D,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,IAAI;QAC5B,SAAS,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;QAC9B,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,SAAS,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACvE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI;QAClC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC;QACjC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,OAAO,EAAE,KAAK,CAAC,GAAG;QAClB,QAAQ,EAAE,EAAE,CAAC,yDAAyD;KACvE,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,GAAQ,EACR,QAA2B,EAC3B,IAAsD,EAC7C,EAAE,
|
|
1
|
+
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../src/row.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAG3C,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG;IAC9B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAG3C,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG;IAC9B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAmDD,2EAA2E;AAC3E,eAAO,MAAM,QAAQ,GACnB,SAAS,OAAO,EAChB,OAAM,MAAmB,EACzB,UAAS,WAAgB,KACxB,KAQF,CAAA"}
|
package/dist/src/runtime.js
CHANGED
|
@@ -11,9 +11,12 @@ const declarationsAsOf = (store, asOf) => {
|
|
|
11
11
|
SELECT subject, verb, object FROM cave_claim
|
|
12
12
|
WHERE tx ${boundary.operator} ?
|
|
13
13
|
AND negated = 0 AND object IS NOT NULL AND verb IN ('REVERSE', 'RENAMED-TO', 'IS')
|
|
14
|
-
AND id NOT IN (
|
|
14
|
+
AND id NOT IN (
|
|
15
|
+
SELECT e.child_id FROM cave_edge e JOIN cave_claim parent ON parent.id = e.parent_id
|
|
16
|
+
WHERE e.role IN ('WHEN', 'VIA', 'BECAUSE') AND parent.tx ${boundary.operator} ?
|
|
17
|
+
)
|
|
15
18
|
ORDER BY tx
|
|
16
|
-
`).all(boundary.tx);
|
|
19
|
+
`).all(boundary.tx, boundary.tx);
|
|
17
20
|
};
|
|
18
21
|
const applyDeclarations = (baseRegistry, declarations) => {
|
|
19
22
|
let registry = baseRegistry;
|
|
@@ -34,8 +37,9 @@ const applyDeclarations = (baseRegistry, declarations) => {
|
|
|
34
37
|
};
|
|
35
38
|
/** Open a CAVE store with an explicitly selected SQLite implementation. */
|
|
36
39
|
export const openWith = (adapter, path = ':memory:', options = {}) => {
|
|
37
|
-
const
|
|
38
|
-
const
|
|
40
|
+
const { registry, access } = options;
|
|
41
|
+
const baseRegistry = registry ?? Canonical.standardRegistry;
|
|
42
|
+
const store = openStore(adapter, path, { registry: baseRegistry, access });
|
|
39
43
|
return Object.assign(store, {
|
|
40
44
|
registryAsOf: (asOf) => applyDeclarations(baseRegistry, declarationsAsOf(store, asOf))
|
|
41
45
|
});
|
package/dist/src/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAEhD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAuB9C,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAiB,EAAE;IACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;;eAEX,QAAQ,CAAC,QAAQ;;;;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAEhD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAuB9C,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAiB,EAAE;IACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;;eAEX,QAAQ,CAAC,QAAQ;;;;mEAImC,QAAQ,CAAC,QAAQ;;;GAGjF,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAkB,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CACxB,YAAkC,EAClC,YAAoC,EACd,EAAE;IACxB,IAAI,QAAQ,GAAG,YAAY,CAAA;IAC3B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;YAAE,SAAQ;QACpD,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,CAC1C,QAAQ,EACR,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,CACnB,CAAC,QAAQ,CAAA;QACZ,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YACrF,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,CACzC,QAAQ,EACR,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,MAAM,CACnB,CAAC,QAAQ,CAAA;QACZ,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACtE,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAAgB,EAChB,OAAe,UAAU,EACzB,UAAuB,EAAE,EAClB,EAAE;IACT,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACpC,MAAM,YAAY,GAAG,QAAQ,IAAI,SAAS,CAAC,gBAAgB,CAAA;IAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1E,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QAC1B,YAAY,EAAE,CAAC,IAAY,EAAwB,EAAE,CACnD,iBAAiB,CAAC,YAAY,EAAE,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACjE,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
package/dist/src/schema.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/** Ordered, transactional storage schema migrations (spec §13). */
|
|
2
2
|
import type { Capabilities, Database } from './adapter.ts';
|
|
3
|
-
export declare const currentVersion =
|
|
4
|
-
/** Default Node/FTS5 schema SQL retained for callers that inspect the DDL. */
|
|
3
|
+
export declare const currentVersion = 2;
|
|
5
4
|
export declare const ddl: string;
|
|
6
5
|
export declare const versionOf: (db: Database) => number;
|
|
7
6
|
export declare const validate: (db: Database, version: number, schema?: string) => void;
|
package/dist/src/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAO,MAAM,cAAc,CAAA;AAI/D,eAAO,MAAM,cAAc,IAAI,CAAA;AAsF/B,eAAO,MAAM,GAAG,QAAsD,CAAA;AAqBtE,eAAO,MAAM,SAAS,GAAI,IAAI,QAAQ,KAAG,MAC2C,CAAA;AAyDpF,eAAO,MAAM,QAAQ,GAAI,IAAI,QAAQ,EAAE,SAAS,MAAM,EAAE,eAAe,KAAG,IAwFzE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,QAAQ,KAAG,IAYpC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,GACf,IAAI,QAAQ,EACZ,eAAc,YAGb,KACA,IAgCF,CAAA"}
|
package/dist/src/schema.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** Ordered, transactional storage schema migrations (spec §13). */
|
|
2
2
|
import * as Provenance from "./provenance.js";
|
|
3
|
-
|
|
3
|
+
import { errorMessage } from "./error-message.js";
|
|
4
|
+
export const currentVersion = 2;
|
|
4
5
|
const ddlBeforeFts = `
|
|
5
6
|
CREATE TABLE IF NOT EXISTS cave_claim (
|
|
6
7
|
id TEXT PRIMARY KEY, -- UUIDv7
|
|
@@ -82,7 +83,8 @@ CREATE VIRTUAL TABLE IF NOT EXISTS cave_fts USING ${fullText}(
|
|
|
82
83
|
);
|
|
83
84
|
`;
|
|
84
85
|
/** Default Node/FTS5 schema SQL retained for callers that inspect the DDL. */
|
|
85
|
-
|
|
86
|
+
const transactionIndexDdl = 'CREATE INDEX IF NOT EXISTS idx_cave_tx ON cave_claim (tx);';
|
|
87
|
+
export const ddl = ddlBeforeFts + ftsDdl('fts5') + transactionIndexDdl;
|
|
86
88
|
const ddlFor = (capabilities) => ddlBeforeFts + ftsDdl(capabilities.fullText);
|
|
87
89
|
const migrations = [
|
|
88
90
|
{
|
|
@@ -91,17 +93,29 @@ const migrations = [
|
|
|
91
93
|
db.exec(ddlFor(capabilities));
|
|
92
94
|
Provenance.backfill(db);
|
|
93
95
|
}
|
|
94
|
-
}
|
|
96
|
+
},
|
|
97
|
+
{ version: 2, up: db => { db.exec(transactionIndexDdl); } }
|
|
95
98
|
];
|
|
96
99
|
export const versionOf = (db) => db.prepare('PRAGMA user_version').get().user_version;
|
|
97
100
|
const requiredTables = [
|
|
98
101
|
'cave_claim', 'cave_context', 'cave_provenance', 'cave_tag', 'cave_edge', 'cave_fts'
|
|
99
102
|
];
|
|
100
103
|
const requiredIndexes = [
|
|
101
|
-
'idx_cave_claim_key_tx', '
|
|
102
|
-
'
|
|
103
|
-
'
|
|
104
|
-
'
|
|
104
|
+
['idx_cave_claim_key_tx', 'cave_claim', ['claim_key', 'tx']],
|
|
105
|
+
['idx_cave_subject', 'cave_claim', ['subject']],
|
|
106
|
+
['idx_cave_verb', 'cave_claim', ['verb']],
|
|
107
|
+
['idx_cave_object', 'cave_claim', ['object']],
|
|
108
|
+
['idx_cave_attribute', 'cave_claim', ['attribute']],
|
|
109
|
+
['idx_cave_conf', 'cave_claim', ['conf']],
|
|
110
|
+
['idx_cave_context', 'cave_context', ['context']],
|
|
111
|
+
['idx_cave_context_claim', 'cave_context', ['claim_id', 'context']],
|
|
112
|
+
['idx_cave_provenance_lookup', 'cave_provenance', ['dimension', 'value', 'claim_id']],
|
|
113
|
+
['idx_cave_tag_key', 'cave_tag', ['key', 'value']],
|
|
114
|
+
['idx_cave_tag_claim', 'cave_tag', ['claim_id', 'key', 'value']],
|
|
115
|
+
['idx_cave_edge_parent', 'cave_edge', ['parent_id']],
|
|
116
|
+
['idx_cave_edge_child', 'cave_edge', ['child_id']],
|
|
117
|
+
['idx_cave_edge_role', 'cave_edge', ['role']],
|
|
118
|
+
['idx_cave_tx', 'cave_claim', ['tx']]
|
|
105
119
|
];
|
|
106
120
|
const requiredColumns = {
|
|
107
121
|
cave_claim: [
|
|
@@ -115,23 +129,111 @@ const requiredColumns = {
|
|
|
115
129
|
cave_edge: ['parent_id', 'role', 'child_id'],
|
|
116
130
|
cave_fts: ['claim_id', 'subject', 'verb', 'object', 'attribute', 'value_text', 'comment', 'raw_line']
|
|
117
131
|
};
|
|
132
|
+
const requiredPrimaryKeys = {
|
|
133
|
+
cave_claim: ['id'],
|
|
134
|
+
cave_provenance: ['claim_id', 'dimension', 'value']
|
|
135
|
+
};
|
|
136
|
+
const numericClaimColumns = new Set([
|
|
137
|
+
'negated', 'value_num', 'value_approx', 'delta_num', 'sigma_level', 'conf', 'importance'
|
|
138
|
+
]);
|
|
139
|
+
const fractionalClaimColumns = new Set(['value_num', 'delta_num', 'sigma_level', 'conf']);
|
|
140
|
+
// SQLite checks INT before CHAR/CLOB/TEXT: CHARINT is integer-affinity.
|
|
141
|
+
const affinityFamily = (type) => {
|
|
142
|
+
const declared = String(type).toUpperCase();
|
|
143
|
+
if (declared.includes('INT'))
|
|
144
|
+
return 'numeric';
|
|
145
|
+
if (/CHAR|CLOB|TEXT/.test(declared))
|
|
146
|
+
return 'TEXT';
|
|
147
|
+
if (declared === '' || declared.includes('BLOB'))
|
|
148
|
+
return 'BLOB';
|
|
149
|
+
// INTEGER, REAL and NUMERIC all retain numeric comparison semantics.
|
|
150
|
+
return 'numeric';
|
|
151
|
+
};
|
|
118
152
|
export const validate = (db, version, schema = 'main') => {
|
|
119
153
|
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(schema)) {
|
|
120
154
|
throw new Error(`CAVE: invalid SQLite schema name ${JSON.stringify(schema)}`);
|
|
121
155
|
}
|
|
156
|
+
const indexes = requiredIndexes.filter(([name]) => version >= 2 || name !== 'idx_cave_tx');
|
|
157
|
+
const tables = new Map(db.prepare(`PRAGMA ${schema}.table_list`).all().map(row => [row.name, row]));
|
|
158
|
+
const indexLists = new Map();
|
|
159
|
+
const indexesOf = (table) => {
|
|
160
|
+
let rows = indexLists.get(table);
|
|
161
|
+
if (rows === undefined) {
|
|
162
|
+
rows = db.prepare(`PRAGMA ${schema}.index_list(${table})`).all();
|
|
163
|
+
indexLists.set(table, rows);
|
|
164
|
+
}
|
|
165
|
+
return rows;
|
|
166
|
+
};
|
|
122
167
|
const objects = new Map(db.prepare(`SELECT name, type FROM ${schema}.sqlite_schema WHERE name LIKE 'cave_%' OR name LIKE 'idx_cave_%'`)
|
|
123
168
|
.all().map(row => [row.name, row.type]));
|
|
124
169
|
const problems = [
|
|
125
|
-
...requiredTables.flatMap(name => objects.
|
|
126
|
-
...
|
|
170
|
+
...requiredTables.flatMap(name => objects.get(name) === 'table' ? [] : [`missing table ${name}`]),
|
|
171
|
+
...indexes
|
|
172
|
+
.flatMap(([name]) => objects.get(name) === 'index' ? [] : [`missing index ${name}`]),
|
|
127
173
|
...Object.entries(requiredColumns).flatMap(([table, required]) => {
|
|
128
174
|
if (!objects.has(table)) {
|
|
129
175
|
return [];
|
|
130
176
|
}
|
|
131
|
-
const
|
|
132
|
-
|
|
177
|
+
const info = db.prepare(`PRAGMA ${schema}.table_info(${table})`).all();
|
|
178
|
+
const columns = new Set(info.map(row => row.name));
|
|
179
|
+
const expectedKey = requiredPrimaryKeys[table];
|
|
180
|
+
const key = info.filter(row => Number(row.pk) > 0)
|
|
181
|
+
.sort((left, right) => Number(left.pk) - Number(right.pk)).map(row => row.name);
|
|
182
|
+
let binaryKey = true;
|
|
183
|
+
if (expectedKey !== undefined) {
|
|
184
|
+
const primary = indexesOf(table).find(row => row.origin === 'pk');
|
|
185
|
+
const name = typeof primary?.name === 'string' ? primary.name : undefined;
|
|
186
|
+
const indexed = name === undefined ? [] :
|
|
187
|
+
db.prepare(`PRAGMA ${schema}.index_xinfo("${name.replaceAll('"', '""')}")`).all()
|
|
188
|
+
.filter(row => Number(row.key) === 1);
|
|
189
|
+
binaryKey = indexed.length === expectedKey.length &&
|
|
190
|
+
indexed.every(row => String(row.coll).toUpperCase() === 'BINARY');
|
|
191
|
+
}
|
|
192
|
+
return [
|
|
193
|
+
...required.flatMap(column => columns.has(column) ? [] : [`missing column ${table}.${column}`]),
|
|
194
|
+
...info.flatMap(row => {
|
|
195
|
+
const column = String(row.name);
|
|
196
|
+
// FTS virtual columns have module-defined storage, not ordinary affinity.
|
|
197
|
+
if (table === 'cave_fts' || !required.includes(column))
|
|
198
|
+
return [];
|
|
199
|
+
const strict = Number(tables.get(table)?.strict) === 1;
|
|
200
|
+
const declared = String(row.type).toUpperCase();
|
|
201
|
+
if (strict && table === 'cave_claim' && fractionalClaimColumns.has(column) && declared !== 'REAL') {
|
|
202
|
+
return [`incompatible column ${table}.${column}: expected REAL in a STRICT table`];
|
|
203
|
+
}
|
|
204
|
+
const expected = table === 'cave_claim' && numericClaimColumns.has(column) ? 'numeric' : 'TEXT';
|
|
205
|
+
const affinity = strict && declared === 'ANY' ? 'BLOB' : affinityFamily(row.type);
|
|
206
|
+
return affinity === expected ? [] :
|
|
207
|
+
[`incompatible column ${table}.${column}: expected ${expected} affinity`];
|
|
208
|
+
}),
|
|
209
|
+
...(expectedKey !== undefined && (!binaryKey || key.length !== expectedKey.length || key.some((name, index) => name !== expectedKey[index]))
|
|
210
|
+
? [`incompatible table ${table}: expected primary key (${expectedKey.join(', ')}) with BINARY collation`] : [])
|
|
211
|
+
];
|
|
133
212
|
})
|
|
134
213
|
];
|
|
214
|
+
if (objects.get('cave_fts') === 'table') {
|
|
215
|
+
const searchTable = tables.get('cave_fts');
|
|
216
|
+
if (searchTable?.type !== 'virtual') {
|
|
217
|
+
problems.push('incompatible table cave_fts: expected a virtual table for full-text search');
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
const searchColumns = db.prepare(`PRAGMA ${schema}.table_xinfo(cave_fts)`).all();
|
|
221
|
+
if (!searchColumns.some(row => row.name === 'cave_fts' && Number(row.hidden) === 1)) {
|
|
222
|
+
problems.push('incompatible table cave_fts: missing the hidden full-text search column');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
for (const [name, table, expected] of indexes) {
|
|
227
|
+
if (objects.get(name) !== 'index')
|
|
228
|
+
continue;
|
|
229
|
+
const columns = db.prepare(`PRAGMA ${schema}.index_xinfo(${name})`).all()
|
|
230
|
+
.filter(row => Number(row.key) === 1);
|
|
231
|
+
const index = indexesOf(table).find(row => row.name === name);
|
|
232
|
+
if (index === undefined || Number(index.unique) !== 0 || Number(index.partial) !== 0 ||
|
|
233
|
+
columns.length !== expected.length || columns.some((column, position) => column.name !== expected[position] || String(column.coll).toUpperCase() !== 'BINARY')) {
|
|
234
|
+
problems.push(`incompatible index ${name}: expected non-unique ${table}(${expected.map(column => `${column} COLLATE BINARY`).join(', ')}) without a partial predicate`);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
135
237
|
if (problems.length > 0) {
|
|
136
238
|
throw new Error(`CAVE: schema version ${version} is incompatible: ${problems.join(', ')}`);
|
|
137
239
|
}
|
|
@@ -184,11 +286,10 @@ export const init = (db, capabilities = {
|
|
|
184
286
|
try {
|
|
185
287
|
db.exec('ROLLBACK');
|
|
186
288
|
}
|
|
187
|
-
catch {
|
|
188
|
-
|
|
289
|
+
catch (rollbackError) {
|
|
290
|
+
throw new AggregateError([error, rollbackError], `CAVE: schema migration ${version} -> ${migration.version} failed: ${errorMessage(error)}; rollback also failed: ${errorMessage(rollbackError)}`, { cause: error });
|
|
189
291
|
}
|
|
190
|
-
|
|
191
|
-
throw new Error(`CAVE: schema migration ${version} -> ${migration.version} failed: ${detail}`);
|
|
292
|
+
throw new Error(`CAVE: schema migration ${version} -> ${migration.version} failed: ${errorMessage(error)}`, { cause: error });
|
|
192
293
|
}
|
|
193
294
|
}
|
|
194
295
|
validate(db, version);
|
package/dist/src/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/src/store.d.ts
CHANGED
|
@@ -67,7 +67,9 @@ export type AppendOptions = {
|
|
|
67
67
|
* Explicit row identity (spec §28.1), index-aligned with the result's
|
|
68
68
|
* claims: a claim with an id here is replayed under it — inserted with
|
|
69
69
|
* `id = tx = ids[i]` when absent, skipped when the store already has the
|
|
70
|
-
* row — and the generator observes it (spec §28.2).
|
|
70
|
+
* row — and the generator observes it (spec §28.2). Every supplied ID
|
|
71
|
+
* used by a claim must be a canonical lowercase UUIDv7; the whole batch
|
|
72
|
+
* is validated before any ID is observed or row is inserted. Claims without an
|
|
71
73
|
* entry mint fresh ids as usual. Edges deduplicate against stored edges
|
|
72
74
|
* in this mode, so replaying a sync export is idempotent end to end.
|
|
73
75
|
*/
|
|
@@ -138,7 +140,7 @@ export declare const open: (adapter: Adapter, path?: string, options?: {
|
|
|
138
140
|
adapter: Adapter;
|
|
139
141
|
/** Raw adapter database handle — used by `@cavelang/query`; treat as read-only. */
|
|
140
142
|
db: import("./adapter.ts").Database;
|
|
141
|
-
/** Current verb registry
|
|
143
|
+
/** Current verb registry; refreshes declarations committed by other connections. */
|
|
142
144
|
registry: () => Canonical.Registry.t;
|
|
143
145
|
/** Configured registry before any in-band declarations are applied. */
|
|
144
146
|
baseRegistry: () => Canonical.Registry.t;
|
|
@@ -154,8 +156,12 @@ export declare const open: (adapter: Adapter, path?: string, options?: {
|
|
|
154
156
|
* nested appends and their registry declarations. Nestable
|
|
155
157
|
* (savepoints) — the write gate wraps ingest + check in one of these
|
|
156
158
|
* (spec §20.3).
|
|
159
|
+
* The callback receives `outermost`: only that scope commits the
|
|
160
|
+
* database; a nested scope merely releases its savepoint.
|
|
157
161
|
*/
|
|
158
|
-
transaction: <T>(body: (
|
|
162
|
+
transaction: <T>(body: (context: {
|
|
163
|
+
readonly outermost: boolean;
|
|
164
|
+
}) => T) => T;
|
|
159
165
|
/**
|
|
160
166
|
* Parses, canonicalizes and appends CAVE text. Lenient by default —
|
|
161
167
|
* problems are returned, valid lines still land (spec §1.6); pass
|
|
@@ -240,11 +246,14 @@ export declare const open: (adapter: Adapter, path?: string, options?: {
|
|
|
240
246
|
* would otherwise parse as a column filter); pass `raw` to use full
|
|
241
247
|
* FTS5 MATCH syntax. `limit` caps the rows inside the query itself,
|
|
242
248
|
* so a broad search never materializes more than the caller reads.
|
|
249
|
+
* `currentOnly` selects non-retracted current rows before that cap;
|
|
250
|
+
* omission retains historical search.
|
|
243
251
|
*/
|
|
244
252
|
search(query: string, options_?: {
|
|
245
253
|
raw?: boolean;
|
|
246
254
|
limit?: number;
|
|
247
255
|
maxSensitivity?: Sensitivity.Level;
|
|
256
|
+
currentOnly?: boolean;
|
|
248
257
|
}): Row.t[];
|
|
249
258
|
/**
|
|
250
259
|
* Appends edges between *existing* claim rows (spec §13.2) — the
|
|
@@ -270,8 +279,9 @@ export declare const open: (adapter: Adapter, path?: string, options?: {
|
|
|
270
279
|
* Emits the store as canonical CAVE text — all rows in transaction
|
|
271
280
|
* order, or only current beliefs with `current`. With `tx`, every
|
|
272
281
|
* claim line is preceded by its §28.4 transaction annotation
|
|
273
|
-
* (`;@ <tx>`), so
|
|
274
|
-
*
|
|
282
|
+
* (`;@ <tx>` with optional JSON provenance), so text carries identity
|
|
283
|
+
* and exact dimensions: `cave sync` replays it idempotently, while plain
|
|
284
|
+
* `cave import` ignores annotation metadata.
|
|
275
285
|
*
|
|
276
286
|
* In current-only export an edge endpoint may be a superseded row;
|
|
277
287
|
* dropping such edges would silently un-condition current claims and
|
|
@@ -284,6 +294,8 @@ export declare const open: (adapter: Adapter, path?: string, options?: {
|
|
|
284
294
|
tx?: boolean;
|
|
285
295
|
maxSensitivity?: Sensitivity.Level;
|
|
286
296
|
}): string;
|
|
297
|
+
/** Register synchronous dependent-resource cleanup; returns an unsubscribe function. */
|
|
298
|
+
onClose(callback: () => void): () => void;
|
|
287
299
|
close(): void;
|
|
288
300
|
};
|
|
289
301
|
//# sourceMappingURL=store.d.ts.map
|
package/dist/src/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAqB,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
|