on-zero 0.4.36 → 0.4.37

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.
Files changed (83) hide show
  1. package/dist/cjs/combineZeroClients.native.js.map +1 -1
  2. package/dist/cjs/createUseQuery.cjs +1 -96
  3. package/dist/cjs/createUseQuery.native.js +1 -132
  4. package/dist/cjs/createUseQuery.native.js.map +1 -1
  5. package/dist/cjs/createUseQueryDirect.cjs +228 -0
  6. package/dist/cjs/createUseQueryDirect.native.js +334 -0
  7. package/dist/cjs/createUseQueryDirect.native.js.map +1 -0
  8. package/dist/cjs/createZeroClient.cjs +18 -7
  9. package/dist/cjs/createZeroClient.native.js +18 -7
  10. package/dist/cjs/createZeroClient.native.js.map +1 -1
  11. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  12. package/dist/cjs/index.cjs +2 -2
  13. package/dist/cjs/index.native.js +2 -2
  14. package/dist/cjs/index.native.js.map +1 -1
  15. package/dist/cjs/multi.cjs +38 -0
  16. package/dist/cjs/multi.native.js +41 -0
  17. package/dist/cjs/multi.native.js.map +1 -0
  18. package/dist/cjs/multiInstanceNested.test.cjs +92 -12
  19. package/dist/cjs/multiInstanceNested.test.native.js +108 -12
  20. package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
  21. package/dist/cjs/testSetup.cjs +26 -0
  22. package/dist/cjs/testSetup.native.js +32 -0
  23. package/dist/cjs/testSetup.native.js.map +1 -0
  24. package/dist/esm/combineZeroClients.mjs.map +1 -1
  25. package/dist/esm/combineZeroClients.native.js.map +1 -1
  26. package/dist/esm/createUseQuery.mjs +2 -97
  27. package/dist/esm/createUseQuery.mjs.map +1 -1
  28. package/dist/esm/createUseQuery.native.js +2 -133
  29. package/dist/esm/createUseQuery.native.js.map +1 -1
  30. package/dist/esm/createUseQueryDirect.mjs +203 -0
  31. package/dist/esm/createUseQueryDirect.mjs.map +1 -0
  32. package/dist/esm/createUseQueryDirect.native.js +306 -0
  33. package/dist/esm/createUseQueryDirect.native.js.map +1 -0
  34. package/dist/esm/createZeroClient.mjs +18 -8
  35. package/dist/esm/createZeroClient.mjs.map +1 -1
  36. package/dist/esm/createZeroClient.native.js +18 -8
  37. package/dist/esm/createZeroClient.native.js.map +1 -1
  38. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
  39. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  40. package/dist/esm/index.js +2 -3
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/index.mjs +2 -3
  43. package/dist/esm/index.mjs.map +1 -1
  44. package/dist/esm/index.native.js +2 -3
  45. package/dist/esm/index.native.js.map +1 -1
  46. package/dist/esm/multi.mjs +12 -0
  47. package/dist/esm/multi.mjs.map +1 -0
  48. package/dist/esm/multi.native.js +12 -0
  49. package/dist/esm/multi.native.js.map +1 -0
  50. package/dist/esm/multiInstanceNested.test.mjs +85 -5
  51. package/dist/esm/multiInstanceNested.test.mjs.map +1 -1
  52. package/dist/esm/multiInstanceNested.test.native.js +101 -5
  53. package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
  54. package/dist/esm/testSetup.mjs +27 -0
  55. package/dist/esm/testSetup.mjs.map +1 -0
  56. package/dist/esm/testSetup.native.js +30 -0
  57. package/dist/esm/testSetup.native.js.map +1 -0
  58. package/package.json +8 -2
  59. package/readme.md +10 -8
  60. package/src/combineZeroClients.tsx +4 -6
  61. package/src/createUseQuery.tsx +2 -189
  62. package/src/createUseQueryDirect.tsx +307 -0
  63. package/src/createZeroClient.tsx +65 -32
  64. package/src/helpers/recoverZeroClient.test.ts +8 -2
  65. package/src/index.ts +6 -2
  66. package/src/multi.ts +24 -0
  67. package/src/multiInstanceNested.test.tsx +79 -4
  68. package/src/testSetup.ts +26 -0
  69. package/types/combineZeroClients.d.ts.map +1 -1
  70. package/types/createUseQuery.d.ts +4 -15
  71. package/types/createUseQuery.d.ts.map +1 -1
  72. package/types/createUseQueryDirect.d.ts +29 -0
  73. package/types/createUseQueryDirect.d.ts.map +1 -0
  74. package/types/createZeroClient.d.ts +51 -5
  75. package/types/createZeroClient.d.ts.map +1 -1
  76. package/types/index.d.ts +1 -2
  77. package/types/index.d.ts.map +1 -1
  78. package/types/multi.d.ts +6 -0
  79. package/types/multi.d.ts.map +1 -0
  80. package/types/multiInstanceNested.test.d.ts.map +1 -1
  81. package/types/testSetup.d.ts +1 -0
  82. package/types/testSetup.d.ts.map +1 -0
  83. package/vitest.config.ts +1 -0
