effect-zero 0.9.0 → 0.9.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/mutator.d.ts CHANGED
@@ -7,13 +7,14 @@ import { ContextSymbol } from "./client-transaction.js";
7
7
  export declare const RegistryTypeId: unique symbol;
8
8
  /**
9
9
  * A mutator that isn't part of a registry yet, made with {@link make}. Like `defineMutator`, it gets its name
10
- * from its path in the {@link registry}.
10
+ * from its path in the {@link registry}. `R` is the services its body requires, and `RD` the services decoding its
11
+ * payload requires.
11
12
  */
12
- export interface Definition<Type, Encoded, E, R> {
13
- readonly payload: Schema.Codec<Type, Encoded, R>;
13
+ export interface Definition<Type, Encoded, E, R, RD = never> {
14
+ readonly payload: Schema.Codec<Type, Encoded, RD>;
14
15
  readonly mutator: (args: Type) => Effect.Effect<unknown, E, R>;
15
16
  }
16
- export type AnyDefinition = Definition<any, any, any, any>;
17
+ export type AnyDefinition = Definition<any, any, any, any, any>;
17
18
  export type Definitions = {
18
19
  readonly [key: string]: AnyDefinition | Definitions;
19
20
  };
@@ -21,7 +22,7 @@ export type Definitions = {
21
22
  * A registered mutator. Calling it encodes `args` and returns a request for `ZfxClient.mutate(zero, request)`, or
22
23
  * for Zero's own `zero.mutate(request)`. It is also a Zero `Mutator`, so the registry can be passed to Zero.
23
24
  */
24
- export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded, E, R> {
25
+ export interface Mutator<Type, Encoded, E, R, RD = never> extends Definition<Type, Encoded, E, R, RD> {
25
26
  (args: Type): MutateRequest<Type>;
26
27
  readonly mutatorName: string;
27
28
  /** Runs the mutator for Zero, which calls it with the transaction and the `context` from `ZfxClient.make`. */
@@ -32,13 +33,13 @@ export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded,
32
33
  }) => Promise<void>;
33
34
  readonly "~": "Mutator";
34
35
  }
35
- export type AnyMutator = Mutator<any, any, any, any>;
36
+ export type AnyMutator = Mutator<any, any, any, any, any>;
36
37
  /** A request to run a mutator, for `ZfxClient.mutate` or Zero's own `zero.mutate`. */
37
38
  export type MutateRequest<Type> = ZeroMutateRequest<any, any, any, any> & {
38
39
  readonly mutator: Mutator<Type, any, any, any>;
39
40
  };
40
41
  type Tree<D> = {
41
- readonly [K in keyof D]: D[K] extends Definition<infer Type, infer Encoded, infer E, infer R> ? Mutator<Type, Encoded, E, R> : Tree<D[K]>;
42
+ readonly [K in keyof D]: D[K] extends Definition<infer Type, infer Encoded, infer E, infer R, infer RD> ? Mutator<Type, Encoded, E, R, RD> : Tree<D[K]>;
42
43
  };
43
44
  /** A tree of registered mutators, made with {@link registry}. Pass it to `ZfxClient.make` and the server. */
44
45
  export type Registry<D extends Definitions, TTransaction extends AnyClientTransaction> = Tree<D> & {
@@ -50,8 +51,8 @@ export type Registry<D extends Definitions, TTransaction extends AnyClientTransa
50
51
  export type AnyRegistry = Registry<any, AnyClientTransaction>;
51
52
  type AnyClientTransaction = ClientTransaction.Context<any>;
52
53
  type Keys<T> = Exclude<Extract<keyof T, string>, "~">;
53
- /** The services a registry's mutators require. */
54
- export type Requirements<T> = T extends Mutator<any, any, any, infer R> ? R : {
54
+ /** The services a registry's mutators require: their bodies' and their payloads'. */
55
+ export type Requirements<T> = T extends Mutator<any, any, any, infer R, infer RD> ? R | RD : {
55
56
  [K in Keys<T>]: Requirements<T[K]>;
56
57
  }[Keys<T>];
57
58
  /** The client transaction a registry's mutators run in. */
@@ -65,14 +66,14 @@ export type ZeroSchemaOf<T extends AnyRegistry> = Transaction<T> extends ClientT
65
66
  export declare const make: <Type, Encoded, RD = never, A = unknown, E = never, R = never>(options: {
66
67
  readonly payload: Schema.Codec<Type, Encoded, RD, never>;
67
68
  readonly mutator: (args: NoInfer<Type>) => Effect.Effect<A, E, R>;
68
- }) => Definition<Type, Encoded, E, R | RD>;
69
+ }) => Definition<Type, Encoded, E, R, RD>;
69
70
  /**
70
71
  * Registers mutators under their path, like Zero's `defineMutators`: `{ todo: { create } }` registers
71
72
  * `"todo.create"`. The result is also a Zero mutator registry, so it can be passed to `new Zero({ mutators })`.
72
73
  */
73
74
  export declare const registry: <TTransaction extends AnyClientTransaction, const D extends Definitions>(transaction: TTransaction, definitions: D) => Registry<D, TTransaction>;
74
75
  type Overrides<T> = {
75
- readonly [K in Keys<T>]?: T[K] extends Mutator<infer Type, infer _Encoded, infer _E, infer _R> ? (args: Type) => Effect.Effect<unknown, any, any> : Overrides<T[K]>;
76
+ readonly [K in Keys<T>]?: T[K] extends Mutator<infer Type, infer _Encoded, infer _E, infer _R, infer _RD> ? (args: Type) => Effect.Effect<unknown, any, any> : Overrides<T[K]>;
76
77
  };
77
78
  /** The server's view of a registry, made with {@link server}. */
78
79
  export interface ServerMutators<TRegistry extends AnyRegistry, O> {
@@ -87,12 +88,13 @@ export type AnyServerMutators = ServerMutators<AnyRegistry, unknown>;
87
88
  * and after `serverTransaction.execute`, e.g. `registry.todo.create.mutator(args).pipe(serverTransaction.execute)`.
88
89
  */
89
90
  export declare const server: <TRegistry extends AnyRegistry, const O extends Overrides<TRegistry>>(registry: TRegistry, overrides: O) => ServerMutators<TRegistry, O>;
91
+ type PayloadRequirements<T> = T extends Mutator<any, any, any, any, infer RD> ? RD : never;
90
92
  type ServerTreeRequirements<T, O, ClientTransactionId> = {
91
- [K in Keys<T>]: T[K] extends AnyMutator ? K extends keyof O ? O[K] extends (args: never) => Effect.Effect<infer _A, infer _E, infer R> ? R : never : Exclude<Requirements<T[K]>, ClientTransactionId> : ServerTreeRequirements<T[K], K extends keyof O ? O[K] : unknown, ClientTransactionId>;
93
+ [K in Keys<T>]: T[K] extends AnyMutator ? K extends keyof O ? O[K] extends (args: never) => Effect.Effect<infer _A, infer _E, infer R> ? R | PayloadRequirements<T[K]> : never : Exclude<Requirements<T[K]>, ClientTransactionId> : ServerTreeRequirements<T[K], K extends keyof O ? O[K] : unknown, ClientTransactionId>;
92
94
  }[Keys<T>];
93
95
  /**
94
96
  * The services the server needs to run these mutators. Mutators that aren't overridden run in a server transaction,
95
- * which provides their client transaction.
97
+ * which provides their client transaction. Every mutator's payload is decoded on the server, overridden or not.
96
98
  */
97
99
  export type ServerRequirements<T extends AnyServerMutators> = T extends ServerMutators<infer TRegistry, infer O> ? ServerTreeRequirements<TRegistry, O, Transaction<TRegistry>[typeof ContextSymbol]["Identifier"]> : never;
98
100
  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 & {
@@ -1 +1 @@
1
- {"version":3,"file":"mutator.d.ts","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,IAAI,iBAAiB,EAClC,MAAM,IAAI,UAAU,EACpB,WAAW,IAAI,eAAe,EAC/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAMxD,eAAO,MAAM,cAAc,eAA0C,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAChE;AAGD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,WAAW,CAAA;CAAE,CAAC;AAElF;;;GAGG;AACH,MAAM,WAAW,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAE,SAAQ,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE;QACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;KAC1C,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAGD,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAErD,sFAAsF;AAEtF,MAAM,MAAM,aAAa,CAAC,IAAI,IAAI,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;IAExE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,IAAI,EAAE,MAAM,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACzF,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACf,CAAC;AAEF,6GAA6G;AAC7G,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,YAAY,SAAS,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG;IACjG,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAA;KAAE,CAAC;CACnE,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAG9D,KAAK,oBAAoB,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAE3D,KAAK,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;AAEtD,kDAAkD;AAElD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GACnE,CAAC,GACD;KAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpD,2DAA2D;AAC3D,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC;AAEzF,yDAAyD;AACzD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExH;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,SAAS;IAC1F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACnE,KAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAY,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,YAAY,SAAS,oBAAoB,EAAE,KAAK,CAAC,CAAC,SAAS,WAAW,EAC7F,aAAa,YAAY,EACzB,aAAa,CAAC,KACb,QAAQ,CAAC,CAAC,EAAE,YAAY,CAW1B,CAAC;AAoDF,KAAK,SAAS,CAAC,CAAC,IAAI;IAClB,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAE1F,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAChD,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACpB,CAAC;AAEF,iEAAiE;AACjE,MAAM,WAAW,cAAc,CAAC,SAAS,SAAS,WAAW,EAAE,CAAC;IAC9D,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;CACvB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,SAAS,SAAS,WAAW,EAAE,KAAK,CAAC,CAAC,SAAS,SAAS,CAAC,SAAS,CAAC,EACxF,UAAU,SAAS,EACnB,WAAW,CAAC,KACX,cAAc,CAAC,SAAS,EAAE,CAAC,CAA8B,CAAC;AAE7D,KAAK,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,IAAI;KACtD,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,GACnC,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,GACtE,CAAC,GACD,KAAK,GACP,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,GAClD,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,mBAAmB,CAAC;CAC1F,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,iBAAiB,IAAI,CAAC,SAAS,cAAc,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,CAAC,GAC5G,sBAAsB,CAAC,SAAS,EAAE,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,GAChG,KAAK,CAAC;;;;AAEV,qBAAa,oBAAqB,SAAQ,0BAAyC;IACjF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;IACA,IAAa,OAAO,WAGnB;CACF;;;;AAED,+EAA+E;AAC/E,qBAAa,sBAAuB,SAAQ,4BAA2C;IACrF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG"}
1
+ {"version":3,"file":"mutator.d.ts","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mutator.js","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutator.js","sourceRoot":"","sources":["../src/mutator.ts"],"names":[],"mappings":"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"}
@@ -121,6 +121,39 @@ describe("Type tests", () => {
121
121
  // `deleteAll`'s override drops DummyTag; `transformArgs` reuses its body through the server transaction.
122
122
  expectTypeOf().toEqualTypeOf();
123
123
  });
124
+ it("a payload decodes without its body's services", () => {
125
+ const decoded = Schema.decodeUnknownEffect(mutators.messages.deleteAll.payload)(undefined);
126
+ expectTypeOf().toEqualTypeOf();
127
+ });
128
+ it("a payload's services are required, even when its mutator is overridden", () => {
129
+ const CheckedString = Schema.String.pipe(Schema.decodeTo(Schema.String, {
130
+ decode: SchemaGetter.checkEffect(() => Effect.gen(function* () {
131
+ yield* DummyTag2;
132
+ return undefined;
133
+ })),
134
+ encode: SchemaGetter.passthrough(),
135
+ }));
136
+ const checked = Mutator.registry(clientTransaction, {
137
+ checked: Mutator.make({
138
+ payload: CheckedString,
139
+ mutator: Effect.fn(function* () {
140
+ yield* DummyTag;
141
+ }),
142
+ }),
143
+ });
144
+ const decoded = Schema.decodeUnknownEffect(checked.checked.payload)("a");
145
+ expectTypeOf().toEqualTypeOf();
146
+ expectTypeOf().toEqualTypeOf();
147
+ const effect = Server.handleMutate({
148
+ transaction: serverTransaction,
149
+ mutators: Mutator.server(checked, { checked: () => Effect.void }),
150
+ query: {},
151
+ body: {},
152
+ userId: undefined,
153
+ });
154
+ // The override drops DummyTag, but the server still decodes the payload.
155
+ expectTypeOf().toEqualTypeOf();
156
+ });
124
157
  it("handleMutate has no extra requirements when mutators have none", () => {
125
158
  const simple = Mutator.registry(clientTransaction, {
126
159
  simple: Mutator.make({
@@ -1 +1 @@
1
- {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../src/types.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "effect-zero",
3
3
  "type": "module",
4
- "version": "0.9.0",
4
+ "version": "0.9.1",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "url": "https://github.com/realms-labs/effect-zero"
package/src/mutator.ts CHANGED
@@ -24,15 +24,16 @@ export const RegistryTypeId = Symbol.for(prefixId("MutatorRegistry"));
24
24
 
25
25
  /**
26
26
  * A mutator that isn't part of a registry yet, made with {@link make}. Like `defineMutator`, it gets its name
27
- * from its path in the {@link registry}.
27
+ * from its path in the {@link registry}. `R` is the services its body requires, and `RD` the services decoding its
28
+ * payload requires.
28
29
  */
29
- export interface Definition<Type, Encoded, E, R> {
30
- readonly payload: Schema.Codec<Type, Encoded, R>;
30
+ export interface Definition<Type, Encoded, E, R, RD = never> {
31
+ readonly payload: Schema.Codec<Type, Encoded, RD>;
31
32
  readonly mutator: (args: Type) => Effect.Effect<unknown, E, R>;
32
33
  }
33
34
 
34
35
  // biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
35
- export type AnyDefinition = Definition<any, any, any, any>;
36
+ export type AnyDefinition = Definition<any, any, any, any, any>;
36
37
 
37
38
  export type Definitions = { readonly [key: string]: AnyDefinition | Definitions };
38
39
 
@@ -40,7 +41,7 @@ export type Definitions = { readonly [key: string]: AnyDefinition | Definitions
40
41
  * A registered mutator. Calling it encodes `args` and returns a request for `ZfxClient.mutate(zero, request)`, or
41
42
  * for Zero's own `zero.mutate(request)`. It is also a Zero `Mutator`, so the registry can be passed to Zero.
42
43
  */
43
- export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded, E, R> {
44
+ export interface Mutator<Type, Encoded, E, R, RD = never> extends Definition<Type, Encoded, E, R, RD> {
44
45
  (args: Type): MutateRequest<Type>;
45
46
  readonly mutatorName: string;
46
47
  /** Runs the mutator for Zero, which calls it with the transaction and the `context` from `ZfxClient.make`. */
@@ -53,7 +54,7 @@ export interface Mutator<Type, Encoded, E, R> extends Definition<Type, Encoded,
53
54
  }
54
55
 
55
56
  // biome-ignore lint/suspicious/noExplicitAny: upper bound to allow everything
56
- export type AnyMutator = Mutator<any, any, any, any>;
57
+ export type AnyMutator = Mutator<any, any, any, any, any>;
57
58
 
58
59
  /** A request to run a mutator, for `ZfxClient.mutate` or Zero's own `zero.mutate`. */
59
60
  // biome-ignore lint/suspicious/noExplicitAny: compatible with any Zero instance's `zero.mutate`
@@ -63,8 +64,8 @@ export type MutateRequest<Type> = ZeroMutateRequest<any, any, any, any> & {
63
64
  };
64
65
 
65
66
  type Tree<D> = {
66
- readonly [K in keyof D]: D[K] extends Definition<infer Type, infer Encoded, infer E, infer R>
67
- ? Mutator<Type, Encoded, E, R>
67
+ readonly [K in keyof D]: D[K] extends Definition<infer Type, infer Encoded, infer E, infer R, infer RD>
68
+ ? Mutator<Type, Encoded, E, R, RD>
68
69
  : Tree<D[K]>;
69
70
  };
70
71
 
@@ -82,10 +83,10 @@ type AnyClientTransaction = ClientTransaction.Context<any>;
82
83
 
83
84
  type Keys<T> = Exclude<Extract<keyof T, string>, "~">;
84
85
 
85
- /** The services a registry's mutators require. */
86
+ /** The services a registry's mutators require: their bodies' and their payloads'. */
86
87
  // biome-ignore lint/suspicious/noExplicitAny: matches any mutator
87
- export type Requirements<T> = T extends Mutator<any, any, any, infer R>
88
- ? R
88
+ export type Requirements<T> = T extends Mutator<any, any, any, infer R, infer RD>
89
+ ? R | RD
89
90
  : { [K in Keys<T>]: Requirements<T[K]> }[Keys<T>];
90
91
 
91
92
  /** The client transaction a registry's mutators run in. */
@@ -101,7 +102,7 @@ export type ZeroSchemaOf<T extends AnyRegistry> = Transaction<T> extends ClientT
101
102
  export const make = <Type, Encoded, RD = never, A = unknown, E = never, R = never>(options: {
102
103
  readonly payload: Schema.Codec<Type, Encoded, RD, never>;
103
104
  readonly mutator: (args: NoInfer<Type>) => Effect.Effect<A, E, R>;
104
- }): Definition<Type, Encoded, E, R | RD> => options;
105
+ }): Definition<Type, Encoded, E, R, RD> => options;
105
106
 
106
107
  /**
107
108
  * Registers mutators under their path, like Zero's `defineMutators`: `{ todo: { create } }` registers
@@ -126,11 +127,11 @@ export const registry = <TTransaction extends AnyClientTransaction, const D exte
126
127
  const isDefinition = (u: unknown): u is AnyDefinition =>
127
128
  Predicate.hasProperty(u, "payload") && Schema.isSchema(u.payload);
128
129
 
129
- const makeMutator = <Type, Encoded, E, R>(
130
+ const makeMutator = <Type, Encoded, E, R, RD>(
130
131
  transaction: AnyClientTransaction,
131
132
  name: string,
132
- definition: Definition<Type, Encoded, E, R>,
133
- ): Mutator<Type, Encoded, E, R> => {
133
+ definition: Definition<Type, Encoded, E, R, RD>,
134
+ ): Mutator<Type, Encoded, E, R, RD> => {
134
135
  const run = (args: unknown, tx: ZeroTransaction<ZeroSchema>) =>
135
136
  Schema.decodeUnknownEffect(definition.payload)(args).pipe(
136
137
  Effect.catchTag("SchemaError", (error) => new ClientArgsParseError({ cause: Cause.fail(error) })),
@@ -147,7 +148,7 @@ const makeMutator = <Type, Encoded, E, R>(
147
148
  Effect.asVoid,
148
149
  );
149
150
 
150
- const mutator: Mutator<Type, Encoded, E, R> = Object.assign(
151
+ const mutator: Mutator<Type, Encoded, E, R, RD> = Object.assign(
151
152
  (args: Type) =>
152
153
  // A Zero `MutateRequest`, whose brand only exists at the type level.
153
154
  ({ mutator, args: Schema.encodeSync(definition.payload)(args), "~": "MutateRequest" }) as MutateRequest<Type>,
@@ -166,7 +167,7 @@ const makeMutator = <Type, Encoded, E, R>(
166
167
  }) =>
167
168
  Context.isContext(ctx)
168
169
  ? // `ZfxClient.make` passes the services it captured, which cover every mutator's requirements.
169
- run(args, tx).pipe(Effect.runPromiseWith(ctx as Context.Context<R>))
170
+ run(args, tx).pipe(Effect.runPromiseWith(ctx as Context.Context<R | RD>))
170
171
  : Promise.reject(new MutatorContextNotFound({ mutator: name })),
171
172
  },
172
173
  );
@@ -174,7 +175,7 @@ const makeMutator = <Type, Encoded, E, R>(
174
175
  };
175
176
 
176
177
  type Overrides<T> = {
177
- readonly [K in Keys<T>]?: T[K] extends Mutator<infer Type, infer _Encoded, infer _E, infer _R>
178
+ readonly [K in Keys<T>]?: T[K] extends Mutator<infer Type, infer _Encoded, infer _E, infer _R, infer _RD>
178
179
  ? // biome-ignore lint/suspicious/noExplicitAny: any server implementation
179
180
  (args: Type) => Effect.Effect<unknown, any, any>
180
181
  : Overrides<T[K]>;
@@ -199,11 +200,14 @@ export const server = <TRegistry extends AnyRegistry, const O extends Overrides<
199
200
  overrides: O,
200
201
  ): ServerMutators<TRegistry, O> => ({ registry, overrides });
201
202
 
203
+ // biome-ignore lint/suspicious/noExplicitAny: matches any mutator
204
+ type PayloadRequirements<T> = T extends Mutator<any, any, any, any, infer RD> ? RD : never;
205
+
202
206
  type ServerTreeRequirements<T, O, ClientTransactionId> = {
203
207
  [K in Keys<T>]: T[K] extends AnyMutator
204
208
  ? K extends keyof O
205
209
  ? O[K] extends (args: never) => Effect.Effect<infer _A, infer _E, infer R>
206
- ? R
210
+ ? R | PayloadRequirements<T[K]>
207
211
  : never
208
212
  : Exclude<Requirements<T[K]>, ClientTransactionId>
209
213
  : ServerTreeRequirements<T[K], K extends keyof O ? O[K] : unknown, ClientTransactionId>;
@@ -211,7 +215,7 @@ type ServerTreeRequirements<T, O, ClientTransactionId> = {
211
215
 
212
216
  /**
213
217
  * The services the server needs to run these mutators. Mutators that aren't overridden run in a server transaction,
214
- * which provides their client transaction.
218
+ * which provides their client transaction. Every mutator's payload is decoded on the server, overridden or not.
215
219
  */
216
220
  export type ServerRequirements<T extends AnyServerMutators> = T extends ServerMutators<infer TRegistry, infer O>
217
221
  ? ServerTreeRequirements<TRegistry, O, Transaction<TRegistry>[typeof ContextSymbol]["Identifier"]>