@effect-app/infra 2.73.4 → 2.75.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.
Files changed (54) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/QueueMaker/errors.d.ts +1 -1
  3. package/dist/QueueMaker/errors.d.ts.map +1 -1
  4. package/dist/api/layerUtils.d.ts +22 -0
  5. package/dist/api/layerUtils.d.ts.map +1 -0
  6. package/dist/api/layerUtils.js +2 -0
  7. package/dist/api/routing/middleware/ContextProvider.d.ts +41 -0
  8. package/dist/api/routing/middleware/ContextProvider.d.ts.map +1 -0
  9. package/dist/api/routing/middleware/ContextProvider.js +27 -0
  10. package/dist/api/routing/middleware/DynamicMiddleware.d.ts +61 -0
  11. package/dist/api/routing/middleware/DynamicMiddleware.d.ts.map +1 -0
  12. package/dist/api/routing/middleware/DynamicMiddleware.js +45 -0
  13. package/dist/api/routing/middleware/dynamic-middleware.d.ts +26 -0
  14. package/dist/api/routing/middleware/dynamic-middleware.d.ts.map +1 -0
  15. package/dist/api/routing/middleware/dynamic-middleware.js +39 -0
  16. package/dist/api/routing/middleware/generic-middleware.d.ts +9 -0
  17. package/dist/api/routing/middleware/generic-middleware.d.ts.map +1 -0
  18. package/dist/api/routing/middleware/generic-middleware.js +20 -0
  19. package/dist/api/routing/middleware/middleware.d.ts +23 -0
  20. package/dist/api/routing/middleware/middleware.d.ts.map +1 -0
  21. package/dist/api/routing/middleware/middleware.js +91 -0
  22. package/dist/api/routing/middleware.d.ts +6 -0
  23. package/dist/api/routing/middleware.d.ts.map +1 -0
  24. package/dist/api/routing/middleware.js +8 -0
  25. package/dist/api/routing/tsort.d.ts +8 -0
  26. package/dist/api/routing/tsort.d.ts.map +1 -0
  27. package/dist/api/routing/tsort.js +51 -0
  28. package/dist/api/routing.d.ts +36 -46
  29. package/dist/api/routing.d.ts.map +1 -1
  30. package/dist/api/routing.js +7 -56
  31. package/package.json +33 -5
  32. package/src/api/layerUtils.ts +34 -0
  33. package/src/api/routing/middleware/ContextProvider.ts +148 -0
  34. package/src/api/routing/middleware/DynamicMiddleware.ts +317 -0
  35. package/src/api/routing/middleware/dynamic-middleware.ts +158 -0
  36. package/src/api/routing/middleware/generic-middleware.ts +38 -0
  37. package/src/api/routing/middleware/middleware.ts +120 -0
  38. package/src/api/routing/middleware.ts +7 -0
  39. package/src/api/routing/tsort.ts +56 -0
  40. package/src/api/routing.ts +47 -118
  41. package/test/controller.test.ts +212 -51
  42. package/test/dist/controller.legacy2.test.d.ts.map +1 -0
  43. package/test/dist/controller.legacy3.test.d.ts.map +1 -0
  44. package/test/dist/controller.test copy.d.ts +169 -0
  45. package/test/dist/controller.test copy.d.ts.map +1 -0
  46. package/test/dist/controller.test copy.js +152 -0
  47. package/test/dist/controller.test.d.ts.map +1 -1
  48. package/test/dist/controller6.test.d.ts.map +1 -0
  49. package/test/dist/controller7.test.d.ts.map +1 -0
  50. package/test/dist/filterApi.test.d.ts.map +1 -0
  51. package/dist/api/routing/DynamicMiddleware.d.ts +0 -91
  52. package/dist/api/routing/DynamicMiddleware.d.ts.map +0 -1
  53. package/dist/api/routing/DynamicMiddleware.js +0 -56
  54. package/src/api/routing/DynamicMiddleware.ts +0 -415