@@ -1,6 +1,6 @@
1
1
  import { defineQueries, defineQuery, Zero as ZeroClient } from '@rocicorp/zero'
2
2
  import { useConnectionState, useZero, ZeroProvider } from '@rocicorp/zero/react'
3
- import { createEmitter } from '@take-out/helpers'
3
+ import { createEmitter, type Emitter } from '@take-out/helpers'
4
4
  import {
5
5
  createContext,
6
6
  memo,
@@ -9,6 +9,7 @@ import {
9
9
  useMemo,
10
10
  useRef,
11
11
  useState,
12
+ type Context,
12
13
  type ReactNode,
13
14
  } from 'react'
14
15
 
@@ -16,7 +17,6 @@ import { createPermissions } from './createPermissions'
16
17
  import { ensureHttpPullTransport } from './httpPullTransport'
17
18
  import {
18
19
  createUseQuery,
19
- createUseQueryDirect,
20
20
  type QueryControlMode,
21
21
  type UseQueryHook,
22
22
  } from './createUseQuery'
@@ -38,7 +38,14 @@ import { setRunner, type ZeroRunner } from './zeroRunner'
38
38
  import { zql } from './zql'
39
39
 
40
40
  import type { AuthData, GenericModels, GetZeroMutators, ZeroEvent } from './types'
41
- import type { Query, Row, Zero, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero'
41
+ import type {
42
+ AnyQueryRegistry,
43
+ Query,
44
+ Row,
45
+ Zero,
46
+ ZeroOptions,
47
+ Schema as ZeroSchema,
48
+ } from '@rocicorp/zero'
42
49
 
43
50
  type PreloadOptions = { ttl?: 'always' | 'never' | number | undefined }
44
51
 
@@ -50,6 +57,27 @@ export type GroupedQueries = Record<string, Record<string, (...args: any[]) => a
50
57
  // - 'optimistic-allow': return true until server confirms
51
58
  export type PermissionStrategy = 'optimistic' | 'optimistic-deny' | 'optimistic-allow'
52
59
 
60
+ export type CreateZeroClientOptions<
61
+ Schema extends ZeroSchema,
62
+ Models extends GenericModels,
63
+ > = {
64
+ schema: Schema
65
+ models: Models
66
+ groupedQueries: GroupedQueries
67
+ permissionStrategy?: PermissionStrategy
68
+ // names this client instance so multiple instances can coexist on one page.
69
+ // each query/mutator namespace is claimed by exactly one instance, and the
70
+ // ambient run() + the combineZeroClients facade dispatch by that claim.
71
+ instanceName?: string
72
+ }
73
+
74
+ export type DirectQueryAdapter<Schema extends ZeroSchema> = (props: {
75
+ DisabledContext: Context<QueryControlMode>
76
+ customQueries: AnyQueryRegistry
77
+ getZero: () => any
78
+ zeroVersion: Emitter<number>
79
+ }) => UseQueryHook<Schema>
80
+
53
81
  function getZeroProxyValue(instance: object, key: PropertyKey) {
54
82
  const value = Reflect.get(instance, key, instance)
55
83
  if (typeof value !== 'function') return value
@@ -67,7 +95,25 @@ function getZeroProxyValue(instance: object, key: PropertyKey) {
67
95
  return bound
68
96
  }
69
97
 
70
- export function createZeroClient<
98
+ function createUnavailableDirectUseQuery<
99
+ Schema extends ZeroSchema,
100
+ >(): UseQueryHook<Schema> {
101
+ function useQueryDirect(): never {
102
+ throw new Error(
103
+ `[on-zero] direct queries are optional. Import createZeroClientWithDirectQueries from 'on-zero/multi' for clients used outside the innermost ZeroProvider.`,
104
+ )
105
+ }
106
+
107
+ return useQueryDirect as UseQueryHook<Schema>
108
+ }
109
+
110
+ export function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>(
111
+ options: CreateZeroClientOptions<Schema, Models>,
112
+ ) {
113
+ return createZeroClientInternal(options)
114
+ }
115
+
116
+ export function createZeroClientInternal<
71
117
  Schema extends ZeroSchema,
72
118
  Models extends GenericModels,
73
119
  >({
@@ -76,15 +122,9 @@ export function createZeroClient<
76
122
  groupedQueries,
77
123
  permissionStrategy = 'optimistic',
78
124
  instanceName = 'default',
79
- }: {
80
- schema: Schema
81
- models: Models
82
- groupedQueries: GroupedQueries
83
- permissionStrategy?: PermissionStrategy
84
- // names this client instance so multiple instances can coexist on one page.
85
- // each query/mutator namespace is claimed by exactly one instance, and the
86
- // ambient run() + the combineZeroClients facade dispatch by that claim.
87
- instanceName?: string
125
+ createDirectUseQuery,
126
+ }: CreateZeroClientOptions<Schema, Models> & {
127
+ createDirectUseQuery?: DirectQueryAdapter<Schema>
88
128
  }) {
89
129
  type ZeroMutators = GetZeroMutators<Models>
90
130
  type ZeroInstance = Zero<Schema, ZeroMutators>
@@ -230,13 +270,9 @@ export function createZeroClient<
230
270
 
231
271
  const zeroEvents = createEmitter<ZeroEvent | null>(`zero${emitterScope}`, null)
232
272
 
233
- // bumped after commit whenever the mounted zero instance changes (first
234
- // mount, identity change) — the direct query path re-materializes its views
235
- // against the new instance
236
- const zeroInstanceVersion = createEmitter<number>(
237
- `zero-instance-version${emitterScope}`,
238
- 0,
239
- )
273
+ const zeroInstanceVersion = createDirectUseQuery
274
+ ? createEmitter<number>(`zero-instance-version${emitterScope}`, 0)
275
+ : null
240
276
 
241
277
  const AuthDataContext = createContext<AuthData>({} as AuthData)
242
278
 
@@ -245,15 +281,14 @@ export function createZeroClient<
245
281
  customQueries,
246
282
  })
247
283
 
248
- // context-free counterpart: materializes directly on THIS instance's
249
- // mounted zero instead of the nearest ZeroProvider context. used by
250
- // combineZeroClients for instances whose provider is not innermost.
251
- const useQueryDirect = createUseQueryDirect<Schema>({
252
- DisabledContext,
253
- customQueries,
254
- getZero: () => latestZeroInstance,
255
- zeroVersion: zeroInstanceVersion,
256
- })
284
+ const useQueryDirect = createDirectUseQuery
285
+ ? createDirectUseQuery({
286
+ DisabledContext,
287
+ customQueries,
288
+ getZero: () => latestZeroInstance,
289
+ zeroVersion: zeroInstanceVersion!,
290
+ })
291
+ : createUnavailableDirectUseQuery<Schema>()
257
292
 
258
293
  // permission check uses a per-model synced query so server is authoritative
259
294
  // permissionStrategy controls client behavior before server responds.
@@ -515,10 +550,8 @@ export function createZeroClient<
515
550
  setRunner(runner)
516
551
  }
517
552
 
518
- // notify direct-path views after commit (emitting during render would
519
- // setState other components mid-render)
520
553
  useEffect(() => {
521
- zeroInstanceVersion.emit(zeroInstanceVersion.value + 1)
554
+ zeroInstanceVersion?.emit(zeroInstanceVersion.value + 1)
522
555
  }, [zeroInstance])
523
556
 
524
557
  return null
@@ -177,7 +177,10 @@ describe('zero recovery', () => {
177
177
  // remount. previously crashed as an unhandled rejection.
178
178
  test('default reload path is a safe no-op when location is absent', async () => {
179
179
  const events: ZeroEvent[] = []
180
- const zeroEvents = createEmitter<ZeroEvent | null>(`test-recover-${emitterSeq++}`, null)
180
+ const zeroEvents = createEmitter<ZeroEvent | null>(
181
+ `test-recover-${emitterSeq++}`,
182
+ null,
183
+ )
181
184
  zeroEvents.listen((event) => {
182
185
  if (event) events.push(event)
183
186
  })
@@ -200,6 +203,9 @@ describe('zero recovery', () => {
200
203
  })
201
204
  }
202
205
  expect(deleteLocalState).toHaveBeenCalledTimes(1)
203
- expect(events).toContainEqual({ type: 'recovering', reason: 'client state not found' })
206
+ expect(events).toContainEqual({
207
+ type: 'recovering',
208
+ reason: 'client state not found',
209
+ })
204
210
  })
205
211
  })
