@feltdb/core 0.11.7 → 0.11.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +0 -0
- package/dist/composition.d.ts +697 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +1218 -0
- package/dist/create/package-versions.js +1 -1
- package/dist/create/server-source/crates/feltdb/src/lib.rs +363 -2
- package/dist/create/server-source/crates/feltdb/src/read_basis.rs +257 -0
- package/dist/create/server-source/crates/feltdb/src/state_contract.rs +442 -73
- package/dist/create/server-source/crates/feltdb/src/workload_diagnostics.rs +18 -4
- package/dist/create/server-source/crates/feltdb-server/src/backup.rs +290 -7
- package/dist/create/server-source/crates/feltdb-server/src/main.rs +500 -23
- package/dist/db.d.ts +12 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +42 -3
- package/dist/embedded-query.d.ts.map +1 -1
- package/dist/embedded-query.js +20 -6
- package/dist/embedded-transaction.d.ts +21 -1
- package/dist/embedded-transaction.d.ts.map +1 -1
- package/dist/embedded-transaction.js +96 -0
- package/dist/feltdb.d.ts +8 -0
- package/dist/feltdb.d.ts.map +1 -1
- package/dist/file-db.d.ts +25 -1
- package/dist/file-db.d.ts.map +1 -1
- package/dist/file-db.js +54 -3
- package/dist/flowspec.d.ts +7 -0
- package/dist/flowspec.d.ts.map +1 -1
- package/dist/flowspec.js +13 -1
- package/dist/http-db.d.ts +7 -0
- package/dist/http-db.d.ts.map +1 -1
- package/dist/http-db.js +38 -6
- package/dist/index-core.d.ts +1 -0
- package/dist/index-core.d.ts.map +1 -1
- package/dist/index-core.js +1 -0
- package/dist/indexeddb-db.d.ts +3 -1
- package/dist/indexeddb-db.d.ts.map +1 -1
- package/dist/indexeddb-db.js +50 -2
- package/dist/intent.d.ts +4 -2
- package/dist/intent.d.ts.map +1 -1
- package/dist/memory-db.d.ts +2 -1
- package/dist/memory-db.d.ts.map +1 -1
- package/dist/memory-db.js +13 -1
- package/dist/proposal.d.ts +5 -0
- package/dist/proposal.d.ts.map +1 -1
- package/dist/proposal.js +6 -2
- package/dist/runtime-snapshot.d.ts +76 -2
- package/dist/runtime-snapshot.d.ts.map +1 -1
- package/dist/runtime-snapshot.js +68 -7
- package/dist/stable-hash.d.ts +17 -0
- package/dist/stable-hash.d.ts.map +1 -0
- package/dist/stable-hash.js +82 -0
- package/dist/state-impact.d.ts +245 -0
- package/dist/state-impact.d.ts.map +1 -0
- package/dist/state-impact.js +404 -0
- package/dist/studio-app/assets/{feltdb_wasm-D58hv7aa.js → feltdb_wasm-DGGqm9GK.js} +1 -1
- package/dist/studio-app/assets/feltdb_wasm_bg-BYJo87WY.wasm +0 -0
- package/dist/studio-app/assets/index-qLeZcPW_.js +30 -0
- package/dist/studio-app/index.html +1 -1
- package/dist/transaction.d.ts +61 -1
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +59 -0
- package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
- package/package.json +1 -1
- package/dist/create/server-source/crates/feltdb-wasm/test.db +0 -0
- package/dist/studio-app/assets/feltdb_wasm_bg-BgFXYOtc.wasm +0 -0
- package/dist/studio-app/assets/index-gR6d3Tys.js +0 -30
package/dist/db.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import type { JsDb } from './feltdb.js';
|
|
8
8
|
import { type FreshnessCapability, type Revision } from './freshness.js';
|
|
9
9
|
import { Collection, Relationship } from './collection.js';
|
|
10
|
-
import { type AtomicTransactionDocument, type AtomicTransactionOptions, type AtomicTransactionResult, type AtomicTransactionScope } from './transaction.js';
|
|
10
|
+
import { type TransactionReadBasis, type TransactionReadSet, type AtomicTransactionDocument, type AtomicTransactionOptions, type AtomicTransactionResult, type AtomicTransactionScope } from './transaction.js';
|
|
11
11
|
import { type Cell } from './cell.js';
|
|
12
12
|
import type { AgentRef, AgentDefinition, AgentExecution } from './agent.js';
|
|
13
13
|
import { AgentRegistry } from './agent-registry.js';
|
|
@@ -432,6 +432,17 @@ export declare class StateFirstDB {
|
|
|
432
432
|
* the transaction into a sequence of independent writes.
|
|
433
433
|
*/
|
|
434
434
|
transaction(build: ((tx: AtomicTransactionScope) => void | Promise<void>) | AtomicTransactionDocument, options?: AtomicTransactionOptions): Promise<AtomicTransactionResult>;
|
|
435
|
+
/**
|
|
436
|
+
* Capture a read basis: what the authority holds, now, for a set of records
|
|
437
|
+
* and equality predicates.
|
|
438
|
+
*
|
|
439
|
+
* Pass it to `tx.fence(basis)` and the transaction commits only if that same
|
|
440
|
+
* state is unchanged at the moment of commit — evaluated by the authority,
|
|
441
|
+
* inside its commit decision, whichever write path changed it. State outside
|
|
442
|
+
* the set never conflicts. A runtime that cannot evaluate a fence inside its
|
|
443
|
+
* commit boundary refuses rather than committing unfenced.
|
|
444
|
+
*/
|
|
445
|
+
readBasis(reads: TransactionReadSet): Promise<TransactionReadBasis>;
|
|
435
446
|
/**
|
|
436
447
|
* Get or create a durable cell.
|
|
437
448
|
*
|
package/dist/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/db.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { describeFreshness, readRevision, } from './freshness.js';
|
|
8
8
|
import { Collection, Relationship } from './collection.js';
|
|
9
|
-
import { AtomicTransactionBuilder, AtomicTransactionError, ConditionalConflictError, conditionalRefusal, } from './transaction.js';
|
|
9
|
+
import { AtomicTransactionBuilder, AtomicTransactionError, ConditionalConflictError, conditionalRefusal, normaliseReadSet, } from './transaction.js';
|
|
10
10
|
import { CellImpl } from './cell.js';
|
|
11
11
|
import { createAgentRef } from './agent.js';
|
|
12
12
|
import { AgentRegistry } from './agent-registry.js';
|
|
@@ -386,7 +386,9 @@ export class StateFirstDB {
|
|
|
386
386
|
}
|
|
387
387
|
return existing;
|
|
388
388
|
}
|
|
389
|
-
const handle = createRuntimeSnapshot(input, this.snapshotSource()
|
|
389
|
+
const handle = createRuntimeSnapshot(input, this.snapshotSource(), {
|
|
390
|
+
authorityContext: this.authorityScope ? authorityScopeKey(this.authorityScope) : 'unscoped',
|
|
391
|
+
});
|
|
390
392
|
this.snapshots.set(input.name, handle);
|
|
391
393
|
return handle;
|
|
392
394
|
}
|
|
@@ -399,7 +401,7 @@ export class StateFirstDB {
|
|
|
399
401
|
* path.
|
|
400
402
|
*/
|
|
401
403
|
snapshotSource() {
|
|
402
|
-
|
|
404
|
+
const source = {
|
|
403
405
|
readRecords: async (collection) => {
|
|
404
406
|
const result = await this.jsDb.query(collection);
|
|
405
407
|
if (!result?.success) {
|
|
@@ -408,9 +410,28 @@ export class StateFirstDB {
|
|
|
408
410
|
const records = result.data ? JSON.parse(result.data) : [];
|
|
409
411
|
return Array.isArray(records) ? records : [];
|
|
410
412
|
},
|
|
413
|
+
// Bounded source selection: a filtered source is first read through the
|
|
414
|
+
// same scoped, bounded authority query every other read uses. When the
|
|
415
|
+
// selection fits in one page (the maximum, 1,000) that single bounded
|
|
416
|
+
// read is the whole materialization. When it does not, the selection is
|
|
417
|
+
// not small, and one full read beats paging a filter the runtime may have
|
|
418
|
+
// to re-evaluate per page — so the build falls back to it. Either way
|
|
419
|
+
// the build re-applies the filter; this chooses an access path only.
|
|
420
|
+
...(this.jsDb.authority_query ? {
|
|
421
|
+
readSelected: async (collection, where) => {
|
|
422
|
+
const page = await this.jsDb.authority_query({
|
|
423
|
+
collection,
|
|
424
|
+
where,
|
|
425
|
+
orderBy: [{ field: 'id', direction: 'asc' }],
|
|
426
|
+
limit: 1_000,
|
|
427
|
+
});
|
|
428
|
+
return page.exhausted ? page.records : source.readRecords(collection);
|
|
429
|
+
},
|
|
430
|
+
} : {}),
|
|
411
431
|
freshness: () => describeFreshness(this.jsDb),
|
|
412
432
|
revision: () => readRevision(this.jsDb),
|
|
413
433
|
};
|
|
434
|
+
return source;
|
|
414
435
|
}
|
|
415
436
|
/** Deterministically rebuild all derived embedded indexes. */
|
|
416
437
|
async rebuildIndexes() {
|
|
@@ -486,6 +507,8 @@ export class StateFirstDB {
|
|
|
486
507
|
return this.transaction(tx => {
|
|
487
508
|
for (const condition of document.preconditions ?? [])
|
|
488
509
|
tx.require(condition);
|
|
510
|
+
for (const basis of document.fences ?? [])
|
|
511
|
+
tx.fence(basis);
|
|
489
512
|
for (const operation of document.operations) {
|
|
490
513
|
const collection = tx.collection(operation.collection);
|
|
491
514
|
if (operation.value === undefined) {
|
|
@@ -551,6 +574,22 @@ export class StateFirstDB {
|
|
|
551
574
|
throw transactionError;
|
|
552
575
|
}
|
|
553
576
|
}
|
|
577
|
+
/**
|
|
578
|
+
* Capture a read basis: what the authority holds, now, for a set of records
|
|
579
|
+
* and equality predicates.
|
|
580
|
+
*
|
|
581
|
+
* Pass it to `tx.fence(basis)` and the transaction commits only if that same
|
|
582
|
+
* state is unchanged at the moment of commit — evaluated by the authority,
|
|
583
|
+
* inside its commit decision, whichever write path changed it. State outside
|
|
584
|
+
* the set never conflicts. A runtime that cannot evaluate a fence inside its
|
|
585
|
+
* commit boundary refuses rather than committing unfenced.
|
|
586
|
+
*/
|
|
587
|
+
async readBasis(reads) {
|
|
588
|
+
if (!this.jsDb.read_basis) {
|
|
589
|
+
throw new FeltDBServiceError('This FeltDB runtime cannot evaluate read-basis fences inside its commit boundary.', FeltDBErrorCode.CONTRACT_UNSUPPORTED);
|
|
590
|
+
}
|
|
591
|
+
return this.jsDb.read_basis(normaliseReadSet(reads));
|
|
592
|
+
}
|
|
554
593
|
/**
|
|
555
594
|
* Get or create a durable cell.
|
|
556
595
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded-query.d.ts","sourceRoot":"","sources":["../src/embedded-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG9E,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAInC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAgDD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CASrH;AAkCD,kFAAkF;AAClF,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAAmC;gBAErB,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvE,OAAO,IAAI,IAAI;IAMf,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAgCpD,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,IAAI;IAqBZ,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,wBAAwB;IAK/D,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"embedded-query.d.ts","sourceRoot":"","sources":["../src/embedded-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG9E,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAInC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAgDD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CASrH;AAkCD,kFAAkF;AAClF,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAAmC;gBAErB,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvE,OAAO,IAAI,IAAI;IAMf,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAgCpD,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,IAAI;IAqBZ,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,wBAAwB;IAK/D,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE;IAyErG,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,QAAQ;CAkBjB"}
|
package/dist/embedded-query.js
CHANGED
|
@@ -202,12 +202,28 @@ export class EmbeddedQueryEngine {
|
|
|
202
202
|
const order = query.orderBy ?? [];
|
|
203
203
|
const outputSpecs = order.map(value => ({ field: value.field, direction: value.direction }));
|
|
204
204
|
const cursor = query.cursor ? decode(query.cursor, binding(query)) : undefined;
|
|
205
|
+
let matching = [];
|
|
206
|
+
const lookupStarted = now();
|
|
207
|
+
if (!planned.index) {
|
|
208
|
+
// A full scan is one pass over the rows: filter by collection and
|
|
209
|
+
// conditions as they stream past, and allocate only for matches. Copying
|
|
210
|
+
// every row of every collection into an intermediate array first cost
|
|
211
|
+
// an order of magnitude more than the predicate work itself.
|
|
212
|
+
const prefix = `${query.collection}:`;
|
|
213
|
+
for (const [key, value] of this.allRows()) {
|
|
214
|
+
if (!key.startsWith(prefix))
|
|
215
|
+
continue;
|
|
216
|
+
stats.scanned += 1;
|
|
217
|
+
const record = value;
|
|
218
|
+
if (!record || typeof record !== 'object' || !conditions.every(condition => conditionMatches(record, condition)))
|
|
219
|
+
continue;
|
|
220
|
+
stats.matched += 1;
|
|
221
|
+
matching.push({ key, record });
|
|
222
|
+
}
|
|
223
|
+
}
|
|
205
224
|
const range = planned.index
|
|
206
225
|
? this.indexRange(planned.index, conditions)
|
|
207
|
-
:
|
|
208
|
-
const entries = [...this.allRows()].filter(([key]) => key.startsWith(`${query.collection}:`)).map(([key, value]) => ({ key, record: value }));
|
|
209
|
-
return { entries, start: 0, end: entries.length };
|
|
210
|
-
})();
|
|
226
|
+
: { entries: [], start: 0, end: 0 };
|
|
211
227
|
const candidates = range.entries;
|
|
212
228
|
let candidateStart = range.start;
|
|
213
229
|
if (planned.index && cursor) {
|
|
@@ -222,8 +238,6 @@ export class EmbeddedQueryEngine {
|
|
|
222
238
|
}
|
|
223
239
|
candidateStart = low;
|
|
224
240
|
}
|
|
225
|
-
let matching = [];
|
|
226
|
-
const lookupStarted = now();
|
|
227
241
|
for (let candidateIndex = candidateStart; candidateIndex < range.end; candidateIndex += 1) {
|
|
228
242
|
const entry = candidates[candidateIndex];
|
|
229
243
|
stats.scanned += 1;
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* transaction before touching storage and then apply the plan in one atomic
|
|
32
32
|
* step. That ordering is what makes partial application impossible.
|
|
33
33
|
*/
|
|
34
|
-
import type { AtomicTransactionRequest, AtomicTransactionResult, ConditionalConflictDetail } from './transaction.js';
|
|
34
|
+
import type { AtomicTransactionRequest, AtomicTransactionResult, ConditionalConflictDetail, TransactionReadSet } from './transaction.js';
|
|
35
35
|
/** One resolved mutation. An absent `value` means delete. */
|
|
36
36
|
export interface EmbeddedMutation {
|
|
37
37
|
/** Storage key, `collection:id`. */
|
|
@@ -55,7 +55,27 @@ export interface EmbeddedTransactionState {
|
|
|
55
55
|
* defect this primitive exists to remove.
|
|
56
56
|
*/
|
|
57
57
|
read?(key: string): Record<string, unknown> | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Every current record of each named collection, for evaluating read-basis
|
|
60
|
+
* predicates. A runtime that cannot enumerate a collection inside its commit
|
|
61
|
+
* boundary leaves this undefined, and a fenced transaction is then refused.
|
|
62
|
+
*/
|
|
63
|
+
scan?(collections: readonly string[]): Map<string, Array<Record<string, unknown>>>;
|
|
58
64
|
}
|
|
65
|
+
/** Token prefix for read bases evaluated by the embedded runtimes. */
|
|
66
|
+
export declare const EMBEDDED_READ_BASIS_PREFIX = "fb1:";
|
|
67
|
+
/**
|
|
68
|
+
* What the state named by a read set is, now, as one opaque token.
|
|
69
|
+
*
|
|
70
|
+
* Every record is read in full, including its `__version`: a write that
|
|
71
|
+
* changes a record's content, its version, or its existence changes the
|
|
72
|
+
* token, whichever write path made it. A predicate covers the records that
|
|
73
|
+
* match it now, so a record that starts or stops matching changes the token
|
|
74
|
+
* too. Records outside the set are never read.
|
|
75
|
+
*/
|
|
76
|
+
export declare function readBasisToken(reads: TransactionReadSet, state: Required<Pick<EmbeddedTransactionState, 'read' | 'scan'>>): string;
|
|
77
|
+
/** Group every row by collection, for runtimes that hold rows keyed `collection:id`. */
|
|
78
|
+
export declare function scanRows(entries: Iterable<[string, unknown]>, collections: readonly string[]): Map<string, Array<Record<string, unknown>>>;
|
|
59
79
|
export type EmbeddedPlan = {
|
|
60
80
|
kind: 'duplicate';
|
|
61
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded-transaction.d.ts","sourceRoot":"","sources":["../src/embedded-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAEV,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"embedded-transaction.d.ts","sourceRoot":"","sources":["../src/embedded-transaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAEV,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EAEzB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAI1B,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,6DAA6D;AAC7D,MAAM,WAAW,wBAAwB;IACvC,yCAAyC;IACzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,8DAA8D;IAC9D,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACxD;;;;OAIG;IACH,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACpF;AAED,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,SAAS,CAAC;AAkBjD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,kBAAkB,EACzB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GAC/D,MAAM,CAgBR;AAED,wFAAwF;AACxF,wBAAgB,QAAQ,CACtB,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAS7C;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE;AACvB;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,yBAAyB,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC;AAErD,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhE;AAID;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAuNd;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,wBAAwB,EACjC,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,uBAAuB,CAazB;AAED;;;;;;;GAOG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC;gBACxC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB;CAQhE"}
|
|
@@ -31,6 +31,64 @@
|
|
|
31
31
|
* transaction before touching storage and then apply the plan in one atomic
|
|
32
32
|
* step. That ordering is what makes partial application impossible.
|
|
33
33
|
*/
|
|
34
|
+
import { normaliseReadSet } from './transaction.js';
|
|
35
|
+
import { canonicalJson, sha256Hex } from './stable-hash.js';
|
|
36
|
+
/** Token prefix for read bases evaluated by the embedded runtimes. */
|
|
37
|
+
export const EMBEDDED_READ_BASIS_PREFIX = 'fb1:';
|
|
38
|
+
/** One predicate condition, compiled: primitives compare directly, structures canonically. */
|
|
39
|
+
function compile(where) {
|
|
40
|
+
const conditions = where.map(condition => {
|
|
41
|
+
const structured = condition.eq !== null && typeof condition.eq === 'object';
|
|
42
|
+
const expected = structured ? canonicalJson(condition.eq) : condition.eq;
|
|
43
|
+
return (row) => {
|
|
44
|
+
if (!Object.prototype.hasOwnProperty.call(row, condition.field))
|
|
45
|
+
return false;
|
|
46
|
+
const actual = row[condition.field];
|
|
47
|
+
return structured
|
|
48
|
+
? actual !== null && typeof actual === 'object' && canonicalJson(actual) === expected
|
|
49
|
+
: actual === expected;
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
return row => conditions.every(condition => condition(row));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What the state named by a read set is, now, as one opaque token.
|
|
56
|
+
*
|
|
57
|
+
* Every record is read in full, including its `__version`: a write that
|
|
58
|
+
* changes a record's content, its version, or its existence changes the
|
|
59
|
+
* token, whichever write path made it. A predicate covers the records that
|
|
60
|
+
* match it now, so a record that starts or stops matching changes the token
|
|
61
|
+
* too. Records outside the set are never read.
|
|
62
|
+
*/
|
|
63
|
+
export function readBasisToken(reads, state) {
|
|
64
|
+
const set = normaliseReadSet(reads);
|
|
65
|
+
const collections = [...new Set(set.predicates.map(predicate => predicate.collection))];
|
|
66
|
+
const scanned = collections.length ? state.scan(collections) : new Map();
|
|
67
|
+
const observed = {
|
|
68
|
+
records: set.records.map(record => [record.collection, record.id, state.read(recordKey(record.collection, record.id)) ?? null]),
|
|
69
|
+
predicates: set.predicates.map(predicate => [
|
|
70
|
+
predicate.collection,
|
|
71
|
+
predicate.where,
|
|
72
|
+
(scanned.get(predicate.collection) ?? [])
|
|
73
|
+
.filter(compile(predicate.where))
|
|
74
|
+
.map(row => [String(row.id), row])
|
|
75
|
+
.sort(([left], [right]) => (String(left) < String(right) ? -1 : 1)),
|
|
76
|
+
]),
|
|
77
|
+
};
|
|
78
|
+
return `${EMBEDDED_READ_BASIS_PREFIX}${sha256Hex(canonicalJson(observed))}`;
|
|
79
|
+
}
|
|
80
|
+
/** Group every row by collection, for runtimes that hold rows keyed `collection:id`. */
|
|
81
|
+
export function scanRows(entries, collections) {
|
|
82
|
+
const wanted = new Set(collections);
|
|
83
|
+
const output = new Map(collections.map(collection => [collection, []]));
|
|
84
|
+
for (const [key, value] of entries) {
|
|
85
|
+
const separator = key.indexOf(':');
|
|
86
|
+
const collection = separator < 0 ? '' : key.slice(0, separator);
|
|
87
|
+
if (wanted.has(collection) && value && typeof value === 'object')
|
|
88
|
+
output.get(collection).push(value);
|
|
89
|
+
}
|
|
90
|
+
return output;
|
|
91
|
+
}
|
|
34
92
|
/** Storage key for a collection and id. */
|
|
35
93
|
export function recordKey(collection, id) {
|
|
36
94
|
return `${collection}:${id}`;
|
|
@@ -163,6 +221,44 @@ export function decideTransaction(request, state) {
|
|
|
163
221
|
}
|
|
164
222
|
}
|
|
165
223
|
}
|
|
224
|
+
// Read bases, evaluated against the same state and in the same decision as
|
|
225
|
+
// the writes, after the record preconditions and before anything is staged.
|
|
226
|
+
const fences = request.fences ?? [];
|
|
227
|
+
if (fences.length > 0) {
|
|
228
|
+
if (!state.read || !state.scan) {
|
|
229
|
+
return {
|
|
230
|
+
kind: 'reject',
|
|
231
|
+
reason: 'this runtime cannot evaluate read-basis fences inside its commit boundary, so it refuses the '
|
|
232
|
+
+ 'transaction rather than committing it unfenced',
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
for (const fence of fences) {
|
|
236
|
+
if (typeof fence?.token !== 'string' || !fence.token.startsWith(EMBEDDED_READ_BASIS_PREFIX)) {
|
|
237
|
+
return { kind: 'reject', reason: 'a read basis was not issued by this authority' };
|
|
238
|
+
}
|
|
239
|
+
let actual;
|
|
240
|
+
try {
|
|
241
|
+
actual = readBasisToken(fence.reads, { read: state.read, scan: state.scan });
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
return { kind: 'reject', reason: `invalid read basis: ${error instanceof Error ? error.message : String(error)}` };
|
|
245
|
+
}
|
|
246
|
+
if (actual !== fence.token) {
|
|
247
|
+
const first = normaliseReadSet(fence.reads);
|
|
248
|
+
return {
|
|
249
|
+
kind: 'reject',
|
|
250
|
+
reason: 'PRECONDITION_FAILED:read-basis:state read by this transaction has changed',
|
|
251
|
+
failure: {
|
|
252
|
+
predicate: 'fence',
|
|
253
|
+
collection: first.records[0]?.collection ?? first.predicates[0]?.collection ?? '',
|
|
254
|
+
key: 'read-basis',
|
|
255
|
+
expected: fence.token,
|
|
256
|
+
actual,
|
|
257
|
+
},
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
166
262
|
const mutations = [];
|
|
167
263
|
const seen = new Set();
|
|
168
264
|
for (const operation of request.operations) {
|
package/dist/feltdb.d.ts
CHANGED
|
@@ -153,6 +153,12 @@ export interface JsDb {
|
|
|
153
153
|
* provide the guarantee. Runtimes that cannot leave it undefined, so callers
|
|
154
154
|
* get an explicit refusal instead of a silent sequence of separate writes.
|
|
155
155
|
*/
|
|
156
|
+
/**
|
|
157
|
+
* Capture a read basis: the state a read set names, now, as an opaque token
|
|
158
|
+
* this runtime can re-evaluate inside a later commit. A runtime that cannot
|
|
159
|
+
* evaluate fences inside its commit boundary leaves this undefined.
|
|
160
|
+
*/
|
|
161
|
+
read_basis?(reads: import('./transaction.js').TransactionReadSet): Promise<import('./transaction.js').TransactionReadBasis>;
|
|
156
162
|
commit_transaction?(request: {
|
|
157
163
|
transactionId: string;
|
|
158
164
|
operations: Array<{
|
|
@@ -177,6 +183,8 @@ export interface JsDb {
|
|
|
177
183
|
expectedEpoch?: number;
|
|
178
184
|
expectedLeaseId?: string;
|
|
179
185
|
}>;
|
|
186
|
+
/** Read bases this runtime issued; re-evaluated inside the commit decision. */
|
|
187
|
+
fences?: import('./transaction.js').TransactionReadBasis[];
|
|
180
188
|
}): Promise<{
|
|
181
189
|
transactionId: string;
|
|
182
190
|
duplicate: boolean;
|
package/dist/feltdb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feltdb.d.ts","sourceRoot":"","sources":["../src/feltdb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC;IAEhC;;OAEG;IACH,SAAS,IAAI,GAAG,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;IAE/B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;IAEpC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;IAEvC;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,GAAG,CAAC;IAEnE;;OAEG;IACH,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;IAEpE;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEzC,iEAAiE;IACjE,eAAe,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD;;;;;OAKG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAE3C,oDAAoD;IACpD,aAAa,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,mEAAmE;IACnE,eAAe,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAErC;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEvD,6DAA6D;IAC7D,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAExD,qDAAqD;IACrD,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEzC,2EAA2E;IAC3E,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IAC5F,KAAK,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC;IAEhD;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;IAEtB;;;;;;;;;OASG;IACH,YAAY,IAAI,MAAM,CAAC;IAEvB;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjE;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/B,0EAA0E;IAC1E,YAAY,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC,6DAA6D;IAC7D,iBAAiB,CAAC,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,uBAAuB,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhE;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAExF;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAErQ,8EAA8E;IAC9E,cAAc,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1C,kFAAkF;IAClF,mBAAmB,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE/C;;;;;;OAMG;IACH,kBAAkB,CAAC,CAAC,OAAO,EAAE;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,KAAK,CAAC;YAChB,UAAU,EAAE,MAAM,CAAC;YACnB,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChC,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB;;;eAGG;YACH,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC,CAAC;QACH,4DAA4D;QAC5D,aAAa,CAAC,EAAE,KAAK,CAAC;YACpB,UAAU,EAAE,MAAM,CAAC;YACnB,EAAE,EAAE,MAAM,CAAC;YACX,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;SAC1B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"feltdb.d.ts","sourceRoot":"","sources":["../src/feltdb.ts"],"names":[],"mappings":"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"}
|
package/dist/file-db.d.ts
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
import type { JsDb } from './feltdb.js';
|
|
2
2
|
import type { FreshnessCapability } from './freshness.js';
|
|
3
3
|
import type { OperationAdmissionInput, OperationAdmissionResult, OperationTransitionInput, OperationTransitionResult } from './operation-admission.js';
|
|
4
|
-
import type { AtomicTransactionRequest, AtomicTransactionResult } from './transaction.js';
|
|
4
|
+
import type { AtomicTransactionRequest, AtomicTransactionResult, TransactionReadBasis, TransactionReadSet } from './transaction.js';
|
|
5
5
|
import type { AuthorityQueryRequest } from './http-db.js';
|
|
6
6
|
import { type PersistenceProfile } from './file-journal.js';
|
|
7
7
|
export { JournalCorruptionError } from './file-journal.js';
|
|
8
|
+
/** The newest local file snapshot format this build reads and writes. */
|
|
9
|
+
export declare const FILE_SNAPSHOT_FORMAT_VERSION = 2;
|
|
10
|
+
/**
|
|
11
|
+
* The runtime directory was written in a durable format newer than this build
|
|
12
|
+
* understands.
|
|
13
|
+
*
|
|
14
|
+
* Refused rather than recovered around: treating a newer snapshot as invalid
|
|
15
|
+
* and falling back to an older backup — or to an empty database — silently
|
|
16
|
+
* discards every commit the newer format carries. That is exactly what a
|
|
17
|
+
* package-only rollback onto upgraded data would do, so it fails closed.
|
|
18
|
+
*/
|
|
19
|
+
export declare class UnsupportedDurableFormatError extends Error {
|
|
20
|
+
readonly statePath: string;
|
|
21
|
+
readonly found: number;
|
|
22
|
+
readonly code = "UNSUPPORTED_DURABLE_FORMAT";
|
|
23
|
+
constructor(statePath: string, found: number);
|
|
24
|
+
}
|
|
8
25
|
export type { PersistenceProfile, PersistencePhase, PhaseSummary } from './file-journal.js';
|
|
9
26
|
interface JsResult {
|
|
10
27
|
success: boolean;
|
|
@@ -186,6 +203,13 @@ export declare class FileJsDb implements JsDb {
|
|
|
186
203
|
* Order matters here. The commit is made durable *before* it is applied in
|
|
187
204
|
* memory, so a failed write cannot leave memory ahead of disk.
|
|
188
205
|
*/
|
|
206
|
+
/**
|
|
207
|
+
* Capture a read basis the way every read here reads: refresh from the
|
|
208
|
+
* durable journal, which exposes only whole, terminated commits, then
|
|
209
|
+
* evaluate. Capturing is a read and takes no lock; the commit that carries
|
|
210
|
+
* the basis re-evaluates it under the commit lock.
|
|
211
|
+
*/
|
|
212
|
+
read_basis(reads: TransactionReadSet): Promise<TransactionReadBasis>;
|
|
189
213
|
commit_transaction(request: AtomicTransactionRequest): Promise<AtomicTransactionResult>;
|
|
190
214
|
insert(key: string, value: string): JsResult;
|
|
191
215
|
update(key: string, value: string): JsResult;
|
package/dist/file-db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-db.d.ts","sourceRoot":"","sources":["../src/file-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EAG1B,MAAM,0BAA0B,CAAC;AAalC,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-db.d.ts","sourceRoot":"","sources":["../src/file-db.ts"],"names":[],"mappings":"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"}
|
package/dist/file-db.js
CHANGED
|
@@ -2,10 +2,36 @@ import { validateOperationAdmissionInput, operationsConflict, generateOperationI
|
|
|
2
2
|
import { FeltDBErrorCode, FeltDBServiceError } from './error-codes.js';
|
|
3
3
|
import * as nodeFs from 'fs';
|
|
4
4
|
import * as nodePath from 'path';
|
|
5
|
-
import {
|
|
5
|
+
import { normaliseReadSet } from './transaction.js';
|
|
6
|
+
import { decideTransaction, readBasisToken, scanRows, embeddedResult, EmbeddedTransactionRejected, } from './embedded-transaction.js';
|
|
6
7
|
import { EmbeddedQueryEngine } from './embedded-query.js';
|
|
7
8
|
import { encodeRecord, scanJournal, JournalCorruptionError, PersistenceProfiler, } from './file-journal.js';
|
|
8
9
|
export { JournalCorruptionError } from './file-journal.js';
|
|
10
|
+
/** The newest local file snapshot format this build reads and writes. */
|
|
11
|
+
export const FILE_SNAPSHOT_FORMAT_VERSION = 2;
|
|
12
|
+
/**
|
|
13
|
+
* The runtime directory was written in a durable format newer than this build
|
|
14
|
+
* understands.
|
|
15
|
+
*
|
|
16
|
+
* Refused rather than recovered around: treating a newer snapshot as invalid
|
|
17
|
+
* and falling back to an older backup — or to an empty database — silently
|
|
18
|
+
* discards every commit the newer format carries. That is exactly what a
|
|
19
|
+
* package-only rollback onto upgraded data would do, so it fails closed.
|
|
20
|
+
*/
|
|
21
|
+
export class UnsupportedDurableFormatError extends Error {
|
|
22
|
+
statePath;
|
|
23
|
+
found;
|
|
24
|
+
code = 'UNSUPPORTED_DURABLE_FORMAT';
|
|
25
|
+
constructor(statePath, found) {
|
|
26
|
+
super(`UNSUPPORTED_DURABLE_FORMAT: ${statePath} is in local durable format ${found}; this FeltDB `
|
|
27
|
+
+ `build reads formats 1-${FILE_SNAPSHOT_FORMAT_VERSION}. It was written by a newer FeltDB. `
|
|
28
|
+
+ 'The database was not opened and was not modified. Upgrade FeltDB, or restore the backup '
|
|
29
|
+
+ 'taken before the upgrade.');
|
|
30
|
+
this.statePath = statePath;
|
|
31
|
+
this.found = found;
|
|
32
|
+
this.name = 'UnsupportedDurableFormatError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
9
35
|
// Synchronous versions for sync API (will throw if called in browser)
|
|
10
36
|
function getFsSync() {
|
|
11
37
|
if (typeof nodeFs.existsSync === 'function')
|
|
@@ -98,6 +124,9 @@ export class FileJsDb {
|
|
|
98
124
|
parseSnapshot(path) {
|
|
99
125
|
const content = getFsSync().readFileSync(path, 'utf-8');
|
|
100
126
|
const snapshot = JSON.parse(content);
|
|
127
|
+
if (typeof snapshot.version === 'number' && snapshot.version > FILE_SNAPSHOT_FORMAT_VERSION) {
|
|
128
|
+
throw new UnsupportedDurableFormatError(path, snapshot.version);
|
|
129
|
+
}
|
|
101
130
|
const known = snapshot.version === 1
|
|
102
131
|
|| (snapshot.version === 2 && Number.isInteger(snapshot.journal?.generation) && Number.isInteger(snapshot.journal?.commit));
|
|
103
132
|
if (!known || !snapshot.meta || !snapshot.rows || !snapshot.events)
|
|
@@ -119,6 +148,8 @@ export class FileJsDb {
|
|
|
119
148
|
console.warn(`Invalid snapshot structure at ${this.statePath}, attempting backup recovery`);
|
|
120
149
|
}
|
|
121
150
|
catch (error) {
|
|
151
|
+
if (error instanceof UnsupportedDurableFormatError)
|
|
152
|
+
throw error;
|
|
122
153
|
if (!isMissing(error)) {
|
|
123
154
|
console.warn(`Failed to load snapshot from ${this.statePath}: ${error}`);
|
|
124
155
|
console.warn(`Attempting to recover from backup...`);
|
|
@@ -134,7 +165,9 @@ export class FileJsDb {
|
|
|
134
165
|
return { snapshot: parsed.snapshot, bytes: parsed.bytes, source: 'backup' };
|
|
135
166
|
}
|
|
136
167
|
}
|
|
137
|
-
catch {
|
|
168
|
+
catch (error) {
|
|
169
|
+
if (error instanceof UnsupportedDurableFormatError)
|
|
170
|
+
throw error;
|
|
138
171
|
// Backup is also corrupted or invalid
|
|
139
172
|
}
|
|
140
173
|
console.warn(`Backup recovery failed, reinitializing state`);
|
|
@@ -553,7 +586,7 @@ export class FileJsDb {
|
|
|
553
586
|
this.syncDirectory();
|
|
554
587
|
this.state.peers = [...this.peers];
|
|
555
588
|
const snapshot = {
|
|
556
|
-
version:
|
|
589
|
+
version: FILE_SNAPSHOT_FORMAT_VERSION,
|
|
557
590
|
timestamp: Date.now(),
|
|
558
591
|
meta: {
|
|
559
592
|
instance_id: this.origin,
|
|
@@ -834,6 +867,23 @@ export class FileJsDb {
|
|
|
834
867
|
* Order matters here. The commit is made durable *before* it is applied in
|
|
835
868
|
* memory, so a failed write cannot leave memory ahead of disk.
|
|
836
869
|
*/
|
|
870
|
+
/**
|
|
871
|
+
* Capture a read basis the way every read here reads: refresh from the
|
|
872
|
+
* durable journal, which exposes only whole, terminated commits, then
|
|
873
|
+
* evaluate. Capturing is a read and takes no lock; the commit that carries
|
|
874
|
+
* the basis re-evaluates it under the commit lock.
|
|
875
|
+
*/
|
|
876
|
+
async read_basis(reads) {
|
|
877
|
+
const normalised = normaliseReadSet(reads);
|
|
878
|
+
this.refresh();
|
|
879
|
+
return {
|
|
880
|
+
reads: normalised,
|
|
881
|
+
token: readBasisToken(normalised, {
|
|
882
|
+
read: key => this.state.rows[key],
|
|
883
|
+
scan: collections => scanRows(Object.entries(this.state.rows), collections),
|
|
884
|
+
}),
|
|
885
|
+
};
|
|
886
|
+
}
|
|
837
887
|
async commit_transaction(request) {
|
|
838
888
|
await this.acquireLockAsync();
|
|
839
889
|
const started = this.profiler.now();
|
|
@@ -844,6 +894,7 @@ export class FileJsDb {
|
|
|
844
894
|
exists: key => key in this.state.rows,
|
|
845
895
|
hasApplied: transactionId => this.applied.has(transactionId),
|
|
846
896
|
read: key => this.state.rows[key],
|
|
897
|
+
scan: collections => scanRows(Object.entries(this.state.rows), collections),
|
|
847
898
|
});
|
|
848
899
|
if (plan.kind === 'duplicate')
|
|
849
900
|
return embeddedResult(request, true, before, this.state.sequence);
|
package/dist/flowspec.d.ts
CHANGED
|
@@ -59,6 +59,13 @@ export interface FlowMigrationOperation {
|
|
|
59
59
|
export declare const FLOW_PRIMITIVE_TYPES: readonly ["text", "integer", "number", "boolean", "datetime", "date", "time", "json", "uuid", "decimal", "money", "bigint", "email", "url", "phone", "binary", "file", "geo", "object"];
|
|
60
60
|
export declare function isValidFlowFieldType(type: string): boolean;
|
|
61
61
|
import type { ApplicationManifest } from './application-manifest.js';
|
|
62
|
+
/**
|
|
63
|
+
* The workflows a trigger names, in declaration order: `run W` or `workflow W(args)`.
|
|
64
|
+
*
|
|
65
|
+
* A trigger that names none binds to `''`, which contract validation rejects as
|
|
66
|
+
* an unknown workflow, rather than being silently bound to some other workflow.
|
|
67
|
+
*/
|
|
68
|
+
export declare function triggerWorkflows(trigger: FlowTrigger): string[];
|
|
62
69
|
/** FlowSpec is a portable source format; the returned Rust manifest is authoritative only after server validation. */
|
|
63
70
|
export declare function flowSpecToManifest(spec: FlowSpec, tenantId: string, applicationId: string): ApplicationManifest;
|
|
64
71
|
export declare function manifestToFlowSpec(manifest: ApplicationManifest): FlowSpec;
|