@@ -0,0 +1,120 @@
1
+ import { Cause, Context, Effect, ParseResult } from "effect-app"
2
+ import { HttpHeaders, type HttpRouter, HttpServerRequest } from "effect-app/http"
3
+ import { pretty } from "effect-app/utils"
4
+ import { logError, reportError } from "../../../errorReporter.js"
5
+ import { InfraLogger } from "../../../logger.js"
6
+
7
+ const logRequestError = logError("Request")
8
+ const reportRequestError = reportError("Request")
9
+
10
+ export class DevMode extends Context.Reference<DevMode>()("DevMode", { defaultValue: () => false }) {}
11
+
12
+ export class ConfigureInterruptibility extends Effect.Service<ConfigureInterruptibility>()(
13
+ "ConfigureInterruptibility",
14
+ {
15
+ effect: Effect.gen(function*() {
16
+ return <A, E>(
17
+ handle: (input: any, headers: HttpHeaders.Headers) => Effect.Effect<A, E, HttpRouter.HttpRouter.Provided>,
18
+ _moduleName: string
19
+ ) =>
20
+ Effect.fnUntraced(function*(input: any, headers: HttpHeaders.Headers) {
21
+ return yield* handle(input, headers).pipe(
22
+ // TODO: make this depend on query/command, and consider if middleware also should be affected. right now it's not.
23
+ Effect.uninterruptible
24
+ )
25
+ })
26
+ })
27
+ }
28
+ ) {}
29
+
30
+ export class CaptureHttpHeadersAsRpcHeaders
31
+ extends Effect.Service<CaptureHttpHeadersAsRpcHeaders>()("CaptureHttpHeadersAsRpcHeaders", {
32
+ effect: Effect.gen(function*() {
33
+ return <A, E>(
34
+ handle: (input: any, headers: HttpHeaders.Headers) => Effect.Effect<A, E, HttpRouter.HttpRouter.Provided>,
35
+ _moduleName: string
36
+ ) =>
37
+ Effect.fnUntraced(function*(input: any, rpcHeaders: HttpHeaders.Headers) {
38
+ // merge in the request headers
39
+ // we should consider if we should merge them into rpc headers on the Protocol layer instead.
40
+ const httpReq = yield* HttpServerRequest.HttpServerRequest
41
+ const headers = HttpHeaders.merge(httpReq.headers, rpcHeaders)
42
+ return yield* handle(input, headers)
43
+ })
44
+ })
45
+ })
46
+ {}
47
+
48
+ export class MiddlewareLogger extends Effect.Service<MiddlewareLogger>()("MiddlewareLogger", {
49
+ effect: Effect.gen(function*() {
50
+ return <A, E>(
51
+ handle: (input: any, headers: HttpHeaders.Headers) => Effect.Effect<A, E, HttpRouter.HttpRouter.Provided>,
52
+ moduleName: string
53
+ ) =>
54
+ Effect.fnUntraced(function*(input: any, rpcHeaders: HttpHeaders.Headers) {
55
+ const devMode = yield* DevMode
56
+ // merge in the request headers
57
+ // we should consider if we should merge them into rpc headers on the Protocol layer instead.
58
+ const httpReq = yield* HttpServerRequest.HttpServerRequest
59
+ const headers = HttpHeaders.merge(httpReq.headers, rpcHeaders)
60
+
61
+ return yield* Effect
62
+ .annotateCurrentSpan(
63
+ "requestInput",
64
+ Object.entries(input).reduce((prev, [key, value]: [string, unknown]) => {
65
+ prev[key] = key === "password"
66
+ ? "<redacted>"
67
+ : typeof value === "string" || typeof value === "number" || typeof value === "boolean"
68
+ ? typeof value === "string" && value.length > 256
69
+ ? (value.substring(0, 253) + "...")
70
+ : value
71
+ : Array.isArray(value)
72
+ ? `Array[${value.length}]`
73
+ : value === null || value === undefined
74
+ ? `${value}`
75
+ : typeof value === "object" && value
76
+ ? `Object[${Object.keys(value).length}]`
77
+ : typeof value
78
+ return prev
79
+ }, {} as Record<string, string | number | boolean>)
80
+ )
81
+ .pipe(
82
+ // can't use andThen due to some being a function and effect
83
+ Effect.zipRight(handle(input, headers)),
84
+ // TODO: support ParseResult if the error channel of the request allows it.. but who would want that?
85
+ Effect.catchAll((_) => ParseResult.isParseError(_) ? Effect.die(_) : Effect.fail(_)),
86
+ Effect.tapErrorCause((cause) => Cause.isFailure(cause) ? logRequestError(cause) : Effect.void),
87
+ Effect.tapDefect((cause) =>
88
+ Effect
89
+ .all([
90
+ reportRequestError(cause, {
91
+ action: `${moduleName}.${input._tag}`
92
+ }),
93
+ InfraLogger
94
+ .logError("Finished request", cause)
95
+ .pipe(Effect.annotateLogs({
96
+ action: `${moduleName}.${input._tag}`,
97
+ req: pretty(input),
98
+ headers: pretty(headers)
99
+ // resHeaders: pretty(
100
+ // Object
101
+ // .entries(headers)
102
+ // .reduce((prev, [key, value]) => {
103
+ // prev[key] = value && typeof value === "string" ? snipString(value) : value
104
+ // return prev
105
+ // }, {} as Record<string, any>)
106
+ // )
107
+ }))
108
+ ])
109
+ ),
110
+ devMode ? (_) => _ : Effect.catchAllDefect(() => Effect.die("Internal Server Error"))
111
+ )
112
+ })
113
+ })
114
+ }) {}
115
+
116
+ export const DefaultGenericMiddlewares = [
117
+ ConfigureInterruptibility,
118
+ CaptureHttpHeadersAsRpcHeaders,
119
+ MiddlewareLogger
120
+ ] as const
@@ -0,0 +1,7 @@
1
+ // codegen:start {preset: barrel, include: ./middleware/*.ts, nodir: false }
2
+ export * from "./middleware/ContextProvider.js"
3
+ export * from "./middleware/dynamic-middleware.js"
4
+ export * from "./middleware/DynamicMiddleware.js"
5
+ export * from "./middleware/generic-middleware.js"
6
+ export * from "./middleware/middleware.js"
7
+ // codegen:end
@@ -0,0 +1,56 @@
1
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
+ // @ts-nocheck
3
+ export function tsort(edges) {
4
+ const nodes = new Map(), sorted = [], visited = new Map()
5
+
6
+ const Node = function(id) {
7
+ this.id = id
8
+ this.afters = []
9
+ }
10
+
11
+ edges.forEach((v) => {
12
+ const from = v[0], to = v[1]
13
+ if (!nodes.get(from)) nodes.set(from, new Node(from))
14
+ if (!nodes.get(to)) nodes.set(to, new Node(to))
15
+ nodes.get(from).afters.push(to)
16
+ })
17
+ ;[...nodes.keys()].forEach(function visit(idstr, ancestors) {
18
+ const node = nodes.get(idstr), id = node.id
19
+
20
+ if (visited.get(idstr)) return
21
+ if (!Array.isArray(ancestors)) ancestors = []
22
+
23
+ ancestors.push(id)
24
+ visited.set(idstr, true)
25
+ node.afters.forEach(function(afterID) {
26
+ if (ancestors.indexOf(afterID) >= 0) {
27
+ throw new Error("closed chain : " + afterID + " is in " + id)
28
+ }
29
+ visit(
30
+ afterID,
31
+ ancestors.map(function(v) {
32
+ return v
33
+ })
34
+ )
35
+ })
36
+ sorted.unshift(id)
37
+ })
38
+
39
+ return sorted
40
+ }
41
+
42
+ export const createEdges = <T extends { dependsOn?: any[] }>(dep: readonly T[]) => {
43
+ const result = []
44
+ dep.forEach((key) => {
45
+ key.dependsOn?.forEach((n) => {
46
+ result.push([n, key])
47
+ })
48
+ })
49
+ return result
50
+ }
51
+
52
+ export const sort = <T>(dep: readonly (T & { dependsOn?: any[] })[]): readonly T[] => {
53
+ const edges = createEdges(dep)
54
+ const result = tsort(edges)
55
+ return result.concat(dep.filter((v) => !result.includes(v)))
56
+ }
@@ -3,41 +3,17 @@
3
3
  /* eslint-disable @typescript-eslint/no-empty-object-type */
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  import { determineMethod, isCommand } from "@effect-app/infra/api/routing/utils"
6
- import { logError, reportError } from "@effect-app/infra/errorReporter"
7
- import { InfraLogger } from "@effect-app/infra/logger"
8
6
  import { Rpc, RpcGroup, RpcServer } from "@effect/rpc"
