@feltdb/core 0.8.2 → 0.8.4
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/commands.js +4 -1
- package/dist/cli/provisioning-neutrality.js +79 -0
- package/dist/collection.d.ts +43 -1
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +192 -22
- package/dist/create/create.js +25 -21
- package/dist/create/managed-account.js +11 -0
- package/dist/create/package-versions.js +1 -1
- package/dist/create/server-source/crates/feltdb/src/equality_index.rs +595 -0
- package/dist/create/server-source/crates/feltdb/src/lib.rs +547 -115
- package/dist/create/server-source/crates/feltdb/src/phase1c3_acceptance.rs +11 -2
- package/dist/create/server-source/crates/feltdb/src/query_execution_diagnostics.rs +126 -0
- package/dist/create/server-source/crates/feltdb/src/state_contract.rs +292 -2
- package/dist/create/server-source/crates/feltdb/src/sync.rs +12 -0
- package/dist/create/server-source/crates/feltdb/src/workload_diagnostics.rs +443 -0
- package/dist/create/server-source/crates/feltdb/tests/pr34_query_collection.rs +233 -0
- package/dist/create/server-source/crates/feltdb/tests/pr35_equality_index.rs +892 -0
- package/dist/create/server-source/crates/feltdb-server/src/audit.rs +1137 -29
- package/dist/create/server-source/crates/feltdb-server/src/main.rs +474 -28
- package/dist/db.d.ts +33 -34
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +74 -20
- package/dist/deployment.d.ts +30 -0
- package/dist/deployment.d.ts.map +1 -0
- package/dist/deployment.js +130 -0
- package/dist/embedded-transaction.d.ts +22 -4
- package/dist/embedded-transaction.d.ts.map +1 -1
- package/dist/embedded-transaction.js +51 -5
- package/dist/feltdb.d.ts +14 -2
- package/dist/feltdb.d.ts.map +1 -1
- package/dist/file-db.d.ts +8 -15
- package/dist/file-db.d.ts.map +1 -1
- package/dist/file-db.js +234 -130
- package/dist/http-client.d.ts +14 -0
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +23 -5
- package/dist/http-db.d.ts +119 -1
- package/dist/http-db.d.ts.map +1 -1
- package/dist/http-db.js +346 -31
- package/dist/index-core.d.ts +2 -0
- package/dist/index-core.d.ts.map +1 -1
- package/dist/index-core.js +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/indexeddb-db.d.ts.map +1 -1
- package/dist/indexeddb-db.js +35 -21
- package/dist/managed-recovery.d.ts +192 -0
- package/dist/managed-recovery.d.ts.map +1 -0
- package/dist/managed-recovery.js +242 -0
- package/dist/memory-db.js +1 -1
- package/dist/studio-app/assets/{feltdb_wasm-DB8cX151.js → feltdb_wasm-CVQWgXO-.js} +1 -1
- package/dist/studio-app/assets/feltdb_wasm_bg-CNVpvaZV.wasm +0 -0
- package/dist/studio-app/assets/index-DwgNAIIX.js +29 -0
- package/dist/studio-app/index.html +1 -1
- package/dist/transaction.d.ts +30 -0
- package/dist/transaction.d.ts.map +1 -1
- package/dist/transaction.js +41 -0
- package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
- package/package.json +1 -1
- package/dist/studio-app/assets/feltdb_wasm_bg-ClhDHp0S.wasm +0 -0
- package/dist/studio-app/assets/index-B0k4UAlI.js +0 -29
package/dist/http-db.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { JsDb } from './feltdb.js';
|
|
2
2
|
import type { FreshnessCapability, Revision } from './freshness.js';
|
|
3
|
+
import { type ManagedClientHealth } from './managed-recovery.js';
|
|
3
4
|
interface JsResult {
|
|
4
5
|
success: boolean;
|
|
5
6
|
data?: string;
|
|
@@ -10,6 +11,26 @@ interface HttpRuntimeOptions {
|
|
|
10
11
|
token?: string;
|
|
11
12
|
applicationId?: string;
|
|
12
13
|
environment?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Event-stream reconnection bounds. Tests pin them; applications should not
|
|
16
|
+
* need to, which is why they are optional and undocumented in the README.
|
|
17
|
+
*/
|
|
18
|
+
reconnect?: {
|
|
19
|
+
base?: number;
|
|
20
|
+
max?: number;
|
|
21
|
+
factor?: number;
|
|
22
|
+
random?: () => number;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* How long a canonical application request may take before it is abandoned.
|
|
26
|
+
*
|
|
27
|
+
* Thirty seconds remains the default, unchanged. It is settable because a
|
|
28
|
+
* hard-coded timeout with no override is its own resilience problem: a
|
|
29
|
+
* caller with a tighter latency budget than the transport's had no way to
|
|
30
|
+
* express it, and a test that needs to reproduce a real timeout had no way
|
|
31
|
+
* to do it in less than half a minute.
|
|
32
|
+
*/
|
|
33
|
+
requestTimeoutMs?: number;
|
|
13
34
|
}
|
|
14
35
|
export interface AuthorityQueryRequest {
|
|
15
36
|
collection: string;
|
|
@@ -40,9 +61,38 @@ export declare class HttpJsDb implements JsDb {
|
|
|
40
61
|
private token;
|
|
41
62
|
private readonly applicationId?;
|
|
42
63
|
private readonly environment;
|
|
43
|
-
private activeRevision?;
|
|
44
64
|
private readonly authWaiters;
|
|
65
|
+
/**
|
|
66
|
+
* Canonical revision discovery.
|
|
67
|
+
*
|
|
68
|
+
* This used to be `private activeRevision?: Promise<string>` assigned with
|
|
69
|
+
* `??=`, which cached the rejected promise a single timeout produced and
|
|
70
|
+
* poisoned the client for its whole life. It is a state machine now, and the
|
|
71
|
+
* state it refuses to keep is a failure.
|
|
72
|
+
*/
|
|
73
|
+
private readonly revisionCache;
|
|
74
|
+
private readonly backoff;
|
|
75
|
+
private readonly requestTimeoutMs;
|
|
76
|
+
private connectionState;
|
|
77
|
+
private availabilityState;
|
|
78
|
+
private lastError?;
|
|
79
|
+
private lastSuccessAt?;
|
|
80
|
+
private nextRetryAt?;
|
|
81
|
+
private streamFailures;
|
|
82
|
+
private authorityFailures;
|
|
45
83
|
constructor(options: HttpRuntimeOptions);
|
|
84
|
+
/**
|
|
85
|
+
* The operational view: connected, recovering, or unable to proceed.
|
|
86
|
+
*
|
|
87
|
+
* This does not replace the typed error a caller already receives. An
|
|
88
|
+
* application handles `FeltDBServiceError`; an operator reads this. Before
|
|
89
|
+
* PR39 the only signal for a swallowed failure was a `console.error` in the
|
|
90
|
+
* collection refresh path, which no program can act on.
|
|
91
|
+
*/
|
|
92
|
+
health(): ManagedClientHealth;
|
|
93
|
+
/** Record a failure for the operational surface, without swallowing it. */
|
|
94
|
+
private recordFailure;
|
|
95
|
+
private recordSuccess;
|
|
46
96
|
private headers;
|
|
47
97
|
private updateToken;
|
|
48
98
|
private waitForAuthChange;
|
|
@@ -50,7 +100,25 @@ export declare class HttpJsDb implements JsDb {
|
|
|
50
100
|
access_token?: string;
|
|
51
101
|
}>(operation: 'signup' | 'signin' | 'signout' | 'session', body?: unknown): Promise<T>;
|
|
52
102
|
private splitKey;
|
|
103
|
+
/**
|
|
104
|
+
* The canonical revision for this application and environment.
|
|
105
|
+
*
|
|
106
|
+
* A success is cached for the life of the client, because a revision pointer
|
|
107
|
+
* the authority has already resolved does not change under a running client.
|
|
108
|
+
* Concurrent callers share one lookup. A failure is delivered to everyone
|
|
109
|
+
* waiting and cached by nobody, so the next operation tries again against
|
|
110
|
+
* whatever the authority has become.
|
|
111
|
+
*
|
|
112
|
+
* Nothing here retries on its own. That is the design, not an omission: the
|
|
113
|
+
* only automatic retry loop in this client is the event stream, and it is
|
|
114
|
+
* bounded and jittered. A revision lookup is re-attempted exactly when the
|
|
115
|
+
* application performs another operation, so a permanently misconfigured
|
|
116
|
+
* application produces the application's own call rate against the
|
|
117
|
+
* authority, never a client-generated storm on top of it.
|
|
118
|
+
*/
|
|
53
119
|
private revisionId;
|
|
120
|
+
/** Discovery state for tests and diagnostics; never used to make decisions. */
|
|
121
|
+
revisionState(): ManagedClientHealth['revision_state'];
|
|
54
122
|
private canonical;
|
|
55
123
|
private transactionDocument;
|
|
56
124
|
private canonicalTransaction;
|
|
@@ -94,6 +162,46 @@ export declare class HttpJsDb implements JsDb {
|
|
|
94
162
|
stateBefore: number;
|
|
95
163
|
stateAfter: number;
|
|
96
164
|
}>;
|
|
165
|
+
/**
|
|
166
|
+
* Atomically create a record only if the key is free.
|
|
167
|
+
*
|
|
168
|
+
* Routed through the authority's own transaction, not emulated with a read
|
|
169
|
+
* followed by a write: between a read and a write another writer commits,
|
|
170
|
+
* and the whole point of this call is that exactly one caller wins.
|
|
171
|
+
*
|
|
172
|
+
* A lost race is a value, not an exception -- `{ inserted: false }` with the
|
|
173
|
+
* record the winner wrote. Every other failure (authentication, schema,
|
|
174
|
+
* transport, a server error) is raised, because reporting one of those as
|
|
175
|
+
* "someone else got there first" would let a caller skip work it must do.
|
|
176
|
+
*
|
|
177
|
+
* One difference from the embedded runtimes is worth stating rather than
|
|
178
|
+
* discovering: the authority owns `__version` on a conditional create and
|
|
179
|
+
* stores 1, where an embedded runtime stores the caller's object verbatim.
|
|
180
|
+
* `Collection.putIfAbsent` supplies version 1 either way, so a collection
|
|
181
|
+
* caller sees no difference; a caller of this raw key/value surface does.
|
|
182
|
+
*/
|
|
183
|
+
putIfAbsent(key: string, value: string): Promise<{
|
|
184
|
+
inserted: boolean;
|
|
185
|
+
value: string;
|
|
186
|
+
}>;
|
|
187
|
+
/**
|
|
188
|
+
* Compare-and-set through the managed authority's transaction surface.
|
|
189
|
+
*
|
|
190
|
+
* The managed runtime serves the canonical application contract and not the
|
|
191
|
+
* single-record `/cas` endpoint, so a conditional update reaches it as a
|
|
192
|
+
* one-operation transaction fenced on the record's `__version`. It is the
|
|
193
|
+
* same predicate, evaluated by the same authority, inside the same lock.
|
|
194
|
+
*/
|
|
195
|
+
private managedCas;
|
|
196
|
+
/**
|
|
197
|
+
* What the authority actually holds after it refused a conditional update.
|
|
198
|
+
*
|
|
199
|
+
* The refusal usually names it, and that is the answer worth having because
|
|
200
|
+
* it was read inside the commit lock. When the failure does not carry a
|
|
201
|
+
* version -- the record was deleted, or an epoch or lease predicate failed --
|
|
202
|
+
* the record is re-read, which is what the caller would have to do anyway.
|
|
203
|
+
*/
|
|
204
|
+
private observedConflict;
|
|
97
205
|
cas(params: {
|
|
98
206
|
key: string;
|
|
99
207
|
expectedVersion: number;
|
|
@@ -106,6 +214,7 @@ export declare class HttpJsDb implements JsDb {
|
|
|
106
214
|
currentVersion: number;
|
|
107
215
|
currentEpoch?: number;
|
|
108
216
|
conflictCode?: string;
|
|
217
|
+
item?: any;
|
|
109
218
|
}>;
|
|
110
219
|
delete(key: string): Promise<JsResult>;
|
|
111
220
|
/** Acquire a reference through the server's causal peer fabric. */
|
|
@@ -121,6 +230,15 @@ export declare class HttpJsDb implements JsDb {
|
|
|
121
230
|
acquireContent(hash: string): Promise<Uint8Array | null>;
|
|
122
231
|
command(path: string, body: unknown): Promise<any>;
|
|
123
232
|
application_request<T>(path: string, init?: RequestInit): Promise<T>;
|
|
233
|
+
/**
|
|
234
|
+
* Subscribe to change notifications.
|
|
235
|
+
*
|
|
236
|
+
* The returned function is the only cancellation surface, and it has to do
|
|
237
|
+
* two things rather than one: abort the connection that may be open, and
|
|
238
|
+
* cancel the reconnect that may be pending. Cancelling only the first leaves
|
|
239
|
+
* a timer that wakes up after the caller has unsubscribed and opens a new
|
|
240
|
+
* connection to an authority nobody is listening to.
|
|
241
|
+
*/
|
|
124
242
|
subscribe_changes(callback: (collection: string) => void): () => void;
|
|
125
243
|
private consumeEvents;
|
|
126
244
|
private failure;
|
package/dist/http-db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-db.d.ts","sourceRoot":"","sources":["../src/http-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGpE,UAAU,QAAQ;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"http-db.d.ts","sourceRoot":"","sources":["../src/http-db.ts"],"names":[],"mappings":"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"}
|