on-zero 0.16.20 → 0.16.21
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.cjs +6 -0
- package/dist/cjs/cli.native.js +6 -0
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/config.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.cjs +14 -4
- package/dist/cjs/createUseQuery.native.js +18 -5
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +13 -2
- package/dist/cjs/createUseQueryDirect.native.js +14 -2
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +21 -3
- package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.exportProbe.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.headless.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.httpAuth.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +28 -3
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-helpers.test.native.js.map +1 -1
- package/dist/cjs/generate-layout.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 +57 -30
- package/dist/cjs/generate.native.js +92 -31
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +147 -0
- package/dist/cjs/generate.test.native.js +147 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/NullToOptional.native.js.map +1 -1
- package/dist/cjs/helpers/asyncContext.hostStorage.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/createMutators.test.native.js.map +1 -1
- package/dist/cjs/helpers/ellipsis.native.js.map +1 -1
- package/dist/cjs/helpers/emitter.native.js.map +1 -1
- package/dist/cjs/helpers/ensure.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/errors.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -1
- package/dist/cjs/helpers/globalValue.native.js.map +1 -1
- package/dist/cjs/helpers/hostStorageScope.native.js.map +1 -1
- package/dist/cjs/helpers/mapObject.native.js.map +1 -1
- package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -1
- package/dist/cjs/helpers/mutationLifecycle.test.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.test.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.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/cjs/helpers/sleep.native.js.map +1 -1
- package/dist/cjs/helpers/time.native.js.map +1 -1
- package/dist/cjs/helpers/tuple.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/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/multi.cjs +10 -5
- package/dist/cjs/multi.native.js +10 -5
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceMutations.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/multiPartition.test.cjs +46 -2
- package/dist/cjs/multiPartition.test.native.js +50 -2
- package/dist/cjs/multiPartition.test.native.js.map +1 -1
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/mutations.test.native.js.map +1 -1
- package/dist/cjs/native-typescript.cjs +50 -11
- package/dist/cjs/native-typescript.native.js +158 -30
- package/dist/cjs/native-typescript.native.js.map +1 -1
- package/dist/cjs/provideZero.eagerInstance.test.cjs +22 -0
- package/dist/cjs/provideZero.eagerInstance.test.native.js +30 -0
- package/dist/cjs/provideZero.eagerInstance.test.native.js.map +1 -1
- package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
- package/dist/cjs/provideZero.ssr.test.native.js.map +1 -1
- package/dist/cjs/queryErrorRecovery.cjs +93 -0
- package/dist/cjs/queryErrorRecovery.native.js +205 -0
- package/dist/cjs/queryErrorRecovery.native.js.map +1 -0
- package/dist/cjs/queryJson.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/server.native.js.map +1 -1
- package/dist/cjs/server.test.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/streaming.native.js.map +1 -1
- package/dist/cjs/testSetup.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/useQuery.aggregate.zero.test.cjs +199 -4
- package/dist/cjs/useQuery.aggregate.zero.test.native.js +212 -4
- package/dist/cjs/useQuery.aggregate.zero.test.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/cjs/useStreamingField.loop.test.native.js.map +1 -1
- package/dist/cjs/useStreamingField.native.js.map +1 -1
- package/dist/cjs/vite-plugin.cjs +10 -0
- package/dist/cjs/vite-plugin.native.js +10 -0
- 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/cli.mjs +6 -0
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +7 -1
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/combineZeroClients.native.js +4 -4
- package/dist/esm/combineZeroClients.native.js.map +1 -1
- package/dist/esm/config.native.js.map +1 -1
- package/dist/esm/createPermissions.native.js +4 -4
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createSchemaFromDrizzle.native.js +1 -1
- package/dist/esm/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +16 -6
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +24 -11
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +13 -2
- package/dist/esm/createUseQueryDirect.mjs.map +1 -1
- package/dist/esm/createUseQueryDirect.native.js +19 -7
- package/dist/esm/createUseQueryDirect.native.js.map +1 -1
- package/dist/esm/createZeroClient.authData.test.native.js +2 -2
- package/dist/esm/createZeroClient.authData.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.connection.test.native.js +1 -1
- package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.exportProbe.test.native.js +1 -1
- package/dist/esm/createZeroClient.exportProbe.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.headless.test.native.js +2 -2
- package/dist/esm/createZeroClient.headless.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.httpAuth.test.native.js +1 -1
- package/dist/esm/createZeroClient.httpAuth.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +21 -3
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +49 -24
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +2 -2
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/generate-helpers.native.js.map +1 -1
- package/dist/esm/generate-helpers.test.native.js +1 -1
- package/dist/esm/generate-helpers.test.native.js.map +1 -1
- package/dist/esm/generate-layout.native.js.map +1 -1
- package/dist/esm/generate-lite.native.js +1 -1
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.native.js +1 -1
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +57 -30
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +95 -34
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +147 -0
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +148 -1
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/helpers/NullToOptional.native.js.map +1 -1
- package/dist/esm/helpers/asyncContext.hostStorage.test.native.js +7 -7
- package/dist/esm/helpers/asyncContext.hostStorage.test.native.js.map +1 -1
- package/dist/esm/helpers/batchQuery.native.js +1 -1
- package/dist/esm/helpers/batchQuery.native.js.map +1 -1
- package/dist/esm/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +4 -4
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.test.native.js +2 -2
- package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
- package/dist/esm/helpers/ellipsis.native.js.map +1 -1
- package/dist/esm/helpers/emitter.native.js.map +1 -1
- package/dist/esm/helpers/ensure.native.js +1 -1
- package/dist/esm/helpers/ensure.native.js.map +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js +2 -2
- package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/esm/helpers/errors.native.js.map +1 -1
- package/dist/esm/helpers/getAuth.native.js +3 -3
- package/dist/esm/helpers/getAuth.native.js.map +1 -1
- package/dist/esm/helpers/getCurrentComponentStack.native.js.map +1 -1
- package/dist/esm/helpers/globalValue.native.js.map +1 -1
- package/dist/esm/helpers/hostStorageScope.native.js.map +1 -1
- package/dist/esm/helpers/mapObject.native.js.map +1 -1
- package/dist/esm/helpers/mutationLifecycle.native.js +1 -1
- package/dist/esm/helpers/mutationLifecycle.native.js.map +1 -1
- package/dist/esm/helpers/mutationLifecycle.test.native.js +1 -1
- package/dist/esm/helpers/mutationLifecycle.test.native.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +1 -1
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.test.native.js +6 -6
- package/dist/esm/helpers/mutatorContext.test.native.js.map +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/esm/helpers/queryContext.native.js +1 -1
- package/dist/esm/helpers/queryContext.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +2 -2
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/helpers/showZeroClientError.native.js +1 -1
- package/dist/esm/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/esm/helpers/sleep.native.js +1 -1
- package/dist/esm/helpers/sleep.native.js.map +1 -1
- package/dist/esm/helpers/time.native.js.map +1 -1
- package/dist/esm/helpers/tuple.native.js.map +1 -1
- package/dist/esm/helpers/useMutation.native.js.map +1 -1
- package/dist/esm/helpers/useMutation.test.native.js +1 -1
- package/dist/esm/helpers/useMutation.test.native.js.map +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js +2 -2
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/index.native.js +23 -23
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/instanceRegistry.native.js +2 -2
- package/dist/esm/instanceRegistry.native.js.map +1 -1
- package/dist/esm/modelRegistry.native.js.map +1 -1
- package/dist/esm/multi.mjs +10 -5
- package/dist/esm/multi.mjs.map +1 -1
- package/dist/esm/multi.native.js +15 -10
- package/dist/esm/multi.native.js.map +1 -1
- package/dist/esm/multiInstance.test.native.js +10 -10
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/dist/esm/multiInstanceMutations.test.native.js +4 -4
- package/dist/esm/multiInstanceMutations.test.native.js.map +1 -1
- package/dist/esm/multiInstanceNested.test.native.js +3 -3
- package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
- package/dist/esm/multiPartition.test.mjs +47 -3
- package/dist/esm/multiPartition.test.mjs.map +1 -1
- package/dist/esm/multiPartition.test.native.js +52 -4
- package/dist/esm/multiPartition.test.native.js.map +1 -1
- package/dist/esm/mutations.native.js +2 -2
- package/dist/esm/mutations.native.js.map +1 -1
- package/dist/esm/mutations.test.native.js +4 -4
- package/dist/esm/mutations.test.native.js.map +1 -1
- package/dist/esm/native-typescript.mjs +50 -11
- package/dist/esm/native-typescript.mjs.map +1 -1
- package/dist/esm/native-typescript.native.js +158 -30
- package/dist/esm/native-typescript.native.js.map +1 -1
- package/dist/esm/provideZero.eagerInstance.test.mjs +22 -0
- package/dist/esm/provideZero.eagerInstance.test.mjs.map +1 -1
- package/dist/esm/provideZero.eagerInstance.test.native.js +31 -1
- package/dist/esm/provideZero.eagerInstance.test.native.js.map +1 -1
- package/dist/esm/provideZero.hydration.test.native.js +2 -2
- package/dist/esm/provideZero.hydration.test.native.js.map +1 -1
- package/dist/esm/provideZero.ssr.test.native.js +2 -2
- package/dist/esm/provideZero.ssr.test.native.js.map +1 -1
- package/dist/esm/queryErrorRecovery.mjs +66 -0
- package/dist/esm/queryErrorRecovery.mjs.map +1 -0
- package/dist/esm/queryErrorRecovery.native.js +175 -0
- package/dist/esm/queryErrorRecovery.native.js.map +1 -0
- package/dist/esm/queryJson.native.js +1 -1
- package/dist/esm/queryJson.native.js.map +1 -1
- package/dist/esm/queryRegistry.native.js.map +1 -1
- package/dist/esm/resolveQuery.native.js +2 -2
- package/dist/esm/resolveQuery.native.js.map +1 -1
- package/dist/esm/run.native.js +4 -4
- package/dist/esm/run.native.js.map +1 -1
- package/dist/esm/server.native.js +10 -10
- package/dist/esm/server.native.js.map +1 -1
- package/dist/esm/server.test.native.js +2 -2
- package/dist/esm/server.test.native.js.map +1 -1
- package/dist/esm/serverWhere.native.js +1 -1
- package/dist/esm/serverWhere.native.js.map +1 -1
- package/dist/esm/serverWhere.test.native.js +3 -3
- package/dist/esm/serverWhere.test.native.js.map +1 -1
- package/dist/esm/state.native.js +1 -1
- package/dist/esm/state.native.js.map +1 -1
- package/dist/esm/streaming.native.js +1 -1
- package/dist/esm/streaming.native.js.map +1 -1
- package/dist/esm/testSetup.native.js.map +1 -1
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/usePermission.test.native.js +3 -3
- package/dist/esm/usePermission.test.native.js.map +1 -1
- package/dist/esm/useQuery.aggregate.zero.test.mjs +197 -2
- package/dist/esm/useQuery.aggregate.zero.test.mjs.map +1 -1
- package/dist/esm/useQuery.aggregate.zero.test.native.js +212 -4
- package/dist/esm/useQuery.aggregate.zero.test.native.js.map +1 -1
- package/dist/esm/useQuery.empty.test.native.js +3 -3
- package/dist/esm/useQuery.empty.test.native.js.map +1 -1
- package/dist/esm/useQuery.ssr.test.native.js +2 -2
- package/dist/esm/useQuery.ssr.test.native.js.map +1 -1
- package/dist/esm/useStreamingField.loop.test.native.js +1 -1
- package/dist/esm/useStreamingField.loop.test.native.js.map +1 -1
- package/dist/esm/useStreamingField.native.js.map +1 -1
- package/dist/esm/vite-plugin.mjs +10 -0
- package/dist/esm/vite-plugin.mjs.map +1 -1
- package/dist/esm/vite-plugin.native.js +11 -1
- package/dist/esm/vite-plugin.native.js.map +1 -1
- package/dist/esm/where.native.js +3 -3
- package/dist/esm/where.native.js.map +1 -1
- package/dist/esm/zeroRunner.native.js +1 -1
- package/dist/esm/zeroRunner.native.js.map +1 -1
- package/dist/esm/zql.native.js +1 -1
- package/dist/esm/zql.native.js.map +1 -1
- package/package.json +4 -4
- package/src/cli.ts +6 -0
- package/src/createUseQuery.tsx +20 -5
- package/src/createUseQueryDirect.tsx +17 -1
- package/src/createZeroClient.tsx +37 -4
- package/src/generate.test.ts +116 -0
- package/src/generate.ts +109 -52
- package/src/multi.ts +11 -3
- package/src/multiPartition.test.ts +55 -11
- package/src/native-typescript.ts +64 -11
- package/src/provideZero.eagerInstance.test.tsx +27 -0
- package/src/queryErrorRecovery.ts +95 -0
- package/src/useQuery.aggregate.zero.test.tsx +187 -2
- package/src/vite-plugin.ts +10 -0
- package/types/createUseQuery.d.ts +3 -1
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createUseQueryDirect.d.ts +3 -1
- package/types/createUseQueryDirect.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +3 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/generate.d.ts +4 -0
- package/types/generate.d.ts.map +1 -1
- package/types/multi.d.ts +3 -1
- package/types/multi.d.ts.map +1 -1
- package/types/native-typescript.d.ts +7 -1
- package/types/native-typescript.d.ts.map +1 -1
- package/types/queryErrorRecovery.d.ts +33 -0
- package/types/queryErrorRecovery.d.ts.map +1 -0
- package/types/useQuery.aggregate.zero.test.d.ts.map +1 -1
- package/types/vite-plugin.d.ts.map +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef, useSyncExternalStore } from 'react'
|
|
2
|
+
|
|
3
|
+
// zero's ArrayView settles its result status once. A changed row can repair an
|
|
4
|
+
// errored query, but the existing view must be rematerialized to become complete.
|
|
5
|
+
export class QueryErrorRecovery {
|
|
6
|
+
private data: string | undefined
|
|
7
|
+
private errored = false
|
|
8
|
+
|
|
9
|
+
changed(data: unknown, resultType: string): boolean {
|
|
10
|
+
if (resultType !== 'error') {
|
|
11
|
+
this.errored = false
|
|
12
|
+
this.data = undefined
|
|
13
|
+
return false
|
|
14
|
+
}
|
|
15
|
+
const current = JSON.stringify(data)
|
|
16
|
+
const changed = this.errored && current !== this.data
|
|
17
|
+
this.errored = true
|
|
18
|
+
this.data = current
|
|
19
|
+
return changed
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type QueryFault = { name: string; args: readonly unknown[]; message: string }
|
|
24
|
+
|
|
25
|
+
// The HTTP transport reports the complete set of failed queries for a pull.
|
|
26
|
+
// Zero's already-complete ArrayView cannot observe a later transform error.
|
|
27
|
+
export class QueryFaults {
|
|
28
|
+
private faults = new Map<string, QueryFault>()
|
|
29
|
+
private listeners = new Set<() => void>()
|
|
30
|
+
|
|
31
|
+
constructor(readonly retry: () => void) {}
|
|
32
|
+
|
|
33
|
+
update(faults: readonly QueryFault[]) {
|
|
34
|
+
const next = new Map<string, QueryFault>()
|
|
35
|
+
for (const fault of faults) {
|
|
36
|
+
const key = JSON.stringify([fault.name, fault.args])
|
|
37
|
+
const old = this.faults.get(key)
|
|
38
|
+
next.set(key, old?.message === fault.message ? old : fault)
|
|
39
|
+
}
|
|
40
|
+
if (
|
|
41
|
+
next.size === this.faults.size &&
|
|
42
|
+
[...next].every(([key, fault]) => this.faults.get(key) === fault)
|
|
43
|
+
)
|
|
44
|
+
return
|
|
45
|
+
this.faults = next
|
|
46
|
+
for (const listener of this.listeners) listener()
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
get(key: string) {
|
|
50
|
+
return this.faults.get(key)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
subscribe = (listener: () => void) => {
|
|
54
|
+
this.listeners.add(listener)
|
|
55
|
+
return () => this.listeners.delete(listener)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const noSubscribe = () => () => {}
|
|
60
|
+
const noSnapshot = () => undefined
|
|
61
|
+
|
|
62
|
+
export function useQueryFault(
|
|
63
|
+
faults: QueryFaults | undefined,
|
|
64
|
+
request: { query: { queryName: string }; args?: unknown },
|
|
65
|
+
out: readonly [unknown, { type: string; retry?: () => void }]
|
|
66
|
+
) {
|
|
67
|
+
const key = JSON.stringify([
|
|
68
|
+
request.query.queryName,
|
|
69
|
+
request.args === undefined ? [] : [request.args],
|
|
70
|
+
])
|
|
71
|
+
const getSnapshot = useMemo(() => () => faults?.get(key), [faults, key])
|
|
72
|
+
const fault = useSyncExternalStore(
|
|
73
|
+
faults?.subscribe ?? noSubscribe,
|
|
74
|
+
getSnapshot,
|
|
75
|
+
noSnapshot
|
|
76
|
+
)
|
|
77
|
+
const previous = useRef(false)
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
if (previous.current && !fault && out[1].type === 'error') out[1].retry?.()
|
|
80
|
+
previous.current = !!fault
|
|
81
|
+
}, [fault, out])
|
|
82
|
+
const status = useMemo(
|
|
83
|
+
() =>
|
|
84
|
+
fault && faults
|
|
85
|
+
? {
|
|
86
|
+
type: 'error' as const,
|
|
87
|
+
error: { type: 'app' as const, message: fault.message },
|
|
88
|
+
retry: faults.retry,
|
|
89
|
+
refetch: faults.retry,
|
|
90
|
+
}
|
|
91
|
+
: undefined,
|
|
92
|
+
[fault, faults]
|
|
93
|
+
)
|
|
94
|
+
return status ? ([out[0], status] as const) : out
|
|
95
|
+
}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import { createBuilder, createSchema, number, string, table } from '@rocicorp/zero'
|
|
4
4
|
import { count, defineAggregates, sum } from 'orez-lite/aggregate'
|
|
5
|
+
import { createZeroClientTransport, type HttpPullTransport } from 'orez-lite/client'
|
|
5
6
|
import { act } from 'react'
|
|
6
7
|
import { createRoot, type Root } from 'react-dom/client'
|
|
7
8
|
import { afterEach, beforeEach, expect, test } from 'vitest'
|
|
8
9
|
|
|
9
|
-
import { createZeroClient } from './createZeroClient'
|
|
10
10
|
import { onMutationError } from './helpers/useMutation'
|
|
11
|
+
import { createZeroClientWithDirectQueries } from './multi'
|
|
11
12
|
import { mutations } from './mutations'
|
|
12
13
|
|
|
13
14
|
import type { MutatorContext } from './types'
|
|
@@ -48,7 +49,7 @@ const expenseMutations = mutations(expense, () => true, {
|
|
|
48
49
|
})
|
|
49
50
|
const categorySpendQuery = (args: { category: string }) =>
|
|
50
51
|
builder.categorySpend.where('category', args.category)
|
|
51
|
-
const client =
|
|
52
|
+
const client = createZeroClientWithDirectQueries({
|
|
52
53
|
schema,
|
|
53
54
|
models: { expense: { mutate: expenseMutations } },
|
|
54
55
|
groupedQueries: { expense: { categorySpendQuery } },
|
|
@@ -59,6 +60,7 @@ const client = createZeroClient({
|
|
|
59
60
|
let container: HTMLDivElement
|
|
60
61
|
let root: Root
|
|
61
62
|
let stopErrorSink: () => void
|
|
63
|
+
let installedTransport: HttpPullTransport | undefined
|
|
62
64
|
const silentLogSink = { log() {} }
|
|
63
65
|
|
|
64
66
|
beforeEach(() => {
|
|
@@ -71,10 +73,193 @@ afterEach(async () => {
|
|
|
71
73
|
const activeZero = await client.waitForZero()
|
|
72
74
|
act(() => root.unmount())
|
|
73
75
|
await activeZero.close()
|
|
76
|
+
installedTransport?.uninstall()
|
|
77
|
+
installedTransport = undefined
|
|
74
78
|
await new Promise((resolve) => setTimeout(resolve, 0))
|
|
75
79
|
stopErrorSink()
|
|
76
80
|
})
|
|
77
81
|
|
|
82
|
+
test.each(['context', 'direct'] as const)(
|
|
83
|
+
'an errored %s query rematerializes when repaired data reaches the hook',
|
|
84
|
+
async (mode) => {
|
|
85
|
+
let repaired = false
|
|
86
|
+
let hash = ''
|
|
87
|
+
const fetch = async (_input: RequestInfo | URL, init?: RequestInit) => {
|
|
88
|
+
const request = JSON.parse(String(init?.body))
|
|
89
|
+
const puts = (request.queries?.patch ?? []).filter((op: any) => op.op === 'put')
|
|
90
|
+
if (puts[0]) hash = puts[0].hash
|
|
91
|
+
return new Response(
|
|
92
|
+
JSON.stringify({
|
|
93
|
+
cookie: repaired ? 2 : 1,
|
|
94
|
+
lastMutationIDChanges: {},
|
|
95
|
+
rowsPatch: repaired
|
|
96
|
+
? [
|
|
97
|
+
{
|
|
98
|
+
op: 'put',
|
|
99
|
+
tableName: 'categorySpend',
|
|
100
|
+
value: { category: 'Food', expenseCount: 1, spent: 4250 },
|
|
101
|
+
},
|
|
102
|
+
]
|
|
103
|
+
: request.cookie === null
|
|
104
|
+
? [{ op: 'clear' }]
|
|
105
|
+
: [],
|
|
106
|
+
...(request.queries || repaired
|
|
107
|
+
? {
|
|
108
|
+
gotQueries: {
|
|
109
|
+
version: request.queries?.version ?? 1,
|
|
110
|
+
patch: repaired ? [{ op: 'put', hash }] : [],
|
|
111
|
+
},
|
|
112
|
+
}
|
|
113
|
+
: {}),
|
|
114
|
+
queryErrors: repaired
|
|
115
|
+
? []
|
|
116
|
+
: puts.map((op: any) => ({ hash: op.hash, message: 'invalid stored value' })),
|
|
117
|
+
}),
|
|
118
|
+
{ headers: { 'content-type': 'application/json' } }
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
const plugin = createZeroClientTransport({ fetch })
|
|
122
|
+
const origin = `https://query-error-recovery-${mode}.orez.test`
|
|
123
|
+
installedTransport = plugin.install(origin)
|
|
124
|
+
let onError: () => void = () => {}
|
|
125
|
+
let onComplete: (rows: unknown) => void = () => {}
|
|
126
|
+
const error = new Promise<void>((resolve) => {
|
|
127
|
+
onError = resolve
|
|
128
|
+
})
|
|
129
|
+
const complete = new Promise<unknown>((resolve) => {
|
|
130
|
+
onComplete = resolve
|
|
131
|
+
})
|
|
132
|
+
function Probe() {
|
|
133
|
+
const useQuery = mode === 'context' ? client.useQuery : client.useQueryDirect
|
|
134
|
+
const [rows, status] = useQuery(categorySpendQuery, { category: 'Food' })
|
|
135
|
+
if (status.type === 'error') onError()
|
|
136
|
+
if (status.type === 'complete') onComplete(rows)
|
|
137
|
+
return null
|
|
138
|
+
}
|
|
139
|
+
await act(async () => {
|
|
140
|
+
root.render(
|
|
141
|
+
<client.ProvideZero
|
|
142
|
+
server={origin}
|
|
143
|
+
userID="query-recovery"
|
|
144
|
+
authData={{}}
|
|
145
|
+
logSink={silentLogSink}
|
|
146
|
+
transport={plugin}
|
|
147
|
+
>
|
|
148
|
+
<Probe />
|
|
149
|
+
</client.ProvideZero>
|
|
150
|
+
)
|
|
151
|
+
})
|
|
152
|
+
await act(async () => {
|
|
153
|
+
await error
|
|
154
|
+
})
|
|
155
|
+
repaired = true
|
|
156
|
+
await act(async () => {
|
|
157
|
+
await installedTransport?.pull()
|
|
158
|
+
})
|
|
159
|
+
let rows: unknown
|
|
160
|
+
await act(async () => {
|
|
161
|
+
rows = await complete
|
|
162
|
+
})
|
|
163
|
+
expect(rows).toEqual([
|
|
164
|
+
expect.objectContaining({ category: 'Food', expenseCount: 1, spent: 4250 }),
|
|
165
|
+
])
|
|
166
|
+
}
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
test.each(['context', 'direct'] as const)(
|
|
170
|
+
'a completed %s query reports later corruption and recovers after repair',
|
|
171
|
+
async (mode) => {
|
|
172
|
+
let phase: 'healthy' | 'corrupt' | 'repaired' = 'healthy'
|
|
173
|
+
let hash = ''
|
|
174
|
+
const fetch = async (_input: RequestInfo | URL, init?: RequestInit) => {
|
|
175
|
+
const request = JSON.parse(String(init?.body))
|
|
176
|
+
const puts = (request.queries?.patch ?? []).filter((op: any) => op.op === 'put')
|
|
177
|
+
if (puts[0]) hash = puts[0].hash
|
|
178
|
+
return new Response(
|
|
179
|
+
JSON.stringify({
|
|
180
|
+
cookie: phase === 'healthy' ? 1 : phase === 'corrupt' ? 2 : 3,
|
|
181
|
+
lastMutationIDChanges: {},
|
|
182
|
+
rowsPatch:
|
|
183
|
+
phase === 'corrupt'
|
|
184
|
+
? []
|
|
185
|
+
: [
|
|
186
|
+
{
|
|
187
|
+
op: 'put',
|
|
188
|
+
tableName: 'categorySpend',
|
|
189
|
+
value: {
|
|
190
|
+
category: 'Food',
|
|
191
|
+
expenseCount: 1,
|
|
192
|
+
spent: phase === 'healthy' ? 42 : 99,
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
...(request.queries
|
|
197
|
+
? {
|
|
198
|
+
gotQueries: {
|
|
199
|
+
version: request.queries.version,
|
|
200
|
+
patch: puts.map((op: any) => ({ op: 'put', hash: op.hash })),
|
|
201
|
+
},
|
|
202
|
+
}
|
|
203
|
+
: {}),
|
|
204
|
+
queryErrors:
|
|
205
|
+
phase === 'corrupt' ? [{ hash, message: 'invalid stored value' }] : [],
|
|
206
|
+
}),
|
|
207
|
+
{ headers: { 'content-type': 'application/json' } }
|
|
208
|
+
)
|
|
209
|
+
}
|
|
210
|
+
const plugin = createZeroClientTransport({ fetch })
|
|
211
|
+
const origin = `https://query-later-error-${mode}.orez.test`
|
|
212
|
+
installedTransport = plugin.install(origin)
|
|
213
|
+
const snapshots: Array<{ type: string; spent: unknown }> = []
|
|
214
|
+
let onComplete: () => void = () => {}
|
|
215
|
+
let onRepaired: () => void = () => {}
|
|
216
|
+
const complete = new Promise<void>((resolve) => {
|
|
217
|
+
onComplete = resolve
|
|
218
|
+
})
|
|
219
|
+
const repaired = new Promise<void>((resolve) => {
|
|
220
|
+
onRepaired = resolve
|
|
221
|
+
})
|
|
222
|
+
function Probe() {
|
|
223
|
+
const useQuery = mode === 'context' ? client.useQuery : client.useQueryDirect
|
|
224
|
+
const [rows, status] = useQuery(categorySpendQuery, { category: 'Food' })
|
|
225
|
+
snapshots.push({ type: status.type, spent: rows[0]?.spent })
|
|
226
|
+
if (status.type === 'complete') onComplete()
|
|
227
|
+
if (status.type === 'complete' && rows[0]?.spent === 99) onRepaired()
|
|
228
|
+
return null
|
|
229
|
+
}
|
|
230
|
+
await act(async () => {
|
|
231
|
+
root.render(
|
|
232
|
+
<client.ProvideZero
|
|
233
|
+
server={origin}
|
|
234
|
+
userID="query-later"
|
|
235
|
+
authData={{}}
|
|
236
|
+
logSink={silentLogSink}
|
|
237
|
+
transport={plugin}
|
|
238
|
+
>
|
|
239
|
+
<Probe />
|
|
240
|
+
</client.ProvideZero>
|
|
241
|
+
)
|
|
242
|
+
})
|
|
243
|
+
await act(async () => {
|
|
244
|
+
await complete
|
|
245
|
+
})
|
|
246
|
+
expect(snapshots.at(-1)).toEqual({ type: 'complete', spent: 42 })
|
|
247
|
+
phase = 'corrupt'
|
|
248
|
+
await act(async () => {
|
|
249
|
+
await installedTransport?.pull()
|
|
250
|
+
})
|
|
251
|
+
expect(snapshots.at(-1)).toEqual({ type: 'error', spent: 42 })
|
|
252
|
+
phase = 'repaired'
|
|
253
|
+
await act(async () => {
|
|
254
|
+
await installedTransport?.pull()
|
|
255
|
+
})
|
|
256
|
+
await act(async () => {
|
|
257
|
+
await repaired
|
|
258
|
+
})
|
|
259
|
+
expect(snapshots.at(-1)).toEqual({ type: 'complete', spent: 99 })
|
|
260
|
+
}
|
|
261
|
+
)
|
|
262
|
+
|
|
78
263
|
test('a mounted useQuery view updates after a custom mutation projects an aggregate', async () => {
|
|
79
264
|
let rows: readonly { category: string; expenseCount: number; spent: number }[] = []
|
|
80
265
|
function Probe() {
|
package/src/vite-plugin.ts
CHANGED
|
@@ -56,10 +56,13 @@ export function onZeroPlugin(options: OnZeroPluginOptions = {}): Plugin[] {
|
|
|
56
56
|
|
|
57
57
|
let dataDir: string
|
|
58
58
|
let databaseDir: string
|
|
59
|
+
let tsconfig: string | undefined
|
|
59
60
|
|
|
60
61
|
const runGenerate = (silent: boolean) =>
|
|
61
62
|
generate({
|
|
62
63
|
dir: dataDir,
|
|
64
|
+
config: options.config,
|
|
65
|
+
tsconfig,
|
|
63
66
|
after: options.after,
|
|
64
67
|
silent,
|
|
65
68
|
force: options.force,
|
|
@@ -73,6 +76,7 @@ export function onZeroPlugin(options: OnZeroPluginOptions = {}): Plugin[] {
|
|
|
73
76
|
configResolved(config) {
|
|
74
77
|
dataDir = resolve(config.root, dir)
|
|
75
78
|
databaseDir = resolve(dataDir, '../database')
|
|
79
|
+
tsconfig = options.tsconfig ? resolve(config.root, options.tsconfig) : undefined
|
|
76
80
|
},
|
|
77
81
|
|
|
78
82
|
async buildStart() {
|
|
@@ -81,8 +85,13 @@ export function onZeroPlugin(options: OnZeroPluginOptions = {}): Plugin[] {
|
|
|
81
85
|
|
|
82
86
|
configureServer(server) {
|
|
83
87
|
if (options.disableGenerate) return
|
|
88
|
+
if (tsconfig) server.watcher.add(tsconfig)
|
|
84
89
|
|
|
85
90
|
const handler = async (file: string) => {
|
|
91
|
+
if (file === tsconfig) {
|
|
92
|
+
await runGenerate(false)
|
|
93
|
+
return
|
|
94
|
+
}
|
|
86
95
|
if (!/\.tsx?$/.test(file)) return
|
|
87
96
|
if (
|
|
88
97
|
(isWithinDirectory(file, dataDir) &&
|
|
@@ -105,6 +114,7 @@ export function onZeroPlugin(options: OnZeroPluginOptions = {}): Plugin[] {
|
|
|
105
114
|
|
|
106
115
|
configResolved(config) {
|
|
107
116
|
dataDir = resolve(config.root, dir)
|
|
117
|
+
tsconfig = options.tsconfig ? resolve(config.root, options.tsconfig) : undefined
|
|
108
118
|
},
|
|
109
119
|
|
|
110
120
|
async buildStart() {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useQuery as zeroUseQuery } from '@rocicorp/zero/react';
|
|
2
2
|
import { type Context } from 'react';
|
|
3
|
+
import { type QueryFaults } from './queryErrorRecovery';
|
|
3
4
|
import { type PlainQueryFn } from './resolveQuery';
|
|
4
5
|
import type { AnyQueryRegistry, HumanReadable, Query, Schema as ZeroSchema, TTL } from '@rocicorp/zero';
|
|
5
6
|
export type QueryControlMode = false | 'empty' | 'last-value';
|
|
@@ -21,8 +22,9 @@ export declare function parseUseQueryArgs(paramsOrOptions: any, optionsArg: any)
|
|
|
21
22
|
params: any;
|
|
22
23
|
options: any;
|
|
23
24
|
};
|
|
24
|
-
export declare function createUseQuery<Schema extends ZeroSchema>({ DisabledContext, customQueries, }: {
|
|
25
|
+
export declare function createUseQuery<Schema extends ZeroSchema>({ DisabledContext, customQueries, getQueryFaults, }: {
|
|
25
26
|
DisabledContext: Context<QueryControlMode>;
|
|
26
27
|
customQueries: AnyQueryRegistry;
|
|
28
|
+
getQueryFaults: (zero: object) => QueryFaults | undefined;
|
|
27
29
|
}): UseQueryHook<Schema>;
|
|
28
30
|
//# sourceMappingURL=createUseQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUseQuery.d.ts","sourceRoot":"","sources":["../src/createUseQuery.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"createUseQuery.d.ts","sourceRoot":"","sources":["../src/createUseQuery.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAW,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAA0C,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAI5E,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE1F,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEhE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,MAAM,IAAI,UAAU,EACpB,GAAG,EACJ,MAAM,gBAAgB,CAAA;AAGvB,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;CACtB,CAAA;AAED,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,MAAM,MAAM,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAA;AAExF,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,UAAU,IAAI;IAEpD,CAAC,IAAI,EAAE,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,EAC5D,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACtD,MAAM,EAAE,IAAI,EACZ,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,GAClC,WAAW,CAAC,OAAO,CAAC,CAAA;IAGvB,CAAC,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,EACtD,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACtD,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,GAClC,WAAW,CAAC,OAAO,CAAC,CAAA;CACxB,CAAA;AAiBD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,OAAO,GACpB,SAAS,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAUtC;AAGD,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;;;EAYtE;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,UAAU,EAAE,EACxD,eAAe,EACf,aAAa,EACb,cAAc,GACf,EAAE;IACD,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAC/B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;CAC1D,GAAG,YAAY,CAAC,MAAM,CAAC,CAoHvB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Context } from 'react';
|
|
2
2
|
import { type QueryControlMode, type UseQueryHook } from './createUseQuery';
|
|
3
3
|
import { type Emitter } from './helpers/emitter';
|
|
4
|
+
import { type QueryFaults } from './queryErrorRecovery';
|
|
4
5
|
import type { AnyQueryRegistry, Schema as ZeroSchema } from '@rocicorp/zero';
|
|
5
6
|
export type MaterializableZero = {
|
|
6
7
|
clientID: string;
|
|
@@ -18,12 +19,13 @@ export type CreateUseQueryDirect<Schema extends ZeroSchema> = (props: {
|
|
|
18
19
|
customQueries: AnyQueryRegistry;
|
|
19
20
|
getZero: () => MaterializableZero | null;
|
|
20
21
|
zeroVersion: Emitter<number>;
|
|
22
|
+
getQueryFaults: (zero: object) => QueryFaults | undefined;
|
|
21
23
|
}) => UseQueryHook<Schema>;
|
|
22
24
|
type DirectQueryError = {
|
|
23
25
|
error: 'app' | 'parse';
|
|
24
26
|
message?: string;
|
|
25
27
|
details?: unknown;
|
|
26
28
|
};
|
|
27
|
-
export declare function createUseQueryDirect<Schema extends ZeroSchema>({ DisabledContext, customQueries, getZero, zeroVersion, }: Parameters<CreateUseQueryDirect<Schema>>[0]): UseQueryHook<Schema>;
|
|
29
|
+
export declare function createUseQueryDirect<Schema extends ZeroSchema>({ DisabledContext, customQueries, getZero, zeroVersion, getQueryFaults, }: Parameters<CreateUseQueryDirect<Schema>>[0]): UseQueryHook<Schema>;
|
|
28
30
|
export {};
|
|
29
31
|
//# sourceMappingURL=createUseQueryDirect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUseQueryDirect.d.ts","sourceRoot":"","sources":["../src/createUseQueryDirect.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAEvF,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"createUseQueryDirect.d.ts","sourceRoot":"","sources":["../src/createUseQueryDirect.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAEvF,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEjE,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAI1F,OAAO,KAAK,EACV,gBAAgB,EAEhB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAkBvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,CACT,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,GACtB;QACD,WAAW,CACT,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,KAAK,IAAI,GACpE,IAAI,CAAA;QACP,OAAO,IAAI,IAAI,CAAA;QACf,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,UAAU,IAAI,CAAC,KAAK,EAAE;IACpE,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAA;IACxC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;CAC1D,KAAK,YAAY,CAAC,MAAM,CAAC,CAAA;AAG1B,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,KAAK,GAAG,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAmMD,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC9D,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,EACX,cAAc,GACf,EAAE,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAmGpE"}
|
|
@@ -3,6 +3,7 @@ import { type Context, type ReactNode } from 'react';
|
|
|
3
3
|
import { type QueryControlMode, type UseQueryHook } from './createUseQuery';
|
|
4
4
|
import { type Emitter } from './helpers/emitter';
|
|
5
5
|
import { type RecoveryGuardStorage, type ScheduleReloadContext, type ZeroLogPattern } from './helpers/recoverZeroClient';
|
|
6
|
+
import { QueryFaults } from './queryErrorRecovery';
|
|
6
7
|
import { resolveQuery, type PlainQueryFn } from './resolveQuery';
|
|
7
8
|
import type { AuthData, GenericModels, GetZeroMutators, ZeroEventsEmitter } from './types';
|
|
8
9
|
import type { AnyQueryRegistry, Query, Row, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
|
|
@@ -14,7 +15,7 @@ type PreloadOptions = {
|
|
|
14
15
|
export type GroupedQueries = Record<string, Record<string, (...args: any[]) => any>>;
|
|
15
16
|
export type PermissionStrategy = 'optimistic' | 'optimistic-deny' | 'optimistic-allow';
|
|
16
17
|
export type ZeroProviderTransport = {
|
|
17
|
-
install(serverURL: string): Pick<HttpPullTransport, 'subscribeLifecycle'> | undefined;
|
|
18
|
+
install(serverURL: string): (Pick<HttpPullTransport, 'subscribeLifecycle'> & Partial<Pick<HttpPullTransport, 'pull'>>) | undefined;
|
|
18
19
|
logClassifications?: {
|
|
19
20
|
benign?: readonly ZeroLogPattern[];
|
|
20
21
|
};
|
|
@@ -39,6 +40,7 @@ export type DirectQueryAdapter<Schema extends ZeroSchema> = (props: {
|
|
|
39
40
|
customQueries: AnyQueryRegistry;
|
|
40
41
|
getZero: () => any;
|
|
41
42
|
zeroVersion: Emitter<number>;
|
|
43
|
+
getQueryFaults: (zero: object) => QueryFaults | undefined;
|
|
42
44
|
}) => UseQueryHook<Schema>;
|
|
43
45
|
export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>(options: CreateZeroClientOptions<Schema, Models>): {
|
|
44
46
|
instanceName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,IAAI,UAAU,EACnB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,EAUL,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAGd,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAK/D,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EAEpB,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
|
package/types/generate.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export interface GenerateOptions {
|
|
|
27
27
|
dir: string;
|
|
28
28
|
/** explicit on-zero.config.ts path; auto-discovered in `dir` when omitted */
|
|
29
29
|
config?: string;
|
|
30
|
+
/** generation-only TypeScript project; defaults to each source file's project */
|
|
31
|
+
tsconfig?: string;
|
|
30
32
|
/** run after generation */
|
|
31
33
|
after?: string;
|
|
32
34
|
/** suppress output */
|
|
@@ -57,11 +59,13 @@ export type DataMembership = {
|
|
|
57
59
|
export declare function deriveDataMembership(options: {
|
|
58
60
|
dir: string;
|
|
59
61
|
config?: string;
|
|
62
|
+
tsconfig?: string;
|
|
60
63
|
}): Promise<DataMembership>;
|
|
61
64
|
export declare function generateDrizzleSchemaInputFile(options: {
|
|
62
65
|
dir: string;
|
|
63
66
|
schemaImportPath: string;
|
|
64
67
|
config?: string;
|
|
68
|
+
tsconfig?: string;
|
|
65
69
|
}): Promise<string>;
|
|
66
70
|
export declare function generate(options: GenerateOptions): Promise<GenerateResult>;
|
|
67
71
|
export declare function watch(options: WatchOptions): Promise<import("chokidar").FSWatcher>;
|
package/types/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA+iBzF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACrC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,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,CA6F3E;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;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,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CACf,MAAM,EACN;QACE,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,aAAa,EAAE,MAAM,EAAE,CAAA;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACrB,CACF,CAAA;IACD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAyCD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,cAAc,CAAC,CAa1B;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlB;AAuFD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAOhF;AAgdD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,yCAqDhD"}
|
package/types/multi.d.ts
CHANGED
|
@@ -23,7 +23,9 @@ type ClientMap<Instances extends Record<string, ZeroInstanceManifestEntry>> = {
|
|
|
23
23
|
[Name in keyof Instances]: ClientFor<Instances[Name]>;
|
|
24
24
|
};
|
|
25
25
|
type ClientUnion<Instances extends Record<string, ZeroInstanceManifestEntry>> = ClientMap<Instances>[keyof Instances];
|
|
26
|
-
export declare function createZeroClients<const Instances extends Record<string, ZeroInstanceManifestEntry>>(instances: Instances
|
|
26
|
+
export declare function createZeroClients<const Instances extends Record<string, ZeroInstanceManifestEntry>>(instances: Instances, options: {
|
|
27
|
+
inner: keyof Instances & string;
|
|
28
|
+
}): {
|
|
27
29
|
clients: ClientMap<Instances>;
|
|
28
30
|
providers: { [Name in keyof Instances]: ClientMap<Instances>[Name]["ProvideZero"]; };
|
|
29
31
|
combined: import("./combineZeroClients").CombinedZeroClients<[ClientUnion<Instances>, ...ClientUnion<Instances>[]]>;
|
package/types/multi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EAExB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,cAAc,sBAAsB,CAAA;AAEpC,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAE5B,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM7D;AAED,MAAM,MAAM,yBAAyB,CACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,aAAa,GAAG,aAAa,IAC1C;IACF,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CACjF,CAAA;AAED,KAAK,SAAS,CAAC,KAAK,IAClB,KAAK,SAAS,yBAAyB,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAC/D,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3D,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAAI;KAC3E,IAAI,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACtD,CAAA;AAED,KAAK,WAAW,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAC1E,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,SAAS,CAAC,CAAA;AAEvC,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACjE,SAAS,EAAE,SAAS;;
|
|
1
|
+
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EAExB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,cAAc,sBAAsB,CAAA;AAEpC,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAE5B,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM7D;AAED,MAAM,MAAM,yBAAyB,CACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,aAAa,GAAG,aAAa,IAC1C;IACF,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CACjF,CAAA;AAED,KAAK,SAAS,CAAC,KAAK,IAClB,KAAK,SAAS,yBAAyB,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAC/D,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3D,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAAI;KAC3E,IAAI,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACtD,CAAA;AAED,KAAK,WAAW,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAC1E,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,SAAS,CAAC,CAAA;AAEvC,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACjE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,SAAS,GAAG,MAAM,CAAA;CAAE;;kBA4C1D,IAAI;;EAUb"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { type Project } from 'typescript/unstable/async';
|
|
2
2
|
import type { SourceFile } from 'typescript/unstable/ast';
|
|
3
3
|
export type NativeTypeScriptProject = {
|
|
4
|
+
configurationKey: string;
|
|
4
5
|
projectForFile(path: string): Project;
|
|
6
|
+
sourceFilePaths(): Promise<string[]>;
|
|
7
|
+
loadSources(): Promise<void>;
|
|
5
8
|
sourceFile(path: string): SourceFile;
|
|
6
9
|
hasParseErrors(path: string): boolean;
|
|
7
10
|
close(): Promise<void>;
|
|
8
11
|
};
|
|
9
12
|
export declare function collectTypeScriptSourcePaths(roots: string[]): string[];
|
|
10
|
-
export declare function createNativeTypeScriptProject(root: string, sourcePaths: string[]
|
|
13
|
+
export declare function createNativeTypeScriptProject(root: string, sourcePaths: string[], options?: {
|
|
14
|
+
deferSources?: boolean;
|
|
15
|
+
tsconfig?: string;
|
|
16
|
+
}): Promise<NativeTypeScriptProject>;
|
|
11
17
|
//# sourceMappingURL=native-typescript.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-typescript.d.ts","sourceRoot":"","sources":["../src/native-typescript.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IACpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB,CAAA;
|
|
1
|
+
{"version":3,"file":"native-typescript.d.ts","sourceRoot":"","sources":["../src/native-typescript.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACpC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IACpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB,CAAA;AAqFD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqBtE;AAED,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC,uBAAuB,CAAC,CAkGlC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare class QueryErrorRecovery {
|
|
2
|
+
private data;
|
|
3
|
+
private errored;
|
|
4
|
+
changed(data: unknown, resultType: string): boolean;
|
|
5
|
+
}
|
|
6
|
+
type QueryFault = {
|
|
7
|
+
name: string;
|
|
8
|
+
args: readonly unknown[];
|
|
9
|
+
message: string;
|
|
10
|
+
};
|
|
11
|
+
export declare class QueryFaults {
|
|
12
|
+
readonly retry: () => void;
|
|
13
|
+
private faults;
|
|
14
|
+
private listeners;
|
|
15
|
+
constructor(retry: () => void);
|
|
16
|
+
update(faults: readonly QueryFault[]): void;
|
|
17
|
+
get(key: string): QueryFault | undefined;
|
|
18
|
+
subscribe: (listener: () => void) => () => boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare function useQueryFault(faults: QueryFaults | undefined, request: {
|
|
21
|
+
query: {
|
|
22
|
+
queryName: string;
|
|
23
|
+
};
|
|
24
|
+
args?: unknown;
|
|
25
|
+
}, out: readonly [unknown, {
|
|
26
|
+
type: string;
|
|
27
|
+
retry?: () => void;
|
|
28
|
+
}]): readonly [unknown, {
|
|
29
|
+
type: string;
|
|
30
|
+
retry?: () => void;
|
|
31
|
+
}];
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=queryErrorRecovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryErrorRecovery.d.ts","sourceRoot":"","sources":["../src/queryErrorRecovery.ts"],"names":[],"mappings":"AAIA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;CAYpD;AAED,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAI7E,qBAAa,WAAW;IAIV,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI;IAHtC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS,CAAwB;gBAEpB,KAAK,EAAE,MAAM,IAAI;IAEtC,MAAM,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE;IAgBpC,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,SAAS,GAAI,UAAU,MAAM,IAAI,mBAGhC;CACF;AAKD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,EAAE;IAAE,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EACzD,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;UAA7B,MAAM;YAAU,MAAM,IAAI;GA8B3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.aggregate.zero.test.d.ts","sourceRoot":"","sources":["../src/useQuery.aggregate.zero.test.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useQuery.aggregate.zero.test.d.ts","sourceRoot":"","sources":["../src/useQuery.aggregate.zero.test.tsx"],"names":[],"mappings":"AAeA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAA;CAClD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC;IAClF,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,yCAAyC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAwCD,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC;IAClF,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,yCAAyC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAwCD,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,EAAE,CAyExE;AAED,eAAO,MAAM,eAAe,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,MAElE,CAAA;AAED,eAAe,YAAY,CAAA"}
|