alado 3.7.0 → 3.7.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.
Files changed (54) hide show
  1. package/README.md +16 -3
  2. package/dist/decorators/http.js +4 -3
  3. package/dist/decorators/http.js.map +1 -1
  4. package/dist/decorators/initialize-application.js +2 -1
  5. package/dist/decorators/initialize-application.js.map +1 -1
  6. package/dist/dto/alado-configuration-error.d.ts +9 -0
  7. package/dist/dto/alado-configuration-error.js +17 -0
  8. package/dist/dto/alado-configuration-error.js.map +1 -0
  9. package/dist/dto/index.d.ts +1 -0
  10. package/dist/dto/index.js +1 -0
  11. package/dist/dto/index.js.map +1 -1
  12. package/dist/helpers/parser/access-control-checker.js +37 -0
  13. package/dist/helpers/parser/access-control-checker.js.map +1 -1
  14. package/dist/helpers/parser/authenticate.d.ts +7 -1
  15. package/dist/helpers/parser/authenticate.js +17 -27
  16. package/dist/helpers/parser/authenticate.js.map +1 -1
  17. package/dist/helpers/parser/body-parser.js +14 -6
  18. package/dist/helpers/parser/body-parser.js.map +1 -1
  19. package/dist/helpers/parser/xml-parser.js +12 -0
  20. package/dist/helpers/parser/xml-parser.js.map +1 -1
  21. package/dist/helpers/service/index.d.ts +1 -0
  22. package/dist/helpers/service/index.js +1 -0
  23. package/dist/helpers/service/index.js.map +1 -1
  24. package/dist/helpers/service/open-api-paths.d.ts +11 -0
  25. package/dist/helpers/service/open-api-paths.js +49 -0
  26. package/dist/helpers/service/open-api-paths.js.map +1 -0
  27. package/dist/helpers/validate/built-in/index.d.ts +1 -0
  28. package/dist/helpers/validate/built-in/index.js +15 -0
  29. package/dist/helpers/validate/built-in/index.js.map +1 -1
  30. package/dist/helpers/validate/built-in/numeric-input.d.ts +17 -0
  31. package/dist/helpers/validate/built-in/numeric-input.js +74 -0
  32. package/dist/helpers/validate/built-in/numeric-input.js.map +1 -0
  33. package/dist/helpers/validate/built-in/validator.d.ts +3 -0
  34. package/dist/helpers/validate/built-in/validator.js +25 -9
  35. package/dist/helpers/validate/built-in/validator.js.map +1 -1
  36. package/dist/helpers/validate/context/index.d.ts +1 -0
  37. package/dist/helpers/validate/context/index.js +1 -0
  38. package/dist/helpers/validate/context/index.js.map +1 -1
  39. package/dist/helpers/validate/context/request-input.d.ts +20 -0
  40. package/dist/helpers/validate/context/request-input.js +68 -0
  41. package/dist/helpers/validate/context/request-input.js.map +1 -0
  42. package/dist/helpers/validate/context/validate-request-part.js +14 -12
  43. package/dist/helpers/validate/context/validate-request-part.js.map +1 -1
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.js +3 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/options/alado-server-options.d.ts +2 -2
  48. package/dist/request-processor/request-processor.d.ts +1 -0
  49. package/dist/request-processor/request-processor.js +13 -22
  50. package/dist/request-processor/request-processor.js.map +1 -1
  51. package/dist/router/router.d.ts +7 -0
  52. package/dist/router/router.js +31 -3
  53. package/dist/router/router.js.map +1 -1
  54. package/package.json +1 -1
package/README.md CHANGED
@@ -218,6 +218,8 @@ import { get, query, post, put, patch, del, head } from 'alado';
218
218
  | `@del(path, options?)` | DELETE |
219
219
  | `@head(path, options?)` | HEAD |
220
220
 
221
+ Routes are registered in declaration order. Registering a second route with the same method and path (also when only the parameter names differ, e.g. `/users/:id` and `/users/:userId`) throws an `AladoConfigurationError` with `code: 'ROUTE_ALREADY_REGISTERED'` at startup, since the second one could never be reached.
222
+
221
223
  **Options:**
222
224
 
