on-zero 0.4.31 → 0.4.33
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/cjs/cli.native.js.map +1 -1
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createZeroClient.authData.test.cjs +67 -0
- package/dist/cjs/createZeroClient.authData.test.native.js +72 -0
- package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -0
- package/dist/cjs/createZeroClient.cjs +41 -26
- package/dist/cjs/createZeroClient.native.js +47 -26
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +41 -0
- package/dist/cjs/generate.native.js +63 -0
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.cjs +101 -0
- package/dist/cjs/helpers/recoverZeroClient.native.js +130 -0
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -0
- package/dist/cjs/helpers/recoverZeroClient.test.cjs +201 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js +256 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -0
- package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/httpPull/auth.test.native.js.map +1 -1
- package/dist/cjs/httpPull/churn.test.native.js.map +1 -1
- package/dist/cjs/httpPull/fixtureSchema.native.js.map +1 -1
- package/dist/cjs/httpPull/fixtureServer.native.js.map +1 -1
- package/dist/cjs/httpPull/integration.test.native.js.map +1 -1
- package/dist/cjs/httpPull/rebase.test.native.js.map +1 -1
- package/dist/cjs/httpPull/relations.test.native.js.map +1 -1
- package/dist/cjs/httpPull/testHarness.native.js.map +1 -1
- package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
- package/dist/cjs/httpPullTransport.native.js.map +1 -1
- package/dist/cjs/index.cjs +4 -1
- package/dist/cjs/index.native.js +3 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/instanceRegistry.native.js.map +1 -1
- package/dist/cjs/modelRegistry.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.cjs +4 -3
- package/dist/cjs/multiInstance.test.native.js +6 -6
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/queryRegistry.native.js.map +1 -1
- package/dist/cjs/resolveQuery.native.js.map +1 -1
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/serverWhere.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/cjs/zql.native.js.map +1 -1
- package/dist/esm/createZeroClient.authData.test.mjs +68 -0
- package/dist/esm/createZeroClient.authData.test.mjs.map +1 -0
- package/dist/esm/createZeroClient.authData.test.native.js +70 -0
- package/dist/esm/createZeroClient.authData.test.native.js.map +1 -0
- package/dist/esm/createZeroClient.mjs +42 -27
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +48 -27
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/generate.mjs +41 -0
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +63 -0
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.mjs +74 -0
- package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -0
- package/dist/esm/helpers/recoverZeroClient.native.js +100 -0
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -0
- package/dist/esm/helpers/recoverZeroClient.test.mjs +202 -0
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -0
- package/dist/esm/helpers/recoverZeroClient.test.native.js +254 -0
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/multiInstance.test.mjs +4 -3
- package/dist/esm/multiInstance.test.mjs.map +1 -1
- package/dist/esm/multiInstance.test.native.js +6 -6
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createZeroClient.authData.test.tsx +73 -0
- package/src/createZeroClient.tsx +60 -47
- package/src/createZeroServer.ts +2 -2
- package/src/generate.ts +62 -0
- package/src/helpers/recoverZeroClient.test.ts +172 -0
- package/src/helpers/recoverZeroClient.ts +173 -0
- package/src/index.ts +5 -0
- package/src/multiInstance.test.tsx +5 -3
- package/src/multiInstanceNested.test.tsx +1 -1
- package/src/types.ts +6 -1
- package/types/createZeroClient.authData.test.d.ts +5 -0
- package/types/createZeroClient.authData.test.d.ts.map +1 -0
- package/types/createZeroClient.d.ts +2 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +4 -4
- package/types/generate.d.ts.map +1 -1
- package/types/helpers/recoverZeroClient.d.ts +17 -0
- package/types/helpers/recoverZeroClient.d.ts.map +1 -0
- package/types/helpers/recoverZeroClient.test.d.ts +2 -0
- package/types/helpers/recoverZeroClient.test.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/types.d.ts +6 -0
- package/types/types.d.ts.map +1 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import type { Emitter } from '@take-out/helpers'
|
|
2
|
+
import type { ZeroEvent } from '../types'
|
|
3
|
+
import type { UpdateNeededReason } from '@rocicorp/zero'
|
|
4
|
+
import type { Context, LogLevel, LogSink } from '@rocicorp/logger'
|
|
5
|
+
|
|
6
|
+
// per-reason guard window: the SAME reason re-failing right after its reload is
|
|
7
|
+
// surfaced as fatal instead of reload-storming on something the reload can't fix.
|
|
8
|
+
const RECOVER_GUARD_MS = 60_000
|
|
9
|
+
|
|
10
|
+
// the fatal local-store-loss signature Zero logs when the IndexedDB it expects
|
|
11
|
+
// is gone (evicted, or deleted by another tab).
|
|
12
|
+
const LOCAL_STORE_LOST = 'Expected IndexedDB not found'
|
|
13
|
+
|
|
14
|
+
export type ZeroRecoveryDeps = {
|
|
15
|
+
// delete THIS client's local persistent state (its own scoped IDB). pass the
|
|
16
|
+
// instance's `.delete`. recovery is per-instance, so a combined client drops
|
|
17
|
+
// EVERY underlying store; the latch below keeps it to one reload.
|
|
18
|
+
deleteLocalState: () => Promise<unknown>
|
|
19
|
+
// recovery lifecycle for consumers (preview postMessage, toast, …).
|
|
20
|
+
zeroEvents: Emitter<ZeroEvent | null>
|
|
21
|
+
// awaited before the reload — e.g. wait for the dev origin to come back so the
|
|
22
|
+
// reload doesn't land on a restarting server. optional.
|
|
23
|
+
beforeReload?: () => Promise<void>
|
|
24
|
+
// injectable for tests; defaults to a real page reload.
|
|
25
|
+
reload?: () => void
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// one reload per page-load. the local-state deletes that must precede it are
|
|
29
|
+
// collected here so EVERY affected instance (a combined client has several) drops
|
|
30
|
+
// its own store before we reload — not just whichever instance fired first.
|
|
31
|
+
let reloadScheduled = false
|
|
32
|
+
const pendingDeletes: Array<Promise<unknown>> = []
|
|
33
|
+
|
|
34
|
+
// cross-page-load, per-reason guard: distinct keys mean a NewClientGroup recovery
|
|
35
|
+
// never suppresses a later SchemaVersionNotSupported one. it survives the reload
|
|
36
|
+
// (sessionStorage), so a reason that reloaded then immediately re-fires is caught
|
|
37
|
+
// as a genuine fatal instead of reload-storming across loads.
|
|
38
|
+
function recoveryGuardOpen(reasonKey: string): boolean {
|
|
39
|
+
try {
|
|
40
|
+
const key = `on-zero-recover-${reasonKey}`
|
|
41
|
+
const last = Number(window.sessionStorage.getItem(key) || 0)
|
|
42
|
+
if (Date.now() - last < RECOVER_GUARD_MS) return false
|
|
43
|
+
window.sessionStorage.setItem(key, String(Date.now()))
|
|
44
|
+
} catch {
|
|
45
|
+
// no sessionStorage (private mode) — fall back to the in-memory latch.
|
|
46
|
+
}
|
|
47
|
+
return true
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function recover(
|
|
51
|
+
deps: ZeroRecoveryDeps,
|
|
52
|
+
reasonKey: string,
|
|
53
|
+
message: string,
|
|
54
|
+
dropLocalState: boolean,
|
|
55
|
+
): void {
|
|
56
|
+
if (typeof window === 'undefined') return
|
|
57
|
+
// each affected instance drops its OWN stale store, even when a reload is
|
|
58
|
+
// already queued — otherwise a sibling's store survives the reload and
|
|
59
|
+
// fatal-loops on the next boot. the single scheduled reload awaits these.
|
|
60
|
+
if (dropLocalState) {
|
|
61
|
+
pendingDeletes.push(
|
|
62
|
+
Promise.resolve()
|
|
63
|
+
.then(deps.deleteLocalState)
|
|
64
|
+
.catch(() => {}),
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
// only ONE reload per page-load; a later trigger just contributes its delete.
|
|
68
|
+
if (reloadScheduled) return
|
|
69
|
+
if (!recoveryGuardOpen(reasonKey)) {
|
|
70
|
+
console.error(`[on-zero] ${message} — already recovered once, not reloading`)
|
|
71
|
+
deps.zeroEvents.emit({ type: 'fatal', reason: message })
|
|
72
|
+
return
|
|
73
|
+
}
|
|
74
|
+
reloadScheduled = true
|
|
75
|
+
console.warn(`[on-zero] ${message} — recovering`)
|
|
76
|
+
deps.zeroEvents.emit({ type: 'recovering', reason: message })
|
|
77
|
+
const doReload = deps.reload ?? (() => window.location.reload())
|
|
78
|
+
// defer one microtask so sibling instances failing in the same tick enqueue
|
|
79
|
+
// their deletes first, then await them all before reloading.
|
|
80
|
+
Promise.resolve()
|
|
81
|
+
.then(() => Promise.allSettled(pendingDeletes))
|
|
82
|
+
.then(() => deps.beforeReload?.())
|
|
83
|
+
.catch(() => {})
|
|
84
|
+
.finally(doReload)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// passing our own onUpdateNeeded/onClientStateNotFound DISABLES Zero's built-in
|
|
88
|
+
// reloadWithReason, so these handlers are the ONLY recovery — they must cover
|
|
89
|
+
// every reason or the app fatal-blanks forever.
|
|
90
|
+
export function makeZeroRecovery(deps: ZeroRecoveryDeps) {
|
|
91
|
+
return {
|
|
92
|
+
onUpdateNeeded(reason: UpdateNeededReason) {
|
|
93
|
+
// every update-needed reason needs new client code → reload. but only
|
|
94
|
+
// SchemaVersionNotSupported means the local rows are now incompatible:
|
|
95
|
+
// mirror Zero's own decision (it disables the client group only for that
|
|
96
|
+
// reason). NewClientGroup / VersionNotSupported are code-version mismatches
|
|
97
|
+
// whose data is still valid — and delete() there would wipe the IndexedDB
|
|
98
|
+
// OTHER live tabs of this user share (the store is keyed by user+storageKey,
|
|
99
|
+
// not per-tab), e.g. the newer tab that triggered NewClientGroup.
|
|
100
|
+
const dropLocalState = reason.type === 'SchemaVersionNotSupported'
|
|
101
|
+
recover(
|
|
102
|
+
deps,
|
|
103
|
+
reason.type,
|
|
104
|
+
`update needed (${reason.message || reason.type})`,
|
|
105
|
+
dropLocalState,
|
|
106
|
+
)
|
|
107
|
+
},
|
|
108
|
+
onClientStateNotFound() {
|
|
109
|
+
// local/server sync state is gone or rejected — the store is unusable, so
|
|
110
|
+
// drop it and reload into a fresh client.
|
|
111
|
+
recover(deps, 'client-state-not-found', 'client state not found', true)
|
|
112
|
+
},
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// preserve Zero's default console output: we MUST install a logSink to watch for
|
|
117
|
+
// the corruption signature, but doing so replaces Zero's built-in console sink —
|
|
118
|
+
// so when the consumer passes none, mirror Zero's key=value context prefix here
|
|
119
|
+
// instead of silently swallowing every log.
|
|
120
|
+
function logToConsole(
|
|
121
|
+
level: LogLevel,
|
|
122
|
+
context: Context | undefined,
|
|
123
|
+
...args: unknown[]
|
|
124
|
+
): void {
|
|
125
|
+
const prefix = context
|
|
126
|
+
? Object.entries(context)
|
|
127
|
+
.map(([key, value]) => (value === undefined ? key : `${key}=${value}`))
|
|
128
|
+
.join(' ')
|
|
129
|
+
: ''
|
|
130
|
+
const method = level === 'debug' ? 'debug' : level
|
|
131
|
+
console[method](...(prefix ? [prefix] : []), ...args)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// watch error-level logs for the local-store-lost signature (the one fatal Zero
|
|
135
|
+
// surfaces only through the log, not the structured callbacks) and trigger the
|
|
136
|
+
// same recovery. forwards to the consumer sink, or to the console when there is
|
|
137
|
+
// none. wire this ONLY when the consumer didn't pass their own logSink, so a
|
|
138
|
+
// consumer that owns log-based recovery isn't double-fired.
|
|
139
|
+
export function composeRecoveryLogSink(
|
|
140
|
+
deps: ZeroRecoveryDeps,
|
|
141
|
+
consumerLogSink?: LogSink,
|
|
142
|
+
): LogSink {
|
|
143
|
+
const consumerFlush = consumerLogSink?.flush
|
|
144
|
+
return {
|
|
145
|
+
log(level: LogLevel, context: Context | undefined, ...args: unknown[]): void {
|
|
146
|
+
if (consumerLogSink) consumerLogSink.log(level, context, ...args)
|
|
147
|
+
else logToConsole(level, context, ...args)
|
|
148
|
+
if (level !== 'error') return
|
|
149
|
+
const text = args
|
|
150
|
+
.map((arg) =>
|
|
151
|
+
typeof arg === 'string'
|
|
152
|
+
? arg
|
|
153
|
+
: arg && typeof arg === 'object' && 'message' in arg
|
|
154
|
+
? String((arg as { message: unknown }).message)
|
|
155
|
+
: '',
|
|
156
|
+
)
|
|
157
|
+
.join(' ')
|
|
158
|
+
if (text.includes(LOCAL_STORE_LOST)) {
|
|
159
|
+
recover(deps, 'local-store', 'local store lost', true)
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
// call through the consumer sink so a class-based sink keeps its `this`,
|
|
163
|
+
// rather than handing Zero a detached method reference.
|
|
164
|
+
flush: consumerFlush ? () => consumerFlush.call(consumerLogSink) : undefined,
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// test-only: the reload latch + pending deletes are in-memory (a real page reload
|
|
169
|
+
// clears them); tests simulate that reset between successive "page loads".
|
|
170
|
+
export function resetRecoveryStateForTests() {
|
|
171
|
+
reloadScheduled = false
|
|
172
|
+
pendingDeletes.length = 0
|
|
173
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -276,9 +276,11 @@ describe('combineZeroClients facade', () => {
|
|
|
276
276
|
a.zeroEvents.emit({ type: 'error', message: 'from-a' })
|
|
277
277
|
b.zeroEvents.emit({ type: 'error', message: 'from-b' })
|
|
278
278
|
|
|
279
|
-
|
|
279
|
+
const messageOf = (event: ZeroEvent | null) =>
|
|
280
|
+
event?.type === 'error' ? event.message : undefined
|
|
281
|
+
expect(seen.map(messageOf)).toEqual(['from-a', 'from-b'])
|
|
280
282
|
// the source emitters stay independent of each other
|
|
281
|
-
expect(a.zeroEvents.value
|
|
282
|
-
expect(b.zeroEvents.value
|
|
283
|
+
expect(messageOf(a.zeroEvents.value)).toBe('from-a')
|
|
284
|
+
expect(messageOf(b.zeroEvents.value)).toBe('from-b')
|
|
283
285
|
})
|
|
284
286
|
})
|
|
@@ -220,7 +220,7 @@ test('direct-path views re-materialize when the owning instance rotates', async
|
|
|
220
220
|
await waitFor(() => probe.data?.name === 'before-rotation', 'pre-rotation row')
|
|
221
221
|
|
|
222
222
|
// identity change rotates the mounted zero instance (new client group,
|
|
223
|
-
// fresh store)
|
|
223
|
+
// fresh store) via the instanceKey change
|
|
224
224
|
await render(<App userID="rot-2" />)
|
|
225
225
|
await waitFor(() => probe.data === undefined, 'view reset to the new empty store')
|
|
226
226
|
|
package/src/types.ts
CHANGED
|
@@ -135,7 +135,12 @@ export type TablePrimaryKeys<TS extends GenericTable> = TupleToUnion<
|
|
|
135
135
|
GetTableSchema<TS>['primaryKey']
|
|
136
136
|
>
|
|
137
137
|
|
|
138
|
-
export type ZeroEvent =
|
|
138
|
+
export type ZeroEvent =
|
|
139
|
+
| { type: 'error'; message: string }
|
|
140
|
+
// recovery lifecycle: 'recovering' = dropping local state + reloading;
|
|
141
|
+
// 'fatal' = recovery already attempted (loop guard tripped), not reloading.
|
|
142
|
+
| { type: 'recovering'; reason: string }
|
|
143
|
+
| { type: 'fatal'; reason: string }
|
|
139
144
|
|
|
140
145
|
/**
|
|
141
146
|
* Admin role bypass for permissions:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createZeroClient.authData.test.d.ts","sourceRoot":"","sources":["../src/createZeroClient.authData.test.tsx"],"names":[],"mappings":"AAeA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAA;CAClD"}
|
|
@@ -18,12 +18,13 @@ export declare function createZeroClient<Schema extends ZeroSchema, Models exten
|
|
|
18
18
|
}): {
|
|
19
19
|
instanceName: string;
|
|
20
20
|
zeroEvents: import("@take-out/helpers").Emitter<ZeroEvent | null>;
|
|
21
|
-
ProvideZero: ({ children, authData: authDataIn, disable, transport, pullIntervalMs, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
|
|
21
|
+
ProvideZero: ({ children, authData: authDataIn, disable, transport, pullIntervalMs, beforeReload, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
|
|
22
22
|
children: ReactNode;
|
|
23
23
|
authData?: AuthData | null;
|
|
24
24
|
disable?: boolean;
|
|
25
25
|
transport?: "http-pull";
|
|
26
26
|
pullIntervalMs?: number;
|
|
27
|
+
beforeReload?: () => Promise<void>;
|
|
27
28
|
}) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
28
29
|
ControlQueries: ({ children, action, whenDisabled, }: {
|
|
29
30
|
children: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAG/E,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAId,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
|
|
@@ -124,7 +124,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
|
|
|
124
124
|
clientID: string;
|
|
125
125
|
}[];
|
|
126
126
|
origin: "zeroCache";
|
|
127
|
-
reason: "parse" | "
|
|
127
|
+
reason: "parse" | "timeout" | "internal";
|
|
128
128
|
} | {
|
|
129
129
|
mutations: {
|
|
130
130
|
id: {
|
|
@@ -200,7 +200,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
|
|
|
200
200
|
clientID: string;
|
|
201
201
|
}[];
|
|
202
202
|
origin: "zeroCache";
|
|
203
|
-
reason: "parse" | "
|
|
203
|
+
reason: "parse" | "timeout" | "internal";
|
|
204
204
|
};
|
|
205
205
|
asyncTasks: AsyncAction[];
|
|
206
206
|
}>;
|
|
@@ -250,7 +250,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
|
|
|
250
250
|
kind: "TransformFailed";
|
|
251
251
|
queryIDs: string[];
|
|
252
252
|
origin: "zeroCache";
|
|
253
|
-
reason: "parse" | "
|
|
253
|
+
reason: "parse" | "timeout" | "internal";
|
|
254
254
|
} | ["transformed", ({
|
|
255
255
|
id: string;
|
|
256
256
|
name: string;
|
|
@@ -289,7 +289,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
|
|
|
289
289
|
kind: "TransformFailed";
|
|
290
290
|
queryIDs: string[];
|
|
291
291
|
origin: "zeroCache";
|
|
292
|
-
reason: "parse" | "
|
|
292
|
+
reason: "parse" | "timeout" | "internal";
|
|
293
293
|
}];
|
|
294
294
|
}>;
|
|
295
295
|
transaction: <CB extends (tx: Transaction) => Promise<any>, Returns extends CB extends (tx: Transaction) => Promise<infer X> ? X : never>(query: CB) => Promise<Returns>;
|
package/types/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA4kBzF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACrC,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;CACnE,CAAA;AAkCD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAiF3E;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAgXhF;AAED,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,yCAmChD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Emitter } from '@take-out/helpers';
|
|
2
|
+
import type { ZeroEvent } from '../types';
|
|
3
|
+
import type { UpdateNeededReason } from '@rocicorp/zero';
|
|
4
|
+
import type { LogSink } from '@rocicorp/logger';
|
|
5
|
+
export type ZeroRecoveryDeps = {
|
|
6
|
+
deleteLocalState: () => Promise<unknown>;
|
|
7
|
+
zeroEvents: Emitter<ZeroEvent | null>;
|
|
8
|
+
beforeReload?: () => Promise<void>;
|
|
9
|
+
reload?: () => void;
|
|
10
|
+
};
|
|
11
|
+
export declare function makeZeroRecovery(deps: ZeroRecoveryDeps): {
|
|
12
|
+
onUpdateNeeded(reason: UpdateNeededReason): void;
|
|
13
|
+
onClientStateNotFound(): void;
|
|
14
|
+
};
|
|
15
|
+
export declare function composeRecoveryLogSink(deps: ZeroRecoveryDeps, consumerLogSink?: LogSink): LogSink;
|
|
16
|
+
export declare function resetRecoveryStateForTests(): void;
|
|
17
|
+
//# sourceMappingURL=recoverZeroClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recoverZeroClient.d.ts","sourceRoot":"","sources":["../../src/helpers/recoverZeroClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAqB,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAUlE,MAAM,MAAM,gBAAgB,GAAG;IAI7B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAGrC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAElC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAgED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB;2BAE5B,kBAAkB;;EAsB5C;AAyBD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EACtB,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAwBT;AAID,wBAAgB,0BAA0B,SAGzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recoverZeroClient.test.d.ts","sourceRoot":"","sources":["../../src/helpers/recoverZeroClient.test.ts"],"names":[],"mappings":""}
|
package/types/index.d.ts
CHANGED
|
@@ -22,4 +22,5 @@ export { defineQuery, defineQueries } from '@rocicorp/zero';
|
|
|
22
22
|
export type * from './types';
|
|
23
23
|
export { clearZeroClientData, type ClearZeroClientDataOptions, } from './helpers/clearZeroClientData';
|
|
24
24
|
export { showZeroClientErrorOnce, resetShownZeroClientError, type ShowZeroClientErrorOptions, type ZeroClientErrorInfo, } from './helpers/showZeroClientError';
|
|
25
|
+
export { makeZeroRecovery, composeRecoveryLogSink, type ZeroRecoveryDeps, } from './helpers/recoverZeroClient';
|
|
25
26
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM3D,mBAAmB,SAAS,CAAA;AAE5B,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM3D,mBAAmB,SAAS,CAAA;AAE5B,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAA"}
|
package/types/types.d.ts
CHANGED
|
@@ -73,6 +73,12 @@ export type TablePrimaryKeys<TS extends GenericTable> = TupleToUnion<GetTableSch
|
|
|
73
73
|
export type ZeroEvent = {
|
|
74
74
|
type: 'error';
|
|
75
75
|
message: string;
|
|
76
|
+
} | {
|
|
77
|
+
type: 'recovering';
|
|
78
|
+
reason: string;
|
|
79
|
+
} | {
|
|
80
|
+
type: 'fatal';
|
|
81
|
+
reason: string;
|
|
76
82
|
};
|
|
77
83
|
/**
|
|
78
84
|
* Admin role bypass for permissions:
|
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|