effect-zero 0.4.2 → 0.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/client-transaction.d.ts +77 -7
  2. package/dist/client-transaction.d.ts.map +1 -1
  3. package/dist/client-transaction.js +11 -7
  4. package/dist/client-transaction.js.map +1 -1
  5. package/dist/client.d.ts +119 -7
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +7 -6
  8. package/dist/client.js.map +1 -1
  9. package/dist/internal/server-synchronization-context.d.ts +19 -0
  10. package/dist/internal/server-synchronization-context.d.ts.map +1 -0
  11. package/dist/internal/server-synchronization-context.js +46 -0
  12. package/dist/internal/server-synchronization-context.js.map +1 -0
  13. package/dist/internal/server.d.ts +5 -16
  14. package/dist/internal/server.d.ts.map +1 -1
  15. package/dist/internal/server.js +1 -38
  16. package/dist/internal/server.js.map +1 -1
  17. package/dist/internal/server.test.js +7 -8
  18. package/dist/internal/server.test.js.map +1 -1
  19. package/dist/internal/utils.d.ts +7 -0
  20. package/dist/internal/utils.d.ts.map +1 -1
  21. package/dist/internal/utils.js +7 -0
  22. package/dist/internal/utils.js.map +1 -1
  23. package/dist/mutators.d.ts +1 -1
  24. package/dist/mutators.d.ts.map +1 -1
  25. package/dist/mutators.js +1 -1
  26. package/dist/query.d.ts +3 -5
  27. package/dist/query.d.ts.map +1 -1
  28. package/dist/query.js +6 -12
  29. package/dist/query.js.map +1 -1
  30. package/dist/result.d.ts +15 -15
  31. package/dist/result.d.ts.map +1 -1
  32. package/dist/result.js +11 -11
  33. package/dist/result.js.map +1 -1
  34. package/dist/server-transaction.d.ts +142 -15
  35. package/dist/server-transaction.d.ts.map +1 -1
  36. package/dist/server-transaction.js +24 -19
  37. package/dist/server-transaction.js.map +1 -1
  38. package/dist/server.d.ts +247 -12
  39. package/dist/server.d.ts.map +1 -1
  40. package/dist/server.js +21 -18
  41. package/dist/server.js.map +1 -1
  42. package/dist/types/common.d.ts +1 -1
  43. package/dist/types/common.d.ts.map +1 -1
  44. package/dist/types/error.d.ts +69 -48
  45. package/dist/types/error.d.ts.map +1 -1
  46. package/dist/types/error.js +38 -30
  47. package/dist/types/error.js.map +1 -1
  48. package/dist/types/push.d.ts +149 -149
  49. package/dist/types/push.d.ts.map +1 -1
  50. package/dist/types/push.js +45 -40
  51. package/dist/types/push.js.map +1 -1
  52. package/dist/types/queries.d.ts +42 -42
  53. package/dist/types/queries.d.ts.map +1 -1
  54. package/dist/types/queries.js +7 -7
  55. package/dist/types/queries.js.map +1 -1
  56. package/dist/types.test.js +13 -15
  57. package/dist/types.test.js.map +1 -1
  58. package/package.json +5 -7
  59. package/src/client-transaction.ts +13 -11
  60. package/src/client.ts +17 -19
  61. package/src/internal/server-synchronization-context.ts +64 -0
  62. package/src/internal/server.ts +3 -59
  63. package/src/internal/utils.ts +8 -0
  64. package/src/mutators.ts +2 -2
  65. package/src/query.ts +8 -20
  66. package/src/result.ts +40 -37
  67. package/src/server-transaction.ts +32 -37
  68. package/src/server.ts +34 -37
  69. package/src/types/error.ts +8 -8
  70. package/src/types/push.ts +22 -22
  71. package/src/types/queries.ts +7 -7
@@ -1,32 +1,36 @@
1
1
  import * as Cause from "effect/Cause";
2
- import * as Context from "effect/Context";
2
+ import * as Ctx from "effect/Context";
3
3
  import * as Data from "effect/Data";
4
4
  import * as Deferred from "effect/Deferred";
5
5
  import * as Effect from "effect/Effect";
6
6
  import * as Exit from "effect/Exit";
7
7
  import * as Layer from "effect/Layer";
8
8
  import * as Predicate from "effect/Predicate";
9
- import * as Runtime from "effect/Runtime";
10
- import { MutationAlreadyProcessedError, OutOfOrderMutationError, ServerSynchronizationContext, ServerTransactionInput, } from "./internal/server.js";
9
+ import { MutationAlreadyProcessedError, OutOfOrderMutationError, ServerTransactionInput } from "./internal/server.js";
10
+ import * as ServerSynchronizationContext from "./internal/server-synchronization-context.js";
11
11
  import { prefixId } from "./internal/utils.js";
