@gonvex/client 0.5.2-staging.1 → 0.5.2-staging.11

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.
@@ -0,0 +1,19 @@
1
+ import { type ClientContract, type ClientMigration } from "./client-upgrades.js";
2
+ import type { LocalReplicaStorage } from "./local-replica.js";
3
+ import type { OutboxStore } from "./outbox.js";
4
+ export type BrowserUpgradeOptions = {
5
+ replicaName: string;
6
+ outboxName: string;
7
+ contract: ClientContract;
8
+ /** Version assigned to data written before this mechanism was introduced. */
9
+ initialVersion: number;
10
+ migrations: readonly ClientMigration[];
11
+ onRequired?: (error: Error) => void;
12
+ };
13
+ /** All app access goes through version-fenced SDK stores, including old tabs. */
14
+ export declare function browserUpgradeStorage(options: BrowserUpgradeOptions): {
15
+ storage: LocalReplicaStorage;
16
+ store: OutboxStore;
17
+ ready: Promise<void>;
18
+ close(): void;
19
+ };
@@ -0,0 +1,109 @@
1
+ import { Dexie } from "dexie";
2
+ import { IndexedDBLocalReplicaStorage } from "./indexeddb-replica.js";
3
+ import { migrateClientData, migrationChain } from "./client-upgrades.js";
4
+ /** All app access goes through version-fenced SDK stores, including old tabs. */
5
+ export function browserUpgradeStorage(options) {
6
+ const replica = new IndexedDBLocalReplicaStorage(options.replicaName);
7
+ const queue = new Dexie(options.outboxName);
8
+ queue.version(1).stores({ entries: "++id, state, nextAttemptAt" });
9
+ queue.version(2).stores({ entries: "++id, scope, state, nextAttemptAt, [scope+state], [scope+nextAttemptAt]" });
10
+ const meta = new Dexie(`${options.replicaName}-upgrades`);
11
+ meta.version(1).stores({ state: "&key" });
12
+ const lockName = `gonvex-upgrade:${options.replicaName}:${options.outboxName}`;
13
+ const locks = globalThis.navigator?.locks;
14
+ const channel = typeof BroadcastChannel === "function" ? new BroadcastChannel(lockName) : undefined;
15
+ let closed = false;
16
+ const requireUpgrade = (error) => { options.onRequired?.(error); return error; };
17
+ if (channel)
18
+ channel.onmessage = event => {
19
+ if (event.data?.version !== options.contract.version)
20
+ requireUpgrade(new Error("Another tab upgraded the application. Reload to continue."));
21
+ };
22
+ const ready = (async () => {
23
+ if (!locks)
24
+ throw new Error("Safe offline upgrades require browser Web Locks support");
25
+ await locks.request(lockName, { mode: "exclusive" }, async () => {
26
+ await Promise.all([meta.open(), queue.open()]);
27
+ let record = await meta.state.get("contract") ?? { key: "contract", version: options.initialVersion };
28
+ // A interrupted upgrade must finish its exact staged payload before another upgrade starts.
29
+ const finish = async () => {
30
+ if (!record.journal)
31
+ return;
32
+ for (const [scope, snapshot] of Object.entries(record.journal.snapshots))
33
+ await replica.replaceSnapshot(snapshot, scope);
34
+ await queue.transaction("rw", queue.entries, async () => {
35
+ await queue.entries.clear();
36
+ await queue.entries.bulkPut(record.journal.entries);
37
+ });
38
+ record = { key: "contract", version: record.version };
39
+ await meta.state.put(record);
40
+ };
41
+ // An older tab must never finish a newer migration and then hydrate it.
42
+ if (record.version > options.contract.version)
43
+ throw new Error("Stored data requires a newer application build");
44
+ await finish();
45
+ const chain = migrationChain(record.version, options.contract.version, options.migrations);
46
+ if (chain.length) {
47
+ const snapshots = {};
48
+ for (const scope of await replica.listScopes()) {
49
+ const snapshot = await replica.load(scope);
50
+ if (snapshot)
51
+ snapshots[scope] = snapshot;
52
+ }
53
+ const entries = await queue.entries.toArray();
54
+ if (entries.some(entry => !entry.scope))
55
+ throw new Error("Unowned offline work needs recovery before upgrading");
56
+ // No writes until every transform succeeds. The journal is temporary upgrade data,
57
+ // never a second source of application state. Applying it is repeatable after a crash.
58
+ const journal = migrateClientData(snapshots, entries, chain);
59
+ record = { key: "contract", version: options.contract.version, journal };
60
+ await meta.state.put(record);
61
+ await finish();
62
+ channel?.postMessage({ version: record.version });
63
+ }
64
+ else
65
+ await meta.state.put(record);
66
+ });
67
+ })().catch(error => { throw requireUpgrade(error instanceof Error ? error : new Error(String(error))); });
68
+ // The SDK may initialize storage before React subscribes; retain the rejected ready promise.
69
+ void ready.catch(() => undefined);
70
+ const guarded = async (run) => {
71
+ await ready;
72
+ if (closed)
73
+ throw new Error("Application storage is closed");
74
+ return locks.request(lockName, { mode: "shared" }, async () => {
75
+ const record = await meta.state.get("contract");
76
+ if (record?.version !== options.contract.version || record.journal) {
77
+ throw requireUpgrade(new Error("Application storage changed. Reload before continuing."));
78
+ }
79
+ return run();
80
+ });
81
+ };
82
+ const storage = new Proxy(replica, {
83
+ get(target, property) {
84
+ const value = Reflect.get(target, property);
85
+ return typeof value === "function" ? (...args) => guarded(() => value.apply(target, args)) : value;
86
+ },
87
+ });
88
+ return {
89
+ storage, ready,
90
+ store: {
91
+ strictPersistence: true,
92
+ allocateId: () => guarded(async () => {
93
+ const last = await queue.entries.orderBy('id').last();
94
+ return meta.transaction('rw', meta.state, async () => {
95
+ const counter = await meta.state.get('sequence');
96
+ const version = Math.max(counter?.version ?? 0, last?.id ?? 0) + 1;
97
+ await meta.state.put({ key: 'sequence', version });
98
+ return version;
99
+ });
100
+ }),
101
+ load: () => guarded(() => queue.entries.toArray()),
102
+ put: entry => guarded(async () => { await queue.entries.put(entry); }),
103
+ delete: id => guarded(() => queue.entries.delete(id)),
104
+ clear: scope => guarded(() => scope ? queue.entries.where("scope").equals(scope).delete().then(() => undefined) : queue.entries.clear()),
105
+ },
106
+ close() { closed = true; channel?.close(); replica.close(); queue.close(); meta.close(); },
107
+ };
108
+ }
109
+ //# sourceMappingURL=browser-upgrades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-upgrades.js","sourceRoot":"","sources":["../src/browser-upgrades.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { JsonValue } from "@gonvex/protocol";
2
+ import type { ReplicaSnapshot } from "./local-replica.js";
3
+ import type { ReducerOutboxEntry } from "./outbox.js";
4
+ export type ClientContract = {
5
+ version: number;
6
+ offlineMaxAgeMs: number;
7
+ };
8
+ export type ClientMigration = {
9
+ from: number;
10
+ to: number;
11
+ /** Pure synchronous transformation of confirmed rows. Never optimistic patches. */
12
+ replica?: (snapshot: ReplicaSnapshot) => ReplicaSnapshot;
13
+ /** Throw if the user's meaning cannot be preserved. The original queue survives. */
14
+ intent?: (intent: {
15
+ path: string;
16
+ args: JsonValue;
17
+ }) => {
18
+ path: string;
19
+ args: JsonValue;
20
+ };
21
+ };
22
+ export declare function migrationChain(from: number, to: number, migrations: readonly ClientMigration[]): ClientMigration[];
23
+ export declare function migrateClientData(snapshots: Record<string, ReplicaSnapshot>, entries: readonly ReducerOutboxEntry[], chain: readonly ClientMigration[]): {
24
+ snapshots: Record<string, ReplicaSnapshot>;
25
+ entries: ReducerOutboxEntry[];
26
+ };
@@ -0,0 +1,40 @@
1
+ export function migrationChain(from, to, migrations) {
2
+ if (!Number.isSafeInteger(from) || from < 1 || !Number.isSafeInteger(to) || to < from) {
3
+ throw new Error(`Unsupported client contract transition ${from} -> ${to}`);
4
+ }
5
+ const chain = [];
6
+ for (let version = from; version < to; version++) {
7
+ const candidates = migrations.filter(m => m.from === version);
8
+ if (candidates.length !== 1 || candidates[0].to !== version + 1) {
9
+ throw new Error(`Missing or ambiguous client migration ${version} -> ${version + 1}`);
10
+ }
11
+ chain.push(candidates[0]);
12
+ }
13
+ return chain;
14
+ }
15
+ export function migrateClientData(snapshots, entries, chain) {
16
+ let nextSnapshots = structuredClone(snapshots);
17
+ let nextEntries = structuredClone([...entries]);
18
+ for (const migration of chain) {
19
+ nextSnapshots = Object.fromEntries(Object.entries(nextSnapshots).map(([scope, snapshot]) => {
20
+ const next = migration.replica ? migration.replica(snapshot) : snapshot;
21
+ // Shape migration does not establish server freshness or preserve query membership contracts.
22
+ delete next.cursor;
23
+ next.liveQueries = {};
24
+ return [scope, next];
25
+ }));
26
+ nextEntries = nextEntries.map(entry => {
27
+ const originalPath = entry.receiptPath ?? entry.path;
28
+ const intent = migration.intent?.({ path: entry.path, args: structuredClone(entry.args) })
29
+ ?? { path: entry.path, args: entry.args };
30
+ if (!intent.path || intent.args === undefined)
31
+ throw new Error("Client migration returned an invalid intent");
32
+ return { ...entry, path: intent.path, args: intent.args,
33
+ receiptPath: originalPath, patches: [],
34
+ // Committed responses awaiting a watermark must be reconciled by their original receipt too.
35
+ state: "pending", nextAttemptAt: 0 };
36
+ });
37
+ }
38
+ return { snapshots: nextSnapshots, entries: nextEntries };
39
+ }
40
+ //# sourceMappingURL=client-upgrades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-upgrades.js","sourceRoot":"","sources":["../src/client-upgrades.ts"],"names":[],"mappings":"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"}
package/dist/control.d.ts CHANGED
@@ -23,12 +23,7 @@ export type ControlTenant = JSONObject & {
23
23
  description: string;
24
24
  profile: JsonValue;
25
25
  };
