on-zero 0.6.13 → 0.6.15
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/createSchemaFromDrizzle.cjs +4 -4
- package/dist/cjs/createSchemaFromDrizzle.native.js +4 -4
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createZeroDirectServer.cjs +279 -0
- package/dist/cjs/createZeroDirectServer.native.js +292 -0
- package/dist/cjs/createZeroDirectServer.native.js.map +1 -0
- package/dist/cjs/createZeroSQLiteServer.cjs +8 -277
- package/dist/cjs/createZeroSQLiteServer.native.js +8 -390
- package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -1
- package/dist/cjs/createZeroSQLiteServer.test.cjs +30 -3
- package/dist/cjs/createZeroSQLiteServer.test.native.js +31 -3
- package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/cjs/createZeroServerCore.cjs +20 -205
- package/dist/cjs/createZeroServerCore.native.js +19 -213
- package/dist/cjs/createZeroServerCore.native.js.map +1 -1
- package/dist/cjs/generate.cjs +10 -3
- package/dist/cjs/generate.native.js +10 -3
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +39 -0
- package/dist/cjs/generate.test.native.js +39 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/sqliteRuntime.cjs +318 -0
- package/dist/cjs/sqliteRuntime.native.js +438 -0
- package/dist/cjs/sqliteRuntime.native.js.map +1 -0
- package/dist/cjs/syncHost.cjs +16 -9
- package/dist/cjs/syncHost.native.js +21 -12
- package/dist/cjs/syncHost.native.js.map +1 -1
- package/dist/cjs/syncHost.test.cjs +13 -2
- package/dist/cjs/syncHost.test.native.js +14 -2
- package/dist/cjs/syncHost.test.native.js.map +1 -1
- package/dist/esm/createSchemaFromDrizzle.mjs +2 -2
- package/dist/esm/createSchemaFromDrizzle.native.js +2 -2
- package/dist/esm/createZeroDirectServer.mjs +251 -0
- package/dist/esm/createZeroDirectServer.mjs.map +1 -0
- package/dist/esm/createZeroDirectServer.native.js +261 -0
- package/dist/esm/createZeroDirectServer.native.js.map +1 -0
- package/dist/esm/createZeroSQLiteServer.mjs +3 -272
- package/dist/esm/createZeroSQLiteServer.mjs.map +1 -1
- package/dist/esm/createZeroSQLiteServer.native.js +3 -385
- package/dist/esm/createZeroSQLiteServer.native.js.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.mjs +30 -3
- package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.native.js +31 -3
- package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/esm/createZeroServerCore.mjs +18 -202
- package/dist/esm/createZeroServerCore.mjs.map +1 -1
- package/dist/esm/createZeroServerCore.native.js +18 -211
- package/dist/esm/createZeroServerCore.native.js.map +1 -1
- package/dist/esm/generate.mjs +10 -3
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +10 -3
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +39 -1
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +39 -1
- package/dist/esm/generate.test.native.js.map +1 -1
- package/dist/esm/sqliteRuntime.mjs +289 -0
- package/dist/esm/sqliteRuntime.mjs.map +1 -0
- package/dist/esm/sqliteRuntime.native.js +406 -0
- package/dist/esm/sqliteRuntime.native.js.map +1 -0
- package/dist/esm/syncHost.mjs +14 -7
- package/dist/esm/syncHost.mjs.map +1 -1
- package/dist/esm/syncHost.native.js +19 -10
- package/dist/esm/syncHost.native.js.map +1 -1
- package/dist/esm/syncHost.test.mjs +13 -2
- package/dist/esm/syncHost.test.mjs.map +1 -1
- package/dist/esm/syncHost.test.native.js +14 -2
- package/dist/esm/syncHost.test.native.js.map +1 -1
- package/package.json +5 -6
- package/src/createSchemaFromDrizzle.ts +2 -2
- package/src/createZeroDirectServer.ts +427 -0
- package/src/createZeroSQLiteServer.test.ts +20 -5
- package/src/createZeroSQLiteServer.ts +14 -481
- package/src/createZeroServerCore.ts +32 -337
- package/src/generate.test.ts +57 -1
- package/src/generate.ts +23 -3
- package/src/sqliteRuntime.ts +512 -0
- package/src/syncHost.test.ts +10 -3
- package/src/syncHost.ts +49 -12
- package/test-fixtures/server-return-types.ts +8 -1
- package/types/createSchemaFromDrizzle.d.ts +2 -2
- package/types/createSchemaFromDrizzle.d.ts.map +1 -1
- package/types/createZeroDirectServer.d.ts +80 -0
- package/types/createZeroDirectServer.d.ts.map +1 -0
- package/types/createZeroSQLiteServer.d.ts +5 -30
- package/types/createZeroSQLiteServer.d.ts.map +1 -1
- package/types/createZeroServerCore.d.ts +30 -87
- package/types/createZeroServerCore.d.ts.map +1 -1
- package/types/generate.d.ts.map +1 -1
- package/types/sqliteRuntime.d.ts +71 -0
- package/types/sqliteRuntime.d.ts.map +1 -0
- package/types/syncHost.d.ts +10 -19
- package/types/syncHost.d.ts.map +1 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { createPermissions } from './createPermissions';
|
|
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
|
+
import type { Database } from '@rocicorp/zero/server';
|
|
5
|
+
type MutateAuthData = Pick<AuthData, 'email' | 'id'> & Partial<AuthData>;
|
|
6
|
+
export type MutateOptions = {
|
|
7
|
+
authData?: MutateAuthData;
|
|
8
|
+
awaitEffects?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type ServerMutate<Models extends GenericModels> = {
|
|
11
|
+
[Key in keyof Models]: {
|
|
12
|
+
[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>;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export type ValidateQueryArgs = {
|
|
16
|
+
authData: AuthData | null;
|
|
17
|
+
queryName: string;
|
|
18
|
+
params: unknown;
|
|
19
|
+
};
|
|
20
|
+
export type ValidateMutationArgs = {
|
|
21
|
+
authData: AuthData | null;
|
|
22
|
+
mutatorName: string;
|
|
23
|
+
tableName: string;
|
|
24
|
+
args: unknown;
|
|
25
|
+
};
|
|
26
|
+
export type ValidateQueryFn = (args: ValidateQueryArgs) => void;
|
|
27
|
+
export type ValidateMutationFn = (args: ValidateMutationArgs) => void | Promise<void>;
|
|
28
|
+
export type ServerQueryResolverOptions = {
|
|
29
|
+
authData: AuthData | null;
|
|
30
|
+
name: string;
|
|
31
|
+
args: unknown;
|
|
32
|
+
queries: AnyQueryRegistry;
|
|
33
|
+
permissions: ReturnType<typeof createPermissions>;
|
|
34
|
+
validateQuery?: ValidateQueryFn;
|
|
35
|
+
};
|
|
36
|
+
export declare function resolveServerQuery({ authData, name, args, queries, permissions, validateQuery, }: ServerQueryResolverOptions): any;
|
|
37
|
+
export type TransactionAttemptLifecycle = {
|
|
38
|
+
beginAttempt(): void;
|
|
39
|
+
completeAttempt(): void;
|
|
40
|
+
rollbackAttempt(): void;
|
|
41
|
+
commitTransaction(): void;
|
|
42
|
+
rollbackTransaction(): void;
|
|
43
|
+
};
|
|
44
|
+
export type ZeroServerDatabase = Database<Transaction>;
|
|
45
|
+
export type ZeroServerCommonOptions<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>> = {
|
|
46
|
+
schema: Schema;
|
|
47
|
+
models: Models;
|
|
48
|
+
createServerActions: () => ServerActions;
|
|
49
|
+
queries?: AnyQueryRegistry;
|
|
50
|
+
/** generated validators keyed by model and mutation name */
|
|
51
|
+
mutations?: Record<string, Record<string, any>>;
|
|
52
|
+
/** synchronous query authorization hook; throw to reject */
|
|
53
|
+
validateQuery?: ValidateQueryFn;
|
|
54
|
+
/** mutation authorization hook; throw to reject */
|
|
55
|
+
validateMutation?: ValidateMutationFn;
|
|
56
|
+
/** controls which operations the admin role bypasses */
|
|
57
|
+
defaultAllowAdminRole?: AdminRoleMode;
|
|
58
|
+
/** auth data used by direct server mutations when no scope provides it */
|
|
59
|
+
defaultMutateAuthData?: MutateAuthData;
|
|
60
|
+
};
|
|
61
|
+
export type ZeroDirectServerOptions<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>> = ZeroServerCommonOptions<Schema, Models, ServerActions> & {
|
|
62
|
+
createDatabase: () => ZeroServerDatabase;
|
|
63
|
+
};
|
|
64
|
+
export type ZeroDirectServer<Schema extends ZeroSchema, Models extends GenericModels> = {
|
|
65
|
+
transaction: <CB extends (tx: Transaction) => Promise<any>, Returns extends CB extends (tx: Transaction) => Promise<infer X> ? X : never>(query: CB) => Promise<Returns>;
|
|
66
|
+
mutate: ServerMutate<Models>;
|
|
67
|
+
query: <R>(cb: (q: QueryBuilder) => Query<any, Schema, R>, authData?: AuthData | null) => Promise<HumanReadable<R>>;
|
|
68
|
+
};
|
|
69
|
+
export declare function createAsyncTaskCollector(): {
|
|
70
|
+
committed: AsyncAction[];
|
|
71
|
+
lifecycle: TransactionAttemptLifecycle;
|
|
72
|
+
queue: AsyncAction[];
|
|
73
|
+
};
|
|
74
|
+
export declare function createZeroDirectServerRuntime<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ createDatabase, createServerActions, defaultAllowAdminRole, defaultMutateAuthData, models, mutations: mutationValidators, queries, schema, validateMutation, validateQuery, }: ZeroDirectServerOptions<Schema, Models, ServerActions>): {
|
|
75
|
+
permissions: ReturnType<typeof createPermissions<Schema>>;
|
|
76
|
+
server: ZeroDirectServer<Schema, Models>;
|
|
77
|
+
};
|
|
78
|
+
export declare function createZeroDirectServer<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>(options: ZeroDirectServerOptions<Schema, Models, ServerActions>): ZeroDirectServer<Schema, Models>;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=createZeroDirectServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createZeroDirectServer.d.ts","sourceRoot":"","sources":["../src/createZeroDirectServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,12 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
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
|
-
};
|
|
1
|
+
import { type SQLiteLedgerTables, type SQLiteTransactionProvider, type SQLiteValueContext } from './sqliteRuntime';
|
|
2
|
+
import type { ZeroServer, ZeroServerCommonOptions } from './createZeroServerCore';
|
|
3
|
+
import type { GenericModels } from './types';
|
|
4
|
+
import type { Schema as ZeroSchema } from '@rocicorp/zero';
|
|
29
5
|
export type CreateZeroSQLiteServerOptions<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>> = ZeroServerCommonOptions<Schema, Models, ServerActions> & {
|
|
30
6
|
transactionProvider: SQLiteTransactionProvider;
|
|
31
7
|
ledgerTables?: (upstreamSchema: string) => SQLiteLedgerTables;
|
|
32
8
|
encodeValue?: (value: unknown, context: SQLiteValueContext) => unknown;
|
|
33
9
|
};
|
|
34
10
|
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
|
|
36
|
-
export {};
|
|
11
|
+
export * from './sqliteRuntime';
|
|
37
12
|
//# sourceMappingURL=createZeroSQLiteServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createZeroSQLiteServer.d.ts","sourceRoot":"","sources":["../src/createZeroSQLiteServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createZeroSQLiteServer.d.ts","sourceRoot":"","sources":["../src/createZeroSQLiteServer.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACxB,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE1D,MAAM,MAAM,6BAA6B,CACvC,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3C,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG;IAC3D,mBAAmB,EAAE,yBAAyB,CAAA;IAC9C,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,kBAAkB,CAAA;IAC7D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAA;CACvE,CAAA;AAED,wBAAgB,sBAAsB,CACpC,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,WAA+B,EAC/B,YAAkC,EAClC,mBAAmB,EACnB,GAAG,OAAO,EACX,EAAE,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,UAAU,CAC1E,MAAM,EACN,MAAM,EACN,aAAa,CACd,CAeA;AAED,cAAc,iBAAiB,CAAA"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type { Database } from '@rocicorp/zero/server';
|
|
5
|
-
type MutateAuthData = Pick<AuthData, 'email' | 'id'> & Partial<AuthData>;
|
|
6
|
-
type MutateOptions = {
|
|
7
|
-
authData?: MutateAuthData;
|
|
8
|
-
awaitEffects?: boolean;
|
|
9
|
-
};
|
|
1
|
+
import { type ZeroServerCommonOptions, type ZeroServerDatabase } from './createZeroDirectServer';
|
|
2
|
+
import type { AuthData, GenericModels } from './types';
|
|
3
|
+
import type { Schema as ZeroSchema } from '@rocicorp/zero';
|
|
10
4
|
type AlreadyProcessedMutation = {
|
|
11
5
|
id: {
|
|
12
6
|
clientID: string;
|
|
@@ -17,67 +11,19 @@ type AlreadyProcessedMutation = {
|
|
|
17
11
|
details?: unknown;
|
|
18
12
|
};
|
|
19
13
|
};
|
|
20
|
-
type ServerMutate<Models extends GenericModels> = {
|
|
21
|
-
[Key in keyof Models]: {
|
|
22
|
-
[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>;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
export type ValidateQueryArgs = {
|
|
26
|
-
authData: AuthData | null;
|
|
27
|
-
queryName: string;
|
|
28
|
-
params: unknown;
|
|
29
|
-
};
|
|
30
|
-
export type ValidateMutationArgs = {
|
|
31
|
-
authData: AuthData | null;
|
|
32
|
-
mutatorName: string;
|
|
33
|
-
tableName: string;
|
|
34
|
-
args: unknown;
|
|
35
|
-
};
|
|
36
|
-
export type ValidateQueryFn = (args: ValidateQueryArgs) => void;
|
|
37
|
-
export type ValidateMutationFn = (args: ValidateMutationArgs) => void | Promise<void>;
|
|
38
|
-
export type ServerQueryResolverOptions = {
|
|
39
|
-
authData: AuthData | null;
|
|
40
|
-
name: string;
|
|
41
|
-
args: unknown;
|
|
42
|
-
queries: AnyQueryRegistry;
|
|
43
|
-
permissions: ReturnType<typeof createPermissions>;
|
|
44
|
-
validateQuery?: ValidateQueryFn;
|
|
45
|
-
};
|
|
46
|
-
export declare function resolveServerQuery({ authData, name, args, queries, permissions, validateQuery, }: ServerQueryResolverOptions): any;
|
|
47
|
-
export type TransactionAttemptLifecycle = {
|
|
48
|
-
beginAttempt(): void;
|
|
49
|
-
completeAttempt(): void;
|
|
50
|
-
rollbackAttempt(): void;
|
|
51
|
-
commitTransaction(): void;
|
|
52
|
-
rollbackTransaction(): void;
|
|
53
|
-
};
|
|
54
|
-
export type ZeroServerDatabase = Database<Transaction>;
|
|
55
14
|
export type PersistAlreadyProcessedArgs = {
|
|
56
15
|
clientGroupID: string;
|
|
57
16
|
mutations: AlreadyProcessedMutation[];
|
|
58
17
|
upstreamSchema: string;
|
|
59
18
|
};
|
|
60
|
-
export type ZeroServerCommonOptions<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>> = {
|
|
61
|
-
schema: Schema;
|
|
62
|
-
models: Models;
|
|
63
|
-
createServerActions: () => ServerActions;
|
|
64
|
-
queries?: AnyQueryRegistry;
|
|
65
|
-
/** generated validators keyed by model and mutation name */
|
|
66
|
-
mutations?: Record<string, Record<string, any>>;
|
|
67
|
-
/** synchronous query authorization hook; throw to reject */
|
|
68
|
-
validateQuery?: ValidateQueryFn;
|
|
69
|
-
/** mutation authorization hook; throw to reject */
|
|
70
|
-
validateMutation?: ValidateMutationFn;
|
|
71
|
-
/** controls which operations the admin role bypasses */
|
|
72
|
-
defaultAllowAdminRole?: AdminRoleMode;
|
|
73
|
-
/** auth data used by direct server mutations when no scope provides it */
|
|
74
|
-
defaultMutateAuthData?: MutateAuthData;
|
|
75
|
-
};
|
|
76
19
|
type ZeroServerCoreOptions<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>> = ZeroServerCommonOptions<Schema, Models, ServerActions> & {
|
|
77
20
|
createDatabase: () => ZeroServerDatabase;
|
|
78
21
|
persistAlreadyProcessed?: (args: PersistAlreadyProcessedArgs) => Promise<void>;
|
|
79
22
|
};
|
|
80
23
|
export declare function createZeroServerCore<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ createDatabase, createServerActions, defaultAllowAdminRole, defaultMutateAuthData, models, mutations: mutationValidators, persistAlreadyProcessed, queries, schema, validateMutation, validateQuery, }: ZeroServerCoreOptions<Schema, Models, ServerActions>): {
|
|
24
|
+
transaction: <CB extends (tx: import("./types").Transaction) => Promise<any>, Returns extends CB extends (tx: import("./types").Transaction) => Promise<infer X> ? X : never>(query: CB) => Promise<Returns>;
|
|
25
|
+
mutate: import("./createZeroDirectServer").ServerMutate<Models>;
|
|
26
|
+
query: <R>(cb: (q: import("./types").QueryBuilder) => import("@rocicorp/zero").Query<any, Schema, R>, authData?: {} | null | undefined) => Promise<import("@rocicorp/zero").HumanReadable<R>>;
|
|
81
27
|
handleMutationRequest: ({ authData, request, skipAsyncTasks, }: {
|
|
82
28
|
authData: AuthData | null;
|
|
83
29
|
request: Request;
|
|
@@ -92,18 +38,18 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
92
38
|
clientID: string;
|
|
93
39
|
};
|
|
94
40
|
result: {
|
|
95
|
-
data?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
41
|
+
data?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
96
42
|
} | {
|
|
97
43
|
message?: string | undefined;
|
|
98
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
44
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
99
45
|
error: "app";
|
|
100
46
|
} | {
|
|
101
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
47
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
102
48
|
error: "oooMutation" | "alreadyProcessed";
|
|
103
49
|
};
|
|
104
50
|
}[];
|
|
105
51
|
} | {
|
|
106
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
52
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
107
53
|
message: string;
|
|
108
54
|
kind: "PushFailed";
|
|
109
55
|
mutationIDs: {
|
|
@@ -113,7 +59,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
113
59
|
origin: "server";
|
|
114
60
|
reason: "parse" | "oooMutation" | "database" | "internal" | "unsupportedPushVersion";
|
|
115
61
|
} | {
|
|
116
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
62
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
117
63
|
bodyPreview?: string | undefined;
|
|
118
64
|
message: string;
|
|
119
65
|
kind: "PushFailed";
|
|
@@ -125,7 +71,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
125
71
|
reason: "http";
|
|
126
72
|
status: number;
|
|
127
73
|
} | {
|
|
128
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
74
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
129
75
|
message: string;
|
|
130
76
|
kind: "PushFailed";
|
|
131
77
|
mutationIDs: {
|
|
@@ -141,13 +87,13 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
141
87
|
clientID: string;
|
|
142
88
|
};
|
|
143
89
|
result: {
|
|
144
|
-
data?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
90
|
+
data?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
145
91
|
} | {
|
|
146
92
|
message?: string | undefined;
|
|
147
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
93
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
148
94
|
error: "app";
|
|
149
95
|
} | {
|
|
150
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
96
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
151
97
|
error: "oooMutation" | "alreadyProcessed";
|
|
152
98
|
};
|
|
153
99
|
}[];
|
|
@@ -179,7 +125,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
179
125
|
error: "zeroPusher";
|
|
180
126
|
details: string;
|
|
181
127
|
} | {
|
|
182
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
128
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
183
129
|
message: string;
|
|
184
130
|
kind: "PushFailed";
|
|
185
131
|
mutationIDs: {
|
|
@@ -189,7 +135,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
189
135
|
origin: "server";
|
|
190
136
|
reason: "parse" | "oooMutation" | "database" | "internal" | "unsupportedPushVersion";
|
|
191
137
|
} | {
|
|
192
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
138
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
193
139
|
bodyPreview?: string | undefined;
|
|
194
140
|
message: string;
|
|
195
141
|
kind: "PushFailed";
|
|
@@ -201,7 +147,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
201
147
|
reason: "http";
|
|
202
148
|
status: number;
|
|
203
149
|
} | {
|
|
204
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
150
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
205
151
|
message: string;
|
|
206
152
|
kind: "PushFailed";
|
|
207
153
|
mutationIDs: {
|
|
@@ -211,7 +157,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
211
157
|
origin: "zeroCache";
|
|
212
158
|
reason: "parse" | "timeout" | "internal";
|
|
213
159
|
};
|
|
214
|
-
asyncTasks: AsyncAction[];
|
|
160
|
+
asyncTasks: import("./types").AsyncAction[];
|
|
215
161
|
}>;
|
|
216
162
|
handleQueryRequest: ({ authData, request, }: {
|
|
217
163
|
authData: AuthData | null;
|
|
@@ -226,26 +172,26 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
226
172
|
ast: import("@rocicorp/zero").AST;
|
|
227
173
|
} | {
|
|
228
174
|
message?: string | undefined;
|
|
229
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
175
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
230
176
|
error: "app";
|
|
231
177
|
id: string;
|
|
232
178
|
name: string;
|
|
233
179
|
} | {
|
|
234
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
180
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
235
181
|
error: "parse";
|
|
236
182
|
id: string;
|
|
237
183
|
name: string;
|
|
238
184
|
message: string;
|
|
239
185
|
})[];
|
|
240
186
|
} | {
|
|
241
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
187
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
242
188
|
message: string;
|
|
243
189
|
kind: "TransformFailed";
|
|
244
190
|
queryIDs: string[];
|
|
245
191
|
origin: "server";
|
|
246
192
|
reason: "parse" | "database" | "internal";
|
|
247
193
|
} | {
|
|
248
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
194
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
249
195
|
bodyPreview?: string | undefined;
|
|
250
196
|
message: string;
|
|
251
197
|
kind: "TransformFailed";
|
|
@@ -254,7 +200,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
254
200
|
reason: "http";
|
|
255
201
|
status: number;
|
|
256
202
|
} | {
|
|
257
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
203
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
258
204
|
message: string;
|
|
259
205
|
kind: "TransformFailed";
|
|
260
206
|
queryIDs: string[];
|
|
@@ -266,25 +212,25 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
266
212
|
ast: import("@rocicorp/zero").AST;
|
|
267
213
|
} | {
|
|
268
214
|
message?: string | undefined;
|
|
269
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
215
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
270
216
|
error: "app";
|
|
271
217
|
id: string;
|
|
272
218
|
name: string;
|
|
273
219
|
} | {
|
|
274
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
220
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
275
221
|
error: "parse";
|
|
276
222
|
id: string;
|
|
277
223
|
name: string;
|
|
278
224
|
message: string;
|
|
279
225
|
})[]] | ["transformFailed", {
|
|
280
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
226
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
281
227
|
message: string;
|
|
282
228
|
kind: "TransformFailed";
|
|
283
229
|
queryIDs: string[];
|
|
284
230
|
origin: "server";
|
|
285
231
|
reason: "parse" | "database" | "internal";
|
|
286
232
|
} | {
|
|
287
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
233
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
288
234
|
bodyPreview?: string | undefined;
|
|
289
235
|
message: string;
|
|
290
236
|
kind: "TransformFailed";
|
|
@@ -293,7 +239,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
293
239
|
reason: "http";
|
|
294
240
|
status: number;
|
|
295
241
|
} | {
|
|
296
|
-
details?: import("drizzle-zero").ReadonlyJSONValue | undefined;
|
|
242
|
+
details?: import("drizzle-zero-sqlite").ReadonlyJSONValue | undefined;
|
|
297
243
|
message: string;
|
|
298
244
|
kind: "TransformFailed";
|
|
299
245
|
queryIDs: string[];
|
|
@@ -301,10 +247,7 @@ export declare function createZeroServerCore<Schema extends ZeroSchema, Models e
|
|
|
301
247
|
reason: "parse" | "timeout" | "internal";
|
|
302
248
|
}];
|
|
303
249
|
}>;
|
|
304
|
-
transaction: <CB extends (tx: Transaction) => Promise<any>, Returns extends CB extends (tx: Transaction) => Promise<infer X> ? X : never>(query: CB) => Promise<Returns>;
|
|
305
|
-
mutate: ServerMutate<Models>;
|
|
306
|
-
query: <R>(cb: (q: QueryBuilder) => Query<any, Schema, R>, authData?: AuthData | null) => Promise<HumanReadable<R>>;
|
|
307
250
|
};
|
|
308
251
|
export type ZeroServer<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>> = ReturnType<typeof createZeroServerCore<Schema, Models, ServerActions>>;
|
|
309
|
-
export {};
|
|
252
|
+
export type { ValidateMutationArgs, ValidateMutationFn, ValidateQueryArgs, ValidateQueryFn, ZeroServerCommonOptions, ZeroServerDatabase, } from './createZeroDirectServer';
|
|
310
253
|
//# sourceMappingURL=createZeroServerCore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createZeroServerCore.d.ts","sourceRoot":"","sources":["../src/createZeroServerCore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createZeroServerCore.d.ts","sourceRoot":"","sources":["../src/createZeroServerCore.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAA;AAKjC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE1D,KAAK,wBAAwB,GAAG;IAC9B,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,CAAA;QAChB,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;IACD,MAAM,EAAE;QACN,KAAK,EAAE,kBAAkB,CAAA;QACzB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAA;CACF,CAAA;AAMD,MAAM,MAAM,2BAA2B,GAAG;IACxC,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,wBAAwB,EAAE,CAAA;IACrC,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,KAAK,qBAAqB,CACxB,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3C,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG;IAC3D,cAAc,EAAE,MAAM,kBAAkB,CAAA;IACxC,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,2BAA2B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/E,CAAA;AAED,wBAAgB,oBAAoB,CAClC,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,cAAc,EACd,mBAAmB,EACnB,qBAA6B,EAC7B,qBAAqB,EACrB,MAAM,EACN,SAAS,EAAE,kBAAkB,EAC7B,uBAAuB,EACvB,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,aAAa,GACd,EAAE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC;;;;oEAkBlD;QACD,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;QACzB,OAAO,EAAE,OAAO,CAAA;QAChB,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAwCE;QACD,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;QACzB,OAAO,EAAE,OAAO,CAAA;KACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCF;AAED,MAAM,MAAM,UAAU,CACpB,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3C,UAAU,CAAC,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;AAuE1E,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,0BAA0B,CAAA"}
|
package/types/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA4mBzF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACrC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;CACnE,CAAA;AAkCD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA6F3E;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA0WhF;AAED,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,yCAmChD"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { ZeroServerDatabase } from './createZeroDirectServer';
|
|
2
|
+
import type { 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[], metadata?: SqlStatementMetadata): SQLiteExecResult | Promise<SQLiteExecResult>;
|
|
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 SQLiteExecResult = {
|
|
11
|
+
changes: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Identifies an application write without asking the host to parse its SQL.
|
|
15
|
+
* `table` is the physical SQLite table used by storage triggers; `publicTable`
|
|
16
|
+
* is the logical Zero table name exposed by the change feed.
|
|
17
|
+
*/
|
|
18
|
+
export type SqlStatementMetadata = {
|
|
19
|
+
table: string;
|
|
20
|
+
publicTable: string;
|
|
21
|
+
kind: 'delete' | 'insert' | 'update' | 'upsert';
|
|
22
|
+
};
|
|
23
|
+
export type SQLiteQueryFormat = {
|
|
24
|
+
relationships: Record<string, SQLiteQueryFormat>;
|
|
25
|
+
singular: boolean;
|
|
26
|
+
};
|
|
27
|
+
export type SQLiteTransactionProvider = <R>(callback: (tx: SQLiteTransactionExecutor) => R | Promise<R>) => Promise<R>;
|
|
28
|
+
type SQLiteColumn = ZeroSchema['tables'][string]['columns'][string];
|
|
29
|
+
export type SQLiteValueContext = {
|
|
30
|
+
column: SQLiteColumn;
|
|
31
|
+
columnName: string;
|
|
32
|
+
tableName: string;
|
|
33
|
+
};
|
|
34
|
+
export type ZeroSQLiteTransactionOptions<Schema extends ZeroSchema> = {
|
|
35
|
+
schema: Schema;
|
|
36
|
+
encodeValue?: (value: unknown, context: SQLiteValueContext) => unknown;
|
|
37
|
+
};
|
|
38
|
+
export type SQLiteLedgerTables = {
|
|
39
|
+
clients: string;
|
|
40
|
+
mutations: string;
|
|
41
|
+
};
|
|
42
|
+
export type PersistAlreadyProcessedArgs = {
|
|
43
|
+
clientGroupID: string;
|
|
44
|
+
mutations: Array<{
|
|
45
|
+
id: {
|
|
46
|
+
clientID: string;
|
|
47
|
+
id: number;
|
|
48
|
+
};
|
|
49
|
+
result: {
|
|
50
|
+
error: 'alreadyProcessed';
|
|
51
|
+
details?: unknown;
|
|
52
|
+
};
|
|
53
|
+
}>;
|
|
54
|
+
upstreamSchema: string;
|
|
55
|
+
};
|
|
56
|
+
type SQLiteTransactionOptions<Schema extends ZeroSchema> = {
|
|
57
|
+
encodeValue: (value: unknown, context: SQLiteValueContext) => unknown;
|
|
58
|
+
schema: Schema;
|
|
59
|
+
};
|
|
60
|
+
export type SQLiteDatabaseOptions<Schema extends ZeroSchema> = SQLiteTransactionOptions<Schema> & {
|
|
61
|
+
initializedLedgers: Set<string>;
|
|
62
|
+
ledgerTables: (upstreamSchema: string) => SQLiteLedgerTables;
|
|
63
|
+
transactionProvider: SQLiteTransactionProvider;
|
|
64
|
+
};
|
|
65
|
+
export declare function createSQLiteDatabase<Schema extends ZeroSchema>(options: SQLiteDatabaseOptions<Schema>): ZeroServerDatabase;
|
|
66
|
+
export declare function createZeroSQLiteTransaction<Schema extends ZeroSchema>(options: ZeroSQLiteTransactionOptions<Schema>, executor: SQLiteTransactionExecutor, input?: TransactionProviderInput): Transaction;
|
|
67
|
+
export declare function persistAlreadyProcessedMutationResults<Schema extends ZeroSchema>(options: SQLiteDatabaseOptions<Schema>, { clientGroupID, mutations, upstreamSchema }: PersistAlreadyProcessedArgs): Promise<void>;
|
|
68
|
+
export declare function defaultLedgerTables(upstreamSchema: string): SQLiteLedgerTables;
|
|
69
|
+
export declare function encodeSQLiteValue(value: unknown, { column }: SQLiteValueContext): {} | null | undefined;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=sqliteRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqliteRuntime.d.ts","sourceRoot":"","sources":["../src/sqliteRuntime.ts"],"names":[],"mappings":"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"}
|
package/types/syncHost.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type ZeroServerCommonOptions } from './
|
|
2
|
-
import { type ZeroSQLiteTransactionOptions } from './
|
|
1
|
+
import { type ZeroDirectServer, type ZeroServerCommonOptions } from './createZeroDirectServer';
|
|
2
|
+
import { type SqlStatementMetadata, type SQLiteExecResult, type ZeroSQLiteTransactionOptions } from './sqliteRuntime';
|
|
3
3
|
import type { AuthData, GenericModels } from './types';
|
|
4
4
|
import type { Schema as ZeroSchema } from '@rocicorp/zero';
|
|
5
5
|
export type SyncHostJsonValue = string | number | boolean | null | SyncHostJsonValue[] | {
|
|
@@ -13,9 +13,9 @@ export type SyncHostTransactionContext = {
|
|
|
13
13
|
defer(effect: () => void | Promise<void>): void;
|
|
14
14
|
};
|
|
15
15
|
export type SyncHostTransactionExecutor = {
|
|
16
|
-
exec(sql: string, params?: readonly unknown[]):
|
|
16
|
+
exec(sql: string, params?: readonly unknown[], metadata?: SqlStatementMetadata): SQLiteExecResult | Promise<SQLiteExecResult>;
|
|
17
17
|
query<Row extends Record<string, unknown> = Record<string, unknown>>(sql: string, params?: readonly unknown[]): Row[] | Promise<Row[]>;
|
|
18
|
-
queryAst<Result = unknown>(ast: SyncHostJsonValue, format: import('./
|
|
18
|
+
queryAst<Result = unknown>(ast: SyncHostJsonValue, format: import('./sqliteRuntime').SQLiteQueryFormat, queryName?: string): Result | Promise<Result>;
|
|
19
19
|
};
|
|
20
20
|
export type SyncHostMutatorContext = SyncHostTransactionContext & {
|
|
21
21
|
claims: SyncHostClaims;
|
|
@@ -29,23 +29,14 @@ export type CreateZeroSyncHostAdapterOptions<Schema extends ZeroSchema, Models e
|
|
|
29
29
|
mapAuthData?: (claims: SyncHostClaims) => AuthData;
|
|
30
30
|
defaultMutateAuthData?: Pick<AuthData, 'email' | 'id'> & Partial<AuthData>;
|
|
31
31
|
};
|
|
32
|
+
export type ZeroSyncHostAdapter<Schema extends ZeroSchema, Models extends GenericModels> = {
|
|
33
|
+
mutators: Readonly<Record<string, SyncHostRegisteredMutator>>;
|
|
34
|
+
resolveQuery(name: string, args: readonly SyncHostJsonValue[], claims: SyncHostClaims): Promise<SyncHostJsonValue>;
|
|
35
|
+
server: ZeroDirectServer<Schema, Models>;
|
|
36
|
+
};
|
|
32
37
|
export declare class MutationApplicationError extends Error {
|
|
33
38
|
readonly details: string;
|
|
34
39
|
constructor(details: string, message?: string);
|
|
35
40
|
}
|
|
36
|
-
export declare function createZeroSyncHostAdapter<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ encodeValue, mapAuthData, transaction, ...options }: CreateZeroSyncHostAdapterOptions<Schema, Models, ServerActions>):
|
|
37
|
-
mutators: Readonly<Record<string, SyncHostRegisteredMutator>>;
|
|
38
|
-
resolveQuery(name: string, args: readonly SyncHostJsonValue[], claims: SyncHostClaims): Promise<SyncHostJsonValue>;
|
|
39
|
-
server: {
|
|
40
|
-
mutate: { [Key in keyof Models]: { [K in keyof Models[Key]["mutate"]]: Models[Key]["mutate"][K] extends (ctx: import("./types").MutatorContext, arg: infer Arg) => any ? (arg: Arg, options?: {
|
|
41
|
-
authData?: Pick<{}, "id" | "email"> & Partial<{}>;
|
|
42
|
-
awaitEffects?: boolean;
|
|
43
|
-
}) => Promise<void> : (options?: {
|
|
44
|
-
authData?: Pick<{}, "id" | "email"> & Partial<{}>;
|
|
45
|
-
awaitEffects?: boolean;
|
|
46
|
-
}) => Promise<void>; }; };
|
|
47
|
-
query: <R>(cb: (q: import("./types").QueryBuilder) => import("@rocicorp/zero").Query<any, Schema, R>, authData?: {} | null | undefined) => Promise<import("@rocicorp/zero").HumanReadable<R>>;
|
|
48
|
-
transaction: <CB extends (tx: import("./types").Transaction) => Promise<any>, Returns extends CB extends (tx: import("./types").Transaction) => Promise<infer X> ? X : never>(query: CB) => Promise<Returns>;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
41
|
+
export declare function createZeroSyncHostAdapter<Schema extends ZeroSchema, Models extends GenericModels, ServerActions extends Record<string, unknown>>({ encodeValue, mapAuthData, transaction, ...options }: CreateZeroSyncHostAdapterOptions<Schema, Models, ServerActions>): ZeroSyncHostAdapter<Schema, Models>;
|
|
51
42
|
//# sourceMappingURL=syncHost.d.ts.map
|
package/types/syncHost.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncHost.d.ts","sourceRoot":"","sources":["../src/syncHost.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"syncHost.d.ts","sourceRoot":"","sources":["../src/syncHost.ts"],"names":[],"mappings":"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"}
|