over-zero 0.0.4 → 0.0.6

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 (75) hide show
  1. package/dist/cjs/createPermissions.cjs +3 -3
  2. package/dist/cjs/createPermissions.js +3 -3
  3. package/dist/cjs/createPermissions.js.map +1 -1
  4. package/dist/cjs/createPermissions.native.js +6 -3
  5. package/dist/cjs/createPermissions.native.js.map +1 -1
  6. package/dist/cjs/createZeroClient.cjs +3 -8
  7. package/dist/cjs/createZeroClient.js +4 -6
  8. package/dist/cjs/createZeroClient.js.map +1 -1
  9. package/dist/cjs/createZeroClient.native.js +4 -6
  10. package/dist/cjs/createZeroClient.native.js.map +1 -1
  11. package/dist/cjs/createZeroServer.cjs +18 -16
  12. package/dist/cjs/createZeroServer.js +18 -14
  13. package/dist/cjs/createZeroServer.js.map +2 -2
  14. package/dist/cjs/createZeroServer.native.js +20 -14
  15. package/dist/cjs/createZeroServer.native.js.map +2 -2
  16. package/dist/cjs/helpers/createMutators.js.map +1 -1
  17. package/dist/cjs/helpers/useZeroDebug.js.map +1 -1
  18. package/dist/cjs/mutations.js.map +1 -1
  19. package/dist/esm/createPermissions.js +3 -3
  20. package/dist/esm/createPermissions.js.map +1 -1
  21. package/dist/esm/createPermissions.mjs +3 -3
  22. package/dist/esm/createPermissions.mjs.map +1 -1
  23. package/dist/esm/createPermissions.native.js +6 -3
  24. package/dist/esm/createPermissions.native.js.map +1 -1
  25. package/dist/esm/createZeroClient.js +5 -7
  26. package/dist/esm/createZeroClient.js.map +1 -1
  27. package/dist/esm/createZeroClient.mjs +4 -9
  28. package/dist/esm/createZeroClient.mjs.map +1 -1
  29. package/dist/esm/createZeroClient.native.js +4 -9
  30. package/dist/esm/createZeroClient.native.js.map +1 -1
  31. package/dist/esm/createZeroServer.js +18 -14
  32. package/dist/esm/createZeroServer.js.map +2 -2
  33. package/dist/esm/createZeroServer.mjs +18 -16
  34. package/dist/esm/createZeroServer.mjs.map +1 -1
  35. package/dist/esm/createZeroServer.native.js +20 -16
  36. package/dist/esm/createZeroServer.native.js.map +1 -1
  37. package/dist/esm/helpers/createMutators.js.map +1 -1
  38. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  39. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  40. package/dist/esm/helpers/useZeroDebug.js.map +1 -1
  41. package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
  42. package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
  43. package/dist/esm/mutations.js.map +1 -1
  44. package/dist/esm/mutations.mjs.map +1 -1
  45. package/dist/esm/mutations.native.js.map +1 -1
  46. package/package.json +3 -4
  47. package/src/createPermissions.ts +46 -39
  48. package/src/createZeroClient.tsx +7 -7
  49. package/src/createZeroServer.ts +28 -20
  50. package/src/helpers/createMutators.ts +4 -3
  51. package/src/helpers/prettyFormatZeroQuery.ts +1 -1
  52. package/src/helpers/useZeroDebug.ts +1 -2
  53. package/src/mutations.ts +3 -6
  54. package/src/types.ts +19 -8
  55. package/types/createPermissions.d.ts +34 -0
  56. package/types/createPermissions.d.ts.map +1 -1
  57. package/types/createZeroClient.d.ts +19 -0
  58. package/types/createZeroClient.d.ts.map +1 -1
  59. package/types/createZeroServer.d.ts +63 -0
  60. package/types/createZeroServer.d.ts.map +1 -1
  61. package/types/helpers/batchQuery.d.ts +7 -0
  62. package/types/helpers/context.d.ts +5 -0
  63. package/types/helpers/createMutators.d.ts +10 -0
  64. package/types/helpers/createMutators.d.ts.map +1 -1
  65. package/types/helpers/ensureLoggedIn.d.ts +3 -0
  66. package/types/helpers/prettyFormatZeroQuery.d.ts +3 -0
  67. package/types/helpers/useZeroDebug.d.ts +3 -0
  68. package/types/helpers/useZeroDebug.d.ts.map +1 -1
  69. package/types/index.d.ts +10 -0
  70. package/types/mutations.d.ts +20 -0
  71. package/types/mutations.d.ts.map +1 -1
  72. package/types/server.d.ts +2 -0
  73. package/types/types.d.ts +76 -0
  74. package/types/types.d.ts.map +1 -1
  75. package/types/where.d.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"names":["mutations","table","permissions","mutations2","tableName","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","didCanPermissionsRun","process","env","VITE_ENVIRONMENT","can","existing","tx","mutate","crudMutations","insert","update","delete","upsert"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"AAoEO,SAASA,UAGdC,KAAA,EAA0BC,WAAA,EAAqBC,UAAA,EAAkC;EACjF,IAAID,WAAA,EAAa;IACf,IAAAE,SAAM,GAAAH,KAAa,CAAAI,MAAgB,CAAAC,IAAO;MAAAC,kBAEpC,YAAAA,CAAsBC,MACnB;QASL,OAAM,gBAAAC,GAAA,EAAAC,GAAA;UACA,IAAIC,wBAMJ,kBAAAA,CAAA,EAAY;YAGlBF,GAAA,CAAAG,oBAAA,IAAAC,OAAA,CAAAC,GAAA,CAAAC,gBAAA,qBAAAN,GAAA,CAAAO,GAAA,CAAAd,WAAA,EAAAM,MAAA,EAAAE,GAAA;UAEI;UAKJF,MAAM,aAAW,WAAYG,wBAAM;UAE/B,IAAAM,QACF,GAAMd,UAAS,GAAAK,MAAQ;UAYvBS,QAAA,SAAoCA,QAAA,CAAAR,GAAA,EAAAC,GAAA,UAAAD,GAAA,CAAAS,EAAA,CAAAC,MAAA,CAAAf,SAAA,EAAAI,MAAA,EAAAE,GAAA,GAAAF,MAAA,wBAAAG,wBAAA;QACxC;MAAmC;MACnCS,aAAQ;QACRC,MAAA,EAAQd,kBAAA,CAAmB,QAAQ;QACnCe,MAAA,EAAQf,kBAAA,CAAmB,QAAQ;QACrCgB,MAAA,EAAAhB,kBAAA;QAEAiB,MAAO,EAAAjB,kBAAA;MAAA;IACF;MAEH,GAAGJ,UAAA;MACL;MACF,GAAAiB;IAGA;EACF","ignoreList":[]}
