@based/server 9.2.3 → 9.2.5

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.
@@ -1,4 +1,4 @@
1
- import { PathToken } from "@based/functions";
1
+ import { PathToken } from '@based/functions';
2
2
  /**
3
3
  * Splits the Buffer using "/" (47) in an array of tokens, empty's as ignored.
4
4
  *
@@ -1,4 +1,4 @@
1
- import { NUMBER_ZERO, NUMBER_NINE, LETTER_UPPER_A, LETTER_UPPER_Z, LETTER_LOWER_A, LETTER_LOWER_Z, UNDERSCORE, HYPHEN, DOT, PLUS, ASTERISK, QUESTION_MARK, REQUIRED_MODIFIER, STATIC, COLON, PARAM, INVALID, SLASH, EQUALS_SIGN, AMPERSAND } from "./types.js";
1
+ import { NUMBER_ZERO, NUMBER_NINE, LETTER_UPPER_A, LETTER_UPPER_Z, LETTER_LOWER_A, LETTER_LOWER_Z, UNDERSCORE, HYPHEN, DOT, PLUS, ASTERISK, QUESTION_MARK, REQUIRED_MODIFIER, STATIC, COLON, PARAM, INVALID, SLASH, EQUALS_SIGN, AMPERSAND, } from './types.js';
2
2
  /**
3
3
  * Checks if the byte represents a character for a parameter name.
4
4
  * Valid characters are 0-9 / A-Z / a-z / _ / - / .
@@ -13,6 +13,22 @@ function isValidParamChar(code) {
13
13
  code === HYPHEN ||
14
14
  code === DOT);
15
15
  }
16
+ /**
17
+ * Checks if the byte represents a character from a reserved function.
18
+ * Reserved functions are represented by 'db' or 'based'
19
+ *
20
+ * @param code - The ASCII code of the character.
21
+ */
22
+ function isReservedName(value) {
23
+ return ((value[0] === 0x64 && // 'd'
24
+ value[1] === 0x62) || // 'b'
25
+ (value[0] === 0x62 && // 'b'
26
+ value[1] === 0x61 && // 'a'
27
+ value[2] === 0x73 && // 's'
28
+ value[3] === 0x65 && // 'e'
29
+ value[4] === 0x64) // 'd'
30
+ );
31
+ }
16
32
  /**
17
33
  * Checks if the byte represents a modifier for a parameter name.
18
34
  * Valid modifiers are + / * / ?
@@ -20,9 +36,7 @@ function isValidParamChar(code) {
20
36
  * @param code - The ASCII code of the character.
21
37
  */
22
38
  function isValidParamModifier(code) {
23
- return (code === PLUS ||
24
- code === ASTERISK ||
25
- code === QUESTION_MARK);
39
+ return code === PLUS || code === ASTERISK || code === QUESTION_MARK;
26
40
  }
27
41
  /**
28
42
  * Splits a Buffer using a delimiter (byte) and returns the pieces.
@@ -75,12 +89,12 @@ function parseToken(segment) {
75
89
  }
76
90
  while (i < len) {
77
91
  if (isValidParamChar(segment[i]) ||
78
- (segment[i] === COLON &&
79
- value[0] === 0x64 &&
80
- value[1] === 0x62)) {
92
+ (segment[i] === COLON && isReservedName(value))) {
81
93
  value[j++] = segment[i];
82
94
  }
83
- else if (isValidParamModifier(segment[i]) && type === PARAM && i === len - 1) {
95
+ else if (isValidParamModifier(segment[i]) &&
96
+ type === PARAM &&
97
+ i === len - 1) {
84
98
  modifier = segment[i];
85
99
  }
86
100
  else {
@@ -145,8 +159,7 @@ export function pathMatcher(tokens, path) {
145
159
  }
146
160
  if (i < len && !token) {
147
161
  const previousModifier = tokens[tokenIndex - 1].modifier;
148
- if (previousModifier === ASTERISK ||
149
- previousModifier === PLUS) {
162
+ if (previousModifier === ASTERISK || previousModifier === PLUS) {
150
163
  return true;
151
164
  }
152
165
  if (path[i] === QUESTION_MARK) {
@@ -199,7 +212,7 @@ export function pathMatcher(tokens, path) {
199
212
  */
