@effect/platform 0.87.7 → 0.87.8

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/README.md CHANGED
@@ -4918,8 +4918,11 @@ const SessionMiddleware = HttpLayerRouter.middleware<{
4918
4918
  })
4919
4919
  )
4920
4920
 
4921
- // And here is a CORS middleware that modifies the HTTP response
4922
- const CorsMiddleware = HttpLayerRouter.middleware(HttpMiddleware.cors())
4921
+ // And here is an example of global middleware, that modifies the HTTP response.
4922
+ // Global middleware directly returns a `Layer`.
4923
+ const CorsMiddleware = HttpLayerRouter.middleware(HttpMiddleware.cors(), {
4924
+ global: true
4925
+ })
4923
4926
  // You can also use `HttpLayerRouter.cors()` to create a CORS middleware
4924
4927
 
4925
4928
  const HelloRoute = HttpLayerRouter.add(
@@ -4936,7 +4939,7 @@ const HelloRoute = HttpLayerRouter.add(
4936
4939
  // We can provide the `SessionMiddleware.layer` to the `HelloRoute` layer
4937
4940
  Layer.provide(SessionMiddleware.layer),
4938
4941
  // And we can also provide the `CorsMiddleware` layer to handle CORS
4939
- Layer.provide(CorsMiddleware.layer)
4942
+ Layer.provide(CorsMiddleware)
4940
4943
  )
4941
4944
  ```
4942
4945
 
@@ -89,6 +89,7 @@ const HttpRouter = exports.HttpRouter = /*#__PURE__*/Context.GenericTag("@effect
89
89
  */
90
90
  const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
91
91
  const router = FindMyWay.make(yield* RouterConfig);
92
+ const middleware = new Set();
92
93
  const addAll = routes => Effect.contextWith(context => {
93
94
  const middleware = getMiddleware(context);
94
95
  const applyMiddleware = effect => {
@@ -113,8 +114,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
113
114
  [TypeId]: TypeId,
114
115
  prefixed(prefix) {
115
116
  return HttpRouter.of({
116
- [TypeId]: TypeId,
117
- asHttpEffect: this.asHttpEffect,
117
+ ...this,
118
118
  prefixed: newPrefix => this.prefixed(prefixPath(prefix, newPrefix)),
119
119
  addAll: routes => addAll(routes.map(prefixRoute(prefix))),
120
120
  add: (method, path, handler, options) => addAll([makeRoute({
@@ -128,8 +128,11 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
128
128
  },
129
129
  addAll,
130
130
  add: (method, path, handler, options) => addAll([route(method, path, handler, options)]),
131
+ addGlobalMiddleware: middleware_ => Effect.sync(() => {
132
+ middleware.add(middleware_);
133
+ }),
131
134
  asHttpEffect() {
132
- return Effect.withFiberRuntime(fiber => {
135
+ let handler = Effect.withFiberRuntime(fiber => {
133
136
  const contextMap = new Map(fiber.currentContext.unsafeMap);
134
137
  const request = contextMap.get(HttpServerRequest.HttpServerRequest.key);
135
138
  let result = router.find(request.method, request.url);
@@ -157,6 +160,11 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
157
160
  }
158
161
  return Effect.locally(route.uninterruptible ? route.handler : Effect.interruptible(route.handler), FiberRef.currentContext, Context.unsafeMake(contextMap));
159
162
  });
163
+ if (middleware.size === 0) return handler;
164
+ for (const fn of Arr.reverse(middleware)) {
165
+ handler = fn(handler);
166
+ }
167
+ return handler;
160
168
  }
161
169
  });
162
170
  });
@@ -302,6 +310,11 @@ const MiddlewareTypeId = exports.MiddlewareTypeId = /*#__PURE__*/Symbol.for("@ef
302
310
  /**
303
311
  * Create a middleware layer that can be used to modify requests and responses.
304
312
  *
313
+ * By default, the middleware only affects the routes that it is provided to.
314
+ *
315
+ * If you want to create a middleware that applies globally to all routes, pass
316
+ * the `global` option as `true`.
317
+ *
305
318
  * ```ts
306
319
  * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
307
320
  * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
@@ -357,10 +370,14 @@ const middleware = function () {
357
370
  if (arguments.length === 0) {
358
371
  return makeMiddleware;
359
372
  }
360
- return makeMiddleware(arguments[0]);
373
+ return makeMiddleware(arguments[0], arguments[1]);
361
374
  };
362
375
  exports.middleware = middleware;
363
- const makeMiddleware = middleware => new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.scopedContext(Effect.map(middleware, fn => Context.unsafeMake(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))));
376
+ const makeMiddleware = (middleware, options) => options?.global ? Layer.scopedDiscard(Effect.gen(function* () {
377
+ const router = yield* HttpRouter;
378
+ const fn = Effect.isEffect(middleware) ? yield* middleware : middleware;
379
+ yield* router.addGlobalMiddleware(fn);
380
+ })) : new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.scopedContext(Effect.map(middleware, fn => Context.unsafeMake(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))));
364
381
  let middlewareId = 0;
365
382
  const fnContextKey = "@effect/platform/HttpLayerRouter/MiddlewareFn";
