@microdelta/history 0.1.0 → 0.2.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 +14 -3
- package/dist/api/history.alpha.d.ts +2 -2
- package/dist/api/history.root.raw.alpha.d.ts +332 -19
- package/dist/api/history.root.raw.beta.d.ts +34 -2
- package/dist/api/history.root.raw.public.d.ts +34 -2
- package/dist/api/history.root.raw.untrimmed.d.ts +332 -19
- package/dist/api/history.shared.alpha.d.ts +328 -17
- package/dist/api/history.shared.beta.d.ts +30 -0
- package/dist/api/history.shared.public.d.ts +30 -0
- package/dist/api/history.shared.untrimmed.d.ts +328 -17
- package/dist/api/history.untrimmed.d.ts +2 -2
- package/dist/src/durable/contracts.d.ts +290 -17
- package/dist/src/durable/contracts.d.ts.map +1 -1
- package/dist/src/durable/errors.d.ts +26 -1
- package/dist/src/durable/errors.d.ts.map +1 -1
- package/dist/src/durable/errors.js +32 -1
- package/dist/src/durable/errors.js.map +1 -1
- package/dist/src/durable/index.d.ts.map +1 -1
- package/dist/src/durable/index.js +275 -95
- package/dist/src/durable/index.js.map +1 -1
- package/dist/src/durable/journal.d.ts +53 -0
- package/dist/src/durable/journal.d.ts.map +1 -0
- package/dist/src/durable/journal.js +174 -0
- package/dist/src/durable/journal.js.map +1 -0
- package/dist/src/durable/records.d.ts +40 -0
- package/dist/src/durable/records.d.ts.map +1 -0
- package/dist/src/durable/records.js +74 -0
- package/dist/src/durable/records.js.map +1 -0
- package/dist/src/durable/schema.d.ts +13 -4
- package/dist/src/durable/schema.d.ts.map +1 -1
- package/dist/src/durable/schema.js +74 -5
- package/dist/src/durable/schema.js.map +1 -1
- package/dist/src/durable/selected-index.d.ts.map +1 -1
- package/dist/src/durable/selected-index.js +3 -1
- package/dist/src/durable/selected-index.js.map +1 -1
- package/dist/src/index.d.ts +6 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -3
- package/dist/src/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/durable/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/durable/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run Supervision's operation journal inside History's durable authority
|
|
3
|
+
* (RUN-011/012, ARC-007). History stores Supervision's operation and deferral
|
|
4
|
+
* records as opaque versioned records, following the pattern of Resolution's
|
|
5
|
+
* provenance: it owns their environment namespace, owner-named collection,
|
|
6
|
+
* key, revision, commit sequence and committing fence, and never interprets
|
|
7
|
+
* their content. EXP-8 selected the semantics this port must support: an
|
|
8
|
+
* intent committed before a send, a deferral with a "not before" time, and
|
|
9
|
+
* compare-and-set transitions between operation states. Deciding what any of
|
|
10
|
+
* those states mean, including whether a deferral may be cleared, remains
|
|
11
|
+
* Supervision's responsibility.
|
|
12
|
+
*
|
|
13
|
+
* A record's identity is its address: analysis, environment, collection and
|
|
14
|
+
* key. Its format and version are only the tag of each revision. A write under
|
|
15
|
+
* a different format therefore compare-and-sets against the address's current
|
|
16
|
+
* revision like any other write; it never creates a parallel record.
|
|
17
|
+
*
|
|
18
|
+
* Each commit is one IMMEDIATE transaction that first checks the writer's
|
|
19
|
+
* holder, fence and unexpired lease, then, for every write, that the port
|
|
20
|
+
* understands the current revision's format and version and that the expected
|
|
21
|
+
* revision is current, then inserts a new immutable revision per write:
|
|
22
|
+
*
|
|
23
|
+
* | Transition | Durable change | Death before commit | Death after commit |
|
|
24
|
+
* | --- | --- | --- | --- |
|
|
25
|
+
* | journal commit | one new revision per write, journal sequence + writes | no revision, no sequence issued | every revision durable; readers see them all |
|
|
26
|
+
*
|
|
27
|
+
* A port is bound to the record formats and versions its caller understands.
|
|
28
|
+
* A record of any other format or version is refused on write, and a stored
|
|
29
|
+
* record of any other format or version is refused on read, list or
|
|
30
|
+
* overwrite, so an older caller never acts on or clobbers a record it does
|
|
31
|
+
* not understand.
|
|
32
|
+
* @packageDocumentation
|
|
33
|
+
*/
|
|
34
|
+
import type { ISqliteConnection } from '@microdelta/machine';
|
|
35
|
+
import type { IJournalDeclaration, IOperationJournal, IWriterLease } from './contracts.js';
|
|
36
|
+
/**
|
|
37
|
+
* Runs one ownership-sensitive mutation inside the authority's writer
|
|
38
|
+
* transaction, after the holder, fence and unexpired-lease check. A stale
|
|
39
|
+
* lease is refused with no change other than the observed clock high-water.
|
|
40
|
+
*/
|
|
41
|
+
export type IHolderTransaction = <T>(lease: IWriterLease, operation: () => T) => T;
|
|
42
|
+
/** Opens journal ports that share the authority's connection and writer check. */
|
|
43
|
+
export interface IJournalStore {
|
|
44
|
+
/** Bind a journal port to the declared formats and versions. */
|
|
45
|
+
open(declaration: IJournalDeclaration): IOperationJournal;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create the journal store over one open, validated connection. Statements
|
|
49
|
+
* are prepared once; every port shares them, the writer check and the
|
|
50
|
+
* store-wide journal sequence.
|
|
51
|
+
*/
|
|
52
|
+
export declare function createJournalStore(connection: ISqliteConnection, asHolder: IHolderTransaction): IJournalStore;
|
|
53
|
+
//# sourceMappingURL=journal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../../src/durable/journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AAEzE,OAAO,KAAK,EAGV,mBAAmB,EAInB,iBAAiB,EACjB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAQxB;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAEnF,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,IAAI,CAAC,WAAW,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;CAC3D;AAwCD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,GAAG,aAAa,CA2I7G"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { HistoryIntegrityError, JournalConflictError, JournalVersionError } from './errors.js';
|
|
2
|
+
import { historyScope, integer, loadRecord, requireName, requireNonnegative, requirePositive, safeSum, storeRecord, text } from './records.js';
|
|
3
|
+
/** Identity tag for embedded SQL; the text is passed through unchanged. */
|
|
4
|
+
const sql = String.raw;
|
|
5
|
+
/** Validate a declaration into a frozen copy and a lookup of declared versions. */
|
|
6
|
+
function declaredFormats(declaration) {
|
|
7
|
+
const presented = declaration.formats;
|
|
8
|
+
if (!Array.isArray(presented) || presented.length === 0) {
|
|
9
|
+
throw new TypeError('A journal declaration needs at least one format');
|
|
10
|
+
}
|
|
11
|
+
const versions = new Map();
|
|
12
|
+
const formats = declaration.formats.map((entry) => {
|
|
13
|
+
const format = requireName(entry.format, 'journal format');
|
|
14
|
+
const listed = entry.versions;
|
|
15
|
+
if (!Array.isArray(listed) || listed.length === 0) {
|
|
16
|
+
throw new TypeError(`Journal format ${format} needs at least one version`);
|
|
17
|
+
}
|
|
18
|
+
const accepted = entry.versions.map((version) => requirePositive(version, `journal format ${format} version`));
|
|
19
|
+
if (new Set(accepted).size !== accepted.length) {
|
|
20
|
+
throw new TypeError(`Journal format ${format} declares a version twice`);
|
|
21
|
+
}
|
|
22
|
+
if (versions.has(format)) {
|
|
23
|
+
throw new TypeError(`Journal format ${format} is declared twice`);
|
|
24
|
+
}
|
|
25
|
+
versions.set(format, new Set(accepted));
|
|
26
|
+
return Object.freeze({ format, versions: Object.freeze(accepted) });
|
|
27
|
+
});
|
|
28
|
+
return { formats: Object.freeze(formats), versions };
|
|
29
|
+
}
|
|
30
|
+
/** Copy and validate a journal address argument. */
|
|
31
|
+
function journalAddress(value) {
|
|
32
|
+
return { ...historyScope(value), collection: requireName(value.collection, 'journal collection'), key: requireName(value.key, 'journal key') };
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create the journal store over one open, validated connection. Statements
|
|
36
|
+
* are prepared once; every port shares them, the writer check and the
|
|
37
|
+
* store-wide journal sequence.
|
|
38
|
+
*/
|
|
39
|
+
export function createJournalStore(connection, asHolder) {
|
|
40
|
+
const statements = {
|
|
41
|
+
sequence: connection.prepare(sql `/* journal */ SELECT last_journal FROM history_sequences WHERE singleton = 1`),
|
|
42
|
+
setSequence: connection.prepare(sql `/* journal */ UPDATE history_sequences SET last_journal = ? WHERE singleton = 1`),
|
|
43
|
+
current: connection.prepare(sql `/* journal */ SELECT * FROM history_journal
|
|
44
|
+
WHERE analysis = ? AND environment = ? AND collection = ? AND journal_key = ? ORDER BY revision DESC LIMIT 1`),
|
|
45
|
+
insert: connection.prepare(sql `/* journal */ INSERT INTO history_journal
|
|
46
|
+
(analysis, environment, collection, journal_key, revision, sequence, fence, format, format_version, content) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`),
|
|
47
|
+
list: connection.prepare(sql `/* journal */ SELECT j.* FROM history_journal j
|
|
48
|
+
JOIN history_journal first ON first.analysis = j.analysis AND first.environment = j.environment AND first.collection = j.collection
|
|
49
|
+
AND first.journal_key = j.journal_key AND first.revision = 1
|
|
50
|
+
WHERE j.analysis = ? AND j.environment = ? AND j.collection = ?
|
|
51
|
+
AND j.revision = (SELECT max(k.revision) FROM history_journal k
|
|
52
|
+
WHERE k.analysis = j.analysis AND k.environment = j.environment AND k.collection = j.collection AND k.journal_key = j.journal_key)
|
|
53
|
+
ORDER BY first.sequence`),
|
|
54
|
+
};
|
|
55
|
+
/** Read and narrow the store-wide journal sequence inside the caller's transaction. */
|
|
56
|
+
function lastSequence() {
|
|
57
|
+
const row = statements.sequence.get();
|
|
58
|
+
if (row === undefined) {
|
|
59
|
+
throw new HistoryIntegrityError('History sequence row is missing');
|
|
60
|
+
}
|
|
61
|
+
return integer(row, 'last_journal');
|
|
62
|
+
}
|
|
63
|
+
/** The current revision at one address, inside or outside a transaction. */
|
|
64
|
+
function currentRow(address) {
|
|
65
|
+
return statements.current.get(address.analysis, address.environment, address.collection, address.key);
|
|
66
|
+
}
|
|
67
|
+
return Object.freeze({
|
|
68
|
+
open(declaration) {
|
|
69
|
+
const { formats, versions } = declaredFormats(declaration);
|
|
70
|
+
/** Refuse a format or version this port never declared, for a presented or stored record. */
|
|
71
|
+
function requireDeclared(format, formatVersion, subject) {
|
|
72
|
+
if (versions.get(format)?.has(formatVersion) !== true) {
|
|
73
|
+
throw new JournalVersionError(`${subject} uses ${format} version ${String(formatVersion)}, which this journal port does not declare`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** Convert one stored revision to its frozen record, refusing an undeclared stored format or version. */
|
|
77
|
+
function recordOf(row, expected) {
|
|
78
|
+
const key = text(row, 'journal_key');
|
|
79
|
+
if (text(row, 'analysis') !== expected.analysis || text(row, 'environment') !== expected.environment || text(row, 'collection') !== expected.collection) {
|
|
80
|
+
throw new HistoryIntegrityError(`Stored journal record ${key} is outside the requested namespace`);
|
|
81
|
+
}
|
|
82
|
+
const format = text(row, 'format');
|
|
83
|
+
const formatVersion = integer(row, 'format_version');
|
|
84
|
+
requireDeclared(format, formatVersion, `Stored journal record ${key}`);
|
|
85
|
+
return Object.freeze({
|
|
86
|
+
analysis: expected.analysis,
|
|
87
|
+
environment: expected.environment,
|
|
88
|
+
collection: expected.collection,
|
|
89
|
+
key,
|
|
90
|
+
revision: requirePositiveStored(integer(row, 'revision'), 'revision'),
|
|
91
|
+
sequence: requirePositiveStored(integer(row, 'sequence'), 'sequence'),
|
|
92
|
+
fence: requirePositiveStored(integer(row, 'fence'), 'fence'),
|
|
93
|
+
record: loadRecord(format, formatVersion, row.content, 'journal record'),
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/** Validate every write before any storage work, refusing ambiguous or undeclared ones. */
|
|
97
|
+
function prepareWrites(request) {
|
|
98
|
+
const scope = historyScope(request);
|
|
99
|
+
const presented = request.writes;
|
|
100
|
+
if (!Array.isArray(presented) || presented.length === 0) {
|
|
101
|
+
throw new TypeError('A journal commit needs at least one write');
|
|
102
|
+
}
|
|
103
|
+
const seen = new Set();
|
|
104
|
+
return request.writes.map((write) => {
|
|
105
|
+
const address = journalAddress({ ...scope, collection: write.collection, key: write.key });
|
|
106
|
+
const expectedRevision = requireNonnegative(write.expectedRevision, 'expected journal revision');
|
|
107
|
+
const record = storeRecord(write.record, 'journal record');
|
|
108
|
+
const identity = JSON.stringify([address.collection, address.key]);
|
|
109
|
+
if (seen.has(identity)) {
|
|
110
|
+
throw new TypeError(`Journal commit writes ${address.collection} key ${address.key} more than once`);
|
|
111
|
+
}
|
|
112
|
+
seen.add(identity);
|
|
113
|
+
requireDeclared(record.format, record.formatVersion, `Journal write ${address.key}`);
|
|
114
|
+
return { address, expectedRevision, record };
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
const journal = {
|
|
118
|
+
formats,
|
|
119
|
+
commit(lease, request) {
|
|
120
|
+
const writes = prepareWrites(request);
|
|
121
|
+
return asHolder(lease, () => {
|
|
122
|
+
// Every expectation is checked before the first insert, so a refused commit writes nothing.
|
|
123
|
+
const revisions = writes.map(({ address, expectedRevision }) => {
|
|
124
|
+
const row = currentRow(address);
|
|
125
|
+
const current = row === undefined ? 0 : integer(row, 'revision');
|
|
126
|
+
if (row !== undefined) {
|
|
127
|
+
// A port that does not understand the current revision cannot have read it, whatever its format.
|
|
128
|
+
requireDeclared(text(row, 'format'), integer(row, 'format_version'), `Stored journal record ${address.key}`);
|
|
129
|
+
}
|
|
130
|
+
if (current !== expectedRevision) {
|
|
131
|
+
throw new JournalConflictError(`Journal ${address.collection} key ${address.key} is at revision ${String(current)}, not the expected ${String(expectedRevision)}`);
|
|
132
|
+
}
|
|
133
|
+
return safeSum(current, 1, 'journal revision');
|
|
134
|
+
});
|
|
135
|
+
let sequence = lastSequence();
|
|
136
|
+
const committed = writes.map(({ address, record }, index) => {
|
|
137
|
+
sequence = safeSum(sequence, 1, 'journal sequence');
|
|
138
|
+
const revision = revisions[index];
|
|
139
|
+
if (revision === undefined) {
|
|
140
|
+
throw new HistoryIntegrityError('Journal commit lost a prepared revision');
|
|
141
|
+
}
|
|
142
|
+
statements.insert.run(address.analysis, address.environment, address.collection, address.key, revision, sequence, lease.fence, record.format, record.formatVersion, record.content);
|
|
143
|
+
const row = currentRow(address);
|
|
144
|
+
if (row === undefined) {
|
|
145
|
+
throw new HistoryIntegrityError(`Committed journal record ${address.key} is not readable`);
|
|
146
|
+
}
|
|
147
|
+
return recordOf(row, address);
|
|
148
|
+
});
|
|
149
|
+
statements.setSequence.run(sequence);
|
|
150
|
+
return Object.freeze(committed);
|
|
151
|
+
});
|
|
152
|
+
},
|
|
153
|
+
read(presented) {
|
|
154
|
+
const address = journalAddress(presented);
|
|
155
|
+
const row = currentRow(address);
|
|
156
|
+
return row === undefined ? undefined : recordOf(row, address);
|
|
157
|
+
},
|
|
158
|
+
list(presented) {
|
|
159
|
+
const query = { ...historyScope(presented), collection: requireName(presented.collection, 'journal collection') };
|
|
160
|
+
return Object.freeze(statements.list.all(query.analysis, query.environment, query.collection).map((row) => recordOf(row, query)));
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
return Object.freeze(journal);
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/** A stored identity that must be positive; anything else is corruption. */
|
|
168
|
+
function requirePositiveStored(value, column) {
|
|
169
|
+
if (value <= 0) {
|
|
170
|
+
throw new HistoryIntegrityError(`Stored journal ${column} ${String(value)} is not positive`);
|
|
171
|
+
}
|
|
172
|
+
return value;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=journal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../../src/durable/journal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Argument validation and stored-cell narrowing shared by History's durable
|
|
3
|
+
* modules. Presented arguments that break a contract's shape are rejected
|
|
4
|
+
* with `TypeError` before any storage work; stored cells that break History's
|
|
5
|
+
* own invariants are integrity failures, never repaired. Owner-defined
|
|
6
|
+
* versioned records are validated only by their tag, positive version and
|
|
7
|
+
* supported Value content, stored in canonical MDS1 form and returned decoded
|
|
8
|
+
* and frozen; their meaning is never interpreted here.
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
11
|
+
import type { ISqliteRow } from '@microdelta/machine';
|
|
12
|
+
import type { IHistoryScope, IVersionedRecord } from './contracts.js';
|
|
13
|
+
/** One owner-defined versioned record in its stored canonical form. */
|
|
14
|
+
export interface IStoredRecord {
|
|
15
|
+
/** The owner's non-empty format identity. */
|
|
16
|
+
readonly format: string;
|
|
17
|
+
/** The owner's positive safe-integer format version. */
|
|
18
|
+
readonly formatVersion: number;
|
|
19
|
+
/** The content in canonical MDS1 text. */
|
|
20
|
+
readonly content: string;
|
|
21
|
+
}
|
|
22
|
+
/** Require a non-empty string argument. */
|
|
23
|
+
export declare function requireName(value: unknown, name: string): string;
|
|
24
|
+
/** Require a positive safe-integer argument. */
|
|
25
|
+
export declare function requirePositive(value: unknown, name: string): number;
|
|
26
|
+
/** Require a nonnegative safe-integer argument. */
|
|
27
|
+
export declare function requireNonnegative(value: unknown, name: string): number;
|
|
28
|
+
/** Copy and validate an analysis/environment scope argument. */
|
|
29
|
+
export declare function historyScope(value: IHistoryScope): IHistoryScope;
|
|
30
|
+
/** Add two safe integers or fail rather than round. */
|
|
31
|
+
export declare function safeSum(left: number, right: number, name: string): number;
|
|
32
|
+
/** Validate and canonicalize an owner-defined versioned record. */
|
|
33
|
+
export declare function storeRecord(record: IVersionedRecord, name: string): IStoredRecord;
|
|
34
|
+
/** Decode a stored versioned record into frozen data, or fail as corruption. */
|
|
35
|
+
export declare function loadRecord(format: unknown, formatVersion: unknown, content: unknown, name: string): IVersionedRecord;
|
|
36
|
+
/** Narrow a stored cell to text. */
|
|
37
|
+
export declare function text(row: ISqliteRow, column: string): string;
|
|
38
|
+
/** Narrow a stored cell to a safe integer. */
|
|
39
|
+
export declare function integer(row: ISqliteRow, column: string): number;
|
|
40
|
+
//# sourceMappingURL=records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../../src/durable/records.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGtE,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpE;AAED,mDAAmD;AACnD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAEhE;AAED,uDAAuD;AACvD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAMjF;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAWpH;AAED,oCAAoC;AACpC,wBAAgB,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,8CAA8C;AAC9C,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM/D"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { decodeSnapshot, encodeSnapshot } from '@microdelta/value';
|
|
2
|
+
import { HistoryIntegrityError } from './errors.js';
|
|
3
|
+
/** Require a non-empty string argument. */
|
|
4
|
+
export function requireName(value, name) {
|
|
5
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
6
|
+
throw new TypeError(`${name} must be a non-empty string`);
|
|
7
|
+
}
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
/** Require a positive safe-integer argument. */
|
|
11
|
+
export function requirePositive(value, name) {
|
|
12
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value <= 0) {
|
|
13
|
+
throw new TypeError(`${name} must be a positive safe integer`);
|
|
14
|
+
}
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
/** Require a nonnegative safe-integer argument. */
|
|
18
|
+
export function requireNonnegative(value, name) {
|
|
19
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0) {
|
|
20
|
+
throw new TypeError(`${name} must be a nonnegative safe integer`);
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
/** Copy and validate an analysis/environment scope argument. */
|
|
25
|
+
export function historyScope(value) {
|
|
26
|
+
return { analysis: requireName(value.analysis, 'analysis'), environment: requireName(value.environment, 'environment') };
|
|
27
|
+
}
|
|
28
|
+
/** Add two safe integers or fail rather than round. */
|
|
29
|
+
export function safeSum(left, right, name) {
|
|
30
|
+
const sum = left + right;
|
|
31
|
+
if (!Number.isSafeInteger(sum)) {
|
|
32
|
+
throw new RangeError(`${name} exceeds the safe integer range`);
|
|
33
|
+
}
|
|
34
|
+
return sum;
|
|
35
|
+
}
|
|
36
|
+
/** Validate and canonicalize an owner-defined versioned record. */
|
|
37
|
+
export function storeRecord(record, name) {
|
|
38
|
+
return {
|
|
39
|
+
format: requireName(record.format, `${name} format`),
|
|
40
|
+
formatVersion: requirePositive(record.formatVersion, `${name} format version`),
|
|
41
|
+
content: encodeSnapshot(record.content),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** Decode a stored versioned record into frozen data, or fail as corruption. */
|
|
45
|
+
export function loadRecord(format, formatVersion, content, name) {
|
|
46
|
+
if (typeof format !== 'string' || format.length === 0 || typeof formatVersion !== 'number' || !Number.isSafeInteger(formatVersion) || formatVersion <= 0 || typeof content !== 'string') {
|
|
47
|
+
throw new HistoryIntegrityError(`Stored ${name} has a malformed version tag`);
|
|
48
|
+
}
|
|
49
|
+
let decoded;
|
|
50
|
+
try {
|
|
51
|
+
decoded = decodeSnapshot(content);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
throw new HistoryIntegrityError(`Stored ${name} is not canonical MDS1: ${error instanceof Error ? error.message : String(error)}`);
|
|
55
|
+
}
|
|
56
|
+
return Object.freeze({ format, formatVersion, content: decoded });
|
|
57
|
+
}
|
|
58
|
+
/** Narrow a stored cell to text. */
|
|
59
|
+
export function text(row, column) {
|
|
60
|
+
const value = row[column];
|
|
61
|
+
if (typeof value !== 'string') {
|
|
62
|
+
throw new HistoryIntegrityError(`Stored History column ${column} is not text`);
|
|
63
|
+
}
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
/** Narrow a stored cell to a safe integer. */
|
|
67
|
+
export function integer(row, column) {
|
|
68
|
+
const value = row[column];
|
|
69
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value)) {
|
|
70
|
+
throw new HistoryIntegrityError(`Stored History column ${column} is not an integer`);
|
|
71
|
+
}
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"records.js","sourceRoot":"","sources":["../../../src/durable/records.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,16 +8,25 @@
|
|
|
8
8
|
* guesses a migration from unknown, incomplete or foreign storage.
|
|
9
9
|
*
|
|
10
10
|
* Immutability of completed history is enforced in storage by triggers:
|
|
11
|
-
* results, their generated index, dependencies, acceptance records
|
|
12
|
-
* identity row cannot be updated or
|
|
13
|
-
* and writer/sequence rows cannot be
|
|
11
|
+
* results, their generated index, dependencies, acceptance records, promotion
|
|
12
|
+
* records, journal revisions and the identity row cannot be updated or
|
|
13
|
+
* deleted, and attempts, current pointers and writer/sequence rows cannot be
|
|
14
|
+
* deleted. No reclamation exists (RES-006).
|
|
15
|
+
*
|
|
16
|
+
* Version 2 namespaces acceptance records by the environment that recorded
|
|
17
|
+
* them and adds recorded promotions and Run Supervision's operation journal
|
|
18
|
+
* (RUN-011/012/017). Version 1 files, written before those records existed,
|
|
19
|
+
* are rejected by their recorded version like any other unsupported version:
|
|
20
|
+
* the repository's storage policy is to reject incompatible formats
|
|
21
|
+
* explicitly and never migrate stored data by guessing (execution.md PUB-004,
|
|
22
|
+
* experiments.md EXP-2 gate), and no migration is authorized.
|
|
14
23
|
* @packageDocumentation
|
|
15
24
|
*/
|
|
16
25
|
import type { ISqliteConnection } from '@microdelta/machine';
|
|
17
26
|
/** The schema identity recorded in every durable History file. */
|
|
18
27
|
export declare const schemaName = "microdelta.history.durable";
|
|
19
28
|
/** The only schema version this implementation reads or writes. */
|
|
20
|
-
export declare const schemaVersion =
|
|
29
|
+
export declare const schemaVersion = 2;
|
|
21
30
|
/**
|
|
22
31
|
* Create the schema in one transaction when the database has no objects,
|
|
23
32
|
* then validate it. Validation requires exactly the expected objects with
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/durable/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/durable/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AAOzE,kEAAkE;AAClE,eAAO,MAAM,UAAU,+BAA+B,CAAC;AAEvD,mEAAmE;AACnE,eAAO,MAAM,aAAa,IAAI,CAAC;AA8P/B;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAsB1F"}
|