200
213
  export function pathExtractor(tokens, path) {
201
214
  if (!tokens?.length || path?.byteLength === 0 || path?.[0] !== SLASH) {
202
- return {};
215
+ return null;
203
216
  }
204
217
  let tokenIndex = 0;
205
218
  let i = 1;
@@ -247,7 +260,7 @@ export function pathExtractor(tokens, path) {
247
260
  queryValue = collected;
248
261
  collected = '';
249
262
  }
250
- if (path[i + 1] === AMPERSAND || i === len - 1 && collected) {
263
+ if (path[i + 1] === AMPERSAND || (i === len - 1 && collected)) {
251
264
  i++;
252
265
  extractions[queryValue] = collected;
253
266
  collected = '';
@@ -273,6 +286,7 @@ export function pathExtractor(tokens, path) {
273
286
  isToCollect = false;
274
287
  if (token.type === PARAM) {
275
288
  if (token.modifier === PLUS || token.modifier === ASTERISK) {
289
+ ;
276
290
  extractions[tokenValue].push(collected);
277
291
  }
278
292
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"pathMatcher.js","sourceRoot":"","sources":["../../../src/incoming/http/pathMatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pathMatcher.js","sourceRoot":"","sources":["../../../src/incoming/http/pathMatcher.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ export default (ctx, route) => {
10
10
  if (!url.startsWith(`/${route.name}`)) {
11
11
  url = `/${route.name}${url}`;
12
12
  }
13
- const payload = pathExtractor(route.tokens || [], Buffer.from(url));
14
- if ('token' in payload) {
13
+ const payload = pathExtractor(route.tokens, Buffer.from(url));
14
+ if (payload && 'token' in payload) {
15
15
  ctx.session.authState = parseAuthState(payload.token);
16
16
  if (route.type === 'query') {
17
17
  delete payload.token;
@@ -1 +1 @@
1
- {"version":3,"file":"payloadParser.js","sourceRoot":"","sources":["../../../src/incoming/http/payloadParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,eAAe,CACb,GAAyB,EACzB,KAAyB,EACzB,EAAE;IACF,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAA;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAE9D,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;QACnD,GAAG,IAAI,GAAG,CAAA;IACZ,CAAC;IAED,GAAG,IAAI,KAAK,CAAA;IAEZ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,CAAA;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAEnE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAErD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,KAAK,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"payloadParser.js","sourceRoot":"","sources":["../../../src/incoming/http/payloadParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,eAAe,CAAC,GAAyB,EAAE,KAAyB,EAAE,EAAE;IACtE,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAA;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAE9D,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;QACnD,GAAG,IAAI,GAAG,CAAA;IACZ,CAAC;IAED,GAAG,IAAI,KAAK,CAAA;IAEZ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACtC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,CAAA;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAE7D,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAErD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,KAAK,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -46,7 +46,7 @@ export const sendHttpResponse = (ctx, result, headers, statusCode = '200 OK') =>
46
46
  });
47
47
  return;
48
48
  }
49
- else if (typeof result === 'string' || (result instanceof Buffer)) {
49
+ else if (typeof result === 'string' || result instanceof Buffer) {
50
50
  cType = 'text/plain';
51
51
  parsed = result;
52
52
  // TODO: more check here
@@ -81,12 +81,17 @@ export const sendHttpResponse = (ctx, result, headers, statusCode = '200 OK') =>
81
81
  if (!('Cache-Control' in headers || 'cache-control' in headers)) {
82
82
  ctx.session.res.writeHeader('Cache-Control', 'max-age=0, must-revalidate');
83
83
  }
84
+ if (!('Strict-Transport-Security' in headers ||
85
+ 'strict-transport-security' in headers)) {
86
+ ctx.session.res.writeHeader('Strict-Transport-Security', 'max-age=31536000, includeSubDomains, preload');
87
+ }
84
88
  if (!('Content-Type' in headers || 'content-type' in headers)) {
85
89
  ctx.session.res.writeHeader('Content-Type', cType);
86
90
  }
87
91
  }
88
92
  else {
89
93
  ctx.session.res.writeHeader('Cache-Control', 'max-age=0, must-revalidate');
94
+ ctx.session.res.writeHeader('Strict-Transport-Security', 'max-age=31536000, includeSubDomains, preload');
90
95
  }
91
96
  if (encoding) {
92
97
  ctx.session.res.writeHeader('Content-Encoding', encoding);
@@ -1 +1 @@
1
- {"version":3,"file":"sendHttpResponse.js","sourceRoot":"","sources":["../src/sendHttpResponse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sendHttpResponse.js","sourceRoot":"","sources":["../src/sendHttpResponse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@based/server",
3
- "version": "9.2.3",
3
+ "version": "9.2.5",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "type": "module",
@@ -32,4 +32,4 @@
32
32
  "typescript": "^5.2.2",
33
33
  "rimraf": "^3.0.2"
34
34
  }
35
- }
35
+ }
@@ -1,3 +0,0 @@
1
- import { HttpSession } from '@based/functions';
2
- import { IsAuthorizedHandler } from '../../authorize.js';
3
- export declare const basicFunction: IsAuthorizedHandler<HttpSession>;
@@ -1,75 +0,0 @@
1
- import { sendHttpResponse } from '../../sendHttpResponse.js';
2
- import { BasedErrorCode } from '@based/errors';
3
- import { sendError } from '../../sendError.js';
4
- export const basicFunction = async (route, spec, server, ctx, payload) => {
5
- if (spec.relay) {
6
- const client = server.clients[spec.relay.client];
7
- if (!client) {
8
- sendError(server, ctx, BasedErrorCode.FunctionError, {
9
- err: new Error('Cannot find client ' + spec.relay),
10
- route,
11
- });
12
- return;
13
- }
14
- client
15
- .call(spec.relay.target ?? spec.name, payload)
16
- .then(async (result) => {
17
- if (!ctx.session) {
18
- return;
19
- }
20
- if (spec.httpResponse) {
21
- const send = (responseData, headers, status) => {
22
- if (!ctx.session) {
23
- return;
24
- }
25
- if (!status) {
26
- sendHttpResponse(ctx, responseData, headers);
27
- }
28
- else {
29
- sendHttpResponse(ctx, responseData, headers, typeof status === 'string' ? status : String(status));
30
- }
31
- };
32
- await spec.httpResponse(server.client, payload, result, send, ctx);
33
- return;
34
- }
35
- sendHttpResponse(ctx, result);
36
- })
37
- .catch((err) => {
38
- sendError(server, ctx, BasedErrorCode.FunctionError, {
39
- err,
40
- route,
41
- });
42
- });
43
- return;
44
- }
45
- spec
46
- .fn(server.client, payload, ctx)
47
- .then(async (result) => {
48
- if (!ctx.session) {
49
- return;
50
- }
51
- if (spec.httpResponse) {
52
- const send = (responseData, headers, status) => {
53
- if (!ctx.session) {
54
- return;
55
- }
56
- if (!status) {
57
- sendHttpResponse(ctx, responseData, headers);
58
- }
59
- else {
60
- sendHttpResponse(ctx, responseData, headers, typeof status === 'string' ? status : String(status));
61
- }
62
- };
63
- await spec.httpResponse(server.client, payload, result, send, ctx);
64
- return;
65
- }
66
- sendHttpResponse(ctx, result);
67
- })
68
- .catch((err) => {
69
- sendError(server, ctx, BasedErrorCode.FunctionError, {
70
- err,
71
- route,
72
- });
73
- });
74
- };
75
- //# sourceMappingURL=basicFunction%20copy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"basicFunction copy.js","sourceRoot":"","sources":["../../../src/incoming/http/basicFunction copy.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { HttpSession } from '@based/functions';
2
- import { IsAuthorizedHandler } from '../../authorize.js';
3
- export declare const httpFunction: IsAuthorizedHandler<HttpSession>;
@@ -1,75 +0,0 @@
1
- import { sendHttpResponse } from '../../sendHttpResponse.js';
2
- import { BasedErrorCode } from '@based/errors';
3
- import { sendError } from '../../sendError.js';
4
- export const httpFunction = async (route, spec, server, ctx, payload) => {
5
- if (spec.relay) {
6
- const client = server.clients[spec.relay.client];
7
- if (!client) {
8
- sendError(server, ctx, BasedErrorCode.FunctionError, {
9
- err: new Error('Cannot find client ' + spec.relay),
10
- route,
11
- });
12
- return;
13
- }
14
- client
15
- .call(spec.relay.target ?? spec.name, payload)
16
- .then(async (result) => {
17
- if (!ctx.session) {
18
- return;
19
- }
20
- if (spec.httpResponse) {
21
- const send = (responseData, headers, status) => {
22
- if (!ctx.session) {
23
- return;
24
- }
25
- if (!status) {
26
- sendHttpResponse(ctx, responseData, headers);
27
- }
28
- else {
29
- sendHttpResponse(ctx, responseData, headers, typeof status === 'string' ? status : String(status));
30
- }
31
- };
32
- await spec.httpResponse(server.client, payload, result, send, ctx);
33
- return;
34
- }
35
- sendHttpResponse(ctx, result);
36
- })
37
- .catch((err) => {
38
- sendError(server, ctx, BasedErrorCode.FunctionError, {
39
- err,
40
- route,
41
- });
42
- });
43
- return;
44
- }
45
- spec
46
- .fn(server.client, payload, ctx)
47
- .then(async (result) => {
48
- if (!ctx.session) {
49
- return;
50
- }
51
- if (spec.httpResponse) {
52
- const send = (responseData, headers, status) => {
53
- if (!ctx.session) {
54
- return;
55
- }
56
- if (!status) {
57
- sendHttpResponse(ctx, responseData, headers);
58
- }
59
- else {
60
- sendHttpResponse(ctx, responseData, headers, typeof status === 'string' ? status : String(status));
61
- }
62
- };
63
- await spec.httpResponse(server.client, payload, result, send, ctx);
64
- return;
65
- }
66
- sendHttpResponse(ctx, result);
67
- })
68
- .catch((err) => {
69
- sendError(server, ctx, BasedErrorCode.FunctionError, {
70
- err,
71
- route,
72
- });
73
- });
74
- };
75
- //# sourceMappingURL=function.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/incoming/http/function.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Matches a route with a path, always returning an object with the keys defined in the route.
3
- * If a value isn't found or doesn't pass validation (custom regex), it'll be null.
4
- * For repeatable params with '*', the default value is an empty array.
5
- *
6
- * Rules:
7
- * - Required params: if missing, returns null.
8
- * - Custom regex params: if it doesn't match, returns null.
9
- * - Repeatable params with '+': if missing, returns null; otherwise, returns an array.
10
- * - Repeatable params with '*': if missing, returns an empty array; otherwise, returns an array.
11
- * - Optional params ('?'): if missing, returns null.
12
- * - Malformed parameters: '+' or '*' cannot be combined with '?' in the same parameter, will returns null.
13
- *
14
- * @param route E.g., '/users/:userId(\\d+)?'
15
- * @param path E.g., '/users/123'
16
- * @param sensitive If true, matching is case-sensitive.
17
- * @param strict If true, trailing slashes (and other details) are considered.
18
- * @returns An object with the route keys and their values (never returns null).
19
- */
20
- export declare function parsePath(route: string, path: string, sensitive: boolean, strict: boolean): {
21
- [key: string]: string | string[] | null;
22
- };
@@ -1,126 +0,0 @@
1
- function escapeRegExp(str) {
2
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
3
- }
4
- /**
5
- * Compiles the route into a regex and extracts the parameter keys.
6
- *
7
- * @param route The route string, e.g., '/users/:userId(\\d+)?'
8
- * @param strict If true, matching strictly respects slashes (trailing slash matters).
9
- * @param sensitive If true, matching is case-sensitive.
10
- * @returns An object containing the compiled regex and the array of keys.
11
- */
12
- function compileRoute(route, strict, sensitive) {
13
- const keys = [];
14
- let regexStr = '^';
15
- let lastIndex = 0;
16
- const paramRegex = /:([a-zA-Z0-9_]+)(?:\(([^)]+)\))?([+*?])?/g;
17
- let match;
18
- while ((match = paramRegex.exec(route)) !== null) {
19
- const [full, name, customPattern, modifier] = match;
20
- let staticPart = route.slice(lastIndex, match.index);
21
- if ((modifier === '?' || modifier === '*') && match.index + full.length === route.length && staticPart.endsWith('/')) {
22
- staticPart = staticPart.slice(0, -1);
23
- }
24
- regexStr += escapeRegExp(staticPart);
25
- lastIndex = match.index + full.length;
26
- const pattern = '[^/]+';
27
- keys.push({
28
- name,
29
- modifier: modifier || '',
30
- repeat: modifier === '*' || modifier === '+',
31
- customPattern,
32
- });
33
- let prefix = staticPart.endsWith('/') ? '' : '/';
34
- if ((modifier === '?' || modifier === '*') && match.index + full.length === route.length) {
35
- prefix = '/?';
36
- }
37
- if (modifier === '?') {
38
- regexStr += `(?:${prefix}(${pattern}))?`;
39
- }
40
- else if (modifier === '*') {
41
- regexStr += `(?:${prefix}(${pattern}(?:/${pattern})*))?`;
42
- }
43
- else if (modifier === '+') {
44
- regexStr += `${prefix}(${pattern}(?:/${pattern})*)`;
45
- }
46
- else {
47
- regexStr += `${prefix}(${pattern})`;
48
- }
49
- }
50
- regexStr += escapeRegExp(route.slice(lastIndex));
51
- if (!strict) {
52
- if (!regexStr.endsWith('/')) {
53
- regexStr += '/?';
54
- }
55
- else {
56
- regexStr += '?';
57
- }
58
- }
59
- regexStr += '$';
60
- const flags = sensitive ? '' : 'i';
61
- const regex = new RegExp(regexStr, flags);
62
- return { regex, keys };
63
- }
64
- /**
65
- * Matches a route with a path, always returning an object with the keys defined in the route.
66
- * If a value isn't found or doesn't pass validation (custom regex), it'll be null.
67
- * For repeatable params with '*', the default value is an empty array.
68
- *
69
- * Rules:
70
- * - Required params: if missing, returns null.
71
- * - Custom regex params: if it doesn't match, returns null.
72
- * - Repeatable params with '+': if missing, returns null; otherwise, returns an array.
73
- * - Repeatable params with '*': if missing, returns an empty array; otherwise, returns an array.
74
- * - Optional params ('?'): if missing, returns null.
75
- * - Malformed parameters: '+' or '*' cannot be combined with '?' in the same parameter, will returns null.
76
- *
77
- * @param route E.g., '/users/:userId(\\d+)?'
78
- * @param path E.g., '/users/123'
79
- * @param sensitive If true, matching is case-sensitive.
80
- * @param strict If true, trailing slashes (and other details) are considered.
81
- * @returns An object with the route keys and their values (never returns null).
82
- */
83
- export function parsePath(route, path, sensitive, strict) {
84
- const { regex, keys } = compileRoute(route, strict, sensitive);
85
- const m = regex.exec(path);
86
- const params = {};
87
- for (const key of keys) {
88
- if (key.repeat) {
89
- params[key.name] = key.modifier === '*' ? [] : null;
90
- }
91
- else {
92
- params[key.name] = null;
93
- }
94
- }
95
- if (!m) {
96
- return params;
97
- }
98
- for (let i = 0; i < keys.length; i++) {
99
- const key = keys[i];
100
- let value = m[i + 1];
101
- if (value === undefined) {
102
- continue;
103
- }
104
- if (key.repeat) {
105
- const parts = value.split('/');
106
- if (key.customPattern) {
107
- const customRegex = new RegExp('^' + key.customPattern + '$');
108
- params[key.name] = parts.every(p => customRegex.test(p)) ? parts : null;
109
- }
110
- else {
111
- params[key.name] = parts;
112
- }
113
- }
114
- else {
115
- if (key.customPattern) {
116
- const customRegex = new RegExp('^' + key.customPattern + '$');
117
- params[key.name] = customRegex.test(value) ? value : null;
118
- }
119
- else {
120
- params[key.name] = value;
121
- }
122
- }
123
- }
124
- return params;
125
- }
126
- //# sourceMappingURL=parsePath.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsePath.js","sourceRoot":"","sources":["../../../src/incoming/http/parsePath.ts"],"names":[],"mappings":"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"}