12
12
  export const make = (id, database, clientTransaction) => {
13
- const ServerTransactionContext = Context.Tag(`${id}/ServerTransactionContext`)();
14
- const use = (fn) => Effect.flatMap(ServerTransactionContext, (ctx) => Effect.tryPromise({
15
- try: (signal) => fn(ctx.transaction, { signal }),
16
- catch: (error) => new ServerTransactionError({ cause: Cause.fail(error) }),
17
- }));
13
+ class Context extends Ctx.Service()(`${id}/ServerTransactionContext`) {
14
+ }
15
+ const use = (fn) => Effect.gen(function* () {
16
+ const ctx = yield* Context;
17
+ return yield* Effect.tryPromise({
18
+ try: (signal) => fn(ctx.transaction, { signal }),
19
+ catch: (error) => new ServerTransactionError({ cause: Cause.fail(error) }),
20
+ });
21
+ });
18
22
  const execute = Effect.fn(function* (effect) {
19
- const runtime = yield* Effect.runtime();
23
+ const ctx = yield* Effect.context();
20
24
  const result = yield* Deferred.make();
21
25
  const transactionInput = yield* ServerTransactionInput;
22
26
  yield* Effect.tryPromise({
23
27
  try: (signal) => database.transaction(async (transaction, transactionHooks) => {
24
- const exit = await Effect.zipRight(checkAndIncrementLastMutationId, effect).pipe(Effect.provide([
25
- Layer.succeed(ServerTransactionContext, { transaction, transactionHooks }),
26
- Layer.succeed(clientTransaction, transaction),
27
- ]), (effect) => Runtime.runPromiseExit(runtime, effect, { signal }));
28
- Deferred.unsafeDone(result, exit);
29
- return Exit.getOrElse(exit, () => {
28
+ const exit = await Effect.flatMap(checkAndIncrementLastMutationId, () => effect).pipe(Effect.provide([
29
+ Layer.succeed(Context, { transaction, transactionHooks }),
30
+ Layer.succeed(clientTransaction.Context, transaction),
31
+ ]), (effect) => Effect.runPromiseExitWith(ctx)(effect, { signal }));
32
+ Deferred.doneUnsafe(result, exit);
33
+ if (Exit.isFailure(exit)) {
30
34
  // This error's purpose is to differentiate between "external" errors
31
35
  // that originate from the user-defined mutator code and "internal" errors
32
36
  // that originate from our own code and the Zero API.
@@ -35,7 +39,8 @@ export const make = (id, database, clientTransaction) => {
35
39
  // are already covered by passing the Exit result to the Deferred, which is why
36
40
  // we have the ServerTransactionUserError silenced below in the pipe.
37
41
  throw new ServerTransactionUserError();
38
- });
42
+ }
43
+ return exit.value;
39
44
  }, transactionInput),
40
45
  catch: (error) => {
41
46
  if (ServerTransactionUserError.is(error)) {
@@ -46,10 +51,10 @@ export const make = (id, database, clientTransaction) => {
46
51
  return new ZeroDatabaseError({ cause: Cause.fail(error) });
47
52
  },
48
53
  }).pipe(Effect.catchTag("ServerTransactionUserError", () => Effect.void));
49
- return yield* result;
54
+ return yield* Deferred.await(result);
50
55
  }, ServerSynchronizationContext.guard);
51
56
  const checkAndIncrementLastMutationId = Effect.gen(function* () {
52
- const { transactionHooks } = yield* ServerTransactionContext;
57
+ const { transactionHooks } = yield* Context;
53
58
  const { clientID, mutationID: receivedMutationID } = yield* ServerTransactionInput;
54
59
  const { lastMutationID } = yield* Effect.tryPromise({
55
60
  try: () => transactionHooks.updateClientMutationID(),
@@ -70,7 +75,7 @@ export const make = (id, database, clientTransaction) => {
70
75
  });
71
76
  }
72
77
  });
73
- return Object.assign(ServerTransactionContext, { use, execute });
78
+ return { Context, use, execute };
74
79
  };
75
80
  class ServerTransactionError extends Data.TaggedError("ServerTransactionError") {
76
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server-transaction.js","sourceRoot":"","sources":["../src/server-transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-transaction.js","sourceRoot":"","sources":["../src/server-transaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,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;AAE9C,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtH,OAAO,KAAK,4BAA4B,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAS/C,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,EAAM,EACN,QAA4C,EAC5C,iBAAqD,EACrD,EAAE;IACF,MAAM,OAAQ,SAAQ,GAAG,CAAC,OAAO,EAG9B,CAAC,GAAG,EAAY,2BAAoC,CAAC;KAAG;IAE3D,MAAM,GAAG,GAAG,CACV,EAGmB,EACnB,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;QAC3B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC9B,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;YAChD,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,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAW,MAA8B;QAC1E,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAE9B,CAAC;QACJ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAA+D,CAAC;QAEnG,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC;QACvD,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YACvB,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CACd,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE;gBAC3D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CACnF,MAAM,CAAC,OAAO,CAAC;oBACb,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;oBACzD,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC;iBACtD,CAAC,EACF,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAC/D,CAAC;gBACF,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzB,qEAAqE;oBACrE,0EAA0E;oBAC1E,qDAAqD;oBACrD,6FAA6F;oBAC7F,0FAA0F;oBAC1F,+EAA+E;oBAC/E,qEAAqE;oBACrE,MAAM,IAAI,0BAA0B,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC,EAAE,gBAAgB,CAAC;YACtB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,0BAA0B,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,8GAA8G;gBAC9G,kGAAkG;gBAClG,OAAO,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;SACF,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1E,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,EAAE,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,+BAA+B,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1D,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC;QAC5C,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC;QAEnF,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAClD,GAAG,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,sBAAsB,EAAE;YACpD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,2BAA2B,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SAChF,CAAC,CAAC;QAEH,IAAI,kBAAkB,GAAG,cAAc,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,IAAI,6BAA6B,CAAC;gBAC9C,QAAQ;gBACR,QAAQ,EAAE,kBAAkB;gBAC5B,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,kBAAkB,GAAG,cAAc,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,IAAI,uBAAuB,CAAC;gBACxC,QAAQ;gBACR,kBAAkB;gBAClB,cAAc;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,sBAAuB,SAAQ,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAE5E;CAAG;AAEL,MAAM,2BAA4B,SAAQ,IAAI,CAAC,WAAW,CAAC,6BAA6B,CAEtF;CAAG;AACL,MAAM,iBAAkB,SAAQ,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAElE;CAAG;AAEL,MAAM,gCAAgC,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC5F,MAAM,0BAA2B,SAAQ,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC;IAC5E,CAAC,gCAAgC,CAAC,GAAG,gCAAgC,CAAC;IAC/E,MAAM,CAAC,EAAE,CAAC,CAAU;QAClB,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;IACpE,CAAC;CACF"}
package/dist/server.d.ts CHANGED
@@ -1,17 +1,251 @@
1
1
  import type { ReadonlyJSONValue, Schema as ZeroSchema } from "@rocicorp/zero";
2
2
  import * as Cause from "effect/Cause";
3
3
  import * as Effect from "effect/Effect";
4
- import type * as ParseResult from "effect/ParseResult";
5
- import { ServerSynchronizationContext, ServerTransactionInput } from "./internal/server.js";
4
+ import type { NodeInspectSymbol } from "effect/Inspectable";
5
+ import * as Rec from "effect/Record";
6
+ import * as Schema from "effect/Schema";
7
+ import { MutationAlreadyProcessedError, OutOfOrderMutationError, ServerTransactionInput } from "./internal/server.js";
8
+ import * as ServerSynchronizationContext from "./internal/server-synchronization-context.js";
6
9
  import * as Mutators from "./mutators.js";
7
10
  import { type MakeQueryResult } from "./query.js";
8
- import type * as ServerTransaction from "./server-transaction.js";
9
- type ServerTransactionContext<TSchema extends ZeroSchema, TTransaction> = Omit<ReturnType<typeof ServerTransaction.make<string, TSchema, TTransaction>>, "use">;
10
- export declare const processPush: <TSchema extends ZeroSchema, TTransaction, TMutators extends Mutators.AnyMutators>(transaction: ServerTransactionContext<TSchema, TTransaction>, mutators: TMutators, params: {
11
+ export declare const processPush: <TSchema extends ZeroSchema, TTransaction, TMutators extends Mutators.AnyMutators>(transaction: {
12
+ Context: {
13
+ new (_: never): {
14
+ readonly Service: {
15
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
16
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
17
+ };
18
+ readonly key: `${string}/ServerTransactionContext`;
19
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
20
+ };
21
+ readonly key: `${string}/ServerTransactionContext`;
22
+ of(this: void, self: {
23
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
24
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
25
+ }): {
26
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
27
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
28
+ };
29
+ context(self: {
30
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
31
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
32
+ }): import("effect/Context").Context<{
33
+ readonly Service: {
34
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
35
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
36
+ };
37
+ readonly key: `${string}/ServerTransactionContext`;
38
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
39
+ }>;
40
+ use<A, E, R>(f: (service: {
41
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
42
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
43
+ }) => Effect.Effect<A, E, R>): Effect.Effect<A, E, {
44
+ readonly Service: {
45
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
46
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
47
+ };
48
+ readonly key: `${string}/ServerTransactionContext`;
49
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
50
+ } | R>;
51
+ useSync<A>(f: (service: {
52
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
53
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
54
+ }) => A): Effect.Effect<A, never, {
55
+ readonly Service: {
56
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
57
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
58
+ };
59
+ readonly key: `${string}/ServerTransactionContext`;
60
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
61
+ }>;
62
+ readonly Identifier: {
63
+ readonly Service: {
64
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
65
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
66
+ };
67
+ readonly key: `${string}/ServerTransactionContext`;
68
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
69
+ };
70
+ readonly Service: {
71
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
72
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
73
+ };
74
+ readonly stack?: string | undefined;
75
+ asEffect(): Effect.Effect<{
76
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
77
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
78
+ }, never, {
79
+ readonly Service: {
80
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
81
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
82
+ };
83
+ readonly key: `${string}/ServerTransactionContext`;
84
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
85
+ }>;
86
+ readonly "~effect/Context/Service": import("effect/Context").ServiceTypeId;
87
+ pipe<A>(this: A): A;
88
+ pipe<A, B = never>(this: A, ab: (_: A) => B): B;
89
+ pipe<A, B_1 = never, C = never>(this: A, ab: (_: A) => B_1, bc: (_: B_1) => C): C;
90
+ 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;
91
+ 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;
92
+ 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;
93
+ 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;
94
+ 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;
95
+ 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;
96
+ 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;
97
+ 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;
98
+ 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;
99
+ 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;
100
+ 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;
101
+ 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;
102
+ 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;
103
+ 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;
104
+ 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;
105
+ 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;
106
+ 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;
107
+ 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;
108
+ 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;
109
+ toString(): string;
110
+ toJSON(): unknown;
111
+ [NodeInspectSymbol](): unknown;
112
+ [Symbol.iterator](): Effect.EffectIterator<import("effect/Context").Service<{
113
+ readonly Service: {
114
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
115
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
116
+ };
117
+ readonly key: `${string}/ServerTransactionContext`;
118
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
119
+ }, {
120
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
121
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
122
+ }>>;
123
+ };
124
+ use: <A>(fn: (transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>, options: {
125
+ readonly signal: AbortSignal;
126
+ }) => PromiseLike<A>) => Effect.Effect<A, {
127
+ asEffect(): Effect.Effect<never, /*elided*/ any, never>;
128
+ [Symbol.iterator](): Effect.EffectIterator</*elided*/ any>;
129
+ name: string;
130
+ message: string;
131
+ stack?: string;
132
+ cause: Cause.Cause<unknown>;
133
+ readonly "~effect/ErrorReporter/ignore"?: boolean;
134
+ readonly "~effect/ErrorReporter/severity"?: import("effect/LogLevel").Severity;
135
+ readonly "~effect/ErrorReporter/attributes"?: Rec.ReadonlyRecord<string, unknown>;
136
+ pipe<A_1>(this: A_1): A_1;
137
+ pipe<A_1, B = never>(this: A_1, ab: (_: A_1) => B): B;
138
+ pipe<A_1, B_1 = never, C = never>(this: A_1, ab: (_: A_1) => B_1, bc: (_: B_1) => C): C;
139
+ 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;
140
+ 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;
141
+ 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;
142
+ 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;
143
+ 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;
144
+ 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;
145
+ 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;
146
+ 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;
147
+ 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;
148
+ 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;
149
+ 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;
150
+ 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;
151
+ 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;
152
+ 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;
153
+ 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;
154
+ 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;
155
+ 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;
156
+ 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;
157
+ 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;
158
+ readonly _tag: "ServerTransactionError";
159
+ }, {
160
+ readonly Service: {
161
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
162
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
163
+ };
164
+ readonly key: `${string}/ServerTransactionContext`;
165
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
166
+ }>;
167
+ execute: <A, E_19, R_6>(effect: Effect.Effect<A, E_19, R_6>) => Effect.Effect<A, import("./internal/server.js").MultipleTransactionsError | OutOfOrderMutationError | MutationAlreadyProcessedError | {
168
+ asEffect(): Effect.Effect<never, /*elided*/ any, never>;
169
+ [Symbol.iterator](): Effect.EffectIterator</*elided*/ any>;
170
+ name: string;
171
+ message: string;
172
+ stack?: string;
173
+ cause: Cause.Cause<unknown>;
174
+ readonly "~effect/ErrorReporter/ignore"?: boolean;
175
+ readonly "~effect/ErrorReporter/severity"?: import("effect/LogLevel").Severity;
176
+ readonly "~effect/ErrorReporter/attributes"?: Rec.ReadonlyRecord<string, unknown>;
177
+ pipe<A_1>(this: A_1): A_1;
178
+ pipe<A_1, B = never>(this: A_1, ab: (_: A_1) => B): B;
179
+ pipe<A_1, B_1 = never, C = never>(this: A_1, ab: (_: A_1) => B_1, bc: (_: B_1) => C): C;
180
+ 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;
181
+ pipe<A_1, B_3 = never, C_2 = never, D_1 = never, E_20 = never>(this: A_1, ab: (_: A_1) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E_20): E_20;
182
+ pipe<A_1, B_4 = never, C_3 = never, D_2 = never, E_21 = 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_21, ef: (_: E_21) => F): F;
183
+ pipe<A_1, B_5 = never, C_4 = never, D_3 = never, E_22 = 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_22, ef: (_: E_22) => F_1, fg: (_: F_1) => G): G;
184
+ pipe<A_1, B_6 = never, C_5 = never, D_4 = never, E_23 = 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_23, ef: (_: E_23) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
185
+ pipe<A_1, B_7 = never, C_6 = never, D_5 = never, E_24 = 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_24, ef: (_: E_24) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
186
+ pipe<A_1, B_8 = never, C_7 = never, D_6 = never, E_25 = 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_25, ef: (_: E_25) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
187
+ pipe<A_1, B_9 = never, C_8 = never, D_7 = never, E_26 = 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_26, ef: (_: E_26) => 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;
188
+ pipe<A_1, B_10 = never, C_9 = never, D_8 = never, E_27 = 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_27, ef: (_: E_27) => 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;
189
+ pipe<A_1, B_11 = never, C_10 = never, D_9 = never, E_28 = 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_28, ef: (_: E_28) => 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;
190
+ pipe<A_1, B_12 = never, C_11 = never, D_10 = never, E_29 = 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_29, ef: (_: E_29) => 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;
191
+ pipe<A_1, B_13 = never, C_12 = never, D_11 = never, E_30 = 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_30, ef: (_: E_30) => 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;
192
+ pipe<A_1, B_14 = never, C_13 = never, D_12 = never, E_31 = 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_31, ef: (_: E_31) => 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;
193
+ pipe<A_1, B_15 = never, C_14 = never, D_13 = never, E_32 = 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_32, ef: (_: E_32) => 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;
194
+ pipe<A_1, B_16 = never, C_15 = never, D_14 = never, E_33 = 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_7 = never>(this: A_1, ab: (_: A_1) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_33, ef: (_: E_33) => 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_7): R_7;
195
+ pipe<A_1, B_17 = never, C_16 = never, D_15 = never, E_34 = 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_8 = 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_34, ef: (_: E_34) => 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_8, rs: (_: R_8) => S): S;
196
+ pipe<A_1, B_18 = never, C_17 = never, D_16 = never, E_35 = 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_9 = 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_35, ef: (_: E_35) => 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_9, rs: (_: R_9) => S_1, st: (_: S_1) => T): T;
197
+ pipe<A_1, B_19 = never, C_18 = never, D_17 = never, E_36 = 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_10 = 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_36, ef: (_: E_36) => 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_10, rs: (_: R_10) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
198
+ pipe<A_1, B_20 = never, C_19 = never, D_18 = never, E_37 = 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_11 = 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_37, ef: (_: E_37) => 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_11, rs: (_: R_11) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
199
+ readonly _tag: "UpdateClientMutationIdError";
200
+ } | {
201
+ asEffect(): Effect.Effect<never, /*elided*/ any, never>;
202
+ [Symbol.iterator](): Effect.EffectIterator</*elided*/ any>;
203
+ name: string;
204
+ message: string;
205
+ stack?: string;
206
+ cause: Cause.Cause<unknown>;
207
+ readonly "~effect/ErrorReporter/ignore"?: boolean;
208
+ readonly "~effect/ErrorReporter/severity"?: import("effect/LogLevel").Severity;
209
+ readonly "~effect/ErrorReporter/attributes"?: Rec.ReadonlyRecord<string, unknown>;
210
+ pipe<A_1>(this: A_1): A_1;
211
+ pipe<A_1, B = never>(this: A_1, ab: (_: A_1) => B): B;
212
+ pipe<A_1, B_1 = never, C = never>(this: A_1, ab: (_: A_1) => B_1, bc: (_: B_1) => C): C;
213
+ 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;
214
+ pipe<A_1, B_3 = never, C_2 = never, D_1 = never, E_20 = never>(this: A_1, ab: (_: A_1) => B_3, bc: (_: B_3) => C_2, cd: (_: C_2) => D_1, de: (_: D_1) => E_20): E_20;
215
+ pipe<A_1, B_4 = never, C_3 = never, D_2 = never, E_21 = 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_21, ef: (_: E_21) => F): F;
216
+ pipe<A_1, B_5 = never, C_4 = never, D_3 = never, E_22 = 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_22, ef: (_: E_22) => F_1, fg: (_: F_1) => G): G;
217
+ pipe<A_1, B_6 = never, C_5 = never, D_4 = never, E_23 = 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_23, ef: (_: E_23) => F_2, fg: (_: F_2) => G_1, gh: (_: G_1) => H): H;
218
+ pipe<A_1, B_7 = never, C_6 = never, D_5 = never, E_24 = 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_24, ef: (_: E_24) => F_3, fg: (_: F_3) => G_2, gh: (_: G_2) => H_1, hi: (_: H_1) => I): I;
219
+ pipe<A_1, B_8 = never, C_7 = never, D_6 = never, E_25 = 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_25, ef: (_: E_25) => F_4, fg: (_: F_4) => G_3, gh: (_: G_3) => H_2, hi: (_: H_2) => I_1, ij: (_: I_1) => J): J;
220
+ pipe<A_1, B_9 = never, C_8 = never, D_7 = never, E_26 = 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_26, ef: (_: E_26) => 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;
221
+ pipe<A_1, B_10 = never, C_9 = never, D_8 = never, E_27 = 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_27, ef: (_: E_27) => 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;
222
+ pipe<A_1, B_11 = never, C_10 = never, D_9 = never, E_28 = 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_28, ef: (_: E_28) => 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;
223
+ pipe<A_1, B_12 = never, C_11 = never, D_10 = never, E_29 = 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_29, ef: (_: E_29) => 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;
224
+ pipe<A_1, B_13 = never, C_12 = never, D_11 = never, E_30 = 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_30, ef: (_: E_30) => 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;
225
+ pipe<A_1, B_14 = never, C_13 = never, D_12 = never, E_31 = 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_31, ef: (_: E_31) => 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;
226
+ pipe<A_1, B_15 = never, C_14 = never, D_13 = never, E_32 = 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_32, ef: (_: E_32) => 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;
227
+ pipe<A_1, B_16 = never, C_15 = never, D_14 = never, E_33 = 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_7 = never>(this: A_1, ab: (_: A_1) => B_16, bc: (_: B_16) => C_15, cd: (_: C_15) => D_14, de: (_: D_14) => E_33, ef: (_: E_33) => 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_7): R_7;
228
+ pipe<A_1, B_17 = never, C_16 = never, D_15 = never, E_34 = 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_8 = 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_34, ef: (_: E_34) => 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_8, rs: (_: R_8) => S): S;
229
+ pipe<A_1, B_18 = never, C_17 = never, D_16 = never, E_35 = 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_9 = 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_35, ef: (_: E_35) => 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_9, rs: (_: R_9) => S_1, st: (_: S_1) => T): T;
230
+ pipe<A_1, B_19 = never, C_18 = never, D_17 = never, E_36 = 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_10 = 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_36, ef: (_: E_36) => 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_10, rs: (_: R_10) => S_2, st: (_: S_2) => T_1, tu: (_: T_1) => U): U;
231
+ pipe<A_1, B_20 = never, C_19 = never, D_18 = never, E_37 = 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_11 = 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_37, ef: (_: E_37) => 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_11, rs: (_: R_11) => S_3, st: (_: S_3) => T_2, tu: (_: T_2) => U_1): U_1;
232
+ readonly _tag: "ZeroDatabaseError";
233
+ } | E_19, ServerTransactionInput | ServerSynchronizationContext.ServerSynchronizationContext | Exclude<R_6, {
234
+ readonly Service: {
235
+ transaction: import("@rocicorp/zero").ServerTransaction<TSchema, TTransaction>;
236
+ transactionHooks: import("@rocicorp/zero/server").TransactionProviderHooks;
237
+ };
238
+ readonly key: `${string}/ServerTransactionContext`;
239
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
240
+ } | {
241
+ readonly Service: import("@rocicorp/zero").Transaction<TSchema>;
242
+ readonly key: any;
243
+ readonly "~effect/Context/Service": typeof import("effect/Context").ServiceTypeId;
244
+ }>>;
245
+ }, mutators: TMutators, params: {
11
246
  readonly schema: string;
12
247
  readonly appID: string;
13
248
  }, request: {
14
- readonly auth?: string | undefined;
15
249
  readonly timestamp: number;
16
250
  readonly clientGroupID: string;
17
251
  readonly mutations: readonly ({
@@ -60,8 +294,9 @@ export declare const processPush: <TSchema extends ZeroSchema, TTransaction, TMu
60
294
  readonly clientID: string;
61
295
  })[];
62
296
  readonly pushVersion: number;
63
- readonly schemaVersion?: number | undefined;
64
297
  readonly requestID: string;
298
+ readonly auth?: string | undefined;
299
+ readonly schemaVersion?: number | undefined;
65
300
  }) => Effect.Effect<{
66
301
  error: "unsupportedPushVersion";
67
302
  mutations?: undefined;
@@ -83,8 +318,8 @@ export declare const processPush: <TSchema extends ZeroSchema, TTransaction, TMu
83
318
  };