26
- export type ControlTenantCreated = JSONObject & {
27
- id: string;
28
- name: string;
29
- role: string;
30
- permissions: JSONObject;
31
- };
26
+ export type ControlTenantCreated = ControlTenant;
32
27
  export type ControlSession = JSONObject & {
33
28
  accessToken: string;
34
29
  tokenType: string;
@@ -236,7 +231,8 @@ export declare const control: Readonly<{
236
231
  mine: FunctionReference<JSONObject, ControlTenant[]>;
237
232
  create: FunctionReference<JSONObject & {
238
233
  name: string;
239
- }, ControlTenantCreated>;
234
+ domain?: string;
235
+ }, ControlTenant>;
240
236
  getByDomain: FunctionReference<JSONObject & {
241
237
  domain: string;
242
238
  }, JSONObject & {
package/dist/control.js CHANGED
@@ -10,7 +10,6 @@ const accountSchema = objectSchema({ id: stringSchema, email: stringSchema, name
10
10
  const authAccountSchema = objectSchema({
11
11
  id: stringSchema, email: stringSchema, emailVerified: booleanSchema, name: stringSchema, picture: stringSchema, provider: stringSchema,
12
12
  });
13
- const tenantSchema = objectSchema({ id: stringSchema, name: stringSchema, role: stringSchema, permissions: anySchema });
14
13
  const directoryTenantSchema = objectSchema({
15
14
  id: stringSchema, name: stringSchema, role: stringSchema, permissions: anySchema,
16
15
  domain: stringSchema, timezone: stringSchema, description: stringSchema, profile: anySchema,
@@ -61,7 +60,7 @@ export const controlFunctionSchemas = Object.freeze({
61
60
  "control.auth.realms.configure": { args: objectSchema({ provider: stringSchema, authMode: optionalStringSchema, enabled: booleanSchema, signupMode: stringSchema, azureTenantId: optionalStringSchema, clientId: optionalStringSchema, clientSecret: optionalStringSchema, issuer: optionalStringSchema, audience: optionalStringSchema, jwksUrl: optionalStringSchema, firebaseProjectId: optionalStringSchema, firebaseTenantId: optionalStringSchema, adminCredentials: optionalStringSchema }), result: updatedSchema },
62
61
  "control.auth.memberProviders": { args: objectSchema({ memberIds: arraySchema(stringSchema) }), result: arraySchema(objectSchema({ memberId: stringSchema, providers: arraySchema(stringSchema) })) },
63
62
  "control.tenants.mine": { args: emptySchema, result: arraySchema(directoryTenantSchema) },
64
- "control.tenants.create": { args: objectSchema({ name: stringSchema }), result: tenantSchema },
63
+ "control.tenants.create": { args: objectSchema({ name: stringSchema, domain: optionalStringSchema }), result: directoryTenantSchema },
65
64
  "control.tenants.getByDomain": { args: objectSchema({ domain: stringSchema }), result: objectSchema({ id: stringSchema, name: stringSchema, domain: stringSchema }) },
66
65
  "control.tenants.updateProfile": { args: objectSchema({ name: stringSchema, domain: stringSchema, description: stringSchema }), result: updatedSchema },
67
66
  "control.tenants.updateTimezone": { args: objectSchema({ timezone: stringSchema }), result: updatedSchema },
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { BrowserTelemetryInfo, ExecutionScope, JsonValue, MessageTrace, ServerCapabilities, ServerMessage } from "@gonvex/protocol";
2
+ import type { LocalRuntimeBinding } from "@gonvex/local-runtime/worker-client";
2
3
  import { type ErrorReporterOptions } from "./error-reporter.js";
3
4
  export { GonvexErrorReporter } from "./error-reporter.js";
4
5
  export type { ErrorReporterOptions, ErrorEventPayload, ErrorContext, ErrorAccount } from "./error-reporter.js";
@@ -10,9 +11,11 @@ export * from "./error-reporter.js";
10
11
  export * from "./optimistic.js";
11
12
  export * from "./outbox.js";
12
13
  export * from "./kv-stores.js";
14
+ export * from "./client-upgrades.js";
15
+ export * from "./browser-upgrades.js";
13
16
  export * from "./signals.js";
14
17
  export * from "./external-auth.js";
15
- export { MemoryLocalReplicaStorage, type LocalReplicaStorage, type LocalReplicaView, type ReplicaChange, type ReplicaFreshness, type ReplicaRow, type ReplicaScope, type ReplicaSnapshot, type ReplicaTransaction, type ReplicaWindow, type LiveQueryResult, type ReplicaCollectionState, type ReplicaCollectionSubscriptionState, type ReplicaCollectionPlan, } from "./local-replica.js";
18
+ export { MemoryLocalReplicaStorage, type LocalReplicaStorage, type LocalReplicaSession, type LocalReplicaView, type ReplicaChange, type ReplicaFreshness, type ReplicaRow, type ReplicaScope, type ReplicaSnapshot, type ReplicaTransaction, type ReplicaWindow, type LiveQueryResult, type ReplicaCollectionState, type ReplicaCollectionSubscriptionState, type ReplicaCollectionPlan, } from "./local-replica.js";
16
19
  export * from "./query-expression.js";
17
20
  export * from "./indexeddb-replica.js";
18
21
  export * from "./control.js";
@@ -49,6 +52,11 @@ export type FunctionReference<Args extends JsonValue = JsonValue, Result extends
49
52
  conflict?: "reject" | "expectedVersion" | "merge";
50
53
  reason?: string;
51
54
  };
55
+ localExecution?: 1;
56
+ /** SDK-owned version check for replay; never an application argument. */
57
+ receiptPath?: string;
58
+ artifactHash?: string;
59
+ intentEntropy?: string;
52
60
  live?: {
53
61
  entity: string;
54
62
  key: string;
@@ -153,6 +161,13 @@ export type GonvexClientAuth = {
153
161
  };
154
162
  };
155
163
  export type GonvexClientOptions = GonvexClientAuth & {
164
+ clientContract?: import("./client-upgrades.js").ClientContract;
165
+ onUpdateRequired?: (reason: string) => void;
166
+ /** Supplied by generated client bindings, once for the entire application. */
167
+ localRuntime?: LocalRuntimeBinding & {
168
+ clientContract?: import("./client-upgrades.js").ClientContract;
169
+ collections?: readonly FunctionReference[];
170
+ };
156
171
  /**
157
172
  * Keep listenerless live queries subscribed for this long so route
158
173
  * backtracking can reuse their current result without WebSocket churn.
@@ -197,6 +212,16 @@ export type GonvexTelemetryEvent = {
197
212
  };
198
213
  export declare class GonvexClient {
199
214
  private readonly url;
215
+ private readonly localBinding?;
216
+ private readonly localExecutor?;
217
+ private readonly localStorage?;
218
+ private localIdentity?;
219
+ private localLane;
220
+ private localReplayScheduled;
221
+ private replacingLocal;
222
+ private readonly unsubscribeLocal?;
223
+ private readonly localCollectionClosers;
224
+ private readonly reducerRejectionHandlers;
200
225
  private socket;
201
226
  private readonly handlers;
202
227
  private readonly querySubscriptions;
@@ -254,11 +279,30 @@ export declare class GonvexClient {
254
279
  private readonly pendingCalls;
255
280
  private readonly connectionStateHandlers;
256
281
  private readonly supportCommandHandlers;
282
+ private readonly pendingNativeErrors;
257
283
  private isWebSocketConnected;
258
284
  private hasEverConnected;
259
285
  private connectionCount;
260
286
  private readonly timeouts;
287
+ private readonly clientContract?;
288
+ private readonly updateRequiredHandler?;
289
+ private updateRequired;
290
+ private lastOnlineAtMs;
261
291
  constructor(url: string, options?: GonvexClientOptions);
292
+ /** Authoritative sync failures arrive after an offline call returned locally. */
293
+ onReducerRejection(listener: (event: {
294
+ reducerId: string;
295
+ path: string;
296
+ error: string;
297
+ }) => void): () => void;
298
+ private restoreLocalSession;
299
+ private ensureLocalCollections;
300
+ private localSnapshot;
301
+ private inLocalLane;
302
+ private scheduleLocalReplay;
303
+ private reportLocalRejection;
304
+ private rebaseLocalEntries;
305
+ private runLocalReducer;
262
306
  /** The single normalized authoritative + optimistic application data store. */
263
307
  get localReplica(): LocalReplicaView;
264
308
  replicaSignature(ref: FunctionReference, args?: JsonValue): string;
@@ -371,6 +415,7 @@ export declare class GonvexClient {
371
415
  }): Promise<T | QueuedReducerOutcome>;
372
416
  reducer<T extends JsonValue = JsonValue, Args extends JsonValue = JsonValue>(ref: FunctionReference<Args, T>, args?: Args, options?: CallOptions): Promise<T>;
373
417
  private runOptimisticReducer;
418
+ private requireClientUpdate;
374
419
  private canSendReducerNow;
375
420
  action<T extends JsonValue = JsonValue, Args extends JsonValue = JsonValue>(ref: FunctionReference<Args, T>, args?: Args, options?: CallOptions): Promise<T>;
376
421
  query<T extends JsonValue = JsonValue, Args extends JsonValue = JsonValue>(ref: FunctionReference<Args, T>, args?: Args, options?: CallOptions): Promise<T>;
@@ -428,6 +473,8 @@ export declare class GonvexClient {
428
473
  /** Send a bounded native error-telemetry frame using authenticated connection attribution. */
429
474
  reportError(type: "register" | "envelope" | "heartbeat", payload: unknown): Promise<void>;
430
475
  private sendNativeError;
476
+ private flushPendingNativeErrors;
477
+ private sendNativeErrorFrame;
431
478
  private sendAuth;
432
479
  private sendAuthFrame;
433
480
  private settleManagedAuthAttempt;