on-zero 0.5.1 → 0.6.0

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 (104) hide show
  1. package/dist/cjs/createUseQuery.cjs +2 -1
  2. package/dist/cjs/createUseQuery.native.js +2 -1
  3. package/dist/cjs/createUseQuery.native.js.map +1 -1
  4. package/dist/cjs/createUseQueryDirect.cjs +1 -1
  5. package/dist/cjs/createUseQueryDirect.native.js +1 -1
  6. package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
  7. package/dist/cjs/createZeroClient.cjs +18 -14
  8. package/dist/cjs/createZeroClient.native.js +27 -22
  9. package/dist/cjs/createZeroClient.native.js.map +1 -1
  10. package/dist/cjs/createZeroServer.cjs +33 -0
  11. package/dist/cjs/createZeroServer.native.js +40 -0
  12. package/dist/cjs/createZeroServer.native.js.map +1 -1
  13. package/dist/cjs/createZeroServer.test.cjs +162 -0
  14. package/dist/cjs/createZeroServer.test.native.js +217 -0
  15. package/dist/cjs/createZeroServer.test.native.js.map +1 -0
  16. package/dist/cjs/httpPull/transport.test.cjs +1 -3
  17. package/dist/cjs/httpPull/transport.test.native.js +2 -4
  18. package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
  19. package/dist/cjs/mutations.cjs +2 -2
  20. package/dist/cjs/mutations.native.js +2 -2
  21. package/dist/cjs/mutations.native.js.map +1 -1
  22. package/dist/cjs/provideZero.hydration.test.cjs +5 -0
  23. package/dist/cjs/provideZero.hydration.test.native.js +5 -0
  24. package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
  25. package/dist/cjs/testSetup.cjs +15 -0
  26. package/dist/cjs/testSetup.native.js +15 -0
  27. package/dist/cjs/testSetup.native.js.map +1 -1
  28. package/dist/cjs/useQuery.empty.test.cjs +5 -0
  29. package/dist/cjs/useQuery.empty.test.native.js +5 -0
  30. package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
  31. package/dist/esm/createUseQuery.mjs +2 -1
  32. package/dist/esm/createUseQuery.mjs.map +1 -1
  33. package/dist/esm/createUseQuery.native.js +2 -1
  34. package/dist/esm/createUseQuery.native.js.map +1 -1
  35. package/dist/esm/createUseQueryDirect.mjs +2 -2
  36. package/dist/esm/createUseQueryDirect.mjs.map +1 -1
  37. package/dist/esm/createUseQueryDirect.native.js +2 -2
  38. package/dist/esm/createUseQueryDirect.native.js.map +1 -1
  39. package/dist/esm/createZeroClient.mjs +19 -15
  40. package/dist/esm/createZeroClient.mjs.map +1 -1
  41. package/dist/esm/createZeroClient.native.js +28 -23
  42. package/dist/esm/createZeroClient.native.js.map +1 -1
  43. package/dist/esm/createZeroServer.mjs +33 -0
  44. package/dist/esm/createZeroServer.mjs.map +1 -1
  45. package/dist/esm/createZeroServer.native.js +40 -0
  46. package/dist/esm/createZeroServer.native.js.map +1 -1
  47. package/dist/esm/createZeroServer.test.mjs +163 -0
  48. package/dist/esm/createZeroServer.test.mjs.map +1 -0
  49. package/dist/esm/createZeroServer.test.native.js +215 -0
  50. package/dist/esm/createZeroServer.test.native.js.map +1 -0
  51. package/dist/esm/httpPull/transport.test.mjs +1 -3
  52. package/dist/esm/httpPull/transport.test.mjs.map +1 -1
  53. package/dist/esm/httpPull/transport.test.native.js +2 -4
  54. package/dist/esm/httpPull/transport.test.native.js.map +1 -1
  55. package/dist/esm/mutations.mjs +2 -2
  56. package/dist/esm/mutations.mjs.map +1 -1
  57. package/dist/esm/mutations.native.js +2 -2
  58. package/dist/esm/mutations.native.js.map +1 -1
  59. package/dist/esm/provideZero.hydration.test.mjs +5 -0
  60. package/dist/esm/provideZero.hydration.test.mjs.map +1 -1
  61. package/dist/esm/provideZero.hydration.test.native.js +5 -0
  62. package/dist/esm/provideZero.hydration.test.native.js.map +1 -1
  63. package/dist/esm/testSetup.mjs +15 -0
  64. package/dist/esm/testSetup.mjs.map +1 -1
  65. package/dist/esm/testSetup.native.js +15 -0
  66. package/dist/esm/testSetup.native.js.map +1 -1
  67. package/dist/esm/useQuery.empty.test.mjs +5 -0
  68. package/dist/esm/useQuery.empty.test.mjs.map +1 -1
  69. package/dist/esm/useQuery.empty.test.native.js +5 -0
  70. package/dist/esm/useQuery.empty.test.native.js.map +1 -1
  71. package/package.json +2 -2
  72. package/src/createUseQuery.tsx +5 -2
  73. package/src/createUseQueryDirect.tsx +2 -2
  74. package/src/createZeroClient.tsx +35 -50
  75. package/src/createZeroServer.test.ts +183 -0
  76. package/src/createZeroServer.ts +78 -0
  77. package/src/httpPull/transport.test.ts +1 -3
  78. package/src/mutations.ts +2 -2
  79. package/src/provideZero.hydration.test.tsx +10 -8
  80. package/src/testSetup.ts +19 -0
  81. package/src/useQuery.empty.test.tsx +6 -0
  82. package/types/createUseQuery.d.ts.map +1 -1
  83. package/types/createUseQueryDirect.d.ts.map +1 -1
  84. package/types/createZeroClient.d.ts +2 -2
  85. package/types/createZeroClient.d.ts.map +1 -1
  86. package/types/createZeroServer.d.ts +2 -2
  87. package/types/createZeroServer.d.ts.map +1 -1
  88. package/types/createZeroServer.test.d.ts +2 -0
  89. package/types/createZeroServer.test.d.ts.map +1 -0
  90. package/types/testSetup.d.ts +1 -0
  91. package/types/useQuery.empty.test.d.ts.map +1 -1
  92. package/dist/cjs/constants.cjs +0 -31
  93. package/dist/cjs/constants.native.js +0 -33
  94. package/dist/cjs/constants.native.js.map +0 -1
  95. package/dist/esm/constants.mjs +0 -5
  96. package/dist/esm/constants.mjs.map +0 -1
  97. package/dist/esm/constants.native.js +0 -4
  98. package/dist/esm/constants.native.js.map +0 -1
  99. package/src/constants.native.ts +0 -2
  100. package/src/constants.ts +0 -9
  101. package/types/constants.d.ts +0 -3
  102. package/types/constants.d.ts.map +0 -1
  103. package/types/constants.native.d.ts +0 -3
  104. package/types/constants.native.d.ts.map +0 -1