9
- import { Array, Cause, Duration, Effect, Layer, type NonEmptyArray, type NonEmptyReadonlyArray, ParseResult, Predicate, Request, S, Schedule, Schema } from "effect-app"
7
+ import { type Array, Duration, Effect, Layer, type NonEmptyArray, Predicate, Request, S, Schedule, Schema } from "effect-app"
10
8
  import type { GetEffectContext, GetEffectError, RPCContextMap } from "effect-app/client/req"
11
9
  import { type HttpHeaders, HttpRouter } from "effect-app/http"
12
- import { pretty, typedKeysOf, typedValuesOf } from "effect-app/utils"
10
+ import { typedKeysOf, typedValuesOf } from "effect-app/utils"
13
11
  import type { Contravariant } from "effect/Types"
14
12
  import { type YieldWrap } from "effect/Utils"
15
- import { type Middleware } from "./routing/DynamicMiddleware.js"
13
+ import { type LayerUtils } from "./layerUtils.js"
14
+ import { DevMode, type Middleware } from "./routing/middleware.js"
16
15
 
17
- export * from "./routing/DynamicMiddleware.js"
18
-
19
- export namespace LayersUtils {
20
- export type GetLayersSuccess<Layers extends ReadonlyArray<Layer.Layer.Any>> = Layers extends
21
- NonEmptyReadonlyArray<Layer.Layer.Any> ? {
22
- [k in keyof Layers]: Layer.Layer.Success<Layers[k]>
23
- }[number]
24
- : never
25
-
26
- export type GetLayersContext<Layers extends ReadonlyArray<Layer.Layer.Any>> = Layers extends
27
- NonEmptyReadonlyArray<Layer.Layer.Any> ? {
28
- [k in keyof Layers]: Layer.Layer.Context<Layers[k]>
29
- }[number]
30
- : never
31
-
32
- export type GetLayersError<Layers extends ReadonlyArray<Layer.Layer.Any>> = Layers extends
33
- NonEmptyReadonlyArray<Layer.Layer.Any> ? {
34
- [k in keyof Layers]: Layer.Layer.Error<Layers[k]>
35
- }[number]
36
- : never
37
- }
38
-
39
- const logRequestError = logError("Request")
40
- const reportRequestError = reportError("Request")
16
+ export * from "./routing/middleware.js"
41
17
 