84
319
  }[];
85
320
  error?: undefined;
86
- }, CustomMutationExpectedError, Exclude<Exclude<Mutators.ExtractMutatorsRequirements<TMutators>, ServerTransactionInput>, ServerSynchronizationContext>>;
87
- declare const CustomMutationExpectedError_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]; }) => Cause.YieldableError & {
321
+ }, CustomMutationExpectedError, Exclude<Exclude<Mutators.ExtractMutatorsRequirements<TMutators>, ServerTransactionInput>, ServerSynchronizationContext.ServerSynchronizationContext>>;
322
+ declare const CustomMutationExpectedError_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 & {
88
323
  readonly _tag: "CustomMutationExpectedError";
89
324
  } & Readonly<A>;
90
325
  declare class CustomMutationExpectedError extends CustomMutationExpectedError_base {
@@ -132,8 +367,8 @@ export declare const handleQuery: <E, R1, R2>(queries: MakeQueryResult<E, R1, R2
132
367
  queryIDs: string[];
133
368
  origin: "zeroCache";
134
369
  reason: "parse" | "internal" | "timeout";
135
- }], ParseResult.ParseError | E | QueryNotFound | QueryRequestError, R1 | R2>;
136
- declare const QueryNotFound_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]; }) => Cause.YieldableError & {
370
+ }], Schema.SchemaError | E | QueryNotFound | QueryRequestError, R1 | R2>;
371
+ declare const QueryNotFound_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 & {
137
372
  readonly _tag: "QueryNotFound";
138
373
  } & Readonly<A>;
