@effect-app/infra 2.90.1 → 2.91.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 2.91.0
4
+
5
+ ### Minor Changes
6
+
7
+ - a660b08: cleanup legacy. move interruption/retryability to middleware
8
+
3
9
  ## 2.90.1
4
10
 
5
11
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import { type Context, type Layer, type S } from "effect-app";
1
+ import { type Context, type Layer } from "effect-app";
2
2
  import type { GetContextConfig, RPCContextMap } from "effect-app/client/req";
3
3
  import { type MiddlewareMakerId } from "./middleware-api.js";
4
4
  import { type TagClass } from "./RpcMiddleware.js";
@@ -16,5 +16,4 @@ ContextProviderR> = TagClass<MiddlewareMakerId, "MiddlewareMaker", {
16
16
  Default: Layer.Layer<MiddlewareMakerId, MakeMiddlewareE, MakeMiddlewareR>;
17
17
  requestContext: Context.Tag<"RequestContextConfig", GetContextConfig<RequestContextMap>>;
18
18
  };
19
- export type RequestContextMapErrors<RequestContextMap extends Record<string, RPCContextMap.Any>> = S.Schema.Type<RequestContextMap[keyof RequestContextMap]["error"]>;
20
19
  //# sourceMappingURL=RouterMiddleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RouterMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/RouterMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAKlD,MAAM,MAAM,gBAAgB,CAC1B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,qFAAqF;AAClJ,eAAe,EAAE,iDAAiD;AAClE,eAAe,EAAE,gDAAgD;AACjE,gBAAgB,EAAE,qCAAqC;AACvD,gBAAgB,EAAE,0CAA0C;AAC5D,gBAAgB,IAEd,QAAQ,CACR,iBAAiB,EACjB,iBAAiB,EACjB;IACE,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC3D,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC3D,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CACF,GACC;IACA,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;IACzE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAA;CACzF,CAAA;AAEH,MAAM,MAAM,uBAAuB,CAAC,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAC9G,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,CAAC,OAAO,CAAC,CACpD,CAAA"}
1
+ {"version":3,"file":"RouterMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/RouterMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAKlD,MAAM,MAAM,gBAAgB,CAC1B,iBAAiB,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,qFAAqF;AAClJ,eAAe,EAAE,iDAAiD;AAClE,eAAe,EAAE,gDAAgD;AACjE,gBAAgB,EAAE,qCAAqC;AACvD,gBAAgB,EAAE,0CAA0C;AAC5D,gBAAgB,IAEd,QAAQ,CACR,iBAAiB,EACjB,iBAAiB,EACjB;IACE,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC3D,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC3D,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CACF,GACC;IACA,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;IACzE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAA;CACzF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,OAAO,EAAoB,KAAK,EAAwB,MAAM,YAAY,CAAA;AAS1F,eAAO,MAAM,kBAAkB,kCAM9B,CAAA;;AAED,qBAAa,OAAQ,SAAQ,YAAsE;CAAG;;;;;;AAEtG,qBAAa,sBAAuB,SAAQ,2BAE1C;CACD;;;;;;AAED,qBAAa,mCACX,SAAQ,wCAON;CAEH;;;;;;AAED,qBAAa,gBAAiB,SAAQ,qBA0DpC;CACD;AAED,eAAO,MAAM,yBAAyB,+GAI5B,CAAA"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,OAAO,EAAoB,KAAK,EAA+C,MAAM,YAAY,CAAA;AAUjH,eAAO,MAAM,kBAAkB,kCAM9B,CAAA;;AAED,qBAAa,OAAQ,SAAQ,YAAsE;CAAG;;;;;;AAEtG,qBAAa,sBAAuB,SAAQ,2BAE1C;CACD;;;;;;AAOD,qBAAa,mCACX,SAAQ,wCAoBN;CAEH;;;;;;AAED,qBAAa,gBAAiB,SAAQ,qBA0DpC;CACD;AAED,eAAO,MAAM,yBAAyB,+GAI5B,CAAA"}
@@ -1,8 +1,9 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Cause, Context, Duration, Effect, Layer, ParseResult, Request } from "effect-app";
2
+ import { Cause, Context, Duration, Effect, Layer, ParseResult, Request, Schedule } from "effect-app";
3
3
  import { pretty } from "effect-app/utils";
4
4
  import { logError, reportError } from "../../../errorReporter.js";