42
18
  // retry just once on optimistic concurrency exceptions
43
19
  const optimisticConcurrencySchedule = Schedule.once.pipe(
@@ -423,64 +399,17 @@ export const makeRouter = <
423
399
  }
424
400
  } as any
425
401
  : resource,
426
- rpc.effect(resource, (input: any, headers: HttpHeaders.Headers) =>
427
- // TODO: render more data... similar to console?
428
- Effect
429
- .annotateCurrentSpan(
430
- "requestInput",
431
- Object.entries(input).reduce((prev, [key, value]: [string, unknown]) => {
432
- prev[key] = key === "password"
433
- ? "<redacted>"
434
- : typeof value === "string" || typeof value === "number" || typeof value === "boolean"
435
- ? typeof value === "string" && value.length > 256
436
- ? (value.substring(0, 253) + "...")
437
- : value
438
- : Array.isArray(value)
439
- ? `Array[${value.length}]`
440
- : value === null || value === undefined
441
- ? `${value}`
442
- : typeof value === "object" && value
443
- ? `Object[${Object.keys(value).length}]`
444
- : typeof value
445
- return prev
446
- }, {} as Record<string, string | number | boolean>)
447
- )
448
- .pipe(
449
- // can't use andThen due to some being a function and effect
450
- Effect.zipRight(handle(input, headers)),
451
- // TODO: support ParseResult if the error channel of the request allows it.. but who would want that?
452
- Effect.catchAll((_) => ParseResult.isParseError(_) ? Effect.die(_) : Effect.fail(_)),
453
- Effect.tapErrorCause((cause) => Cause.isFailure(cause) ? logRequestError(cause) : Effect.void),
454
- Effect.tapDefect((cause) =>
455
- Effect
456
- .all([
457
- reportRequestError(cause, {
458
- action: `${meta.moduleName}.${resource._tag}`
459
- }),
460
- InfraLogger
461
- .logError("Finished request", cause)
462
- .pipe(Effect.annotateLogs({
463
- action: `${meta.moduleName}.${resource._tag}`,
464
- req: pretty(resource),
465
- headers: pretty(headers)
466
- // resHeaders: pretty(
467
- // Object
468
- // .entries(headers)
469
- // .reduce((prev, [key, value]) => {
470
- // prev[key] = value && typeof value === "string" ? snipString(value) : value
471
- // return prev
472
- // }, {} as Record<string, any>)
473
- // )
474
- }))
475
- ])
476
- ),
477
- // NOTE: this does not catch errors from the middlewares..
478
- // we should re-evalute this in any case..
479
- devMode ? (_) => _ : Effect.catchAllDefect(() => Effect.die("Internal Server Error")),
402
+ rpc.effect(
403
+ resource,
404
+ (req, headers) =>
405
+ handle(req, headers).pipe(
480
406
  Effect.withSpan("Request." + meta.moduleName + "." + resource._tag, {
481
407
  captureStackTrace: () => handler.stack
482
- })
483
- ), meta.moduleName),
408
+ }),
409
+ Effect.provideService(DevMode, devMode)
410
+ ),
411
+ meta.moduleName
412
+ ),
484
413
  meta.moduleName