139
374
  declare class QueryNotFound extends QueryNotFound_base<{
@@ -141,7 +376,7 @@ declare class QueryNotFound extends QueryNotFound_base<{
141
376
  }> {
142
377
  get message(): string;
143
378
  }
144
- declare const QueryRequestError_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]; }) => Cause.YieldableError & {
379
+ declare const QueryRequestError_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 & {
145
380
  readonly _tag: "QueryRequestError";
146
381
  } & Readonly<A>;
147
382
  declare class QueryRequestError extends QueryRequestError_base<{
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,KAAK,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAOvD,OAAO,EAGL,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAQlE,KAAK,wBAAwB,CAAC,OAAO,SAAS,UAAU,EAAE,YAAY,IAAI,IAAI,CAC5E,UAAU,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EACxE,KAAK,CACN,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,UAAU,EAC1B,YAAY,EACZ,SAAS,SAAS,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wJAyCtC,CAAC;;;;AA+EH,cAAM,2BAA4B,SAAQ,gCAA+C;CAAG;AAwB5F,eAAO,MAAM,WAAW,GAAwB,CAAC,EAAE,EAAE,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA2BvD,CAAC;;;;AAEH,cAAM,aAAc,SAAQ,mBAAkC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;IAC7E,IAAa,OAAO,WAEnB;CACF;;;;AAYD,cAAM,iBAAkB,SAAQ,uBAAsC;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;CAAG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtH,OAAO,KAAK,4BAA4B,MAAM,8CAA8C,CAAC;AAE7F,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,eAAe,EAAmC,MAAM,YAAY,CAAC;AAWnF,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,UAAU,EAC1B,YAAY,EACZ,SAAS,SAAS,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qLAyCtC,CAAC;;;;AAiFH,cAAM,2BAA4B,SAAQ,gCAA+C;CAAG;AAwB5F,eAAO,MAAM,WAAW,GAAwB,CAAC,EAAE,EAAE,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEA+BvD,CAAC;;;;AAEH,cAAM,aAAc,SAAQ,mBAAkC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;IAC7E,IAAa,OAAO,WAEnB;CACF;;;;AAYD,cAAM,iBAAkB,SAAQ,uBAAsC;IAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;CAAG"}
package/dist/server.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { handleQueryRequest } from "@rocicorp/zero/server";
2
2
  import * as Arr from "effect/Array";
3
3
  import * as Cause from "effect/Cause";
4
- import * as Chunk from "effect/Chunk";
5
4
  import * as Data from "effect/Data";
6
5
  import * as Effect from "effect/Effect";
7
6
  import * as Exit from "effect/Exit";
@@ -10,12 +9,12 @@ import * as Match from "effect/Match";
10
9
  import * as Option from "effect/Option";
11
10
  import * as Predicate from "effect/Predicate";
12
11
  import * as Rec from "effect/Record";
13
- import * as Runtime from "effect/Runtime";
14
12
  import * as Schema from "effect/Schema";
15
13
  import * as Stream from "effect/Stream";
16
14
  import * as Str from "effect/String";
17
- import { MutationAlreadyProcessedError, OutOfOrderMutationError, ServerSynchronizationContext, ServerTransactionInput, } from "./internal/server.js";
18
- import { prefixId } from "./internal/utils.js";
15
+ import { MutationAlreadyProcessedError, OutOfOrderMutationError, ServerTransactionInput } from "./internal/server.js";
16
+ import * as ServerSynchronizationContext from "./internal/server-synchronization-context.js";
17
+ import { normalizeArgs, prefixId } from "./internal/utils.js";
19
18
  import * as Mutators from "./mutators.js";
20
19
  import { QueryNameSymbol, RunQuerySymbol } from "./query.js";
21
20
  import * as Types from "./types/push.js";
@@ -27,28 +26,28 @@ export const processPush = Effect.fn(function* (transaction, mutators, params, r
27
26
  if (mutation.type !== "custom") {
28
27
  return yield* new CustomMutationExpectedError();
29
28
  }
30
- return yield* processMutation(mutators, mutation).pipe(Effect.catchAll((e) => processMutationError(transaction, e)), Effect.map((result) => Types.MutationResponse.make({ id: { id: mutation.id, clientID: mutation.clientID }, result })), Effect.provideService(ServerTransactionInput, {
29
+ return yield* processMutation(mutators, mutation).pipe(Effect.catch((e) => processMutationError(transaction, e)), Effect.map((result) => Types.MutationResponse.make({ id: { id: mutation.id, clientID: mutation.clientID }, result })), Effect.provideService(ServerTransactionInput, {
31
30
  clientID: mutation.clientID,
32
31
  mutationID: mutation.id,
33
32
  clientGroupID: request.clientGroupID,
34
33
  upstreamSchema: params.schema,
35
- }), Effect.provide(ServerSynchronizationContext.Default));
34
+ }), Effect.provide(ServerSynchronizationContext.layer));
36
35
  })),
37
36
  // We only stop processing if the mutation is out of order.
38
37
  // If the mutation has already been processed or if it returns an application error,
39
38
  // we continue processing the next mutation.
40
39
  Stream.takeUntil(({ result }) => Predicate.hasProperty(result, "error") && result.error === "oooMutation"), Stream.runCollect);