5
5
  import { InfraLogger } from "../../../logger.js";
6
+ import { determineMethod, isCommand } from "../utils.js";
6
7
  import { Tag } from "./RpcMiddleware.js";
7
8
  const logRequestError = logError("Request");
8
9
  const reportRequestError = reportError("Request");
@@ -13,10 +14,27 @@ export class RequestCacheMiddleware extends Tag()("RequestCacheMiddleware", { wr
13
14
  effect: Effect.succeed(({ next }) => next.pipe(Effect.provide(RequestCacheLayers)))
14
15
  }) {
15
16
  }
17
+ // retry just once on optimistic concurrency exceptions
18
+ const optimisticConcurrencySchedule = Schedule.once.pipe(Schedule.intersect(Schedule.recurWhile((a) => a?._tag === "OptimisticConcurrencyException")));
16
19
  export class ConfigureInterruptibilityMiddleware extends Tag()("ConfigureInterruptibilityMiddleware", { wrap: true })({
17
- effect: Effect.succeed(({ next }) => next.pipe(
18
- // TODO: make this depend on query/command, and consider if middleware also should be affected. right now it's not.
19
- Effect.uninterruptible))
20
+ effect: Effect.gen(function* () {
21
+ const cache = new Map();
22
+ const getCached = (key, schema) => {
23
+ const existing = cache.get(key);
24
+ if (existing)
25
+ return existing;
26
+ const n = determineMethod(key, schema);
27
+ cache.set(key, n);
28
+ return n;
29
+ };
30
+ return ({ next, rpc }) => {
31
+ const method = getCached(rpc._tag, rpc.payloadSchema);
32
+ next = isCommand(method)
33
+ ? Effect.retry(Effect.uninterruptible(next), optimisticConcurrencySchedule)
34
+ : Effect.interruptible(next);
35
+ return next;
36
+ };
37
+ })
20
38
  }) {
21
39
  }
