@effect-app/infra 2.51.0 → 2.52.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "2.51.0",
3
+ "version": "2.52.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -20,11 +20,11 @@
20
20
  "@azure/service-bus": "^7.9.5",
21
21
  "@sentry/node": "^9.10.1",
22
22
  "@types/express": "^5.0.1",
23
- "@types/node": "~22.13.14",
23
+ "@types/node": "~22.13.16",
24
24
  "@types/proper-lockfile": "^4.1.4",
25
25
  "@types/redis": "^2.8.32",
26
26
  "@types/redlock": "^4.0.7",
27
- "express": "^4.21.2",
27
+ "express": "^5.1.0",
28
28
  "jwks-rsa": "2.1.4",
29
29
  "jwt-decode": "^4.0.0",
30
30
  "mongodb": "6.15.0",
@@ -32,23 +32,23 @@
32
32
  "redlock": "^4.2.0",
33
33
  "strip-ansi": "^7.1.0",
34
34
  "typescript": "^5.8.2",
35
- "vitest": "^3.0.9"
35
+ "vitest": "^3.1.1"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@azure/cosmos": "^4.3.0",
39
39
  "@azure/service-bus": "^7.9.5",
40
- "@effect/experimental": "^0.44.2",
41
- "@effect/platform": "^0.80.2",
40
+ "@effect/experimental": "^0.44.4",
41
+ "@effect/platform": "^0.80.4",
42
42
  "@effect/rpc-http": "^0.52.4",
43
- "@effect/rpc": "^0.55.3",
44
- "@effect/sql": "^0.33.2",
45
- "@effect/vitest": "^0.20.2",
43
+ "@effect/rpc": "^0.55.5",
44
+ "@effect/sql": "^0.33.4",
45
+ "@effect/vitest": "^0.20.4",
46
46
  "@sendgrid/helpers": "^8.0.0",
47
47
  "@sendgrid/mail": "^8.1.4",
48
48
  "redis": "^3.1.2",
49
49
  "redlock": "^4.2.0",
50
- "effect": "^3.14.2",
51
- "express": "^4.21.2"
50
+ "effect": "^3.14.4",
51
+ "express": "^5.1.0"
52
52
  },