41
- return { mutations: Chunk.toArray(responses) };
40
+ return { mutations: responses };
42
41
  });
43
42
  const processMutation = Effect.fn(function* (mutators, mutation) {
44
43
  // Support both "namespace|name" and "namespace.name" formats, and single-segment names.
45
44
  const [namespace, name] = mutation.name.includes("|") ? Str.split(mutation.name, "|") : Str.split(mutation.name, ".");
46
- const mutator = yield* Fn.pipe(mutators, Rec.get(namespace), Option.flatMap((mutator) => Match.value([mutator, name]).pipe(Match.when([Predicate.isRecord, Predicate.isString], ([mutator, name]) => Rec.get(name)(mutator)), Match.when([Predicate.isFunction, Predicate.isUndefined], ([mutator]) => Option.some(mutator)), Match.orElse(() => Option.none()))), Effect.catchTag("NoSuchElementException", () => new MutatorNotFoundError({ name: mutation.name })));
47
- const args = yield* Schema.decode(mutator[Mutators.MutatorSchemaSymbol])(mutation.args[0]).pipe(Effect.catchTag("ParseError", (e) => new ServerArgsParseError({ cause: Cause.fail(e) })));
45
+ const mutator = yield* Fn.pipe(mutators, Rec.get(namespace), Option.flatMap((mutator) => Match.value([mutator, name]).pipe(Match.when([Predicate.isObject, Predicate.isString], ([mutator, name]) => Rec.get(name)(mutator)), Match.when([Predicate.isFunction, Predicate.isUndefined], ([mutator]) => Option.some(mutator)), Match.orElse(() => Option.none()))), Effect.fromOption, Effect.catchTag("NoSuchElementError", () => Effect.fail(new MutatorNotFoundError({ name: mutation.name }))));
46
+ const args = yield* Schema.decodeUnknownEffect(mutator[Mutators.MutatorSchemaSymbol])(normalizeArgs(mutation.args[0])).pipe(Effect.catchTag("SchemaError", (e) => Effect.fail(new ServerArgsParseError({ cause: Cause.fail(e) }))));
48
47
  return yield* mutator(args).pipe(ServerSynchronizationContext.finalize, Effect.as({}), Effect.catchIf(OutOfOrderMutationError.is, (e) => Effect.logError(e.message).pipe(Effect.as({ error: "oooMutation", details: e.message }))), Effect.catchIf(MutationAlreadyProcessedError.is, (e) => Effect.logWarning(e.message).pipe(Effect.as({ error: "alreadyProcessed", details: e.message }))),
49
48
  // Case #5 "Zero transactions then fail" / #6 "Fail before transaction"
50
49
  // Catches all errors that are produced before the transaction is executed
51
- Effect.catchAllCause((cause) => new MutationUserError({ cause })));
50
+ Effect.catchCause((cause) => Effect.fail(new MutationUserError({ cause }))));
52
51
  });
