@effect-app/infra 2.54.4 → 2.55.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.
@@ -11,6 +11,7 @@ import type { GetEffectContext, RPCContextMap } from "effect-app/client/req"
11
11
  import { type HttpHeaders, HttpRouter } from "effect-app/http"
12
12
  import { pretty, typedKeysOf, typedValuesOf } from "effect-app/utils"
13
13
  import type { Contravariant } from "effect/Types"
14
+ import { type YieldWrap } from "effect/Utils"
14
15
  import { makeRpc, type Middleware } from "./routing/DynamicMiddleware.js"
15
16
 
16
17
  const logRequestError = logError("Request")
@@ -265,6 +266,92 @@ export const makeRouter = <
265
266
  ? { [k in keyof Layers]: Layer.Layer.Error<Layers[k]> }[number]
266
267
  : never
267
268
 
269
+ const total = Object.keys(filtered).length
270
+ const router: AddAction<Filtered[keyof Filtered]> = {
271
+ accum: {},
272
+ add(a: any) {
273
+ ;(this.accum as any)[a.request._tag] = a
274
+ ;(this as any)[a.request._tag] = a
275
+ if (Object.keys(this.accum).length === total) return this.accum as any
276
+ return this as any
277
+ }
278
+ }
279
+
280
+ type HndlrWithInputG<
281
+ Action extends AnyRequestModule,
282
+ Mode extends "d" | "raw"
283
+ > = (
284
+ req: S.Schema.Type<Action>
285
+ ) => Generator<
286
+ YieldWrap<Effect<any, S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError, any>>,
287
+ GetSuccessShape<Action, Mode>,
288
+ never
289
+ >
290
+
291
+ type HndlrWithInput<Action extends AnyRequestModule, Mode extends "d" | "raw"> = (
292
+ req: S.Schema.Type<Action>
293
+ ) => Effect<
294
+ GetSuccessShape<Action, Mode>,
295
+ S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError,
296
+ any
297
+ >
298
+
299
+ type Hndlr<Action extends AnyRequestModule, Mode extends "d" | "raw"> = Effect<
300
+ GetSuccessShape<Action, Mode>,
301
+ S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError,
302
+ any
303
+ >
304
+
305
+ type Hndlrs<Action extends AnyRequestModule, Mode extends "d" | "raw"> =
306
+ | HndlrWithInputG<Action, Mode>
307
+ | HndlrWithInput<Action, Mode>
308
+ | Hndlr<Action, Mode>
309
+
310
+ type DHndlrs<Action extends AnyRequestModule> = Hndlrs<Action, "d">
311
+
312
+ type RawHndlrs<Action extends AnyRequestModule> =
313
+ | { raw: HndlrWithInputG<Action, "raw"> }
314
+ | { raw: HndlrWithInput<Action, "raw"> }
315
+ | { raw: Hndlr<Action, "raw"> }
316
+
317
+ type AnyHndlrs<Action extends AnyRequestModule> = RawHndlrs<Action> | DHndlrs<Action>
318
+
319
+ const router3: <
320
+ const Impl extends {
321
+ [K in keyof Filter<Rsc>]: AnyHndlrs<Rsc[K]>
322
+ }
323
+ >(
324
+ impl: Impl
325
+ ) => {
326
+ [K in keyof Impl & keyof Filter<Rsc>]: Handler<
327
+ Filter<Rsc>[K],
328
+ Impl[K] extends { raw: any } ? "raw" : "d",
329
+ Exclude<
330
+ | Context
331
+ | Exclude<
332
+ Impl[K] extends { raw: any } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R
333
+ : Impl[K]["raw"] extends Effect<any, any, infer R> ? R
334
+ : never
335
+ : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R
336
+ : Impl[K] extends Effect<any, any, infer R> ? R
337
+ : never,
338
+ GetEffectContext<CTXMap, Rsc[K]["config"]>
339
+ >,
340
+ HttpRouter.HttpRouter.Provided
341
+ >
342
+ >
343
+ } = (obj: Record<keyof Filtered, any>) =>
344
+ typedKeysOf(obj).reduce((acc, cur) => {
345
+ if ("raw" in obj[cur]) {
346
+ acc[cur] = obj[cur].raw[Symbol.toStringTag] === "GeneratorFunction"
347
+ ? Effect.fnUntraced(obj[cur].raw)
348
+ : obj[cur].raw
349
+ } else {
350
+ acc[cur] = obj[cur][Symbol.toStringTag] === "GeneratorFunction" ? Effect.fnUntraced(obj[cur]) : obj[cur]
351
+ }
352
+ return acc
353
+ }, {} as any)
354
+
268
355
  const f = <
