effect-zero 0.4.2 → 0.5.0-beta.1
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/client-transaction.d.ts +85 -7
- package/dist/client-transaction.d.ts.map +1 -1
- package/dist/client-transaction.js +11 -7
- package/dist/client-transaction.js.map +1 -1
- package/dist/client.d.ts +130 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -6
- package/dist/client.js.map +1 -1
- package/dist/internal/server-synchronization-context.d.ts +19 -0
- package/dist/internal/server-synchronization-context.d.ts.map +1 -0
- package/dist/internal/server-synchronization-context.js +46 -0
- package/dist/internal/server-synchronization-context.js.map +1 -0
- package/dist/internal/server.d.ts +5 -16
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +1 -38
- package/dist/internal/server.js.map +1 -1
- package/dist/internal/server.test.js +7 -8
- package/dist/internal/server.test.js.map +1 -1
- package/dist/internal/utils.d.ts +7 -0
- package/dist/internal/utils.d.ts.map +1 -1
- package/dist/internal/utils.js +7 -0
- package/dist/internal/utils.js.map +1 -1
- package/dist/mutators.d.ts +1 -1
- package/dist/mutators.d.ts.map +1 -1
- package/dist/mutators.js +1 -1
- package/dist/query.d.ts +3 -5
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +6 -12
- package/dist/query.js.map +1 -1
- package/dist/result.d.ts +15 -15
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +11 -11
- package/dist/result.js.map +1 -1
- package/dist/server-transaction.d.ts +156 -15
- package/dist/server-transaction.d.ts.map +1 -1
- package/dist/server-transaction.js +24 -19
- package/dist/server-transaction.js.map +1 -1
- package/dist/server.d.ts +287 -29
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +21 -18
- package/dist/server.js.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/error.d.ts +69 -48
- package/dist/types/error.d.ts.map +1 -1
- package/dist/types/error.js +38 -30
- package/dist/types/error.js.map +1 -1
- package/dist/types/push.d.ts +149 -149
- package/dist/types/push.d.ts.map +1 -1
- package/dist/types/push.js +45 -40
- package/dist/types/push.js.map +1 -1
- package/dist/types/queries.d.ts +42 -42
- package/dist/types/queries.d.ts.map +1 -1
- package/dist/types/queries.js +7 -7
- package/dist/types/queries.js.map +1 -1
- package/dist/types.test.js +13 -15
- package/dist/types.test.js.map +1 -1
- package/package.json +29 -31
- package/src/client-transaction.ts +15 -11
- package/src/client.ts +19 -19
- package/src/internal/server-synchronization-context.ts +64 -0
- package/src/internal/server.ts +3 -59
- package/src/internal/utils.ts +8 -0
- package/src/mutators.ts +2 -2
- package/src/query.ts +8 -20
- package/src/result.ts +40 -37
- package/src/server-transaction.ts +34 -37
- package/src/server.ts +36 -37
- package/src/types/error.ts +8 -8
- package/src/types/push.ts +22 -22
- package/src/types/queries.ts +7 -7
|
@@ -1,17 +1,95 @@
|
|
|
1
1
|
import type { Schema as ZeroSchema, Transaction as ZeroTransaction } from "@rocicorp/zero";
|
|
2
2
|
import * as Cause from "effect/Cause";
|
|
3
|
-
import * as
|
|
3
|
+
import * as Ctx from "effect/Context";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export declare const make: <const Id extends string, TSchema extends ZeroSchema>(id: Id, schema: TSchema) =>
|
|
5
|
+
import type { NodeInspectSymbol } from "effect/Inspectable";
|
|
6
|
+
import type * as Unify from "effect/Unify";
|
|
7
|
+
export type Context<TSchema extends ZeroSchema> = ReturnType<typeof make<any, TSchema>>;
|
|
8
|
+
export declare const make: <const Id extends string, TSchema extends ZeroSchema>(id: Id, schema: TSchema) => {
|
|
9
|
+
Context: {
|
|
10
|
+
new (_: never): {
|
|
11
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
12
|
+
readonly key: Id;
|
|
13
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
14
|
+
};
|
|
15
|
+
readonly key: Id;
|
|
16
|
+
of(this: void, self: ZeroTransaction<TSchema>): ZeroTransaction<TSchema>;
|
|
17
|
+
context(self: ZeroTransaction<TSchema>): Ctx.Context<{
|
|
18
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
19
|
+
readonly key: Id;
|
|
20
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
21
|
+
}>;
|
|
22
|
+
use<A, E, R>(f: (service: ZeroTransaction<TSchema>) => Effect.Effect<A, E, R>): Effect.Effect<A, E, {
|
|
23
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
24
|
+
readonly key: Id;
|
|
25
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
26
|
+
} | R>;
|
|
27
|
+
useSync<A>(f: (service: ZeroTransaction<TSchema>) => A): Effect.Effect<A, never, {
|
|
28
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
29
|
+
readonly key: Id;
|
|
30
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
31
|
+
}>;
|
|
32
|
+
readonly Identifier: {
|
|
33
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
34
|
+
readonly key: Id;
|
|
35
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
36
|
+
};
|
|
37
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
38
|
+
readonly stack?: string | undefined;
|
|
39
|
+
readonly "~effect/Context/Service": Ctx.ServiceTypeId;
|
|
40
|
+
readonly "~effect/Effect": Effect.Variance<ZeroTransaction<TSchema>, never, {
|
|
41
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
42
|
+
readonly key: Id;
|
|
43
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
44
|
+
}>;
|
|
45
|
+
[Symbol.iterator](): Effect.EffectIterator<Effect.Effect<ZeroTransaction<TSchema>, never, {
|
|
46
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
47
|
+
readonly key: Id;
|
|
48
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
49
|
+
}>>;
|
|
50
|
+
[Unify.typeSymbol]?: unknown;
|
|
51
|
+
[Unify.unifySymbol]?: Effect.EffectUnify<Ctx.ServiceClass<{
|
|
52
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
53
|
+
readonly key: Id;
|
|
54
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
55
|
+
}, Id, ZeroTransaction<TSchema>>> | undefined;
|
|
56
|
+
[Unify.ignoreSymbol]?: {};
|
|
57
|
+
pipe<A>(this: A): A;
|
|
58
|
+
pipe<A, B = never>(this: A, ab: (_: A) => B): B;
|
|
59
|
+
pipe<A, B_1 = never, C = never>(this: A, ab: (_: A) => B_1, bc: (_: B_1) => C): C;
|
|
60
|
+
pipe<A, B_2 = never, C_1 = never, D = never>(this: A, ab: (_: A) => B_2, bc: (_: B_2) => C_1, cd: (_: C_1) => D): D;
|
|
61
|
+
pipe<A, B_3 = never, C_2 = never, D_1 = never, E_1 = never>(this: A, ab: (_: A) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E_1): E_1;
|
|
62
|
+
pipe<A, B_4 = never, C_3 = never, D_2 = never, E_2 = never, F = never>(this: A, ab: (_: A) => B_4, bc: (_: B_4) => C_3, cd: (_: C_3) => D_2, de: (_: D_2) => E_2, ef: (_: E_2) => F): F;
|
|
63
|
+
pipe<A, B_5 = never, C_4 = never, D_3 = never, E_3 = never, F_1 = never, G = never>(this: A, ab: (_: A) => B_5, bc: (_: B_5) => C_4, cd: (_: C_4) => D_3, de: (_: D_3) => E_3, ef: (_: E_3) => F_1, fg: (_: F_1) => G): G;
|
|
64
|
+
pipe<A, B_6 = never, C_5 = never, D_4 = never, E_4 = never, F_2 = never, G_1 = never, H = never>(this: A, ab: (_: A) => B_6, bc: (_: B_6) => C_5, cd: (_: C_5) => D_4, de: (_: D_4) => E_4, ef: (_: E_4) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
|
|
65
|
+
pipe<A, B_7 = never, C_6 = never, D_5 = never, E_5 = never, F_3 = never, G_2 = never, H_1 = never, I = never>(this: A, ab: (_: A) => B_7, bc: (_: B_7) => C_6, cd: (_: C_6) => D_5, de: (_: D_5) => E_5, ef: (_: E_5) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
|
|
66
|
+
pipe<A, B_8 = never, C_7 = never, D_6 = never, E_6 = never, F_4 = never, G_3 = never, H_2 = never, I_1 = never, J = never>(this: A, ab: (_: A) => B_8, bc: (_: B_8) => C_7, cd: (_: C_7) => D_6, de: (_: D_6) => E_6, ef: (_: E_6) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
|
|
67
|
+
pipe<A, B_9 = never, C_8 = never, D_7 = never, E_7 = never, F_5 = never, G_4 = never, H_3 = never, I_2 = never, J_1 = never, K = never>(this: A, ab: (_: A) => B_9, bc: (_: B_9) => C_8, cd: (_: C_8) => D_7, de: (_: D_7) => E_7, ef: (_: E_7) => F_5, fg: (_: F_5) => G_4, gh: (_: G_4) => H_3, hi: (_: H_3) => I_2, ij: (_: I_2) => J_1, jk: (_: J_1) => K): K;
|
|
68
|
+
pipe<A, B_10 = never, C_9 = never, D_8 = never, E_8 = never, F_6 = never, G_5 = never, H_4 = never, I_3 = never, J_2 = never, K_1 = never, L = never>(this: A, ab: (_: A) => B_10, bc: (_: B_10) => C_9, cd: (_: C_9) => D_8, de: (_: D_8) => E_8, ef: (_: E_8) => F_6, fg: (_: F_6) => G_5, gh: (_: G_5) => H_4, hi: (_: H_4) => I_3, ij: (_: I_3) => J_2, jk: (_: J_2) => K_1, kl: (_: K_1) => L): L;
|
|
69
|
+
pipe<A, B_11 = never, C_10 = never, D_9 = never, E_9 = never, F_7 = never, G_6 = never, H_5 = never, I_4 = never, J_3 = never, K_2 = never, L_1 = never, M = never>(this: A, ab: (_: A) => B_11, bc: (_: B_11) => C_10, cd: (_: C_10) => D_9, de: (_: D_9) => E_9, ef: (_: E_9) => F_7, fg: (_: F_7) => G_6, gh: (_: G_6) => H_5, hi: (_: H_5) => I_4, ij: (_: I_4) => J_3, jk: (_: J_3) => K_2, kl: (_: K_2) => L_1, lm: (_: L_1) => M): M;
|
|
70
|
+
pipe<A, B_12 = never, C_11 = never, D_10 = never, E_10 = never, F_8 = never, G_7 = never, H_6 = never, I_5 = never, J_4 = never, K_3 = never, L_2 = never, M_1 = never, N = never>(this: A, ab: (_: A) => B_12, bc: (_: B_12) => C_11, cd: (_: C_11) => D_10, de: (_: D_10) => E_10, ef: (_: E_10) => F_8, fg: (_: F_8) => G_7, gh: (_: G_7) => H_6, hi: (_: H_6) => I_5, ij: (_: I_5) => J_4, jk: (_: J_4) => K_3, kl: (_: K_3) => L_2, lm: (_: L_2) => M_1, mn: (_: M_1) => N): N;
|
|
71
|
+
pipe<A, B_13 = never, C_12 = never, D_11 = never, E_11 = never, F_9 = never, G_8 = never, H_7 = never, I_6 = never, J_5 = never, K_4 = never, L_3 = never, M_2 = never, N_1 = never, O = never>(this: A, ab: (_: A) => B_13, bc: (_: B_13) => C_12, cd: (_: C_12) => D_11, de: (_: D_11) => E_11, ef: (_: E_11) => F_9, fg: (_: F_9) => G_8, gh: (_: G_8) => H_7, hi: (_: H_7) => I_6, ij: (_: I_6) => J_5, jk: (_: J_5) => K_4, kl: (_: K_4) => L_3, lm: (_: L_3) => M_2, mn: (_: M_2) => N_1, no: (_: N_1) => O): O;
|
|
72
|
+
pipe<A, B_14 = never, C_13 = never, D_12 = never, E_12 = never, F_10 = never, G_9 = never, H_8 = never, I_7 = never, J_6 = never, K_5 = never, L_4 = never, M_3 = never, N_2 = never, O_1 = never, P = never>(this: A, ab: (_: A) => B_14, bc: (_: B_14) => C_13, cd: (_: C_13) => D_12, de: (_: D_12) => E_12, ef: (_: E_12) => F_10, fg: (_: F_10) => G_9, gh: (_: G_9) => H_8, hi: (_: H_8) => I_7, ij: (_: I_7) => J_6, jk: (_: J_6) => K_5, kl: (_: K_5) => L_4, lm: (_: L_4) => M_3, mn: (_: M_3) => N_2, no: (_: N_2) => O_1, op: (_: O_1) => P): P;
|
|
73
|
+
pipe<A, B_15 = never, C_14 = never, D_13 = never, E_13 = never, F_11 = never, G_10 = never, H_9 = never, I_8 = never, J_7 = never, K_6 = never, L_5 = never, M_4 = never, N_3 = never, O_2 = never, P_1 = never, Q = never>(this: A, ab: (_: A) => B_15, bc: (_: B_15) => C_14, cd: (_: C_14) => D_13, de: (_: D_13) => E_13, ef: (_: E_13) => F_11, fg: (_: F_11) => G_10, gh: (_: G_10) => H_9, hi: (_: H_9) => I_8, ij: (_: I_8) => J_7, jk: (_: J_7) => K_6, kl: (_: K_6) => L_5, lm: (_: L_5) => M_4, mn: (_: M_4) => N_3, no: (_: N_3) => O_2, op: (_: O_2) => P_1, pq: (_: P_1) => Q): Q;
|
|
74
|
+
pipe<A, B_16 = never, C_15 = never, D_14 = never, E_14 = never, F_12 = never, G_11 = never, H_10 = never, I_9 = never, J_8 = never, K_7 = never, L_6 = never, M_5 = never, N_4 = never, O_3 = never, P_2 = never, Q_1 = never, R_1 = never>(this: A, ab: (_: A) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_14, ef: (_: E_14) => F_12, fg: (_: F_12) => G_11, gh: (_: G_11) => H_10, hi: (_: H_10) => I_9, ij: (_: I_9) => J_8, jk: (_: J_8) => K_7, kl: (_: K_7) => L_6, lm: (_: L_6) => M_5, mn: (_: M_5) => N_4, no: (_: N_4) => O_3, op: (_: O_3) => P_2, pq: (_: P_2) => Q_1, qr: (_: Q_1) => R_1): R_1;
|
|
75
|
+
pipe<A, B_17 = never, C_16 = never, D_15 = never, E_15 = never, F_13 = never, G_12 = never, H_11 = never, I_10 = never, J_9 = never, K_8 = never, L_7 = never, M_6 = never, N_5 = never, O_4 = never, P_3 = never, Q_2 = never, R_2 = never, S = never>(this: A, ab: (_: A) => B_17, bc: (_: B_17) => C_16, cd: (_: C_16) => D_15, de: (_: D_15) => E_15, ef: (_: E_15) => F_13, fg: (_: F_13) => G_12, gh: (_: G_12) => H_11, hi: (_: H_11) => I_10, ij: (_: I_10) => J_9, jk: (_: J_9) => K_8, kl: (_: K_8) => L_7, lm: (_: L_7) => M_6, mn: (_: M_6) => N_5, no: (_: N_5) => O_4, op: (_: O_4) => P_3, pq: (_: P_3) => Q_2, qr: (_: Q_2) => R_2, rs: (_: R_2) => S): S;
|
|
76
|
+
pipe<A, B_18 = never, C_17 = never, D_16 = never, E_16 = never, F_14 = never, G_13 = never, H_12 = never, I_11 = never, J_10 = never, K_9 = never, L_8 = never, M_7 = never, N_6 = never, O_5 = never, P_4 = never, Q_3 = never, R_3 = never, S_1 = never, T = never>(this: A, ab: (_: A) => B_18, bc: (_: B_18) => C_17, cd: (_: C_17) => D_16, de: (_: D_16) => E_16, ef: (_: E_16) => F_14, fg: (_: F_14) => G_13, gh: (_: G_13) => H_12, hi: (_: H_12) => I_11, ij: (_: I_11) => J_10, jk: (_: J_10) => K_9, kl: (_: K_9) => L_8, lm: (_: L_8) => M_7, mn: (_: M_7) => N_6, no: (_: N_6) => O_5, op: (_: O_5) => P_4, pq: (_: P_4) => Q_3, qr: (_: Q_3) => R_3, rs: (_: R_3) => S_1, st: (_: S_1) => T): T;
|
|
77
|
+
pipe<A, B_19 = never, C_18 = never, D_17 = never, E_17 = never, F_15 = never, G_14 = never, H_13 = never, I_12 = never, J_11 = never, K_10 = never, L_9 = never, M_8 = never, N_7 = never, O_6 = never, P_5 = never, Q_4 = never, R_4 = never, S_2 = never, T_1 = never, U = never>(this: A, ab: (_: A) => B_19, bc: (_: B_19) => C_18, cd: (_: C_18) => D_17, de: (_: D_17) => E_17, ef: (_: E_17) => F_15, fg: (_: F_15) => G_14, gh: (_: G_14) => H_13, hi: (_: H_13) => I_12, ij: (_: I_12) => J_11, jk: (_: J_11) => K_10, kl: (_: K_10) => L_9, lm: (_: L_9) => M_8, mn: (_: M_8) => N_7, no: (_: N_7) => O_6, op: (_: O_6) => P_5, pq: (_: P_5) => Q_4, qr: (_: Q_4) => R_4, rs: (_: R_4) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
|
|
78
|
+
pipe<A, B_20 = never, C_19 = never, D_18 = never, E_18 = never, F_16 = never, G_15 = never, H_14 = never, I_13 = never, J_12 = never, K_11 = never, L_10 = never, M_9 = never, N_8 = never, O_7 = never, P_6 = never, Q_5 = never, R_5 = never, S_3 = never, T_2 = never, U_1 = never>(this: A, ab: (_: A) => B_20, bc: (_: B_20) => C_19, cd: (_: C_19) => D_18, de: (_: D_18) => E_18, ef: (_: E_18) => F_16, fg: (_: F_16) => G_15, gh: (_: G_15) => H_14, hi: (_: H_14) => I_13, ij: (_: I_13) => J_12, jk: (_: J_12) => K_11, kl: (_: K_11) => L_10, lm: (_: L_10) => M_9, mn: (_: M_9) => N_8, no: (_: N_8) => O_7, op: (_: O_7) => P_6, pq: (_: P_6) => Q_5, qr: (_: Q_5) => R_5, rs: (_: R_5) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
|
|
79
|
+
toString(): string;
|
|
80
|
+
toJSON(): unknown;
|
|
81
|
+
[NodeInspectSymbol](): unknown;
|
|
82
|
+
};
|
|
9
83
|
use: <A>(fn: (transaction: ZeroTransaction<TSchema>, options: {
|
|
10
84
|
readonly signal: AbortSignal;
|
|
11
|
-
}) => PromiseLike<A>) => Effect.Effect<A, ClientTransactionError,
|
|
85
|
+
}) => PromiseLike<A>) => Effect.Effect<A, ClientTransactionError, {
|
|
86
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
87
|
+
readonly key: Id;
|
|
88
|
+
readonly "~effect/Context/Service": typeof Ctx.ServiceTypeId;
|
|
89
|
+
}>;
|
|
12
90
|
schema: TSchema;
|
|
13
91
|
};
|
|
14
|
-
declare const ClientTransactionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").
|
|
92
|
+
declare const ClientTransactionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
|
|
15
93
|
readonly _tag: "ClientTransactionError";
|
|
16
94
|
} & Readonly<A>;
|
|
17
95
|
declare class ClientTransactionError extends ClientTransactionError_base<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-transaction.d.ts","sourceRoot":"","sources":["../src/client-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client-transaction.d.ts","sourceRoot":"","sources":["../src/client-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAM3C,MAAM,MAAM,OAAO,CAAC,OAAO,SAAS,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAExF,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,OAAO,SAAS,UAAU,EAAE,IAAI,EAAE,EAAE,QAAQ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAGlF,CAAC,MACR,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;KAAE,KAAK,WAAW,CAAC,CAAC,CAAC;;;;;;CAW3G,CAAC;;;;AAEF,cAAM,sBAAuB,SAAQ,4BAA2C;IAC9E,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;IACA,IAAa,OAAO,WAGnB;CACF"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import * as Cause from "effect/Cause";
|
|
2
|
-
import * as
|
|
2
|
+
import * as Ctx from "effect/Context";
|
|
3
3
|
import * as Data from "effect/Data";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
export const make = (id, schema) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
class Context extends Ctx.Service()(id) {
|
|
7
|
+
}
|
|
8
|
+
const use = (fn) => Effect.gen(function* () {
|
|
9
|
+
const transaction = yield* Context;
|
|
10
|
+
return yield* Effect.tryPromise({
|
|
11
|
+
try: (signal) => fn(transaction, { signal }),
|
|
12
|
+
catch: (error) => new ClientTransactionError({ cause: Cause.fail(error) }),
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
return { Context, use, schema };
|
|
12
16
|
};
|
|
13
17
|
class ClientTransactionError extends Data.TaggedError("ClientTransactionError") {
|
|
14
18
|
get message() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-transaction.js","sourceRoot":"","sources":["../src/client-transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client-transaction.js","sourceRoot":"","sources":["../src/client-transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAUxC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAsD,EAAM,EAAE,MAAe,EAAE,EAAE;IACnG,MAAM,OAAQ,SAAQ,GAAG,CAAC,OAAO,EAAqC,CAAC,EAAE,CAAC;KAAG;IAE7E,MAAM,GAAG,GAAG,CACV,EAAwG,EACxG,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;QACnC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;YAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,sBAAuB,SAAQ,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAE5E;IACA,IAAa,OAAO;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC;IAClF,CAAC;CACF"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,18 +1,141 @@
|
|
|
1
1
|
import { Zero, type ZeroOptions, type Schema as ZeroSchema, type Transaction as ZeroTransaction } from "@rocicorp/zero";
|
|
2
2
|
import * as Cause from "effect/Cause";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
|
-
import type
|
|
4
|
+
import type { NodeInspectSymbol } from "effect/Inspectable";
|
|
5
|
+
import * as Rec from "effect/Record";
|
|
5
6
|
import * as Schema from "effect/Schema";
|
|
6
|
-
import type * as
|
|
7
|
+
import type * as Unify from "effect/Unify";
|
|
7
8
|
import * as Mutators from "./mutators.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
export declare const make: <TSchema extends ZeroSchema, TMutators extends Mutators.AnyMutators>(transaction: {
|
|
10
|
+
Context: {
|
|
11
|
+
new (_: never): {
|
|
12
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
13
|
+
readonly key: any;
|
|
14
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
15
|
+
};
|
|
16
|
+
readonly key: any;
|
|
17
|
+
of(this: void, self: ZeroTransaction<TSchema>): ZeroTransaction<TSchema>;
|
|
18
|
+
context(self: ZeroTransaction<TSchema>): import("effect/Context").Context<{
|
|
19
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
20
|
+
readonly key: any;
|
|
21
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
22
|
+
}>;
|
|
23
|
+
use<A, E, R>(f: (service: ZeroTransaction<TSchema>) => Effect.Effect<A, E, R>): Effect.Effect<A, E, {
|
|
24
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
25
|
+
readonly key: any;
|
|
26
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
27
|
+
} | R>;
|
|
28
|
+
useSync<A>(f: (service: ZeroTransaction<TSchema>) => A): Effect.Effect<A, never, {
|
|
29
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
30
|
+
readonly key: any;
|
|
31
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
32
|
+
}>;
|
|
33
|
+
readonly Identifier: {
|
|
34
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
35
|
+
readonly key: any;
|
|
36
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
37
|
+
};
|
|
38
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
39
|
+
readonly stack?: string | undefined;
|
|
40
|
+
readonly "~effect/Context/Service": import("effect/Context").ServiceTypeId;
|
|
41
|
+
readonly "~effect/Effect": Effect.Variance<ZeroTransaction<TSchema>, never, {
|
|
42
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
43
|
+
readonly key: any;
|
|
44
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
45
|
+
}>;
|
|
46
|
+
[Symbol.iterator](): Effect.EffectIterator<Effect.Effect<ZeroTransaction<TSchema>, never, {
|
|
47
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
48
|
+
readonly key: any;
|
|
49
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
50
|
+
}>>;
|
|
51
|
+
[Unify.typeSymbol]?: unknown;
|
|
52
|
+
[Unify.unifySymbol]?: Effect.EffectUnify<import("effect/Context").ServiceClass<{
|
|
53
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
54
|
+
readonly key: any;
|
|
55
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
56
|
+
}, any, ZeroTransaction<TSchema>>> | undefined;
|
|
57
|
+
[Unify.ignoreSymbol]?: {};
|
|
58
|
+
pipe<A>(this: A): A;
|
|
59
|
+
pipe<A, B = never>(this: A, ab: (_: A) => B): B;
|
|
60
|
+
pipe<A, B_1 = never, C = never>(this: A, ab: (_: A) => B_1, bc: (_: B_1) => C): C;
|
|
61
|
+
pipe<A, B_2 = never, C_1 = never, D = never>(this: A, ab: (_: A) => B_2, bc: (_: B_2) => C_1, cd: (_: C_1) => D): D;
|
|
62
|
+
pipe<A, B_3 = never, C_2 = never, D_1 = never, E_1 = never>(this: A, ab: (_: A) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E_1): E_1;
|
|
63
|
+
pipe<A, B_4 = never, C_3 = never, D_2 = never, E_2 = never, F = never>(this: A, ab: (_: A) => B_4, bc: (_: B_4) => C_3, cd: (_: C_3) => D_2, de: (_: D_2) => E_2, ef: (_: E_2) => F): F;
|
|
64
|
+
pipe<A, B_5 = never, C_4 = never, D_3 = never, E_3 = never, F_1 = never, G = never>(this: A, ab: (_: A) => B_5, bc: (_: B_5) => C_4, cd: (_: C_4) => D_3, de: (_: D_3) => E_3, ef: (_: E_3) => F_1, fg: (_: F_1) => G): G;
|
|
65
|
+
pipe<A, B_6 = never, C_5 = never, D_4 = never, E_4 = never, F_2 = never, G_1 = never, H = never>(this: A, ab: (_: A) => B_6, bc: (_: B_6) => C_5, cd: (_: C_5) => D_4, de: (_: D_4) => E_4, ef: (_: E_4) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
|
|
66
|
+
pipe<A, B_7 = never, C_6 = never, D_5 = never, E_5 = never, F_3 = never, G_2 = never, H_1 = never, I = never>(this: A, ab: (_: A) => B_7, bc: (_: B_7) => C_6, cd: (_: C_6) => D_5, de: (_: D_5) => E_5, ef: (_: E_5) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
|
|
67
|
+
pipe<A, B_8 = never, C_7 = never, D_6 = never, E_6 = never, F_4 = never, G_3 = never, H_2 = never, I_1 = never, J = never>(this: A, ab: (_: A) => B_8, bc: (_: B_8) => C_7, cd: (_: C_7) => D_6, de: (_: D_6) => E_6, ef: (_: E_6) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
|
|
68
|
+
pipe<A, B_9 = never, C_8 = never, D_7 = never, E_7 = never, F_5 = never, G_4 = never, H_3 = never, I_2 = never, J_1 = never, K = never>(this: A, ab: (_: A) => B_9, bc: (_: B_9) => C_8, cd: (_: C_8) => D_7, de: (_: D_7) => E_7, ef: (_: E_7) => F_5, fg: (_: F_5) => G_4, gh: (_: G_4) => H_3, hi: (_: H_3) => I_2, ij: (_: I_2) => J_1, jk: (_: J_1) => K): K;
|
|
69
|
+
pipe<A, B_10 = never, C_9 = never, D_8 = never, E_8 = never, F_6 = never, G_5 = never, H_4 = never, I_3 = never, J_2 = never, K_1 = never, L = never>(this: A, ab: (_: A) => B_10, bc: (_: B_10) => C_9, cd: (_: C_9) => D_8, de: (_: D_8) => E_8, ef: (_: E_8) => F_6, fg: (_: F_6) => G_5, gh: (_: G_5) => H_4, hi: (_: H_4) => I_3, ij: (_: I_3) => J_2, jk: (_: J_2) => K_1, kl: (_: K_1) => L): L;
|
|
70
|
+
pipe<A, B_11 = never, C_10 = never, D_9 = never, E_9 = never, F_7 = never, G_6 = never, H_5 = never, I_4 = never, J_3 = never, K_2 = never, L_1 = never, M = never>(this: A, ab: (_: A) => B_11, bc: (_: B_11) => C_10, cd: (_: C_10) => D_9, de: (_: D_9) => E_9, ef: (_: E_9) => F_7, fg: (_: F_7) => G_6, gh: (_: G_6) => H_5, hi: (_: H_5) => I_4, ij: (_: I_4) => J_3, jk: (_: J_3) => K_2, kl: (_: K_2) => L_1, lm: (_: L_1) => M): M;
|
|
71
|
+
pipe<A, B_12 = never, C_11 = never, D_10 = never, E_10 = never, F_8 = never, G_7 = never, H_6 = never, I_5 = never, J_4 = never, K_3 = never, L_2 = never, M_1 = never, N = never>(this: A, ab: (_: A) => B_12, bc: (_: B_12) => C_11, cd: (_: C_11) => D_10, de: (_: D_10) => E_10, ef: (_: E_10) => F_8, fg: (_: F_8) => G_7, gh: (_: G_7) => H_6, hi: (_: H_6) => I_5, ij: (_: I_5) => J_4, jk: (_: J_4) => K_3, kl: (_: K_3) => L_2, lm: (_: L_2) => M_1, mn: (_: M_1) => N): N;
|
|
72
|
+
pipe<A, B_13 = never, C_12 = never, D_11 = never, E_11 = never, F_9 = never, G_8 = never, H_7 = never, I_6 = never, J_5 = never, K_4 = never, L_3 = never, M_2 = never, N_1 = never, O = never>(this: A, ab: (_: A) => B_13, bc: (_: B_13) => C_12, cd: (_: C_12) => D_11, de: (_: D_11) => E_11, ef: (_: E_11) => F_9, fg: (_: F_9) => G_8, gh: (_: G_8) => H_7, hi: (_: H_7) => I_6, ij: (_: I_6) => J_5, jk: (_: J_5) => K_4, kl: (_: K_4) => L_3, lm: (_: L_3) => M_2, mn: (_: M_2) => N_1, no: (_: N_1) => O): O;
|
|
73
|
+
pipe<A, B_14 = never, C_13 = never, D_12 = never, E_12 = never, F_10 = never, G_9 = never, H_8 = never, I_7 = never, J_6 = never, K_5 = never, L_4 = never, M_3 = never, N_2 = never, O_1 = never, P = never>(this: A, ab: (_: A) => B_14, bc: (_: B_14) => C_13, cd: (_: C_13) => D_12, de: (_: D_12) => E_12, ef: (_: E_12) => F_10, fg: (_: F_10) => G_9, gh: (_: G_9) => H_8, hi: (_: H_8) => I_7, ij: (_: I_7) => J_6, jk: (_: J_6) => K_5, kl: (_: K_5) => L_4, lm: (_: L_4) => M_3, mn: (_: M_3) => N_2, no: (_: N_2) => O_1, op: (_: O_1) => P): P;
|
|
74
|
+
pipe<A, B_15 = never, C_14 = never, D_13 = never, E_13 = never, F_11 = never, G_10 = never, H_9 = never, I_8 = never, J_7 = never, K_6 = never, L_5 = never, M_4 = never, N_3 = never, O_2 = never, P_1 = never, Q = never>(this: A, ab: (_: A) => B_15, bc: (_: B_15) => C_14, cd: (_: C_14) => D_13, de: (_: D_13) => E_13, ef: (_: E_13) => F_11, fg: (_: F_11) => G_10, gh: (_: G_10) => H_9, hi: (_: H_9) => I_8, ij: (_: I_8) => J_7, jk: (_: J_7) => K_6, kl: (_: K_6) => L_5, lm: (_: L_5) => M_4, mn: (_: M_4) => N_3, no: (_: N_3) => O_2, op: (_: O_2) => P_1, pq: (_: P_1) => Q): Q;
|
|
75
|
+
pipe<A, B_16 = never, C_15 = never, D_14 = never, E_14 = never, F_12 = never, G_11 = never, H_10 = never, I_9 = never, J_8 = never, K_7 = never, L_6 = never, M_5 = never, N_4 = never, O_3 = never, P_2 = never, Q_1 = never, R_1 = never>(this: A, ab: (_: A) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_14, ef: (_: E_14) => F_12, fg: (_: F_12) => G_11, gh: (_: G_11) => H_10, hi: (_: H_10) => I_9, ij: (_: I_9) => J_8, jk: (_: J_8) => K_7, kl: (_: K_7) => L_6, lm: (_: L_6) => M_5, mn: (_: M_5) => N_4, no: (_: N_4) => O_3, op: (_: O_3) => P_2, pq: (_: P_2) => Q_1, qr: (_: Q_1) => R_1): R_1;
|
|
76
|
+
pipe<A, B_17 = never, C_16 = never, D_15 = never, E_15 = never, F_13 = never, G_12 = never, H_11 = never, I_10 = never, J_9 = never, K_8 = never, L_7 = never, M_6 = never, N_5 = never, O_4 = never, P_3 = never, Q_2 = never, R_2 = never, S = never>(this: A, ab: (_: A) => B_17, bc: (_: B_17) => C_16, cd: (_: C_16) => D_15, de: (_: D_15) => E_15, ef: (_: E_15) => F_13, fg: (_: F_13) => G_12, gh: (_: G_12) => H_11, hi: (_: H_11) => I_10, ij: (_: I_10) => J_9, jk: (_: J_9) => K_8, kl: (_: K_8) => L_7, lm: (_: L_7) => M_6, mn: (_: M_6) => N_5, no: (_: N_5) => O_4, op: (_: O_4) => P_3, pq: (_: P_3) => Q_2, qr: (_: Q_2) => R_2, rs: (_: R_2) => S): S;
|
|
77
|
+
pipe<A, B_18 = never, C_17 = never, D_16 = never, E_16 = never, F_14 = never, G_13 = never, H_12 = never, I_11 = never, J_10 = never, K_9 = never, L_8 = never, M_7 = never, N_6 = never, O_5 = never, P_4 = never, Q_3 = never, R_3 = never, S_1 = never, T = never>(this: A, ab: (_: A) => B_18, bc: (_: B_18) => C_17, cd: (_: C_17) => D_16, de: (_: D_16) => E_16, ef: (_: E_16) => F_14, fg: (_: F_14) => G_13, gh: (_: G_13) => H_12, hi: (_: H_12) => I_11, ij: (_: I_11) => J_10, jk: (_: J_10) => K_9, kl: (_: K_9) => L_8, lm: (_: L_8) => M_7, mn: (_: M_7) => N_6, no: (_: N_6) => O_5, op: (_: O_5) => P_4, pq: (_: P_4) => Q_3, qr: (_: Q_3) => R_3, rs: (_: R_3) => S_1, st: (_: S_1) => T): T;
|
|
78
|
+
pipe<A, B_19 = never, C_18 = never, D_17 = never, E_17 = never, F_15 = never, G_14 = never, H_13 = never, I_12 = never, J_11 = never, K_10 = never, L_9 = never, M_8 = never, N_7 = never, O_6 = never, P_5 = never, Q_4 = never, R_4 = never, S_2 = never, T_1 = never, U = never>(this: A, ab: (_: A) => B_19, bc: (_: B_19) => C_18, cd: (_: C_18) => D_17, de: (_: D_17) => E_17, ef: (_: E_17) => F_15, fg: (_: F_15) => G_14, gh: (_: G_14) => H_13, hi: (_: H_13) => I_12, ij: (_: I_12) => J_11, jk: (_: J_11) => K_10, kl: (_: K_10) => L_9, lm: (_: L_9) => M_8, mn: (_: M_8) => N_7, no: (_: N_7) => O_6, op: (_: O_6) => P_5, pq: (_: P_5) => Q_4, qr: (_: Q_4) => R_4, rs: (_: R_4) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
|
|
79
|
+
pipe<A, B_20 = never, C_19 = never, D_18 = never, E_18 = never, F_16 = never, G_15 = never, H_14 = never, I_13 = never, J_12 = never, K_11 = never, L_10 = never, M_9 = never, N_8 = never, O_7 = never, P_6 = never, Q_5 = never, R_5 = never, S_3 = never, T_2 = never, U_1 = never>(this: A, ab: (_: A) => B_20, bc: (_: B_20) => C_19, cd: (_: C_19) => D_18, de: (_: D_18) => E_18, ef: (_: E_18) => F_16, fg: (_: F_16) => G_15, gh: (_: G_15) => H_14, hi: (_: H_14) => I_13, ij: (_: I_13) => J_12, jk: (_: J_12) => K_11, kl: (_: K_11) => L_10, lm: (_: L_10) => M_9, mn: (_: M_9) => N_8, no: (_: N_8) => O_7, op: (_: O_7) => P_6, pq: (_: P_6) => Q_5, qr: (_: Q_5) => R_5, rs: (_: R_5) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
|
|
80
|
+
toString(): string;
|
|
81
|
+
toJSON(): unknown;
|
|
82
|
+
[NodeInspectSymbol](): unknown;
|
|
83
|
+
};
|
|
84
|
+
use: <A>(fn: (transaction: ZeroTransaction<TSchema>, options: {
|
|
85
|
+
readonly signal: AbortSignal;
|
|
86
|
+
}) => PromiseLike<A>) => Effect.Effect<A, {
|
|
87
|
+
get message(): string;
|
|
88
|
+
readonly "~effect/Effect": Effect.Variance<never, /*elided*/ any, never>;
|
|
89
|
+
[Symbol.iterator](): Effect.EffectIterator<Effect.Effect<never, /*elided*/ any, never>>;
|
|
90
|
+
name: string;
|
|
91
|
+
stack?: string;
|
|
92
|
+
cause: Cause.Cause<unknown>;
|
|
93
|
+
readonly "~effect/ErrorReporter/ignore"?: boolean;
|
|
94
|
+
readonly "~effect/ErrorReporter/severity"?: import("effect/LogLevel").Severity;
|
|
95
|
+
readonly "~effect/ErrorReporter/attributes"?: Rec.ReadonlyRecord<string, unknown>;
|
|
96
|
+
pipe<A_1>(this: A_1): A_1;
|
|
97
|
+
pipe<A_1, B = never>(this: A_1, ab: (_: A_1) => B): B;
|
|
98
|
+
pipe<A_1, B_1 = never, C = never>(this: A_1, ab: (_: A_1) => B_1, bc: (_: B_1) => C): C;
|
|
99
|
+
pipe<A_1, B_2 = never, C_1 = never, D = never>(this: A_1, ab: (_: A_1) => B_2, bc: (_: B_2) => C_1, cd: (_: C_1) => D): D;
|
|
100
|
+
pipe<A_1, B_3 = never, C_2 = never, D_1 = never, E_1 = never>(this: A_1, ab: (_: A_1) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E_1): E_1;
|
|
101
|
+
pipe<A_1, B_4 = never, C_3 = never, D_2 = never, E_2 = never, F = never>(this: A_1, ab: (_: A_1) => B_4, bc: (_: B_4) => C_3, cd: (_: C_3) => D_2, de: (_: D_2) => E_2, ef: (_: E_2) => F): F;
|
|
102
|
+
pipe<A_1, B_5 = never, C_4 = never, D_3 = never, E_3 = never, F_1 = never, G = never>(this: A_1, ab: (_: A_1) => B_5, bc: (_: B_5) => C_4, cd: (_: C_4) => D_3, de: (_: D_3) => E_3, ef: (_: E_3) => F_1, fg: (_: F_1) => G): G;
|
|
103
|
+
pipe<A_1, B_6 = never, C_5 = never, D_4 = never, E_4 = never, F_2 = never, G_1 = never, H = never>(this: A_1, ab: (_: A_1) => B_6, bc: (_: B_6) => C_5, cd: (_: C_5) => D_4, de: (_: D_4) => E_4, ef: (_: E_4) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
|
|
104
|
+
pipe<A_1, B_7 = never, C_6 = never, D_5 = never, E_5 = never, F_3 = never, G_2 = never, H_1 = never, I = never>(this: A_1, ab: (_: A_1) => B_7, bc: (_: B_7) => C_6, cd: (_: C_6) => D_5, de: (_: D_5) => E_5, ef: (_: E_5) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
|
|
105
|
+
pipe<A_1, B_8 = never, C_7 = never, D_6 = never, E_6 = never, F_4 = never, G_3 = never, H_2 = never, I_1 = never, J = never>(this: A_1, ab: (_: A_1) => B_8, bc: (_: B_8) => C_7, cd: (_: C_7) => D_6, de: (_: D_6) => E_6, ef: (_: E_6) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
|
|
106
|
+
pipe<A_1, B_9 = never, C_8 = never, D_7 = never, E_7 = never, F_5 = never, G_4 = never, H_3 = never, I_2 = never, J_1 = never, K = never>(this: A_1, ab: (_: A_1) => B_9, bc: (_: B_9) => C_8, cd: (_: C_8) => D_7, de: (_: D_7) => E_7, ef: (_: E_7) => F_5, fg: (_: F_5) => G_4, gh: (_: G_4) => H_3, hi: (_: H_3) => I_2, ij: (_: I_2) => J_1, jk: (_: J_1) => K): K;
|
|
107
|
+
pipe<A_1, B_10 = never, C_9 = never, D_8 = never, E_8 = never, F_6 = never, G_5 = never, H_4 = never, I_3 = never, J_2 = never, K_1 = never, L = never>(this: A_1, ab: (_: A_1) => B_10, bc: (_: B_10) => C_9, cd: (_: C_9) => D_8, de: (_: D_8) => E_8, ef: (_: E_8) => F_6, fg: (_: F_6) => G_5, gh: (_: G_5) => H_4, hi: (_: H_4) => I_3, ij: (_: I_3) => J_2, jk: (_: J_2) => K_1, kl: (_: K_1) => L): L;
|
|
108
|
+
pipe<A_1, B_11 = never, C_10 = never, D_9 = never, E_9 = never, F_7 = never, G_6 = never, H_5 = never, I_4 = never, J_3 = never, K_2 = never, L_1 = never, M = never>(this: A_1, ab: (_: A_1) => B_11, bc: (_: B_11) => C_10, cd: (_: C_10) => D_9, de: (_: D_9) => E_9, ef: (_: E_9) => F_7, fg: (_: F_7) => G_6, gh: (_: G_6) => H_5, hi: (_: H_5) => I_4, ij: (_: I_4) => J_3, jk: (_: J_3) => K_2, kl: (_: K_2) => L_1, lm: (_: L_1) => M): M;
|
|
109
|
+
pipe<A_1, B_12 = never, C_11 = never, D_10 = never, E_10 = never, F_8 = never, G_7 = never, H_6 = never, I_5 = never, J_4 = never, K_3 = never, L_2 = never, M_1 = never, N = never>(this: A_1, ab: (_: A_1) => B_12, bc: (_: B_12) => C_11, cd: (_: C_11) => D_10, de: (_: D_10) => E_10, ef: (_: E_10) => F_8, fg: (_: F_8) => G_7, gh: (_: G_7) => H_6, hi: (_: H_6) => I_5, ij: (_: I_5) => J_4, jk: (_: J_4) => K_3, kl: (_: K_3) => L_2, lm: (_: L_2) => M_1, mn: (_: M_1) => N): N;
|
|
110
|
+
pipe<A_1, B_13 = never, C_12 = never, D_11 = never, E_11 = never, F_9 = never, G_8 = never, H_7 = never, I_6 = never, J_5 = never, K_4 = never, L_3 = never, M_2 = never, N_1 = never, O = never>(this: A_1, ab: (_: A_1) => B_13, bc: (_: B_13) => C_12, cd: (_: C_12) => D_11, de: (_: D_11) => E_11, ef: (_: E_11) => F_9, fg: (_: F_9) => G_8, gh: (_: G_8) => H_7, hi: (_: H_7) => I_6, ij: (_: I_6) => J_5, jk: (_: J_5) => K_4, kl: (_: K_4) => L_3, lm: (_: L_3) => M_2, mn: (_: M_2) => N_1, no: (_: N_1) => O): O;
|
|
111
|
+
pipe<A_1, B_14 = never, C_13 = never, D_12 = never, E_12 = never, F_10 = never, G_9 = never, H_8 = never, I_7 = never, J_6 = never, K_5 = never, L_4 = never, M_3 = never, N_2 = never, O_1 = never, P = never>(this: A_1, ab: (_: A_1) => B_14, bc: (_: B_14) => C_13, cd: (_: C_13) => D_12, de: (_: D_12) => E_12, ef: (_: E_12) => F_10, fg: (_: F_10) => G_9, gh: (_: G_9) => H_8, hi: (_: H_8) => I_7, ij: (_: I_7) => J_6, jk: (_: J_6) => K_5, kl: (_: K_5) => L_4, lm: (_: L_4) => M_3, mn: (_: M_3) => N_2, no: (_: N_2) => O_1, op: (_: O_1) => P): P;
|
|
112
|
+
pipe<A_1, B_15 = never, C_14 = never, D_13 = never, E_13 = never, F_11 = never, G_10 = never, H_9 = never, I_8 = never, J_7 = never, K_6 = never, L_5 = never, M_4 = never, N_3 = never, O_2 = never, P_1 = never, Q = never>(this: A_1, ab: (_: A_1) => B_15, bc: (_: B_15) => C_14, cd: (_: C_14) => D_13, de: (_: D_13) => E_13, ef: (_: E_13) => F_11, fg: (_: F_11) => G_10, gh: (_: G_10) => H_9, hi: (_: H_9) => I_8, ij: (_: I_8) => J_7, jk: (_: J_7) => K_6, kl: (_: K_6) => L_5, lm: (_: L_5) => M_4, mn: (_: M_4) => N_3, no: (_: N_3) => O_2, op: (_: O_2) => P_1, pq: (_: P_1) => Q): Q;
|
|
113
|
+
pipe<A_1, B_16 = never, C_15 = never, D_14 = never, E_14 = never, F_12 = never, G_11 = never, H_10 = never, I_9 = never, J_8 = never, K_7 = never, L_6 = never, M_5 = never, N_4 = never, O_3 = never, P_2 = never, Q_1 = never, R_1 = never>(this: A_1, ab: (_: A_1) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_14, ef: (_: E_14) => F_12, fg: (_: F_12) => G_11, gh: (_: G_11) => H_10, hi: (_: H_10) => I_9, ij: (_: I_9) => J_8, jk: (_: J_8) => K_7, kl: (_: K_7) => L_6, lm: (_: L_6) => M_5, mn: (_: M_5) => N_4, no: (_: N_4) => O_3, op: (_: O_3) => P_2, pq: (_: P_2) => Q_1, qr: (_: Q_1) => R_1): R_1;
|
|
114
|
+
pipe<A_1, B_17 = never, C_16 = never, D_15 = never, E_15 = never, F_13 = never, G_12 = never, H_11 = never, I_10 = never, J_9 = never, K_8 = never, L_7 = never, M_6 = never, N_5 = never, O_4 = never, P_3 = never, Q_2 = never, R_2 = never, S = never>(this: A_1, ab: (_: A_1) => B_17, bc: (_: B_17) => C_16, cd: (_: C_16) => D_15, de: (_: D_15) => E_15, ef: (_: E_15) => F_13, fg: (_: F_13) => G_12, gh: (_: G_12) => H_11, hi: (_: H_11) => I_10, ij: (_: I_10) => J_9, jk: (_: J_9) => K_8, kl: (_: K_8) => L_7, lm: (_: L_7) => M_6, mn: (_: M_6) => N_5, no: (_: N_5) => O_4, op: (_: O_4) => P_3, pq: (_: P_3) => Q_2, qr: (_: Q_2) => R_2, rs: (_: R_2) => S): S;
|
|
115
|
+
pipe<A_1, B_18 = never, C_17 = never, D_16 = never, E_16 = never, F_14 = never, G_13 = never, H_12 = never, I_11 = never, J_10 = never, K_9 = never, L_8 = never, M_7 = never, N_6 = never, O_5 = never, P_4 = never, Q_3 = never, R_3 = never, S_1 = never, T = never>(this: A_1, ab: (_: A_1) => B_18, bc: (_: B_18) => C_17, cd: (_: C_17) => D_16, de: (_: D_16) => E_16, ef: (_: E_16) => F_14, fg: (_: F_14) => G_13, gh: (_: G_13) => H_12, hi: (_: H_12) => I_11, ij: (_: I_11) => J_10, jk: (_: J_10) => K_9, kl: (_: K_9) => L_8, lm: (_: L_8) => M_7, mn: (_: M_7) => N_6, no: (_: N_6) => O_5, op: (_: O_5) => P_4, pq: (_: P_4) => Q_3, qr: (_: Q_3) => R_3, rs: (_: R_3) => S_1, st: (_: S_1) => T): T;
|
|
116
|
+
pipe<A_1, B_19 = never, C_18 = never, D_17 = never, E_17 = never, F_15 = never, G_14 = never, H_13 = never, I_12 = never, J_11 = never, K_10 = never, L_9 = never, M_8 = never, N_7 = never, O_6 = never, P_5 = never, Q_4 = never, R_4 = never, S_2 = never, T_1 = never, U = never>(this: A_1, ab: (_: A_1) => B_19, bc: (_: B_19) => C_18, cd: (_: C_18) => D_17, de: (_: D_17) => E_17, ef: (_: E_17) => F_15, fg: (_: F_15) => G_14, gh: (_: G_14) => H_13, hi: (_: H_13) => I_12, ij: (_: I_12) => J_11, jk: (_: J_11) => K_10, kl: (_: K_10) => L_9, lm: (_: L_9) => M_8, mn: (_: M_8) => N_7, no: (_: N_7) => O_6, op: (_: O_6) => P_5, pq: (_: P_5) => Q_4, qr: (_: Q_4) => R_4, rs: (_: R_4) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
|
|
117
|
+
pipe<A_1, B_20 = never, C_19 = never, D_18 = never, E_18 = never, F_16 = never, G_15 = never, H_14 = never, I_13 = never, J_12 = never, K_11 = never, L_10 = never, M_9 = never, N_8 = never, O_7 = never, P_6 = never, Q_5 = never, R_5 = never, S_3 = never, T_2 = never, U_1 = never>(this: A_1, ab: (_: A_1) => B_20, bc: (_: B_20) => C_19, cd: (_: C_19) => D_18, de: (_: D_18) => E_18, ef: (_: E_18) => F_16, fg: (_: F_16) => G_15, gh: (_: G_15) => H_14, hi: (_: H_14) => I_13, ij: (_: I_13) => J_12, jk: (_: J_12) => K_11, kl: (_: K_11) => L_10, lm: (_: L_10) => M_9, mn: (_: M_9) => N_8, no: (_: N_8) => O_7, op: (_: O_7) => P_6, pq: (_: P_6) => Q_5, qr: (_: Q_5) => R_5, rs: (_: R_5) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
|
|
118
|
+
toString(): string;
|
|
119
|
+
toJSON(): unknown;
|
|
120
|
+
[NodeInspectSymbol](): unknown;
|
|
121
|
+
readonly _tag: "ClientTransactionError";
|
|
122
|
+
}, {
|
|
123
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
124
|
+
readonly key: any;
|
|
125
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
126
|
+
}>;
|
|
127
|
+
schema: TSchema;
|
|
128
|
+
}, mutators: TMutators, options: Omit<ZeroOptions<TSchema, { [A in keyof TMutators]: TMutators[A] extends Mutators.AnyMutator<any, any> ? UnwrapMutator<TSchema, TMutators[A]> : { [B_21 in keyof TMutators[A]]: TMutators[A][B_21] extends Mutators.AnyMutator<any, any> ? UnwrapMutator<TSchema, TMutators[A][B_21]> : never; }; }>, "schema" | "mutators">) => Effect.Effect<Zero<TSchema, { [A in keyof TMutators]: TMutators[A] extends Mutators.AnyMutator<any, any> ? UnwrapMutator<TSchema, TMutators[A]> : { [B_21 in keyof TMutators[A]]: TMutators[A][B_21] extends Mutators.AnyMutator<any, any> ? UnwrapMutator<TSchema, TMutators[A][B_21]> : never; }; }, unknown>, never, import("effect/Scope").Scope | Exclude<Mutators.ExtractMutatorsRequirements<TMutators>, {
|
|
129
|
+
readonly Service: ZeroTransaction<TSchema>;
|
|
130
|
+
readonly key: any;
|
|
131
|
+
readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
|
|
132
|
+
}>>;
|
|
133
|
+
type UnwrapMutator<TSchema extends ZeroSchema, TMutators extends Mutators.AnyMutator> = Parameters<TMutators> extends [] ? (transaction: ZeroTransaction<TSchema>) => Promise<void> : (transaction: ZeroTransaction<TSchema>, args: Schema.Codec.Encoded<TMutators[typeof Mutators.MutatorSchemaSymbol]>) => Promise<void>;
|
|
134
|
+
declare const ClientArgsParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
|
|
12
135
|
readonly _tag: "ClientArgsParseError";
|
|
13
136
|
} & Readonly<A>;
|
|
14
137
|
export declare class ClientArgsParseError extends ClientArgsParseError_base<{
|
|
15
|
-
readonly cause: Cause.Cause<
|
|
138
|
+
readonly cause: Cause.Cause<Schema.SchemaError>;
|
|
16
139
|
}> {
|
|
17
140
|
}
|
|
18
141
|
export {};
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAK1C,eAAO,MAAM,IAAI,GAAwB,OAAO,SAAS,UAAU,EAAE,SAAS,SAAS,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DAkDxG,CAAC,kUAAD,CAAC;;;;GAVF,CAAC;AAEH,KAAK,aAAa,CAAC,OAAO,SAAS,UAAU,EAAE,SAAS,SAAS,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,GACpH,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GACxD,CACE,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,EACrC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,KACvE,OAAO,CAAC,IAAI,CAAC,CAAC;;;;AAYvB,qBAAa,oBAAqB,SAAQ,0BAAyC;IACjF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;CACjD,CAAC;CAAG"}
|
package/dist/client.js
CHANGED
|
@@ -6,18 +6,19 @@ import * as Exit from "effect/Exit";
|
|
|
6
6
|
import * as Match from "effect/Match";
|
|
7
7
|
import * as Predicate from "effect/Predicate";
|
|
8
8
|
import * as Rec from "effect/Record";
|
|
9
|
-
import * as Runtime from "effect/Runtime";
|
|
10
9
|
import * as Schema from "effect/Schema";
|
|
10
|
+
import { normalizeArgs } from "./internal/utils.js";
|
|
11
11
|
import * as Mutators from "./mutators.js";
|
|
12
12
|
export const make = Effect.fn(function* (transaction, mutators, options) {
|
|
13
|
-
const
|
|
13
|
+
const ctx = yield* Effect.context();
|
|
14
14
|
function unwrapMutator(mutator) {
|
|
15
15
|
return async (tx, args, _ctx) => {
|
|
16
|
-
const exit = await Schema.
|
|
17
|
-
|
|
16
|
+
const exit = await Schema.decodeUnknownEffect(mutator[Mutators.MutatorSchemaSymbol])(normalizeArgs(args)).pipe(Effect.catchTag("SchemaError", (e) => Effect.fail(new ClientArgsParseError({ cause: Cause.fail(e) }))), Effect.flatMap(mutator), Effect.provideService(transaction.Context, tx), Effect.runPromiseExitWith(ctx));
|
|
17
|
+
if (Exit.isFailure(exit)) {
|
|
18
18
|
// Extract underlying error bypassing FiberFailure
|
|
19
|
-
throw Cause.squash(
|
|
20
|
-
}
|
|
19
|
+
throw Cause.squash(exit.cause);
|
|
20
|
+
}
|
|
21
|
+
return exit.value;
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
const unwrappedMutators = Rec.map(mutators, (v) => Match.value(v).pipe(Match.when(Predicate.isFunction, unwrapMutator), Match.orElse(Rec.map(unwrapMutator))));
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoF,MAAM,gBAAgB,CAAC;AACxH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAoF,MAAM,gBAAgB,CAAC;AACxH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAK1C,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EACrC,WAA+C,EAC/C,QAAmB,EACnB,OAA8F;IAE9F,MAAM,GAAG,GACP,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAElB,CAAC;IAEN,SAAS,aAAa,CAAI,OAAgF;QACxG,OAAO,KAAK,EAAE,EAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,EAAE;YAC1E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC5G,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,EAC9C,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAC/B,CAAC;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,kDAAkD;gBAClD,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAChD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CACnC,CAAC;IAE1E,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CACjC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,OAAO,IAAI,IAAI,CAAC;YACd,GAAG,OAAO;YACV,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,iBAAiB;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,EACF,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAC7C,CAAC;AACJ,CAAC,CAAC,CAAC;AAmBH,MAAM,OAAO,oBAAqB,SAAQ,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAE/E;CAAG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as SynchronizedRef from "effect/SynchronizedRef";
|
|
5
|
+
import { MultipleTransactionsError, NoTransactionError } from "./server.js";
|
|
6
|
+
declare const ServerSynchronizationContext_base: Context.ServiceClass<ServerSynchronizationContext, "effect-zero/ServerSynchronizationContext", {
|
|
7
|
+
wasTransactionExecuted: SynchronizedRef.SynchronizedRef<boolean>;
|
|
8
|
+
}> & {
|
|
9
|
+
readonly make: Effect.Effect<{
|
|
10
|
+
wasTransactionExecuted: SynchronizedRef.SynchronizedRef<boolean>;
|
|
11
|
+
}, never, never>;
|
|
12
|
+
};
|
|
13
|
+
export declare class ServerSynchronizationContext extends ServerSynchronizationContext_base {
|
|
14
|
+
}
|
|
15
|
+
export declare const layer: Layer.Layer<ServerSynchronizationContext>;
|
|
16
|
+
export declare const guard: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, MultipleTransactionsError | E, ServerSynchronizationContext | R>;
|
|
17
|
+
export declare const finalize: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<void | A, NoTransactionError | E, ServerSynchronizationContext | R>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=server-synchronization-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-synchronization-context.d.ts","sourceRoot":"","sources":["../../src/internal/server-synchronization-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;;;;;;;;AAG5E,qBAAa,4BAA6B,SAAQ,iCASjD;CAAG;AAEJ,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAE3D,CAAC;AAGF,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sFAazD,CAAC;AAEL,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sFAyB5D,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as SynchronizedRef from "effect/SynchronizedRef";
|
|
5
|
+
import { MultipleTransactionsError, NoTransactionError } from "./server.js";
|
|
6
|
+
import { prefixId } from "./utils.js";
|
|
7
|
+
export class ServerSynchronizationContext extends Context.Service()(prefixId("ServerSynchronizationContext"), {
|
|
8
|
+
make: Effect.gen(function* () {
|
|
9
|
+
return {
|
|
10
|
+
wasTransactionExecuted: yield* SynchronizedRef.make(false),
|
|
11
|
+
};
|
|
12
|
+
}),
|
|
13
|
+
}) {
|
|
14
|
+
}
|
|
15
|
+
export const layer = Layer.effect(ServerSynchronizationContext)(ServerSynchronizationContext.make);
|
|
16
|
+
// Ensures that only one transaction is executed at a time and checks that another transaction wasn't already executed.
|
|
17
|
+
export const guard = (effect) => Effect.gen(function* () {
|
|
18
|
+
const ctx = yield* ServerSynchronizationContext;
|
|
19
|
+
return yield* SynchronizedRef.modifyEffect(ctx.wasTransactionExecuted, Effect.fn(function* (wasTransactionExecuted) {
|
|
20
|
+
if (wasTransactionExecuted) {
|
|
21
|
+
return yield* new MultipleTransactionsError();
|
|
22
|
+
}
|
|
23
|
+
const result = yield* effect;
|
|
24
|
+
return [result, true];
|
|
25
|
+
}));
|
|
26
|
+
});
|
|
27
|
+
export const finalize = (effect) => Effect.gen(function* () {
|
|
28
|
+
const { wasTransactionExecuted } = yield* ServerSynchronizationContext;
|
|
29
|
+
return yield* effect.pipe(
|
|
30
|
+
// Case #2 "One transaction then fail"
|
|
31
|
+
// If the transaction was executed successfully, swallow the error and just log it, otherwise re-throw it
|
|
32
|
+
Effect.catchCause(Effect.fn(function* (e) {
|
|
33
|
+
if (yield* SynchronizedRef.get(wasTransactionExecuted)) {
|
|
34
|
+
return yield* Effect.logError("Error occurred after transaction execution completed", e);
|
|
35
|
+
}
|
|
36
|
+
return yield* Effect.failCause(e);
|
|
37
|
+
})),
|
|
38
|
+
// Case #4 "Zero transactions then succeed"
|
|
39
|
+
// Check that the transaction was executed during the mutation
|
|
40
|
+
Effect.tap(Effect.gen(function* () {
|
|
41
|
+
if (!(yield* SynchronizedRef.get(wasTransactionExecuted))) {
|
|
42
|
+
return yield* new NoTransactionError();
|
|
43
|
+
}
|
|
44
|
+
})));
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=server-synchronization-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-synchronization-context.js","sourceRoot":"","sources":["../../src/internal/server-synchronization-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,4BAA6B,SAAQ,OAAO,CAAC,OAAO,EAAgC,CAC/F,QAAQ,CAAC,8BAA8B,CAAC,EACxC;IACE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACxB,OAAO;YACL,sBAAsB,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;SAC3D,CAAC;IACJ,CAAC,CAAC;CACH,CACF;CAAG;AAEJ,MAAM,CAAC,MAAM,KAAK,GAA8C,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CACxG,4BAA4B,CAAC,IAAI,CAClC,CAAC;AAEF,uHAAuH;AACvH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAU,MAA8B,EAAE,EAAE,CAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,4BAA4B,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,YAAY,CACxC,GAAG,CAAC,sBAAsB,EAC1B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,sBAAsB;QACzC,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,CAAC,IAAI,yBAAyB,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAU,MAA8B,EAAE,EAAE,CAClE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,sBAAsB,EAAE,GAAG,KAAK,CAAC,CAAC,4BAA4B,CAAC;IAEvE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI;IACvB,sCAAsC;IACtC,yGAAyG;IACzG,MAAM,CAAC,UAAU,CACf,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,sDAAsD,EAAE,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CACH;IACD,2CAA2C;IAC3C,8DAA8D;IAC9D,MAAM,CAAC,GAAG,CACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
import type { TransactionProviderInput } from "@rocicorp/zero/server";
|
|
2
2
|
import * as Context from "effect/Context";
|
|
3
|
-
|
|
4
|
-
import * as SynchronizedRef from "effect/SynchronizedRef";
|
|
5
|
-
declare const ServerTransactionInput_base: Context.TagClass<ServerTransactionInput, "effect-zero/ServerTransactionInput", TransactionProviderInput>;
|
|
3
|
+
declare const ServerTransactionInput_base: Context.ServiceClass<ServerTransactionInput, "effect-zero/ServerTransactionInput", TransactionProviderInput>;
|
|
6
4
|
export declare class ServerTransactionInput extends ServerTransactionInput_base {
|
|
7
5
|
}
|
|
8
|
-
declare const
|
|
9
|
-
readonly effect: Effect.Effect<{
|
|
10
|
-
wasTransactionExecuted: SynchronizedRef.SynchronizedRef<boolean>;
|
|
11
|
-
}, never, never>;
|
|
12
|
-
}>;
|
|
13
|
-
export declare class ServerSynchronizationContext extends ServerSynchronizationContext_base {
|
|
14
|
-
static guard: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E | MultipleTransactionsError, ServerSynchronizationContext | R>;
|
|
15
|
-
static finalize: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<void | A, E | NoTransactionError, ServerSynchronizationContext | R>;
|
|
16
|
-
}
|
|
17
|
-
declare const NoTransactionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
6
|
+
declare const NoTransactionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
18
7
|
readonly _tag: "NoTransactionError";
|
|
19
8
|
} & Readonly<A>;
|
|
20
9
|
export declare class NoTransactionError extends NoTransactionError_base {
|
|
21
10
|
message: string;
|
|
22
11
|
}
|
|
23
|
-
declare const MultipleTransactionsError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").
|
|
12
|
+
declare const MultipleTransactionsError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
24
13
|
readonly _tag: "MultipleTransactionsError";
|
|
25
14
|
} & Readonly<A>;
|
|
26
15
|
export declare class MultipleTransactionsError extends MultipleTransactionsError_base {
|
|
27
16
|
}
|
|
28
17
|
declare const OutOfOrderMutationErrorTypeId: unique symbol;
|
|
29
|
-
declare const OutOfOrderMutationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").
|
|
18
|
+
declare const OutOfOrderMutationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
30
19
|
readonly _tag: "OutOfOrderMutationError";
|
|
31
20
|
} & Readonly<A>;
|
|
32
21
|
export declare class OutOfOrderMutationError extends OutOfOrderMutationError_base<{
|
|
@@ -39,7 +28,7 @@ export declare class OutOfOrderMutationError extends OutOfOrderMutationError_bas
|
|
|
39
28
|
static is(e: unknown): e is OutOfOrderMutationError;
|
|
40
29
|
}
|
|
41
30
|
declare const MutationAlreadyProcessedErrorTypeId: unique symbol;
|
|
42
|
-
declare const MutationAlreadyProcessedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").
|
|
31
|
+
declare const MutationAlreadyProcessedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
43
32
|
readonly _tag: "MutationAlreadyProcessedError";
|
|
44
33
|
} & Readonly<A>;
|
|
45
34
|
export declare class MutationAlreadyProcessedError extends MutationAlreadyProcessedError_base<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;;AAK1C,qBAAa,sBAAuB,SAAQ,2BAE3C;CAAG;;;;AAEJ,qBAAa,kBAAmB,SAAQ,uBAAsC;IAC5E,OAAO,SAAuE;CAC/E;;;;AACD,qBAAa,yBAA0B,SAAQ,8BAA6C;CAAG;AAE/F,QAAA,MAAM,6BAA6B,eAAkD,CAAC;;;;AACtF,qBAAa,uBAAwB,SAAQ,6BAA4C;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1C,CAAC;IACA,QAAQ,CAAC,CAAC,6BAA6B,CAAC,SAAiC;IACzE,IAAa,OAAO,WAEnB;IACD,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,uBAAuB;CAGpD;AAED,QAAA,MAAM,mCAAmC,eAAwD,CAAC;;;;AAClG,qBAAa,6BAA8B,SAAQ,mCAAkD;IACnG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC,CAAC;IACA,QAAQ,CAAC,CAAC,mCAAmC,CAAC,SAAuC;IACrF,IAAa,OAAO,WAEnB;IACD,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,6BAA6B;CAG1D"}
|
package/dist/internal/server.js
CHANGED
|
@@ -1,45 +1,8 @@
|
|
|
1
1
|
import * as Context from "effect/Context";
|
|
2
2
|
import * as Data from "effect/Data";
|
|
3
|
-
import * as Effect from "effect/Effect";
|
|
4
3
|
import * as Predicate from "effect/Predicate";
|
|
5
|
-
import * as SynchronizedRef from "effect/SynchronizedRef";
|
|
6
4
|
import { prefixId } from "./utils.js";
|
|
7
|
-
export class ServerTransactionInput extends Context.
|
|
8
|
-
}
|
|
9
|
-
export class ServerSynchronizationContext extends Effect.Service()(prefixId("ServerSynchronizationContext"), {
|
|
10
|
-
effect: Effect.gen(function* () {
|
|
11
|
-
return {
|
|
12
|
-
wasTransactionExecuted: yield* SynchronizedRef.make(false),
|
|
13
|
-
};
|
|
14
|
-
}),
|
|
15
|
-
}) {
|
|
16
|
-
// Ensures that only one transaction is executed at a time and checks that another transaction wasn't already executed.
|
|
17
|
-
static guard = (effect) => Effect.flatMap(this, (ctx) => SynchronizedRef.modifyEffect(ctx.wasTransactionExecuted, Effect.fn(function* (wasTransactionExecuted) {
|
|
18
|
-
if (wasTransactionExecuted) {
|
|
19
|
-
return yield* new MultipleTransactionsError();
|
|
20
|
-
}
|
|
21
|
-
const result = yield* effect;
|
|
22
|
-
return [result, true];
|
|
23
|
-
})));
|
|
24
|
-
static finalize = (effect) => Effect.gen(this, function* () {
|
|
25
|
-
const wasTransactionExecuted = yield* this.pipe(Effect.map((ctx) => ctx.wasTransactionExecuted));
|
|
26
|
-
return yield* effect.pipe(
|
|
27
|
-
// Case #2 "One transaction then fail"
|
|
28
|
-
// If the transaction was executed successfully, swallow the error and just log it, otherwise re-throw it
|
|
29
|
-
Effect.catchAllCause(Effect.fn(function* (e) {
|
|
30
|
-
if (yield* wasTransactionExecuted) {
|
|
31
|
-
return yield* Effect.logError("Error occurred after transaction execution completed", e);
|
|
32
|
-
}
|
|
33
|
-
return yield* Effect.failCause(e);
|
|
34
|
-
})),
|
|
35
|
-
// Case #4 "Zero transactions then succeed"
|
|
36
|
-
// Check that the transaction was executed during the mutation
|
|
37
|
-
Effect.tap(Effect.gen(function* () {
|
|
38
|
-
if (!(yield* wasTransactionExecuted)) {
|
|
39
|
-
return yield* new NoTransactionError();
|
|
40
|
-
}
|
|
41
|
-
})));
|
|
42
|
-
});
|
|
5
|
+
export class ServerTransactionInput extends Context.Service()(prefixId("ServerTransactionInput")) {
|
|
43
6
|
}
|
|
44
7
|
export class NoTransactionError extends Data.TaggedError("NoTransactionError") {
|
|
45
8
|
message = "No transaction detected in a mutation, a transaction is required.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/internal/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,OAAO,sBAAuB,SAAQ,OAAO,CAAC,OAAO,EAAoD,CAC7G,QAAQ,CAAC,wBAAwB,CAAC,CACnC;CAAG;AAEJ,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;IAC5E,OAAO,GAAG,mEAAmE,CAAC;CAC/E;AACD,MAAM,OAAO,yBAA0B,SAAQ,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC;CAAG;AAE/F,MAAM,6BAA6B,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;AACtF,MAAM,OAAO,uBAAwB,SAAQ,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAIrF;IACS,CAAC,6BAA6B,CAAC,GAAG,6BAA6B,CAAC;IACzE,IAAa,OAAO;QAClB,OAAO,UAAU,IAAI,CAAC,QAAQ,qBAAqB,IAAI,CAAC,kBAAkB,iBAAiB,IAAI,CAAC,cAAc,EAAE,CAAC;IACnH,CAAC;IACD,MAAM,CAAC,EAAE,CAAC,CAAU;QAClB,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;IACjE,CAAC;CACF;AAED,MAAM,mCAAmC,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAClG,MAAM,OAAO,6BAA8B,SAAQ,IAAI,CAAC,WAAW,CAAC,+BAA+B,CAIjG;IACS,CAAC,mCAAmC,CAAC,GAAG,mCAAmC,CAAC;IACrF,IAAa,OAAO;QAClB,OAAO,0BAA0B,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,QAAQ,2CAA2C,IAAI,CAAC,MAAM,EAAE,CAAC;IAClI,CAAC;IACD,MAAM,CAAC,EAAE,CAAC,CAAU;QAClB,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;IACvE,CAAC;CACF"}
|