@effect-app/infra 2.90.0 → 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 +13 -0
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +1 -2
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.js +23 -5
- package/dist/api/routing/utils.d.ts +1 -1
- package/dist/api/routing/utils.d.ts.map +1 -1
- package/dist/api/routing/utils.js +4 -2
- package/dist/api/routing.d.ts +108 -189
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +12 -32
- package/package.json +2 -2
- package/src/api/routing/middleware/RouterMiddleware.ts +2 -6
- package/src/api/routing/middleware/middleware.ts +26 -7
- package/src/api/routing/utils.ts +5 -2
- package/src/api/routing.ts +52 -92
- package/test/controller.test.ts +3 -3
- package/test/dist/controller.test.d.ts.map +1 -1
package/src/api/routing.ts
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
-
import { determineMethod, isCommand } from "@effect-app/infra/api/routing/utils"
|
|
6
5
|
import { Rpc, RpcGroup, RpcServer } from "@effect/rpc"
|
|
7
|
-
import { type Array, Effect, Layer, type NonEmptyReadonlyArray, Predicate, S,
|
|
6
|
+
import { type Array, Effect, Layer, type NonEmptyReadonlyArray, Predicate, S, Schema, type Scope } from "effect-app"
|
|
8
7
|
import type { GetEffectContext, GetEffectError, RPCContextMap } from "effect-app/client/req"
|
|
9
8
|
import { type HttpHeaders, HttpRouter } from "effect-app/http"
|
|
10
9
|
import { typedKeysOf, typedValuesOf } from "effect-app/utils"
|
|
@@ -16,11 +15,6 @@ import { DevMode, type RouterMiddleware } from "./routing/middleware.js"
|
|
|
16
15
|
|
|
17
16
|
export * from "./routing/middleware.js"
|
|
18
17
|
|
|
19
|
-
// retry just once on optimistic concurrency exceptions
|
|
20
|
-
const optimisticConcurrencySchedule = Schedule.once.pipe(
|
|
21
|
-
Schedule.intersect(Schedule.recurWhile<any>((a) => a?._tag === "OptimisticConcurrencyException"))
|
|
22
|
-
)
|
|
23
|
-
|
|
24
18
|
// it's the result of extending S.Req setting success, config
|
|
25
19
|
// it's a schema plus some metadata
|
|
26
20
|
export type AnyRequestModule = S.Schema.Any & {
|
|
@@ -55,8 +49,8 @@ export interface AddAction<Actions extends AnyRequestModule, Accum extends Recor
|
|
|
55
49
|
namespace RequestTypes {
|
|
56
50
|
export const DECODED = "d" as const
|
|
57
51
|
export type DECODED = typeof DECODED
|
|
58
|
-
export const
|
|
59
|
-
export type
|
|
52
|
+
export const RAW = "raw" as const
|
|
53
|
+
export type RAW = typeof RAW
|
|
60
54
|
}
|
|
61
55
|
type RequestType = typeof RequestTypes[keyof typeof RequestTypes]
|
|
62
56
|
|
|
@@ -157,7 +151,7 @@ export type RouteMatcher<
|
|
|
157
151
|
/**
|
|
158
152
|
* Requires the Encoded shape (e.g directly undecoded from DB, so that we don't do multiple Decode/Encode)
|
|
159
153
|
*/
|
|
160
|
-
raw: Match<Resource, RequestContextMap, RequestTypes.
|
|
154
|
+
raw: Match<Resource, RequestContextMap, RequestTypes.RAW, Key>
|
|
161
155
|
}
|
|
162
156
|
}
|
|
163
157
|
|
|
@@ -238,9 +232,9 @@ export const makeRouter = <
|
|
|
238
232
|
type HandlersDecoded<Action extends AnyRequestModule> = Handlers<Action, RequestTypes.DECODED>
|
|
239
233
|
|
|
240
234
|
type HandlersRaw<Action extends AnyRequestModule> =
|
|
241
|
-
| { raw: HandlerWithInputGen<Action, RequestTypes.
|
|
242
|
-
| { raw: HandlerWithInputEff<Action, RequestTypes.
|
|
243
|
-
| { raw: HandlerEff<Action, RequestTypes.
|
|
235
|
+
| { raw: HandlerWithInputGen<Action, RequestTypes.RAW> }
|
|
236
|
+
| { raw: HandlerWithInputEff<Action, RequestTypes.RAW> }
|
|
237
|
+
| { raw: HandlerEff<Action, RequestTypes.RAW> }
|
|
244
238
|
|
|
245
239
|
type AnyHandlers<Action extends AnyRequestModule> = HandlersRaw<Action> | HandlersDecoded<Action>
|
|
246
240
|
|
|
@@ -287,13 +281,13 @@ export const makeRouter = <
|
|
|
287
281
|
? class {
|
|
288
282
|
static request = rsc[cur]
|
|
289
283
|
static stack = stack
|
|
290
|
-
static _tag = RequestTypes.
|
|
284
|
+
static _tag = RequestTypes.RAW
|
|
291
285
|
static handler = () => handlerImpl
|
|
292
286
|
}
|
|
293
287
|
: class {
|
|
294
288
|
static request = rsc[cur]
|
|
295
289
|
static stack = stack
|
|
296
|
-
static _tag = RequestTypes.
|
|
290
|
+
static _tag = RequestTypes.RAW
|
|
297
291
|
static handler = handlerImpl
|
|
298
292
|
}
|
|
299
293
|
}
|
|
@@ -303,16 +297,6 @@ export const makeRouter = <
|
|
|
303
297
|
{} as RouteMatcher<RequestContextMap, Resource>
|
|
304
298
|
)
|
|
305
299
|
|
|
306
|
-
const router: AddAction<RequestModules[keyof RequestModules]> = {
|
|
307
|
-
accum: {},
|
|
308
|
-
add(a: any) {
|
|
309
|
-
;(this.accum as any)[a.request._tag] = a
|
|
310
|
-
;(this as any)[a.request._tag] = a
|
|
311
|
-
if (Object.keys(this.accum).length === Object.keys(requestModules).length) return this.accum as any
|
|
312
|
-
return this as any
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
300
|
const router3: <
|
|
317
301
|
const Impl extends {
|
|
318
302
|
[K in keyof FilterRequestModules<Resource>]: AnyHandlers<Resource[K]>
|
|
@@ -322,7 +306,7 @@ export const makeRouter = <
|
|
|
322
306
|
) => {
|
|
323
307
|
[K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<
|
|
324
308
|
FilterRequestModules<Resource>[K],
|
|
325
|
-
Impl[K] extends { raw: any } ? RequestTypes.
|
|
309
|
+
Impl[K] extends { raw: any } ? RequestTypes.RAW : RequestTypes.DECODED,
|
|
326
310
|
Exclude<
|
|
327
311
|
Exclude<
|
|
328
312
|
// retrieves context R from the actual implementation of the handler
|
|
@@ -358,38 +342,32 @@ export const makeRouter = <
|
|
|
358
342
|
MakeE,
|
|
359
343
|
MakeR,
|
|
360
344
|
THandlers extends {
|
|
361
|
-
//
|
|
345
|
+
// important to keep them separate via | for type checking!!
|
|
362
346
|
[K in keyof RequestModules]: AnyHandler<Resource[K]>
|
|
363
347
|
},
|
|
364
348
|
MakeDependencies extends NonEmptyReadonlyArray<Layer.Layer.Any> | never[]
|
|
365
349
|
>(
|
|
366
350
|
dependencies: MakeDependencies,
|
|
367
|
-
make:
|
|
351
|
+
make: (
|
|
352
|
+
match: any
|
|
353
|
+
) => Effect<THandlers, MakeE, MakeR> | Generator<YieldWrap<Effect<any, MakeE, MakeR>>, THandlers, any>
|
|
368
354
|
) => {
|
|
369
355
|
type Router = RouterShape<Resource>
|
|
370
356
|
const layer = Effect
|
|
371
357
|
.gen(function*() {
|
|
372
|
-
|
|
358
|
+
const finalMake = ((make as any)[Symbol.toStringTag] === "GeneratorFunction"
|
|
373
359
|
? Effect.fnUntraced(make as any)(router3) as any
|
|
374
|
-
: make
|
|
360
|
+
: make(router3) as any) as Effect<THandlers, MakeE, MakeR>
|
|
375
361
|
|
|
376
|
-
const controllers = yield*
|
|
362
|
+
const controllers = yield* finalMake
|
|
377
363
|
|
|
378
364
|
// return make.pipe(Effect.map((c) => controllers(c, dependencies)))
|
|
379
365
|
const mapped = typedKeysOf(requestModules).reduce((acc, cur) => {
|
|
380
366
|
const handler = controllers[cur as keyof typeof controllers]
|
|
381
367
|
const resource = rsc[cur]
|
|
382
368
|
|
|
383
|
-
const method = determineMethod(String(cur), resource)
|
|
384
|
-
|
|
385
|
-
const handle = isCommand(method)
|
|
386
|
-
? (req: S.Schema.Type<AnyRequestModule>, headers: HttpHeaders.Headers) =>
|
|
387
|
-
Effect.retry(handler.handler(req, headers) as any, optimisticConcurrencySchedule)
|
|
388
|
-
: (req: S.Schema.Type<AnyRequestModule>, headers: HttpHeaders.Headers) =>
|
|
389
|
-
Effect.interruptible(handler.handler(req, headers) as any)
|
|
390
|
-
|
|
391
369
|
acc[cur] = [
|
|
392
|
-
handler._tag === RequestTypes.
|
|
370
|
+
handler._tag === RequestTypes.RAW
|
|
393
371
|
? class extends (resource as any) {
|
|
394
372
|
static success = S.encodedSchema(resource.success)
|
|
395
373
|
get [Schema.symbolSerializable]() {
|
|
@@ -404,12 +382,11 @@ export const makeRouter = <
|
|
|
404
382
|
} as any
|
|
405
383
|
: resource,
|
|
406
384
|
(payload: any, headers: any) =>
|
|
407
|
-
|
|
385
|
+
(handler.handler(payload, headers) as Effect<unknown, unknown, unknown>).pipe(
|
|
408
386
|
Effect.withSpan("Request." + resource._tag, {
|
|
409
387
|
captureStackTrace: () => handler.stack // capturing the handler stack is the main reason why we are doing the span here
|
|
410
388
|
})
|
|
411
|
-
)
|
|
412
|
-
meta.moduleName
|
|
389
|
+
)
|
|
413
390
|
] as const
|
|
414
391
|
return acc
|
|
415
392
|
}, {} as any) as {
|
|
@@ -502,16 +479,12 @@ export const makeRouter = <
|
|
|
502
479
|
Effect<
|
|
503
480
|
any,
|
|
504
481
|
any,
|
|
505
|
-
|
|
506
|
-
: Make extends { dependencies: Array<Layer.Layer.Any> } ? MakeDepsOut<Make>
|
|
507
|
-
: any
|
|
482
|
+
any
|
|
508
483
|
>
|
|
509
484
|
>,
|
|
510
485
|
{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
|
|
511
486
|
any
|
|
512
487
|
>
|
|
513
|
-
|
|
514
|
-
strict?: boolean
|
|
515
488
|
/** @deprecated */
|
|
516
489
|
readonly ಠ_ಠ: never
|
|
517
490
|
}
|
|
@@ -539,14 +512,11 @@ export const makeRouter = <
|
|
|
539
512
|
<
|
|
540
513
|
const Make extends {
|
|
541
514
|
dependencies?: Array<Layer.Layer.Any>
|
|
542
|
-
effect: Effect<
|
|
515
|
+
effect: (match: typeof router3) => Effect<
|
|
543
516
|
{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
|
|
544
517
|
any,
|
|
545
|
-
|
|
546
|
-
: Make extends { dependencies: Array<Layer.Layer.Any> } ? MakeDepsOut<Make>
|
|
547
|
-
: any
|
|
518
|
+
any
|
|
548
519
|
>
|
|
549
|
-
strict?: boolean
|
|
550
520
|
/** @deprecated */
|
|
551
521
|
readonly ಠ_ಠ: never
|
|
552
522
|
}
|
|
@@ -574,12 +544,11 @@ export const makeRouter = <
|
|
|
574
544
|
<
|
|
575
545
|
const Make extends {
|
|
576
546
|
dependencies?: Array<Layer.Layer.Any>
|
|
577
|
-
effect: Effect<
|
|
547
|
+
effect: (match: typeof router3) => Effect<
|
|
578
548
|
{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
|
|
579
549
|
any,
|
|
580
|
-
|
|
550
|
+
any
|
|
581
551
|
>
|
|
582
|
-
strict?: boolean
|
|
583
552
|
/** @deprecated */
|
|
584
553
|
readonly ಠ_ಠ: never
|
|
585
554
|
}
|
|
@@ -607,12 +576,11 @@ export const makeRouter = <
|
|
|
607
576
|
<
|
|
608
577
|
const Make extends {
|
|
609
578
|
dependencies?: Array<Layer.Layer.Any>
|
|
610
|
-
effect: Effect<
|
|
579
|
+
effect: (match: typeof router3) => Effect<
|
|
611
580
|
{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
|
|
612
581
|
any,
|
|
613
|
-
|
|
582
|
+
any
|
|
614
583
|
>
|
|
615
|
-
strict?: boolean
|
|
616
584
|
/** @deprecated */
|
|
617
585
|
readonly ಠ_ಠ: never
|
|
618
586
|
}
|
|
@@ -640,12 +608,11 @@ export const makeRouter = <
|
|
|
640
608
|
<
|
|
641
609
|
const Make extends {
|
|
642
610
|
dependencies?: Array<Layer.Layer.Any>
|
|
643
|
-
effect: Effect<
|
|
611
|
+
effect: (match: typeof router3) => Effect<
|
|
644
612
|
{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
|
|
645
613
|
any,
|
|
646
|
-
|
|
614
|
+
any
|
|
647
615
|
>
|
|
648
|
-
strict?: boolean
|
|
649
616
|
/** @deprecated */
|
|
650
617
|
readonly ಠ_ಠ: never
|
|
651
618
|
}
|
|
@@ -673,12 +640,11 @@ export const makeRouter = <
|
|
|
673
640
|
<
|
|
674
641
|
const Make extends {
|
|
675
642
|
dependencies?: Array<Layer.Layer.Any>
|
|
676
|
-
effect: Effect<
|
|
643
|
+
effect: (match: typeof router3) => Effect<
|
|
677
644
|
{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
|
|
678
645
|
any,
|
|
679
|
-
|
|
646
|
+
any
|
|
680
647
|
>
|
|
681
|
-
strict?: boolean
|
|
682
648
|
}
|
|
683
649
|
>(
|
|
684
650
|
make: Make
|
|
@@ -709,16 +675,12 @@ export const makeRouter = <
|
|
|
709
675
|
Effect<
|
|
710
676
|
any,
|
|
711
677
|
any,
|
|
712
|
-
|
|
713
|
-
: Make extends { dependencies: Array<Layer.Layer.Any> } ? MakeDepsOut<Make>
|
|
714
|
-
: any
|
|
678
|
+
any
|
|
715
679
|
>
|
|
716
680
|
>,
|
|
717
681
|
{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
|
|
718
682
|
any
|
|
719
683
|
>
|
|
720
|
-
|
|
721
|
-
strict?: boolean
|
|
722
684
|
}
|
|
723
685
|
>(
|
|
724
686
|
make: Make
|
|
@@ -745,15 +707,14 @@ export const makeRouter = <
|
|
|
745
707
|
const Make extends {
|
|
746
708
|
dependencies: [
|
|
747
709
|
...Make["dependencies"],
|
|
748
|
-
...Exclude<Effect.Context<Make["effect"]
|
|
749
|
-
: [Layer.Layer<Exclude<Effect.Context<Make["effect"]
|
|
710
|
+
...Exclude<Effect.Context<ReturnType<Make["effect"]>>, MakeDepsOut<Make>> extends never ? []
|
|
711
|
+
: [Layer.Layer<Exclude<Effect.Context<ReturnType<Make["effect"]>>, MakeDepsOut<Make>>, never, never>]
|
|
750
712
|
]
|
|
751
|
-
effect: Effect<
|
|
713
|
+
effect: (match: typeof router3) => Effect<
|
|
752
714
|
{ [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
|
|
753
715
|
any,
|
|
754
716
|
any
|
|
755
717
|
>
|
|
756
|
-
strict?: boolean
|
|
757
718
|
}
|
|
758
719
|
>(
|
|
759
720
|
make: Make
|
|
@@ -776,10 +737,10 @@ export const makeRouter = <
|
|
|
776
737
|
make: Make
|
|
777
738
|
}
|
|
778
739
|
} =
|
|
779
|
-
((make: { dependencies: any; effect: any
|
|
740
|
+
((make: { dependencies: any; effect: any }) =>
|
|
780
741
|
Object.assign(makeRoutes(make.dependencies, make.effect), { make })) as any
|
|
781
742
|
|
|
782
|
-
return
|
|
743
|
+
return effect
|
|
783
744
|
}
|
|
784
745
|
|
|
785
746
|
function matchAll<
|
|
@@ -804,12 +765,6 @@ export const makeRouter = <
|
|
|
804
765
|
|
|
805
766
|
return {
|
|
806
767
|
matchAll,
|
|
807
|
-
matchFor: <
|
|
808
|
-
const ModuleName extends string,
|
|
809
|
-
const Resource extends Record<string, any>
|
|
810
|
-
>(
|
|
811
|
-
rsc: Resource & { meta: { moduleName: ModuleName } }
|
|
812
|
-
) => matchFor(rsc).router3,
|
|
813
768
|
Router: matchFor
|
|
814
769
|
}
|
|
815
770
|
}
|
|
@@ -818,21 +773,26 @@ export type MakeDeps<Make> = Make extends { readonly dependencies: ReadonlyArray
|
|
|
818
773
|
? Make["dependencies"][number]
|
|
819
774
|
: never
|
|
820
775
|
|
|
821
|
-
export type MakeErrors<Make> = Make extends { readonly effect: Effect<
|
|
822
|
-
: Make extends { readonly effect: (_: any) =>
|
|
776
|
+
export type MakeErrors<Make> = Make extends { readonly effect: (_: any) => Effect<infer _A, infer E, infer _R> } ? E
|
|
777
|
+
: Make extends { readonly effect: (_: any) => Effect<infer _A, never, infer _R> } ? never
|
|
778
|
+
: Make extends
|
|
779
|
+
{ readonly effect: (_: any) => Generator<YieldWrap<Effect<infer _A, never, infer _R>>, infer _A, infer _2> } ? never
|
|
780
|
+
: Make extends
|
|
781
|
+
{ readonly effect: (_: any) => Generator<YieldWrap<Effect<infer _A, infer E, infer _R>>, infer _A, infer _2> } ? E
|
|
823
782
|
: never
|
|
824
783
|
|
|
825
|
-
export type MakeContext<Make> = Make extends { readonly effect: Effect<
|
|
826
|
-
: Make extends { readonly effect: (_: any) =>
|
|
784
|
+
export type MakeContext<Make> = Make extends { readonly effect: (_: any) => Effect<infer _A, infer _E, infer R> } ? R
|
|
785
|
+
: Make extends { readonly effect: (_: any) => Effect<infer _A, infer _E, never> } ? never
|
|
786
|
+
: Make extends
|
|
787
|
+
{ readonly effect: (_: any) => Generator<YieldWrap<Effect<infer _A, infer _E, never>>, infer _A, infer _2> } ? never
|
|
788
|
+
: Make extends
|
|
789
|
+
{ readonly effect: (_: any) => Generator<YieldWrap<Effect<infer _A, infer _E, infer R>>, infer _A, infer _2> } ? R
|
|
827
790
|
: never
|
|
828
791
|
|
|
829
792
|
export type MakeHandlers<Make, Handlers extends Record<string, any>> = Make extends
|
|
830
|
-
{ readonly effect: Effect<{ [K in keyof Handlers]: AnyHandler<Handlers[K]> }, any, any> }
|
|
831
|
-
? Effect.Success<Make["effect"]
|
|
832
|
-
: Make extends { readonly effect: (_: any) => Generator<YieldWrap<any>, infer S,
|
|
793
|
+
{ readonly effect: (_: any) => Effect<{ [K in keyof Handlers]: AnyHandler<Handlers[K]> }, any, any> }
|
|
794
|
+
? Effect.Success<ReturnType<Make["effect"]>>
|
|
795
|
+
: Make extends { readonly effect: (_: any) => Generator<YieldWrap<any>, infer S, infer _R> } ? S
|
|
833
796
|
: never
|
|
834
797
|
|
|
835
|
-
/**
|
|
836
|
-
* @since 3.9.0
|
|
837
|
-
*/
|
|
838
798
|
export type MakeDepsOut<Make> = Contravariant.Type<MakeDeps<Make>[Layer.LayerTypeId]["_ROut"]>
|
package/test/controller.test.ts
CHANGED
|
@@ -237,7 +237,7 @@ export class SomethingService2 extends Effect.Service<SomethingService2>()("Some
|
|
|
237
237
|
})
|
|
238
238
|
}) {}
|
|
239
239
|
|
|
240
|
-
export const { Router, matchAll
|
|
240
|
+
export const { Router, matchAll } = makeRouter(middleware, true)
|
|
241
241
|
|
|
242
242
|
export const r2 = makeRouter(middleware2, true)
|
|
243
243
|
|
|
@@ -247,7 +247,7 @@ const router = Router(Something)({
|
|
|
247
247
|
SomethingService.Default,
|
|
248
248
|
SomethingService2.Default
|
|
249
249
|
],
|
|
250
|
-
|
|
250
|
+
effect: Effect.fnUntraced(function*(match) {
|
|
251
251
|
const repo = yield* SomethingRepo
|
|
252
252
|
const smth = yield* SomethingService
|
|
253
253
|
const smth2 = yield* SomethingService2
|
|
@@ -300,7 +300,7 @@ const router = Router(Something)({
|
|
|
300
300
|
raw: Some.use(() => Effect.succeed("12"))
|
|
301
301
|
}
|
|
302
302
|
})
|
|
303
|
-
}
|
|
303
|
+
})
|
|
304
304
|
})
|
|
305
305
|
|
|
306
306
|
it("sorts based on requirements", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAc,MAAM,+BAA+B,CAAA;AAE7F,OAAO,EAAW,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE7D,OAAO,EAA6C,UAAU,EAAO,MAAM,kCAAkC,CAAA;AAE7G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;;;;;;AAgEhI,cAAM,kBAAmB,SAAQ,uBAU/B;CAAG;;;;;;AAML,qBAAa,eAAgB,SAAQ,oBAYnC;CACD;AA2DD,eAAO,MAAM,WAAW;;;;;;YAIM,CAAA;AAE9B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/B,CAAA;;;;;;;;;;AAEF,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;AACtE,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;;;AAEtE,qBAAa,WAAY,SAAQ,gBAEV;CAAG;;;;;;;;;;;;AAgB1B,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;AAEL,eAAO,MAAQ,MAAM
|
|
1
|
+
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAc,MAAM,+BAA+B,CAAA;AAE7F,OAAO,EAAW,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE7D,OAAO,EAA6C,UAAU,EAAO,MAAM,kCAAkC,CAAA;AAE7G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;;;;;;AAgEhI,cAAM,kBAAmB,SAAQ,uBAU/B;CAAG;;;;;;AAML,qBAAa,eAAgB,SAAQ,oBAYnC;CACD;AA2DD,eAAO,MAAM,WAAW;;;;;;YAIM,CAAA;AAE9B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/B,CAAA;;;;;;;;;;AAEF,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;AACtE,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;;;AAEtE,qBAAa,WAAY,SAAQ,gBAEV;CAAG;;;;;;;;;;;;AAgB1B,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;AAEL,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;;;;yHAAiC,CAAA;AAEhE,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgC,CAAA"}
|