223
225
  ```ts
@@ -491,6 +493,7 @@ validate.custom(fn); // starts with a custom rule
491
493
  | ----------- | -------------------------------------------- |
492
494
  | `string()` | Must be a string |
493
495
  | `number()` | Must be a number (not NaN) |
496
+ | `bigint()` | Must be a bigint |
494
497
  | `boolean()` | Must be a boolean |
495
498
  | `array()` | Must be an array |
496
499
  | `object()` | Must be a plain object (not array, not null) |
@@ -517,6 +520,10 @@ validate.custom(fn); // starts with a custom rule
517
520
  | `positive()` | Must be `> 0` |
518
521
  | `negative()` | Must be `< 0` |
519
522
 
523
+ `min`, `max`, `integer`, `positive` and `negative` accept bigints as well.
524
+
525
+ Query and path values always arrive as strings. When a query or path field is validated by a validator built from `validate.number()` or `validate.bigint()`, the string is converted before validation, and the handler gets the converted value. Accepted: decimal numbers with sign, fraction and exponent (`-1.5e3`), `0x` / `0o` / `0b` integers, digit separators (`1_000`), and for `bigint()` an optional `n` suffix (`123n`). Anything else (padded or empty text, `Infinity`, `NaN`, out-of-range values, integers past `Number.MAX_SAFE_INTEGER` for `number()`) stays a string and fails validation. Note that `JSON.stringify` cannot serialise a bigint: convert it before putting it in a response body.
526
+
520
527
  **Generic**
521
528
 
522
529
  | Method | Description |
@@ -949,11 +956,13 @@ The `inputProperty` supports dot-notation and can point to any part of the reque
949
956
 
950
957
  The resolved value from `handler` is set at `outputProperty` on the request object, making it available as `req.auth.user` in your handler.
951
958
 
952
- The value at `inputProperty` is checked before `handler` runs (the rest of the request is validated only after authentication). If the route declares a validator for that field (for example `body.token` in the request DTO), that validator decides; otherwise only a string is accepted. Anything else, such as an object from a JSON body or an array from a repeated query key, gets the configured `error` and `handler` is not called.
959
+ `handler` should return `null`/`undefined` for credentials it does not accept. A thrown error is treated as a failure of the handler: the client gets `error` (or, with `required: false`, the request goes on anonymously) and the error is always logged.
960
+
961
+ The value at `inputProperty` is checked before `handler` runs (the rest of the request is validated only after authentication). If the route declares a validator for that field (for example `body.token` in the request DTO), that validator decides, and it runs only this once for the request (request validation reuses the result); otherwise only a string is accepted. The handler gets the value as sent: query and path values stay strings even when a `number()` validator converts them for `req.query` / `req.path`. Anything else, such as an object from a JSON body or an array from a repeated query key, gets the configured `error` and `handler` is not called.
953
962
 
954
963
  When `inputProperty` reads a header, a query parameter or a path parameter, the request body is read only after authentication (and after access control, unless a rule reads `body.*`). A refused request never has its body parsed, and its connection is closed after the error response.
955
964
 
956
- **Optional auth** — set `required: false` for soft checking (handler runs but failure doesn't block the request):
965
+ **Optional auth** — set `required: false` for soft checking: missing or invalid credentials, or a `handler` that throws, leave the request anonymous instead of refusing it:
957
966
 
958
967
  ```ts
