@effect-app/infra 3.0.4 → 3.0.6

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 (59) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/Emailer/service.d.ts +1 -1
  3. package/dist/MainFiberSet.d.ts +1 -1
  4. package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
  5. package/dist/Model/Repository/internal/internal.js +2 -2
  6. package/dist/Operations.d.ts +1 -1
  7. package/dist/QueueMaker/errors.d.ts +1 -1
  8. package/dist/QueueMaker/errors.d.ts.map +1 -1
  9. package/dist/RequestFiberSet.d.ts +1 -1
  10. package/dist/Store/service.d.ts +2 -2
  11. package/dist/adapters/SQL/Model.d.ts +6 -6
  12. package/dist/adapters/ServiceBus.d.ts +2 -2
  13. package/dist/adapters/memQueue.d.ts +1 -1
  14. package/dist/api/ContextProvider.d.ts +1 -5
  15. package/dist/api/ContextProvider.d.ts.map +1 -1
  16. package/dist/api/ContextProvider.js +1 -1
  17. package/dist/api/routing/middleware/RouterMiddleware.d.ts +2 -3
  18. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
  19. package/dist/api/routing/middleware/middleware.d.ts +5 -5
  20. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  21. package/dist/api/routing/middleware/middleware.js +6 -6
  22. package/dist/api/routing.d.ts +2 -2
  23. package/dist/api/routing.d.ts.map +1 -1
  24. package/dist/api/routing.js +2 -2
  25. package/package.json +6 -6
  26. package/src/Model/Repository/internal/internal.ts +1 -2
  27. package/src/api/ContextProvider.ts +1 -20
  28. package/src/api/routing/middleware/RouterMiddleware.ts +2 -3
  29. package/src/api/routing/middleware/middleware.ts +5 -5
  30. package/src/api/routing.ts +5 -5
  31. package/test/controller.test.ts +84 -65
  32. package/test/dist/controller/test2.test.d.ts.map +1 -0
  33. package/test/dist/controller.legacy2.test.d.ts.map +1 -0
  34. package/test/dist/controller.legacy3.test.d.ts.map +1 -0
  35. package/test/dist/controller.test copy.js +129 -0
  36. package/test/dist/controller.test.d.ts.map +1 -1
  37. package/test/dist/controller5.test.d.ts.map +1 -0
  38. package/test/dist/controller6.test.d.ts.map +1 -0
  39. package/test/dist/controller7.test.d.ts.map +1 -0
  40. package/test/dist/dynamicContext.test.d.ts.map +1 -0
  41. package/test/dist/filterApi.test.d.ts.map +1 -0
  42. package/test/dist/fixtures.d.ts +11 -10
  43. package/test/dist/fixtures.d.ts.map +1 -1
  44. package/test/dist/fixtures.js +8 -8
  45. package/test/dist/middleware-api.test.d.ts.map +1 -0
  46. package/test/dist/requires.d.ts +21 -0
  47. package/test/dist/requires.d.ts.map +1 -0
  48. package/test/dist/requires.js +27 -0
  49. package/test/dist/requires.test.d.ts.map +1 -1
  50. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  51. package/test/fixtures.ts +7 -7
  52. package/test/rawQuery.test.ts +4 -4
  53. package/test/requires.test.ts +14 -9
  54. package/test/rpc-multi-middleware.test.ts +2 -1
  55. package/vitest.config.ts.timestamp-1711656440838-19c636fe320df.mjs +0 -0
  56. package/vitest.config.ts.timestamp-1711724061890-6ecedb0a07fdd.mjs +0 -0
  57. package/vitest.config.ts.timestamp-1711743489537-da8d9e5f66c9f.mjs +0 -0
  58. package/vitest.config.ts.timestamp-1711744615239-dcf257a844e01.mjs +37 -0
  59. package/wallaby.cjs +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/infra",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -13,7 +13,7 @@
13
13
  "proper-lockfile": "^4.1.2",
14
14
  "pure-rand": "7.0.1",
15
15
  "query-string": "^9.2.2",
16
- "effect-app": "3.0.2"
16
+ "effect-app": "3.0.4"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@azure/cosmos": "^4.5.0",
@@ -32,7 +32,7 @@
32
32
  "redis": "^3.1.2",
33
33
  "redlock": "^4.2.0",
34
34
  "strip-ansi": "^7.1.0",
35
- "typescript": "~5.8.3",
35
+ "typescript": "~5.9.2",
36
36
  "vitest": "^3.2.4"
37
37
  },