366
383
  class MiddlewareImpl {
@@ -425,7 +442,9 @@ const getMiddleware = context => {
425
442
  * @since 1.0.0
426
443
  * @category Middleware
427
444
  */
428
- const cors = options => middleware(HttpMiddleware.cors(options)).layer;
445
+ const cors = options => middleware(HttpMiddleware.cors(options), {
446
+ global: true
447
+ });
429
448
  /**
430
449
  * A middleware that disables the logger for some routes.
431
450
  *
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","_interopRequireWildcard","require","HttpServerResponse","Arr","Context","Effect","FiberRef","_Function","Layer","Option","Scope","Tracer","FindMyWay","_FindMyWay","exports","HttpApiBuilder","HttpMiddleware","_HttpRouter","HttpServer","HttpServerError","OpenApi","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","Symbol","for","HttpRouter","GenericTag","make","gen","router","RouterConfig","addAll","routes","contextWith","context","middleware","getMiddleware","applyMiddleware","effect","length","route","makeRoute","handler","method","all","path","on","of","prefixed","prefix","asHttpEffect","newPrefix","prefixPath","map","prefixRoute","add","options","isEffect","flatMap","uninterruptible","some","withFiberRuntime","fiber","contextMap","Map","currentContext","unsafeMap","request","key","result","find","url","undefined","fail","RouteNotFound","_tag","sliceRequestUrl","value","ParsedSearchParams","searchParams","RouteContext","RouteContextTypeId","params","span","ParentSpan","attribute","locally","interruptible","unsafeMake","prefexLen","modify","slice","Reference","defaultValue","constant","use","scopedDiscard","toAdd","layer","toHttpEffect","appLayer","scope","memoMap","CurrentMemoMap","buildWithMemoMap","provideMerge","RouteTypeId","none","removeTrailingSlash","endsWith","dual","self","match","onNone","onSome","existingPrefix","MiddlewareTypeId","arguments","makeMiddleware","MiddlewareImpl","scopedContext","fn","fnContextKey","succeedContext","middlewareId","layerFn","dependencies","constructor","contextKey","stack","depsContext","push","pipe","provide","combine","other","middlewareCache","arr","topLevel","empty","maxLength","startsWith","Set","fromIterable","reverse","cors","disableLogger","withLoggerDisabled","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","openapiPath","spec","fromApi","succeed","unsafeJson","effectDiscard","serve","compose","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","identity","withLogAddress"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","_interopRequireWildcard","require","HttpServerResponse","Arr","Context","Effect","FiberRef","_Function","Layer","Option","Scope","Tracer","FindMyWay","_FindMyWay","exports","HttpApiBuilder","HttpMiddleware","_HttpRouter","HttpServer","HttpServerError","OpenApi","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","Symbol","for","HttpRouter","GenericTag","make","gen","router","RouterConfig","middleware","Set","addAll","routes","contextWith","context","getMiddleware","applyMiddleware","effect","length","route","makeRoute","handler","method","all","path","on","of","prefixed","prefix","newPrefix","prefixPath","map","prefixRoute","add","options","isEffect","flatMap","uninterruptible","some","addGlobalMiddleware","middleware_","sync","asHttpEffect","withFiberRuntime","fiber","contextMap","Map","currentContext","unsafeMap","request","key","result","find","url","undefined","fail","RouteNotFound","_tag","sliceRequestUrl","value","ParsedSearchParams","searchParams","RouteContext","RouteContextTypeId","params","span","ParentSpan","attribute","locally","interruptible","unsafeMake","size","fn","reverse","prefexLen","modify","slice","Reference","defaultValue","constant","use","scopedDiscard","toAdd","layer","toHttpEffect","appLayer","scope","memoMap","CurrentMemoMap","buildWithMemoMap","provideMerge","RouteTypeId","none","removeTrailingSlash","endsWith","dual","self","match","onNone","onSome","existingPrefix","MiddlewareTypeId","arguments","makeMiddleware","global","MiddlewareImpl","scopedContext","fnContextKey","succeedContext","middlewareId","layerFn","dependencies","constructor","contextKey","stack","depsContext","push","pipe","provide","combine","other","middlewareCache","arr","topLevel","empty","maxLength","startsWith","fromIterable","cors","disableLogger","withLoggerDisabled","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","openapiPath","spec","fromApi","succeed","unsafeJson","effectDiscard","serve","compose","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","identity","withLogAddress"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -42,6 +42,7 @@ export interface HttpRouter {
42
42
  readonly uninterruptible?: boolean | undefined;
43
43
  } | undefined) => Effect.Effect<void, never, Type.From<"Requires", Exclude<R, Provided>> | Type.From<"Error", E>>;
44
44
  readonly addAll: <const Routes extends ReadonlyArray<Route<any, any>>>(routes: Routes) => Effect.Effect<void, never, Type.From<"Requires", Exclude<Route.Context<Routes[number]>, Provided>> | Type.From<"Error", Route.Error<Routes[number]>>>;
45
+ readonly addGlobalMiddleware: <E, R>(middleware: ((effect: Effect.Effect<HttpServerResponse.HttpServerResponse, unhandled>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>) & (unhandled extends E ? unknown : "You cannot handle any errors")) => Effect.Effect<void, never, Type.From<"GlobalRequires", Exclude<R, GlobalProvided>> | Type.From<"GlobalError", Exclude<E, unhandled>>>;
45
46
  readonly asHttpEffect: () => Effect.Effect<HttpServerResponse.HttpServerResponse, unknown, HttpServerRequest.HttpServerRequest | Scope.Scope>;
46
47
  }
47
48
  /**
@@ -154,7 +155,7 @@ export declare const layer: Layer.Layer<HttpRouter>;
154
155
  * @since 1.0.0
155
156
  * @category HttpRouter
156
157
  */
157
- export declare const toHttpEffect: <A, E, R>(appLayer: Layer.Layer<A, E, R>) => Effect.Effect<Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R>>, Type.Without<E>, Exclude<Type.Without<R>, HttpRouter> | Scope.Scope>;
158
+ export declare const toHttpEffect: <A, E, R>(appLayer: Layer.Layer<A, E, R>) => Effect.Effect<Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | Type.Only<"GlobalRequires", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>, Type.Without<E>, Exclude<Type.Without<R>, HttpRouter> | Scope.Scope>;
158
159
  /**
159
160
  * @since 1.0.0
160
161
  * @category Route
@@ -278,6 +279,13 @@ export declare namespace Type {
278
279
  * @category Request types
279
280
  */
280
281
  export type Provided = HttpServerRequest.HttpServerRequest | Scope.Scope | HttpServerRequest.ParsedSearchParams | RouteContext;
282
+ /**
283
+ * Services provided to global middleware.
284
+ *
285
+ * @since 1.0.0
286
+ * @category Request types
287
+ */
288
+ export type GlobalProvided = HttpServerRequest.HttpServerRequest | Scope.Scope;
281
289
  /**
282
290
  * @since 1.0.0
283
291
  * @category Middleware
@@ -311,7 +319,7 @@ export interface Middleware<Config extends {
311
319
  layerRequires: any;
312
320
  }> {
313
321
  readonly [MiddlewareTypeId]: Config;
314
- readonly layer: [Config["requires"]] extends [never] ? Layer.Layer<Type.From<"Requires", Config["provides"]>, Config["layerError"], Config["layerRequires"] | Type.From<"Requires", Config["requires"]>> : "Need to .combine(middleware) that satisfy the missing request dependencies";
322
+ readonly layer: [Config["requires"]] extends [never] ? Layer.Layer<Type.From<"Requires", Config["provides"]>, Config["layerError"], Config["layerRequires"] | Type.From<"Requires", Config["requires"]> | Type.From<"Error", Config["error"]>> : "Need to .combine(middleware) that satisfy the missing request dependencies";
315
323
  readonly combine: <Config2 extends {
316
324
  provides: any;
317
325
  handles: any;
@@ -331,6 +339,11 @@ export interface Middleware<Config extends {
331
339
  /**
332
340
  * Create a middleware layer that can be used to modify requests and responses.
333
341
  *
342
+ * By default, the middleware only affects the routes that it is provided to.
343
+ *
344
+ * If you want to create a middleware that applies globally to all routes, pass
345
+ * the `global` option as `true`.
346
+ *
334
347
  * ```ts
335
348
  * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
336
349
  * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
@@ -400,7 +413,9 @@ export declare namespace middleware {
400
413
  * @category Middleware
401
414
  */
402
415
  type Make<Provides = never, Handles = never> = {
403
- <E, R, EX, RX>(middleware: Effect.Effect<(effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Types.NoInfer<Handles | unhandled>, Types.NoInfer<Provides>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R> & (unhandled extends E ? unknown : "You must only handle the configured errors"), EX, RX>): Middleware<{
416
+ <E, R, EX, RX, const Global extends boolean = false>(middleware: Effect.Effect<(effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Types.NoInfer<Handles | unhandled>, Types.NoInfer<Provides>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R> & (unhandled extends E ? unknown : "You must only handle the configured errors"), EX, RX>, options?: {
417
+ readonly global?: Global | undefined;
418
+ }): Global extends true ? Layer.Layer<Type.From<"Requires", Provides> | Type.From<"Error", Handles> | Type.From<"GlobalRequires", Provides> | Type.From<"GlobalError", Handles>, EX, HttpRouter | Exclude<RX, Scope.Scope> | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>> | Type.From<"GlobalError", Exclude<E, unhandled>>> : Middleware<{
404
419
  provides: Provides;
405
420
  handles: Handles;
406
421
  error: Exclude<E, unhandled>;
@@ -408,7 +423,9 @@ export declare namespace middleware {
408
423
  layerError: EX;
409
424
  layerRequires: Exclude<RX, Scope.Scope>;
410
425
  }>;
411
- <E, R>(middleware: ((effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Types.NoInfer<Handles | unhandled>, Types.NoInfer<Provides>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>) & (unhandled extends E ? unknown : "You must only handle the configured errors")): Middleware<{
426
+ <E, R, const Global extends boolean = false>(middleware: ((effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Types.NoInfer<Handles | unhandled>, Types.NoInfer<Provides>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>) & (unhandled extends E ? unknown : "You must only handle the configured errors"), options?: {
427
+ readonly global?: Global | undefined;
428
+ }): Global extends true ? Layer.Layer<Type.From<"Requires", Provides> | Type.From<"Error", Handles> | Type.From<"GlobalRequires", Provides> | Type.From<"GlobalError", Handles>, never, HttpRouter | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>> | Type.From<"GlobalError", Exclude<E, unhandled>>> : Middleware<{
412
429
  provides: Provides;
413
430
  handles: Handles;
414
431
  error: Exclude<E, unhandled>;
@@ -436,7 +453,7 @@ export declare const cors: (options?: {
436
453
  readonly exposedHeaders?: ReadonlyArray<string> | undefined;
437
454
  readonly maxAge?: number | undefined;
438
455
  readonly credentials?: boolean | undefined;
439
- } | undefined) => Layer.Layer<never>;
456
+ } | undefined) => Layer.Layer<never, never, HttpRouter>;
440
457
  /**
441
458
  * A middleware that disables the logger for some routes.
442
459
  *
@@ -524,7 +541,7 @@ export declare const addHttpApi: <Id extends string, Groups extends HttpApiGroup
524
541
  * @since 1.0.0
525
542
  * @category Server
526
543
  */
527
- export declare const serve: <A, E, R, HE, HR = Type.Only<"Requires", R>>(appLayer: Layer.Layer<A, E, R>, options?: {
544
+ export declare const serve: <A, E, R, HE, HR = Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>(appLayer: Layer.Layer<A, E, R>, options?: {
528
545
  readonly routerConfig?: Partial<FindMyWay.RouterConfig> | undefined;
529
546
  readonly disableLogger?: boolean | undefined;
530
547
  readonly disableListenLog?: boolean;
@@ -539,6 +556,6 @@ export declare const serve: <A, E, R, HE, HR = Type.Only<"Requires", R>>(appLaye
539
556
  * Use HttpLayerRouter.middleware to create middleware that can modify the
540
557
  * response.
541
558
  */
542
- readonly middleware?: (effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, HE, HR>;
559
+ readonly middleware?: (effect: Effect.Effect<HttpServerResponse.HttpServerResponse, Type.Only<"Error", R> | Type.Only<"GlobalError", R> | HttpServerError.RouteNotFound, Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>) => Effect.Effect<HttpServerResponse.HttpServerResponse, HE, HR>;
543
560
  }) => Layer.Layer<never, Type.Without<E>, HttpServer.HttpServer | Exclude<Type.Without<R> | Exclude<HR, Provided>, HttpRouter>>;
544
561
  //# sourceMappingURL=HttpLayerRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLayerRouter.d.ts","sourceRoot":"","sources":["../../src/HttpLayerRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpLayerRouter.d.ts","sourceRoot":"","sources":["../../src/HttpLayerRouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,oCAAoC,CAAA;AACvE,OAAO,KAAK,kBAAkB,MAAM,qCAAqC,CAAA;AAEzE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAsB,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAGvD;;;GAGG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAkE,CAAA;AAE9F;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAA;IAEjD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EACjB,MAAM,EAAE,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,EACrE,IAAI,EAAE,SAAS,EACf,OAAO,EACH,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,GAC1D,CAAC,CAAC,OAAO,EAAE,iBAAiB,CAAC,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAClH,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,KACrE,MAAM,CAAC,MAAM,CAChB,IAAI,EACJ,KAAK,EACL,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CACpE,CAAA;IAED,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACnE,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAChB,IAAI,EACJ,KAAK,EACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GACvE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAClD,CAAA;IAED,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,EACjC,UAAU,EACN,CAAC,CACD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,SAAS,CAAC,KACpE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAC9D,CAAC,SAAS,SAAS,CAAC,GAAG,OAAO,GAAG,8BAA8B,CAAC,KACjE,MAAM,CAAC,MAAM,CAChB,IAAI,EACJ,KAAK,EACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GACvD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAClD,CAAA;IAED,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,CAAC,MAAM,CACxC,kBAAkB,CAAC,kBAAkB,EACrC,OAAO,EACP,iBAAiB,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAClD,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAE1D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,yCAwGf,CAAA;;AAOF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;AAEL,OAAO;AACL;;;GAGG;AACH,MAAM;AACN;;;GAGG;AACH,YAAY;AACZ;;;GAGG;AACH,UAAU;AACV;;;GAGG;AACH,YAAY;AACZ;;;GAGG;AACH,YAAY;AACZ;;;GAGG;AACH,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EACzB,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAChD,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAuD,CAAA;AAEpH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EACtB,QAAQ,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,EACrE,MAAM,SAAS,EACf,SACI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,GAC1D,CAAC,CAAC,OAAO,EAAE,iBAAiB,CAAC,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAClH,UAAU;IACR,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC/C,KACA,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAChD,CAAA;AAE7D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM,GAAI,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAC1F,QAAQ,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAC9C,UAAU;IACR,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KACA,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,EAAE,EACA,UAAU,GACV,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,GACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GACvE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAS9C,CAAA;AAEL;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAkC,CAAA;AAE5E;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAClC,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC7B,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,MAAM,CACX,kBAAkB,CAAC,kBAAkB,EACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,aAAa,EACtF,KAAK,CAAC,KAAK,GAAG,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAC9G,EACD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACf,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAYzC,CAAA;AAEX;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,MAA6D,CAAA;AAE9F;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK;IACzC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAAA;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CACvC;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B;;;OAGG;IACH,KAAY,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAE7F;;;OAGG;IACH,KAAY,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;CAChG;AAgBD;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EACxB,QAAQ,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,EACrE,MAAM,SAAS,EACf,SACI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,GAC1D,CAAC,CAAC,OAAO,EAAE,iBAAiB,CAAC,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAClH,UAAU;IACR,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC/C,KACA,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAO5B,CAAA;AAEJ;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,MAAM,EAAE,GAAG,GAAG,CAAA;AAM1C;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE;IACvB;;;OAGG;IACH,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C;;;OAGG;IACH,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAItC,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE;IACxB;;;OAGG;IACH,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1D;;;OAGG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CASnD,CAAA;AAEL;;;;;;GAMG;AACH,MAAM,WAAW,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B;;;OAGG;IACH,KAAY,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,KAAK,CAAA;IAEpF;;;OAGG;IACH,KAAY,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAEpF;;;OAGG;IACH,KAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;CAC1E;AAED;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAChB,iBAAiB,CAAC,iBAAiB,GACnC,KAAK,CAAC,KAAK,GACX,iBAAiB,CAAC,kBAAkB,GACpC,YAAY,CAAA;AAEhB;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GACtB,iBAAiB,CAAC,iBAAiB,GACnC,KAAK,CAAC,KAAK,CAAA;AAEf;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAAO,MAAkE,CAAA;AAExG;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU,CACzB,MAAM,SAAS;IACb,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,GAAG,CAAA;IACZ,KAAK,EAAE,GAAG,CAAA;IACV,QAAQ,EAAE,GAAG,CAAA;IACb,UAAU,EAAE,GAAG,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;CACnB;IAED,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEnC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAC9D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EACzC,MAAM,CAAC,YAAY,CAAC,EAClB,MAAM,CAAC,eAAe,CAAC,GACvB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,GACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CACtC,GACC,4EAA4E,CAAA;IAEhF,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,SAAS;QACd,QAAQ,EAAE,GAAG,CAAA;QACb,OAAO,EAAE,GAAG,CAAA;QACZ,KAAK,EAAE,GAAG,CAAA;QACV,QAAQ,EAAE,GAAG,CAAA;QACb,UAAU,EAAE,GAAG,CAAA;QACf,aAAa,EAAE,GAAG,CAAA;KACnB,EACD,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC;QAC1C,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;QAClD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QAC/C,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QACtE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;QAChF,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;QACxD,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;KAClE,CAAC,CAAA;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,UAAU,EACnB,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAC7B,CAAC,CACD,MAAM,SAAS;IACb,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,GAAG,CAAA;CACd,GAAG,EAAE,OACD,UAAU,CAAC,IAAI,CACpB,MAAM,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,EAChD,MAAM,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAChD,CAKA,CAAA;AAqGH;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC;;;OAGG;IACH,KAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;QACpD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,SAAS,OAAO,GAAG,KAAK,EACjD,UAAU,EAAE,MAAM,CAAC,MAAM,CACvB,CACE,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,kBAAkB,CAAC,kBAAkB,EACrC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,EAClC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CACxB,KAEC,MAAM,CAAC,MAAM,CACb,kBAAkB,CAAC,kBAAkB,EACrC,CAAC,EACD,CAAC,CACF,GACC,CAAC,SAAS,SAAS,CAAC,GAAG,OAAO,GAAG,4CAA4C,CAAC,EAClF,EAAE,EACF,EAAE,CACH,EACD,OAAO,CAAC,EAAE;YACR,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACrC,GACA,MAAM,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GACrC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,EACnC,EAAE,EACA,UAAU,GACV,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,GACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GACvD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAClD,GACD,UAAU,CAAC;YACT,QAAQ,EAAE,QAAQ,CAAA;YAClB,OAAO,EAAE,OAAO,CAAA;YAChB,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;YAC5B,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC9B,UAAU,EAAE,EAAE,CAAA;YACd,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;SACxC,CAAC,CAAA;QACJ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,SAAS,OAAO,GAAG,KAAK,EACzC,UAAU,EACN,CAAC,CACD,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,kBAAkB,CAAC,kBAAkB,EACrC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,EAClC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CACxB,KACE,MAAM,CAAC,MAAM,CAChB,kBAAkB,CAAC,kBAAkB,EACrC,CAAC,EACD,CAAC,CACF,CAAC,GACA,CAAC,SAAS,SAAS,CAAC,GAAG,OAAO,GAAG,4CAA4C,CAAC,EAClF,OAAO,CAAC,EAAE;YACR,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACrC,GACA,MAAM,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GACrC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,EACnC,KAAK,EACH,UAAU,GACV,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GACvD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAClD,GACD,UAAU,CAAC;YACT,QAAQ,EAAE,QAAQ,CAAA;YAClB,OAAO,EAAE,OAAO,CAAA;YAChB,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;YAC5B,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAC9B,UAAU,EAAE,KAAK,CAAA;YACjB,aAAa,EAAE,KAAK,CAAA;SACrB,CAAC,CAAA;KACL,CAAA;IAED;;;OAGG;IACH,KAAY,EAAE,GAAG,CACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,KACzD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;CAC1D;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GACf,UAAU;IACR,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAC3D,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC3C,GAAG,SAAS,KACZ,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAA+D,CAAA;AAEtG;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAuD,CAAA;AAEpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,UAAU,GAAI,EAAE,SAAS,MAAM,EAAE,MAAM,SAAS,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAC9F,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EACtC,UAAU;IACR,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,MAAM,EAAE,GAAG,SAAS,CAAA;CAChD,KACA,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,KAAK,EACL,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAmBlH,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAC/F,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,UAAU;IACR,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;IACnE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,kBAAkB,CAAC,kBAAkB,EACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,aAAa,EACnF,KAAK,CAAC,KAAK,GAAG,iBAAiB,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAC9G,KACE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;CAClE,KACA,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EACf,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAmBrF,CAAA"}
@@ -40,6 +40,7 @@ export const HttpRouter = /*#__PURE__*/Context.GenericTag("@effect/platform/Http
40
40
  */
41
41
  export const make = /*#__PURE__*/Effect.gen(function* () {
42
42
  const router = FindMyWay.make(yield* RouterConfig);
43
+ const middleware = new Set();
43
44
  const addAll = routes => Effect.contextWith(context => {
44
45
  const middleware = getMiddleware(context);
45
46
  const applyMiddleware = effect => {
@@ -64,8 +65,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
64
65
  [TypeId]: TypeId,
65
66
  prefixed(prefix) {
66
67
  return HttpRouter.of({
67
- [TypeId]: TypeId,
68
- asHttpEffect: this.asHttpEffect,
68
+ ...this,
69
69
  prefixed: newPrefix => this.prefixed(prefixPath(prefix, newPrefix)),
70
70
  addAll: routes => addAll(routes.map(prefixRoute(prefix))),
71
71
  add: (method, path, handler, options) => addAll([makeRoute({
@@ -79,8 +79,11 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
79
79
  },
80
80
  addAll,
81
81
  add: (method, path, handler, options) => addAll([route(method, path, handler, options)]),
82
+ addGlobalMiddleware: middleware_ => Effect.sync(() => {
83
+ middleware.add(middleware_);
84
+ }),
82
85
  asHttpEffect() {
83
- return Effect.withFiberRuntime(fiber => {
86
+ let handler = Effect.withFiberRuntime(fiber => {
84
87
  const contextMap = new Map(fiber.currentContext.unsafeMap);
85
88
  const request = contextMap.get(HttpServerRequest.HttpServerRequest.key);
86
89
  let result = router.find(request.method, request.url);
@@ -108,6 +111,11 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
108
111
  }
109
112
  return Effect.locally(route.uninterruptible ? route.handler : Effect.interruptible(route.handler), FiberRef.currentContext, Context.unsafeMake(contextMap));
110
113
  });
114
+ if (middleware.size === 0) return handler;
115
+ for (const fn of Arr.reverse(middleware)) {
116
+ handler = fn(handler);
117
+ }
118
+ return handler;
111
119
  }
112
120
  });
113
121
  });
@@ -278,6 +286,11 @@ export const MiddlewareTypeId = /*#__PURE__*/Symbol.for("@effect/platform/HttpLa
278
286
  /**
279
287
  * Create a middleware layer that can be used to modify requests and responses.
280
288
  *
289
+ * By default, the middleware only affects the routes that it is provided to.
290
+ *
291
+ * If you want to create a middleware that applies globally to all routes, pass
292
+ * the `global` option as `true`.
293
+ *
281
294
  * ```ts
282
295
  * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
283
296
  * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
@@ -333,9 +346,13 @@ export const middleware = function () {
333
346
  if (arguments.length === 0) {
334
347
  return makeMiddleware;
335
348
  }
336
- return makeMiddleware(arguments[0]);
349
+ return makeMiddleware(arguments[0], arguments[1]);
337
350
  };
338
- const makeMiddleware = middleware => new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.scopedContext(Effect.map(middleware, fn => Context.unsafeMake(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))));
351
+ const makeMiddleware = (middleware, options) => options?.global ? Layer.scopedDiscard(Effect.gen(function* () {
352
+ const router = yield* HttpRouter;
353
+ const fn = Effect.isEffect(middleware) ? yield* middleware : middleware;
354
+ yield* router.addGlobalMiddleware(fn);
355
+ })) : new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.scopedContext(Effect.map(middleware, fn => Context.unsafeMake(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))));
339
356
  let middlewareId = 0;
340
357
  const fnContextKey = "@effect/platform/HttpLayerRouter/MiddlewareFn";
341
358
  class MiddlewareImpl {
@@ -400,7 +417,9 @@ const getMiddleware = context => {
400
417
  * @since 1.0.0
401
418
  * @category Middleware
402
419
  */
403
- export const cors = options => middleware(HttpMiddleware.cors(options)).layer;
420
+ export const cors = options => middleware(HttpMiddleware.cors(options), {
421
+ global: true
422
+ });
404
423
  /**
405
424
  * A middleware that disables the logger for some routes.
406
425
  *
@@ -1 +1 @@
1
- {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","HttpServerResponse","Arr","Context","Effect","FiberRef","compose","constant","dual","identity","Layer","Option","Scope","Tracer","FindMyWay","HttpApiBuilder","HttpMiddleware","RouteContext","RouteContextTypeId","HttpServer","HttpServerError","OpenApi","TypeId","Symbol","for","HttpRouter","GenericTag","make","gen","router","RouterConfig","addAll","routes","contextWith","context","middleware","getMiddleware","applyMiddleware","effect","i","length","route","makeRoute","handler","method","all","path","on","of","prefixed","prefix","asHttpEffect","newPrefix","prefixPath","map","prefixRoute","add","options","isEffect","flatMap","uninterruptible","some","withFiberRuntime","fiber","contextMap","Map","currentContext","unsafeMap","request","get","key","result","find","url","undefined","fail","RouteNotFound","_tag","set","sliceRequestUrl","value","ParsedSearchParams","searchParams","params","span","ParentSpan","attribute","locally","interruptible","unsafeMake","prefexLen","modify","slice","Reference","defaultValue","schemaJson","schemaNoBody","schemaParams","schemaPathParams","use","f","scopedDiscard","toAdd","layer","toHttpEffect","appLayer","scope","memoMap","CurrentMemoMap","buildWithMemoMap","provideMerge","RouteTypeId","none","removeTrailingSlash","endsWith","self","match","onNone","onSome","existingPrefix","MiddlewareTypeId","arguments","makeMiddleware","MiddlewareImpl","scopedContext","fn","fnContextKey","succeedContext","middlewareId","layerFn","dependencies","constructor","contextKey","stack","depsContext","push","pipe","provide","combine","other","middlewareCache","WeakMap","arr","topLevel","empty","maxLength","startsWith","Set","fromIterable","reverse","cors","disableLogger","withLoggerDisabled","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","openapiPath","spec","fromApi","succeed","unsafeJson","effectDiscard","serve","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","withLogAddress"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HttpLayerRouter.js","names":["HttpServerRequest","HttpServerResponse","Arr","Context","Effect","FiberRef","compose","constant","dual","identity","Layer","Option","Scope","Tracer","FindMyWay","HttpApiBuilder","HttpMiddleware","RouteContext","RouteContextTypeId","HttpServer","HttpServerError","OpenApi","TypeId","Symbol","for","HttpRouter","GenericTag","make","gen","router","RouterConfig","middleware","Set","addAll","routes","contextWith","context","getMiddleware","applyMiddleware","effect","i","length","route","makeRoute","handler","method","all","path","on","of","prefixed","prefix","newPrefix","prefixPath","map","prefixRoute","add","options","isEffect","flatMap","uninterruptible","some","addGlobalMiddleware","middleware_","sync","asHttpEffect","withFiberRuntime","fiber","contextMap","Map","currentContext","unsafeMap","request","get","key","result","find","url","undefined","fail","RouteNotFound","_tag","set","sliceRequestUrl","value","ParsedSearchParams","searchParams","params","span","ParentSpan","attribute","locally","interruptible","unsafeMake","size","fn","reverse","prefexLen","modify","slice","Reference","defaultValue","schemaJson","schemaNoBody","schemaParams","schemaPathParams","use","f","scopedDiscard","toAdd","layer","toHttpEffect","appLayer","scope","memoMap","CurrentMemoMap","buildWithMemoMap","provideMerge","RouteTypeId","none","removeTrailingSlash","endsWith","self","match","onNone","onSome","existingPrefix","MiddlewareTypeId","arguments","makeMiddleware","global","MiddlewareImpl","scopedContext","fnContextKey","succeedContext","middlewareId","layerFn","dependencies","constructor","contextKey","stack","depsContext","push","pipe","provide","combine","other","middlewareCache","WeakMap","arr","topLevel","empty","maxLength","startsWith","fromIterable","cors","disableLogger","withLoggerDisabled","addHttpApi","api","ApiMiddleware","buildMiddleware","Router","unwrap","fnUntraced","router_","openapiPath","spec","fromApi","succeed","unsafeJson","effectDiscard","serve","logger","RouterLayer","routerConfig","unwrapScoped","disableListenLog","withLogAddress"],"sources":["../../src/HttpLayerRouter.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.87.7",
3
+ "version": "0.87.8",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -73,6 +73,19 @@ export interface HttpRouter {
73
73
  | Type.From<"Error", Route.Error<Routes[number]>>
74
74
  >
75
75
 
76
+ readonly addGlobalMiddleware: <E, R>(
77
+ middleware:
78
+ & ((
79
+ effect: Effect.Effect<HttpServerResponse.HttpServerResponse, unhandled>
80
+ ) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, R>)
81
+ & (unhandled extends E ? unknown : "You cannot handle any errors")
82
+ ) => Effect.Effect<
83
+ void,
84
+ never,
85
+ | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>>
86
+ | Type.From<"GlobalError", Exclude<E, unhandled>>
87
+ >
88
+
76
89
  readonly asHttpEffect: () => Effect.Effect<
77
90
  HttpServerResponse.HttpServerResponse,
78
91
  unknown,
@@ -94,6 +107,7 @@ export const HttpRouter: Context.Tag<HttpRouter, HttpRouter> = Context.GenericTa
94
107
  */
95
108
  export const make = Effect.gen(function*() {
96
109
  const router = FindMyWay.make<Route<any, never>>(yield* RouterConfig)
110
+ const middleware = new Set<middleware.Fn>()
97
111
 
98
112
  const addAll = <const Routes extends ReadonlyArray<Route<any, any>>>(
99
113
  routes: Routes
@@ -128,8 +142,7 @@ export const make = Effect.gen(function*() {
128
142
  [TypeId]: TypeId,
129
143
  prefixed(this: HttpRouter, prefix: string) {
130
144
  return HttpRouter.of({
131
- [TypeId]: TypeId,
132
- asHttpEffect: this.asHttpEffect,
145
+ ...this,
133
146
  prefixed: (newPrefix: string) => this.prefixed(prefixPath(prefix, newPrefix)),
134
147
  addAll: (routes) => addAll(routes.map(prefixRoute(prefix))) as any,
135
148
  add: (method, path, handler, options) =>
@@ -148,8 +161,12 @@ export const make = Effect.gen(function*() {
148
161
  },
149
162
  addAll,
150
163
  add: (method, path, handler, options) => addAll([route(method, path, handler, options)]),
164
+ addGlobalMiddleware: (middleware_) =>
165
+ Effect.sync(() => {
166
+ middleware.add(middleware_ as any)
167
+ }),
151
168
  asHttpEffect() {
152
- return Effect.withFiberRuntime((fiber) => {
169
+ let handler = Effect.withFiberRuntime<HttpServerResponse.HttpServerResponse, unknown>((fiber) => {
153
170
  const contextMap = new Map(fiber.currentContext.unsafeMap)
154
171
  const request = contextMap.get(HttpServerRequest.HttpServerRequest.key) as HttpServerRequest.HttpServerRequest
155
172
  let result = router.find(request.method, request.url)
@@ -185,6 +202,11 @@ export const make = Effect.gen(function*() {
185
202
  Context.unsafeMake(contextMap)
186
203
  )
187
204
  })
205
+ if (middleware.size === 0) return handler
206
+ for (const fn of Arr.reverse(middleware)) {
207
+ handler = fn(handler as any)
208
+ }
209
+ return handler
188
210
  }
189
211
  })
190
212
  })
@@ -334,8 +356,8 @@ export const toHttpEffect = <A, E, R>(
334
356
  ): Effect.Effect<
335
357
  Effect.Effect<
336
358
  HttpServerResponse.HttpServerResponse,
337
- Type.Only<"Error", R> | HttpServerError.RouteNotFound,
338
- Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R>
359
+ Type.Only<"Error", R> | Type.Only<"GlobalRequires", R> | HttpServerError.RouteNotFound,
360
+ Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>
339
361
  >,
340
362
  Type.Without<E>,
341
363
  Exclude<Type.Without<R>, HttpRouter> | Scope.Scope
@@ -536,6 +558,16 @@ export type Provided =
536
558
  | HttpServerRequest.ParsedSearchParams
537
559
  | RouteContext
538
560
 
561
+ /**
562
+ * Services provided to global middleware.
563
+ *
564
+ * @since 1.0.0
565
+ * @category Request types
566
+ */
567
+ export type GlobalProvided =
568
+ | HttpServerRequest.HttpServerRequest
569
+ | Scope.Scope
570
+
539
571
  /**
540
572
  * @since 1.0.0
541
573
  * @category Middleware
@@ -578,7 +610,9 @@ export interface Middleware<
578
610
  readonly layer: [Config["requires"]] extends [never] ? Layer.Layer<
579
611
  Type.From<"Requires", Config["provides"]>,
580
612
  Config["layerError"],
581
- Config["layerRequires"] | Type.From<"Requires", Config["requires"]>
613
+ | Config["layerRequires"]
614
+ | Type.From<"Requires", Config["requires"]>
615
+ | Type.From<"Error", Config["error"]>
582
616
  >
583
617
  : "Need to .combine(middleware) that satisfy the missing request dependencies"
584
618
 
@@ -604,6 +638,11 @@ export interface Middleware<
604
638
  /**
605
639
  * Create a middleware layer that can be used to modify requests and responses.
606
640
  *
641
+ * By default, the middleware only affects the routes that it is provided to.
642
+ *
643
+ * If you want to create a middleware that applies globally to all routes, pass
644
+ * the `global` option as `true`.
645
+ *
607
646
  * ```ts
608
647
  * import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter"
609
648
  * import * as HttpMiddleware from "@effect/platform/HttpMiddleware"
@@ -669,15 +708,23 @@ export const middleware:
669
708
  if (arguments.length === 0) {
670
709
  return makeMiddleware as any
671
710
  }
672
- return makeMiddleware(arguments[0])
711
+ return makeMiddleware(arguments[0], arguments[1]) as any
673
712
  }
674
713
 
675
- const makeMiddleware = (middleware: any) =>
676
- new MiddlewareImpl(
677
- Effect.isEffect(middleware) ?
678
- Layer.scopedContext(Effect.map(middleware, (fn) => Context.unsafeMake(new Map([[fnContextKey, fn]])))) :
679
- Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))) as any
680
- )
714
+ const makeMiddleware = (middleware: any, options?: {
715
+ readonly global?: boolean | undefined
716
+ }) =>
717
+ options?.global ?
718
+ Layer.scopedDiscard(Effect.gen(function*() {
719
+ const router = yield* HttpRouter
720
+ const fn = Effect.isEffect(middleware) ? yield* middleware : middleware
721
+ yield* router.addGlobalMiddleware(fn)
722
+ }))
723
+ : new MiddlewareImpl(
724
+ Effect.isEffect(middleware) ?
725
+ Layer.scopedContext(Effect.map(middleware, (fn) => Context.unsafeMake(new Map([[fnContextKey, fn]])))) :
726
+ Layer.succeedContext(Context.unsafeMake(new Map([[fnContextKey, middleware]]))) as any
727
+ )
681
728
 
682
729
  let middlewareId = 0
683
730
  const fnContextKey = "@effect/platform/HttpLayerRouter/MiddlewareFn"
@@ -773,7 +820,7 @@ export declare namespace middleware {
773
820
  * @category Middleware
774
821
  */
775
822
  export type Make<Provides = never, Handles = never> = {
776
- <E, R, EX, RX>(
823
+ <E, R, EX, RX, const Global extends boolean = false>(
777
824
  middleware: Effect.Effect<
778
825
  (
779
826
  effect: Effect.Effect<
@@ -790,16 +837,30 @@ export declare namespace middleware {
790
837
  & (unhandled extends E ? unknown : "You must only handle the configured errors"),
791
838
  EX,
792
839
  RX
793
- >
794
- ): Middleware<{
795
- provides: Provides
796
- handles: Handles
797
- error: Exclude<E, unhandled>
798
- requires: Exclude<R, Provided>
799
- layerError: EX
800
- layerRequires: Exclude<RX, Scope.Scope>
801
- }>
802
- <E, R>(
840
+ >,
841
+ options?: {
842
+ readonly global?: Global | undefined
843
+ }
844
+ ): Global extends true ? Layer.Layer<
845
+ | Type.From<"Requires", Provides>
846
+ | Type.From<"Error", Handles>
847
+ | Type.From<"GlobalRequires", Provides>
848
+ | Type.From<"GlobalError", Handles>,
849
+ EX,
850
+ | HttpRouter
851
+ | Exclude<RX, Scope.Scope>
852
+ | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>>
853
+ | Type.From<"GlobalError", Exclude<E, unhandled>>
854
+ > :
855
+ Middleware<{
856
+ provides: Provides
857
+ handles: Handles
858
+ error: Exclude<E, unhandled>
859
+ requires: Exclude<R, Provided>
860
+ layerError: EX
861
+ layerRequires: Exclude<RX, Scope.Scope>
862
+ }>
863
+ <E, R, const Global extends boolean = false>(
803
864
  middleware:
804
865
  & ((
805
866
  effect: Effect.Effect<
@@ -812,15 +873,28 @@ export declare namespace middleware {
812
873
  E,
813
874
  R
814
875
  >)
815
- & (unhandled extends E ? unknown : "You must only handle the configured errors")
816
- ): Middleware<{
817
- provides: Provides
818
- handles: Handles
819
- error: Exclude<E, unhandled>
820
- requires: Exclude<R, Provided>
821
- layerError: never
822
- layerRequires: never
823
- }>
876
+ & (unhandled extends E ? unknown : "You must only handle the configured errors"),
877
+ options?: {
878
+ readonly global?: Global | undefined
879
+ }
880
+ ): Global extends true ? Layer.Layer<
881
+ | Type.From<"Requires", Provides>
882
+ | Type.From<"Error", Handles>
883
+ | Type.From<"GlobalRequires", Provides>
884
+ | Type.From<"GlobalError", Handles>,
885
+ never,
886
+ | HttpRouter
887
+ | Type.From<"GlobalRequires", Exclude<R, GlobalProvided>>
888
+ | Type.From<"GlobalError", Exclude<E, unhandled>>
889
+ > :
890
+ Middleware<{
891
+ provides: Provides
892
+ handles: Handles
893
+ error: Exclude<E, unhandled>
894
+ requires: Exclude<R, Provided>
895
+ layerError: never
896
+ layerRequires: never
897
+ }>
824
898
  }
825
899
 
826
900
  /**
@@ -847,7 +921,7 @@ export const cors = (
847
921
  readonly maxAge?: number | undefined
848
922
  readonly credentials?: boolean | undefined
849
923
  } | undefined
850
- ): Layer.Layer<never> => middleware(HttpMiddleware.cors(options)).layer
924
+ ): Layer.Layer<never, never, HttpRouter> => middleware(HttpMiddleware.cors(options), { global: true })
851
925
 
852
926
  /**
853
927
  * A middleware that disables the logger for some routes.
@@ -938,12 +1012,10 @@ export const addHttpApi = <Id extends string, Groups extends HttpApiGroup.HttpAp
938
1012
  never,
939
1013
  HttpRouter | HttpApiGroup.HttpApiGroup.ToService<Id, Groups> | R | HttpApiGroup.HttpApiGroup.ErrorContext<Groups>
940
1014
  > => {
941
- const ApiMiddleware = middleware(HttpApiBuilder.buildMiddleware(api)).layer
942
-
1015
+ const ApiMiddleware = middleware(HttpApiBuilder.buildMiddleware(api)).layer as Layer.Layer<never>
943
1016
  return HttpApiBuilder.Router.unwrap(Effect.fnUntraced(function*(router_) {
944
1017
  const router = yield* HttpRouter
945
1018
  const routes = Arr.empty<Route<any, any>>()
946
-
947
1019
  for (const route of router_.routes) {
948
1020
  routes.push(makeRoute(route as any))
949
1021
  }
@@ -965,7 +1037,7 @@ export const addHttpApi = <Id extends string, Groups extends HttpApiGroup.HttpAp
965
1037
  * @since 1.0.0
966
1038
  * @category Server
967
1039
  */
968
- export const serve = <A, E, R, HE, HR = Type.Only<"Requires", R>>(
1040
+ export const serve = <A, E, R, HE, HR = Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>>(
969
1041
  appLayer: Layer.Layer<A, E, R>,
970
1042
  options?: {
971
1043
  readonly routerConfig?: Partial<FindMyWay.RouterConfig> | undefined
@@ -985,8 +1057,8 @@ export const serve = <A, E, R, HE, HR = Type.Only<"Requires", R>>(
985
1057
  readonly middleware?: (
986
1058
  effect: Effect.Effect<
987
1059
  HttpServerResponse.HttpServerResponse,
988
- Type.Only<"Error", R> | HttpServerError.RouteNotFound,
989
- Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R>
1060
+ Type.Only<"Error", R> | Type.Only<"GlobalError", R> | HttpServerError.RouteNotFound,
1061
+ Scope.Scope | HttpServerRequest.HttpServerRequest | Type.Only<"Requires", R> | Type.Only<"GlobalRequires", R>
990
1062
  >
991
1063
  ) => Effect.Effect<HttpServerResponse.HttpServerResponse, HE, HR>
992
1064
  }