package/src/index.ts CHANGED
@@ -8,8 +8,12 @@ export * from './helpers/useMutation'
8
8
  export { ensureAuth, getAuth } from './helpers/getAuth'
9
9
  export { setAuthData, setEnvironment } from './state'
10
10
 
11
- export * from './combineZeroClients'
12
- export * from './createZeroClient'
11
+ export {
12
+ createZeroClient,
13
+ type CreateZeroClientOptions,
14
+ type GroupedQueries,
15
+ type PermissionStrategy,
16
+ } from './createZeroClient'
13
17
  export * from './httpPullTransport'
14
18
  export * from './createUseQuery'
15
19
  export * from './resolveQuery'
package/src/multi.ts ADDED
@@ -0,0 +1,24 @@
1
+ import {
2
+ createZeroClientInternal,
3
+ type DirectQueryAdapter,
4
+ type CreateZeroClientOptions,
5
+ } from './createZeroClient'
6
+ import { createUseQueryDirect } from './createUseQueryDirect'
7
+
8
+ import type { GenericModels } from './types'
9
+ import type { Schema as ZeroSchema } from '@rocicorp/zero'
10
+
11
+ export * from './combineZeroClients'
12
+
13
+ export function createZeroClientWithDirectQueries<
14
+ Schema extends ZeroSchema,
15
+ Models extends GenericModels,
16
+ >(
17
+ options: CreateZeroClientOptions<Schema, Models>,
18
+ ): ReturnType<typeof createZeroClientInternal<Schema, Models>> {
19
+ const createDirectUseQuery: DirectQueryAdapter<Schema> = createUseQueryDirect
20
+ return createZeroClientInternal<Schema, Models>({
21
+ ...options,
22
+ createDirectUseQuery,
23
+ })
24
+ }
@@ -6,12 +6,13 @@
6
6
  // path — they must materialize directly on the owning instance.