959
968
  export const optionalAuth: RequestAuthentication = {
@@ -1025,6 +1034,8 @@ Either provide `compareWithProperty` to compare two request values, or `expected
1025
1034
 
1026
1035
  With `compareWithProperty`, access is denied when either value is missing (`undefined` or `null`), before or after `transformInputProperty`: two missing values never count as a match.
1027
1036
 
1037
+ Rules run before request validation, so an `inputProperty` that reads the request itself (`headers.*`, `query.*`, `path.*`, `body.*`) is checked first, as the auth input is. A field with a declared validator (for example `ownerId` in the body DTO for `body.ownerId`) is checked by that validator, once for the request. Any other request value must be a string, number, boolean or bigint. An object or an array, such as `{ "$ne": null }` from a JSON body, denies access with the rule's `statusCode` and `message`, before `transformInputProperty` or `accessControlHandler` see it. Values the application set, such as `auth.*`, are not checked.
1038
+
1028
1039
  ### Usage Example
1029
1040
 
1030
1041
  ```typescript
@@ -1144,7 +1155,9 @@ When a request arrives with a `Content-Type` of `text/xml` or `application/xml`,
1144
1155
  - **Repeated sibling tags collapse into an array.** `<item>a</item><item>b</item>` becomes `item: ['a', 'b']` rather than overwriting the key.
1145
1156
  - **Leaf elements become plain strings.** `<name>Daniel</name>` becomes `name: 'Daniel'` — no wrapper object, no type coercion (numeric-looking text like `"10000.00"` is kept exactly as written, since silently converting it to a JS number would lose precision on monetary values).
1146
1157
  - **Attributes are namespaced under `@attrs`.** An element like `<amount currency="USD">100</amount>` becomes `{ '@attrs': { currency: 'USD' }, '#text': '100' }`, keeping attribute data separate from element data and text content.
1158
+ - **Text next to child elements is kept under `#text`.** `<p>Total: <b>5</b> EUR</p>` becomes `p: { b: '5', '#text': 'Total: EUR', '@ns': null }` (the text pieces, joined). Whitespace used only for indentation is dropped.
1147
1159
  - **CDATA sections are unwrapped automatically**, and their contents treated as plain text.
1160
+ - **One root element.** Text before it, or anything after it other than whitespace and comments, gets `400 Invalid XML body`.
1148
1161
  - **Namespaces resolve to local names.** For SOAP envelopes or ISO 20022 style payment messages, elements are keyed by their local name regardless of which prefix the sender used (`soapenv:Body` and `soap:Body` parse identically if they share a namespace). Each element also carries an `@ns` field with its resolved namespace URI, so elements sharing a local name across different namespaces stay distinguishable.
1149
1162
 
1150
1163
  Because the contract is identical to JSON, everything documented under [`defineRequest`](#definerequest) and [DTOs](#dtos) — `@validateProperty`, `@documentProperty`, `@transformProperty`, auto-generated OpenAPI schemas applies to XML bodies without any extra setup.
@@ -1175,7 +1188,7 @@ const app = initializeApplication({
1175
1188
 
1176
1189
  Open `http://localhost:3000/` to view the Swagger UI.
1177
1190
 
1178
- The OpenAPI document is served at `/swagger.json`. Swagger UI's own files are served only under `route` (for example `/docs/swagger-ui.css` when `route` is `/docs`), so they never take over paths of your API. Only web assets from `swagger-ui-dist` are served (no `package.json`, `README` or license files).
1191
+ The OpenAPI document is served under `route` as well: `/docs/swagger.json` when `route` is `/docs` (`/swagger.json` only when `route` is `/`). Swagger UI's own files are served only under `route` too (for example `/docs/swagger-ui.css`), so the docs never take over paths of your API. Registering a `GET` route on a path the docs answer (the docs page, `swagger.json`, a Swagger UI file) throws an `AladoConfigurationError` with `code: 'ROUTE_RESERVED_FOR_OPEN_API'`. The docs are public: if they should not be, leave `openApiDoc` disabled in production or keep the docs route behind your proxy's access control. Only web assets from `swagger-ui-dist` are served (no `package.json`, `README` or license files).
1179
1192
 
1180
1193
  Documentation is built from:
1181
1194
 
@@ -44,14 +44,15 @@ function callHttpMethod(httpMethod, path, options = {}) {
44
44
  };
45
45
  if (app) {
46
46
  (0, registered_members_1.markRegistered)(key);
47
- fn(app);
47
+ // routes still waiting were declared before this one: register them first, in their order
48
48
  const shadowApp = _injector_1.injector.injected.shadowAppMapping[appId];
49
49
  if (Array.isArray(shadowApp) && shadowApp.length) {
50
50
  while (shadowApp.length) {
51
- const fn = shadowApp.pop();
52
- fn(app);
51
+ const pending = shadowApp.shift();
52
+ pending(app);
53
53
  }
54
54
  }
55
+ fn(app);
55
56
  }
56
57
  else {
57
58
  _injector_1.injector.injected.shadowAppMapping[appId] = _injector_1.injector.injected.shadowAppMapping[appId] || [];
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/decorators/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/decorators/http.ts"],"names":[],"mappings":"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"}
@@ -32,8 +32,9 @@ function initializeApplication(initializeApplicationOptions) {
32
32
  }
33
33
  const shadowApp = _injector_1.injector.injected.shadowAppMapping[serverOptions.appId || _const_1.DEFAULT_ID];
34
34
  if (Array.isArray(shadowApp) && shadowApp.length) {
35
+ // in declaration order: it decides the order of the OpenAPI document and of conflict errors
35
36
  while (shadowApp.length) {
36
- const fn = shadowApp.pop();
37
+ const fn = shadowApp.shift();
37
38
  fn(app);
38
39
  }
39
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initialize-application.js","sourceRoot":"","sources":["../../src/decorators/initialize-application.ts"],"names":[],"mappings":";;AAQA,sDA+BC;AAtCD,yCAAqC;AACrC,mCAAoC;AACpC,mCAAqC;AACrC,+DAA2D;AAC3D,iEAA6D;AAC7D,qCAA6D;AAE7D,SAAgB,qBAAqB,CAAC,4BAA0D;IAC9F,IAAA,wCAAkB,GAAE,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,4BAA4B,CAAC;IACpE,oBAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,mBAAU,CAAC;QAC7D,oBAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,mBAAU,CAAC,IAAI,IAAI,oBAAW,CAAC,aAAa,CAAC,CAAC;IACpG,MAAM,GAAG,GAAgB,oBAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,mBAAU,CAAC,CAAC;IACzF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAA,4CAAkC,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAoB,CAAC;QACzB,IAAI,OAAO,GAAU,EAAE,CAAC;QACxB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,UAAU,GAAG,IAAgB,CAAC;gBAC9B,MAAM;YACR,KAAK,SAAS;gBACZ,UAAU,GAAI,IAAyC,CAAC,UAAU,CAAC;gBACnE,OAAO,GAAI,IAAyC,CAAC,OAAO,CAAC;gBAC7D,MAAM;QACV,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,0CAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,oBAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,IAAI,mBAAU,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;YAC3B,EAAE,CAAC,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"initialize-application.js","sourceRoot":"","sources":["../../src/decorators/initialize-application.ts"],"names":[],"mappings":";;AAQA,sDAgCC;AAvCD,yCAAqC;AACrC,mCAAoC;AACpC,mCAAqC;AACrC,+DAA2D;AAC3D,iEAA6D;AAC7D,qCAA6D;AAE7D,SAAgB,qBAAqB,CAAC,4BAA0D;IAC9F,IAAA,wCAAkB,GAAE,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,4BAA4B,CAAC;IACpE,oBAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,mBAAU,CAAC;QAC7D,oBAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,mBAAU,CAAC,IAAI,IAAI,oBAAW,CAAC,aAAa,CAAC,CAAC;IACpG,MAAM,GAAG,GAAgB,oBAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,mBAAU,CAAC,CAAC;IACzF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAA,4CAAkC,EAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAoB,CAAC;QACzB,IAAI,OAAO,GAAU,EAAE,CAAC;QACxB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,UAAU,GAAG,IAAgB,CAAC;gBAC9B,MAAM;YACR,KAAK,SAAS;gBACZ,UAAU,GAAI,IAAyC,CAAC,UAAU,CAAC;gBACnE,OAAO,GAAI,IAAyC,CAAC,OAAO,CAAC;gBAC7D,MAAM;QACV,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,0CAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,oBAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,IAAI,mBAAU,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACjD,4FAA4F;QAC5F,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YAC7B,EAAE,CAAC,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type AladoConfigurationErrorCode = 'ROUTE_ALREADY_REGISTERED' | 'ROUTE_RESERVED_FOR_OPEN_API';
2
+ /**
3
+ * Thrown while the application is being set up (never for a request): the configuration cannot
4
+ * work as written. `code` tells the cases apart without matching the message.
5
+ */
6
+ export declare class AladoConfigurationError extends Error {
7
+ readonly code: AladoConfigurationErrorCode;
8
+ constructor(code: AladoConfigurationErrorCode, message: string);
9
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AladoConfigurationError = void 0;
4
+ /**
5
+ * Thrown while the application is being set up (never for a request): the configuration cannot
6
+ * work as written. `code` tells the cases apart without matching the message.
7
+ */
8
+ class AladoConfigurationError extends Error {
9
+ code;
10
+ constructor(code, message) {
11
+ super(message);
12
+ this.name = 'AladoConfigurationError';
13
+ this.code = code;
14
+ }
15
+ }
16
+ exports.AladoConfigurationError = AladoConfigurationError;
17
+ //# sourceMappingURL=alado-configuration-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alado-configuration-error.js","sourceRoot":"","sources":["../../src/dto/alado-configuration-error.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,uBAAwB,SAAQ,KAAK;IAChC,IAAI,CAA8B;IAElD,YAAY,IAAiC,EAAE,OAAe;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AARD,0DAQC"}
@@ -8,3 +8,4 @@ export * from './access-control-config';
8
8
  export * from './request-authentication';
9
9
  export * from './route';
10
10
  export * from './open-api-doc-object';
11
+ export * from './alado-configuration-error';
package/dist/dto/index.js CHANGED
@@ -24,4 +24,5 @@ __exportStar(require("./access-control-config"), exports);
24
24
  __exportStar(require("./request-authentication"), exports);
25
25
  __exportStar(require("./route"), exports);
26
26
  __exportStar(require("./open-api-doc-object"), exports);
27
+ __exportStar(require("./alado-configuration-error"), exports);
27
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,uDAAqC;AACrC,wDAAsC;AACtC,4CAA0B;AAC1B,6CAA2B;AAC3B,wDAAsC;AACtC,0DAAwC;AACxC,2DAAyC;AACzC,0CAAwB;AACxB,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,uDAAqC;AACrC,wDAAsC;AACtC,4CAA0B;AAC1B,6CAA2B;AAC3B,wDAAsC;AACtC,0DAAwC;AACxC,2DAAyC;AACzC,0CAAwB;AACxB,wDAAsC;AACtC,8DAA4C"}
@@ -2,13 +2,50 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.accessControlChecker = accessControlChecker;
4
4
  const accessor_1 = require("../accessor");
5
+ const request_input_1 = require("../validate/context/request-input");
5
6
  const isMissing = (value) => value === undefined || value === null;
7
+ // request parts a client writes; anything else (auth.*) is set by the application
8
+ const clientParts = new Set([
9
+ 'headers',
10
+ 'query',
11
+ 'path',
12
+ 'body',
13
+ ]);
14
+ /**
15
+ * A rule reads its input before request validation runs, so a value from the request itself is
16
+ * checked first, as the auth input is: a JSON body could otherwise hand an object such as
17
+ * {"$ne": null} (a NoSQL operator) to transformInputProperty or accessControlHandler. A field with
18
+ * a declared validator (`body.ownerId` with `ownerId` in the body DTO) is checked by it, once; any
19
+ * other request value has to be a plain string, number, boolean or bigint. Missing values are left
20
+ * to the rule (a comparison with a missing value already denies access).
21
+ */
22
+ async function isValidRuleInput(context, request, path, value) {
23
+ const segments = path.split('.');
24
+ if (!clientParts.has(segments[0]) || isMissing(value)) {
25
+ return true;
26
+ }
27
+ if (segments.length === 2) {
28
+ const declared = await (0, request_input_1.checkDeclaredInput)(request, context.request, segments[0], segments[1], value);
29
+ if (declared !== undefined) {
30
+ return declared;
31
+ }
32
+ }
33
+ return [
34
+ 'string',
35
+ 'number',
36
+ 'boolean',
37
+ 'bigint',
38
+ ].includes(typeof value);
39
+ }
6
40
  async function accessControlChecker(context, request) {
7
41
  const { accessControl } = context;
8
42
  let success = true;
9
43
  for (const item of accessControl) {
10
44
  const { inputProperty, transformInputProperty, statusCode, message, compareWithProperty, expectedValue, accessControlHandler, } = item;
11
45
  const rawValue = (0, accessor_1.getProperty)(request, inputProperty);
46
+ if (!(await isValidRuleInput(context, request, inputProperty, rawValue))) {
47
+ return { statusCode, message };
48
+ }
12
49
  let providedValue = rawValue;
13
50
  if (typeof transformInputProperty === 'function') {
14
51
  providedValue = await transformInputProperty(providedValue);
@@ -1 +1 @@
1
- {"version":3,"file":"access-control-checker.js","sourceRoot":"","sources":["../../../src/helpers/parser/access-control-checker.ts"],"names":[],"mappings":";;AAKA,oDAoDC;AAxDD,0CAA0C;AAE1C,MAAM,SAAS,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAE9E,KAAK,UAAU,oBAAoB,CAAC,OAAqB,EAAE,OAAY;IAC5E,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAClC,IAAI,OAAO,GAAY,IAAI,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,EACJ,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GACrB,GAAG,IAAI,CAAC;QAET,MAAM,QAAQ,GAAY,IAAA,sBAAW,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9D,IAAI,aAAa,GAAY,QAAQ,CAAC;QAEtC,IAAI,OAAO,sBAAsB,KAAK,UAAU,EAAE,CAAC;YACjD,aAAa,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,GAAG,aAAa,KAAK,aAAa,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,gBAAgB,GAAY,IAAA,sBAAW,EAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAC5E,sFAAsF;YACtF,qFAAqF;YACrF,OAAO;gBACL,CAAC,SAAS,CAAC,QAAQ,CAAC;oBACpB,CAAC,SAAS,CAAC,aAAa,CAAC;oBACzB,CAAC,SAAS,CAAC,gBAAgB,CAAC;oBAC5B,gBAAgB,KAAK,aAAa,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,oBAAoB,KAAK,UAAU,EAAE,CAAC;YAC/C,OAAO,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"access-control-checker.js","sourceRoot":"","sources":["../../../src/helpers/parser/access-control-checker.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,8 @@
1
1
  import { Context } from '../../dto/index.js';
2
- export declare function authenticate(context: Context<any>, request: any): Promise<any>;
2
+ /**
3
+ * Runs the auth handler. With `required: false` a request is never refused here: credentials that
4
+ * are missing, invalid or make the handler throw leave it anonymous (nothing at outputProperty).
5
+ * A handler is expected to return null/undefined for credentials it does not accept; an exception
6
+ * is a failure of the handler and goes to `onHandlerError` (the client only ever gets `error`).
7
+ */
8
+ export declare function authenticate(context: Context<any>, request: any, onHandlerError?: (error: unknown) => void): Promise<any>;
@@ -2,46 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.authenticate = authenticate;
4
4
  const accessor_1 = require("../accessor");
5
- const json_parser_1 = require("./json-parser");
5
+ const request_input_1 = require("../validate/context/request-input");
6
6
  /**
7
7
  * The auth input is checked before the handler sees it: validation of the rest of the request runs
8
8
  * only after authentication, so without this a JSON body or a repeated query key could hand the
9
9
  * handler an object or an array (e.g. {"$ne": null}, a NoSQL operator) instead of a token.
10
- * With a validator declared for the field (context.request.<part>.<name>) that validator decides;
11
- * without one, only a string is accepted.
10
+ * With a validator declared for the field (context.request.<part>.<name>) that validator decides,
11
+ * once: request validation reuses its result. Without one, only a string is accepted.
12
12
  */
13
13
  async function isValidAuthInput(context, request, value) {
14
14
  const [part, name,] = context.auth.inputProperty.split('.');
15
- const definition = context.request?.[part]?.[name];
16
- const handler = definition?.validation?.handler;
17
- if (typeof handler !== 'function') {
18
- return typeof value === 'string';
19
- }
20
- let input = value;
21
- if (definition?.isJSON && typeof value === 'string') {
22
- try {
23
- input = (0, json_parser_1.parseJson)(value);
24
- }
25
- catch {
26
- // the validator gets the raw string, as in request validation
27
- }
28
- }
29
- try {
30
- return Boolean(await handler.apply(request, [input]));
31
- }
32
- catch {
33
- return false;
34
- }
15
+ const declared = await (0, request_input_1.checkDeclaredInput)(request, context.request, part, name, value);
16
+ return declared === undefined ? typeof value === 'string' : declared;
35
17
  }
36
- async function authenticate(context, request) {
18
+ /**
19
+ * Runs the auth handler. With `required: false` a request is never refused here: credentials that
20
+ * are missing, invalid or make the handler throw leave it anonymous (nothing at outputProperty).
21
+ * A handler is expected to return null/undefined for credentials it does not accept; an exception
22
+ * is a failure of the handler and goes to `onHandlerError` (the client only ever gets `error`).
23
+ */
24
+ async function authenticate(context, request, onHandlerError) {
37
25
  const { auth } = context;
38
26
  const { required, handler, handlerContext, inputProperty, outputProperty, error } = auth;
27
+ const refuse = required ? error : undefined;
39
28
  const authData = (0, accessor_1.getProperty)(request, inputProperty);
40
29
  if (required && !authData) {
41
30
  return error;
42
31
  }
43
32
  if (authData !== undefined && authData !== null && !(await isValidAuthInput(context, request, authData))) {
44
- return error;
33
+ return refuse;
45
34
  }
46
35
  try {
47
36
  const result = await handler.apply(handlerContext || {}, [authData]);
@@ -50,9 +39,10 @@ async function authenticate(context, request) {
50
39
  }
51
40
  (0, accessor_1.setProperty)(request, outputProperty, result);
52
41
  }
53
- catch {
42
+ catch (e) {
43
+ onHandlerError?.(e);
54
44
  // the configured error, never the exception text (it may describe internals)
55
- return error;
45
+ return refuse;
56
46
  }
57
47
  }
58
48
  //# sourceMappingURL=authenticate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/helpers/parser/authenticate.ts"],"names":[],"mappings":";;AAoCA,oCAqBC;AAxDD,0CAAuD;AACvD,+CAA0C;AAE1C;;;;;;GAMG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAAqB,EAAE,OAAY,EAAE,KAAc;IACjF,MAAM,CACJ,IAAI,EACJ,IAAI,EACL,GAAI,OAAO,CAAC,IAA8B,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,UAAU,GAAoC,OAAO,CAAC,OAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;IAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,GAAY,KAAK,CAAC;IAC3B,IAAI,UAAU,EAAE,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,OAAqB,EAAE,OAAY;IACpE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAA6B,CAAC;IAElH,MAAM,QAAQ,GAAQ,IAAA,sBAAW,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACzG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAA,sBAAW,EAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,6EAA6E;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/helpers/parser/authenticate.ts"],"names":[],"mappings":";;AA0BA,oCA2BC;AApDD,0CAAuD;AACvD,qEAAuE;AAEvE;;;;;;GAMG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAAqB,EAAE,OAAY,EAAE,KAAc;IACjF,MAAM,CACJ,IAAI,EACJ,IAAI,EACL,GAAI,OAAO,CAAC,IAA8B,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAwB,MAAM,IAAA,kCAAkB,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5G,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAChC,OAAqB,EACrB,OAAY,EACZ,cAAyC;IAEzC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAA6B,CAAC;IAClH,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5C,MAAM,QAAQ,GAAQ,IAAA,sBAAW,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACzG,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAA,sBAAW,EAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,6EAA6E;QAC7E,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -116,6 +116,15 @@ function multipartBoundary(contentType) {
116
116
  const match = /;\s*boundary=(?:"([^"]+)"|([^;\s]+))/i.exec(contentType || '');
117
117
  return match ? match[1] || match[2] : null;
118
118
  }
119
+ // chunks joined into a Buffer of exactly `size` bytes that nothing else shares (see the multipart branch)
120
+ function ownCopy(chunks, size) {
121
+ const copy = Buffer.allocUnsafeSlow(size);
122
+ let offset = 0;
123
+ for (const chunk of chunks) {
124
+ offset += chunk.copy(copy, offset);
125
+ }
126
+ return copy;
127
+ }
119
128
  const contentTooLarge = { statusCode: 413, message: 'Content Too Large' };
120
129
  /**
121
130
  * Stops buffering an oversized body. The rest of it is not read: the connection is
@@ -173,6 +182,9 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
173
182
  // of it has arrived, the chunks so far are copied in and dropped, and the rest is copied as it
174
183
  // comes: about 1.5x at the peak. Waiting for half keeps a client from making the server allocate a
175
184
  // large body it never sends. Without a declared length (chunked encoding) the chunks are joined.
185
+ // Either way the Buffer is the request's own allocation (allocUnsafeSlow, never Node's shared pool,
186
+ // never a socket chunk that also holds the headers): file contents are views into it, so their
187
+ // `.buffer` must not reach memory outside this body.
176
188
  const declared = Number.isSafeInteger(declaredLength) && declaredLength > 0 ? declaredLength : 0;
177
189
  let whole;
178
190
  await new Promise((resolve, reject) => {
@@ -192,7 +204,7 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
192
204
  }
193
205
  collect(chunk);
194
206
  if (declared && received.bytes * 2 >= declared && received.bytes <= declared) {
195
- whole = Buffer.allocUnsafe(declared);
207
+ whole = Buffer.allocUnsafeSlow(declared);
196
208
  let offset = 0;
197
209
  for (const piece of received.chunks) {
198
210
  offset += piece.copy(whole, offset);
@@ -203,11 +215,7 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
203
215
  req.once('error', onRequestError(reject));
204
216
  req.on('end', () => {
205
217
  // one Buffer for the whole body; files are views into it, nothing is copied as a string
206
- const raw = whole
207
- ? whole.subarray(0, received.bytes)
208
- : received.chunks.length === 1
209
- ? received.chunks[0]
210
- : Buffer.concat(received.chunks, received.bytes);
218
+ const raw = whole ? whole.subarray(0, received.bytes) : ownCopy(received.chunks, received.bytes);
211
219
  received.chunks = [];
212
220
  // the latin1 ("binary") text of the body costs as much memory again: built only when read
213
221
  let rawBody;
@@ -1 +1 @@
1
- {"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../../src/helpers/parser/body-parser.ts"],"names":[],"mappings":";;AAUA,8BAEC;AAED,4CAGC;AAGD,8CAGC;AAgBD,4CASC;AAQD,gDAwEC;AAGD,8CAGC;AAiDD,gCA0JC;AAhVD,mCAAqE;AACrE,mCAAkC;AAElC,6CAAyC;AACzC,+CAA0D;AAC1D,uEAA6F;AAE7F,+GAA+G;AAC/G,sGAAsG;AACtG,SAAgB,SAAS,CAAC,WAA+B;IACvD,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC;AAED,SAAgB,gBAAgB,CAAC,WAA+B;IAC9D,MAAM,IAAI,GAAW,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,IAAI,KAAK,oBAAW,CAAC,GAAG,IAAI,IAAI,KAAK,oBAAW,CAAC,QAAQ,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChH,CAAC;AAED,qGAAqG;AACrG,SAAgB,iBAAiB,CAAC,WAA+B;IAC/D,MAAM,IAAI,GAAW,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,IAAI,KAAK,oBAAW,CAAC,IAAI,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AAKD,MAAM,cAAc,GAAW,4BAA4B,CAAC;AAC5D,MAAM,kBAAkB,GAAW,gCAAgC,CAAC;AACpE,MAAM,qBAAqB,GAAW,6BAA6B,CAAC;AACpE,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,MAAM,WAAW,GAAW,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAEpD;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,IAAI,GAA2B,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,QAAQ,GAA2B,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAA2B,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7E,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9E,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACvC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;KACrE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,GAAW,EACX,QAAgB;IAUhB,MAAM,MAAM,GAKR,EAAE,CAAC;IACP,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,YAAY,GAAW,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAC1D,iFAAiF;IACjF,MAAM,SAAS,GAAW,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ,GAAW,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IACD,QAAQ,IAAI,YAAY,CAAC,MAAM,CAAC;IAChC,SAAS,CAAC;QACR,2EAA2E;QAC3E,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACrD,MAAM;QACR,CAAC;QACD,4EAA4E;QAC5E,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QACD,MAAM,YAAY,GAAW,OAAO,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAW,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;YAChB,MAAM;QACR,CAAC;QACD,sEAAsE;QACtE,MAAM,IAAI,GAAW,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,UAAkB,CAAC;QACvB,IAAI,UAAkB,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACrC,iCAAiC;YACjC,UAAU,GAAG,CAAC,CAAC;YACf,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACvC,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,OAAO,GAAgB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACtF,MAAM,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,CAAC,IAAI;wBACZ,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC7E,2EAA2E;oBAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QACD,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,+FAA+F;AAC/F,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,MAAM,KAAK,GAA2B,uCAAuC,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACtG,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAID,MAAM,eAAe,GAAqB,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE5F;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAoB,EAAE,GAAoB;IACpE,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/B,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,GAAoB,EACpB,GAAoB,EACpB,KAAa,EACb,QAAsB,EACtB,MAAyC;IAEzC,OAAO,CAAC,KAAa,EAAE,EAAE;QACvB,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;YACpC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7B,MAAM,CAAC,eAAe,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,SAAS,cAAc,CAAC,MAAyC;IAC/D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,QAAsB,EAAE,QAAwB;IACpE,sEAAsE;IACtE,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,GAAoB,EACpB,GAAoB,EACpB,KAAa,EACb,cAAuB,IAAI;IAE3B,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,MAAM,GAAQ;QAClB,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,IAAI,IAAI,GAAW,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAiB,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACxD,uEAAuE;IACvE,MAAM,cAAc,GAAW,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrE,IAAI,KAAK,IAAI,cAAc,GAAG,KAAK,EAAE,CAAC;QACpC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,eAAe,CAAC;IACxB,CAAC;IACD,MAAM,IAAI,GAAW,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,oBAAW,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAkB,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAW,CAAC,CAAC;QACzF,kGAAkG;QAClG,oGAAoG;QACpG,+FAA+F;QAC/F,mGAAmG;QACnG,iGAAiG;QACjG,MAAM,QAAQ,GAAW,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,IAAI,KAAyB,CAAC;QAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjD,yFAAyF;wBACzF,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBAC/B,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBAC9B,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;wBACpD,OAAO;oBACT,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAClC,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7E,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,MAAM,GAAW,CAAC,CAAC;oBACvB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACpC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACtC,CAAC;oBACD,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,wFAAwF;gBACxF,MAAM,GAAG,GAAW,KAAK;oBACvB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;oBACnC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;wBAC5B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;wBACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACrD,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;gBACrB,0FAA0F;gBAC1F,IAAI,OAA2B,CAAC;gBAChC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;oBACvC,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;oBAClB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBAChD,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC5D,KAAK,MAAM,CACT,IAAI,EACJ,KAAK,EACN,IAAI,MAAM,EAAE,CAAC;oBACZ,+EAA+E;oBAC/E,IAAI,CAAC,uCAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,GAAG,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACrC,gFAAgF;wBAChF,IAAI,uCAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC7C,SAAS;wBACX,CAAC;wBACD,MAAM,MAAM,GAAa,IAAI,iBAAQ,EAAE,CAAC;wBACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;4BAClB,MAAM;4BACN,gEAAgE;4BAChE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;4BACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB,CAAC;wBACF,kCAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,qCAAoB,CAAC,CAAC,CAAC;oBAC3F,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACtC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,IAAI,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5C,2FAA2F;oBAC3F,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACH,MAAM,CAAC,IAAI,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAwB,CAAC;wBACrD,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,mEAAmE;wBACnE,MAAM,CAAC;4BACL,UAAU,EAAE,GAAG;4BACf,OAAO,EAAE,CAAC,YAAY,4BAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,mBAAmB;yBAC/F,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,oBAAW,CAAC,qBAAqB,EAAE,CAAC;oBACtD,gFAAgF;oBAChF,KAAK,MAAM,CACT,GAAG,EACH,KAAK,EACN,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/B,IAAI,GAAG,IAAI,CAAC,uCAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BACrD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBAC3B,CAAC;oBACH,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC;wBACH,MAAM,CAAC,IAAI,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;wBAC9B,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACzE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../../src/helpers/parser/body-parser.ts"],"names":[],"mappings":"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"}
@@ -262,6 +262,10 @@ function xmlParser(xmlInput) {
262
262
  if (hasAttrs) {
263
263
  children['@attrs'] = dataAttrs;
264
264
  }
265
+ // mixed content (<p>Total: <b>5</b> EUR</p>): the text pieces around the children, joined
266
+ if (trimmedText) {
267
+ children['#text'] = trimmedText;
268
+ }
265
269
  return [
266
270
  localName,
267
271
  children,
@@ -289,7 +293,15 @@ function xmlParser(xmlInput) {
289
293
  }
290
294
  const rootScope = { defaultUri: null, prefixes: Object.create(null) };
291
295
  const root = {};
296
+ if (xml[0] !== '<') {
297
+ throw new Error('Text before the root element');
298
+ }
292
299
  const rootElement = parseElement(rootScope);
300
+ // a document has exactly one root (comments and <?xml ...?> declarations were removed above)
301
+ skipWhitespace();
302
+ if (pos < xml.length) {
303
+ throw new Error(`Content after the root element at position ${pos}`);
304
+ }
293
305
  if (rootElement) {
294
306
  const [rootName, rootValue,] = rootElement;
295
307
  if (!unsafeKeys.has(rootName)) {
@@ -1 +1 @@
1
- {"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../../src/helpers/parser/xml-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../../src/helpers/parser/xml-parser.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './clear-route-path';
2
2
  export * from './is-readable-stream';
3
+ export * from './open-api-paths';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./clear-route-path"), exports);
18
18
  __exportStar(require("./is-readable-stream"), exports);
19
+ __exportStar(require("./open-api-paths"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,uDAAqC;AACrC,mDAAiC"}
@@ -0,0 +1,11 @@
1
+ export declare const swaggerContentTypes: Record<string, string>;
2
+ export declare function swaggerUiAssetPath(): string;
3
+ /** Web assets directly inside swagger-ui-dist: the only files ever served (not package.json, README, LICENSE). */
4
+ export declare function swaggerUiFileNames(): Set<string>;
5
+ /** The OpenAPI document lives under the docs route: "/docs" -> "/docs/swagger.json". */
6
+ export declare function openApiJsonPath(docsRoute: string): string;
7
+ /**
8
+ * Whether GET on this path (already through clearRoutePath) is answered by the docs: the docs
9
+ * page, the OpenAPI document or a Swagger UI file. A route there could never be reached.
10
+ */
11
+ export declare function isOpenApiPath(path: string, docsRoute: string): boolean;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.swaggerContentTypes = void 0;
4
+ exports.swaggerUiAssetPath = swaggerUiAssetPath;
5
+ exports.swaggerUiFileNames = swaggerUiFileNames;
6
+ exports.openApiJsonPath = openApiJsonPath;
7
+ exports.isOpenApiPath = isOpenApiPath;
8
+ const fs_1 = require("fs");
9
+ const clear_route_path_1 = require("./clear-route-path");
10
+ exports.swaggerContentTypes = {
11
+ css: 'text/css; charset=utf-8',
12
+ js: 'application/javascript; charset=utf-8',
13
+ map: 'application/json; charset=utf-8',
14
+ html: 'text/html; charset=utf-8',
15
+ png: 'image/png',
16
+ };
17
+ let assetPath;
18
+ let fileNames;
19
+ function swaggerUiAssetPath() {
20
+ if (assetPath === undefined) {
21
+ assetPath = require('swagger-ui-dist').absolutePath();
22
+ }
23
+ return assetPath;
24
+ }
25
+ /** Web assets directly inside swagger-ui-dist: the only files ever served (not package.json, README, LICENSE). */
26
+ function swaggerUiFileNames() {
27
+ if (fileNames === undefined) {
28
+ fileNames = new Set((0, fs_1.readdirSync)(swaggerUiAssetPath(), { withFileTypes: true })
29
+ .filter((entry) => entry.isFile() && exports.swaggerContentTypes[entry.name.slice(entry.name.lastIndexOf('.') + 1)])
30
+ .map((entry) => entry.name));
31
+ }
32
+ return fileNames;
33
+ }
34
+ /** The OpenAPI document lives under the docs route: "/docs" -> "/docs/swagger.json". */
35
+ function openApiJsonPath(docsRoute) {
36
+ return `${(0, clear_route_path_1.clearRoutePath)(docsRoute || '')}/swagger.json`;
37
+ }
38
+ /**
39
+ * Whether GET on this path (already through clearRoutePath) is answered by the docs: the docs
40
+ * page, the OpenAPI document or a Swagger UI file. A route there could never be reached.
41
+ */
42
+ function isOpenApiPath(path, docsRoute) {
43
+ const route = (0, clear_route_path_1.clearRoutePath)(docsRoute || '');
44
+ if (path === route || path === openApiJsonPath(route)) {
45
+ return true;
46
+ }
47
+ return path.startsWith(`${route}/`) && swaggerUiFileNames().has(path.slice(route.length + 1));
48
+ }
49
+ //# sourceMappingURL=open-api-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-api-paths.js","sourceRoot":"","sources":["../../../src/helpers/service/open-api-paths.ts"],"names":[],"mappings":";;;AAcA,gDAKC;AAGD,gDASC;AAGD,0CAEC;AAMD,sCAMC;AAhDD,2BAAiC;AACjC,yDAAoD;AAEvC,QAAA,mBAAmB,GAA2B;IACzD,GAAG,EAAE,yBAAyB;IAC9B,EAAE,EAAE,uCAAuC;IAC3C,GAAG,EAAE,iCAAiC;IACtC,IAAI,EAAE,0BAA0B;IAChC,GAAG,EAAE,WAAW;CACjB,CAAC;AAEF,IAAI,SAA6B,CAAC;AAClC,IAAI,SAAkC,CAAC;AAEvC,SAAgB,kBAAkB;IAChC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,YAAY,EAAY,CAAC;IAClE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kHAAkH;AAClH,SAAgB,kBAAkB;IAChC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,SAAS,GAAG,IAAI,GAAG,CACjB,IAAA,gBAAW,EAAC,kBAAkB,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACvD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,2BAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC3G,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAC9B,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,wFAAwF;AACxF,SAAgB,eAAe,CAAC,SAAiB;IAC/C,OAAO,GAAG,IAAA,iCAAc,EAAC,SAAS,IAAI,EAAE,CAAC,eAAe,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,SAAiB;IAC3D,MAAM,KAAK,GAAW,IAAA,iCAAc,EAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,kBAAkB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAChG,CAAC"}