on-zero 0.4.35 → 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.
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +1 -96
- package/dist/cjs/createUseQuery.native.js +1 -132
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.cjs +228 -0
- package/dist/cjs/createUseQueryDirect.native.js +334 -0
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -0
- package/dist/cjs/createZeroClient.cjs +18 -7
- package/dist/cjs/createZeroClient.native.js +18 -7
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.native.js +2 -2
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/multi.cjs +38 -0
- package/dist/cjs/multi.native.js +41 -0
- package/dist/cjs/multi.native.js.map +1 -0
- package/dist/cjs/multiInstance.test.cjs +75 -0
- package/dist/cjs/multiInstance.test.native.js +111 -0
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.cjs +92 -12
- package/dist/cjs/multiInstanceNested.test.native.js +108 -12
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/run.cjs +6 -1
- package/dist/cjs/run.native.js +6 -1
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/testSetup.cjs +26 -0
- package/dist/cjs/testSetup.native.js +32 -0
- package/dist/cjs/testSetup.native.js.map +1 -0
- package/dist/cjs/zeroRunner.cjs +4 -0
- package/dist/cjs/zeroRunner.native.js +4 -0
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/esm/combineZeroClients.mjs.map +1 -1
- package/dist/esm/combineZeroClients.native.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +2 -97
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +2 -133
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createUseQueryDirect.mjs +203 -0
- package/dist/esm/createUseQueryDirect.mjs.map +1 -0
- package/dist/esm/createUseQueryDirect.native.js +306 -0
- package/dist/esm/createUseQueryDirect.native.js.map +1 -0
- package/dist/esm/createZeroClient.mjs +18 -8
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +18 -8
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/index.js +2 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -3
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -3
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/multi.mjs +12 -0
- package/dist/esm/multi.mjs.map +1 -0
- package/dist/esm/multi.native.js +12 -0
- package/dist/esm/multi.native.js.map +1 -0
- package/dist/esm/multiInstance.test.mjs +75 -0
- package/dist/esm/multiInstance.test.mjs.map +1 -1
- package/dist/esm/multiInstance.test.native.js +111 -0
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/dist/esm/multiInstanceNested.test.mjs +85 -5
- package/dist/esm/multiInstanceNested.test.mjs.map +1 -1
- package/dist/esm/multiInstanceNested.test.native.js +101 -5
- package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
- package/dist/esm/run.mjs +7 -2
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/run.native.js +7 -2
- package/dist/esm/run.native.js.map +1 -1
- package/dist/esm/testSetup.mjs +27 -0
- package/dist/esm/testSetup.mjs.map +1 -0
- package/dist/esm/testSetup.native.js +30 -0
- package/dist/esm/testSetup.native.js.map +1 -0
- package/dist/esm/zeroRunner.mjs +4 -1
- package/dist/esm/zeroRunner.mjs.map +1 -1
- package/dist/esm/zeroRunner.native.js +4 -1
- package/dist/esm/zeroRunner.native.js.map +1 -1
- package/package.json +8 -2
- package/readme.md +10 -8
- package/src/combineZeroClients.tsx +4 -6
- package/src/createUseQuery.tsx +2 -189
- package/src/createUseQueryDirect.tsx +307 -0
- package/src/createZeroClient.tsx +65 -32
- package/src/helpers/recoverZeroClient.test.ts +8 -2
- package/src/index.ts +6 -2
- package/src/multi.ts +24 -0
- package/src/multiInstance.test.tsx +69 -0
- package/src/multiInstanceNested.test.tsx +79 -4
- package/src/run.ts +10 -2
- package/src/testSetup.ts +26 -0
- package/src/zeroRunner.ts +4 -0
- package/types/combineZeroClients.d.ts.map +1 -1
- package/types/createUseQuery.d.ts +4 -15
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createUseQueryDirect.d.ts +29 -0
- package/types/createUseQueryDirect.d.ts.map +1 -0
- package/types/createZeroClient.d.ts +51 -5
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/index.d.ts +1 -2
- package/types/index.d.ts.map +1 -1
- package/types/multi.d.ts +6 -0
- package/types/multi.d.ts.map +1 -0
- package/types/multiInstanceNested.test.d.ts.map +1 -1
- package/types/run.d.ts.map +1 -1
- package/types/testSetup.d.ts +1 -0
- package/types/testSetup.d.ts.map +1 -0
- package/types/zeroRunner.d.ts +3 -0
- package/types/zeroRunner.d.ts.map +1 -1
- package/vitest.config.ts +1 -0
|
@@ -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 =
|
|
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] =
|
|
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}>
|
package/src/run.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getInstanceForQueryFn } from './instanceRegistry'
|
|
2
2
|
import { resolveQuery, type PlainQueryFn } from './resolveQuery'
|
|
3
|
-
import {
|
|
3
|
+
import { isInZeroMutation, mutatorContext } from './helpers/mutatorContext'
|
|
4
|
+
import { getAmbientRunner, getRunner } from './zeroRunner'
|
|
4
5
|
|
|
5
6
|
import type {
|
|
6
7
|
AnyQueryRegistry,
|
|
@@ -75,11 +76,18 @@ export function run(
|
|
|
75
76
|
return getRunner()(queryOrFn, options)
|
|
76
77
|
}
|
|
77
78
|
|
|
79
|
+
const inMutation = isInZeroMutation()
|
|
80
|
+
if (inMutation && mutatorContext().environment === 'server') {
|
|
81
|
+
throw new Error(
|
|
82
|
+
'run(namedQuery) cannot be used inside a Zero mutation. Use tx.run(zql...) for transactional mutation reads.',
|
|
83
|
+
)
|
|
84
|
+
}
|
|
85
|
+
|
|
78
86
|
// with multiple client instances mounted, a named query executes against
|
|
79
87
|
// the instance that claimed its namespace, not whichever mounted last
|
|
80
88
|
const instance = getInstanceForQueryFn(queryOrFn)
|
|
81
89
|
const customQueries = instance?.customQueries ?? getCustomQueries()
|
|
82
90
|
const queryRequest = resolveQuery({ customQueries, fn: queryOrFn, params })
|
|
83
91
|
|
|
84
|
-
return
|
|
92
|
+
return getAmbientRunner(instance)(queryRequest as any, options)
|
|
85
93
|
}
|
package/src/testSetup.ts
ADDED
|
@@ -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
|
+
}
|
package/src/zeroRunner.ts
CHANGED
|
@@ -25,6 +25,10 @@ export function getRunner(instance?: { runner: ZeroRunner | null }): ZeroRunner
|
|
|
25
25
|
return (q, o) => mutatorContext().tx.run(q, o)
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
return getAmbientRunner(instance)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function getAmbientRunner(instance?: { runner: ZeroRunner | null }): ZeroRunner {
|
|
28
32
|
// a mounted instance's own runner wins; otherwise the ambient runner
|
|
29
33
|
// (single-instance client, or the server transaction runner)
|
|
30
34
|
if (instance?.runner) {
|
|
@@ -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;
|
|
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
|
|
19
|
-
|
|
20
|
-
|
|
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
|
|
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,
|
|
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
|
|
3
|
-
import { type
|
|
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
|
|
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:
|
|
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":"AAAA,OAAO,EAA8B,IAAI,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
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
|
|
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';
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,
|
|
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"}
|
package/types/multi.d.ts
ADDED
|
@@ -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":"
|
|
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"}
|
package/types/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAIhE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAIvB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,QAEzD;AAaD,wBAAgB,GAAG,CACjB,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAC9C,OAAO,EAEP,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;AAElC,wBAAgB,GAAG,CACjB,MAAM,SAAS,UAAU,EACzB,IAAI,EACJ,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAC9C,OAAO,EAEP,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACtD,MAAM,EAAE,IAAI,EACZ,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;AAElC,wBAAgB,GAAG,CACjB,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAC9C,OAAO,EAEP,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACtD,IAAI,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA"}
|
|
@@ -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/types/zeroRunner.d.ts
CHANGED
|
@@ -5,4 +5,7 @@ export declare function setRunner(r: ZeroRunner): void;
|
|
|
5
5
|
export declare function getRunner(instance?: {
|
|
6
6
|
runner: ZeroRunner | null;
|
|
7
7
|
}): ZeroRunner;
|
|
8
|
+
export declare function getAmbientRunner(instance?: {
|
|
9
|
+
runner: ZeroRunner | null;
|
|
10
|
+
}): ZeroRunner;
|
|
8
11
|
//# sourceMappingURL=zeroRunner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zeroRunner.d.ts","sourceRoot":"","sources":["../src/zeroRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,KAAK,EACL,UAAU,EACV,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAEvB,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAC/B,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EACtC,OAAO,CAAC,EAAE,UAAU,KACjB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;AAIpC,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,QAEtC;AAED,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE;IAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"zeroRunner.d.ts","sourceRoot":"","sources":["../src/zeroRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,KAAK,EACL,UAAU,EACV,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAEvB,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAC/B,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EACtC,OAAO,CAAC,EAAE,UAAU,KACjB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;AAIpC,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,QAEtC;AAED,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE;IAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAAG,UAAU,CAM9E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE;IAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GAAG,UAAU,CAcrF"}
|