@effect-app/infra 2.78.4 → 2.78.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.
- package/CHANGELOG.md +12 -0
- package/dist/api/routing/middleware/DynamicMiddleware.d.ts +6 -6
- package/dist/api/routing/middleware/DynamicMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/DynamicMiddleware.js +7 -5
- package/dist/api/routing/middleware/dynamic-middleware.d.ts +1 -1
- package/dist/api/routing/middleware/dynamic-middleware.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/routing/middleware/DynamicMiddleware.ts +15 -13
- package/src/api/routing/middleware/dynamic-middleware.ts +1 -1
- package/test/controller.test.ts +6 -6
- package/test/dist/controller.test.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -30,7 +30,7 @@ MiddlewareDependencies extends NonEmptyArray<Layer.Layer.Any>> {
|
|
|
30
30
|
/** generic middlewares are those which follow the (next) => (input, headers) => pattern */
|
|
31
31
|
genericMiddlewares: GenericMiddlewareProviders;
|
|
32
32
|
/** static context providers */
|
|
33
|
-
contextProvider
|
|
33
|
+
contextProvider?: ContextTagWithDefault<ContextProviderId, ContextProviderShape<ContextProviderA, ContextProviderR>, MakeContextProviderE, MakeContextProviderR>;
|
|
34
34
|
dependencies?: MiddlewareDependencies;
|
|
35
35
|
execute?: (maker: (cb: MakeRPCHandlerFactory<RequestContextMap, ContextProviderA | HttpRouter.HttpRouter.Provided>) => MakeRPCHandlerFactory<RequestContextMap, ContextProviderA | HttpRouter.HttpRouter.Provided>) => Effect<MakeRPCHandlerFactory<RequestContextMap, ContextProviderA | HttpRouter.HttpRouter.Provided>, MakeMiddlewareE, MakeMiddlewareR | Scope>;
|
|
36
36
|
}
|
|
@@ -44,12 +44,12 @@ ContextProviderA> = ContextTagWithDefault<MiddlewareMakerId, {
|
|
|
44
44
|
effect: RPCHandlerFactory<RequestContextMap, ContextProviderA>;
|
|
45
45
|
}, MakeMiddlewareE, MakeMiddlewareR, "MiddlewareMaker">;
|
|
46
46
|
export type RequestContextMapErrors<RequestContextMap extends Record<string, RPCContextMap.Any>> = S.Schema.Type<RequestContextMap[keyof RequestContextMap]["error"]>;
|
|
47
|
-
export declare const makeMiddleware: <RequestContextMap extends Record<string, RPCContextMap.Any>>() => <
|
|
48
|
-
ContextProviderR extends HttpRouter.HttpRouter.Provided, // what the context provider requires
|
|
49
|
-
MakeContextProviderE, // what the context provider construction can fail with
|
|
50
|
-
MakeContextProviderR, // what the context provider construction requires
|
|
51
|
-
RequestContextProviders extends RequestContextMapProvider<RequestContextMap>, // how to resolve the dynamic middleware
|
|
47
|
+
export declare const makeMiddleware: <RequestContextMap extends Record<string, RPCContextMap.Any>>() => <RequestContextProviders extends RequestContextMapProvider<RequestContextMap>, // how to resolve the dynamic middleware
|
|
52
48
|
GenericMiddlewareProviders extends Array<ContextTagWithDefault.Base<GenericMiddlewareMaker>>, MiddlewareDependencies extends NonEmptyArray<Layer.Layer.Any>, // layers provided for the middlware to be constructed
|
|
49
|
+
ContextProviderA = never, // what the context provider provides
|
|
50
|
+
ContextProviderR extends HttpRouter.HttpRouter.Provided = never, // what the context provider requires
|
|
51
|
+
MakeContextProviderE = never, // what the context provider construction can fail with
|
|
52
|
+
MakeContextProviderR = never, // what the context provider construction requires
|
|
53
53
|
MakeMiddlewareE = never, // what the middleware construction can fail with
|
|
54
54
|
MakeMiddlewareR = never>(make: MiddlewareMake<RequestContextMap, ContextProviderA, ContextProviderR, MakeContextProviderE, MakeContextProviderR, RequestContextProviders, GenericMiddlewareProviders, MakeMiddlewareE, MakeMiddlewareR, MiddlewareDependencies>) => Context.Tag<MiddlewareMakerId, {
|
|
55
55
|
effect: RPCHandlerFactory<RequestContextMap, ContextProviderA>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/DynamicMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"DynamicMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/DynamicMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
-
import { Context, Effect, Layer } from "effect-app";
|
|
4
|
+
import { Context, Effect, Layer, Option } from "effect-app";
|
|
5
5
|
import { implementMiddleware } from "./dynamic-middleware.js";
|
|
6
6
|
import { genericMiddlewareMaker } from "./generic-middleware.js";
|
|
7
7
|
// factory for middlewares
|
|
@@ -18,7 +18,9 @@ export const makeMiddleware =
|
|
|
18
18
|
middleware: make.execute
|
|
19
19
|
? make.execute((cb) => cb)
|
|
20
20
|
: Effect.succeed((_schema, next) => (payload, headers) => next(payload, headers)),
|
|
21
|
-
contextProvider: make.contextProvider
|
|
21
|
+
contextProvider: make.contextProvider
|
|
22
|
+
? make.contextProvider.pipe(Effect.map(Effect.map(Option.some)))
|
|
23
|
+
: Effect.succeed(Effect.succeed(Option.none())) // uses the middleware.contextProvider tag to get the context provider service
|
|
22
24
|
})
|
|
23
25
|
.pipe(Effect.map(({ contextProvider, dynamicMiddlewares, generic, middleware }) => ({
|
|
24
26
|
_tag: "MiddlewareMaker",
|
|
@@ -34,7 +36,7 @@ export const makeMiddleware =
|
|
|
34
36
|
// the contextProvider is an Effect that builds the context for the request
|
|
35
37
|
return yield* contextProvider.pipe(Effect.flatMap((contextProviderContext) =>
|
|
36
38
|
// the dynamicMiddlewares is an Effect that builds the dynamiuc context for the request
|
|
37
|
-
dynamicMiddlewares(schema.config ?? {}, headers).pipe(Effect.flatMap((dynamicContext) => h(payload, headers).pipe(Effect.provide(dynamicContext))), Effect.provide(contextProviderContext))));
|
|
39
|
+
dynamicMiddlewares(schema.config ?? {}, headers).pipe(Effect.flatMap((dynamicContext) => h(payload, headers).pipe(Effect.provide(dynamicContext))), Effect.provide(Option.getOrElse(contextProviderContext, () => Context.empty())))));
|
|
38
40
|
})
|
|
39
41
|
});
|
|
40
42
|
}); // why?
|
|
@@ -43,7 +45,7 @@ export const makeMiddleware =
|
|
|
43
45
|
const dependencies = [
|
|
44
46
|
...(make.dependencies ? make.dependencies : []),
|
|
45
47
|
...dynamicMiddlewares.dependencies,
|
|
46
|
-
make.contextProvider.Default,
|
|
48
|
+
...(make.contextProvider?.Default ? [make.contextProvider.Default] : []),
|
|
47
49
|
...middlewares.dependencies
|
|
48
50
|
];
|
|
49
51
|
const middlewareLayer = l
|
|
@@ -54,4 +56,4 @@ export const makeMiddleware =
|
|
|
54
56
|
function makeRpcEffect() {
|
|
55
57
|
return (cb) => cb;
|
|
56
58
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY01pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL3JvdXRpbmcvbWlkZGxld2FyZS9EeW5hbWljTWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsd0RBQXdEO0FBQ3hELHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXNCLE1BQU0sRUFBb0MsTUFBTSxZQUFZLENBQUE7QUFNakgsT0FBTyxFQUF5QixtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3BGLE9BQU8sRUFBK0Isc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQW9KN0YsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLGNBQWM7QUFDekIscUdBQXFHO0FBQ3JHLEdBRUksRUFBRSxDQUNOLENBZUUsSUFXQyxFQUNELEVBQUU7SUFDRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQU94QyxpQkFBaUIsQ0FDbEIsQ0FBQTtJQUVELE1BQU0sa0JBQWtCLEdBQUcsbUJBQW1CLEVBQXFCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDNUYsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUV0RSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNwQixlQUFlLEVBQ2YsTUFBTTtTQUNILEdBQUcsQ0FBQztRQUNILGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLE1BQU07UUFDN0MsT0FBTyxFQUFFLFdBQVcsQ0FBQyxNQUFNO1FBQzNCLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTztZQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUNiLEVBQStGLEVBQy9GLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixDQUFDLENBQUMs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
|
|
@@ -4,7 +4,7 @@ import { type Tag } from "effect-app/Context";
|
|
|
4
4
|
import { type ContextTagWithDefault } from "../../layerUtils.js";
|
|
5
5
|
export type ContextWithLayer<Config, Service, Error, Dependencies, Id, LayerE, LayerR> = (ContextTagWithDefault<Id, {
|
|
6
6
|
_tag: any;
|
|
7
|
-
handle: (config: Config, headers: Record<string, string>) => Effect<Option<Context<Service>>, Error,
|
|
7
|
+
handle: (config: Config, headers: Record<string, string>) => Effect<Option<Context<Service>>, Error, any>;
|
|
8
8
|
}, LayerE, LayerR> | ContextTagWithDefault<Id, {
|
|
9
9
|
_tag: any;
|
|
10
10
|
handle: (config: Config, headers: Record<string, string>) => Effect<Option<Context<Service>>, Error, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/dynamic-middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,KAAK,qBAAqB,EAAuB,MAAM,qBAAqB,CAAA;AAGrF,MAAM,MAAM,gBAAgB,CAC1B,MAAM,EACN,OAAO,EACP,KAAK,EACL,YAAY,EACZ,EAAE,EACF,MAAM,EACN,MAAM,IAEJ,CACE,qBAAqB,CACrB,EAAE,EACF;IACE,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,EAAE,CACN,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC5B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"dynamic-middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/routing/middleware/dynamic-middleware.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
-
import { Context, Effect, Layer, type NonEmptyArray, type Request, type S, type Scope } from "effect-app"
|
|
4
|
+
import { Context, Effect, Layer, type NonEmptyArray, Option, type Request, type S, type Scope } from "effect-app"
|
|
5
5
|
import type { GetEffectContext, RPCContextMap } from "effect-app/client/req"
|
|
6
6
|
import { type HttpRouter } from "effect-app/http"
|
|
7
7
|
import type * as EffectRequest from "effect/Request"
|
|
@@ -110,7 +110,7 @@ export interface MiddlewareMake<
|
|
|
110
110
|
/** generic middlewares are those which follow the (next) => (input, headers) => pattern */
|
|
111
111
|
genericMiddlewares: GenericMiddlewareProviders
|
|
112
112
|
/** static context providers */
|
|
113
|
-
contextProvider
|
|
113
|
+
contextProvider?: ContextTagWithDefault<
|
|
114
114
|
ContextProviderId,
|
|
115
115
|
ContextProviderShape<ContextProviderA, ContextProviderR>,
|
|
116
116
|
MakeContextProviderE,
|
|
@@ -163,17 +163,17 @@ export const makeMiddleware =
|
|
|
163
163
|
RequestContextMap extends Record<string, RPCContextMap.Any>
|
|
164
164
|
>() =>
|
|
165
165
|
<
|
|
166
|
-
//
|
|
167
|
-
// ContextProvider is a service that builds additional context for each request.
|
|
168
|
-
ContextProviderA, // what the context provider provides
|
|
169
|
-
ContextProviderR extends HttpRouter.HttpRouter.Provided, // what the context provider requires
|
|
170
|
-
MakeContextProviderE, // what the context provider construction can fail with
|
|
171
|
-
MakeContextProviderR, // what the context provider construction requires
|
|
172
166
|
RequestContextProviders extends RequestContextMapProvider<RequestContextMap>, // how to resolve the dynamic middleware
|
|
173
167
|
GenericMiddlewareProviders extends Array<
|
|
174
168
|
ContextTagWithDefault.Base<GenericMiddlewareMaker>
|
|
175
169
|
>,
|
|
176
170
|
MiddlewareDependencies extends NonEmptyArray<Layer.Layer.Any>, // layers provided for the middlware to be constructed
|
|
171
|
+
//
|
|
172
|
+
// ContextProvider is a service that builds additional context for each request.
|
|
173
|
+
ContextProviderA = never, // what the context provider provides
|
|
174
|
+
ContextProviderR extends HttpRouter.HttpRouter.Provided = never, // what the context provider requires
|
|
175
|
+
MakeContextProviderE = never, // what the context provider construction can fail with
|
|
176
|
+
MakeContextProviderR = never, // what the context provider construction requires
|
|
177
177
|
MakeMiddlewareE = never, // what the middleware construction can fail with
|
|
178
178
|
MakeMiddlewareR = never // what the middlware requires to be constructed
|
|
179
179
|
>(
|
|
@@ -216,7 +216,9 @@ export const makeMiddleware =
|
|
|
216
216
|
: Effect.succeed<
|
|
217
217
|
MakeRPCHandlerFactory<RequestContextMap, ContextProviderA | HttpRouter.HttpRouter.Provided>
|
|
218
218
|
>((_schema, next) => (payload, headers) => next(payload, headers)),
|
|
219
|
-
contextProvider: make.contextProvider
|
|
219
|
+
contextProvider: make.contextProvider
|
|
220
|
+
? make.contextProvider.pipe(Effect.map(Effect.map(Option.some)))
|
|
221
|
+
: Effect.succeed(Effect.succeed(Option.none())) // uses the middleware.contextProvider tag to get the context provider service
|
|
220
222
|
})
|
|
221
223
|
.pipe(
|
|
222
224
|
Effect.map(({ contextProvider, dynamicMiddlewares, generic, middleware }) => ({
|
|
@@ -244,7 +246,7 @@ export const makeMiddleware =
|
|
|
244
246
|
Effect.flatMap((dynamicContext) =>
|
|
245
247
|
h(payload, headers).pipe(Effect.provide(dynamicContext))
|
|
246
248
|
),
|
|
247
|
-
Effect.provide(contextProviderContext)
|
|
249
|
+
Effect.provide(Option.getOrElse(contextProviderContext, () => Context.empty()))
|
|
248
250
|
)
|
|
249
251
|
)
|
|
250
252
|
)
|
|
@@ -260,7 +262,7 @@ export const makeMiddleware =
|
|
|
260
262
|
const dependencies = [
|
|
261
263
|
...(make.dependencies ? make.dependencies : []),
|
|
262
264
|
...(dynamicMiddlewares.dependencies as any),
|
|
263
|
-
make.contextProvider.Default,
|
|
265
|
+
...(make.contextProvider?.Default ? [make.contextProvider.Default] : []),
|
|
264
266
|
...middlewares.dependencies
|
|
265
267
|
]
|
|
266
268
|
const middlewareLayer = l
|
|
@@ -271,12 +273,12 @@ export const makeMiddleware =
|
|
|
271
273
|
| MakeMiddlewareE // what the middleware construction can fail with
|
|
272
274
|
| LayerUtils.GetLayersContext<typeof dynamicMiddlewares.dependencies>
|
|
273
275
|
| LayerUtils.GetLayersContext<typeof middlewares.dependencies> // what could go wrong when building the dynamic middleware provider
|
|
274
|
-
|
|
|
276
|
+
| MakeContextProviderE, // what could go wrong when building the context provider
|
|
275
277
|
| LayerUtils.GetLayersContext<MiddlewareDependencies> // what's needed to build layers
|
|
276
278
|
| LayerUtils.GetLayersContext<typeof middlewares.dependencies>
|
|
277
279
|
| LayerUtils.GetLayersContext<typeof dynamicMiddlewares.dependencies> // what's needed to build dynamic middleware layers
|
|
278
280
|
| Exclude<MakeMiddlewareR, LayerUtils.GetLayersSuccess<MiddlewareDependencies>> // what layers provides
|
|
279
|
-
|
|
|
281
|
+
| MakeContextProviderR // what's needed to build the contextProvider
|
|
280
282
|
>
|
|
281
283
|
|
|
282
284
|
return Object.assign(MiddlewareMaker, { Default: middlewareLayer })
|
package/test/controller.test.ts
CHANGED
|
@@ -113,6 +113,7 @@ class AllowAnonymous extends Effect.Service<AllowAnonymous>()("AllowAnonymous",
|
|
|
113
113
|
effect: Effect.gen(function*() {
|
|
114
114
|
return {
|
|
115
115
|
handle: Effect.fn(function*(opts: { allowAnonymous?: false }, headers: Record<string, string>) {
|
|
116
|
+
yield* HttpServerRequest.HttpServerRequest // provided by HttpRouter.HttpRouter.Provided
|
|
116
117
|
const isLoggedIn = !!headers["x-user"]
|
|
117
118
|
if (!isLoggedIn) {
|
|
118
119
|
if (!opts.allowAnonymous) {
|
|
@@ -173,16 +174,15 @@ const contextProvider = MergedContextProvider(MyContextProvider2, MyContextProvi
|
|
|
173
174
|
// TODO: eventually it might be nice if we have total control over order somehow..
|
|
174
175
|
// [ AddRequestNameToSpanContext, RequestCacheContext, UninterruptibleMiddleware, Dynamic(or individual, AllowAnonymous, RequireRoles, Test - or whichever order) ]
|
|
175
176
|
const middleware = makeMiddleware<RequestContextMap>()({
|
|
176
|
-
// TODO: I guess it makes sense to support just passing array of context providers too, like dynamicMiddlewares?
|
|
177
177
|
contextProvider,
|
|
178
178
|
genericMiddlewares: [...DefaultGenericMiddlewares, BogusMiddleware],
|
|
179
|
-
|
|
179
|
+
|
|
180
180
|
dynamicMiddlewares: {
|
|
181
181
|
requireRoles: RequireRoles,
|
|
182
182
|
allowAnonymous: AllowAnonymous,
|
|
183
183
|
test: Test
|
|
184
184
|
},
|
|
185
|
-
|
|
185
|
+
|
|
186
186
|
dependencies: [Layer.effect(Str2, Str)],
|
|
187
187
|
execute: (maker) =>
|
|
188
188
|
Effect.gen(function*() {
|
|
@@ -193,9 +193,9 @@ const middleware = makeMiddleware<RequestContextMap>()({
|
|
|
193
193
|
Effect
|
|
194
194
|
.gen(function*() {
|
|
195
195
|
// you can use only HttpRouter.HttpRouter.Provided here as additional context
|
|
196
|
-
// and what
|
|
196
|
+
// and what ContextProvider provides too
|
|
197
197
|
// const someElse = yield* SomeElse
|
|
198
|
-
yield* Some // provided by
|
|
198
|
+
yield* Some // provided by ContextProvider
|
|
199
199
|
yield* HttpServerRequest.HttpServerRequest // provided by HttpRouter.HttpRouter.Provided
|
|
200
200
|
|
|
201
201
|
return yield* handler(req, headers)
|
|
@@ -241,7 +241,7 @@ export class DoSomething extends Req<DoSomething>()("DoSomething", {
|
|
|
241
241
|
// DoSomething,
|
|
242
242
|
// Effect.fn(function*(req, headers) {
|
|
243
243
|
// const user = yield* UserProfile // dynamic context
|
|
244
|
-
// const some = yield* Some // context provided by
|
|
244
|
+
// const some = yield* Some // context provided by ContextProvider
|
|
245
245
|
// const someservice = yield* SomeService // extraneous service
|
|
246
246
|
// yield* Console.log("DoSomething", req.id, some)
|
|
247
247
|
// })
|
|
@@ -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,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,KAAK,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAoC,KAAK,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAInD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;;;;;;;;;;;;;AAE7C,cAAM,WAAY,SAAQ,gBAKzB;CACA;;;;;;AAED,cAAM,gBAAiB,SAAQ,qBAE7B;CAAG;;;;AAEL,qBAAa,YAAa,SAAQ,iBAAmD;CAAG;;;;AACxF,qBAAa,YAAa,SAAQ,iBAAmD;CAAG;AAExF,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,cAAc,CAAA;CACxB;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,IAAK,SAAQ,SAA2D;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;AACxF,qBAAa,QAAS,SAAQ,aAAmE;CAAG;AAGpG,eAAO,MAAM,mBAAmB;;CAkB9B,CAAA;AAuCF,eAAO,MAAM,gBAAgB;;CAA0B,CAAA;AACvD,eAAO,MAAM,gBAAgB,kOAA2C,CAAA;AAIxE,eAAO,MAAM,iBAAiB;;CAA2B,CAAA;AACzD,eAAO,MAAM,iBAAiB,6OAA+D,CAAA;AAG7F,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,gBAAgB,CAAC,CAAA;IAC5E,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAClF,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAA;CAC3C,CAAA;;;;6BAQ0D,KAAK;;;;AAHhE,cAAM,cAAe,SAAQ,
|
|
1
|
+
{"version":3,"file":"controller.test.d.ts","sourceRoot":"","sources":["../controller.test.ts"],"names":[],"mappings":"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"}
|