on-zero 0.6.12 → 0.6.13

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 (131) hide show
  1. package/dist/cjs/createZeroSQLiteServer.cjs +319 -0
  2. package/dist/cjs/createZeroSQLiteServer.native.js +440 -0
  3. package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -0
  4. package/dist/cjs/createZeroSQLiteServer.test.cjs +429 -0
  5. package/dist/cjs/createZeroSQLiteServer.test.native.js +466 -0
  6. package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -0
  7. package/dist/cjs/createZeroServer.cjs +20 -234
  8. package/dist/cjs/createZeroServer.native.js +24 -250
  9. package/dist/cjs/createZeroServer.native.js.map +1 -1
  10. package/dist/cjs/createZeroServer.test.cjs +35 -1
  11. package/dist/cjs/createZeroServer.test.native.js +38 -1
  12. package/dist/cjs/createZeroServer.test.native.js.map +1 -1
  13. package/dist/cjs/createZeroServerCore.cjs +362 -0
  14. package/dist/cjs/createZeroServerCore.native.js +389 -0
  15. package/dist/cjs/createZeroServerCore.native.js.map +1 -0
  16. package/dist/cjs/generate-lite.cjs +1 -0
  17. package/dist/cjs/generate-lite.native.js +1 -0
  18. package/dist/cjs/generate-lite.native.js.map +1 -1
  19. package/dist/cjs/generate-lite.test.cjs +5 -1
  20. package/dist/cjs/generate-lite.test.native.js +5 -1
  21. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  22. package/dist/cjs/generate.cjs +20 -11
  23. package/dist/cjs/generate.native.js +29 -21
  24. package/dist/cjs/generate.native.js.map +1 -1
  25. package/dist/cjs/generate.test.cjs +110 -0
  26. package/dist/cjs/generate.test.native.js +110 -0
  27. package/dist/cjs/generate.test.native.js.map +1 -1
  28. package/dist/cjs/httpPull/transport.test.cjs +5 -4
  29. package/dist/cjs/httpPull/transport.test.native.js +6 -5
  30. package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
  31. package/dist/cjs/httpPullTransport.cjs +2 -1
  32. package/dist/cjs/httpPullTransport.native.js +3 -2
  33. package/dist/cjs/httpPullTransport.native.js.map +1 -1
  34. package/dist/cjs/server.cjs +2 -1
  35. package/dist/cjs/syncHost.cjs +164 -0
  36. package/dist/cjs/syncHost.native.js +371 -0
  37. package/dist/cjs/syncHost.native.js.map +1 -0
  38. package/dist/cjs/syncHost.test.cjs +229 -0
  39. package/dist/cjs/syncHost.test.native.js +278 -0
  40. package/dist/cjs/syncHost.test.native.js.map +1 -0
  41. package/dist/esm/createZeroSQLiteServer.mjs +293 -0
  42. package/dist/esm/createZeroSQLiteServer.mjs.map +1 -0
  43. package/dist/esm/createZeroSQLiteServer.native.js +411 -0
  44. package/dist/esm/createZeroSQLiteServer.native.js.map +1 -0
  45. package/dist/esm/createZeroSQLiteServer.test.mjs +430 -0
  46. package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -0
  47. package/dist/esm/createZeroSQLiteServer.test.native.js +464 -0
  48. package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -0
  49. package/dist/esm/createZeroServer.mjs +17 -231
  50. package/dist/esm/createZeroServer.mjs.map +1 -1
  51. package/dist/esm/createZeroServer.native.js +21 -247
  52. package/dist/esm/createZeroServer.native.js.map +1 -1
  53. package/dist/esm/createZeroServer.test.mjs +35 -1
  54. package/dist/esm/createZeroServer.test.mjs.map +1 -1
  55. package/dist/esm/createZeroServer.test.native.js +38 -1
  56. package/dist/esm/createZeroServer.test.native.js.map +1 -1
  57. package/dist/esm/createZeroServerCore.mjs +336 -0
  58. package/dist/esm/createZeroServerCore.mjs.map +1 -0
  59. package/dist/esm/createZeroServerCore.native.js +360 -0
  60. package/dist/esm/createZeroServerCore.native.js.map +1 -0
  61. package/dist/esm/generate-lite.mjs +1 -0
  62. package/dist/esm/generate-lite.mjs.map +1 -1
  63. package/dist/esm/generate-lite.native.js +1 -0
  64. package/dist/esm/generate-lite.native.js.map +1 -1
  65. package/dist/esm/generate-lite.test.mjs +5 -1
  66. package/dist/esm/generate-lite.test.mjs.map +1 -1
  67. package/dist/esm/generate-lite.test.native.js +5 -1
  68. package/dist/esm/generate-lite.test.native.js.map +1 -1
  69. package/dist/esm/generate.mjs +20 -11
  70. package/dist/esm/generate.mjs.map +1 -1
  71. package/dist/esm/generate.native.js +29 -21
  72. package/dist/esm/generate.native.js.map +1 -1
  73. package/dist/esm/generate.test.mjs +87 -1
  74. package/dist/esm/generate.test.mjs.map +1 -1
  75. package/dist/esm/generate.test.native.js +87 -1
  76. package/dist/esm/generate.test.native.js.map +1 -1
  77. package/dist/esm/httpPull/transport.test.mjs +5 -4
  78. package/dist/esm/httpPull/transport.test.mjs.map +1 -1
  79. package/dist/esm/httpPull/transport.test.native.js +6 -5
  80. package/dist/esm/httpPull/transport.test.native.js.map +1 -1
  81. package/dist/esm/httpPullTransport.mjs +2 -1
  82. package/dist/esm/httpPullTransport.mjs.map +1 -1
  83. package/dist/esm/httpPullTransport.native.js +3 -2
  84. package/dist/esm/httpPullTransport.native.js.map +1 -1
  85. package/dist/esm/server.mjs +1 -0
  86. package/dist/esm/server.mjs.map +1 -1
  87. package/dist/esm/syncHost.mjs +138 -0
  88. package/dist/esm/syncHost.mjs.map +1 -0
  89. package/dist/esm/syncHost.native.js +342 -0
  90. package/dist/esm/syncHost.native.js.map +1 -0
  91. package/dist/esm/syncHost.test.mjs +206 -0
  92. package/dist/esm/syncHost.test.mjs.map +1 -0
  93. package/dist/esm/syncHost.test.native.js +252 -0
  94. package/dist/esm/syncHost.test.native.js.map +1 -0
  95. package/package.json +19 -3
  96. package/readme.md +26 -0
  97. package/src/createZeroSQLiteServer.test.ts +461 -0
  98. package/src/createZeroSQLiteServer.ts +523 -0
  99. package/src/createZeroServer.test.ts +39 -1
  100. package/src/createZeroServer.ts +35 -428
  101. package/src/createZeroServerCore.ts +557 -0
  102. package/src/generate-lite.test.ts +4 -0
  103. package/src/generate-lite.ts +1 -0
  104. package/src/generate.test.ts +87 -1
  105. package/src/generate.ts +29 -20
  106. package/src/httpPull/transport.test.ts +6 -5
  107. package/src/httpPullTransport.ts +9 -4
  108. package/src/server.ts +1 -0
  109. package/src/syncHost.test.ts +216 -0
  110. package/src/syncHost.ts +255 -0
  111. package/test-fixtures/server-return-types.ts +50 -0
  112. package/test-fixtures/tsconfig.json +13 -0
  113. package/types/createZeroSQLiteServer.d.ts +37 -0
  114. package/types/createZeroSQLiteServer.d.ts.map +1 -0
  115. package/types/createZeroSQLiteServer.test.d.ts +2 -0
  116. package/types/createZeroSQLiteServer.test.d.ts.map +1 -0
  117. package/types/createZeroServer.d.ts +11 -293
  118. package/types/createZeroServer.d.ts.map +1 -1
  119. package/types/createZeroServerCore.d.ts +310 -0
  120. package/types/createZeroServerCore.d.ts.map +1 -0
  121. package/types/generate-lite.d.ts.map +1 -1
  122. package/types/generate.d.ts +2 -1
  123. package/types/generate.d.ts.map +1 -1
  124. package/types/httpPullTransport.d.ts +1 -0
  125. package/types/httpPullTransport.d.ts.map +1 -1
  126. package/types/server.d.ts +1 -0
  127. package/types/server.d.ts.map +1 -1
  128. package/types/syncHost.d.ts +51 -0
  129. package/types/syncHost.d.ts.map +1 -0
  130. package/types/syncHost.test.d.ts +2 -0
  131. package/types/syncHost.test.d.ts.map +1 -0