@@ -5,7 +5,7 @@ import {
5
5
  ZeroContext,
6
6
  ZeroProvider,
7
7
  } from '@rocicorp/zero/react'
8
- import { createEmitter, type Emitter } from '@take-out/helpers'
8
+ import { createEmitter, IS_SERVER_RUNTIME, type Emitter } from '@take-out/helpers'
9
9
  import {
10
10
  createContext,
11
11
  memo,
@@ -303,7 +303,7 @@ export function createZeroClientInternal<
303
303
  // here (factory-time) instead of per-call keeps hook order stable so
304
304
  // rules-of-hooks stays happy.
305
305
  const createUsePermission = (useQueryImpl: UseQueryHook<Schema>) => {
306
- if (typeof window === 'undefined') {
306
+ if (IS_SERVER_RUNTIME) {
307
307
  return (() => null) as (
308
308
  table: TableName | (string & {}),
309
309
  objOrId: string | Partial<Row<any>> | undefined,
@@ -401,7 +401,10 @@ export function createZeroClientInternal<
401
401
  connection: { state: DISABLED_ZERO_STUB_CONNECTION_STATE },
402
402
  } as unknown as ZeroInstance
403
403
 
404
- type ProvideZeroProps = Omit<ZeroOptions<Schema, ZeroMutators>, 'schema' | 'mutators'> & {
404
+ type ProvideZeroProps = Omit<
405
+ ZeroOptions<Schema, ZeroMutators>,
406
+ 'schema' | 'mutators'
407
+ > & {
405
408
  children: ReactNode
406
409
  authData?: AuthData | null
407
410
  // when true, ProvideZero renders a stable shell with stub Zero — no real
@@ -425,32 +428,33 @@ export function createZeroClientInternal<
425
428
  beforeReload?: () => Promise<void>
426
429
  }
427
430
 
428
- // ProvideZero is ONE component (no inner ProvideZeroActive wrapper). a
429
- // single component shape on both SSR and client means React's useId() —
430
- // which keys on the consuming fiber's tree position produces identical
431
- // ids on both sides for every descendant. an extra wrapper fiber (the
432
- // previous shape: SSR returned the 3 providers directly while the client
433
- // wrapped them in a ProvideZeroActive intermediate) shifted every
434
- // descendant's tree id by a step and broke hydration on every useId
435
- // consumer (SVG ids, form ids, etc).
436
- //
437
- // SSR path: EARLY-RETURN before any hook call. on-zero's hooks
438
- // (useRef/useState/useEffect) call through a React copy whose hook
439
- // dispatcher is null on the SSG runtime (because react isn't deduplicated
440
- // across the build's bundle for on-zero's slot), so any hook call here
441
- // throws "Cannot read properties of null (reading 'useRef')". the SSR
442
- // shell renders the same 3-provider 3-child shape as the client.
443
- //
444
- // CLIENT path: hooks ALWAYS run, regardless of `disable`. only the
445
- // returned JSX changes when `disable` flips — so a caller can toggle
446
- // active ↔ inert at runtime without violating rules-of-hooks (no
447
- // remount, no key-rotation needed). this is the structural guarantee
448
- // consumers like soot's ProjectZeroGate depend on to flip from
449
- // disable=true (anon-ssr hydration first render) to disable=false
450
- // (active project mounted) without re-parenting children — children
451
- // stay at the same fiber position whether the wrapper is inert or
452
- // active.
453
- const ProvideZero = ({
431
+ // providezero keeps the same provider/fiber layout on ssr and client so
432
+ // useId() stays stable across hydration. the server implementation has no
433
+ // hooks because the ssg runtime can load on-zero through a non-deduped react
434
+ // copy whose dispatcher is null; the client implementation always calls its
435
+ // hooks, regardless of `disable`.
436
+ const ProvideZeroServer = ({ children, authData: authDataIn }: ProvideZeroProps) => {
437
+ return (
438
+ <AuthDataContext.Provider value={(authDataIn ?? {}) as AuthData}>
439
+ <DisabledContext.Provider value="empty">
440
+ <ZeroContext.Provider value={DISABLED_ZERO_STUB as any}>
441
+ {/* match the active path's 3-child layout exactly so descendant
442
+ useId() lands at the same fiber index in both branches. the
443
+ two leading nulls reserve the SetZeroInstance + ConnectionMonitor
444
+ slots; the active path puts those components there only once
445
+ an instance exists. without these placeholder slots, children
446
+ would sit at child index 0 here but index 2 in the active
447
+ path, shifting every descendant useId. */}
448
+ {null}
449
+ {null}
450
+ {children}
451
+ </ZeroContext.Provider>
452
+ </DisabledContext.Provider>
453
+ </AuthDataContext.Provider>
454
+ )
455
+ }
456
+
457
+ const ProvideZeroClient = ({
454
458
  children,
455
459
  authData: authDataIn,
456
460
  transport,
@@ -459,27 +463,6 @@ export function createZeroClientInternal<
459
463
  disable,
460
464
  ...props
461
465
  }: ProvideZeroProps) => {
462
- if (typeof window === 'undefined') {
463
- return (
464
- <AuthDataContext.Provider value={(authDataIn ?? {}) as AuthData}>
465
- <DisabledContext.Provider value="empty">
466
- <ZeroContext.Provider value={DISABLED_ZERO_STUB as any}>
467
- {/* match the active path's 3-child layout EXACTLY so descendant
468
- useId() lands at the same fiber index in both branches. the
469
- two leading nulls reserve the SetZeroInstance + ConnectionMonitor
470
- slots; the active path puts those components there only once
471
- an instance exists. without these placeholder slots, children
472
- would sit at child index 0 here but index 2 in the active
473
- path, shifting every descendant useId. */}
474
- {null}
475
- {null}
476
- {children}
477
- </ZeroContext.Provider>
478
- </DisabledContext.Provider>
479
- </AuthDataContext.Provider>
480
- )
481
- }
482
-
483
466
  // resolve the auth token first: a real logout (token gone) must clear
484
467
  // authData so client mutators don't keep running as the old user, while a
485
468
  // transient authData blip with the token still present (session refresh, tab
@@ -645,6 +628,8 @@ export function createZeroClientInternal<
645
628
  )
646
629
  }
647
630
 
631
+ const ProvideZero = IS_SERVER_RUNTIME ? ProvideZeroServer : ProvideZeroClient
632
+
648
633
  const SetZeroInstance = () => {
649
634
  const zeroInstance = useZero<Schema, ZeroMutators>()
650
635
 
@@ -0,0 +1,183 @@
1
+ import { describe, expect, test } from 'vitest'
2
+
3
+ import { createZeroServer } from './createZeroServer'
4
+ import { zeroHttpFixtureSchema } from './httpPull/fixtureSchema'
5
+
6
+ class FakePgClient {
7
+ lastMutationID = 0
8
+ pendingLastMutationID: number | undefined
9
+ mutationResultInserts: unknown[][] = []
10
+
11
+ async query(sql: string, params: unknown[] = []) {
12
+ if (sql === 'BEGIN') {
13
+ this.pendingLastMutationID = undefined
14
+ return { rows: [] }
15
+ }
16
+
17
+ if (sql === 'COMMIT') {
18
+ if (this.pendingLastMutationID !== undefined) {
19
+ this.lastMutationID = this.pendingLastMutationID
20
+ }
21
+ this.pendingLastMutationID = undefined
22
+ return { rows: [] }
23
+ }
24
+
25
+ if (sql === 'ROLLBACK') {
26
+ this.pendingLastMutationID = undefined
27
+ return { rows: [] }
28
+ }
29
+
30
+ if (sql.includes('.clients') && sql.includes('RETURNING "lastMutationID"')) {
31
+ const nextMutationID = this.lastMutationID + 1
32
+ this.pendingLastMutationID = nextMutationID
33
+ return { rows: [{ lastMutationID: nextMutationID }] }
34
+ }
35
+
36
+ if (sql.includes('information_schema.columns')) {
37
+ return {
38
+ rows: [
39
+ ...schemaRows('user', ['id', 'name']),
40
+ ...schemaRows('project', ['id', 'ownerId', 'name']),
41
+ ...schemaRows('member', ['id', 'projectId', 'userId']),
42
+ ],
43
+ }
44
+ }
45
+
46
+ if (sql.includes('INSERT INTO "zero_0"."mutations"')) {
47
+ this.mutationResultInserts.push(params)
48
+ return { rows: [] }
49
+ }
50
+
51
+ throw new Error(`unexpected fake pg query: ${sql}`)
52
+ }
53
+ }
54
+
55
+ function schemaRows(table: string, columns: string[]) {
56
+ return columns.map((column) => ({
57
+ schema: 'public',
58
+ table,
59
+ column,
60
+ dataType: 'text',
61
+ length: null,
62
+ precision: null,
63
+ scale: null,
64
+ typtype: 'b',
65
+ typename: 'text',
66
+ elemTyptype: null,
67
+ elemTypname: null,
68
+ }))
69
+ }
70
+
71
+ function pushRequest(mutationIDs: number | number[]) {
72
+ const ids = Array.isArray(mutationIDs) ? mutationIDs : [mutationIDs]
73
+ return new Request('http://localhost/push?schema=zero_0&appID=zero', {
74
+ method: 'POST',
75
+ headers: { 'content-type': 'application/json' },
76
+ body: JSON.stringify({
77
+ clientGroupID: 'cg1',
78
+ mutations: ids.map((mutationID) => ({
79
+ type: 'custom',
80
+ id: mutationID,
81
+ clientID: 'client-a',
82
+ name: 'project.touch',
83
+ args: [{}],
84
+ timestamp: 1,
85
+ })),
86
+ pushVersion: 1,
87
+ timestamp: 1,
88
+ requestID: `req-${ids.join('-')}`,
89
+ }),
90
+ })
91
+ }
92
+
93
+ describe('createZeroServer mutation recovery', () => {
94
+ test('persists alreadyProcessed duplicate results for zero-cache recovery rows', async () => {
95
+ const pg = new FakePgClient()
96
+ const zeroServer = createZeroServer({
97
+ schema: zeroHttpFixtureSchema,
98
+ models: {
99
+ project: {
100
+ mutate: {
101
+ touch: async () => {},
102
+ },
103
+ },
104
+ },
105
+ createServerActions: () => ({}),
106
+ pool: pg as any,
107
+ })
108
+
109
+ const first = await zeroServer.handleMutationRequest({
110
+ authData: null,
111
+ request: pushRequest(1),
112
+ })
113
+
114
+ expect((first.response as any).mutations[0].result).toEqual({})
115
+ expect(pg.lastMutationID).toBe(1)
116
+ expect(pg.mutationResultInserts).toEqual([])
117
+
118
+ const duplicate = await zeroServer.handleMutationRequest({
119
+ authData: null,
120
+ request: pushRequest(1),
121
+ })
122
+
123
+ const duplicateResult = (duplicate.response as any).mutations[0].result
124
+ expect(duplicateResult.error).toBe('alreadyProcessed')
125
+ expect(pg.lastMutationID).toBe(1)
126
+ expect(pg.mutationResultInserts).toEqual([
127
+ [
128
+ 'cg1',
129
+ 'client-a',
130
+ 1,
131
+ JSON.stringify({
132
+ error: 'alreadyProcessed',
133
+ details: duplicateResult.details,
134
+ }),
135
+ ],
136
+ ])
137
+ })
138
+
139
+ test('persists only alreadyProcessed results in a mixed recovery push', async () => {
140
+ const pg = new FakePgClient()
141
+ const zeroServer = createZeroServer({
142
+ schema: zeroHttpFixtureSchema,
143
+ models: {
144
+ project: {
145
+ mutate: {
146
+ touch: async () => {},
147
+ },
148
+ },
149
+ },
150
+ createServerActions: () => ({}),
151
+ pool: pg as any,
152
+ })
153
+
154
+ await zeroServer.handleMutationRequest({
155
+ authData: null,
156
+ request: pushRequest(1),
157
+ })
158
+
159
+ const mixed = await zeroServer.handleMutationRequest({
160
+ authData: null,
161
+ request: pushRequest([1, 2]),
162
+ })
163
+
164
+ const results = (mixed.response as any).mutations.map((mutation: any) => ({
165
+ id: mutation.id.id,
166
+ result: mutation.result,
167
+ }))
168
+ expect(results[0].result.error).toBe('alreadyProcessed')
169
+ expect(results[1]).toEqual({ id: 2, result: {} })
170
+ expect(pg.lastMutationID).toBe(2)
171
+ expect(pg.mutationResultInserts).toEqual([
172
+ [
173
+ 'cg1',
174
+ 'client-a',
175
+ 1,
176
+ JSON.stringify({
177
+ error: 'alreadyProcessed',
178
+ details: results[0].result.details,
179
+ }),
180
+ ],
181
+ ])
182
+ })
183
+ })
@@ -44,6 +44,21 @@ type MutateOptions = {
44
44
  awaitEffects?: boolean
45
45
  }
46
46
 
47
+ type AlreadyProcessedMutation = {
48
+ id: {
49
+ clientID: string
50
+ id: number
51
+ }
52
+ result: {
53
+ error: 'alreadyProcessed'
54
+ details?: unknown
55
+ }
56
+ }
57
+
58
+ type PushRequestBody = {
59
+ clientGroupID?: unknown
60
+ }
61
+
47
62
  type ServerMutate<Models extends GenericModels> = {
48
63
  [Key in keyof Models]: {
49
64
  [K in keyof Models[Key]['mutate']]: Models[Key]['mutate'][K] extends (
@@ -179,6 +194,7 @@ export function createZeroServer<
179
194
  }) => {
180
195
  // since mutations do DB work in transaction, avoid any async tasks during
181
196
  const asyncTasks: AsyncAction[] = []
197
+ const recoveryRequest = request.clone()
182
198
 
183
199
  const mutators = createMutators({
184
200
  asyncTasks,
@@ -193,6 +209,7 @@ export function createZeroServer<
193
209
 
194
210
  // @ts-expect-error type is ok but config in monorepo
195
211
  const response = await processor.process(mutators, request)
212
+ await persistAlreadyProcessedMutationResults(pool, recoveryRequest, response)
196
213
 
197
214
  // now finish
198
215
  if (!skipAsyncTasks && asyncTasks.length) {
@@ -416,3 +433,64 @@ export function createZeroServer<
416
433
  query,
417
434
  }
418
435
  }
436
+
437
+ function alreadyProcessedMutations(response: unknown): AlreadyProcessedMutation[] {
438
+ if (!response || typeof response !== 'object') return []
439
+ const mutations = (response as { mutations?: unknown }).mutations
440
+ if (!Array.isArray(mutations)) return []
441
+
442
+ return mutations.filter((mutation): mutation is AlreadyProcessedMutation => {
443
+ if (!mutation || typeof mutation !== 'object') return false
444
+ const id = (mutation as { id?: unknown }).id
445
+ const result = (mutation as { result?: unknown }).result
446
+ return (
447
+ !!id &&
448
+ typeof id === 'object' &&
449
+ typeof (id as { clientID?: unknown }).clientID === 'string' &&
450
+ typeof (id as { id?: unknown }).id === 'number' &&
451
+ !!result &&
452
+ typeof result === 'object' &&
453
+ (result as { error?: unknown }).error === 'alreadyProcessed'
454
+ )
455
+ })
456
+ }
457
+
458
+ async function persistAlreadyProcessedMutationResults(
459
+ pool: NodePgTransaction,
460
+ request: Request,
461
+ response: unknown,
462
+ ) {
463
+ const mutations = alreadyProcessedMutations(response)
464
+ if (mutations.length === 0) return
465
+
466
+ const schema = new URL(request.url).searchParams.get('schema')
467
+ if (!schema) return
468
+
469
+ const body = (await request.json()) as PushRequestBody
470
+ if (typeof body.clientGroupID !== 'string') return
471
+
472
+ const table = `${quotePgIdentifier(schema)}."mutations"`
473
+ const values = mutations
474
+ .map((_, index) => {
475
+ const offset = index * 4
476
+ return `($${offset + 1}, $${offset + 2}, $${offset + 3}, $${offset + 4}::json)`
477
+ })
478
+ .join(', ')
479
+ const params = mutations.flatMap((mutation) => [
480
+ body.clientGroupID,
481
+ mutation.id.clientID,
482
+ mutation.id.id,
483
+ JSON.stringify(mutation.result),
484
+ ])
485
+
486
+ await pool.query(
487
+ `INSERT INTO ${table} ("clientGroupID", "clientID", "mutationID", "result")
488
+ VALUES ${values}
489
+ ON CONFLICT ("clientGroupID", "clientID", "mutationID") DO NOTHING`,
490
+ params,
491
+ )
492
+ }
493
+
494
+ function quotePgIdentifier(value: string) {
495
+ return `"${value.replaceAll('"', '""')}"`
496
+ }
@@ -480,9 +480,7 @@ describe('zero-http transport', () => {
480
480
  install(fetch)
481
481
  const onClientStateNotFound = vi.fn()
482
482
  createZero({ onClientStateNotFound })
483
- await vi.waitFor(() => expect(onClientStateNotFound).toHaveBeenCalled(), {
484
- timeout: 5_000,
485
- })
483
+ await eventually(() => expect(onClientStateNotFound).toHaveBeenCalled(), 5_000)
486
484
  })
487
485
  })
488
486
 
package/src/mutations.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { isServer } from './constants'
1
+ import { IS_SERVER_RUNTIME } from '@take-out/helpers'
2
2
  import { getDidRunPermissionCheck } from './helpers/didRunPermissionCheck'
3
3
  import { setMutationsPermissions } from './modelRegistry'
4
4
 
@@ -170,7 +170,7 @@ export function mutations<
170
170
  }
171
171
 
172
172
  // only validate on the server
173
- if (isServer) {
173
+ if (IS_SERVER_RUNTIME) {
174
174
  await ctx.can(permissions, obj)
175
175
  }
176
176
  }
@@ -17,13 +17,16 @@
17
17
  // stability is what keeps useId stable.
18
18
 
19
19
  import { createSchema, string, table } from '@rocicorp/zero'
20
+ import { IS_SERVER, IS_SERVER_RUNTIME } from '@take-out/helpers'
20
21
  import { useId, type ReactNode } from 'react'
21
22
  import { renderToString } from 'react-dom/server'
22
23
  import { expect, test } from 'vitest'
23
24
 
24
25
  import { createZeroClient } from './createZeroClient'
25
26
 
26
- const todoTable = table('todo').columns({ id: string(), title: string() }).primaryKey('id')
27
+ const todoTable = table('todo')
28
+ .columns({ id: string(), title: string() })
29
+ .primaryKey('id')
27
30
  const schema = createSchema({ tables: [todoTable] })
28
31
 
29
32
  const client = createZeroClient({
@@ -38,13 +41,7 @@ function IdProbe({ name }: { name: string }) {
38
41
  return <span data-name={name} data-probe-id={id} />
39
42
  }
40
43
 
41
- function Tree({
42
- children,
43
- disable,
44
- }: {
45
- children?: ReactNode
46
- disable?: boolean
47
- }) {
44
+ function Tree({ children, disable }: { children?: ReactNode; disable?: boolean }) {
48
45
  return (
49
46
  <client.ProvideZero authData={{}} userID="anon" disable={disable}>
50
47
  <IdProbe name="a" />
@@ -69,6 +66,11 @@ function readIds(html: string): Record<string, string> {
69
66
  return out
70
67
  }
71
68
 
69
+ test('test environment loads on-zero client runtime', () => {
70
+ expect(IS_SERVER_RUNTIME).toBe(false)
71
+ expect(IS_SERVER).toBe(false)
72
+ })
73
+
72
74
  test('useId is stable across active vs disabled ProvideZero renders', () => {
73
75
  const active = readIds(renderToString(<Tree />))
74
76
  const disabled = readIds(renderToString(<Tree disable />))
package/src/testSetup.ts CHANGED
@@ -1,3 +1,22 @@
1
+ import { afterAll, vi } from 'vitest'
2
+
3
+ const isJsdomRuntime = typeof window !== 'undefined' && typeof document !== 'undefined'
4
+ const previousViteEnvironment = process.env.VITE_ENVIRONMENT
5
+
6
+ if (isJsdomRuntime) {
7
+ process.env.VITE_ENVIRONMENT = 'client'
8
+ vi.resetModules()
9
+ }
10
+
11
+ afterAll(() => {
12
+ if (!isJsdomRuntime) return
13
+ if (previousViteEnvironment === undefined) {
14
+ delete process.env.VITE_ENVIRONMENT
15
+ } else {
16
+ process.env.VITE_ENVIRONMENT = previousViteEnvironment
17
+ }
18
+ })
19
+
1
20
  if (typeof globalThis.localStorage?.getItem !== 'function') {
2
21
  const store = new Map<string, string>()
3
22
  Object.defineProperty(globalThis, 'localStorage', {
@@ -7,6 +7,7 @@
7
7
  // queries get `[undefined, info]` instead (the established zero-react shape).
8
8
 
9
9
  import { createSchema, number, string, table } from '@rocicorp/zero'
10
+ import { IS_SERVER, IS_SERVER_RUNTIME } from '@take-out/helpers'
10
11
  import { act } from 'react'
11
12
  import { createRoot, type Root } from 'react-dom/client'
12
13
  import { afterEach, beforeEach, expect, test } from 'vitest'
@@ -78,6 +79,11 @@ function renderWithDisabled<T>(useHook: () => T): T {
78
79
  return captured
79
80
  }
80
81
 
82
+ test('test environment loads on-zero client runtime', () => {
83
+ expect(IS_SERVER_RUNTIME).toBe(false)
84
+ expect(IS_SERVER).toBe(false)
85
+ })
86
+
81
87
  // regression: previously this returned [null, ...] which crashed downstream
82
88
  // .filter / .find / .length. now it must return [[], ...] for plural queries.
83
89
  test('useQuery returns [] (not null) for plural queries under DisabledContext', () => {
@@ -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;AAE/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,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,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;AAiBD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAU5F;AAGD,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,CAwGvB"}
1
+ {"version":3,"file":"createUseQuery.d.ts","sourceRoot":"","sources":["../src/createUseQuery.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAG/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,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,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;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,GACd,EAAE;IACD,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;CAChC,GAAG,YAAY,CAAC,MAAM,CAAC,CAwGvB"}
@@ -1 +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,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AAGzB,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;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;AA2LD,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,CAyFpE"}
1
+ {"version":3,"file":"createUseQueryDirect.d.ts","sourceRoot":"","sources":["../src/createUseQueryDirect.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAsC,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAEvF,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AAGzB,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;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;AA2LD,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,CAyFpE"}
@@ -26,7 +26,7 @@ export type DirectQueryAdapter<Schema extends ZeroSchema> = (props: {
26
26
  export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>(options: CreateZeroClientOptions<Schema, Models>): {
27
27
  instanceName: string;
28
28
  zeroEvents: Emitter<ZeroEvent | null>;
29
- ProvideZero: ({ children, authData: authDataIn, transport, pullIntervalMs, beforeReload, disable, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
29
+ ProvideZero: ({ children, authData: authDataIn }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
30
30
  children: ReactNode;
31
31
  authData?: {} | null | undefined;
32
32
  disable?: boolean;
@@ -64,7 +64,7 @@ export declare function createZeroClientInternal<Schema extends ZeroSchema, Mode
64
64
  }): {
65
65
  instanceName: string;
66
66
  zeroEvents: Emitter<ZeroEvent | null>;
67
- ProvideZero: ({ children, authData: authDataIn, transport, pullIntervalMs, beforeReload, disable, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
67
+ ProvideZero: ({ children, authData: authDataIn }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
68
68
  children: ReactNode;
69
69
  authData?: AuthData | null;
70
70
  disable?: boolean;
@@ -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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"}
@@ -90,7 +90,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
90
90
  error: "app";
91
91
  } | {
92
92
  details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
93
- error: "oooMutation" | "alreadyProcessed";
93
+ error: "alreadyProcessed" | "oooMutation";
94
94
  };
95
95
  }[];
96
96
  } | {
@@ -139,7 +139,7 @@ export declare function createZeroServer<Schema extends ZeroSchema, Models exten
139
139
  error: "app";
140
140
  } | {
141
141
  details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
142
- error: "oooMutation" | "alreadyProcessed";
142
+ error: "alreadyProcessed" | "oooMutation";
143
143
  };
144
144
  }[];
145
145
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"createZeroServer.d.ts","sourceRoot":"","sources":["../src/createZeroServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createZeroServer.d.ts","sourceRoot":"","sources":["../src/createZeroServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createZeroServer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createZeroServer.test.d.ts","sourceRoot":"","sources":["../src/createZeroServer.test.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=testSetup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.empty.test.d.ts","sourceRoot":"","sources":["../src/useQuery.empty.test.tsx"],"names":[],"mappings":"AAgBA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAA;CAClD"}
1
+ {"version":3,"file":"useQuery.empty.test.d.ts","sourceRoot":"","sources":["../src/useQuery.empty.test.tsx"],"names":[],"mappings":"AAiBA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAA;CAClD"}