@bepalo/router 1.2.14 → 1.6.21

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.
@@ -23,9 +23,85 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
23
23
  });
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.respondWithCatcher = exports.respondWith = exports.parseBody = exports.parseCookie = exports.parseCookieFromRequest = exports.clearCookie = exports.setCookie = exports.send = exports.usp = exports.formData = exports.octetStream = exports.blob = exports.json = exports.html = exports.text = exports.forward = exports.redirect = exports.status = void 0;
26
+ exports.respondWithCatcher = exports.respondWith = exports.parseCookieFromRequest = exports.clearCookie = exports.setCookie = exports.send = exports.usp = exports.formData = exports.octetStream = exports.blob = exports.json = exports.html = exports.text = exports.forward = exports.redirect = exports.status = exports.Status = void 0;
27
27
  exports.getHttpStatusText = getHttpStatusText;
28
28
  __exportStar(require("./upload-stream"), exports);
29
+ var Status;
30
+ (function (Status) {
31
+ Status[Status["_100_Continue"] = 100] = "_100_Continue";
32
+ Status[Status["_101_SwitchingProtocols"] = 101] = "_101_SwitchingProtocols";
33
+ Status[Status["_102_Processing"] = 102] = "_102_Processing";
34
+ Status[Status["_103_EarlyHints"] = 103] = "_103_EarlyHints";
35
+ Status[Status["_200_OK"] = 200] = "_200_OK";
36
+ Status[Status["_201_Created"] = 201] = "_201_Created";
37
+ Status[Status["_202_Accepted"] = 202] = "_202_Accepted";
38
+ Status[Status["_203_NonAuthoritativeInformation"] = 203] = "_203_NonAuthoritativeInformation";
39
+ Status[Status["_204_NoContent"] = 204] = "_204_NoContent";
40
+ Status[Status["_205_ResetContent"] = 205] = "_205_ResetContent";
41
+ Status[Status["_206_PartialContent"] = 206] = "_206_PartialContent";
42
+ Status[Status["_207_MultiStatus"] = 207] = "_207_MultiStatus";
43
+ Status[Status["_208_AlreadyReported"] = 208] = "_208_AlreadyReported";
44
+ Status[Status["_226_IMUsed"] = 226] = "_226_IMUsed";
45
+ Status[Status["_300_MultipleChoices"] = 300] = "_300_MultipleChoices";
46
+ Status[Status["_301_MovedPermanently"] = 301] = "_301_MovedPermanently";
47
+ Status[Status["_302_Found"] = 302] = "_302_Found";
48
+ Status[Status["_303_SeeOther"] = 303] = "_303_SeeOther";
49
+ Status[Status["_304_NotModified"] = 304] = "_304_NotModified";
50
+ Status[Status["_305_UseProxy"] = 305] = "_305_UseProxy";
51
+ Status[Status["_307_TemporaryRedirect"] = 307] = "_307_TemporaryRedirect";
52
+ Status[Status["_308_PermanentRedirect"] = 308] = "_308_PermanentRedirect";
53
+ Status[Status["_400_BadRequest"] = 400] = "_400_BadRequest";
54
+ Status[Status["_401_Unauthorized"] = 401] = "_401_Unauthorized";
55
+ Status[Status["_402_PaymentRequired"] = 402] = "_402_PaymentRequired";
56
+ Status[Status["_403_Forbidden"] = 403] = "_403_Forbidden";
57
+ Status[Status["_404_NotFound"] = 404] = "_404_NotFound";
58
+ Status[Status["_405_MethodNotAllowed"] = 405] = "_405_MethodNotAllowed";
59
+ Status[Status["_406_NotAcceptable"] = 406] = "_406_NotAcceptable";
60
+ Status[Status["_407_ProxyAuthenticationRequired"] = 407] = "_407_ProxyAuthenticationRequired";
61
+ Status[Status["_408_RequestTimeout"] = 408] = "_408_RequestTimeout";
62
+ Status[Status["_409_Conflict"] = 409] = "_409_Conflict";
63
+ Status[Status["_410_Gone"] = 410] = "_410_Gone";
64
+ Status[Status["_411_LengthRequired"] = 411] = "_411_LengthRequired";
65
+ Status[Status["_412_PreconditionFailed"] = 412] = "_412_PreconditionFailed";
66
+ Status[Status["_413_PayloadTooLarge"] = 413] = "_413_PayloadTooLarge";
67
+ Status[Status["_414_URITooLong"] = 414] = "_414_URITooLong";
68
+ Status[Status["_415_UnsupportedMediaType"] = 415] = "_415_UnsupportedMediaType";
69
+ Status[Status["_416_RangeNotSatisfiable"] = 416] = "_416_RangeNotSatisfiable";
70
+ Status[Status["_417_ExpectationFailed"] = 417] = "_417_ExpectationFailed";
71
+ Status[Status["_418_IMATeapot"] = 418] = "_418_IMATeapot";
72
+ Status[Status["_421_MisdirectedRequest"] = 421] = "_421_MisdirectedRequest";
73
+ Status[Status["_422_UnprocessableEntity"] = 422] = "_422_UnprocessableEntity";
74
+ Status[Status["_423_Locked"] = 423] = "_423_Locked";
75
+ Status[Status["_424_FailedDependency"] = 424] = "_424_FailedDependency";
76
+ Status[Status["_425_TooEarly"] = 425] = "_425_TooEarly";
77
+ Status[Status["_426_UpgradeRequired"] = 426] = "_426_UpgradeRequired";
78
+ Status[Status["_428_PreconditionRequired"] = 428] = "_428_PreconditionRequired";
79
+ Status[Status["_429_TooManyRequests"] = 429] = "_429_TooManyRequests";
80
+ Status[Status["_431_RequestHeaderFieldsTooLarge"] = 431] = "_431_RequestHeaderFieldsTooLarge";
81
+ Status[Status["_451_UnavailableForLegalReasons"] = 451] = "_451_UnavailableForLegalReasons";
82
+ Status[Status["_500_InternalServerError"] = 500] = "_500_InternalServerError";
83
+ Status[Status["_501_NotImplemented"] = 501] = "_501_NotImplemented";
84
+ Status[Status["_502_BadGateway"] = 502] = "_502_BadGateway";
85
+ Status[Status["_503_ServiceUnavailable"] = 503] = "_503_ServiceUnavailable";
86
+ Status[Status["_504_GatewayTimeout"] = 504] = "_504_GatewayTimeout";
87
+ Status[Status["_505_HTTPVersionNotSupported"] = 505] = "_505_HTTPVersionNotSupported";
88
+ Status[Status["_506_VariantAlsoNegotiates"] = 506] = "_506_VariantAlsoNegotiates";
89
+ Status[Status["_507_InsufficientStorage"] = 507] = "_507_InsufficientStorage";
90
+ Status[Status["_508_LoopDetected"] = 508] = "_508_LoopDetected";
91
+ Status[Status["_510_NotExtended"] = 510] = "_510_NotExtended";
92
+ Status[Status["_511_NetworkAuthenticationRequired"] = 511] = "_511_NetworkAuthenticationRequired";
93
+ Status[Status["_419_PageExpired"] = 419] = "_419_PageExpired";
94
+ Status[Status["_420_EnhanceYourCalm"] = 420] = "_420_EnhanceYourCalm";
95
+ Status[Status["_450_BlockedbyWindowsParentalControls"] = 450] = "_450_BlockedbyWindowsParentalControls";
96
+ Status[Status["_498_InvalidToken"] = 498] = "_498_InvalidToken";
97
+ Status[Status["_499_TokenRequired"] = 499] = "_499_TokenRequired";
98
+ Status[Status["_509_BandwidthLimitExceeded"] = 509] = "_509_BandwidthLimitExceeded";
99
+ Status[Status["_526_InvalidSSLCertificate"] = 526] = "_526_InvalidSSLCertificate";
100
+ Status[Status["_529_Siteisoverloaded"] = 529] = "_529_Siteisoverloaded";
101
+ Status[Status["_530_Siteisfrozen"] = 530] = "_530_Siteisfrozen";
102
+ Status[Status["_598_NetworkReadTimeoutError"] = 598] = "_598_NetworkReadTimeoutError";
103
+ Status[Status["_599_NetworkConnectTimeoutError"] = 599] = "_599_NetworkConnectTimeoutError";
104
+ })(Status || (exports.Status = Status = {}));
29
105
  function getHttpStatusText(code) {
30
106
  switch (code) {
31
107
  // 1xx Informational
@@ -239,8 +315,12 @@ const redirect = (location, init) => {
239
315
  };
240
316
  exports.redirect = redirect;
241
317
  /**
242
- * Forwards the request to another handler internally.
243
- * Does not change the URL or send a redirect to the client.
318
+ * Forwards the request to another route internally.
319
+ * Does not send a redirect to the client but changes the path and method,
320
+ * adds X-Forwarded-[Method|Path] and X-Original-Path headers and calls
321
+ * `(this as Router).respond(newReq, ctx)`.
322
+ * NOTE: parse body only once at the first handler using `parseBody({once: true})`
323
+ * as the body will be consumed at the first parseBody call.
244
324
  * @param {string} path - The new path to forward to
245
325
  * @returns {Response} A Response object with the forwarded request's response
246
326
  */
@@ -248,13 +328,19 @@ const forward = (path, options) => {
248
328
  return function (req, ctx) {
249
329
  return __awaiter(this, void 0, void 0, function* () {
250
330
  var _a;
331
+ const method = (_a = options === null || options === void 0 ? void 0 : options.method) !== null && _a !== void 0 ? _a : req.method;
332
+ const headers = new Headers(req.headers);
333
+ const body = req.body ? yield req.clone().arrayBuffer() : undefined;
251
334
  const url = new URL(req.url);
335
+ const originalPathname = url.pathname;
252
336
  url.pathname = path;
253
- const newReq = new Request(url.toString(), {
254
- method: (_a = options === null || options === void 0 ? void 0 : options.method) !== null && _a !== void 0 ? _a : req.method,
255
- headers: req.headers,
256
- body: req.body ? req.clone().body : undefined,
257
- });
337
+ if (method != req.method)
338
+ headers.set("X-Forwarded-Method", req.method);
339
+ headers.set("X-Forwarded-Path", originalPathname);
340
+ if (!req.headers.has("X-Original-Path")) {
341
+ headers.set("X-Original-Path", originalPathname);
342
+ }
343
+ const newReq = new Request(url.toString(), { method, headers, body });
258
344
  return this.respond(newReq, ctx);
259
345
  });
260
346
  };
@@ -559,89 +645,6 @@ const parseCookieFromRequest = (req) => {
559
645
  return undefined;
560
646
  };
561
647
  exports.parseCookieFromRequest = parseCookieFromRequest;
562
- /**
563
- * Creates middleware that parses cookies from the request and adds them to the context.
564
- * @returns {Function} A middleware function that adds parsed cookies to context.cookie
565
- * @example
566
- * const cookieParser = parseCookie();
567
- * // Use in respondWith: respondWith({}, cookieParser(), ...otherHandlers)
568
- */
569
- const parseCookie = () => {
570
- return (req, ctx) => {
571
- var _a;
572
- const cookie = (_a = (0, exports.parseCookieFromRequest)(req)) !== null && _a !== void 0 ? _a : {};
573
- ctx.cookie = cookie;
574
- };
575
- };
576
- exports.parseCookie = parseCookie;
577
- /**
578
- * Creates middleware that parses the request body based on Content-Type.
579
- * Supports url-encoded forms, JSON, and plain text.
580
- * @param {Object} [options] - Configuration options for body parsing
581
- * @param {SupportedBodyMediaTypes|SupportedBodyMediaTypes[]} [options.accept] - Media types to accept (defaults to all supported)
582
- * @param {number} [options.maxSize] - Maximum body size in bytes (defaults to 1MB)
583
- * @returns {Function} A middleware function that adds parsed body to context.body
584
- * @throws {Response} Returns a 415 response if content-type is not accepted
585
- * @throws {Response} Returns a 413 response if body exceeds maxSize
586
- * @throws {Response} Returns a 400 response if body is malformed
587
- * @example
588
- * const bodyParser = parseBody({ maxSize: 5000 });
589
- * // Use in respondWith: respondWith({}, bodyParser(), ...otherHandlers)
590
- */
591
- const parseBody = (options) => {
592
- var _a;
593
- const accept = (options === null || options === void 0 ? void 0 : options.accept)
594
- ? Array.isArray(options.accept)
595
- ? options.accept
596
- : [options.accept]
597
- : [
598
- "application/x-www-form-urlencoded",
599
- "application/json",
600
- "text/plain",
601
- ];
602
- const maxSize = (_a = options === null || options === void 0 ? void 0 : options.maxSize) !== null && _a !== void 0 ? _a : 1024 * 1024; // Default 1MB
603
- return (req, ctx) => __awaiter(void 0, void 0, void 0, function* () {
604
- var _a, _b, _c, _d;
605
- const contentType = (_a = req.headers.get("content-type")) === null || _a === void 0 ? void 0 : _a.split(";", 2)[0];
606
- if (!(contentType && accept.includes(contentType))) {
607
- yield ((_b = req.body) === null || _b === void 0 ? void 0 : _b.cancel().catch(() => { }));
608
- return (0, exports.status)(415);
609
- }
610
- try {
611
- const contentLengthHeader = req.headers.get("content-length");
612
- if (!contentLengthHeader || parseInt(contentLengthHeader) > maxSize) {
613
- yield ((_c = req.body) === null || _c === void 0 ? void 0 : _c.cancel().catch(() => { }));
614
- return (0, exports.status)(413);
615
- }
616
- switch (contentType) {
617
- case "application/x-www-form-urlencoded": {
618
- const body = yield req.formData();
619
- ctx.body = Object.fromEntries(body.entries());
620
- break;
621
- }
622
- case "application/json": {
623
- const body = yield req.json();
624
- ctx.body =
625
- typeof body === "object" ? body : {};
626
- break;
627
- }
628
- case "text/plain": {
629
- const text = yield req.text();
630
- ctx.body = { text };
631
- break;
632
- }
633
- default:
634
- ctx.body = {};
635
- break;
636
- }
637
- }
638
- catch (_e) {
639
- yield ((_d = req.body) === null || _d === void 0 ? void 0 : _d.cancel().catch(() => { }));
640
- return (0, exports.status)(400, "Malformed Payload");
641
- }
642
- });
643
- };
644
- exports.parseBody = parseBody;
645
648
  /**
646
649
  * Creates a request handler that processes requests through a series of middleware/handlers.
647
650
  * Handlers are executed in order. If a handler returns a Response, that response is returned immediately.
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,64 @@
1
- import { CTXAddress } from "./helpers";
2
- import { RouterContext } from "./router";
3
- import { Handler, HttpMethod } from "./types";
1
+ import type { RouterContext } from "./router";
2
+ import type { FreeHandler, Handler, HttpMethod, CTXAddress } from "./types";
4
3
  import { CacheConfig } from "@bepalo/cache";
5
4
  import { JWT, JwtPayload, JwtVerifyOptions } from "@bepalo/jwt";
5
+ /**
6
+ * Context object containing parsed cookies.
7
+ * @typedef {Object} CTXCookie
8
+ * @property {Record<string, string>} cookie - Parsed cookies from the request
9
+ */
10
+ export type CTXCookie = {
11
+ cookie: Record<string, string>;
12
+ };
13
+ /**
14
+ * Creates middleware that parses cookies from the request and adds them to the context.
15
+ * @returns {Function} A middleware function that adds parsed cookies to context.cookie
16
+ * @example
17
+ * const cookieParser = parseCookie();
18
+ * // Use in respondWith: respondWith({}, cookieParser(), ...otherHandlers)
19
+ */
20
+ export declare const parseCookie: <Context extends CTXCookie>() => FreeHandler<Context>;
21
+ /**
22
+ * Parsed body object types.
23
+ * @typedef {Object} ParsedBody
24
+ */
25
+ export type ParsedBody = {
26
+ value: string | number | boolean | null;
27
+ } | {
28
+ values: unknown[];
29
+ } | Record<string, unknown>;
30
+ /**
31
+ * Context object containing parsed request body.
32
+ * @typedef {Object} CTXBody
33
+ * @property {ParsedBody} body - Parsed request body data
34
+ */
35
+ export type CTXBody = {
36
+ body: ParsedBody;
37
+ };
38
+ /**
39
+ * Supported media types for request body parsing.
40
+ * @typedef {"application/x-www-form-urlencoded"|"application/json"|"text/plain"} SupportedBodyMediaTypes
41
+ */
42
+ export type SupportedBodyMediaTypes = "application/x-www-form-urlencoded" | "application/json" | "text/plain";
43
+ /**
44
+ * Creates middleware that parses the request body based on Content-Type.
45
+ * Supports url-encoded forms, JSON, and plain text.
46
+ * @param {Object} [options] - Configuration options for body parsing
47
+ * @param {SupportedBodyMediaTypes|SupportedBodyMediaTypes[]} [options.accept] - Media types to accept (defaults to all supported)
48
+ * @param {number} [options.maxSize] - Maximum body size in bytes (defaults to 1MB)
49
+ * @param {number} [options.once] - Do not parse if parsed already. checks `ctx.body`
50
+ * @param {number} [options.clone] - Clone request before parsing it. Useful for forwarding.
51
+ * @returns {Function} A middleware function that adds parsed body to context.body
52
+ * @throws {Response} Returns a 415 response if content-type is not accepted
53
+ * @throws {Response} Returns a 413 response if body exceeds maxSize
54
+ * @throws {Response} Returns a 400 response if body is malformed
55
+ */
56
+ export declare const parseBody: <Context extends CTXBody>(options?: {
57
+ accept?: SupportedBodyMediaTypes | SupportedBodyMediaTypes[];
58
+ maxSize?: number;
59
+ once?: boolean;
60
+ clone?: boolean;
61
+ }) => FreeHandler<Context>;
6
62
  /**
7
63
  * Creates a rate limiting middleware using token bucket algorithm.
8
64
  * Supports both fixed interval refill and continuous rate-based refill.
@@ -64,6 +120,7 @@ export declare const limitRate: <XContext = {}, Context extends RouterContext<XC
64
120
  * @param {boolean} [config.credentials=false] - Allow credentials (cookies, authorization headers)
65
121
  * @param {number} [config.maxAge=86400] - Maximum age for preflight cache in seconds
66
122
  * @param {boolean} [config.varyOrigin=false] - Add Vary: Origin header for caching
123
+ * @param {boolean} [options.endHere=false] - If true, stops only pipeline flow per handler type after success.
67
124
  * @returns {Function} Middleware function that handles CORS headers
68
125
  *
69
126
  * @example
@@ -102,6 +159,68 @@ export type CTXBasicAuth<prop extends string = "basicAuth"> = RouterContext<{
102
159
  role: string;
103
160
  } & Record<string, any>;
104
161
  }>;
162
+ /**
163
+ * Represents an authenticated user.
164
+ */
165
+ export interface Auth {
166
+ /** Unique identifier for the user */
167
+ id: string;
168
+ /** Role assigned to the user (e.g., "admin", "user") */
169
+ role: string;
170
+ }
171
+ /**
172
+ * Context extension that includes authentication information.
173
+ */
174
+ export interface CTXAuth {
175
+ /** Authenticated user details */
176
+ auth: Auth;
177
+ }
178
+ /**
179
+ * auth context parser for authenticate middleware
180
+ */
181
+ export type ParseAuthFn<XContext = {}> = (req: Request, ctx: RouterContext<Partial<CTXAuth> & XContext>) => Auth | Error | null | undefined;
182
+ /**
183
+ * Middleware to authenticate a request.
184
+ *
185
+ * @template XContext - Additional context type to merge with CTXAuth.
186
+ * @param {Object} [options] - Configuration options.
187
+ * @param {ParseAuthFn}[options.parseAuth] - Function to extract authentication info from the request.
188
+ * Should return an `Auth` object if valid, `Error` if invalid, or `null/undefined` if missing.
189
+ * @param {boolean} [options.endHere=false] - If true, stops only pipeline flow per handler type after success.
190
+ * @param {boolean} [options.checkOnly=false] - If true, only checks authentication without returning a response.
191
+ *
192
+ * @returns {FreeHandler<Partial<CTXAuth>&XContext>} A handler that sets `ctx.auth` if authentication succeeds,
193
+ * otherwise returns a `401 Unauthorized` or with error message if available response (unless `checkOnly` is true).
194
+ */
195
+ export declare const authenticate: <XContext = {}>({ parseAuth, endHere, checkOnly, }: {
196
+ parseAuth: ParseAuthFn<XContext>;
197
+ endHere?: boolean;
198
+ checkOnly?: boolean;
199
+ }) => FreeHandler<Partial<CTXAuth> & XContext>;
200
+ /**
201
+ * Middleware to authorize a request based on role or permissions.
202
+ *
203
+ * @template XContext - Additional context type to merge with CTXAuth.
204
+ * @param {Object} [options] - Configuration options.
205
+ * @param {(role: string) => boolean}[options.allowRole] - Function to check if a role is allowed.
206
+ * @param {(role: string) => boolean}[options.forbidRole] - Function to check if a role is forbidden.
207
+ * @param {string[]}[options.forPermissions] - List of permissions required for access.
208
+ * @param {(permission: string,role: string) => boolean|null|undefined}[options.hasPermission] - Function to check if a role has a given permission.
209
+ * Required if `forPermissions` is provided.
210
+ * @param {boolean} [options.endHere=false] - If true, stops only pipeline flow per handler type after success.
211
+ *
212
+ * @returns {FreeHandler<Partial<CTXAuth>&XContext>} A handler that checks `ctx.auth` and enforces role/permission rules.
213
+ * Returns `401 Unauthorized` if no auth is present, or `403 Forbidden` if checks fail.
214
+ * Throws an error if `forPermissions` is set without `hasPermission`.
215
+ *
216
+ */
217
+ export declare const authorize: <XContext = {}>({ allowRole, forbidRole, forPermissions, hasPermission, endHere, }: {
218
+ allowRole?: (role: string) => boolean;
219
+ forbidRole?: (role: string) => boolean;
220
+ forPermissions?: string[];
221
+ hasPermission?: (permission: string, role: string) => boolean | null | undefined;
222
+ endHere?: boolean;
223
+ }) => FreeHandler<Partial<CTXAuth> & XContext>;
105
224
  /**
106
225
  * Creates a Basic Authentication middleware.
107
226
  * Supports RFC 7617 Basic Authentication scheme.
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAU,MAAM,WAAW,CAAC;AAC/C,OAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAS,WAAW,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,GAAG,EAAE,EACb,OAAO,SAAS,aAAa,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,aAAa,CAClE,QAAQ,GAAG,UAAU,CACtB,EACD,QAAQ;IACR,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,OAAO,CAAC,OAAO,CAyFlB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,IAAI,GACf,QAAQ,GAAG,EAAE,EACb,OAAO,SAAS,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,EACjE,SAAS;IACT,OAAO,EAAE,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,OAAO,CAAC,OAAO,CA8DlB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,GAAG,WAAW,IAAI,aAAa,CAAC;KACzE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CACxB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,SAAS,YAAY,EAC5B,IAAI,SAAS,MAAM,GAAG,WAAW,EACjC,4DAOC;IACD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACxB,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,OAAO,CAAC,OAAO,CA0BlB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,IAAI,SAAS,MAAM,GAAG,YAAY,IAAI,aAAa,CAAC;KAC3E,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CACxB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,SAAS,aAAa,EAC7B,IAAI,SAAS,MAAM,GAAG,YAAY,EAClC,+BAIC;IACD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACpC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,OAAO,CAAC,OAAO,CASlB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,UAAU,CACpB,OAAO,SAAS,UAAU,CAAC,EAAE,CAAC,EAC9B,IAAI,SAAS,MAAM,GAAG,SAAS,IAC7B,aAAa,CAAC;KACf,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;QACZ,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;KAClB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CACxB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,OAAO,GAClB,OAAO,SAAS,UAAU,CAAC,EAAE,CAAC,EAC9B,OAAO,SAAS,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EACzC,IAAI,SAAS,MAAM,GAAG,SAAS,EAC/B,qDAMC;IACD,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IACzC,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,OAAO,CAAC,OAAO,CAgBlB,CAAC"}
1
+ {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/middlewares.ts"],"names":[],"mappings":"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"}