@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.
- package/README.md +141 -49
- package/dist/cjs/helpers.d.ts +83 -63
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +94 -91
- package/dist/cjs/helpers.js.map +1 -1
- package/dist/cjs/middlewares.d.ts +122 -3
- package/dist/cjs/middlewares.d.ts.map +1 -1
- package/dist/cjs/middlewares.js +188 -1
- package/dist/cjs/middlewares.js.map +1 -1
- package/dist/cjs/router.d.ts +3 -2
- package/dist/cjs/router.d.ts.map +1 -1
- package/dist/cjs/router.js +56 -28
- package/dist/cjs/router.js.map +1 -1
- package/dist/cjs/types.d.ts +30 -8
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/upload-stream.d.ts +3 -3
- package/dist/cjs/upload-stream.d.ts.map +1 -1
- package/dist/cjs/upload-stream.js +1 -2
- package/dist/cjs/upload-stream.js.map +1 -1
- package/dist/helpers.d.ts +83 -63
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +94 -91
- package/dist/helpers.js.map +1 -1
- package/dist/middlewares.d.ts +122 -3
- package/dist/middlewares.d.ts.map +1 -1
- package/dist/middlewares.js +188 -1
- package/dist/middlewares.js.map +1 -1
- package/dist/router.d.ts +3 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +56 -28
- package/dist/router.js.map +1 -1
- package/dist/types.d.ts +30 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/upload-stream.d.ts +3 -3
- package/dist/upload-stream.d.ts.map +1 -1
- package/dist/upload-stream.js +1 -2
- package/dist/upload-stream.js.map +1 -1
- package/package.json +9 -6
package/dist/middlewares.d.ts
CHANGED
|
@@ -1,8 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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":"
|
|
1
|
+
{"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../src/middlewares.ts"],"names":[],"mappings":"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"}
|
package/dist/middlewares.js
CHANGED
|
@@ -1,9 +1,125 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.authJWT = exports.authAPIKey = exports.authBasic = exports.cors = exports.limitRate = void 0;
|
|
12
|
+
exports.authJWT = exports.authAPIKey = exports.authBasic = exports.authorize = exports.authenticate = exports.cors = exports.limitRate = exports.parseBody = exports.parseCookie = void 0;
|
|
4
13
|
const helpers_1 = require("./helpers");
|
|
5
14
|
const cache_1 = require("@bepalo/cache");
|
|
6
15
|
const time_1 = require("@bepalo/time");
|
|
16
|
+
/**
|
|
17
|
+
* Creates middleware that parses cookies from the request and adds them to the context.
|
|
18
|
+
* @returns {Function} A middleware function that adds parsed cookies to context.cookie
|
|
19
|
+
* @example
|
|
20
|
+
* const cookieParser = parseCookie();
|
|
21
|
+
* // Use in respondWith: respondWith({}, cookieParser(), ...otherHandlers)
|
|
22
|
+
*/
|
|
23
|
+
const parseCookie = () => {
|
|
24
|
+
return (req, ctx) => {
|
|
25
|
+
var _a;
|
|
26
|
+
const cookie = (_a = (0, helpers_1.parseCookieFromRequest)(req)) !== null && _a !== void 0 ? _a : {};
|
|
27
|
+
ctx.cookie = cookie;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.parseCookie = parseCookie;
|
|
31
|
+
/**
|
|
32
|
+
* Creates middleware that parses the request body based on Content-Type.
|
|
33
|
+
* Supports url-encoded forms, JSON, and plain text.
|
|
34
|
+
* @param {Object} [options] - Configuration options for body parsing
|
|
35
|
+
* @param {SupportedBodyMediaTypes|SupportedBodyMediaTypes[]} [options.accept] - Media types to accept (defaults to all supported)
|
|
36
|
+
* @param {number} [options.maxSize] - Maximum body size in bytes (defaults to 1MB)
|
|
37
|
+
* @param {number} [options.once] - Do not parse if parsed already. checks `ctx.body`
|
|
38
|
+
* @param {number} [options.clone] - Clone request before parsing it. Useful for forwarding.
|
|
39
|
+
* @returns {Function} A middleware function that adds parsed body to context.body
|
|
40
|
+
* @throws {Response} Returns a 415 response if content-type is not accepted
|
|
41
|
+
* @throws {Response} Returns a 413 response if body exceeds maxSize
|
|
42
|
+
* @throws {Response} Returns a 400 response if body is malformed
|
|
43
|
+
*/
|
|
44
|
+
const parseBody = (options) => {
|
|
45
|
+
var _a;
|
|
46
|
+
const accept = (options === null || options === void 0 ? void 0 : options.accept)
|
|
47
|
+
? Array.isArray(options.accept)
|
|
48
|
+
? options.accept
|
|
49
|
+
: [options.accept]
|
|
50
|
+
: [
|
|
51
|
+
"application/x-www-form-urlencoded",
|
|
52
|
+
"application/json",
|
|
53
|
+
"text/plain",
|
|
54
|
+
];
|
|
55
|
+
const maxSize = (_a = options === null || options === void 0 ? void 0 : options.maxSize) !== null && _a !== void 0 ? _a : 1024 * 1024; // Default 1MB
|
|
56
|
+
const once = options === null || options === void 0 ? void 0 : options.once;
|
|
57
|
+
const clone = options === null || options === void 0 ? void 0 : options.clone;
|
|
58
|
+
return (_req, ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
+
var _a, _b, _c, _d;
|
|
60
|
+
if (once && ctx.body)
|
|
61
|
+
return;
|
|
62
|
+
const contentType = (_a = _req.headers.get("content-type")) === null || _a === void 0 ? void 0 : _a.split(";", 2)[0];
|
|
63
|
+
if (!(contentType && accept.includes(contentType))) {
|
|
64
|
+
yield ((_b = _req.body) === null || _b === void 0 ? void 0 : _b.cancel().catch(() => { }));
|
|
65
|
+
return (0, helpers_1.status)(415);
|
|
66
|
+
}
|
|
67
|
+
const req = clone ? _req.clone() : _req;
|
|
68
|
+
try {
|
|
69
|
+
const contentLengthHeader = req.headers.get("content-length");
|
|
70
|
+
const contentLength = contentLengthHeader
|
|
71
|
+
? parseInt(contentLengthHeader)
|
|
72
|
+
: undefined;
|
|
73
|
+
if (contentLength === 0) {
|
|
74
|
+
ctx.body = {};
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (contentLength !== undefined && contentLength > maxSize) {
|
|
78
|
+
yield ((_c = _req.body) === null || _c === void 0 ? void 0 : _c.cancel().catch(() => { }));
|
|
79
|
+
return (0, helpers_1.status)(413);
|
|
80
|
+
}
|
|
81
|
+
switch (contentType) {
|
|
82
|
+
case "application/x-www-form-urlencoded": {
|
|
83
|
+
const body = yield req.formData();
|
|
84
|
+
ctx.body = Object.fromEntries(body.entries());
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case "application/json": {
|
|
88
|
+
const body = yield req.json();
|
|
89
|
+
if (Array.isArray(body)) {
|
|
90
|
+
ctx.body = { values: body };
|
|
91
|
+
}
|
|
92
|
+
else if (body === undefined) {
|
|
93
|
+
ctx.body = {};
|
|
94
|
+
}
|
|
95
|
+
else if (body === null) {
|
|
96
|
+
ctx.body = { value: null };
|
|
97
|
+
}
|
|
98
|
+
else if (typeof body === "object") {
|
|
99
|
+
ctx.body = body;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
ctx.body = { value: body };
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case "text/plain": {
|
|
107
|
+
const text = yield req.text();
|
|
108
|
+
ctx.body = { text };
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
default:
|
|
112
|
+
ctx.body = {};
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
yield ((_d = _req.body) === null || _d === void 0 ? void 0 : _d.cancel().catch(() => { }));
|
|
118
|
+
return (0, helpers_1.status)(400, "Malformed Payload");
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
exports.parseBody = parseBody;
|
|
7
123
|
/**
|
|
8
124
|
* Creates a rate limiting middleware using token bucket algorithm.
|
|
9
125
|
* Supports both fixed interval refill and continuous rate-based refill.
|
|
@@ -127,6 +243,7 @@ exports.limitRate = limitRate;
|
|
|
127
243
|
* @param {boolean} [config.credentials=false] - Allow credentials (cookies, authorization headers)
|
|
128
244
|
* @param {number} [config.maxAge=86400] - Maximum age for preflight cache in seconds
|
|
129
245
|
* @param {boolean} [config.varyOrigin=false] - Add Vary: Origin header for caching
|
|
246
|
+
* @param {boolean} [options.endHere=false] - If true, stops only pipeline flow per handler type after success.
|
|
130
247
|
* @returns {Function} Middleware function that handles CORS headers
|
|
131
248
|
*
|
|
132
249
|
* @example
|
|
@@ -194,6 +311,76 @@ const cors = (config) => {
|
|
|
194
311
|
};
|
|
195
312
|
};
|
|
196
313
|
exports.cors = cors;
|
|
314
|
+
/**
|
|
315
|
+
* Middleware to authenticate a request.
|
|
316
|
+
*
|
|
317
|
+
* @template XContext - Additional context type to merge with CTXAuth.
|
|
318
|
+
* @param {Object} [options] - Configuration options.
|
|
319
|
+
* @param {ParseAuthFn}[options.parseAuth] - Function to extract authentication info from the request.
|
|
320
|
+
* Should return an `Auth` object if valid, `Error` if invalid, or `null/undefined` if missing.
|
|
321
|
+
* @param {boolean} [options.endHere=false] - If true, stops only pipeline flow per handler type after success.
|
|
322
|
+
* @param {boolean} [options.checkOnly=false] - If true, only checks authentication without returning a response.
|
|
323
|
+
*
|
|
324
|
+
* @returns {FreeHandler<Partial<CTXAuth>&XContext>} A handler that sets `ctx.auth` if authentication succeeds,
|
|
325
|
+
* otherwise returns a `401 Unauthorized` or with error message if available response (unless `checkOnly` is true).
|
|
326
|
+
*/
|
|
327
|
+
const authenticate = ({ parseAuth, endHere = false, checkOnly = false, }) => {
|
|
328
|
+
return function (req, ctx) {
|
|
329
|
+
var _a;
|
|
330
|
+
const auth = parseAuth(req, ctx);
|
|
331
|
+
if (!auth) {
|
|
332
|
+
return checkOnly ? false : (0, helpers_1.status)(401);
|
|
333
|
+
}
|
|
334
|
+
else if (auth instanceof Error) {
|
|
335
|
+
return checkOnly ? false : (0, helpers_1.status)(401, (_a = auth.message) !== null && _a !== void 0 ? _a : undefined);
|
|
336
|
+
}
|
|
337
|
+
ctx.auth = auth;
|
|
338
|
+
if (endHere)
|
|
339
|
+
return true;
|
|
340
|
+
};
|
|
341
|
+
};
|
|
342
|
+
exports.authenticate = authenticate;
|
|
343
|
+
/**
|
|
344
|
+
* Middleware to authorize a request based on role or permissions.
|
|
345
|
+
*
|
|
346
|
+
* @template XContext - Additional context type to merge with CTXAuth.
|
|
347
|
+
* @param {Object} [options] - Configuration options.
|
|
348
|
+
* @param {(role: string) => boolean}[options.allowRole] - Function to check if a role is allowed.
|
|
349
|
+
* @param {(role: string) => boolean}[options.forbidRole] - Function to check if a role is forbidden.
|
|
350
|
+
* @param {string[]}[options.forPermissions] - List of permissions required for access.
|
|
351
|
+
* @param {(permission: string,role: string) => boolean|null|undefined}[options.hasPermission] - Function to check if a role has a given permission.
|
|
352
|
+
* Required if `forPermissions` is provided.
|
|
353
|
+
* @param {boolean} [options.endHere=false] - If true, stops only pipeline flow per handler type after success.
|
|
354
|
+
*
|
|
355
|
+
* @returns {FreeHandler<Partial<CTXAuth>&XContext>} A handler that checks `ctx.auth` and enforces role/permission rules.
|
|
356
|
+
* Returns `401 Unauthorized` if no auth is present, or `403 Forbidden` if checks fail.
|
|
357
|
+
* Throws an error if `forPermissions` is set without `hasPermission`.
|
|
358
|
+
*
|
|
359
|
+
*/
|
|
360
|
+
const authorize = ({ allowRole, forbidRole, forPermissions, hasPermission, endHere = false, }) => {
|
|
361
|
+
if (forPermissions && !hasPermission) {
|
|
362
|
+
throw new Error("authorize middleware 'forPermissions' require 'hasPermission'");
|
|
363
|
+
}
|
|
364
|
+
return (req, { auth }) => {
|
|
365
|
+
if (!auth) {
|
|
366
|
+
return (0, helpers_1.status)(401);
|
|
367
|
+
}
|
|
368
|
+
if (allowRole && !allowRole(auth.role)) {
|
|
369
|
+
return (0, helpers_1.status)(403);
|
|
370
|
+
}
|
|
371
|
+
if (forbidRole && forbidRole(auth.role)) {
|
|
372
|
+
return (0, helpers_1.status)(403);
|
|
373
|
+
}
|
|
374
|
+
if (forPermissions && hasPermission) {
|
|
375
|
+
const permitted = forPermissions.some((permission) => hasPermission(permission, auth.role));
|
|
376
|
+
if (!permitted)
|
|
377
|
+
return (0, helpers_1.status)(403);
|
|
378
|
+
}
|
|
379
|
+
if (endHere)
|
|
380
|
+
return true;
|
|
381
|
+
};
|
|
382
|
+
};
|
|
383
|
+
exports.authorize = authorize;
|
|
197
384
|
/**
|
|
198
385
|
* Creates a Basic Authentication middleware.
|
|
199
386
|
* Supports RFC 7617 Basic Authentication scheme.
|
package/dist/middlewares.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../src/middlewares.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../src/middlewares.ts"],"names":[],"mappings":"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"}
|
package/dist/router.d.ts
CHANGED
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
* @author Natnael Eshetu
|
|
5
5
|
* @exports Router
|
|
6
6
|
*/
|
|
7
|
-
import { CTXError } from "./helpers";
|
|
8
7
|
import { Tree } from "./tree";
|
|
9
|
-
import { HttpMethod, MethodPath, Pipeline, HandlerType, HttpPath, Handler, HeaderTuple } from "./types";
|
|
8
|
+
import type { HttpMethod, MethodPath, Pipeline, HandlerType, HttpPath, Handler, HeaderTuple, CTXError } from "./types";
|
|
10
9
|
/**
|
|
11
10
|
* Checks if a string is a valid HTTP method.
|
|
12
11
|
* @param {string} method - The method string to validate
|
|
@@ -321,5 +320,7 @@ export interface SplitURL {
|
|
|
321
320
|
index: number;
|
|
322
321
|
}>;
|
|
323
322
|
}
|
|
323
|
+
export declare const ALL_METHODS: HttpMethod[];
|
|
324
|
+
export declare const CRUD_METHODS: HttpMethod[];
|
|
324
325
|
export default Router;
|
|
325
326
|
//# sourceMappingURL=router.d.ts.map
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/dist/router.js
CHANGED
|
@@ -27,7 +27,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
27
27
|
};
|
|
28
28
|
var _a, _Router_trees, _Router_enable, _Router_defaultHeaders, _Router_defaultCatcher, _Router_defaultFallback, _Router_setters, _Router_ALL_METHOD_PATHS;
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.Router = exports.isValidHttpMethod = void 0;
|
|
30
|
+
exports.CRUD_METHODS = exports.ALL_METHODS = exports.Router = exports.isValidHttpMethod = void 0;
|
|
31
31
|
const tree_1 = require("./tree");
|
|
32
32
|
/**
|
|
33
33
|
* Checks if a string is a valid HTTP method.
|
|
@@ -606,6 +606,22 @@ _Router_ALL_METHOD_PATHS = { value: splitUrl([
|
|
|
606
606
|
"PATCH /.**",
|
|
607
607
|
"DELETE /.**",
|
|
608
608
|
]) };
|
|
609
|
+
exports.ALL_METHODS = [
|
|
610
|
+
"HEAD",
|
|
611
|
+
"OPTIONS",
|
|
612
|
+
"GET",
|
|
613
|
+
"POST",
|
|
614
|
+
"PUT",
|
|
615
|
+
"PATCH",
|
|
616
|
+
"DELETE",
|
|
617
|
+
];
|
|
618
|
+
exports.CRUD_METHODS = [
|
|
619
|
+
"GET",
|
|
620
|
+
"POST",
|
|
621
|
+
"PUT",
|
|
622
|
+
"PATCH",
|
|
623
|
+
"DELETE",
|
|
624
|
+
];
|
|
609
625
|
/**
|
|
610
626
|
* Splits URL patterns into their components for routing.
|
|
611
627
|
* Supports wildcards (*), super-globs (**), and parameters (:param).
|
|
@@ -620,41 +636,53 @@ function splitUrl(urls) {
|
|
|
620
636
|
urls = (Array.isArray(urls) ? urls : [urls]);
|
|
621
637
|
let splitUrls = [];
|
|
622
638
|
for (const mp of urls) {
|
|
623
|
-
const [
|
|
639
|
+
const [_method, pathname] = mp
|
|
624
640
|
.split(" ", 2)
|
|
625
641
|
.map((mu) => mu.trim());
|
|
626
642
|
const params = new Map();
|
|
627
643
|
const nodes = [];
|
|
628
644
|
const pathNodes = pathname.substring(1).split("/");
|
|
629
645
|
const lastPathNode = pathNodes.length > 0 && pathNodes[pathNodes.length - 1];
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
646
|
+
const methods = _method === "ALL"
|
|
647
|
+
? exports.ALL_METHODS
|
|
648
|
+
: _method === "CRUD"
|
|
649
|
+
? exports.CRUD_METHODS
|
|
650
|
+
: [_method];
|
|
651
|
+
for (const method of methods) {
|
|
652
|
+
// check the last path node to match globs '.**'
|
|
653
|
+
if (lastPathNode === ".**") {
|
|
654
|
+
const curNodes = pathNodes.slice(0, pathNodes.length - 1);
|
|
655
|
+
splitUrls.push({ method, pathname, nodes: [...curNodes, ""], params });
|
|
656
|
+
splitUrls.push({
|
|
657
|
+
method,
|
|
658
|
+
pathname,
|
|
659
|
+
nodes: [...curNodes, "**"],
|
|
660
|
+
params,
|
|
661
|
+
});
|
|
662
|
+
}
|
|
663
|
+
else if (lastPathNode === ".*") {
|
|
664
|
+
const curNodes = pathNodes.splice(0, pathNodes.length - 1);
|
|
665
|
+
splitUrls.push({ method, pathname, nodes: [...curNodes, ""], params });
|
|
666
|
+
splitUrls.push({ method, pathname, nodes: [...curNodes, "*"], params });
|
|
667
|
+
}
|
|
668
|
+
else {
|
|
669
|
+
// process the path nodes
|
|
670
|
+
for (let index = 0; index < pathNodes.length; index++) {
|
|
671
|
+
const pathNode = pathNodes[index];
|
|
672
|
+
if (pathNode === ".**" && index < pathNodes.length - 1) {
|
|
673
|
+
throw new Error("Super-Glob not at the end of pathname");
|
|
674
|
+
}
|
|
675
|
+
if (pathNode.startsWith(":")) {
|
|
676
|
+
const name = pathNode.substring(1);
|
|
677
|
+
params.set(index, { name, index });
|
|
678
|
+
nodes.push("*");
|
|
679
|
+
}
|
|
680
|
+
else {
|
|
681
|
+
nodes.push(pathNode);
|
|
682
|
+
}
|
|
655
683
|
}
|
|
684
|
+
splitUrls.push({ method, pathname, nodes, params });
|
|
656
685
|
}
|
|
657
|
-
splitUrls.push({ method, pathname, nodes, params });
|
|
658
686
|
}
|
|
659
687
|
}
|
|
660
688
|
return splitUrls;
|