1
+ {"version":3,"names":["mutations","table","permissions","mutations2","tableName","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","didCanPermissionsRun","process","env","VITE_ENVIRONMENT","can","existing","tx","mutate","crudMutations","insert","update","delete","upsert"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"AAiEO,SAASA,UAGdC,KAAA,EAA0BC,WAAA,EAAqBC,UAAA,EAAkC;EACjF,IAAID,WAAA,EAAa;IACf,IAAAE,SAAM,GAAAH,KAAa,CAAAI,MAAgB,CAAAC,IAAO;MAAAC,kBAEpC,YAAAA,CAAsBC,MACnB;QASL,OAAM,gBAAAC,GAAA,EAAAC,GAAA;UACA,IAAIC,wBAMJ,kBAAAA,CAAA,EAAY;YAGlBF,GAAA,CAAAG,oBAAA,IAAAC,OAAA,CAAAC,GAAA,CAAAC,gBAAA,qBAAAN,GAAA,CAAAO,GAAA,CAAAd,WAAA,EAAAM,MAAA,EAAAE,GAAA;UAEI;UAKJF,MAAM,aAAW,WAAYG,wBAAM;UAE/B,IAAAM,QACF,GAAMd,UAAS,GAAAK,MAAQ;UAYvBS,QAAA,SAAoCA,QAAA,CAAAR,GAAA,EAAAC,GAAA,UAAAD,GAAA,CAAAS,EAAA,CAAAC,MAAA,CAAAf,SAAA,EAAAI,MAAA,EAAAE,GAAA,GAAAF,MAAA,wBAAAG,wBAAA;QACxC;MAAmC;MACnCS,aAAQ;QACRC,MAAA,EAAQd,kBAAA,CAAmB,QAAQ;QACnCe,MAAA,EAAQf,kBAAA,CAAmB,QAAQ;QACrCgB,MAAA,EAAAhB,kBAAA;QAEAiB,MAAO,EAAAjB,kBAAA;MAAA;IACF;MAEH,GAAGJ,UAAA;MACL;MACF,GAAAiB;IAGA;EACF","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "over-zero",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/cjs",
@@ -13,8 +13,7 @@
13
13
  "dist"
14
14
  ],
15
15
  "publishConfig": {
16
- "access": "public",
17
- "replaceTypesWithDeclarations": true
16
+ "access": "public"
18
17
  },
19
18
  "scripts": {
20
19
  "build": "tamagui-build",
@@ -43,7 +42,7 @@
43
42
  }
44
43
  },
45
44
  "dependencies": {
46
- "@vxrn/helpers": "0.0.4"
45
+ "@vxrn/helpers": "0.0.6"
47
46
  },
