on-zero 0.6.11 → 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.
- package/dist/cjs/createZeroSQLiteServer.cjs +319 -0
- package/dist/cjs/createZeroSQLiteServer.native.js +440 -0
- package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -0
- package/dist/cjs/createZeroSQLiteServer.test.cjs +429 -0
- package/dist/cjs/createZeroSQLiteServer.test.native.js +466 -0
- package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -0
- package/dist/cjs/createZeroServer.cjs +20 -234
- package/dist/cjs/createZeroServer.native.js +24 -250
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/createZeroServer.test.cjs +35 -1
- package/dist/cjs/createZeroServer.test.native.js +38 -1
- package/dist/cjs/createZeroServer.test.native.js.map +1 -1
- package/dist/cjs/createZeroServerCore.cjs +362 -0
- package/dist/cjs/createZeroServerCore.native.js +389 -0
- package/dist/cjs/createZeroServerCore.native.js.map +1 -0
- package/dist/cjs/generate-lite.cjs +1 -0
- package/dist/cjs/generate-lite.native.js +1 -0
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.cjs +5 -1
- package/dist/cjs/generate-lite.test.native.js +5 -1
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.cjs +20 -11
- package/dist/cjs/generate.native.js +29 -21
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +110 -0
- package/dist/cjs/generate.test.native.js +110 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/httpPull/transport.test.cjs +44 -0
- package/dist/cjs/httpPull/transport.test.native.js +53 -0
- package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
- package/dist/cjs/httpPullTransport.cjs +4 -1
- package/dist/cjs/httpPullTransport.native.js +5 -2
- package/dist/cjs/httpPullTransport.native.js.map +1 -1
- package/dist/cjs/server.cjs +2 -1
- package/dist/cjs/syncHost.cjs +164 -0
- package/dist/cjs/syncHost.native.js +371 -0
- package/dist/cjs/syncHost.native.js.map +1 -0
- package/dist/cjs/syncHost.test.cjs +229 -0
- package/dist/cjs/syncHost.test.native.js +278 -0
- package/dist/cjs/syncHost.test.native.js.map +1 -0
- package/dist/esm/createZeroSQLiteServer.mjs +293 -0
- package/dist/esm/createZeroSQLiteServer.mjs.map +1 -0
- package/dist/esm/createZeroSQLiteServer.native.js +411 -0
- package/dist/esm/createZeroSQLiteServer.native.js.map +1 -0
- package/dist/esm/createZeroSQLiteServer.test.mjs +430 -0
- package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -0
- package/dist/esm/createZeroSQLiteServer.test.native.js +464 -0
- package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -0
- package/dist/esm/createZeroServer.mjs +17 -231
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +21 -247
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/createZeroServer.test.mjs +35 -1
- package/dist/esm/createZeroServer.test.mjs.map +1 -1
- package/dist/esm/createZeroServer.test.native.js +38 -1
- package/dist/esm/createZeroServer.test.native.js.map +1 -1
- package/dist/esm/createZeroServerCore.mjs +336 -0
- package/dist/esm/createZeroServerCore.mjs.map +1 -0
- package/dist/esm/createZeroServerCore.native.js +360 -0
- package/dist/esm/createZeroServerCore.native.js.map +1 -0
- package/dist/esm/generate-lite.mjs +1 -0
- package/dist/esm/generate-lite.mjs.map +1 -1
- package/dist/esm/generate-lite.native.js +1 -0
- package/dist/esm/generate-lite.native.js.map +1 -1
- package/dist/esm/generate-lite.test.mjs +5 -1
- package/dist/esm/generate-lite.test.mjs.map +1 -1
- package/dist/esm/generate-lite.test.native.js +5 -1
- package/dist/esm/generate-lite.test.native.js.map +1 -1
- package/dist/esm/generate.mjs +20 -11
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +29 -21
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +87 -1
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +87 -1
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/httpPull/transport.test.mjs +44 -0
- package/dist/esm/httpPull/transport.test.mjs.map +1 -1
- package/dist/esm/httpPull/transport.test.native.js +53 -0
- package/dist/esm/httpPull/transport.test.native.js.map +1 -1
- package/dist/esm/httpPullTransport.mjs +4 -1
- package/dist/esm/httpPullTransport.mjs.map +1 -1
- package/dist/esm/httpPullTransport.native.js +5 -2
- package/dist/esm/httpPullTransport.native.js.map +1 -1
- package/dist/esm/server.mjs +1 -0
- package/dist/esm/server.mjs.map +1 -1
- package/dist/esm/syncHost.mjs +138 -0
- package/dist/esm/syncHost.mjs.map +1 -0
- package/dist/esm/syncHost.native.js +342 -0
- package/dist/esm/syncHost.native.js.map +1 -0
- package/dist/esm/syncHost.test.mjs +206 -0
- package/dist/esm/syncHost.test.mjs.map +1 -0
- package/dist/esm/syncHost.test.native.js +252 -0
- package/dist/esm/syncHost.test.native.js.map +1 -0
- package/package.json +19 -3
- package/readme.md +26 -0
- package/src/createZeroSQLiteServer.test.ts +461 -0
- package/src/createZeroSQLiteServer.ts +523 -0
- package/src/createZeroServer.test.ts +39 -1
- package/src/createZeroServer.ts +35 -428
- package/src/createZeroServerCore.ts +557 -0
- package/src/generate-lite.test.ts +4 -0
- package/src/generate-lite.ts +1 -0
- package/src/generate.test.ts +87 -1
- package/src/generate.ts +29 -20
- package/src/httpPull/transport.test.ts +47 -0
- package/src/httpPullTransport.ts +15 -1
- package/src/server.ts +1 -0
- package/src/syncHost.test.ts +216 -0
- package/src/syncHost.ts +255 -0
- package/test-fixtures/server-return-types.ts +50 -0
- package/test-fixtures/tsconfig.json +13 -0
- package/types/createZeroSQLiteServer.d.ts +37 -0
- package/types/createZeroSQLiteServer.d.ts.map +1 -0
- package/types/createZeroSQLiteServer.test.d.ts +2 -0
- package/types/createZeroSQLiteServer.test.d.ts.map +1 -0
- package/types/createZeroServer.d.ts +11 -293
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/createZeroServerCore.d.ts +310 -0
- package/types/createZeroServerCore.d.ts.map +1 -0
- package/types/generate-lite.d.ts.map +1 -1
- package/types/generate.d.ts +2 -1
- package/types/generate.d.ts.map +1 -1
- package/types/httpPullTransport.d.ts +2 -0
- package/types/httpPullTransport.d.ts.map +1 -1
- package/types/server.d.ts +1 -0
- package/types/server.d.ts.map +1 -1
- package/types/syncHost.d.ts +51 -0
- package/types/syncHost.d.ts.map +1 -0
- package/types/syncHost.test.d.ts +2 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"createZeroSQLiteServer.test.d.ts","sourceRoot":"","sources":["../src/createZeroSQLiteServer.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,300 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
type
|
|
5
|
-
type
|
|
6
|
-
|
|
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
|
|
30
|
-
* When provided,
|
|
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
|
|
35
|
-
* Not required when
|
|
13
|
+
* The PostgreSQL connection string.
|
|
14
|
+
* Not required when pool is provided.
|
|
36
15
|
*/
|
|
37
16
|
database?: string;
|
|
38
|
-
|
|
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":"
|
|
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"}
|