485
414
  ] as const
486
415
  return acc
@@ -515,10 +444,10 @@ export const makeRouter = <
515
444
  })) as unknown as Layer<
516
445
  { [K in keyof RequestModules]: Rpc.Handler<K> },
517
446
  | Layer.Error<typeof middleware.Default>
518
- | LayersUtils.GetLayersError<MakeDependencies>,
447
+ | LayerUtils.GetLayersError<MakeDependencies>,
519
448
  | RPCRouteR<typeof mapped[keyof typeof mapped]>
520
449
  | Layer.Context<typeof middleware.Default>
521
- | LayersUtils.GetLayersContext<MakeDependencies>
450
+ | LayerUtils.GetLayersContext<MakeDependencies>
522
451
  >
523
452
 
524
453
  return RpcServer
@@ -544,12 +473,12 @@ export const makeRouter = <
544
473
  )
545
474
  ) as (Layer.Layer<
546
475
  Router,
547
- | LayersUtils.GetLayersError<MakeDependencies>
476
+ | LayerUtils.GetLayersError<MakeDependencies>
548
477
  | MakeE
549
478
  | Layer.Error<typeof middleware.Default>,
550
- | LayersUtils.GetLayersContext<MakeDependencies>
479
+ | LayerUtils.GetLayersContext<MakeDependencies>
551
480
  | Layer.Context<typeof middleware.Default>
552
- | Exclude<MakeR, LayersUtils.GetLayersSuccess<MakeDependencies>>
481
+ | Exclude<MakeR, LayerUtils.GetLayersSuccess<MakeDependencies>>
553
482
  >)
554
483
 
555
484
  // Effect.Effect<HttpRouter.HttpRouter<unknown, HttpRouter.HttpRouter.DefaultServices>, never, UserRouter>
@@ -567,7 +496,7 @@ export const makeRouter = <
567
496
  dependencies: Array<Layer.Layer.Any>
568
497
  effect: (match: typeof router3) => Generator<
569
498
  YieldWrap<