7
7
 
8
8
  import { createSchema, string, table } from '@rocicorp/zero'
9
+ import { useZero } from '@rocicorp/zero/react'
9
10
  import { act, StrictMode } from 'react'
10
11
  import { createRoot, type Root } from 'react-dom/client'
11
12
  import { afterEach, beforeEach, expect, test } from 'vitest'
12
13
 
13
- import { combineZeroClients } from './combineZeroClients'
14
14
  import { createZeroClient } from './createZeroClient'
15
+ import { combineZeroClients, createZeroClientWithDirectQueries } from './multi'
15
16
  import { zql } from './zql'
16
17
 
17
18
  import type { MutatorContext } from './types'
@@ -44,7 +45,7 @@ const controlModels = {
44
45
  }
45
46
  const ctlUserById = (args: { id: string }) => (zql as any).user.where('id', args.id).one()
46
47
 
47
- const control = createZeroClient({
48
+ const control = createZeroClientWithDirectQueries({
48
49
  schema,
49
50
  models: controlModels,
50
51
  groupedQueries: { ctlUser: { byId: ctlUserById } },
@@ -87,6 +88,9 @@ beforeEach(() => {
87
88
 
88
89
  afterEach(async () => {
89
90
  await act(async () => root.unmount())
91
+ await act(async () => {
92
+ await new Promise((resolve) => setTimeout(resolve, 20))
93
+ })
90
94
  container.remove()
91
95
  })
92
96
 
@@ -106,21 +110,60 @@ const probe: { data: UserRow | undefined; renders: number } = {
106
110
  data: undefined,
107
111
  renders: 0,
108
112
  }
113
+ const materializeProbe: {
114
+ materializeTtls: unknown[]
115
+ updateTtls: unknown[]
116
+ destroys: number
117
+ } = {
118
+ materializeTtls: [],
119
+ updateTtls: [],
120
+ destroys: 0,
121
+ }
109
122
 
110
123
  // reset via helper so the assignments don't narrow probe.data to undefined
111
124
  // in test scope
112
125
  function resetProbe() {
113
126
  probe.data = undefined
114
127
  probe.renders = 0
128
+ materializeProbe.materializeTtls = []
129
+ materializeProbe.updateTtls = []
130
+ materializeProbe.destroys = 0
115
131
  }
116
132
 
117
- function ControlUserProbe({ id }: { id: string }) {
118
- const [data] = (combined.useQuery as any)(ctlUserById, { id })
133
+ function ControlUserProbe({ id, ttl }: { id: string; ttl?: number }) {
134
+ const [data] =
135
+ ttl === undefined
136
+ ? (combined.useQuery as any)(ctlUserById, { id })
137
+ : (combined.useQuery as any)(ctlUserById, { id }, { ttl })
119
138
  probe.data = data ?? undefined
120
139
  probe.renders++
121
140
  return null
122
141
  }
123
142
 
143
+ function MaterializeProbe() {
144
+ const zero = useZero() as any
145
+ if (!zero.__onZeroMaterializeProbe) {
146
+ zero.__onZeroMaterializeProbe = true
147
+ const materialize = zero.materialize.bind(zero)
148
+ zero.materialize = (...args: any[]) => {
149
+ materializeProbe.materializeTtls.push(args[1]?.ttl)
150
+ const view = materialize(...args)
151
+ const updateTTL = view.updateTTL.bind(view)
152
+ view.updateTTL = (ttl: unknown) => {
153
+ materializeProbe.updateTtls.push(ttl)
154
+ return updateTTL(ttl)
155
+ }
156
+ const destroy = view.destroy.bind(view)
157
+ view.destroy = () => {
158
+ materializeProbe.destroys++
159
+ return destroy()
160
+ }
161
+ return view
162
+ }
163
+ }
164
+ return null
165
+ }
166
+
124
167
  const seedControl = async (row: UserRow) => {
125
168
  await act(async () => {
126
169
  await (control.zero.mutate as any).user.seed(row).client
@@ -206,6 +249,38 @@ test('StrictMode: direct views survive the effect double-invoke', async () => {
206
249
  await waitFor(() => probe.data?.name === 'strict-v2', 'second update still live')
207
250
  })
208
251
 
252
+ test('direct-path subscribers share one materialized view', async () => {
253
+ const App = ({ showSubscribers }: { showSubscribers: boolean }) => (
254
+ <control.ProvideZero server={null} userID="t5-ctl">
255
+ <MaterializeProbe />
256
+ <project.ProvideZero server={null} userID="t5-prj">
257
+ {showSubscribers ? (
258
+ <>
259
+ <ControlUserProbe id="u5" ttl={1000} />
260
+ <ControlUserProbe id="u5" ttl={2000} />
261
+ </>
262
+ ) : null}
263
+ </project.ProvideZero>
264
+ </control.ProvideZero>
265
+ )
266
+
267
+ await render(<App showSubscribers />)
268
+ await waitFor(() => probe.renders >= 2, 'both probes mount')
269
+
270
+ expect(materializeProbe.materializeTtls).toEqual([1000])
271
+ expect(materializeProbe.updateTtls).toEqual([2000])
272
+
273
+ await seedControl({ id: 'u5', name: 'shared-v1' })
274
+ await waitFor(() => probe.data?.name === 'shared-v1', 'shared view update visible')
275
+ expect(materializeProbe.materializeTtls).toEqual([1000])
276
+
277
+ await render(<App showSubscribers={false} />)
278
+ await act(async () => {
279
+ await new Promise((resolve) => setTimeout(resolve, 20))
280
+ })
281
+ expect(materializeProbe.destroys).toBe(1)
282
+ })
283
+
209
284
  test('direct-path views re-materialize when the owning instance rotates', async () => {
210
285
  const App = ({ userID }: { userID: string }) => (
211
286
  <control.ProvideZero server={null} userID={userID}>
@@ -0,0 +1,26 @@
1
+ if (typeof globalThis.localStorage?.getItem !== 'function') {
2
+ const store = new Map<string, string>()
3
+ Object.defineProperty(globalThis, 'localStorage', {
4
+ configurable: true,
5
+ value: {
6
+ get length() {
7
+ return store.size
8
+ },
9
+ clear() {
10
+ store.clear()
11
+ },
12
+ getItem(key: string) {
13
+ return store.get(String(key)) ?? null
14
+ },
15
+ key(index: number) {
16
+ return Array.from(store.keys())[index] ?? null
17
+ },
18
+ removeItem(key: string) {
19
+ store.delete(String(key))
20
+ },
21
+ setItem(key: string, value: string) {
22
+ store.set(String(key), String(value))
23
+ },
24
+ },
25
+ })
26
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"combineZeroClients.d.ts","sourceRoot":"","sources":["../src/combineZeroClients.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG/D,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAsBtC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC7B,YAAY,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;CACtC,CAAA;AAID,KAAK,oBAAoB,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACjC,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACvC,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACtC,mBAAmB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAC5C,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAChC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACjC,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,SAAS,CAAA;CAC1D,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IAGtC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CAC7E,CAAC,EAAE,MAAM,CAAC,KACP,IAAI,GACL,CAAC,GACD,KAAK,CAAA;AAET,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,SAAS,oBAAoB,EAAE,IAAI;IACjF,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1D,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA;IACpE,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAClD,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IACxD,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1D,GAAG,EAAE,OAAO,GAAG,CAAA;IACf,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,SAAS,CAAA;CAC1D,CAAA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,OAAO,SAAS,SAAS,CAAC,oBAAoB,EAAE,GAAG,oBAAoB,EAAE,CAAC,EAEhF,GAAG,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,yBAAyB,CAAC,GAC3E,mBAAmB,CAAC,OAAO,CAAC,CA6G9B"}
1
+ {"version":3,"file":"combineZeroClients.d.ts","sourceRoot":"","sources":["../src/combineZeroClients.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG/D,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAoBtC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC7B,YAAY,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;CACtC,CAAA;AAID,KAAK,oBAAoB,GAAG;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACjC,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACvC,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACtC,mBAAmB,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAC5C,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IAChC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;IACjC,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,SAAS,CAAA;CAC1D,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IAGtC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CAC7E,CAAC,EAAE,MAAM,CAAC,KACP,IAAI,GACL,CAAC,GACD,KAAK,CAAA;AAET,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,SAAS,oBAAoB,EAAE,IAAI;IACjF,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1D,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAA;IACpE,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAClD,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IACxD,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1D,GAAG,EAAE,OAAO,GAAG,CAAA;IACf,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,SAAS,CAAA;CAC1D,CAAA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,OAAO,SAAS,SAAS,CAAC,oBAAoB,EAAE,GAAG,oBAAoB,EAAE,CAAC,EAEhF,GAAG,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,yBAAyB,CAAC,GAC3E,mBAAmB,CAAC,OAAO,CAAC,CA6G9B"}
@@ -1,5 +1,4 @@
1
1
  import { useQuery as zeroUseQuery } from '@rocicorp/zero/react';
2
- import { type Emitter } from '@take-out/helpers';
3
2
  import { type Context } from 'react';
4
3
  import { type PlainQueryFn } from './resolveQuery';
5
4
  import type { AnyQueryRegistry, HumanReadable, Query, Schema as ZeroSchema } from '@rocicorp/zero';
@@ -15,22 +14,12 @@ export type UseQueryHook<Schema extends ZeroSchema> = {
15
14
  <TArg, TTable extends keyof Schema['tables'] & string, TReturn>(fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>, params: TArg, options?: UseQueryOptions | boolean): QueryResult<TReturn>;
16
15
  <TTable extends keyof Schema['tables'] & string, TReturn>(fn: PlainQueryFn<void, Query<TTable, Schema, TReturn>>, options?: UseQueryOptions | boolean): QueryResult<TReturn>;
17
16
  };
18
- export declare function createUseQuery<Schema extends ZeroSchema>({ DisabledContext, customQueries, }: {
19
- DisabledContext: Context<QueryControlMode>;
20
- customQueries: AnyQueryRegistry;
21
- }): UseQueryHook<Schema>;
22
- type MaterializableZero = {
23
- materialize(query: any, options?: {
24
- ttl?: any;
25
- }): {
26
- addListener(cb: (data: any, resultType: string) => void): void;
27
- destroy(): void;
28
- };
17
+ export declare function parseUseQueryArgs(paramsOrOptions: any, optionsArg: any): {
18
+ params: any;
19
+ options: any;
29
20
  };
30
- export declare function createUseQueryDirect<Schema extends ZeroSchema>({ DisabledContext, customQueries, getZero, zeroVersion, }: {
21
+ export declare function createUseQuery<Schema extends ZeroSchema>({ DisabledContext, customQueries, }: {
31
22
  DisabledContext: Context<QueryControlMode>;
32
23
  customQueries: AnyQueryRegistry;
33
- getZero: () => MaterializableZero | null;
34
- zeroVersion: Emitter<number>;
35
24
  }): UseQueryHook<Schema>;
36
25
  //# sourceMappingURL=createUseQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createUseQuery.d.ts","sourceRoot":"","sources":["../src/createUseQuery.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAML,KAAK,OAAO,EACb,MAAM,OAAO,CAAA;AAGd,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEhE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,MAAM,IAAI,UAAU,EACrB,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,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAC9C,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,CAAC;IAGxB,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;AAmBD,wBAAgB,cAAc,CAAC,MAAM,SAAS,UAAU,EAAE,EACxD,eAAe,EACf,aAAa,GACd,EAAE;IACD,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;CAChC,GAAG,YAAY,CAAC,MAAM,CAAC,CAkCvB;AAoCD,KAAK,kBAAkB,GAAG;IACxB,WAAW,CACT,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,GACtB;QACD,WAAW,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;QAC9D,OAAO,IAAI,IAAI,CAAA;KAChB,CAAA;CACF,CAAA;AAoED,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC9D,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,GACZ,EAAE;IACD,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAE/B,OAAO,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAA;IAExC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7B,GAAG,YAAY,CAAC,MAAM,CAAC,CAuDvB"}
1
+ {"version":3,"file":"createUseQuery.d.ts","sourceRoot":"","sources":["../src/createUseQuery.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAGjE,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEhE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,MAAM,IAAI,UAAU,EACrB,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,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAC9C,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,CAAC;IAGxB,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;AAKD,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;;;EAYtE;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,UAAU,EAAE,EACxD,eAAe,EACf,aAAa,GACd,EAAE;IACD,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;CAChC,GAAG,YAAY,CAAC,MAAM,CAAC,CAkCvB"}
@@ -0,0 +1,29 @@
1
+ import { type Emitter } from '@take-out/helpers';
2
+ import { type Context } from 'react';
3
+ import { type QueryControlMode, type UseQueryHook } from './createUseQuery';
4
+ import type { AnyQueryRegistry, Schema as ZeroSchema } from '@rocicorp/zero';
5
+ export type MaterializableZero = {
6
+ clientID: string;
7
+ context: unknown;
8
+ materialize(query: any, options?: {
9
+ ttl?: any;
10
+ }): {
11
+ addListener(cb: (data: any, resultType: string, error?: DirectQueryError) => void): void;
12
+ destroy(): void;
13
+ updateTTL(ttl: any): void;
14
+ };
15
+ };
16
+ export type CreateUseQueryDirect<Schema extends ZeroSchema> = (props: {
17
+ DisabledContext: Context<QueryControlMode>;
18
+ customQueries: AnyQueryRegistry;
19
+ getZero: () => MaterializableZero | null;
20
+ zeroVersion: Emitter<number>;
21
+ }) => UseQueryHook<Schema>;
22
+ type DirectQueryError = {
23
+ error: 'app' | 'parse';
24
+ message?: string;
25
+ details?: unknown;
26
+ };
27
+ export declare function createUseQueryDirect<Schema extends ZeroSchema>({ DisabledContext, customQueries, getZero, zeroVersion, }: Parameters<CreateUseQueryDirect<Schema>>[0]): UseQueryHook<Schema>;
28
+ export {};
29
+ //# sourceMappingURL=createUseQueryDirect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createUseQueryDirect.d.ts","sourceRoot":"","sources":["../src/createUseQueryDirect.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAEvF,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EACV,gBAAgB,EAEhB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAqBvB,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;CAC7B,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;AAsLD,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC9D,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,GACZ,EAAE,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAkDpE"}
@@ -1,23 +1,69 @@
1
1
  import { Zero as ZeroClient } from '@rocicorp/zero';
2
- import { type ReactNode } from 'react';
3
- import { type UseQueryHook } from './createUseQuery';
2
+ import { type Emitter } from '@take-out/helpers';
3
+ import { type Context, type ReactNode } from 'react';
4
+ import { type QueryControlMode, type UseQueryHook } from './createUseQuery';
4
5
  import { resolveQuery, type PlainQueryFn } from './resolveQuery';
5
6
  import type { AuthData, GenericModels, GetZeroMutators, ZeroEvent } from './types';
6
- import type { Query, Row, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
7
+ import type { AnyQueryRegistry, Query, Row, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
7
8
  type PreloadOptions = {
8
9
  ttl?: 'always' | 'never' | number | undefined;
9
10
  };
10
11
  export type GroupedQueries = Record<string, Record<string, (...args: any[]) => any>>;
11
12
  export type PermissionStrategy = 'optimistic' | 'optimistic-deny' | 'optimistic-allow';
12
- export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>({ schema, models, groupedQueries, permissionStrategy, instanceName, }: {
13
+ export type CreateZeroClientOptions<Schema extends ZeroSchema, Models extends GenericModels> = {
13
14
  schema: Schema;
14
15
  models: Models;
15
16
  groupedQueries: GroupedQueries;
16
17
  permissionStrategy?: PermissionStrategy;
17
18
  instanceName?: string;
19
+ };
20
+ export type DirectQueryAdapter<Schema extends ZeroSchema> = (props: {
21
+ DisabledContext: Context<QueryControlMode>;
22
+ customQueries: AnyQueryRegistry;
23
+ getZero: () => any;
24
+ zeroVersion: Emitter<number>;
25
+ }) => UseQueryHook<Schema>;
26
+ export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>(options: CreateZeroClientOptions<Schema, Models>): {
27
+ instanceName: string;
28
+ zeroEvents: Emitter<ZeroEvent | null>;
29
+ ProvideZero: ({ children, authData: authDataIn, disable, transport, pullIntervalMs, beforeReload, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
30
+ children: ReactNode;
31
+ authData?: {} | null | undefined;
32
+ disable?: boolean;
33
+ transport?: "http-pull";
34
+ pullIntervalMs?: number;
35
+ beforeReload?: (() => Promise<void>) | undefined;
36
+ }) => 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;
37
+ ControlQueries: ({ children, action, whenDisabled, }: {
38
+ children: ReactNode;
39
+ action?: "enable" | "disable";
40
+ whenDisabled?: "empty" | "last-value";
41
+ }) => import("react/jsx-runtime").JSX.Element;
42
+ useQuery: UseQueryHook<Schema>;
43
+ useQueryDirect: UseQueryHook<Schema>;
44
+ usePermission: (table: (string & {}) | (keyof Schema["tables"] & string), objOrId: string | Partial<Row<any>> | undefined, enabled?: boolean, debug?: boolean) => boolean | null;
45
+ usePermissionDirect: (table: (string & {}) | (keyof Schema["tables"] & string), objOrId: string | Partial<Row<any>> | undefined, enabled?: boolean, debug?: boolean) => boolean | null;
46
+ zero: ZeroClient<Schema, GetZeroMutators<Models>, unknown>;
47
+ preload: {
48
+ <TArg, TTable extends keyof Schema["tables"] & string, TReturn>(fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>, params: TArg, options?: PreloadOptions): {
49
+ cleanup: () => void;
50
+ complete: Promise<void>;
51
+ };
52
+ <TTable extends keyof Schema["tables"] & string, TReturn>(fn: PlainQueryFn<void, Query<TTable, Schema, TReturn>>, options?: PreloadOptions): {
53
+ cleanup: () => void;
54
+ complete: Promise<void>;
55
+ };
56
+ };
57
+ getQuery: {
58
+ <TArg, TTable extends keyof Schema["tables"] & string, TReturn>(fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>, params: TArg): ReturnType<typeof resolveQuery<Schema>>;
59
+ <TTable extends keyof Schema["tables"] & string, TReturn>(fn: PlainQueryFn<void, Query<TTable, Schema, TReturn>>): ReturnType<typeof resolveQuery<Schema>>;
60
+ };
61
+ };
62
+ export declare function createZeroClientInternal<Schema extends ZeroSchema, Models extends GenericModels>({ schema, models, groupedQueries, permissionStrategy, instanceName, createDirectUseQuery, }: CreateZeroClientOptions<Schema, Models> & {
63
+ createDirectUseQuery?: DirectQueryAdapter<Schema>;
18
64
  }): {
19
65
  instanceName: string;
20
- zeroEvents: import("@take-out/helpers").Emitter<ZeroEvent | null>;
66
+ zeroEvents: Emitter<ZeroEvent | null>;
21
67
  ProvideZero: ({ children, authData: authDataIn, disable, transport, pullIntervalMs, beforeReload, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
22
68
  children: ReactNode;
23
69
  authData?: AuthData | null;
@@ -1 +1 @@
1
- {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
package/types/index.d.ts CHANGED
@@ -7,8 +7,7 @@ export * from './helpers/mutatorContext';
7
7
  export * from './helpers/useMutation';
8
8
  export { ensureAuth, getAuth } from './helpers/getAuth';
9
9
  export { setAuthData, setEnvironment } from './state';
10
- export * from './combineZeroClients';
11
- export * from './createZeroClient';
10
+ export { createZeroClient, type CreateZeroClientOptions, type GroupedQueries, type PermissionStrategy, } from './createZeroClient';
12
11
  export * from './httpPullTransport';
13
12
  export * from './createUseQuery';
14
13
  export * from './resolveQuery';
@@ -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;AACtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,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,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAA;AAC3B,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"}
@@ -0,0 +1,6 @@
1
+ import { createZeroClientInternal, type CreateZeroClientOptions } from './createZeroClient';
2
+ import type { GenericModels } from './types';
3
+ import type { Schema as ZeroSchema } from '@rocicorp/zero';
4
+ export * from './combineZeroClients';
5
+ export declare function createZeroClientWithDirectQueries<Schema extends ZeroSchema, Models extends GenericModels>(options: CreateZeroClientOptions<Schema, Models>): ReturnType<typeof createZeroClientInternal<Schema, Models>>;
6
+ //# sourceMappingURL=multi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAAA,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;AAE1D,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"multiInstanceNested.test.d.ts","sourceRoot":"","sources":["../src/multiInstanceNested.test.tsx"],"names":[],"mappings":"AAmBA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAA;CAClD"}
1
+ {"version":3,"file":"multiInstanceNested.test.d.ts","sourceRoot":"","sources":["../src/multiInstanceNested.test.tsx"],"names":[],"mappings":"AAoBA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAA;CAClD"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=testSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testSetup.d.ts","sourceRoot":"","sources":["../src/testSetup.ts"],"names":[],"mappings":""}
package/vitest.config.ts CHANGED
@@ -3,5 +3,6 @@ import { defineConfig } from 'vitest/config'
3
3
  export default defineConfig({
4
4
  test: {
5
5
  exclude: ['dist/**', 'node_modules/**'],
6
+ setupFiles: ['./src/testSetup.ts'],
6
7
  },
7
8
  })