269
356
  E,
270
357
  R,
@@ -275,7 +362,7 @@ export const makeRouter = <
275
362
  TLayers extends NonEmptyReadonlyArray<Layer.Layer.Any> | never[]
276
363
  >(
277
364
  layers: TLayers,
278
- make: Effect<THandlers, E, R>
365
+ make: Effect<THandlers, E, R> | Generator<YieldWrap<Effect<any, any, any>>, THandlers, E>
279
366
  ) => {
280
367
  type ProvidedLayers =
281
368
  | { [k in keyof Layers]: Layer.Layer.Success<Layers[k]> }[number]
@@ -285,6 +372,10 @@ export const makeRouter = <
285
372
  const layer = (requestLayers: any) =>
286
373
  Effect
287
374
  .gen(function*() {
375
+ make = (make as any)[Symbol.toStringTag] === "GeneratorFunction"
376
+ ? Effect.fnUntraced(make as any)(router3) as any
377
+ : make
378
+
288
379
  const controllers = yield* make
289
380
  const rpc = yield* makeRpc(middleware)
290
381
 
@@ -466,6 +557,35 @@ export const makeRouter = <
466
557
 
467
558
  const effect: {
468
559
  // Multiple times duplicated the "good" overload, so that errors will only mention the last overload when failing
560
+ <
561
+ const Make extends {
562
+ dependencies: Array<Layer.Layer.Any>
563
+ effect: (match: typeof router3) => Generator<
564
+ YieldWrap<Effect<any, any, Make["strict"] extends false ? any : GetSuccess<Make["dependencies"]>>>,
565
+ { [K in keyof Filter<Rsc>]: AHandler<Rsc[K]> },
566
+ any
567
+ >
568
+
569
+ strict?: boolean
570
+ /** @deprecated */
571
+ readonly ಠ_ಠ: never
572
+ }
573
+ >(
574
+ make: Make
575
+ ): {
576
+ moduleName: ModuleName
577
+
578
+ routes: (requestLayers: any) => Layer.Layer<
579
+ RouterShape<Rsc>,
580
+ MakeErrors<Make> | GetError<Make["dependencies"]>,
581
+ | GetContext<Make["dependencies"]>
582
+ // | GetContext<Layers> // elsewhere provided
583
+ | Exclude<MakeContext<Make> | RMW, GetSuccess<Make["dependencies"]> | GetSuccess<Layers>>
584
+ >
585
+
586
+ // just for type testing purposes
587
+ make: Make
588
+ }
469
589
  <
470
590
  const Make extends {
471
591
  dependencies: Array<Layer.Layer.Any>
@@ -490,6 +610,9 @@ export const makeRouter = <
490
610
  // | GetContext<Layers> // elsewhere provided
491
611
  | Exclude<MakeContext<Make> | RMW, GetSuccess<Make["dependencies"]> | GetSuccess<Layers>>
492
612
  >
613
+
614
+ // just for type testing purposes
615
+ make: Make
493
616
  }
494
617
  <
495
618
  const Make extends {
@@ -515,6 +638,9 @@ export const makeRouter = <
515
638
  // | GetContext<Layers> // elsewhere provided
516
639
  | Exclude<MakeContext<Make> | RMW, GetSuccess<Make["dependencies"]> | GetSuccess<Layers>>
517
640
  >
641
+
642
+ // just for type testing purposes
643
+ make: Make
518
644
  }
519
645
  <
520
646
  const Make extends {
@@ -540,6 +666,9 @@ export const makeRouter = <
540
666
  // | GetContext<Layers> // elsewhere provided
541
667
  | Exclude<MakeContext<Make> | RMW, GetSuccess<Make["dependencies"]> | GetSuccess<Layers>>
542
668
  >
669
+
670
+ // just for type testing purposes
671
+ make: Make
543
672
  }
544
673
  <
545
674
  const Make extends {
@@ -565,6 +694,9 @@ export const makeRouter = <
565
694
  // | GetContext<Layers> // elsewhere provided
566
695
  | Exclude<MakeContext<Make> | RMW, GetSuccess<Make["dependencies"]> | GetSuccess<Layers>>
567
696
  >
697
+
698
+ // just for type testing purposes
699
+ make: Make
568
700
  }
569
701
  <
570
702
  const Make extends {
@@ -588,6 +720,36 @@ export const makeRouter = <
588
720
  // | GetContext<Layers> // elsewhere provided
589
721
  | Exclude<MakeContext<Make> | RMW, GetSuccess<Make["dependencies"]> | GetSuccess<Layers>>
590
722
  >
723
+
724
+ // just for type testing purposes
725
+ make: Make
726
+ }
727
+ <
728
+ const Make extends {
729
+ dependencies: Array<Layer.Layer.Any>
730
+ effect: (match: typeof router3) => Generator<
731
+ YieldWrap<Effect<any, any, Make["strict"] extends false ? any : GetSuccess<Make["dependencies"]>>>,
732
+ { [K in keyof Filter<Rsc>]: AHandler<Rsc[K]> },
733
+ any
734
+ >
735
+
736
+ strict?: boolean
737
+ }
738
+ >(
739
+ make: Make
740
+ ): {
741
+ moduleName: ModuleName
742
+
743
+ routes: (requestLayers: any) => Layer.Layer<
744
+ RouterShape<Rsc>,
745
+ MakeErrors<Make> | GetError<Make["dependencies"]>,
746
+ | GetContext<Make["dependencies"]>
747
+ // | GetContext<Layers> // elsewhere provided
748
+ | Exclude<MakeContext<Make> | RMW, GetSuccess<Make["dependencies"]> | GetSuccess<Layers>>
749
+ >
750
+
751
+ // just for type testing purposes
752
+ make: Make
591
753
  }
592
754
  <
593
755
  const Make extends {
@@ -619,75 +781,13 @@ export const makeRouter = <
619
781
  // HttpRouter.HttpRouter.Provided
620
782
  // >
621
783
  routes: any
622
- }
623
- } = ((m: { dependencies: any; effect: any; strict?: any }) => f(m.dependencies, m.effect)) as any
624
784
 
625
- const total = Object.keys(filtered).length
626
- const router: AddAction<Filtered[keyof Filtered]> = {
627
- accum: {},
628
- add(a: any) {
629
- ;(this.accum as any)[a.request._tag] = a
630
- ;(this as any)[a.request._tag] = a
631
- if (Object.keys(this.accum).length === total) return this.accum as any
632
- return this as any
633
- }
634
- }
635
-
636
- type HndlrWithInput<Action extends AnyRequestModule, Mode extends "d" | "raw"> = (
637
- req: S.Schema.Type<Action>
638
- ) => Effect<
639
- GetSuccessShape<Action, Mode>,
640
- S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError,
641
- any
642
- >
643
-
644
- type Hndlr<Action extends AnyRequestModule, Mode extends "d" | "raw"> = Effect<
645
- GetSuccessShape<Action, Mode>,
646
- S.Schema.Type<GetFailure<Action>> | S.ParseResult.ParseError,
647
- any
648
- >
649
-
650
- type Hndlrs<Action extends AnyRequestModule, Mode extends "d" | "raw"> =
651
- | HndlrWithInput<Action, Mode>
652
- | Hndlr<Action, Mode>
653
-
654
- type DHndlrs<Action extends AnyRequestModule> = Hndlrs<Action, "d">
655
-
656
- type RawHndlrs<Action extends AnyRequestModule> =
657
- | { raw: HndlrWithInput<Action, "raw"> }
658
- | { raw: Hndlr<Action, "raw"> }
659
-
660
- type AnyHndlrs<Action extends AnyRequestModule> = RawHndlrs<Action> | DHndlrs<Action>
661
-
662
- const router3: <
663
- const Impl extends {
664
- [K in keyof Filter<Rsc>]: AnyHndlrs<Rsc[K]>
785
+ // just for type testing purposes
786
+ make: Make
665
787
  }
666
- >(
667
- impl: Impl
668
- ) => {
669
- [K in keyof Impl & keyof Filter<Rsc>]: Handler<
670
- Filter<Rsc>[K],
671
- Impl[K] extends { raw: any } ? "raw" : "d",
672
- Exclude<
673
- | Context
674
- | Exclude<
675
- Impl[K] extends { raw: any } ? Impl[K]["raw"] extends (...args: any[]) => Effect<any, any, infer R> ? R
676
- : Impl[K]["raw"] extends Effect<any, any, infer R> ? R
677
- : never
678
- : Impl[K] extends (...args: any[]) => Effect<any, any, infer R> ? R
679
- : Impl[K] extends Effect<any, any, infer R> ? R
680
- : never,
681
- GetEffectContext<CTXMap, Rsc[K]["config"]>
682
- >,
683
- HttpRouter.HttpRouter.Provided
684
- >
685
- >
686
- } = (obj: Record<keyof Filtered, any>) =>
687
- typedKeysOf(obj).reduce((acc, cur) => {
688
- acc[cur] = "raw" in obj[cur] ? items[cur].raw(obj[cur].raw) : items[cur](obj[cur])
689
- return acc
690
- }, {} as any)
788
+ } =
789
+ ((m: { dependencies: any; effect: any; strict?: any }) =>
790
+ Object.assign(f(m.dependencies, m.effect), { make: m })) as any
691
791
 
692
792
  return Object.assign(effect, items, { router, router3 })
693
793
  }
@@ -729,14 +829,17 @@ export type MakeDeps<Make> = Make extends { readonly dependencies: ReadonlyArray
729
829
  : never
730
830
 
731
831
  export type MakeErrors<Make> = Make extends { readonly effect: Effect<any, infer E, any> } ? E
832
+ : Make extends { readonly effect: (_: any) => Generator<YieldWrap<Effect<any, infer E, any>>, any, any> } ? E
732
833
  : never
733
834
 
734
835
  export type MakeContext<Make> = Make extends { readonly effect: Effect<any, any, infer R> } ? R
836
+ : Make extends { readonly effect: (_: any) => Generator<YieldWrap<Effect<any, any, infer R>>, any, any> } ? R
735
837
  : never
736
838
 
737
839
  export type MakeHandlers<Make, Handlers extends Record<string, any>> = Make extends
738
840
  { readonly effect: Effect<{ [K in keyof Handlers]: AHandler<Handlers[K]> }, any, any> }
739
841
  ? Effect.Success<Make["effect"]>
842
+ : Make extends { readonly effect: (_: any) => Generator<YieldWrap<any>, infer S, any> } ? S
740
843
  : never
741
844
 
742
845
  /**
@@ -1,12 +1,11 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
- import { makeMiddleware, makeRouter } from "@effect-app/infra/api/routing"
3
+ import { type MakeContext, type MakeErrors, makeMiddleware, makeRouter } from "@effect-app/infra/api/routing"
4
4
  import type { RequestContext } from "@effect-app/infra/RequestContext"
5
- import { Rpc } from "@effect/rpc"
6
- import type { Request } from "effect-app"
7
- import { Context, Effect, FiberRef, Layer, S, Schedule } from "effect-app"
8
- import { type GetEffectContext, makeRpcClient, type RPCContextMap, UnauthorizedError } from "effect-app/client"
9
- import { HttpHeaders, HttpServerRequest } from "effect-app/http"
5
+ import { expectTypeOf } from "@effect/vitest"
6
+ import { Context, Effect, Layer, type Request, S, Schedule } from "effect-app"
7
+ import { type GetEffectContext, InvalidStateError, makeRpcClient, type RPCContextMap, UnauthorizedError } from "effect-app/client"
8
+ import { type HttpServerRequest } from "effect-app/http"
10
9
  import type * as EffectRequest from "effect/Request"
11
10
  import { it } from "vitest"
12
11
 
@@ -29,11 +28,15 @@ const middleware = makeMiddleware({
29
28
  execute: Effect.gen(function*() {
30
29
  return <T extends { config?: { [K in keyof CTXMap]?: any } }, Req extends S.TaggedRequest.All, R>(
31
30
  _schema: T & S.Schema<Req, any, never>,
32
- handler: (request: Req) => Effect.Effect<EffectRequest.Request.Success<Req>, EffectRequest.Request.Error<Req>, R>,
31
+ handler: (
32
+ request: Req,
33
+ headers: any
34
+ ) => Effect.Effect<EffectRequest.Request.Success<Req>, EffectRequest.Request.Error<Req>, R>,
33
35
  moduleName?: string
34
36
  ) =>
35
37
  (
36
- req: Req
38
+ req: Req,
39
+ headers: any
37
40
  ): Effect.Effect<
38
41
  Request.Request.Success<Req>,
39
42
  Request.Request.Error<Req>,
@@ -88,7 +91,7 @@ const middleware = makeMiddleware({
88
91
  // }
89
92
  // }
90
93
 
91
- return yield* handler(req).pipe(
94
+ return yield* handler(req, headers).pipe(
92
95
  Effect.retry(optimisticConcurrencySchedule),
93
96
  Effect.provide(ctx as Context.Context<GetEffectContext<CTXMap, T["config"]>>)
94
97
  )
@@ -102,16 +105,16 @@ const middleware = makeMiddleware({
102
105
  // ..._,
103
106
  // name: NonEmptyString255(moduleName ? `${moduleName}.${req._tag}` : req._tag)
104
107
  // }))
105
- const httpReq = yield* HttpServerRequest.HttpServerRequest
108
+ // const httpReq = yield* HttpServerRequest.HttpServerRequest
106
109
  // TODO: only pass Authentication etc, or move headers to actual Rpc Headers
107
- yield* FiberRef.update(
108
- Rpc.currentHeaders,
109
- (headers) =>
110
- HttpHeaders.merge(
111
- httpReq.headers,
112
- headers
113
- )
114
- )
110
+ // yield* FiberRef.update(
111
+ // Rpc.currentHeaders,
112
+ // (headers) =>
113
+ // HttpHeaders.merge(
114
+ // httpReq.headers,
115
+ // headers
116
+ // )
117
+ // )
115
118
  })
116
119
  .pipe(Layer.effectDiscard)
117
120
  )
@@ -286,3 +289,55 @@ Router(Something)({
286
289
  })
287
290
  })
288
291
  })
292
+
293
+ const { make: _make, routes: _routes } = Router(Something)({
294
+ dependencies: [
295
+ SomethingRepo.Default,
296
+ SomethingService.Default,
297
+ SomethingService2.Default
298
+ ],
299
+ *effect(match) {
300
+ const repo = yield* SomethingRepo
301
+ const smth = yield* SomethingService
302
+ const smth2 = yield* SomethingService2
303
+
304
+ // this gets catched in 'routes' type
305
+ if (Math.random() > 0.5) {
306
+ return yield* new InvalidStateError("ciao")
307
+ }
308
+
309
+ console.log({ repo, smth, smth2 })
310
+
311
+ return match({
312
+ *GetSomething(req) {
313
+ console.log(req.id)
314
+
315
+ const _b = yield* Effect.succeed(false)
316
+ if (_b) {
317
+ // expected errors here because RequestError is not a valid error for controllers
318
+ // yield* new RequestError(1 as any)
319
+ // return yield* new RequestError(1 as any)
320
+ }
321
+ if (Math.random() > 0.5) {
322
+ return yield* Effect.succeed("12")
323
+ }
324
+ if (!_b) {
325
+ return yield* new UnauthorizedError()
326
+ } else {
327
+ // expected an error here because a boolean is not a string
328
+ // return _b
329
+ return "12"
330
+ }
331
+ },
332
+ DoSomething: {
333
+ *raw() {
334
+ return yield* Effect.succeed(undefined)
335
+ }
336
+ },
337
+ GetSomething2: { raw: SomethingService2.use(() => Effect.succeed("12")) }
338
+ })
339
+ }
340
+ })
341
+
342
+ expectTypeOf({} as MakeErrors<typeof _make>).toEqualTypeOf<InvalidStateError>()
343
+ expectTypeOf({} as MakeContext<typeof _make>).toEqualTypeOf<SomethingService | SomethingRepo | SomethingService2>()
@@ -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"}