570
- Effect<any, any, Make["strict"] extends false ? any : LayersUtils.GetLayersSuccess<Make["dependencies"]>>
499
+ Effect<any, any, Make["strict"] extends false ? any : LayerUtils.GetLayersSuccess<Make["dependencies"]>>
571
500
  >,
572
501
  { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
573
502
  any
@@ -585,13 +514,13 @@ export const makeRouter = <
585
514
  routes: Layer.Layer<
586
515
  RouterShape<Resource>,
587
516
  | MakeErrors<Make>
588
- | LayersUtils.GetLayersError<Make["dependencies"]>
517
+ | LayerUtils.GetLayersError<Make["dependencies"]>
589
518
  | Layer.Error<typeof middleware.Default>,
590
- | LayersUtils.GetLayersContext<Make["dependencies"]>
519
+ | LayerUtils.GetLayersContext<Make["dependencies"]>
591
520
  | Layer.Context<typeof middleware.Default>
592
521
  | Exclude<
593
522
  MakeContext<Make>,
594
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
523
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
595
524
  >
596
525
  >
597
526
 
@@ -604,7 +533,7 @@ export const makeRouter = <
604
533
  effect: Effect<
605
534
  { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
606
535
  any,
607
- Make["strict"] extends false ? any : LayersUtils.GetLayersSuccess<Make["dependencies"]>
536
+ Make["strict"] extends false ? any : LayerUtils.GetLayersSuccess<Make["dependencies"]>
608
537
  >
609
538
  strict?: boolean
610
539
  /** @deprecated */
@@ -618,13 +547,13 @@ export const makeRouter = <
618
547
  routes: Layer.Layer<
619
548
  RouterShape<Resource>,
620
549
  | MakeErrors<Make>
621
- | LayersUtils.GetLayersError<Make["dependencies"]>
550
+ | LayerUtils.GetLayersError<Make["dependencies"]>
622
551
  | Layer.Error<typeof middleware.Default>,
623
- | LayersUtils.GetLayersContext<Make["dependencies"]>
552
+ | LayerUtils.GetLayersContext<Make["dependencies"]>
624
553
  | Layer.Context<typeof middleware.Default>
625
554
  | Exclude<
626
555
  MakeContext<Make>,
627
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
556
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
628
557
  >
629
558
  >
630
559
 
@@ -637,7 +566,7 @@ export const makeRouter = <
637
566
  effect: Effect<
638
567
  { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
639
568
  any,
640
- Make["strict"] extends false ? any : LayersUtils.GetLayersSuccess<Make["dependencies"]>
569
+ Make["strict"] extends false ? any : LayerUtils.GetLayersSuccess<Make["dependencies"]>
641
570
  >
642
571
  strict?: boolean
643
572
  /** @deprecated */
@@ -651,13 +580,13 @@ export const makeRouter = <
651
580
  routes: Layer.Layer<
652
581
  RouterShape<Resource>,
653
582
  | MakeErrors<Make>
654
- | LayersUtils.GetLayersError<Make["dependencies"]>
583
+ | LayerUtils.GetLayersError<Make["dependencies"]>
655
584
  | Layer.Error<typeof middleware.Default>,
656
- | LayersUtils.GetLayersContext<Make["dependencies"]>
585
+ | LayerUtils.GetLayersContext<Make["dependencies"]>
657
586
  | Layer.Context<typeof middleware.Default>
658
587
  | Exclude<
659
588
  MakeContext<Make>,
660
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
589
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
661
590
  >
662
591
  >
663
592
 
@@ -670,7 +599,7 @@ export const makeRouter = <
670
599
  effect: Effect<
671
600
  { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
672
601
  any,
673
- Make["strict"] extends false ? any : LayersUtils.GetLayersSuccess<Make["dependencies"]>
602
+ Make["strict"] extends false ? any : LayerUtils.GetLayersSuccess<Make["dependencies"]>
674
603
  >
675
604
  strict?: boolean
676
605
  /** @deprecated */
@@ -684,13 +613,13 @@ export const makeRouter = <
684
613
  routes: Layer.Layer<
685
614
  RouterShape<Resource>,
686
615
  | MakeErrors<Make>
687
- | LayersUtils.GetLayersError<Make["dependencies"]>
616
+ | LayerUtils.GetLayersError<Make["dependencies"]>
688
617
  | Layer.Error<typeof middleware.Default>,
689
- | LayersUtils.GetLayersContext<Make["dependencies"]>
618
+ | LayerUtils.GetLayersContext<Make["dependencies"]>
690
619
  | Layer.Context<typeof middleware.Default>
691
620
  | Exclude<
692
621
  MakeContext<Make>,
693
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
622
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
694
623
  >
695
624
  >
696
625
 
@@ -703,7 +632,7 @@ export const makeRouter = <
703
632
  effect: Effect<
704
633
  { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
705
634
  any,
706
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
635
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
707
636
  >
708
637
  strict?: boolean
709
638
  /** @deprecated */
@@ -717,13 +646,13 @@ export const makeRouter = <
717
646
  routes: Layer.Layer<
718
647
  RouterShape<Resource>,
719
648
  | MakeErrors<Make>
720
- | LayersUtils.GetLayersError<Make["dependencies"]>
649
+ | LayerUtils.GetLayersError<Make["dependencies"]>
721
650
  | Layer.Error<typeof middleware.Default>,
722
- | LayersUtils.GetLayersContext<Make["dependencies"]>
651
+ | LayerUtils.GetLayersContext<Make["dependencies"]>
723
652
  | Layer.Context<typeof middleware.Default>
724
653
  | Exclude<
725
654
  MakeContext<Make>,
726
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
655
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
727
656
  >
728
657
  >
729
658
 
@@ -736,7 +665,7 @@ export const makeRouter = <
736
665
  effect: Effect<
737
666
  { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
738
667
  any,
739
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
668
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
740
669
  >
741
670
  strict?: boolean
742
671
  }
@@ -748,13 +677,13 @@ export const makeRouter = <
748
677
  routes: Layer.Layer<
749
678
  RouterShape<Resource>,
750
679
  | MakeErrors<Make>
751
- | LayersUtils.GetLayersError<Make["dependencies"]>
680
+ | LayerUtils.GetLayersError<Make["dependencies"]>
752
681
  | Layer.Error<typeof middleware.Default>,
753
- | LayersUtils.GetLayersContext<Make["dependencies"]>
682
+ | LayerUtils.GetLayersContext<Make["dependencies"]>
754
683
  | Layer.Context<typeof middleware.Default>
755
684
  | Exclude<
756
685
  MakeContext<Make>,
757
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
686
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
758
687
  >
759
688
  >
760
689
 
@@ -766,7 +695,7 @@ export const makeRouter = <
766
695
  dependencies: Array<Layer.Layer.Any>
767
696
  effect: (match: typeof router3) => Generator<
768
697
  YieldWrap<
769
- Effect<any, any, Make["strict"] extends false ? any : LayersUtils.GetLayersSuccess<Make["dependencies"]>>
698
+ Effect<any, any, Make["strict"] extends false ? any : LayerUtils.GetLayersSuccess<Make["dependencies"]>>
770
699
  >,
771
700
  { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]> },
772
701
  any
@@ -782,13 +711,13 @@ export const makeRouter = <
782
711
  routes: Layer.Layer<
783
712
  RouterShape<Resource>,
784
713
  | MakeErrors<Make>
785
- | LayersUtils.GetLayersError<Make["dependencies"]>
714
+ | LayerUtils.GetLayersError<Make["dependencies"]>
786
715
  | Layer.Error<typeof middleware.Default>,
787
- | LayersUtils.GetLayersContext<Make["dependencies"]>
716
+ | LayerUtils.GetLayersContext<Make["dependencies"]>
788
717
  | Layer.Context<typeof middleware.Default>
789
718
  | Exclude<
790
719
  MakeContext<Make>,
791
- LayersUtils.GetLayersSuccess<Make["dependencies"]>
720
+ LayerUtils.GetLayersSuccess<Make["dependencies"]>
792
721
  >
793
722
  >
794
723