53
53
  "typesVersions": {
54
54
  "*": {
@@ -545,16 +545,61 @@ type NullableRefined<T, EncodedRefined> = {
545
545
  : T[k]
546
546
  }
547
547
 
548
- type ExtractTagged<T, EncodedRefined> = EncodedRefined extends { _tag: string }
548
+ // for DX purposes
549
+ type ShouldRecursiveExtractTagged<T, EncodedRefined> = true extends {
550
+ [k in keyof T]: "_tag" extends keyof T[k]
551
+ ? k extends keyof EncodedRefined ? "_tag" extends keyof EncodedRefined[k] ? true
552
+ : false
553
+ : false
554
+ : false
555
+ }[keyof T] ? true
556
+ : false
557
+
558
+ // support is not 100% but we have to make compromises
559
+ type RecursiveExtractTagged<T, EncodedRefined> = ShouldRecursiveExtractTagged<T, EncodedRefined> extends true ? {
560
+ [k in keyof T]: "_tag" extends keyof T[k]
561
+ ? k extends keyof EncodedRefined ? "_tag" extends keyof EncodedRefined[k] ? ExtractTagged<T[k], EncodedRefined[k]>
562
+ : T[k]
563
+ : T[k]
564
+ : T[k]
565
+ }
566
+ : T
567
+
568
+ type ExtractTagged_<T, EncodedRefined> = EncodedRefined extends { _tag: string }
549
569
  ? T extends { _tag: string } ? Extract<T, { _tag: EncodedRefined["_tag"] }>
550
570
  : T
551
571
  : T
552
572
 
553
- type ExtractIded<T, EncodedRefined> = EncodedRefined extends { id: string }
573
+ type ExtractTagged<T, EncodedRefined> = ExtractTagged_<T, EncodedRefined> extends infer R
574
+ ? RecursiveExtractTagged<RecusiveExtractIded<R, EncodedRefined>, EncodedRefined>
575
+ : never
576
+
577
+ type ShouldRecursiveExtractIded<T, EncodedRefined> = true extends {
578
+ [k in keyof T]: "id" extends keyof T[k] ? k extends keyof EncodedRefined ? "id" extends keyof EncodedRefined[k] ? true
579
+ : false
580
+ : false
581
+ : false
582
+ }[keyof T] ? true
583
+ : false
584
+
585
+ type RecusiveExtractIded<T, EncodedRefined> = ShouldRecursiveExtractIded<T, EncodedRefined> extends true ? {
586
+ [k in keyof T]: "id" extends keyof T[k]
587
+ ? k extends keyof EncodedRefined ? "id" extends keyof EncodedRefined[k] ? ExtractIded<T[k], EncodedRefined[k]>
588
+ : T[k]
589
+ : T[k]
590
+ : T[k]
591
+ }
592
+ : T
593
+
594
+ type ExtractIded_<T, EncodedRefined> = EncodedRefined extends { id: string }
554
595
  ? T extends { id: string } ? Extract<T, { id: EncodedRefined["id"] }>
555
596
  : T
556
597
  : T
557
598
 
599
+ type ExtractIded<T, EncodedRefined> = ExtractIded_<T, EncodedRefined> extends infer R
600
+ ? RecusiveExtractIded<RecursiveExtractTagged<R, EncodedRefined>, EncodedRefined>
601
+ : never
602
+
558
603
  export type RefineTHelper<T, EncodedRefined> = ResolveFirstLevel<
559
604
  NullableRefined<
560
605
  ExtractIded<ExtractTagged<T, EncodedRefined>, EncodedRefined>,
@@ -149,12 +149,17 @@ export type RefinePathValue<T, P extends Path<T>, X extends string | number | bo
149
149
  : never
150
150
  /* dprint-ignore-end */
151
151
 
152
+ export type EraseNeverContainingUnionElements<T> = T extends any ? {
153
+ [K in keyof T]: IsNever<T[K]> extends true ? true : false
154
+ } extends infer $NC ? true extends $NC[keyof $NC] ? never : T
155
+ : never : never
156
+
152
157
  export type RefineFieldPathValue<
153
158
  TFieldValues extends FieldValues,
154
159
  TFieldPath extends FieldPath<TFieldValues>,
155
160
  X extends string | number | boolean | null | bigint,
156
161
  Exclde extends boolean = false
157
- > = RefinePathValue<TFieldValues, TFieldPath, X, Exclde>
162
+ > = EraseNeverContainingUnionElements<RefinePathValue<TFieldValues, TFieldPath, X, Exclde>>
158
163
 
159
164
  export namespace RefinePathValueTests {
160
165
  type test1 = RefineFieldPathValue<{ a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } }, "a.b", "tag1">
@@ -207,6 +212,22 @@ export namespace RefinePathValueTests {
207
212
  true
208
213
  >
209
214
  expectTypeOf<test6E>().toEqualTypeOf<{ a: { b: "tag1"; v1: string } }>()
215
+
216
+ type test10 = RefineFieldPathValue<
217
+ | { nested: { a: string; _tag: "a" } | { b: number; _tag: "b" }; _tag: "ab" }
218
+ | { nested: { b: number; _tag: "b" } | { c: boolean; _tag: "c" }; _tag: "bc" },
219
+ "nested._tag",
220
+ "a",
221
+ false
222
+ >
223
+
224
+ expectTypeOf<test10>().toEqualTypeOf<{
225
+ nested: {
226
+ a: string
227
+ _tag: "a"
228
+ }
229
+ _tag: "ab"
230
+ }>()
210
231
  }
211
232
 
212
233
  export namespace SetFieldPathValueTests {
@@ -448,7 +448,7 @@ export type RefineWithLiteral<
448
448
  Exclde extends boolean = false
449
449
  > =
450
450
  // refine only if the value is a primitive
451
- V extends string | number | boolean | null | bigint
451
+ [V] extends [string | number | boolean | null | bigint]
452
452
  ? RefineFieldPathValue<TFieldValues, TFieldName, V, Exclde>
453
453
  : TFieldValues
454
454
  /* dprint-ignore-end */
@@ -0,0 +1,169 @@
1
+ import type { RequestContext } from "@effect-app/infra/RequestContext";
2
+ import { Rpc } from "@effect/rpc";
3
+ import { Effect, Layer, S } from "effect-app";
4
+ import { type RPCContextMap, UnauthorizedError } from "effect-app/client";
5
+ import { HttpServerRequest } from "effect-app/http";
6
+ export interface CTX {
7
+ context: RequestContext;
8
+ }
9
+ export type CTXMap = {
10
+ requireRoles: RPCContextMap.Custom<"", never, typeof UnauthorizedError, Array<string>>;
11
+ };
12
+ export declare const matchAll: <T extends {
13
+ [key: string]: {
14
+ Router: {
15
+ router: Effect<import("@effect/platform/HttpRouter").HttpRouter<any, any>, any, any>;
16
+ };
17
+ routes: Layer.Layer<any, any, any>;
18
+ moduleName: string;
19
+ };
20
+ }, A, E, R>(handlers: T, requestLayer: Layer.Layer<A, E, R>) => {
21
+ layer: Layer.Layer<never, Layer.Layer.Error<T[keyof T]["routes"]>, Layer.Layer.Context<T[keyof T]["routes"]>>;
22
+ Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<"RootRouter", "RootRouter", Effect.Effect.Success<T[keyof T]["Router"]["router"]> extends infer T_1 ? T_1 extends T_1 & Effect.Effect.Success<T[keyof T]["Router"]["router"]> ? T_1 extends import("@effect/platform/HttpRouter").HttpRouter<infer E_1, any> ? E_1 : never : never : never, R | Exclude<Effect.Effect.Success<T[keyof T]["Router"]["router"]> extends infer T_2 ? T_2 extends T_2 & Effect.Effect.Success<T[keyof T]["Router"]["router"]> ? T_2 extends import("@effect/platform/HttpRouter").HttpRouter<any, infer R_1> ? R_1 : never : never : never, A>>;
23
+ }, matchFor: <const ModuleName extends string, const Rsc extends Record<string, any>>(rsc: Rsc & {
24
+ meta: {
25
+ moduleName: ModuleName;
26
+ };
27
+ }) => {
28
+ <const Make extends {
29
+ dependencies: import("effect-app").Array<Layer.Layer.Any>;
30
+ effect: Effect<{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K_1], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
31
+ strict?: boolean;
32
+ readonly ಠ_ಠ: never;
33
+ }>(make: Make): {
34
+ moduleName: ModuleName;
35
+ Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_2 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_2], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_2]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
36
+ routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
37
+ };
38
+ <const Make extends {
39
+ dependencies: import("effect-app").Array<Layer.Layer.Any>;
40
+ effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
41
+ strict?: boolean;
42
+ readonly ಠ_ಠ: never;
43
+ }>(make: Make): {
44
+ moduleName: ModuleName;
45
+ Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
46
+ routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
47
+ };
48
+ <const Make extends {
49
+ dependencies: import("effect-app").Array<Layer.Layer.Any>;
50
+ effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["strict"] extends false ? any : Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
51
+ strict?: boolean;
52
+ readonly ಠ_ಠ: never;
53
+ }>(make: Make): {
54
+ moduleName: ModuleName;
55
+ Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
56
+ routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
57
+ };
58
+ <const Make extends {
59
+ dependencies: import("effect-app").Array<Layer.Layer.Any>;
60
+ effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
61
+ strict?: boolean;
62
+ readonly ಠ_ಠ: never;
63
+ }>(make: Make): {
64
+ moduleName: ModuleName;
65
+ Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
66
+ routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
67
+ };
68
+ <const Make extends {
69
+ dependencies: import("effect-app").Array<Layer.Layer.Any>;
70
+ effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, Make["dependencies"] extends infer T ? T extends Make["dependencies"] ? T extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k in keyof T]: Layer.Layer.Success<T[k]>; }[number] : never : never : never>;
71
+ strict?: boolean;
72
+ }>(make: Make): {
73
+ moduleName: ModuleName;
74
+ Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, Exclude<[{ [K_1 in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: Rpc.Rpc<Rsc[K_1], import("@effect-app/infra/api/routing")._R<ReturnType<import("@effect-app/infra/api/routing").MakeHandlers<Make, { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }>[K_1]["handler"]>>>; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]] extends [Rpc.Rpc<any, infer R>] ? R : never, import("@effect/platform/HttpRouter").HttpRouter.Provided>>;
75
+ routes: Layer.Layer<import("@effect-app/infra/api/routing").RouterShape<Rsc>, import("@effect-app/infra/api/routing").MakeErrors<Make> | (Make["dependencies"] extends infer T_1 ? T_1 extends Make["dependencies"] ? T_1 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_1 in keyof T_1]: Layer.Layer.Error<T_1[k_1]>; }[number] : never : never : never), (Make["dependencies"] extends infer T_2 ? T_2 extends Make["dependencies"] ? T_2 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_2 in keyof T_2]: Layer.Layer.Context<T_2[k_2]>; }[number] : never : never : never) | Exclude<import("@effect-app/infra/api/routing").MakeContext<Make>, Make["dependencies"] extends infer T_3 ? T_3 extends Make["dependencies"] ? T_3 extends readonly [Layer.Layer.Any, ...Layer.Layer.Any[]] ? { [k_3 in keyof T_3]: Layer.Layer.Success<T_3[k_3]>; }[number] : never : never : never>>;
76
+ };
77
+ <const Make extends {
78
+ dependencies: [...Make["dependencies"], ...Exclude<Effect.Effect.Context<Make["effect"]>, import("effect/Types").Contravariant.Type<import("@effect-app/infra/api/routing").MakeDeps<Make>[typeof Layer.LayerTypeId]["_ROut"]>> extends never ? [] : [Layer.Layer<Exclude<Effect.Effect.Context<Make["effect"]>, import("effect/Types").Contravariant.Type<import("@effect-app/infra/api/routing").MakeDeps<Make>[typeof Layer.LayerTypeId]["_ROut"]>>, never, never>]];
79
+ effect: Effect<{ [K in keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }]: import("@effect-app/infra/api/routing").Handler<Rsc[K], any, any>; }, any, any>;
80
+ strict?: boolean;
81
+ }>(make: Make): {
82
+ moduleName: ModuleName;
83
+ Router: import("@effect/platform/HttpRouter").HttpRouter.TagClass<import("@effect-app/infra/api/routing").RouterShape<Rsc>, `${ModuleName}Router`, never, never>;
84
+ routes: any;
85
+ };
86
+ } & import("@effect-app/infra/api/routing").RouteMatcher<CTXMap, Rsc, HttpServerRequest.HttpServerRequest> & {
87
+ router: import("@effect-app/infra/api/routing").AddAction<{ [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }[keyof { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }], {}>;
88
+ router2: { [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; } extends infer T extends Record<string, import("@effect-app/infra/api/routing").AnyRequestModule> ? { [K in keyof T]: import("@effect-app/infra/api/routing").Method<{ [K in keyof Rsc as Rsc[K] extends import("@effect-app/infra/api/routing").AnyRequestModule ? K : never]: Rsc[K]; }, K, "d", {}>; } : never;
89
+ };
90
+ export type RequestConfig = {
91
+ /** Disable authentication requirement */
92
+ allowAnonymous?: true;
93
+ /** Control the roles that are required to access the resource */
94
+ allowRoles?: readonly string[];
95
+ };
96
+ export declare const Req: <Self>() => {
97
+ <Tag extends string, Payload extends S.Struct.Fields, C extends {
98
+ success: S.Schema.Any | S.Struct.Fields;
99
+ failure: S.Schema.Any | S.Struct.Fields;
100
+ }>(tag: Tag, fields: Payload, config: RequestConfig & C): S.TaggedRequestClass<Self, Tag, {
101
+ readonly _tag: S.tag<Tag>;
102
+ } & Payload, (RequestConfig & C)["success"] extends infer T ? T extends (RequestConfig & C)["success"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never, ([((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>] extends [never] ? [] : [((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>]) extends infer T_2 ? T_2 extends ([((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>] extends [never] ? [] : [((RequestConfig & C)["failure"] extends infer T_1 ? T_1 extends (RequestConfig & C)["failure"] ? T_1 extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T_1, []> : T_1 extends S.Schema.Any ? T_1 : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C>]) ? T_2 extends readonly S.Schema.All[] ? S.Union<T_2> : typeof S.Never : never : never> & {
103
+ config: Omit<C, "success" | "failure">;
104
+ };
105
+ <Tag extends string, Payload_1 extends S.Struct.Fields, C_1 extends {
106
+ success: S.Schema.Any | S.Struct.Fields;
107
+ }>(tag: Tag, fields: Payload_1, config: RequestConfig & C_1): S.TaggedRequestClass<Self, Tag, {
108
+ readonly _tag: S.tag<Tag>;
109
+ } & Payload_1, (RequestConfig & C_1)["success"] extends infer T ? T extends (RequestConfig & C_1)["success"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never, ([import("effect-app/client").GetEffectError<CTXMap, C_1>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_1>]) extends infer T_1 ? T_1 extends ([import("effect-app/client").GetEffectError<CTXMap, C_1>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_1>]) ? T_1 extends readonly S.Schema.All[] ? S.Union<T_1> : typeof S.Never : never : never> & {
110
+ config: Omit<C_1, "success" | "failure">;
111
+ };
112
+ <Tag extends string, Payload_2 extends S.Struct.Fields, C_2 extends {
113
+ failure: S.Schema.Any | S.Struct.Fields;
114
+ }>(tag: Tag, fields: Payload_2, config: RequestConfig & C_2): S.TaggedRequestClass<Self, Tag, {
115
+ readonly _tag: S.tag<Tag>;
116
+ } & Payload_2, typeof S.Void, ([((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>] extends [never] ? [] : [((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>]) extends infer T_1 ? T_1 extends ([((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>] extends [never] ? [] : [((RequestConfig & C_2)["failure"] extends infer T ? T extends (RequestConfig & C_2)["failure"] ? T extends import("effect/Schema").Struct.Fields ? S.TypeLiteral<T, []> : T extends S.Schema.Any ? T : never : never : never) | import("effect-app/client").GetEffectError<CTXMap, C_2>]) ? T_1 extends readonly S.Schema.All[] ? S.Union<T_1> : typeof S.Never : never : never> & {
117
+ config: Omit<C_2, "success" | "failure">;
118
+ };
119
+ <Tag extends string, Payload_3 extends S.Struct.Fields, C_3 extends Record<string, any>>(tag: Tag, fields: Payload_3, config: C_3 & RequestConfig): S.TaggedRequestClass<Self, Tag, {
120
+ readonly _tag: S.tag<Tag>;
121
+ } & Payload_3, typeof S.Void, ([import("effect-app/client").GetEffectError<CTXMap, C_3>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_3>]) extends infer T ? T extends ([import("effect-app/client").GetEffectError<CTXMap, C_3>] extends [never] ? [] : [import("effect-app/client").GetEffectError<CTXMap, C_3>]) ? T extends readonly S.Schema.All[] ? S.Union<T> : typeof S.Never : never : never> & {
122
+ config: Omit<C_3, "success" | "failure">;
123
+ };
124
+ <Tag extends string, Payload_4 extends S.Struct.Fields>(tag: Tag, fields: Payload_4): S.TaggedRequestClass<Self, Tag, {
125
+ readonly _tag: S.tag<Tag>;
126
+ } & Payload_4, typeof S.Void, never>;
127
+ };
128
+ declare const GetSomething_base: S.TaggedRequestClass<GetSomething, "GetSomething", {
129
+ readonly _tag: S.tag<"GetSomething">;
130
+ } & {
131
+ id: typeof S.String;
132
+ }, typeof S.Void, S.Union<[typeof UnauthorizedError]>> & {
133
+ config: Omit<{
134
+ success: typeof S.Void;
135
+ }, "success" | "failure">;
136
+ };
137
+ export declare class GetSomething extends GetSomething_base {
138
+ }
139
+ declare const GetSomethingElse_base: S.TaggedRequestClass<GetSomethingElse, "GetSomethingElse", {
140
+ readonly _tag: S.tag<"GetSomethingElse">;
141
+ } & {
142
+ id: typeof S.String;
143
+ }, typeof S.String, S.Union<[typeof UnauthorizedError]>> & {
144
+ config: Omit<{
145
+ success: typeof S.String;
146
+ }, "success" | "failure">;
147
+ };
148
+ export declare class GetSomethingElse extends GetSomethingElse_base {
149
+ }
150
+ declare const SomethingService_base: import("effect/Effect").Service.Class<SomethingService, "SomethingService", {
151
+ readonly dependencies: readonly [];
152
+ readonly effect: Effect.Effect<{}, never, never>;
153
+ }>;
154
+ export declare class SomethingService extends SomethingService_base {
155
+ }
156
+ declare const SomethingRepo_base: import("effect/Effect").Service.Class<SomethingRepo, "SomethingRepo", {
157
+ readonly dependencies: readonly [Layer.Layer<SomethingService, never, never>];
158
+ readonly effect: Effect.Effect<{}, never, SomethingService>;
159
+ }>;
160
+ export declare class SomethingRepo extends SomethingRepo_base {
161
+ }
162
+ declare const SomethingService2_base: import("effect/Effect").Service.Class<SomethingService2, "SomethingService2", {
163
+ readonly dependencies: readonly [];
164
+ readonly effect: Effect.Effect<{}, never, never>;
165
+ }>;
166
+ export declare class SomethingService2 extends SomethingService2_base {
167
+ }
168
+ export {};
169
+ //# sourceMappingURL=controller.test%20copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.test copy.d.ts","sourceRoot":"","sources":["../controller.test copy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;sBA2DnB,KACH;;;;;;GA5DwB,QAAQ;;;;;;uDAmG8B,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAAkyD,KAAK,CAAC,GAAG;;;;;;;;;;uDAA6vD,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;CAnG7oO,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;2CAxEM,MAAM,CAAC,MAAM;mBAgC1C,MA9BA,CAAC,GAAG,KA8BJ,MA5BD,CA4BC,MA5BM;mBA4BN,MA3BC,CAAE,GAAE,KAAM,MAAK,CAAC,MAAM;;;;;;6CASqB,MAAM,CAAC,MAAM;mBACtD,MAAK,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUpB,MAAM,CAAC,MAAM;mBACG,MAAM,CAAC,GAAG,KAAK,MAAM,CAAE,MAAK;;;;;;6CAclD,MAAG,CAAC,MAAM;;;;;6CAMwC,MAAM,CAAC,MACrE;;;CA4BA,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
@@ -1,9 +1,10 @@
1
1
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
+ import { makeMiddleware, makeRouter } from "@effect-app/infra/api/routing";
2
3
  import { Rpc } from "@effect/rpc";
3
4
  import { Context, Effect, FiberRef, Layer, S, Schedule } from "effect-app";
4
5
  import { makeRpcClient, UnauthorizedError } from "effect-app/client";
5
6
  import { HttpHeaders, HttpServerRequest } from "effect-app/http";
6
- import { makeMiddleware, makeRouter } from "../src/api/routing5.js";
7
+ import { it } from "vitest";
7
8
  const optimisticConcurrencySchedule = Schedule.once
8
9
  && Schedule.recurWhile((a) => a?._tag === "OptimisticConcurrencyException");
9
10
  const middleware = makeMiddleware({
@@ -11,11 +12,11 @@ const middleware = makeMiddleware({
11
12
  // helper to deal with nested generic lmitations
12
13
  context: null,
13
14
  execute: Effect.gen(function* () {
14
- return (schema, handler, moduleName) => (req) => Effect
15
+ return (_schema, handler, moduleName) => (req) => Effect
15
16
  .gen(function* () {
16
- const headers = yield* Rpc.currentHeaders;
17
+ // const headers = yield* Rpc.currentHeaders
17
18
  const ctx = Context.empty();
18
- const config = "config" in schema ? schema.config : undefined;
19
+ // const config = "config" in schema ? schema.config : undefined
19
20
  // Check JWT
20
21
  // TODO
21
22
  // if (!fakeLogin && !request.allowAnonymous) {
@@ -92,11 +93,11 @@ export class SomethingService extends Effect.Service()("SomethingService", {
92
93
  })
93
94
  }) {
94
95
  }
95
- const c = a({ a: 5 });
96
96
  export class SomethingRepo extends Effect.Service()("SomethingRepo", {
97
97
  dependencies: [SomethingService.Default],
98
98
  effect: Effect.gen(function* () {
99
99
  const smth = yield* SomethingService;
100
+ console.log({ smth });
100
101
  return {};
101
102
  })
102
103
  }) {
@@ -108,22 +109,44 @@ export class SomethingService2 extends Effect.Service()("SomethingService2", {
108
109
  })
109
110
  }) {
110
111
  }
111
- const { handle, routes } = matchFor(Something);
112
- const d = handle({
113
- dependencies: [
114
- SomethingRepo.Default,
115
- SomethingService.Default
116
- // SomethingService2.Default
117
- ],
118
- effect: Effect.gen(function* () {
119
- const repo = yield* SomethingRepo;
120
- const smth = yield* SomethingService;
121
- const smth2 = yield* SomethingService2;
122
- const { GetSomething, GetSomethingElse } = routes;
123
- return {
124
- GetSomething: GetSomething(Effect.void),
125
- GetSomethingElse: GetSomethingElse(Effect.succeed("12"))
126
- };
127
- })
112
+ it("router", () => {
113
+ const routes = matchFor(Something)({
114
+ dependencies: [
115
+ SomethingRepo.Default,
116
+ SomethingService.Default,
117
+ SomethingService2.Default
118
+ ],
119
+ effect: Effect.gen(function* () {
120
+ const repo = yield* SomethingRepo;
121
+ const smth = yield* SomethingService;
122
+ const smth2 = yield* SomethingService2;
123
+ console.log({ repo, smth, smth2 });
124
+ const { GetSomething, GetSomethingElse, router } = matchFor(Something);
125
+ return router
126
+ .add(GetSomething(() => Effect.void))
127
+ .add(GetSomethingElse(Effect.succeed("12")));
128
+ })
129
+ });
130
+ console.log({ routes });
131
+ });
132
+ it("router2", () => {
133
+ const routes2 = matchFor(Something)({
134
+ dependencies: [
135
+ SomethingRepo.Default,
136
+ SomethingService.Default,
137
+ SomethingService2.Default
138
+ ],
139
+ effect: Effect.gen(function* () {
140
+ const repo = yield* SomethingRepo;
141
+ const smth = yield* SomethingService;
142
+ const smth2 = yield* SomethingService2;
143
+ console.log({ repo, smth, smth2 });
144
+ const { router2 } = matchFor(Something);
145
+ return router2
146
+ .GetSomething(() => Effect.void)
147
+ .GetSomethingElse(Effect.succeed("12"));
148
+ })
149
+ });
150
+ console.log({ routes2 });
128
151
  });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci50ZXN0IGNvcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9jb250cm9sbGVyLnRlc3QgY29weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrREFBK0Q7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDMUUsT0FBTyxFQUF5QixhQUFhLEVBQXNCLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFHbkUsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQUMsSUFBSTtPQUM5QyxRQUFRLENBQUMsVUFBVSxDQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLGdDQUFnQyxDQUFDLENBQUE7QUFXbEYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2hDLFVBQVUsRUFBRSxJQUF5QjtJQUNyQyxnREFBZ0Q7SUFDaEQsT0FBTyxFQUFFLElBQWtEO0lBQzNELE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUMzQixPQUFPLENBQ0wsTUFBcUMsRUFDckMsT0FBaUgsRUFDakgsVUFBbUIsRUFDbkIsRUFBRSxDQUNKLENBQ0UsR0FBUSxFQU1SLEVBQUUsQ0FDRixNQUFNO2FBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNaLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUE7WUFDekMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtB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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci50ZXN0IGNvcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9jb250cm9sbGVyLnRlc3QgY29weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrREFBK0Q7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUUxRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRWpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxRSxPQUFPLEVBQXlCLGFBQWEsRUFBc0IsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFaEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUUzQixNQUFNLDZCQUE2QixHQUFHLFFBQVEsQ0FBQyxJQUFJO09BQzlDLFFBQVEsQ0FBQyxVQUFVLENBQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssZ0NBQWdDLENBQUMsQ0FBQTtBQVdsRixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUM7SUFDaEMsVUFBVSxFQUFFLElBQXlCO0lBQ3JDLGdEQUFnRDtJQUNoRCxPQUFPLEVBQUUsSUFBa0Q7SUFDM0QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzNCLE9BQU8sQ0FDTCxPQUFzQyxFQUN0QyxPQUFpSCxFQUNqSCxVQUFtQixFQUNuQixFQUFFLENBQ0osQ0FDRSxHQUFRLEVBTVIsRUFBRSxDQUNGLE1BQU07YUFDSCxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ1osNENBQTRDO1lBQzVDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFL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
@@ -1 +1 @@
1
- {"version":3,"file":"controller6.test.d.ts","sourceRoot":"","sources":["../controller6.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC/G,OAAO,EAAe,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAOhE,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ;;;;;gBA0EqxD,MAAO,KAAK;;;;;;GA1E/xD,QAAQ;;;;;;iDA0E01F,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAk0D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAA6xD,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CA1EvmU,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;yCAxEE,EAAG,MAAM,CAAC,MAAM;iBAgCzC,EAAA,MA9BD,CA8BC,GA9BG,GA8BH,EAAA,MA5BF,CA4BE,MA5BK;iBA4BL,EAAA,MA3BA,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CASkB,EAAG,MAAM,CAAC,MAAM;iBAkBxD,EAjBC,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAUtB,EAAE,MAAM,CAAC,MAAM;iBACA,EAAG,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAcjD,EAAA,MAAE,CAAC,MAAM;;;;;2CAMqC,EAAG,MAAM,CAAC,MACrE;;;;;CA4BC,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
1
+ {"version":3,"file":"controller6.test.d.ts","sourceRoot":"","sources":["../controller6.test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAGtE,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQ/G,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,QAAQ,OAAE,QAAQ,KAAiC,CAAA;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;2CAxEK,MAAM,CAAC,MAAM;mBAgCzC,MA9BD,CA8BC,GA9BG,KA8BH,MA5BF,CA4BE,MA5BK;mBA4BL,MA3BA,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CASqB,MAAM,CAAC,MAAM;mBACvD,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUpB,MAAM,CAAC,MAAM;mBACG,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAcjD,MAAE,CAAC,MAAM;;;;;6CAMwC,MAAM,CAAC,MACrE;;;;;CA4BC,CAAA;;;;;;;;;;AAEF,qBAAa,YAAa,SAAQ,iBAEX;CAAG;;;;;;;;;;AAE1B,qBAAa,gBAAiB,SAAQ,qBAEb;CAAG;;;;;AAI5B,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller7.test.d.ts","sourceRoot":"","sources":["../controller7.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller7.test.d.ts","sourceRoot":"","sources":["../controller7.test.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAGtE,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQ/G,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;AAED,MAAM,MAAM,MAAM,GAAG;IAGnB,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAmGD,eAAO,MAAQ,MAAM,OAAE,QAAQ,OAAE,QAAQ,KAAiC,CAAA;AAE1E,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,cAAc,CAAC,EAAE,IAAI,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B,CAAA;AACD,eAAO,MAAuB,GAAG;2CAxCvB,MAjCD,CAiCC,MAjCM;mBACgB,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;mBAgClD,MA9BJ,CA8BI,GA9BA,KA8BA,MA5BL,CA4BK,MA5BE;;;;;;6CASC,MACV,CAkBO,MAlBA;mBAAuC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CAkBnE,MATE,CASF,MATS;mBAEF,MAAI,CAAC,GAAG,KAAK,MAC9B,CAMU,MANH;;;;;;6CAYG,MAAL,CAAK,MAAE;;;;;6CAQI,MAAH,CAAG,MAAI;;;;;CA6BlB,CAAA;;;;;;;;;;AAEF,qBAAa,WAAY,SAAQ,gBAEV;CAAG;;;;;;;;;;AAE1B,qBAAa,YAAa,SAAQ,iBAET;CAAG;;;;;;;;;;AAE5B,qBAAa,aAAc,SAAQ,kBAEA;CAAG;;;;;AAItC,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;;AASL,qBAAa,aAAc,SAAQ,kBAOjC;CAAG;;;;;AAEL,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;;AA0BL,wBAmBE;AAEF,eAAO,MAAM,OAAO,KAmBlB,CAAA"}