53
52
  const processMutationError = Effect.fn(function* (transaction, e) {
54
53
  const { clientID, mutationID } = yield* ServerTransactionInput;
@@ -59,13 +58,14 @@ const processMutationError = Effect.fn(function* (transaction, e) {
59
58
  details: errorMessage,
60
59
  };
61
60
  yield* transaction
62
- .execute(Effect.flatMap(transaction, ({ transactionHooks }) => {
63
- return Effect.tryPromise({
61
+ .execute(Effect.gen(function* () {
62
+ const { transactionHooks } = yield* transaction.Context;
63
+ return yield* Effect.tryPromise({
64
64
  try: () => transactionHooks.writeMutationResult({ id: { id: mutationID, clientID }, result: appError }),
65
65
  catch: (error) => new WriteMutationResultError({ cause: Cause.fail(error) }),
66
66
  });
67
67
  }))
68
- .pipe(Effect.catchAllCause(Effect.logError));
68
+ .pipe(Effect.catchCause(Effect.logError));
69
69
  yield* Effect.logWarning(`Mutation ${mutationID} for client ${clientID} was retried after an error: ${e}`);
70
70
  return appError;
71
71
  });
@@ -89,12 +89,15 @@ class MutationUserError extends Data.TaggedError("MutationUserError") {
89
89
  }
90
90
  }
91
91
  export const handleQuery = Effect.fn(function* (queries, schema, payload) {
92
- const runtime = yield* Effect.runtime();
92
+ const ctx = yield* Effect.context();
93
93
  return yield* Effect.tryPromise({
94
- try: () => handleQueryRequest((name, args) => Arr.findFirst(queries, (q) => q[QueryNameSymbol] === name).pipe(Effect.catchTag("NoSuchElementException", () => new QueryNotFound({ name })), Effect.flatMap((query) => query[RunQuerySymbol]({ _tag: "Encoded", args })), (effect) => Runtime.runSyncExit(runtime, effect), Exit.getOrElse((cause) => {
95
- throw new QueryUserError({ cause });
96
- })), schema, payload),
97
- catch: (e) => Option.liftPredicate(e, (QueryUserError.is)).pipe(Option.flatMap((e) => Cause.failureOption(e.cause)), Option.getOrElse(() => new QueryRequestError({ cause: Cause.fail(e) }))),
94
+ try: () => handleQueryRequest((name, args) => Arr.findFirst(queries, (q) => q[QueryNameSymbol] === name).pipe(Effect.fromOption, Effect.catchTag("NoSuchElementError", () => Effect.fail(new QueryNotFound({ name }))), Effect.flatMap((query) => query[RunQuerySymbol]({ _tag: "Encoded", args })), Effect.runSyncExitWith(ctx), (exit) => {
95
+ if (Exit.isFailure(exit)) {
96
+ throw new QueryUserError({ cause: exit.cause });
97
+ }
98
+ return exit.value;
99
+ }), schema, payload),
100
+ catch: (e) => Option.liftPredicate(e, (QueryUserError.is)).pipe(Option.flatMap((e) => Cause.findErrorOption(e.cause)), Option.getOrElse(() => new QueryRequestError({ cause: Cause.fail(e) }))),
98
101
  });
99
102
  });
100
103
  class QueryNotFound extends Data.TaggedError("QueryNotFound") {