@@ -0,0 +1,50 @@
1
+ import { createZeroServer } from 'on-zero/server'
2
+ import { createZeroSQLiteServer } from 'on-zero/sqlite'
3
+
4
+ import type { Config, MutatorContext } from 'on-zero'
5
+ import type { Schema as ZeroSchema } from '@rocicorp/zero'
6
+
7
+ type AppAuthData = {
8
+ email: string
9
+ id: string
10
+ role: 'admin' | undefined
11
+ }
12
+
13
+ declare module 'on-zero' {
14
+ interface Config {
15
+ authData: AppAuthData
16
+ }
17
+ }
18
+
19
+ type Models = {
20
+ project: {
21
+ mutate: {
22
+ create: (context: MutatorContext, input: { id: string }) => Promise<void>
23
+ }
24
+ }
25
+ }
26
+
27
+ type Actions = Record<string, never>
28
+ type PostgresServer = ReturnType<typeof createZeroServer<ZeroSchema, Models, Actions>>
29
+ type SQLiteServer = ReturnType<typeof createZeroSQLiteServer<ZeroSchema, Models, Actions>>
30
+
31
+ declare const postgresServer: PostgresServer
32
+ declare const sqliteServer: SQLiteServer
33
+
34
+ const authData: Config['authData'] = {
35
+ email: 'admin@example.com',
36
+ id: 'admin',
37
+ role: 'admin',
38
+ }
39
+
40
+ postgresServer.mutate.project.create(
41
+ { id: 'pg' },
42
+ { authData: { email: authData.email, id: authData.id, role: authData.role } },
43
+ )
44
+ sqliteServer.mutate.project.create(
45
+ { id: 'sqlite' },
46
+ { authData: { email: authData.email, id: authData.id, role: authData.role } },
47
+ )
48
+
49
+ // @ts-expect-error consumer auth augmentation must remain enforced
50
+ postgresServer.mutate.project.create({ id: 'invalid' }, { authData: { id: 'admin' } })
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": ["DOM", "ESNext"],
4
+ "jsx": "react-jsx",
5
+ "module": "Preserve",
6
+ "moduleResolution": "Bundler",
7
+ "noEmit": true,
8
+ "skipLibCheck": true,
9
+ "strict": true,
10
+ "target": "ES2020"
11
+ },
12
+ "files": ["server-return-types.ts"]
13
+ }
@@ -0,0 +1,37 @@
1
+ import { type ZeroServer, type ZeroServerCommonOptions } from './createZeroServerCore';
2
+ import type { GenericModels, Transaction } from './types';
3
+ import type { AST, Schema as ZeroSchema } from '@rocicorp/zero';
4
+ import type { TransactionProviderInput } from '@rocicorp/zero/server';
5
+ export type SQLiteTransactionExecutor = {
6
+ exec(sql: string, params?: readonly unknown[]): void | Promise<void>;
7
+ query<Row extends Record<string, unknown> = Record<string, unknown>>(sql: string, params?: readonly unknown[]): Row[] | Promise<Row[]>;
8
+ queryAst<Result = unknown>(ast: AST, format: SQLiteQueryFormat, queryName?: string): Result | Promise<Result>;
9
+ };
10
+ export type SQLiteQueryFormat = {
11
+ relationships: Record<string, SQLiteQueryFormat>;
12
+ singular: boolean;
13
+ };
14
+ export type SQLiteTransactionProvider = <R>(callback: (tx: SQLiteTransactionExecutor) => Promise<R>) => Promise<R>;
15
+ type SQLiteColumn = ZeroSchema['tables'][string]['columns'][string];
16
+ export type SQLiteValueContext = {
17
+ column: SQLiteColumn;
18
+ columnName: string;
19
+ tableName: string;
20
+ };
21
+ export type ZeroSQLiteTransactionOptions<Schema extends ZeroSchema> = {
22
+ schema: Schema;
23
+ encodeValue?: (value: unknown, context: SQLiteValueContext) => unknown;
24
+ };
25
+ export type SQLiteLedgerTables = {
26
+ clients: string;
27
+ mutations: string;
28
+ };
29
+ export type CreateZeroSQLiteServerOptions<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>> = ZeroServerCommonOptions<Schema, Models, ServerActions> & {
30
+ transactionProvider: SQLiteTransactionProvider;
31
+ ledgerTables?: (upstreamSchema: string) => SQLiteLedgerTables;
32
+ encodeValue?: (value: unknown, context: SQLiteValueContext) => unknown;
33
+ };
34
+ export declare function createZeroSQLiteServer<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ encodeValue, ledgerTables, transactionProvider, ...options }: CreateZeroSQLiteServerOptions<Schema, Models, ServerActions>): ZeroServer<Schema, Models, ServerActions>;
35
+ export declare function createZeroSQLiteTransaction<Schema extends ZeroSchema>(options: ZeroSQLiteTransactionOptions<Schema>, executor: SQLiteTransactionExecutor, input?: TransactionProviderInput): Transaction;
36
+ export {};
37
+ //# sourceMappingURL=createZeroSQLiteServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createZeroSQLiteServer.d.ts","sourceRoot":"","sources":["../src/createZeroSQLiteServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createZeroSQLiteServer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createZeroSQLiteServer.test.d.ts","sourceRoot":"","sources":["../src/createZeroSQLiteServer.test.ts"],"names":[],"mappings":""}
@@ -1,300 +1,18 @@
1
- import { type NodePgTransaction } from '@rocicorp/zero/server/adapters/pg';
2
- import type { AdminRoleMode, AsyncAction, AuthData, GenericModels, MutatorContext, QueryBuilder, Transaction } from './types';
3
- import type { AnyQueryRegistry, HumanReadable, Query, Schema as ZeroSchema } from '@rocicorp/zero';
4
- type MutateAuthData = Pick<AuthData, 'email' | 'id'> & Partial<AuthData>;
5
- type MutateOptions = {
6
- authData?: MutateAuthData;
7
- awaitEffects?: boolean;
8
- };
9
- type ServerMutate<Models extends GenericModels> = {
10
- [Key in keyof Models]: {
11
- [K in keyof Models[Key]['mutate']]: Models[Key]['mutate'][K] extends (ctx: MutatorContext, arg: infer Arg) => any ? (arg: Arg, options?: MutateOptions) => Promise<void> : (options?: MutateOptions) => Promise<void>;
12
- };
13
- };
14
- export type ValidateQueryArgs = {
15
- authData: AuthData | null;
16
- queryName: string;
17
- params: unknown;
18
- };
19
- export type ValidateMutationArgs = {
20
- authData: AuthData | null;
21
- mutatorName: string;
22
- tableName: string;
23
- args: unknown;
24
- };
25
- export type ValidateQueryFn = (args: ValidateQueryArgs) => void;
26
- export type ValidateMutationFn = (args: ValidateMutationArgs) => void | Promise<void>;
27
- export declare function createZeroServer<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ createServerActions, database, pool: externalPool, schema, models, queries, mutations: mutationValidators, validateQuery, validateMutation, defaultAllowAdminRole, defaultMutateAuthData, }: {
1
+ import type { ZeroServer, ZeroServerCommonOptions } from './createZeroServerCore';
2
+ import type { GenericModels } from './types';
3
+ import type { Schema as ZeroSchema } from '@rocicorp/zero';
4
+ import type { NodePgTransaction } from '@rocicorp/zero/server/adapters/pg';
5
+ export type { ValidateMutationArgs, ValidateMutationFn, ValidateQueryArgs, ValidateQueryFn, } from './createZeroServerCore';
6
+ export declare function createZeroServer<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ database, pool: externalPool, ...options }: ZeroServerCommonOptions<Schema, Models, ServerActions> & {
28
7
  /**
29
- * Optional pre-built Pool-like object (e.g. PGlite wrapper for Cloudflare Workers).
30
- * When provided, `database` is not required.
8
+ * Optional pre-built Pool-like object, such as a PGlite wrapper.
9
+ * When provided, database is not required.
31
10
  */
32
11
  pool?: NodePgTransaction;
33
12
  /**
34
- * The DB connection string, same as ZERO_UPSTREAM_DB.
35
- * Not required when `pool` is provided.
13
+ * The PostgreSQL connection string.
14
+ * Not required when pool is provided.
36
15
  */
37
16
  database?: string;
38
- schema: Schema;
39
- models: Models;
40
- createServerActions: () => ServerActions;
41
- queries?: AnyQueryRegistry;
42
- /**
43
- * Generated valibot validators for mutation args, keyed by model.mutationName.
44
- * Pass the `mutationValidators` export from generated syncedMutations.ts.
45
- * Args are auto-validated before running the mutation.
46
- */
47
- mutations?: Record<string, Record<string, any>>;
48
- /**
49
- * Hook to validate queries before execution. Throw to reject.
50
- * Must be synchronous.
51
- */
52
- validateQuery?: ValidateQueryFn;
53
- /**
54
- * Hook to validate mutations before execution. Throw to reject.
55
- */
56
- validateMutation?: ValidateMutationFn;
57
- /**
58
- * Admin role bypass for permissions:
59
- * - 'all': admin bypasses both query and mutation permissions (default)
60
- * - 'queries': admin bypasses only query permissions
61
- * - 'mutations': admin bypasses only mutation permissions
62
- * - 'off': admin has no special bypass
63
- */
64
- defaultAllowAdminRole?: AdminRoleMode;
65
- /**
66
- * Default authData used by zeroServer.mutate when no authData is provided
67
- * and none is available from mutation context or auth scope.
68
- * Defaults to {}.
69
- */
70
- defaultMutateAuthData?: MutateAuthData;
71
- }): {
72
- handleMutationRequest: ({ authData, request, skipAsyncTasks, }: {
73
- authData: AuthData | null;
74
- request: Request;
75
- skipAsyncTasks?: boolean;
76
- }) => Promise<{
77
- response: {
78
- userID?: string | null | undefined;
79
- kind: "MutateResponse";
80
- mutations: {
81
- id: {
82
- id: number;
83
- clientID: string;
84
- };
85
- result: {
86
- data?: import("drizzle-zero").ReadonlyJSONValue | undefined;
87
- } | {
88
- message?: string | undefined;
89
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
90
- error: "app";
91
- } | {
92
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
93
- error: "oooMutation" | "alreadyProcessed";
94
- };
95
- }[];
96
- } | {
97
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
98
- message: string;
99
- kind: "PushFailed";
100
- mutationIDs: {
101
- id: number;
102
- clientID: string;
103
- }[];
104
- origin: "server";
105
- reason: "parse" | "oooMutation" | "database" | "internal" | "unsupportedPushVersion";
106
- } | {
107
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
108
- bodyPreview?: string | undefined;
109
- message: string;
110
- kind: "PushFailed";
111
- mutationIDs: {
112
- id: number;
113
- clientID: string;
114
- }[];
115
- origin: "zeroCache";
116
- reason: "http";
117
- status: number;
118
- } | {
119
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
120
- message: string;
121
- kind: "PushFailed";
122
- mutationIDs: {
123
- id: number;
124
- clientID: string;
125
- }[];
126
- origin: "zeroCache";
127
- reason: "parse" | "timeout" | "internal";
128
- } | {
129
- mutations: {
130
- id: {
131
- id: number;
132
- clientID: string;
133
- };
134
- result: {
135
- data?: import("drizzle-zero").ReadonlyJSONValue | undefined;
136
- } | {
137
- message?: string | undefined;
138
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
139
- error: "app";
140
- } | {
141
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
142
- error: "oooMutation" | "alreadyProcessed";
143
- };
144
- }[];
145
- } | {
146
- mutationIDs?: {
147
- id: number;
148
- clientID: string;
149
- }[] | undefined;
150
- error: "unsupportedPushVersion";
151
- } | {
152
- mutationIDs?: {
153
- id: number;
154
- clientID: string;
155
- }[] | undefined;
156
- error: "unsupportedSchemaVersion";
157
- } | {
158
- mutationIDs?: {
159
- id: number;
160
- clientID: string;
161
- }[] | undefined;
162
- error: "http";
163
- status: number;
164
- details: string;
165
- } | {
166
- mutationIDs?: {
167
- id: number;
168
- clientID: string;
169
- }[] | undefined;
170
- error: "zeroPusher";
171
- details: string;
172
- } | {
173
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
174
- message: string;
175
- kind: "PushFailed";
176
- mutationIDs: {
177
- id: number;
178
- clientID: string;
179
- }[];
180
- origin: "server";
181
- reason: "parse" | "oooMutation" | "database" | "internal" | "unsupportedPushVersion";
182
- } | {
183
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
184
- bodyPreview?: string | undefined;
185
- message: string;
186
- kind: "PushFailed";
187
- mutationIDs: {
188
- id: number;
189
- clientID: string;
190
- }[];
191
- origin: "zeroCache";
192
- reason: "http";
193
- status: number;
194
- } | {
195
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
196
- message: string;
197
- kind: "PushFailed";
198
- mutationIDs: {
199
- id: number;
200
- clientID: string;
201
- }[];
202
- origin: "zeroCache";
203
- reason: "parse" | "timeout" | "internal";
204
- };
205
- asyncTasks: AsyncAction[];
206
- }>;
207
- handleQueryRequest: ({ authData, request, }: {
208
- authData: AuthData | null;
209
- request: Request;
210
- }) => Promise<{
211
- response: {
212
- userID?: string | null | undefined;
213
- kind: "QueryResponse";
214
- queries: ({
215
- id: string;
216
- name: string;
217
- ast: import("@rocicorp/zero").AST;
218
- } | {
219
- message?: string | undefined;
220
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
221
- error: "app";
222
- id: string;
223
- name: string;
224
- } | {
225
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
226
- error: "parse";
227
- id: string;
228
- name: string;
229
- message: string;
230
- })[];
231
- } | {
232
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
233
- message: string;
234
- kind: "TransformFailed";
235
- queryIDs: string[];
236
- origin: "server";
237
- reason: "parse" | "database" | "internal";
238
- } | {
239
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
240
- bodyPreview?: string | undefined;
241
- message: string;
242
- kind: "TransformFailed";
243
- queryIDs: string[];
244
- origin: "zeroCache";
245
- reason: "http";
246
- status: number;
247
- } | {
248
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
249
- message: string;
250
- kind: "TransformFailed";
251
- queryIDs: string[];
252
- origin: "zeroCache";
253
- reason: "parse" | "timeout" | "internal";
254
- } | ["transformed", ({
255
- id: string;
256
- name: string;
257
- ast: import("@rocicorp/zero").AST;
258
- } | {
259
- message?: string | undefined;
260
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
261
- error: "app";
262
- id: string;
263
- name: string;
264
- } | {
265
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
266
- error: "parse";
267
- id: string;
268
- name: string;
269
- message: string;
270
- })[]] | ["transformFailed", {
271
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
272
- message: string;
273
- kind: "TransformFailed";
274
- queryIDs: string[];
275
- origin: "server";
276
- reason: "parse" | "database" | "internal";
277
- } | {
278
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
279
- bodyPreview?: string | undefined;
280
- message: string;
281
- kind: "TransformFailed";
282
- queryIDs: string[];
283
- origin: "zeroCache";
284
- reason: "http";
285
- status: number;
286
- } | {
287
- details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
288
- message: string;
289
- kind: "TransformFailed";
290
- queryIDs: string[];
291
- origin: "zeroCache";
292
- reason: "parse" | "timeout" | "internal";
293
- }];
294
- }>;
295
- transaction: <CB extends (tx: Transaction) => Promise<any>, Returns extends CB extends (tx: Transaction) => Promise<infer X> ? X : never>(query: CB) => Promise<Returns>;
296
- mutate: ServerMutate<Models>;
297
- query: <R>(cb: (q: QueryBuilder) => Query<any, Schema, R>, authData?: AuthData | null) => Promise<HumanReadable<R>>;
298
- };
299
- export {};
17
+ }): ZeroServer<Schema, Models, ServerActions>;
300
18
  //# sourceMappingURL=createZeroServer.d.ts.map
@@ -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":"AAMA,OAAO,KAAK,EAEV,UAAU,EACV,uBAAuB,EAExB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAE/B,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,QAAQ,EACR,IAAI,EAAE,YAAY,EAClB,GAAG,OAAO,EACX,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG;IAC1D;;;OAGG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CA8B5C"}