22
40
  export class LoggerMiddleware extends Tag()("LoggerMiddleware", { wrap: true })({
@@ -77,4 +95,4 @@ export const DefaultGenericMiddlewares = [
77
95
  ConfigureInterruptibilityMiddleware,
78
96
  LoggerMiddleware
79
97
  ];
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9taWRkbGV3YXJlL21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDMUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUV4QyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDM0MsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FDOUMsS0FBSyxDQUFDLGVBQWUsQ0FDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUNwRSxFQUNELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFDN0IsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUMvQixDQUFBO0FBRUQsTUFBTSxPQUFPLE9BQVEsU0FBUSxPQUFPLENBQUMsU0FBUyxFQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0NB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
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcGkvcm91dGluZy9taWRkbGV3YXJlL21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFlLE1BQU0sWUFBWSxDQUFBO0FBQ2pILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFeEMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRWpELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxRQUFRLENBQzlDLEtBQUssQ0FBQyxlQUFlLENBQ25CLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDcEUsRUFDRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQzdCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FDL0IsQ0FBQTtBQUVELE1BQU0sT0FBTyxPQUFRLFNBQVEsT0FBTyxDQUFDLFNBQVMsRUFBVyxD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
@@ -1,5 +1,5 @@
1
1
  import type { Schema } from "effect-app/Schema";
2
- export declare const determineMethod: (actionName: string, schema: Schema<any, any, any>) => {
2
+ export declare const determineMethod: (fullName: string, schema: Schema.Any) => {
3
3
  readonly _tag: "query";
4
4
  readonly method: "GET" | "POST";
5
5
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/api/routing/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA6BpD,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,QAAQ,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;;;;;;;;CAShF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,UAAU,CAAC,OAAO,eAAe,CAAC;;;;;;CAA8B,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/api/routing/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA6BpD,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,QAAQ,MAAM,CAAC,GAAG;;;;;;;;;CAYnE,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,UAAU,CAAC,OAAO,eAAe,CAAC;;;;;;CAA8B,CAAA"}
@@ -25,7 +25,9 @@ const onlyStrings = (schema) => {
25
25
  return onlyStringsAst(S.Struct(schema.fields).ast); // only one level..
26
26
  return onlyStringsAst(schema.ast);
27
27
  };
28
- export const determineMethod = (actionName, schema) => {
28
+ export const determineMethod = (fullName, schema) => {
29
+ const bits = fullName.split(".");
30
+ const actionName = bits[bits.length - 1];
29
31
  if (get.some((_) => actionName.startsWith(_))) {
30
32
  return { _tag: "query", method: onlyStrings(schema) ? "GET" : "POST" };
31
33
  }
@@ -37,4 +39,4 @@ export const determineMethod = (actionName, schema) => {
37
39
  return { _tag: "command", method: "POST" };
38
40
  };
39
41
  export const isCommand = (method) => method._tag === "command";
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUc5QixNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDN0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUV6QyxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBWSxFQUFXLEVBQUU7SUFDdEQsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLGVBQWU7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUM3QyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUMvRCxPQUFPLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVksRUFBVyxFQUFFO0lBQy9DLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNoRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYTtRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQzVDLE9BQU8sR0FBRyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDM0UsQ0FBQyxDQUFBO0FBRUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUE4RCxFQUFXLEVBQUU7SUFDOUYsSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1FBQUUsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxtQkFBbUI7SUFDL0csT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ25DLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFVBQWtCLEVBQUUsTUFBNkIsRUFBRSxFQUFFO0lBQ25GLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQVcsQ0FBQTtJQUMxRixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBVyxDQUFBO0lBQ3RGLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFXLENBQUE7SUFDckcsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVyxDQUFBO0FBQ3JELENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQTBDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFBIn0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUc5QixNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7QUFDN0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUV6QyxNQUFNLHFCQUFxQixHQUFHLENBQUMsR0FBWSxFQUFXLEVBQUU7SUFDdEQsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLGVBQWU7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUM3QyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUMvRCxPQUFPLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVksRUFBVyxFQUFFO0lBQy9DLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNoRSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYTtRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQzVDLE9BQU8sR0FBRyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7QUFDM0UsQ0FBQyxDQUFBO0FBRUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFpRCxFQUFXLEVBQUU7SUFDakYsSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1FBQUUsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxtQkFBbUI7SUFDL0csT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ25DLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWdCLEVBQUUsTUFBa0IsRUFBRSxFQUFFO0lBQ3RFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQUE7SUFFekMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBVyxDQUFBO0lBQzFGLENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFXLENBQUE7SUFDdEYsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQVcsQ0FBQTtJQUNyRyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFXLENBQUE7QUFDckQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBMEMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUEifQ==
@@ -25,8 +25,8 @@ export interface AddAction<Actions extends AnyRequestModule, Accum extends Recor
25
25
  declare namespace RequestTypes {
26
26
  const DECODED: "d";
27
27
  type DECODED = typeof DECODED;
28
- const TYPE: "raw";
29
- type TYPE = typeof TYPE;
28
+ const RAW: "raw";
29
+ type RAW = typeof RAW;
30
30
  }
31
31
  type RequestType = typeof RequestTypes[keyof typeof RequestTypes];
32
32
  type GetSuccess<T> = T extends {
@@ -69,7 +69,7 @@ export type RouteMatcher<RequestContextMap extends Record<string, any>, Resource
69
69
  /**
70
70
  * Requires the Encoded shape (e.g directly undecoded from DB, so that we don't do multiple Decode/Encode)
71
71
  */
72
- raw: Match<Resource, RequestContextMap, RequestTypes.TYPE, Key>;
72
+ raw: Match<Resource, RequestContextMap, RequestTypes.RAW, Key>;
73
73
  };
74
74
  };
75
75
  declare const Router_base: HttpRouter.HttpRouter.TagClass<Router, "@effect-app/Rpc", unknown, HttpRouter.HttpRouter.DefaultServices>;
@@ -82,276 +82,195 @@ export declare const makeRouter: <RequestContextMap extends Record<string, RPCCo
82
82
  moduleName: string;
83
83
  };
84
84
  }>(handlers: T) => Layer.Layer<never, Layer.Layer.Error<(typeof handlers)[keyof typeof handlers]["routes"]>, Layer.Layer.Context<(typeof handlers)[keyof typeof handlers]["routes"]>>;
85
- matchFor: <const ModuleName extends string, const Resource extends Record<string, any>>(rsc: Resource & {
86
- meta: {
87
- moduleName: ModuleName;
88
- };
89
- }) => <const Impl extends { [K in keyof FilterRequestModules<Resource & {
90
- meta: {
91
- moduleName: ModuleName;
92
- };
93
- }>]: ({
94
- raw: (req: S.Schema.Type<(Resource & {
95
- meta: {
96
- moduleName: ModuleName;
97
- };
98
- })[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<(Resource & {
99
- meta: {
100
- moduleName: ModuleName;
101
- };
102
- })[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
103
- meta: {
104
- moduleName: ModuleName;
105
- };
106
- })[K]["config"]>>>, S.Schema.Encoded<GetSuccess<(Resource & {
107
- meta: {
108
- moduleName: ModuleName;
109
- };
110
- })[K]>>, never>;
111
- } | {
112
- raw: (req: S.Schema.Type<(Resource & {
113
- meta: {
114
- moduleName: ModuleName;
115
- };
116
- })[K]>) => Effect<S.Schema.Encoded<GetSuccess<(Resource & {
117
- meta: {
118
- moduleName: ModuleName;
119
- };
120
- })[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<(Resource & {
121
- meta: {
122
- moduleName: ModuleName;
123
- };
124
- })[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
125
- meta: {
126
- moduleName: ModuleName;
127
- };
128
- })[K]["config"]>>;
129
- } | {
130
- raw: Effect<S.Schema.Encoded<GetSuccess<(Resource & {
131
- meta: {
132
- moduleName: ModuleName;
133
- };
134
- })[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<(Resource & {
135
- meta: {
136
- moduleName: ModuleName;
137
- };
138
- })[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
139
- meta: {
140
- moduleName: ModuleName;
141
- };
142
- })[K]["config"]>>;
143
- }) | (((req: S.Schema.Type<(Resource & {
144
- meta: {
145
- moduleName: ModuleName;
146
- };
147
- })[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<(Resource & {
148
- meta: {
149
- moduleName: ModuleName;
150
- };
151
- })[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
152
- meta: {
153
- moduleName: ModuleName;
154
- };
155
- })[K]["config"]>>>, S.Schema.Type<GetSuccess<(Resource & {
156
- meta: {
157
- moduleName: ModuleName;
158
- };
159
- })[K]>>, never>) | ((req: S.Schema.Type<(Resource & {
160
- meta: {
161
- moduleName: ModuleName;
162
- };
163
- })[K]>) => Effect<S.Schema.Type<GetSuccess<(Resource & {
164
- meta: {
165
- moduleName: ModuleName;
166
- };
167
- })[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<(Resource & {
168
- meta: {
169
- moduleName: ModuleName;
170
- };
171
- })[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
172
- meta: {
173
- moduleName: ModuleName;
174
- };
175
- })[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<(Resource & {
176
- meta: {
177
- moduleName: ModuleName;
178
- };
179
- })[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<(Resource & {
180
- meta: {
181
- moduleName: ModuleName;
182
- };
183
- })[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
184
- meta: {
185
- moduleName: ModuleName;
186
- };
187
- })[K]["config"]>>); }>(impl: Impl) => { [K_1 in keyof Impl & keyof FilterRequestModules<Resource & {
188
- meta: {
189
- moduleName: ModuleName;
190
- };
191
- }>]: Handler<FilterRequestModules<Resource & {
192
- meta: {
193
- moduleName: ModuleName;
194
- };
195
- }>[K_1], Impl[K_1] extends {
196
- raw: any;
197
- } ? "raw" : "d", Exclude<Exclude<Impl[K_1] extends {
198
- raw: any;
199
- } ? Impl[K_1]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K_1]["raw"] extends Effect<any, any, infer R_1> ? R_1 : Impl[K_1]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R_2>>, any, any> ? R_2 : never : Impl[K_1] extends (...args: any[]) => Effect<any, any, infer R_3> ? R_3 : Impl[K_1] extends Effect<any, any, infer R_4> ? R_4 : Impl[K_1] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R_5>>, any, any> ? R_5 : never, ContextProviderA | GetEffectContext<RequestContextMap, (Resource & {
200
- meta: {
201
- moduleName: ModuleName;
202
- };
203
- })[K_1]["config"]>>, Scope.Scope>>; };
204
- Router: <const ModuleName extends string, const Resource_1 extends Record<string, any>>(rsc: Resource_1 & {
85
+ Router: <const ModuleName extends string, const Resource extends Record<string, any>>(rsc: Resource & {
205
86
  meta: {
206
87
  moduleName: ModuleName;
207
88
  };
208
89
  }) => {
209
90
  <const Make extends {
210
91
  dependencies?: Array<Layer.Layer.Any>;
211
- effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource_1>]: ({
212
- raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource_1[K]>>, never>;
92
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: ({
93
+ raw: (req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource[K]>>, never>;
213
94
  } | {
214
- raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
95
+ raw: (req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
215
96
  } | {
216
- raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
217
- }) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource_1[K]>>, never>) | ((req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource_1>]: Handler<FilterRequestModules<Resource_1>[K], Impl[K] extends {
97
+ raw: Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
98
+ }) | (((req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
218
99
  raw: any;
219
- } ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
100
+ } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
220
101
  raw: any;
221
- } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource_1[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Generator<YieldWrap<Effect<any, any, Make["strict"] extends false ? any : Make extends {
222
- dependencies: Array<Layer.Layer.Any>;
223
- } ? MakeDepsOut<Make> : any>>, { [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any>;
224
- strict?: boolean;
102
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Generator<YieldWrap<Effect<any, any, any>>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }, any>;
225
103
  /** @deprecated */
226
104
  readonly ಠ_ಠ: never;
227
105
  }>(make: Make): {
228
106
  moduleName: ModuleName;
229
- routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
107
+ routes: Layer.Layer<RouterShape<Resource>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
230
108
  make: Make;
231
109
  };
232
110
  <const Make extends {
233
111
  dependencies?: Array<Layer.Layer.Any>;
234
- effect: Effect<{ [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any, Make["strict"] extends false ? any : Make extends {
235
- dependencies: Array<Layer.Layer.Any>;
236
- } ? MakeDepsOut<Make> : any>;
237
- strict?: boolean;
112
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: ({
113
+ raw: (req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource[K]>>, never>;
114
+ } | {
115
+ raw: (req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
116
+ } | {
117
+ raw: Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
118
+ }) | (((req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
119
+ raw: any;
120
+ } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
121
+ raw: any;
122
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Effect<{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }, any, any>;
238
123
  /** @deprecated */
239
124
  readonly ಠ_ಠ: never;
240
125
  }>(make: Make): {
241
126
  moduleName: ModuleName;
242
- routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
127
+ routes: Layer.Layer<RouterShape<Resource>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
243
128
  make: Make;
244
129
  };
245
130
  <const Make extends {
246
131
  dependencies?: Array<Layer.Layer.Any>;
247
- effect: Effect<{ [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any, Make["strict"] extends false ? any : MakeDepsOut<Make>>;
248
- strict?: boolean;
132
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: ({
133
+ raw: (req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource[K]>>, never>;
134
+ } | {
135
+ raw: (req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
136
+ } | {
137
+ raw: Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
138
+ }) | (((req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
139
+ raw: any;
140
+ } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
141
+ raw: any;
142
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Effect<{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }, any, any>;
249
143
  /** @deprecated */
250
144
  readonly ಠ_ಠ: never;
251
145
  }>(make: Make): {
252
146
  moduleName: ModuleName;
253
- routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
147
+ routes: Layer.Layer<RouterShape<Resource>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
254
148
  make: Make;
255
149
  };
256
150
  <const Make extends {
257
151
  dependencies?: Array<Layer.Layer.Any>;
258
- effect: Effect<{ [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any, Make["strict"] extends false ? any : MakeDepsOut<Make>>;
259
- strict?: boolean;
152
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: ({
153
+ raw: (req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource[K]>>, never>;
154
+ } | {
155
+ raw: (req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
156
+ } | {
157
+ raw: Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
158
+ }) | (((req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
159
+ raw: any;
160
+ } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
161
+ raw: any;
162
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Effect<{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }, any, any>;
260
163
  /** @deprecated */
261
164
  readonly ಠ_ಠ: never;
262
165
  }>(make: Make): {
263
166
  moduleName: ModuleName;
264
- routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
167
+ routes: Layer.Layer<RouterShape<Resource>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
265
168
  make: Make;
266
169
  };
267
170
  <const Make extends {
268
171
  dependencies?: Array<Layer.Layer.Any>;
269
- effect: Effect<{ [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any, MakeDepsOut<Make>>;
270
- strict?: boolean;
172
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: ({
173
+ raw: (req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource[K]>>, never>;
174
+ } | {
175
+ raw: (req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
176
+ } | {
177
+ raw: Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
178
+ }) | (((req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
179
+ raw: any;
180
+ } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
181
+ raw: any;
182
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Effect<{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }, any, any>;
271
183
  /** @deprecated */
272
184
  readonly ಠ_ಠ: never;
273
185
  }>(make: Make): {
274
186
  moduleName: ModuleName;
275
- routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
187
+ routes: Layer.Layer<RouterShape<Resource>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
276
188
  make: Make;
277
189
  };
278
190
  <const Make extends {
279
191
  dependencies?: Array<Layer.Layer.Any>;
280
- effect: Effect<{ [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any, MakeDepsOut<Make>>;
281
- strict?: boolean;
192
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: ({
193
+ raw: (req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource[K]>>, never>;
194
+ } | {
195
+ raw: (req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
196
+ } | {
197
+ raw: Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
198
+ }) | (((req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
199
+ raw: any;
200
+ } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
201
+ raw: any;
202
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Effect<{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }, any, any>;
282
203
  }>(make: Make): {
283
204
  moduleName: ModuleName;
284
- routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
205
+ routes: Layer.Layer<RouterShape<Resource>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
285
206
  make: Make;
286
207
  };
287
208
  <const Make extends {
288
209
  dependencies?: Array<Layer.Layer.Any>;
289
- effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource_1>]: ({
290
- raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource_1[K]>>, never>;
210
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: ({
211
+ raw: (req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource[K]>>, never>;
291
212
  } | {
292
- raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
213
+ raw: (req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
293
214
  } | {
294
- raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
295
- }) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource_1[K]>>, never>) | ((req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource_1>]: Handler<FilterRequestModules<Resource_1>[K], Impl[K] extends {
215
+ raw: Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
216
+ }) | (((req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
296
217
  raw: any;
297
- } ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
218
+ } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
298
219
  raw: any;
299
- } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource_1[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Generator<YieldWrap<Effect<any, any, Make["strict"] extends false ? any : Make extends {
300
- dependencies: Array<Layer.Layer.Any>;
301
- } ? MakeDepsOut<Make> : any>>, { [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any>;
302
- strict?: boolean;
220
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Generator<YieldWrap<Effect<any, any, any>>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }, any>;
303
221
  }>(make: Make): {
304
222
  moduleName: ModuleName;
305
- routes: Layer.Layer<RouterShape<Resource_1>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
223
+ routes: Layer.Layer<RouterShape<Resource>, MakeErrors<Make> | Service.MakeDepsE<Make> | Layer.Error<typeof middleware.Default>, Service.MakeDepsIn<Make> | Layer.Context<typeof middleware.Default> | Exclude<MakeContext<Make>, MakeDepsOut<Make>>>;
306
224
  make: Make;
307
225
  };
308
226
  <const Make extends {
309
- dependencies: [...Make["dependencies"], ...Exclude<Effect.Context<Make["effect"]>, MakeDepsOut<Make>> extends never ? [] : [Layer.Layer<Exclude<Effect.Context<Make["effect"]>, MakeDepsOut<Make>>, never, never>]];
310
- effect: Effect<{ [K in keyof FilterRequestModules<Resource_1>]: AnyHandler<Resource_1[K]>; }, any, any>;
311
- strict?: boolean;
227
+ dependencies: [...Make["dependencies"], ...Exclude<Effect.Context<ReturnType<Make["effect"]>>, MakeDepsOut<Make>> extends never ? [] : [Layer.Layer<Exclude<Effect.Context<ReturnType<Make["effect"]>>, MakeDepsOut<Make>>, never, never>]];
228
+ effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: ({
229
+ raw: (req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource[K]>>, never>;
230
+ } | {
231
+ raw: (req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
232
+ } | {
233
+ raw: Effect<S.Schema.Encoded<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>;
234
+ }) | (((req: S.Schema.Type<Resource[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource[K]>>, never>) | ((req: S.Schema.Type<Resource[K]>) => Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
235
+ raw: any;
236
+ } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
237
+ raw: any;
238
+ } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource[K]["config"]> | ContextProviderA>, Scope.Scope>>; }) => Effect<{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }, any, any>;
312
239
  }>(make: Make): {
313
240
  moduleName: ModuleName;
314
- Router: HttpRouter.HttpRouter.TagClass<RouterShape<Resource_1>, `${ModuleName}Router`, never, never>;
241
+ Router: HttpRouter.HttpRouter.TagClass<RouterShape<Resource>, `${ModuleName}Router`, never, never>;
315
242
  routes: any;
316
243
  make: Make;
317
244
  };
318
- } & RouteMatcher<RequestContextMap, Resource_1> & {
319
- router: AddAction<FilterRequestModules<Resource_1>[keyof FilterRequestModules<Resource_1>], {}>;
320
- router3: <const Impl extends { [K in keyof FilterRequestModules<Resource_1>]: ({
321
- raw: (req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Encoded<GetSuccess<Resource_1[K]>>, never>;
322
- } | {
323
- raw: (req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
324
- } | {
325
- raw: Effect<S.Schema.Encoded<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>;
326
- }) | (((req: S.Schema.Type<Resource_1[K]>) => Generator<YieldWrap<Effect<any, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>>, S.Schema.Type<GetSuccess<Resource_1[K]>>, never>) | ((req: S.Schema.Type<Resource_1[K]>) => Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>) | Effect<S.Schema.Type<GetSuccess<Resource_1[K]>>, S.ParseResult.ParseError | S.Schema.Type<GetFailure<Resource_1[K]>>, ContextProviderA | GetEffectContext<RequestContextMap, Resource_1[K]["config"]>>); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource_1>]: Handler<FilterRequestModules<Resource_1>[K], Impl[K] extends {
327
- raw: any;
328
- } ? RequestTypes.TYPE : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
329
- raw: any;
330
- } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K]["raw"] extends Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R : Impl[K] extends Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> ? R : never, GetEffectContext<RequestContextMap, Resource_1[K]["config"]> | ContextProviderA>, Scope.Scope>>; };
331
245
  };
332
246
  };
333
247
  export type MakeDeps<Make> = Make extends {
334
248
  readonly dependencies: ReadonlyArray<Layer.Layer.Any>;
335
249
  } ? Make["dependencies"][number] : never;
336
250
  export type MakeErrors<Make> = Make extends {
337
- readonly effect: Effect<any, infer E, any>;
251
+ readonly effect: (_: any) => Effect<infer _A, infer E, infer _R>;
338
252
  } ? E : Make extends {
339
- readonly effect: (_: any) => Generator<YieldWrap<Effect<any, infer E, any>>, any, any>;
253
+ readonly effect: (_: any) => Effect<infer _A, never, infer _R>;
254
+ } ? never : Make extends {
255
+ readonly effect: (_: any) => Generator<YieldWrap<Effect<infer _A, never, infer _R>>, infer _A, infer _2>;
256
+ } ? never : Make extends {
257
+ readonly effect: (_: any) => Generator<YieldWrap<Effect<infer _A, infer E, infer _R>>, infer _A, infer _2>;
340
258
  } ? E : never;
341
259
  export type MakeContext<Make> = Make extends {
342
- readonly effect: Effect<any, any, infer R>;
260
+ readonly effect: (_: any) => Effect<infer _A, infer _E, infer R>;
343
261
  } ? R : Make extends {
344
- readonly effect: (_: any) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any>;
262
+ readonly effect: (_: any) => Effect<infer _A, infer _E, never>;
263
+ } ? never : Make extends {
264
+ readonly effect: (_: any) => Generator<YieldWrap<Effect<infer _A, infer _E, never>>, infer _A, infer _2>;
265
+ } ? never : Make extends {
266
+ readonly effect: (_: any) => Generator<YieldWrap<Effect<infer _A, infer _E, infer R>>, infer _A, infer _2>;
345
267
  } ? R : never;
346
268
  export type MakeHandlers<Make, Handlers extends Record<string, any>> = Make extends {
347
- readonly effect: Effect<{
269
+ readonly effect: (_: any) => Effect<{
348
270
  [K in keyof Handlers]: AnyHandler<Handlers[K]>;
349
271
  }, any, any>;
350
- } ? Effect.Success<Make["effect"]> : Make extends {
351
- readonly effect: (_: any) => Generator<YieldWrap<any>, infer S, any>;
272
+ } ? Effect.Success<ReturnType<Make["effect"]>> : Make extends {
273
+ readonly effect: (_: any) => Generator<YieldWrap<any>, infer S, infer _R>;
352
274
  } ? S : never;
353
- /**
354
- * @since 3.9.0
355
- */
356
275
  export type MakeDepsOut<Make> = Contravariant.Type<MakeDeps<Make>[Layer.LayerTypeId]["_ROut"]>;
357
276
  //# sourceMappingURL=routing.d.ts.map