48
47
  "peerDependencies": {
49
48
  "@rocicorp/zero": "*",
@@ -8,7 +8,14 @@ import { ANYONE_CAN, definePermissions } from '@rocicorp/zero'
8
8
  import { ensure, EnsureError, objectEntries } from '@vxrn/helpers'
9
9
  import { runWithContext } from './helpers/context'
10
10
  import { prettyFormatZeroQuery } from './helpers/prettyFormatZeroQuery'
11
- import type { AuthData, MutatorContext, TableName, Transaction, Where } from './types'
11
+ import type {
12
+ AuthData,
13
+ MutatorContext,
14
+ TableName,
15
+ Transaction,
16
+ Where,
17
+ Can,
18
+ } from './types'
12
19
  import { getWhereTableName } from './where'
13
20
 
14
21
  export function createPermissions<Schema extends ZeroSchema>({
@@ -100,10 +107,7 @@ export function createPermissions<Schema extends ZeroSchema>({
100
107
  return eb.and(permissionCondition, ...primaryKeyWheres)
101
108
  }
102
109
 
103
- async function can<
104
- PWhere extends PermissionsWhere,
105
- Action extends keyof ReturnType<PWhere>,
106
- >(where: PWhere, action: Action, obj: any) {
110
+ const can: Can = async (where, action, obj) => {
107
111
  const ctx = getContext()
108
112
  const tableName = getWhereTableName(where)
109
113
  if (!tableName) {
@@ -171,41 +175,44 @@ export function createPermissions<Schema extends ZeroSchema>({
171
175
 
172
176
  const readPermissions = definePermissions<AuthData, Schema>(schema, async () => {
173
177
  const permissionsEntries = await Promise.all(
174
- objectEntries(models).map(async ([key, model]) => {
175
- return await runWithContext(
176
- {
177
- authData: { id: '', role: undefined, email: '' },
178
- } as any,
179
- () => {
180
- return [
181
- key,
182
- {
183
- row: {
184
- select: [
185
- (authData: AuthData, eb: ExpressionBuilder<any, any>) => {
186
- const out = model.permissions(eb, authData).read
187
-
188
- if (out === true) {
189
- return eb.and()
190
- }
191
-
192
- if (out === false) {
193
- return eb.cmpLit(true, '=', false)
194
- }
195
-
196
- return out
197
- },
198
- ],
199
- // we have permissions on these through our model system with custom mutators:
200
- insert: ANYONE_CAN,
201
- update: ANYONE_CAN,
202
- delete: ANYONE_CAN,
178
+ objectEntries(models)
179
+ // non permissioned models dont turn into read permissions
180
+ .filter(([_, model]) => !!model.permissions)
181
+ .map(async ([key, model]) => {
182
+ return await runWithContext(
183
+ {
184
+ authData: { id: '', role: undefined, email: '' },
185
+ } as any,
186
+ () => {
187
+ return [
188
+ key,
189
+ {
190
+ row: {
191
+ select: [
192
+ (authData: AuthData, eb: ExpressionBuilder<any, any>) => {
193
+ const out = model.permissions(eb, authData).read
194
+
195
+ if (out === true) {
196
+ return eb.and()
197
+ }
198
+
199
+ if (out === false) {
200
+ return eb.cmpLit(true, '=', false)
201
+ }
202
+
203
+ return out
204
+ },
205
+ ],
206
+ // we have permissions on these through our model system with custom mutators:
207
+ insert: ANYONE_CAN,
208
+ update: ANYONE_CAN,
209
+ delete: ANYONE_CAN,
210
+ },
203
211
  },
204
- },
205
- ]
206
- }
207
- )
208
- })
212
+ ]
213
+ }
214
+ )
215
+ })
209
216
  )
210
217
 
211
218
  const permissions = Object.fromEntries(permissionsEntries)
@@ -1,6 +1,6 @@
1
1
  import type { Row, Zero, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero'
2
2
  import { useZero, ZeroProvider, useQuery as zeroUseQuery } from '@rocicorp/zero/react'
3
- import { createEmitter, createLocalStorage, mapObject } from '@vxrn/helpers'
3
+ import { createEmitter, mapObject } from '@vxrn/helpers'
4
4
  import { createContext, use, useMemo, type ReactNode } from 'react'
5
5
  import { createPermissions } from './createPermissions'
6
6
  import { context } from './helpers/context'
@@ -39,9 +39,9 @@ export function createZeroClient<
39
39
  environment: 'client',
40
40
  })
41
41
 
42
- const permissionCache = createLocalStorage<string, boolean>('permissions-cache', {
43
- storageLimit: 24,
44
- })
42
+ // const permissionCache = createLocalStorage<string, boolean>('permissions-cache', {
43
+ // storageLimit: 24,
44
+ // })
45
45
 
46
46
  const zeroEvents = createEmitter<ZeroEvent | null>('zero', null)
47
47
 
@@ -65,14 +65,14 @@ export function createZeroClient<
65
65
  // we fallback to just table.action, to avoid flickers for now
66
66
  const keyBase = `${String(table)}${action}`
67
67
  const key = `${keyBase}${typeof objOrId === 'string' ? objOrId : JSON.stringify(objOrId)}`
68
- const cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase)
68
+ // const cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase)
69
69
  const authData = useAuthData()
70
70
  const permission = modelPermissions[table]
71
71
 
72
72
  const query = (() => {
73
73
  let baseQuery = zero.query[table].one()
74
74
 
75
- if (!enabled) {
75
+ if (!enabled || !permission) {
76
76
  return baseQuery
77
77
  }
78
78
 
@@ -88,7 +88,7 @@ export function createZeroClient<
88
88
  })()
89
89
 
90
90
  const [data, status] = useQuery(query, {
91
- enabled: Boolean(enabled && authData && objOrId),
91
+ enabled: Boolean(enabled && permission && authData && objOrId),
92
92
  })
93
93
 
94
94
  if (debug) {
@@ -1,4 +1,4 @@
1
- import type { Schema as ZeroSchema } from '@rocicorp/zero'
1
+ import type { Query, Schema as ZeroSchema } from '@rocicorp/zero'
2
2
  import type { TransactionProviderInput } from '@rocicorp/zero/pg'
3
3
  import { PostgresJSConnection, PushProcessor } from '@rocicorp/zero/pg'
4
4
  import { ZQLDatabase } from '@rocicorp/zero/server'
@@ -87,7 +87,7 @@ export function createZeroServer<
87
87
  }
88
88
  }
89
89
 
90
- const serverMutate = async (
90
+ const mutate = async (
91
91
  run: (tx: Transaction, mutators: GetZeroMutators<Models>) => Promise<void>,
92
92
  authData?: Pick<AuthData, 'email' | 'id'> & Partial<AuthData>
93
93
  ) => {
@@ -107,26 +107,14 @@ export function createZeroServer<
107
107
  can: permissions.can,
108
108
  })
109
109
 
110
- await serverTransaction(async (tx) => {
110
+ await transaction(async (tx) => {
111
111
  await run(tx, mutators)
112
112
  })
113
113
 
114
114
  await Promise.all(asyncTasks.map((t) => t()))
115
115
  }
116
116
 
117
- // shorthand but nicer for single queries
118
- // TODO should unwrap q.query
119
- const serverQuery = serverTransaction
120
-
121
- // This is needed temporarily and will be cleaned up in the future.
122
- const dummyTransactionInput: TransactionProviderInput = {
123
- clientGroupID: 'unused',
124
- clientID: 'unused',
125
- mutationID: 42,
126
- upstreamSchema: 'unused',
127
- }
128
-
129
- async function serverTransaction<
117
+ async function transaction<
130
118
  CB extends (tx: Transaction) => Promise<any>,
131
119
  Returns extends CB extends (tx: Transaction) => Promise<infer X> ? X : never,
132
120
  >(query: CB): Promise<Returns> {
@@ -139,15 +127,35 @@ export function createZeroServer<
139
127
  const output = await zeroServerDatabase.transaction(query, dummyTransactionInput)
140
128
  return output as any
141
129
  } catch (err) {
142
- console.error(`Error running serverTransaction(): ${err}`)
130
+ console.error(`Error running transaction(): ${err}`)
143
131
  throw err
144
132
  }
145
133
  }
146
134
 
135
+ type ZeroQueryFn<Response extends Query<any, any>> = (
136
+ query: Transaction['query']
137
+ ) => Promise<Response>
138
+
139
+ async function query<GetQuery extends ZeroQueryFn<any>>(
140
+ cb: GetQuery
141
+ ): Promise<ReturnType<GetQuery>> {
142
+ return await transaction(async (tx) => {
143
+ return await cb(tx.query)
144
+ })
145
+ }
146
+
147
+ // This is needed temporarily and will be cleaned up in the future.
148
+ const dummyTransactionInput: TransactionProviderInput = {
149
+ clientGroupID: 'unused',
150
+ clientID: 'unused',
151
+ mutationID: 42,
152
+ upstreamSchema: 'unused',
153
+ }
154
+
147
155
  return {
148
156
  handleMutationRequest,
149
- transaction: serverTransaction,
150
- mutate: serverMutate,
151
- query: serverQuery,
157
+ transaction,
158
+ mutate,
159
+ query,
152
160
  }
153
161
  }
@@ -1,10 +1,11 @@
1
1
  import { isClient, isServer, mapObject, time } from '@vxrn/helpers'
2
2
  import type {
3
3
  AuthData,
4
+ Can,
4
5
  GenericModels,
5
6
  GetZeroMutators,
7
+ MutatorContext,
6
8
  Transaction,
7
- Where,
8
9
  } from '../types'
9
10
  import { runWithContext } from './context'
10
11
 
@@ -18,7 +19,7 @@ export function createMutators<Models extends GenericModels>({
18
19
  }: {
19
20
  environment: 'server' | 'client'
20
21
  authData: AuthData | null
21
- can: (where: Where<any>, action: string, obj: any) => void
22
+ can: Can
22
23
  models: Models
23
24
  asyncTasks?: Array<() => Promise<void>>
24
25
  createServerActions?: () => Record<string, any>
@@ -31,7 +32,7 @@ export function createMutators<Models extends GenericModels>({
31
32
 
32
33
  function withContext<Args extends any[]>(fn: (...args: Args) => Promise<void>) {
33
34
  return async (tx: Transaction, ...args: Args): Promise<void> => {
34
- const mutationContext = {
35
+ const mutationContext: MutatorContext = {
35
36
  tx,
36
37
  authData,
37
38
  environment,
@@ -5,7 +5,7 @@ export const prettyFormatZeroQuery = (
5
5
  query: Query<any, any, any>,
6
6
  mode: 'full' | 'minimal' = 'full'
7
7
  ): string => {
8
- // @ts-expect-error
8
+ // @ts-ignore
9
9
  const astObject = query['_completeAst']?.()
10
10
 
11
11
  if (!astObject) return ''
@@ -26,8 +26,7 @@ export const useZeroDebug = (query: Query<any, any, any>, options: any, results:
26
26
  // if (DEBUG_LEVEL < 2) {
27
27
  // return
28
28
  // }
29
-
30
- // @ts-expect-error
29
+ // @ts-ignore
31
30
  const astObject = query['_completeAst']?.()
32
31
  const table = astObject.table
33
32
  const ast = JSON.stringify(astObject, null, 2)
package/src/mutations.ts CHANGED
@@ -46,11 +46,13 @@ type MutationsWithCRUD<Table extends GenericTable, Mutations extends MutationBui
46
46
  : never
47
47
  }
48
48
 
49
+ export function mutations<Mutations extends MutationBuilders>(
50
+ mutations: Mutations
51
+ ): Mutations
49
52
  export function mutations<Table extends GenericTable, Permissions extends Where>(
50
53
  table: Table,
51
54
  permissions: Permissions
52
55
  ): MutationsWithCRUD<Table, {}>
53
-
54
56
  export function mutations<
55
57
  Table extends GenericTable,
56
58
  Permissions extends Where,
@@ -60,11 +62,6 @@ export function mutations<
60
62
  permissions: Permissions,
61
63
  mutations: Mutations
62
64
  ): MutationsWithCRUD<Table, Mutations>
63
-
64
- export function mutations<Mutations extends MutationBuilder>(
65
- mutations: Mutations
66
- ): Mutations
67
-
68
65
  // TODO we should enforece the CRUD mutations obj to the callier so they get it auto-typed
69
66
  export function mutations<
70
67
  Table extends GenericTable,
package/src/types.ts CHANGED
@@ -32,6 +32,7 @@ export interface Config {}
32
32
  interface DefaultConfig {
33
33
  schema: ZeroSchema
34
34
  authData: {}
35
+ serverActions: null
35
36
  }
36
37
 
37
38
  interface FinalConfig extends Omit<DefaultConfig, keyof Config>, Config {}
@@ -48,6 +49,10 @@ export type AuthData = FinalConfig['authData'] extends Record<string, unknown>
48
49
  ? FinalConfig['authData']
49
50
  : Record<string, unknown>
50
51
 
52
+ export type ServerActions = FinalConfig['serverActions'] extends Record<string, unknown>
53
+ ? FinalConfig['serverActions']
54
+ : Record<string, unknown>
55
+
51
56
  /**
52
57
  * ➗0️⃣ END OVERRIDDEN TYPES
53
58
  */
@@ -64,7 +69,7 @@ type GetModelMutators<Models extends GenericModels> = {
64
69
  export type GenericModels = {
65
70
  [key: string]: {
66
71
  mutate: Record<string, (ctx: MutatorContext, obj?: any) => Promise<any>>
67
- permissions: Where
72
+ permissions?: Where
68
73
  }
69
74
  }
70
75
 
@@ -74,13 +79,24 @@ export type TransformMutators<T> = {
74
79
  : never
75
80
  }
76
81
 
82
+ export type Where<Table extends TableName = TableName, ReturnType = any> = (
83
+ expressionBuilder: ExpressionBuilder<Schema, Table>,
84
+ auth: AuthData | null
85
+ ) => ReturnType
86
+
87
+ export type Can = <PWhere extends Where, Action extends keyof ReturnType<PWhere>>(
88
+ where: PWhere,
89
+ action: Action,
90
+ obj: string | Record<string, unknown>
91
+ ) => Promise<void>
92
+
77
93
  export type MutatorContext = {
78
94
  tx: Transaction
79
95
  authData: AuthData | null
80
96
  environment: 'server' | 'client'
81
- serverActions?: any // TODO
97
+ serverActions?: ServerActions
82
98
  asyncTasks?: Array<() => Promise<void>>
83
- can: any // TODO
99
+ can: Can
84
100
  didCanPermissionsRun?: boolean
85
101
  }
86
102
 
@@ -108,9 +124,4 @@ export type TablePrimaryKeys<TS extends GenericTable> = TupleToUnion<
108
124
  GetTableSchema<TS>['primaryKey']
109
125
  >
110
126
 
111
- export type Where<Table extends TableName = TableName, ReturnType = any> = (
112
- expressionBuilder: ExpressionBuilder<Schema, Table>,
113
- auth: AuthData | null
114
- ) => ReturnType
115
-
116
127
  export type ZeroEvent = { type: 'error'; message: string }
@@ -0,0 +1,34 @@
1
+ import type { Condition, ExpressionBuilder, Schema as ZeroSchema } from '@rocicorp/zero';
2
+ import type { AuthData, MutatorContext, Where, Can } from './types';
3
+ export declare function createPermissions<Schema extends ZeroSchema>({ environment, schema, models, getContext, }: {
4
+ environment: 'client' | 'server';
5
+ schema: Schema;
6
+ models: any;
7
+ getContext: () => MutatorContext;
8
+ }): {
9
+ can: Can;
10
+ buildPermissionQuery: <PermissionWhere extends Where<string, Partial<Record<("read" | "write" | "insert" | "update" | "delete" | "select") | (string & {}), boolean | Condition>>>, Action extends string>(authData: AuthData | null, eb: ExpressionBuilder<any, any>, permissionWhere: PermissionWhere, action: Action, objOrId: Record<string, any> | string) => Condition;
11
+ readPermissions: Promise<{
12
+ tables: Record<string, {
13
+ row?: {
14
+ select?: ["allow", Condition][] | undefined;
15
+ insert?: ["allow", Condition][] | undefined;
16
+ update?: {
17
+ preMutation?: ["allow", Condition][] | undefined;
18
+ postMutation?: ["allow", Condition][] | undefined;
19
+ } | undefined;
20
+ delete?: ["allow", Condition][] | undefined;
21
+ } | undefined;
22
+ cell?: Record<string, {
23
+ select?: ["allow", Condition][] | undefined;
24
+ insert?: ["allow", Condition][] | undefined;
25
+ update?: {
26
+ preMutation?: ["allow", Condition][] | undefined;
27
+ postMutation?: ["allow", Condition][] | undefined;
28
+ } | undefined;
29
+ delete?: ["allow", Condition][] | undefined;
30
+ }> | undefined;
31
+ }>;
32
+ } | undefined>;
33
+ };
34
+ //# sourceMappingURL=createPermissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPermissions.d.ts","sourceRoot":"","sources":["../src/createPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAKvB,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAA0B,KAAK,EAAE,MAAM,SAAS,CAAA;AAGtF,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC3D,WAAW,EACX,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,MAAM,cAAc,CAAA;CACjC;UAgFG,MAAM,8IACN,MAAM,SAAS,MAAM,UAAU,CAAC,MAAM,CAAC,SAChC,MAAM,UAAU,MAAM,OAAO,GAAG;2BAvDvC,eAAe,8IACf,MAAM,SAAS,MAAM,YAEX,QAAQ,GAAG,IAAI,MACrB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,mBACd,eAAe,UACxB,MAAM,WAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;;;;sBAfhC,CAAC;sBAMQ,CAAC;sBAId,CAAC;+BACA,CAAC;gCAGa,CAAA;;sBAGW,CAAC;;;sBAMV,CAAC;sBAMnB,CAAA;sBACmD,CAAA;+BAClC,CAAC;gCAIhB,CAAA;;sBAGQ,CAAC;;;;EA0Id"}
1
+ {"version":3,"file":"createPermissions.d.ts","sourceRoot":"","sources":["../src/createPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAEjB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAKvB,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EAGd,KAAK,EACL,GAAG,EACJ,MAAM,SAAS,CAAA;AAGhB,wBAAgB,iBAAiB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC3D,WAAW,EACX,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,MAAM,cAAc,CAAA;CACjC;;2BA2BG,eAAe,8IACf,MAAM,SAAS,MAAM,YAEX,QAAQ,GAAG,IAAI,MACrB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,mBACd,eAAe,UACxB,MAAM,WAEL,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;;;;sBAhB7B,CAAA;sBAOV,CAAD;sBAEkB,CAAC;+BAED,CAAC;gCAKhB,CADF;;sBAGW,CAAC;;;sBAMV,CAAC;sBAGuB,CAAC;sBAIO,CAAC;+BACjC,CAAA;gCAGuB,CAAC;;sBAGO,CAAC;;;;EA4InC"}
@@ -0,0 +1,19 @@
1
+ import type { Row, Zero, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
2
+ import { useQuery as zeroUseQuery } from '@rocicorp/zero/react';
3
+ import { type ReactNode } from 'react';
4
+ import type { GenericModels, GetZeroMutators, ZeroEvent } from './types';
5
+ export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>({ schema, models, disable }: {
6
+ schema: Schema;
7
+ models: Models;
8
+ disable?: boolean;
9
+ }): {
10
+ zeroEvents: import("@vxrn/helpers").Emitter<ZeroEvent | null>;
11
+ ProvideZero: ({ children, authData, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
12
+ children: ReactNode;
13
+ authData?: any;
14
+ }) => 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;
15
+ useQuery: typeof zeroUseQuery;
16
+ usePermission: <K extends keyof Schema["tables"] & string, Action extends "insert" | "update" | "delete" | "select">(table: K, action: Action, objOrId: string | Partial<Row<Schema["tables"][K]>> | undefined, enabled?: boolean, debug?: boolean) => boolean | null;
17
+ zero: Zero<Schema, GetZeroMutators<Models>>;
18
+ };
19
+ //# sourceMappingURL=createZeroClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAyB,QAAQ,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEtF,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAOnE,OAAO,KAAK,EAAY,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAElF,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;;oDAoH/E,IAAI,CAAC,WAAW,CAAC,MAAM,0BAAe,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;QAClE,QAAQ,EAAE,SAAS,CAAA;QACnB,QAAQ,CAAC,EAAE,GAAG,CAAA;KACf;;oBAzFC,CAAC,0CACD,MAAM,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,SAEjD,CAAC,UACA,MAAM,WACL,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,yCAG9D,OAAO,GAAG,IAAI;;EA4IlB"}
1
+ {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAyB,QAAQ,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEtF,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAOnE,OAAO,KAAK,EAAY,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAElF,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;;oDAoH/E,IAAI,CAAC,WAAW,CAAC,MAAM,0BAAe,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;QAClE,QAAQ,EAAE,SAAS,CAAA;QACnB,QAAQ,CAAC,EAAE,GAAG,CAAA;KACf;;oBA/EC,CAAC,0CACD,MAAM,SAAS,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,SAEjD,CAAC,UACA,MAAM,WACL,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,yCAG9D,OAAO,GAAG,IAAI;;EAkIlB"}
@@ -0,0 +1,63 @@
1
+ import type { Schema as ZeroSchema } from '@rocicorp/zero';
2
+ import type { AsyncAction, AuthData, GenericModels, GetZeroMutators, Transaction } from './types';
3
+ export declare function createZeroServer<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ createServerActions, schema, models, }: {
4
+ schema: Schema;
5
+ models: Models;
6
+ createServerActions: () => ServerActions;
7
+ }): {
8
+ handleMutationRequest: ({ authData, request, skipAsyncTasks, }: {
9
+ authData: AuthData | null;
10
+ request: Request;
11
+ skipAsyncTasks?: boolean;
12
+ }) => Promise<{
13
+ response: {
14
+ mutations: {
15
+ id: {
16
+ id: number;
17
+ clientID: string;
18
+ };
19
+ result: {
20
+ data?: import("@rocicorp/zero").ReadonlyJSONValue | undefined;
21
+ } | {
22
+ details?: import("@rocicorp/zero").ReadonlyJSONValue | undefined;
23
+ error: "app";
24
+ } | {
25
+ details?: import("@rocicorp/zero").ReadonlyJSONValue | undefined;
26
+ error: "oooMutation" | "alreadyProcessed";
27
+ };
28
+ }[];
29
+ } | {
30
+ mutationIDs?: {
31
+ id: number;
32
+ clientID: string;
33
+ }[] | undefined;
34
+ error: "unsupportedPushVersion";
35
+ } | {
36
+ mutationIDs?: {
37
+ id: number;
38
+ clientID: string;
39
+ }[] | undefined;
40
+ error: "unsupportedSchemaVersion";
41
+ } | {
42
+ mutationIDs?: {
43
+ id: number;
44
+ clientID: string;
45
+ }[] | undefined;
46
+ error: "http";
47
+ status: number;
48
+ details: string;
49
+ } | {
50
+ mutationIDs?: {
51
+ id: number;
52
+ clientID: string;
53
+ }[] | undefined;
54
+ error: "zeroPusher";
55
+ details: string;
56
+ };
57
+ asyncTasks: AsyncAction[];
58
+ }>;
59
+ transaction: <CB extends (tx: Transaction) => Promise<any>, Returns extends CB extends (tx: Transaction) => Promise<infer X> ? X : never>(query: CB) => Promise<Returns>;
60
+ mutate: (run: (tx: Transaction, mutators: GetZeroMutators<Models>) => Promise<void>, authData?: Pick<AuthData, "email" | "id"> & Partial<AuthData>) => Promise<void>;
61
+ query: <GetQuery extends (query: Transaction["query"]) => Promise<any>>(cb: GetQuery) => Promise<ReturnType<GetQuery>>;
62
+ };
63
+ //# sourceMappingURL=createZeroServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createZeroServer.d.ts","sourceRoot":"","sources":["../src/createZeroServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAS1D,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,mBAAmB,EACnB,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,EAAE,MAAM,aAAa,CAAA;CACzC;oEAqBI;QACD,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;QACzB,OAAO,EAAE,OAAO,CAAA;QAChB,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0EC,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,EAC5C,OAAO,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,SACrE,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC;kBAzCvB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,aAC/D,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;YAsC7D,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,EAC5C,OAAO,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,SACrE,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC;EAqB/B"}
1
+ {"version":3,"file":"createZeroServer.d.ts","sourceRoot":"","sources":["../src/createZeroServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AASjE,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,mBAAmB,EACnB,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,mBAAmB,EAAE,MAAM,aAAa,CAAA;CACzC;oEAqBI;QACD,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;QACzB,OAAO,EAAE,OAAO,CAAA;QAChB,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+DC,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,EAC5C,OAAO,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,SACrE,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC;kBA7BvB,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,aAC/D,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;YA+C1C,QAAQ,iBAHpB,WAAW,CAAC,OAAO,CAAC,uBAIvB,QAAQ,KACX,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;EAoBjC"}
@@ -0,0 +1,7 @@
1
+ import type { Query, Row } from '@rocicorp/zero';
2
+ export declare function batchQuery<Q extends Query<any, any, any>, Item extends Row<Q>>(q: Q, mapper: (items: Item[]) => Promise<void>, { chunk, pause, stopAfter, }?: {
3
+ chunk: number;
4
+ pause?: number;
5
+ stopAfter?: number;
6
+ }): Promise<void>;
7
+ //# sourceMappingURL=batchQuery.d.ts.map
@@ -0,0 +1,5 @@
1
+ import type { MutatorContext } from '../types';
2
+ export declare function context(): MutatorContext;
3
+ export declare function isInZeroMutation(): boolean;
4
+ export declare function runWithContext<T>(context: MutatorContext, fn: () => T | Promise<T>): Promise<T>;
5
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1,10 @@
1
+ import type { AuthData, Can, GenericModels, GetZeroMutators } from '../types';
2
+ export declare function createMutators<Models extends GenericModels>({ environment, authData, createServerActions, asyncTasks, can, models, }: {
3
+ environment: 'server' | 'client';
4
+ authData: AuthData | null;
5
+ can: Can;
6
+ models: Models;
7
+ asyncTasks?: Array<() => Promise<void>>;
8
+ createServerActions?: () => Record<string, any>;
9
+ }): GetZeroMutators<Models>;
10
+ //# sourceMappingURL=createMutators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMutators.d.ts","sourceRoot":"","sources":["../../src/helpers/createMutators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,eAAe,EAEf,KAAK,EACN,MAAM,UAAU,CAAA;AAGjB,wBAAgB,cAAc,CAAC,MAAM,SAAS,aAAa,EAAE,EAC3D,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,UAAe,EACf,GAAG,EACH,MAAM,GACP,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC1D,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChD,GAAG,eAAe,CAAC,MAAM,CAAC,CAwG1B"}
1
+ {"version":3,"file":"createMutators.d.ts","sourceRoot":"","sources":["../../src/helpers/createMutators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,GAAG,EACH,aAAa,EACb,eAAe,EAGhB,MAAM,UAAU,CAAA;AAGjB,wBAAgB,cAAc,CAAC,MAAM,SAAS,aAAa,EAAE,EAC3D,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,UAAe,EACf,GAAG,EACH,MAAM,GACP,EAAE;IACD,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAChC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,mBAAmB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChD,GAAG,eAAe,CAAC,MAAM,CAAC,CAwG1B"}
@@ -0,0 +1,3 @@
1
+ import type { AuthData } from '../types';
2
+ export declare const ensureLoggedIn: () => AuthData;
3
+ //# sourceMappingURL=ensureLoggedIn.d.ts.map
@@ -0,0 +1,3 @@
1
+ import type { Query } from '@rocicorp/zero';
2
+ export declare const prettyFormatZeroQuery: (query: Query<any, any, any>, mode?: "full" | "minimal") => string;
3
+ //# sourceMappingURL=prettyFormatZeroQuery.d.ts.map
@@ -0,0 +1,3 @@
1
+ import type { Query } from '@rocicorp/zero';
2
+ export declare const useZeroDebug: (query: Query<any, any, any>, options: any, results: any) => void;
3
+ //# sourceMappingURL=useZeroDebug.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useZeroDebug.d.ts","sourceRoot":"","sources":["../../src/helpers/useZeroDebug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAwB3C,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,SAAS,GAAG,SAgFnF,CAAA"}
1
+ {"version":3,"file":"useZeroDebug.d.ts","sourceRoot":"","sources":["../../src/helpers/useZeroDebug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAwB3C,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,SAAS,GAAG,SA+EnF,CAAA"}
@@ -0,0 +1,10 @@
1
+ export * from './createPermissions';
2
+ export * from './helpers/batchQuery';
3
+ export * from './helpers/context';
4
+ export * from './helpers/createMutators';
5
+ export * from './helpers/ensureLoggedIn';
6
+ export * from './mutations';
7
+ export * from './where';
8
+ export * from './createZeroClient';
9
+ export type * from './types';
10
+ //# sourceMappingURL=index.d.ts.map