38
38
  "peerDependencies": {
@@ -382,15 +382,15 @@
382
382
  "sideEffects": false,
383
383
  "scripts": {
384
384
  "watch": "pnpm build:tsc -w",
385
- "build:tsc": "pnpm clean-dist && effect-app-cli packagejson tspc --build",
385
+ "build:tsc": "pnpm clean-dist && effect-app-cli packagejson tsc --build",
386
386
  "build": "pnpm build:tsc",
387
- "watch2": "pnpm clean-dist && NODE_OPTIONS=--max-old-space-size=6144 tspc -w",
387
+ "watch2": "pnpm clean-dist && NODE_OPTIONS=--max-old-space-size=6144 tsc -w",
388
388
  "clean": "rm -rf dist",
389
389
  "clean-dist": "sh ../../scripts/clean-dist.sh",
390
390
  "circular": "pnpm circular:src && pnpm circular:dist",
391
391
  "circular:src": "madge --circular --ts-config ./tsconfig.json --extensions ts ./src",
392
392
  "circular:dist": "madge --circular --extensions js ./dist",
393
- "compile": "NODE_OPTIONS=--max-old-space-size=6144 tspc --noEmit",
393
+ "compile": "NODE_OPTIONS=--max-old-space-size=6144 tsc --noEmit",
394
394
  "lint": "NODE_OPTIONS=--max-old-space-size=6144 ESLINT_TS=1 eslint ./src",
395
395
  "lint:watch": "ESLINT_TS=1 esw -w --changed --clear --ext ts,tsx .",
396
396
  "autofix": "pnpm lint --fix",
@@ -81,8 +81,7 @@ export function makeRepoInternal<
81
81
  const decode = flow(S.decode(schema), provideRctx)
82
82
  const decodeMany = flow(
83
83
  S.decode(S.Array(schema)),
84
- provideRctx,
85
- Effect.withSpan("decodeMany", { captureStackTrace: false })
84
+ provideRctx
86
85
  )
87
86
 
88
87
  const store = yield* mkStore(args.makeInitial, args.config)
@@ -2,30 +2,11 @@
2
2
  import { Context, Effect, Layer, type NonEmptyReadonlyArray, pipe, type Scope } from "effect-app"
3
3
 
4
4
  import { type HttpLayerRouter } from "effect-app/http"
5
+ import { type EffectGenUtils } from "effect-app/utils/gen"
5
6
  import { type Tag } from "effect/Context"
6
7
  import { type YieldWrap } from "effect/Utils"
7
8
  import { type ContextTagWithDefault, type GetContext, type LayerUtils, mergeContexts } from "./layerUtils.js"
8
9
 
9
- export namespace EffectGenUtils {
10
- export type Success<EG> = EG extends Effect<infer A, infer _E, infer _R> ? A
11
- // there could be a case where the generator function does not yield anything, so we need to handle that
12
- : EG extends (..._: infer _3) => Generator<never, infer A, infer _2> ? A
13
- : EG extends (..._: infer _3) => Generator<YieldWrap<Effect<infer _, infer _E, infer _R>>, infer A, infer _2> ? A
14
- : never
15
-
16
- export type Error<EG> = EG extends Effect<infer _A, infer E, infer _R> ? E
17
- // there could be a case where the generator function does not yield anything, so we need to handle that
18
- : EG extends (..._: infer _3) => Generator<never, infer _A, infer _2> ? never
19
- : EG extends (..._: infer _3) => Generator<YieldWrap<Effect<infer _, infer E, infer _R>>, infer _A, infer _2> ? E
20
- : never
21
-
22
- export type Context<EG> = EG extends Effect<infer _A, infer _E, infer R> ? R
23
- // there could be a case where the generator function does not yield anything, so we need to handle that
24
- : EG extends (..._: infer _3) => Generator<never, infer _A, infer _2> ? never
25
- : EG extends (..._: infer _3) => Generator<YieldWrap<Effect<infer _, infer _E, infer R>>, infer _A, infer _2> ? R
26
- : never
27
- }
28
-
29
10
  // // the context provider provides additional stuff
30
11
  // export type ContextProviderShape<ContextProviderA, ContextProviderR> = Effect<
31
12
  // Context.Context<ContextProviderA>,
@@ -3,13 +3,12 @@
3
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
4
  import { type RpcMiddleware } from "@effect/rpc"
5
5
  import { type Context, type Layer } from "effect-app"
6
- import type { GetContextConfig, RPCContextMap } from "effect-app/client/req"
7
- import { type MiddlewareMakerId } from "effect-app/rpc"
6
+ import { type GetContextConfig, type MiddlewareMakerId, type RpcContextMap } from "effect-app/rpc"
8
7
  // module:
9
8
  //
10
9
 
11
10
  export type RouterMiddleware<
12
- RequestContextMap extends Record<string, RPCContextMap.Any>, // what services will the middlware provide dynamically to the next, or raise errors.
11
+ RequestContextMap extends Record<string, RpcContextMap.Any>, // what services will the middlware provide dynamically to the next, or raise errors.
13
12
  MakeMiddlewareE, // what the middleware construction can fail with
14
13
  MakeMiddlewareR, // what the middlware requires to be constructed
15
14
  ContextProviderA, // what the context provider provides
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { Cause, Duration, Effect, Layer, ParseResult, Request, Schedule, type Schema } from "effect"
3
- import * as MiddlewareNative from "effect-app/rpc/middleware-native"
3
+ import { ConfigureInterruptibilityMiddleware, DevMode, LoggerMiddleware, RequestCacheMiddleware } from "effect-app/middleware"
4
4
  import { pretty } from "effect-app/utils"
5
5
  import { logError, reportError } from "../../../errorReporter.js"
6
6
  import { InfraLogger } from "../../../logger.js"
@@ -18,7 +18,7 @@ export const RequestCacheLayers = Layer.mergeAll(
18
18
  )
19
19
 
20
20
  export const RequestCacheMiddlewareLive = Layer.succeed(
21
- MiddlewareNative.RequestCacheMiddleware,
21
+ RequestCacheMiddleware,
22
22
  (effect) => effect.pipe(Effect.provide(RequestCacheLayers))
23
23
  )
24
24
 
@@ -28,7 +28,7 @@ const optimisticConcurrencySchedule = Schedule.once.pipe(
28
28
  )
29
29
 
30
30
  export const ConfigureInterruptibilityMiddlewareLive = Layer.effect(
31
- MiddlewareNative.ConfigureInterruptibilityMiddleware,
31
+ ConfigureInterruptibilityMiddleware,
32
32
  Effect.gen(function*() {
33
33
  const cache = new Map()
34
34
  const getCached = (key: string, schema: Schema.Schema.Any) => {
@@ -51,9 +51,9 @@ export const ConfigureInterruptibilityMiddlewareLive = Layer.effect(
51
51
  )
52
52
 
53
53
  export const LoggerMiddlewareLive = Layer.effect(
54
- MiddlewareNative.LoggerMiddleware,
54
+ LoggerMiddleware,
55
55
  Effect.gen(function*() {
56
- const devMode = yield* MiddlewareNative.DevMode
56
+ const devMode = yield* DevMode
57
57
  return (effect, { headers, payload, rpc }) =>
58
58
  Effect
59
59
  .annotateCurrentSpan({
@@ -4,9 +4,9 @@
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  import { Rpc, RpcGroup, type RpcSerialization, RpcServer } from "@effect/rpc"
6
6
  import { type Array, Effect, Layer, type NonEmptyReadonlyArray, Predicate, S, Schema, type Scope } from "effect-app"
7
- import type { GetEffectContext, GetEffectError, RPCContextMap } from "effect-app/client/req"
8
7
  import { type HttpHeaders } from "effect-app/http"
9
- import { DevMode } from "effect-app/rpc"
8
+ import { DevMode } from "effect-app/middleware"
9
+ import { type GetEffectContext, type GetEffectError, type RpcContextMap } from "effect-app/rpc"
10
10
  import { type TypeTestId } from "effect-app/TypeTest"
11
11
  import { typedKeysOf, typedValuesOf } from "effect-app/utils"
12
12
  import { type Service } from "effect/Effect"
@@ -93,7 +93,7 @@ type FilterRequestModules<T> = {
93
93
  [K in keyof T as T[K] extends AnyRequestModule ? K : never]: T[K]
94
94
  }
95
95
 
96
- type RPCRouteR<
96
+ type RpcRouteR<
97
97
  T extends [any, (req: any, headers: HttpHeaders.Headers) => Effect<any, any, any>]
98
98
  > = T extends [
99
99
  any,
@@ -153,7 +153,7 @@ export type RouteMatcher<
153
153
  }
154
154
 
155
155
  export const makeRouter = <
156
- RequestContextMap extends Record<string, RPCContextMap.Any>,
156
+ RequestContextMap extends Record<string, RpcContextMap.Any>,
157
157
  MakeMiddlewareE,
158
158
  MakeMiddlewareR,
159
159
  ContextProviderA,
@@ -427,7 +427,7 @@ export const makeRouter = <
427
427
  })) as unknown as Layer<
428
428
  { [K in keyof RequestModules]: Rpc.Handler<K> },
429
429
  MakeE,
430
- RPCRouteR<typeof mapped[keyof typeof mapped]>
430
+ RpcRouteR<typeof mapped[keyof typeof mapped]>
431
431
  >
432
432
 
433
433
  return RpcServer
@@ -5,101 +5,114 @@ import { type RpcSerialization } from "@effect/rpc"
5
5
  import { expect, expectTypeOf, it } from "@effect/vitest"
6
6
  import { Context, Effect, Layer, S, Scope } from "effect-app"
7
7
  import { InvalidStateError, makeRpcClient, NotLoggedInError, UnauthorizedError } from "effect-app/client"
8
- import { DefaultGenericMiddlewares, makeMiddleware, TagService } from "effect-app/rpc"
8
+ import { DefaultGenericMiddlewares } from "effect-app/middleware"
9
+ import * as RpcX from "effect-app/rpc"
9
10
  import { TypeTestId } from "effect-app/TypeTest"
10
11
  import { DefaultGenericMiddlewaresLive } from "../src/api/routing/middleware.js"
11
12
  import { sort } from "../src/api/routing/tsort.js"
12
13
  import { AllowAnonymous, AllowAnonymousLive, CustomError1, RequestContextMap, RequireRoles, RequireRolesLive, Some, SomeElse, SomeService, Test, TestLive } from "./fixtures.js"
13
14
 
14
15
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
15
- class MyContextProvider extends TagService<MyContextProvider, {
16
+ class MyContextProvider extends RpcX.Tag<MyContextProvider, {
16
17
  provides: Some
17
18
  requires: SomeElse
18
- }>()("MyContextProvider", {})({
19
- effect: Effect.gen(function*() {
20
- yield* SomeService
21
- if (Math.random() > 0.5) return yield* new CustomError1()
19
+ }>()("MyContextProvider") {
20
+ static Default = Layer.make(this, {
21
+ *make() {
22
+ yield* SomeService
23
+ if (Math.random() > 0.5) return yield* new CustomError1()
22
24
 
23
- return Effect.fnUntraced(function*(effect) {
24
- yield* SomeElse
25
- // the only requirements you can have are the one provided by HttpLayerRouter.Provided
26
- yield* Scope.Scope
25
+ return Effect.fnUntraced(function*(effect) {
26
+ yield* SomeElse
27
+ // the only requirements you can have are the one provided by HttpLayerRouter.Provided
28
+ yield* Scope.Scope
27
29
 
28
- yield* Effect.logInfo("MyContextProviderGen", "this is a generator")
29
- yield* Effect.succeed("this is a generator")
30
+ yield* Effect.logInfo("MyContextProviderGen", "this is a generator")
31
+ yield* Effect.succeed("this is a generator")
30
32
 
31
- // this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
32
- // yield* SomeElse
33
+ // this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
34
+ // yield* SomeElse
33
35
 
34
- // currently the effectful context provider cannot trigger an error when building the per request context
35
- // this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
36
- // if (Math.random() > 0.5) return yield* new CustomError2()
36
+ // currently the effectful context provider cannot trigger an error when building the per request context
37
+ // this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
38
+ // if (Math.random() > 0.5) return yield* new CustomError2()
37
39
 
38
- return yield* Effect.provideService(effect, Some, new Some({ a: 1 }))
39
- })
40
+ return yield* Effect.provideService(effect, Some, new Some({ a: 1 }))
41
+ })
42
+ }
40
43
  })
41
- }) {}
44
+ static but_why = "???" // remove me and life rocks
45
+ }
42
46
 
43
47
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
44
- class MyContextProvider3 extends TagService<MyContextProvider3, {
48
+ class MyContextProvider3 extends RpcX.Tag<MyContextProvider3, {
45
49
  provides: Some
46
50
  requires: SomeElse
47
- }>()("MyContextProvider3", {})({
48
- dependencies: [Layer.effect(SomeService, SomeService.make)],
49
- effect: Effect.gen(function*() {
50
- yield* SomeService
51
- if (Math.random() > 0.5) return yield* new CustomError1()
51
+ }>()("MyContextProvider3") {
52
+ static Default = Layer.make(this, {
53
+ dependencies: [Layer.effect(SomeService, SomeService.make)],
54
+ *make() {
55
+ yield* SomeService
56
+ if (Math.random() > 0.5) return yield* new CustomError1()
52
57
 
53
- return Effect.fnUntraced(function*(effect) {
54
- yield* SomeElse
55
- // the only requirements you can have are the one provided by HttpLayerRouter.Provided
56
- yield* Scope.Scope
58
+ return Effect.fnUntraced(function*(effect) {
59
+ yield* SomeElse
60
+ // the only requirements you can have are the one provided by HttpLayerRouter.Provided
61
+ yield* Scope.Scope
57
62
 
58
- yield* Effect.logInfo("MyContextProviderGen", "this is a generator")
59
- yield* Effect.succeed("this is a generator")
63
+ yield* Effect.logInfo("MyContextProviderGen", "this is a generator")
64
+ yield* Effect.succeed("this is a generator")
60
65
 
61
- // this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
62
- // yield* SomeElse
66
+ // this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
67
+ // yield* SomeElse
63
68
 
64
- // currently the effectful context provider cannot trigger an error when building the per request context
65
- // this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
66
- // if (Math.random() > 0.5) return yield* new CustomError2()
69
+ // currently the effectful context provider cannot trigger an error when building the per request context
70
+ // this is allowed here but mergeContextProviders/MergedContextProvider will trigger an error
71
+ // if (Math.random() > 0.5) return yield* new CustomError2()
67
72
 
68
- return yield* Effect.provideService(effect, Some, new Some({ a: 1 }))
69
- })
73
+ return yield* Effect.provideService(effect, Some, new Some({ a: 1 }))
74
+ })
75
+ }
70
76
  })
71
- }) {}
77
+ }
72
78
 
73
- expectTypeOf(MyContextProvider3.Default).toEqualTypeOf<Layer.Layer<MyContextProvider3, CustomError1, never>>()
79
+ expectTypeOf(MyContextProvider3.Default).toEqualTypeOf<
80
+ Layer.Layer<MyContextProvider3, CustomError1, never> & {
81
+ withoutDependencies: Layer.Layer<MyContextProvider3, CustomError1, SomeService>
82
+ }
83
+ >()
74
84
 
75
85
  // @effect-diagnostics-next-line missingEffectServiceDependency:off
76
- class MyContextProvider2 extends TagService<MyContextProvider2, { provides: SomeElse }>()("MyContextProvider2", {})({
77
- effect: Effect.gen(function*() {
78
- if (Math.random() > 0.5) return yield* new CustomError1()
86
+ class MyContextProvider2 extends RpcX.Tag<MyContextProvider2, { provides: SomeElse }>()("MyContextProvider2") {
87
+ static Default = Layer.make(this, {
88
+ *make() {
89
+ if (Math.random() > 0.5) return yield* new CustomError1()
79
90
 
80
- return Effect.fnUntraced(function*(effect) {
81
- // we test without dependencies, so that we end up with an R of never.
91
+ return Effect.fnUntraced(function*(effect) {
92
+ // we test without dependencies, so that we end up with an R of never.
82
93
 
83
- return yield* Effect.provideService(effect, SomeElse, new SomeElse({ b: 2 }))
84
- })
94
+ return yield* Effect.provideService(effect, SomeElse, new SomeElse({ b: 2 }))
95
+ })
96
+ }
85
97
  })
86
- }) {}
98
+ }
87
99
 
88
100
  //
89
101
 
90
102
  const Str = Context.GenericTag<"str", "str">("str")
91
103
 
92
- export class BogusMiddleware extends TagService<BogusMiddleware>()("BogusMiddleware", {})({
93
- effect: Effect.gen(function*() {
94
- yield* Str
95
- // yield* Effect.context<"test-dep">()
96
- return (effect) =>
97
- Effect.gen(function*() {
98
- // yield* Effect.context<"test-dep2">()
99
- return yield* effect
100
- })
104
+ export class BogusMiddleware extends RpcX.Tag<BogusMiddleware>()("BogusMiddleware") {
105
+ static Default = Layer.make(this, {
106
+ *make() {
107
+ yield* Str
108
+ // yield* Effect.context<"test-dep">()
109
+ return (effect) =>
110
+ Effect.gen(function*() {
111
+ // yield* Effect.context<"test-dep2">()
112
+ return yield* effect
113
+ })
114
+ }
101
115
  })
102
- }) {
103
116
  }
104
117
 
105
118
  const genericMiddlewares = [
@@ -114,7 +127,8 @@ const genericMiddlewaresLive = [
114
127
  MyContextProvider2.Default
115
128
  ] as const
116
129
 
117
- const middleware = makeMiddleware<RequestContextMap>(RequestContextMap)
130
+ const middleware = RpcX
131
+ .makeMiddleware<RequestContextMap>(RequestContextMap)
118
132
  .middleware(
119
133
  RequireRoles,
120
134
  Test
@@ -124,7 +138,8 @@ const middleware = makeMiddleware<RequestContextMap>(RequestContextMap)
124
138
  .middleware(MyContextProvider)
125
139
  .middleware(...genericMiddlewares)
126
140
 
127
- const middlewareBis = makeMiddleware<RequestContextMap>(RequestContextMap)
141
+ const middlewareBis = RpcX
142
+ .makeMiddleware<RequestContextMap>(RequestContextMap)
128
143
  .middleware(
129
144
  RequireRoles,
130
145
  Test
@@ -134,7 +149,8 @@ const middlewareBis = makeMiddleware<RequestContextMap>(RequestContextMap)
134
149
 
135
150
  expectTypeOf(middleware).toEqualTypeOf<typeof middlewareBis>()
136
151
 
137
- const middlewareTrisWip = makeMiddleware<RequestContextMap>(RequestContextMap)
152
+ const middlewareTrisWip = RpcX
153
+ .makeMiddleware<RequestContextMap>(RequestContextMap)
138
154
  .middleware(
139
155
  MyContextProvider,
140
156
  RequireRoles,
@@ -147,7 +163,8 @@ expectTypeOf(middlewareTrisWip).toEqualTypeOf<{
147
163
  }>()
148
164
 
149
165
  // testing more sideways elimination]
150
- const middlewareQuater = makeMiddleware<RequestContextMap>(RequestContextMap)
166
+ const middlewareQuater = RpcX
167
+ .makeMiddleware<RequestContextMap>(RequestContextMap)
151
168
  .middleware(
152
169
  RequireRoles,
153
170
  Test,
@@ -158,13 +175,15 @@ const middlewareQuater = makeMiddleware<RequestContextMap>(RequestContextMap)
158
175
 
159
176
  expectTypeOf(middleware).toEqualTypeOf<typeof middlewareQuater>()
160
177
 
161
- const middleware2 = makeMiddleware<RequestContextMap>(RequestContextMap)
178
+ const middleware2 = RpcX
179
+ .makeMiddleware<RequestContextMap>(RequestContextMap)
162
180
  .middleware(MyContextProvider)
163
181
  .middleware(RequireRoles, Test)
164
182
  .middleware(AllowAnonymous)
165
183
  .middleware(...DefaultGenericMiddlewares, BogusMiddleware, MyContextProvider2)
166
184
 
167
- export const middleware3 = makeMiddleware<RequestContextMap>(RequestContextMap)
185
+ export const middleware3 = RpcX
186
+ .makeMiddleware<RequestContextMap>(RequestContextMap)
168
187
  .middleware(...genericMiddlewares)
169
188
  .middleware(AllowAnonymous, RequireRoles)
170
189
  .middleware(Test)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test2.test.d.ts","sourceRoot":"","sources":["../../controller/test2.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAA8B,MAAM,+BAA+B,CAAA;AAC7G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,KAAK,gBAAgB,EAAoC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAClI,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;AAE9C,cAAM,WAAY,SAAQ,gBAIzB;CACA;;;;;;AAED,cAAM,gBAAiB,SAAQ,qBAE7B;CAAG;AAKL,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAA2D;CAAG;;;;;AAExF,qBAAa,YAAa,SAAQ,iBAQhC;CAAG;AAEL,MAAM,MAAM,MAAM,GAAG;IACnB,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,gBAAgB,CAAC,CAAA;IAE3F,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CACvF,CAAA;AAsGD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B,CAAA;;;;;;;;;;AAEF,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;AACtE,qBAAa,GAAI,SAAQ,QAA0C;CAAG;;;;;;;;;;;;AAEtE,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;AAEL,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;;;;2HAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qFAAiC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.legacy2.test.d.ts","sourceRoot":"","sources":["../controller.legacy2.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.legacy3.test.d.ts","sourceRoot":"","sources":["../controller.legacy3.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;;;;;gBA0EgwD,MAAO,KAAK;;;;;;GA1E1wD,QAAQ;;;;;;iDA0Eq0F,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAg1D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAg1D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAAg1D,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;iDAA2yD,MAAM,KAAK,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CA1E1oU,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;yCAxEL,EAAG,MAAM,CAAC,MAAM;iBAgClC,EA/BK,MACb,CA8BQ,GA9BJ,GA8BI,EA9BC,MAEV,CA4BS,MA5BF;iBAAuB,EAAE,MAC9B,CA2BO,GA3BH,GA2BG,EA3BG,MAAK,CAAC,MAAM;;;;;;2CASkB,EAAG,MAAM,CAAC,MAAM;iBAkBjD,EAAA,MAjBA,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAiBtB,EAPO,MAAC,CAAC,MAAM;iBACA,EAAG,MAAM,CAAC,GAAG,GAAE,EAAG,MAAM,CAAC,MAAM;;;;;;2CAc1C,EAAA,MAAL,CAAK,MAAE;;;;;2CAMqC,EAAG,MAAM,CAAC,MAAM;;;;;CA6BnE,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"}
@@ -0,0 +1,129 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
+ import { Rpc } from "@effect/rpc";
3
+ import { Context, Effect, FiberRef, Layer, S, Schedule } from "effect-app";
4
+ import { makeRpcClient, UnauthorizedError } from "effect-app/client";
5
+ import { HttpHeaders, HttpServerRequest } from "effect-app/http";
6
+ import { makeMiddleware, makeRouter } from "../src/api/routing5.js";
7
+ const optimisticConcurrencySchedule = Schedule.once
8
+ && Schedule.recurWhile((a) => a?._tag === "OptimisticConcurrencyException");
9
+ const middleware = makeMiddleware({
10
+ contextMap: null,
11
+ // helper to deal with nested generic lmitations
12
+ context: null,
13
+ execute: Effect.gen(function* () {
14
+ return (schema, handler, moduleName) => (req) => Effect
15
+ .gen(function* () {
16
+ const headers = yield* Rpc.currentHeaders;
17
+ const ctx = Context.empty();
18
+ const config = "config" in schema ? schema.config : undefined;
19
+ // Check JWT
20
+ // TODO
21
+ // if (!fakeLogin && !request.allowAnonymous) {
22
+ // yield* Effect.catchAll(
23
+ // checkJWTI({
24
+ // ...authConfig,
25
+ // issuer: authConfig.issuer + "/",
26
+ // jwksUri: `${authConfig.issuer}/.well-known/jwks.json`
27
+ // }),
28
+ // (err) => Effect.fail(new JWTError({ error: err }))
29
+ // )
30
+ // }
31
+ // const fakeLogin = true
32
+ // const r = (fakeLogin
33
+ // ? makeUserProfileFromUserHeader(headers["x-user"])
34
+ // : makeUserProfileFromAuthorizationHeader(
35
+ // headers["authorization"]
36
+ // ))
37
+ // .pipe(Effect.exit, basicRuntime.runSync)
38
+ // if (!Exit.isSuccess(r)) {
39
+ // yield* Effect.logWarning("Parsing userInfo failed").pipe(Effect.annotateLogs("r", r))
40
+ // }
41
+ // const userProfile = Option.fromNullable(Exit.isSuccess(r) ? r.value : undefined)
42
+ // if (Option.isSome(userProfile)) {
43
+ // // yield* rcc.update((_) => ({ ..._, userPorfile: userProfile.value }))
44
+ // ctx = ctx.pipe(Context.add(UserProfile, userProfile.value))
45
+ // } else if (!config?.allowAnonymous) {
46
+ // return yield* new NotLoggedInError({ message: "no auth" })
47
+ // }
48
+ // if (config?.requireRoles) {
49
+ // // TODO
50
+ // if (
51
+ // !userProfile.value
52
+ // || !config.requireRoles.every((role: any) => userProfile.value!.roles.includes(role))
53
+ // ) {
54
+ // return yield* new UnauthorizedError()
55
+ // }
56
+ // }
57
+ return yield* handler(req).pipe(Effect.retry(optimisticConcurrencySchedule), Effect.provide(ctx));
58
+ })
59
+ .pipe(Effect.provide(Effect
60
+ .gen(function* () {
61
+ yield* Effect.annotateCurrentSpan("request.name", moduleName ? `${moduleName}.${req._tag}` : req._tag);
62
+ // yield* RequestContextContainer.update((_) => ({
63
+ // ..._,
64
+ // name: NonEmptyString255(moduleName ? `${moduleName}.${req._tag}` : req._tag)
65
+ // }))
66
+ const httpReq = yield* HttpServerRequest.HttpServerRequest;
67
+ // TODO: only pass Authentication etc, or move headers to actual Rpc Headers
68
+ yield* FiberRef.update(Rpc.currentHeaders, (headers) => HttpHeaders.merge(httpReq.headers, headers));
69
+ })
70
+ .pipe(Layer.effectDiscard)));
71
+ // .pipe(Effect.provide(RequestCacheLayers)) as any
72
+ })
73
+ });
74
+ export const { matchAll, matchFor } = makeRouter(middleware, true);
75
+ export const { TaggedRequest: Req } = makeRpcClient({
76
+ // allowAnonymous: NotLoggedInError,
77
+ requireRoles: UnauthorizedError
78
+ });
79
+ export class GetSomething extends Req()("GetSomething", {
80
+ id: S.String
81
+ }, { success: S.Void }) {
82
+ }
83
+ export class GetSomethingElse extends Req()("GetSomethingElse", {
84
+ id: S.String
85
+ }, { success: S.String }) {
86
+ }
87
+ const Something = { GetSomething, GetSomethingElse, meta: { moduleName: "Something" } };
88
+ export class SomethingService extends Effect.Service()("SomethingService", {
89
+ dependencies: [],
90
+ effect: Effect.gen(function* () {
91
+ return {};
92
+ })
93
+ }) {
94
+ }
95
+ const c = a({ a: 5 });
96
+ export class SomethingRepo extends Effect.Service()("SomethingRepo", {
97
+ dependencies: [SomethingService.Default],
98
+ effect: Effect.gen(function* () {
99
+ const smth = yield* SomethingService;
100
+ return {};
101
+ })
102
+ }) {
103
+ }
104
+ export class SomethingService2 extends Effect.Service()("SomethingService2", {
105
+ dependencies: [],
106
+ effect: Effect.gen(function* () {
107
+ return {};
108
+ })
109
+ }) {
110
+ }
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
+ })
128
+ });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci50ZXN0IGNvcHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9jb250cm9sbGVyLnRlc3QgY29weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrREFBK0Q7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDMUUsT0FBTyxFQUF5QixhQUFhLEVBQXNCLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFHbkUsTUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQUMsSUFBSTtPQUM5QyxRQUFRLENBQUMsVUFBVSxDQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxLQUFLLGdDQUFnQyxDQUFDLENBQUE7QUFXbEYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2hDLFVBQVUsRUFBRSxJQUF5QjtJQUNyQyxnREFBZ0Q7SUFDaEQsT0FBTyxFQUFFLElBQWtEO0lBQzNELE9BQU8sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUMzQixPQUFPLENBQ0wsTUFBcUMsRUFDckMsT0FBaUgsRUFDakgsVUFBbUIsRUFDbkIsRUFBRSxDQUNKLENBQ0UsR0FBUSxFQU1SLEVBQUUsQ0FDRixNQUFNO2FBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNaLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUE7WUFDekMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtB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
@@ -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;AAC7F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAAW,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAM7D,OAAO,EAAE,cAAc,EAAsB,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAoB,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAY,MAAM,eAAe,CAAA;;cAgEpG,QAAQ;;;;AAApF,cAAM,kBAAmB,SAAQ,uBAU/B;CAAG;;;;;;;AAML,qBAAa,eAAgB,SAAQ,oBAUnC;CACD;AAgED,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;AAUL,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;qGAK9B,CAAA;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGd,CAAA"}
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;AAC7F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,OAAO,EAAW,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAG7D,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AAItC,OAAO,EAAE,cAAc,EAAsB,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAoB,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAY,MAAM,eAAe,CAAA;;cAyEtG,QAAQ;;AAAlF,cAAM,kBAAmB,SAAQ,uBAA4E;IAC3G,MAAM,CAAC,OAAO,uDAUZ;CACH;;;;;AAMD,qBAAa,eAAgB,SAAQ,oBAA8C;IACjF,MAAM,CAAC,OAAO,6CAUZ;CACH;AAqED,eAAO,MAAM,WAAW;;;;;;YAKM,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;AAUL,eAAO,MAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;qGAK9B,CAAA;AAED,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGd,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller5.test.d.ts","sourceRoot":"","sources":["../controller5.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,MAAM,EAAY,KAAK,EAAE,CAAC,EAAY,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAwC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAI/G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAK9D,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;2CAvElB,MACZ,CA8BO,MA9BA;mBAEqB,MAC9B,CA2BS,GA3BL,KA2BK,MA3BM,CAAC,MAAM;mBACR,MAAK,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM;;;;;;6CA0BhC,MAjBD,CAiBC,MAjBM;mBAiBN,MAhBI,CAgBJ,GAhBQ,KAAK,MAAM,CAAC,MAAM;;;;;;6CAUT,MAAM,CAAC,MAAM;mBAAuC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,MACjG;;;;;;6CAciB,MAAM,CAAC,MAAM;;;;;6CAMF,MAAM,CAAC,MAAM;;;CA4B3C,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;AAEL,eAAO,MAAM,MAAM,KAmBjB,CAAA"}
@@ -0,0 +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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller7.test.d.ts","sourceRoot":"","sources":["../controller7.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicContext.test.d.ts","sourceRoot":"","sources":["../dynamicContext.test.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AA8E7C,eAAO,MAAM,mBAAmB;;CAkB9B,CAAA;AACF,eAAO,MAAM,sBAAsB;;CAkBjC,CAAA;AAMF,eAAO,MAAM,gBAAgB;;CAA0B,CAAA;AACvD,eAAO,MAAM,gBAAgB,0NAA2C,CAAA;AAIxE,eAAO,MAAM,mBAAmB;;CAA6B,CAAA;AAC7D,eAAO,MAAM,mBAAmB,0NAA8C,CAAA;AAQ9E,eAAO,MAAM,iBAAiB;;CAA2B,CAAA;AACzD,eAAO,MAAM,iBAAiB,qOAA+D,CAAA;AAI7F,eAAO,MAAM,oBAAoB;;CAA8B,CAAA;AAC/D,eAAO,MAAM,oBAAoB,qOAAqE,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterApi.test.d.ts","sourceRoot":"","sources":["../filterApi.test.ts"],"names":[],"mappings":""}