@nestia/core 14.0.0 → 14.0.2

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 (192) hide show
  1. package/MIGRATION.md +20 -0
  2. package/README.md +1 -1
  3. package/lib/adaptors/McpAdaptor.d.ts +29 -3
  4. package/lib/adaptors/McpAdaptor.js +150 -24
  5. package/lib/adaptors/McpAdaptor.js.map +1 -1
  6. package/lib/adaptors/WebSocketAdaptor.d.ts +37 -0
  7. package/lib/adaptors/WebSocketAdaptor.js +184 -48
  8. package/lib/adaptors/WebSocketAdaptor.js.map +1 -1
  9. package/lib/adaptors/internal/RoutePathMatcher.d.ts +1 -0
  10. package/lib/adaptors/internal/RoutePathMatcher.js +88 -0
  11. package/lib/adaptors/internal/RoutePathMatcher.js.map +1 -0
  12. package/lib/adaptors/internal/external_context.d.ts +1 -0
  13. package/lib/adaptors/internal/external_context.js +56 -0
  14. package/lib/adaptors/internal/external_context.js.map +1 -0
  15. package/lib/decorators/DynamicModule.d.ts +12 -0
  16. package/lib/decorators/DynamicModule.js +12 -0
  17. package/lib/decorators/DynamicModule.js.map +1 -1
  18. package/lib/decorators/EncryptedBody.d.ts +14 -6
  19. package/lib/decorators/EncryptedBody.js +39 -16
  20. package/lib/decorators/EncryptedBody.js.map +1 -1
  21. package/lib/decorators/EncryptedController.d.ts +6 -1
  22. package/lib/decorators/EncryptedController.js +7 -2
  23. package/lib/decorators/EncryptedController.js.map +1 -1
  24. package/lib/decorators/EncryptedModule.d.ts +25 -6
  25. package/lib/decorators/EncryptedModule.js +87 -18
  26. package/lib/decorators/EncryptedModule.js.map +1 -1
  27. package/lib/decorators/EncryptedRoute.d.ts +20 -11
  28. package/lib/decorators/EncryptedRoute.js +27 -13
  29. package/lib/decorators/EncryptedRoute.js.map +1 -1
  30. package/lib/decorators/HumanRoute.d.ts +5 -0
  31. package/lib/decorators/HumanRoute.js +5 -0
  32. package/lib/decorators/HumanRoute.js.map +1 -1
  33. package/lib/decorators/McpRoute.d.ts +31 -19
  34. package/lib/decorators/McpRoute.js +12 -1
  35. package/lib/decorators/McpRoute.js.map +1 -1
  36. package/lib/decorators/PlainBody.d.ts +7 -1
  37. package/lib/decorators/PlainBody.js +16 -8
  38. package/lib/decorators/PlainBody.js.map +1 -1
  39. package/lib/decorators/SwaggerCustomizer.d.ts +15 -0
  40. package/lib/decorators/SwaggerCustomizer.js +5 -0
  41. package/lib/decorators/SwaggerCustomizer.js.map +1 -1
  42. package/lib/decorators/SwaggerExample.d.ts +51 -22
  43. package/lib/decorators/SwaggerExample.js +35 -22
  44. package/lib/decorators/SwaggerExample.js.map +1 -1
  45. package/lib/decorators/TypedBody.d.ts +10 -3
  46. package/lib/decorators/TypedBody.js +20 -10
  47. package/lib/decorators/TypedBody.js.map +1 -1
  48. package/lib/decorators/TypedException.d.ts +10 -0
  49. package/lib/decorators/TypedFormData.d.ts +81 -9
  50. package/lib/decorators/TypedFormData.js +121 -31
  51. package/lib/decorators/TypedFormData.js.map +1 -1
  52. package/lib/decorators/TypedHeaders.d.ts +5 -0
  53. package/lib/decorators/TypedHeaders.js +5 -0
  54. package/lib/decorators/TypedHeaders.js.map +1 -1
  55. package/lib/decorators/TypedParam.d.ts +12 -3
  56. package/lib/decorators/TypedParam.js +12 -3
  57. package/lib/decorators/TypedParam.js.map +1 -1
  58. package/lib/decorators/TypedQuery.d.ts +17 -1
  59. package/lib/decorators/TypedQuery.js +25 -4
  60. package/lib/decorators/TypedQuery.js.map +1 -1
  61. package/lib/decorators/TypedRoute.d.ts +25 -10
  62. package/lib/decorators/TypedRoute.js +19 -10
  63. package/lib/decorators/TypedRoute.js.map +1 -1
  64. package/lib/decorators/WebSocketRoute.d.ts +18 -1
  65. package/lib/decorators/WebSocketRoute.js +18 -1
  66. package/lib/decorators/WebSocketRoute.js.map +1 -1
  67. package/lib/decorators/doNotThrowTransformError.d.ts +14 -0
  68. package/lib/decorators/doNotThrowTransformError.js +14 -0
  69. package/lib/decorators/doNotThrowTransformError.js.map +1 -1
  70. package/lib/decorators/internal/EncryptedConstant.js +13 -2
  71. package/lib/decorators/internal/EncryptedConstant.js.map +1 -1
  72. package/lib/decorators/internal/IRequestBodyValidation.d.ts +66 -0
  73. package/lib/decorators/internal/IRequestBodyValidation.js +3 -0
  74. package/lib/decorators/internal/IRequestBodyValidation.js.map +1 -0
  75. package/lib/decorators/internal/IWebSocketRouteReflect.d.ts +93 -1
  76. package/lib/decorators/internal/get_encryption_password.d.ts +1 -0
  77. package/lib/decorators/internal/get_encryption_password.js +14 -0
  78. package/lib/decorators/internal/get_encryption_password.js.map +1 -0
  79. package/lib/decorators/internal/get_path_and_querify.js +23 -9
  80. package/lib/decorators/internal/get_path_and_querify.js.map +1 -1
  81. package/lib/decorators/internal/get_path_and_stringify.js +3 -7
  82. package/lib/decorators/internal/get_path_and_stringify.js.map +1 -1
  83. package/lib/decorators/internal/get_text_body.js +9 -3
  84. package/lib/decorators/internal/get_text_body.js.map +1 -1
  85. package/lib/decorators/internal/group_entries.d.ts +1 -0
  86. package/lib/decorators/internal/group_entries.js +19 -0
  87. package/lib/decorators/internal/group_entries.js.map +1 -0
  88. package/lib/decorators/internal/load_controller.d.ts +14 -0
  89. package/lib/decorators/internal/load_controller.js +14 -0
  90. package/lib/decorators/internal/load_controller.js.map +1 -1
  91. package/lib/decorators/internal/split_route_arguments.d.ts +1 -0
  92. package/lib/decorators/internal/split_route_arguments.js +22 -0
  93. package/lib/decorators/internal/split_route_arguments.js.map +1 -0
  94. package/lib/decorators/internal/validate_request_body.js +68 -25
  95. package/lib/decorators/internal/validate_request_body.js.map +1 -1
  96. package/lib/decorators/internal/validate_request_form_data.js +3 -1
  97. package/lib/decorators/internal/validate_request_form_data.js.map +1 -1
  98. package/lib/decorators/internal/validate_request_headers.js +2 -1
  99. package/lib/decorators/internal/validate_request_headers.js.map +1 -1
  100. package/lib/decorators/internal/validate_request_query.js +3 -1
  101. package/lib/decorators/internal/validate_request_query.js.map +1 -1
  102. package/lib/options/IRequestBodyValidator.d.ts +71 -0
  103. package/lib/options/IRequestFormDataProps.d.ts +80 -0
  104. package/lib/options/IRequestHeadersValidator.d.ts +67 -0
  105. package/lib/options/IRequestQueryValidator.d.ts +68 -0
  106. package/lib/options/IResponseBodyQuerifier.d.ts +125 -1
  107. package/lib/options/IResponseBodyStringifier.d.ts +107 -0
  108. package/lib/typings/Creator.d.ts +10 -0
  109. package/lib/utils/ArrayUtil.d.ts +21 -0
  110. package/lib/utils/ArrayUtil.js +22 -1
  111. package/lib/utils/ArrayUtil.js.map +1 -1
  112. package/lib/utils/ExceptionManager.d.ts +43 -4
  113. package/lib/utils/ExceptionManager.js +44 -6
  114. package/lib/utils/ExceptionManager.js.map +1 -1
  115. package/lib/utils/SourceFinder.d.ts +22 -0
  116. package/lib/utils/SourceFinder.js +60 -10
  117. package/lib/utils/SourceFinder.js.map +1 -1
  118. package/lib/utils/VersioningStrategy.d.ts +45 -2
  119. package/lib/utils/VersioningStrategy.js +40 -7
  120. package/lib/utils/VersioningStrategy.js.map +1 -1
  121. package/native/go.mod +1 -1
  122. package/native/go.sum +2 -2
  123. package/native/plugin/plan.go +68 -2
  124. package/native/transform/ast.go +23 -3
  125. package/native/transform/build.go +51 -57
  126. package/native/transform/buildoutput/output.go +147 -0
  127. package/native/transform/contributor.go +9 -0
  128. package/native/transform/core_querify.go +63 -9
  129. package/native/transform/core_transform.go +180 -98
  130. package/native/transform/core_websocket.go +111 -14
  131. package/native/transform/node_transform.go +17 -8
  132. package/native/transform/package.go +55 -0
  133. package/native/transform/printer.go +1 -3
  134. package/native/transform/run.go +18 -0
  135. package/native/transform/schemaprojection/project.go +213 -0
  136. package/native/transform/transform.go +29 -18
  137. package/native/transform/typia_fast.go +6 -0
  138. package/native/transform.cjs +49 -0
  139. package/package.json +13 -15
  140. package/src/adaptors/McpAdaptor.ts +215 -33
  141. package/src/adaptors/WebSocketAdaptor.ts +202 -52
  142. package/src/adaptors/internal/RoutePathMatcher.ts +91 -0
  143. package/src/adaptors/internal/external_context.ts +81 -0
  144. package/src/decorators/DynamicModule.ts +12 -0
  145. package/src/decorators/EncryptedBody.ts +39 -15
  146. package/src/decorators/EncryptedController.ts +12 -3
  147. package/src/decorators/EncryptedModule.ts +89 -18
  148. package/src/decorators/EncryptedRoute.ts +27 -16
  149. package/src/decorators/HumanRoute.ts +5 -0
  150. package/src/decorators/McpRoute.ts +31 -19
  151. package/src/decorators/PlainBody.ts +20 -10
  152. package/src/decorators/SwaggerCustomizer.ts +15 -0
  153. package/src/decorators/SwaggerExample.ts +51 -22
  154. package/src/decorators/TypedBody.ts +18 -9
  155. package/src/decorators/TypedException.ts +10 -0
  156. package/src/decorators/TypedFormData.ts +207 -45
  157. package/src/decorators/TypedHeaders.ts +5 -0
  158. package/src/decorators/TypedParam.ts +12 -3
  159. package/src/decorators/TypedQuery.ts +35 -7
  160. package/src/decorators/TypedRoute.ts +25 -10
  161. package/src/decorators/WebSocketRoute.ts +18 -1
  162. package/src/decorators/doNotThrowTransformError.ts +14 -0
  163. package/src/decorators/internal/EncryptedConstant.ts +14 -1
  164. package/src/decorators/internal/IMcpRouteReflect.ts +7 -1
  165. package/src/decorators/internal/IRequestBodyValidation.ts +65 -0
  166. package/src/decorators/internal/IWebSocketRouteReflect.ts +95 -1
  167. package/src/decorators/internal/get_encryption_password.ts +19 -0
  168. package/src/decorators/internal/get_path_and_querify.ts +31 -10
  169. package/src/decorators/internal/get_path_and_stringify.ts +3 -9
  170. package/src/decorators/internal/get_text_body.ts +8 -4
  171. package/src/decorators/internal/group_entries.ts +17 -0
  172. package/src/decorators/internal/load_controller.ts +14 -0
  173. package/src/decorators/internal/split_route_arguments.ts +20 -0
  174. package/src/decorators/internal/validate_request_body.ts +87 -34
  175. package/src/decorators/internal/validate_request_form_data.ts +3 -1
  176. package/src/decorators/internal/validate_request_headers.ts +2 -2
  177. package/src/decorators/internal/validate_request_query.ts +3 -2
  178. package/src/options/IRequestBodyValidator.ts +71 -0
  179. package/src/options/IRequestFormDataProps.ts +80 -0
  180. package/src/options/IRequestHeadersValidator.ts +67 -0
  181. package/src/options/IRequestQueryValidator.ts +68 -0
  182. package/src/options/IResponseBodyQuerifier.ts +126 -1
  183. package/src/options/IResponseBodyStringifier.ts +107 -0
  184. package/src/typings/Creator.ts +10 -0
  185. package/src/utils/ArrayUtil.ts +22 -3
  186. package/src/utils/ExceptionManager.ts +50 -6
  187. package/src/utils/SourceFinder.ts +62 -10
  188. package/src/utils/VersioningStrategy.ts +55 -11
  189. package/lib/transform.d.ts +0 -10
  190. package/lib/transform.js +0 -25
  191. package/lib/transform.js.map +0 -1
  192. package/src/transform.ts +0 -26
@@ -18,19 +18,58 @@ const common_1 = require("@nestjs/common");
18
18
  const constants_1 = require("@nestjs/common/constants");
19
19
  const get_function_location_1 = __importDefault(require("get-function-location"));
20
20
  const path_1 = __importDefault(require("path"));
21
- const path_parser_1 = require("path-parser");
22
21
  const tgrid_1 = require("tgrid");
23
22
  const typia_1 = __importDefault(require("typia"));
23
+ const url_1 = require("url");
24
24
  const ws_1 = __importDefault(require("ws"));
25
+ const validate_request_body_1 = require("../decorators/internal/validate_request_body");
25
26
  const ArrayUtil_1 = require("../utils/ArrayUtil");
26
27
  const VersioningStrategy_1 = require("../utils/VersioningStrategy");
28
+ const RoutePathMatcher_1 = require("./internal/RoutePathMatcher");
29
+ /**
30
+ * Serves the `@WebSocketRoute()` methods of a NestJS application over
31
+ * WebSocket.
32
+ *
33
+ * Call {@link upgrade} after the application has been created. It finds the
34
+ * routes, checks them, and takes over the HTTP server's `upgrade` events. A
35
+ * handshake whose path matches no route is rejected with close code 1002.
36
+ *
37
+ * @evidence contracts/common.md#principled-implementation Routes are matched by paths built from the global prefix, the version, the module prefix, the controller path, and the method path, joined and normalized the same way for every combination; the adapter answers upgrade events itself through a `ws` server in no-server mode and removes its listeners when the HTTP server closes.
38
+ * @evidence contracts/common.md#clear-and-simple-design A class with one static factory, one `close` property, and the private handler; discovery, method checks, termination, and close reasons are module-private functions.
39
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The global prefix, versioning options, and module graph are read from `app.config` and `app.container`, which NestJS keeps internal because `INestApplication` has no public accessor for them; this is the limitation of the adapter, not a fixture-specific branch.
40
+ * @evidence contracts/common.md#meaningful-documentation The comment states when to call it and what happens to an unmatched handshake.
41
+ * @evidence contracts/portability.md#os-neutral-implementation Diagnostic source URLs are converted by fileURLToPath before path.relative uses native paths; route matching uses HTTP path segments separately from filesystem paths. No filesystem case policy is inferred from the OS.
42
+ */
27
43
  class WebSocketAdaptor {
44
+ /**
45
+ * Creates the adapter for the application: it visits every controller,
46
+ * validates the WebSocket routes, and starts listening for upgrade events.
47
+ *
48
+ * All route errors of the application are collected and thrown together, with
49
+ * the controller, method, source location, and reasons of each.
50
+ *
51
+ * @evidence contracts/common.md#principled-implementation Controller data-method descriptors are checked before any handshake is served, with child properties shadowing inherited methods and accessors never executed, and all defects are reported in one error, so a misconfigured route fails at start and not at the first client; source locations come from `get-function-location`, converted with `fileURLToPath` so a `file:` URL becomes the path on every platform.
52
+ * @evidence contracts/common.md#clear-and-simple-design One asynchronous factory that awaits the visitor and hands the operator list to the private constructor.
53
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts The visitor reports through the same error path for every controller; no controller or route name is special-cased.
54
+ * @evidence contracts/common.md#meaningful-documentation The comment states the collected error report and the effect on the server.
55
+ * @evidence contracts/portability.md#os-neutral-implementation Diagnostic source URLs are converted by fileURLToPath before path.relative uses native paths; route matching uses HTTP path segments separately from filesystem paths. No filesystem case policy is inferred from the OS.
56
+ */
28
57
  static upgrade(app) {
29
58
  return __awaiter(this, void 0, void 0, function* () {
30
59
  return new this(app, yield visitApplication(app));
31
60
  });
32
61
  }
33
62
  constructor(app, operations) {
63
+ /**
64
+ * Stops the adapter: removes its listeners from the HTTP server and closes
65
+ * the WebSocket server.
66
+ *
67
+ * @evidence contracts/common.md#principled-implementation The listeners are removed before the `ws` server closes, so no upgrade event reaches a closing server, and the returned promise resolves when the server has closed.
68
+ * @evidence contracts/common.md#clear-and-simple-design An arrow property so the same function value can be registered and unregistered as the HTTP server's close listener.
69
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It releases exactly what the adapter registered.
70
+ * @evidence contracts/common.md#meaningful-documentation The comment states what is released.
71
+ * @evidence contracts/portability.md#os-neutral-implementation Diagnostic source URLs are converted by fileURLToPath before path.relative uses native paths; route matching uses HTTP path segments separately from filesystem paths. No filesystem case policy is inferred from the OS.
72
+ */
34
73
  this.close = () => __awaiter(this, void 0, void 0, function* () {
35
74
  return new Promise((resolve) => {
36
75
  this.http.off("close", this.close);
@@ -46,22 +85,21 @@ class WebSocketAdaptor {
46
85
  })();
47
86
  for (const op of this.operators) {
48
87
  const params = op.parser.test(path);
49
- if (params !== null)
50
- try {
51
- yield op.handler({ params, acceptor });
52
- }
53
- catch (error) {
54
- if (acceptor.state === 1 /* WebSocketAcceptor.State.OPEN */ ||
55
- acceptor.state === 0 /* WebSocketAcceptor.State.ACCEPTING */)
56
- yield acceptor.reject(1008, error instanceof Error
57
- ? JSON.stringify(Object.assign({}, error))
58
- : "unknown error");
59
- }
60
- finally {
61
- return;
62
- }
88
+ if (params === null)
89
+ continue;
90
+ try {
91
+ yield op.handler({ params, acceptor });
92
+ }
93
+ catch (error) {
94
+ yield terminate({ acceptor, socket: client, error });
95
+ }
96
+ return;
63
97
  }
64
- yield acceptor.reject(1002, `WebSocket API not found`);
98
+ yield terminate({
99
+ acceptor,
100
+ socket: client,
101
+ error: new WebSocketRejection(1002, "WebSocket API not found"),
102
+ });
65
103
  })));
66
104
  };
67
105
  this.operators = operations;
@@ -83,13 +121,14 @@ const visitApplication = (app) => __awaiter(void 0, void 0, void 0, function* ()
83
121
  : undefined,
84
122
  versioning: (() => {
85
123
  var _a;
124
+ var _b;
86
125
  const versioning = (_a = app.config) === null || _a === void 0 ? void 0 : _a.versioningOptions;
87
126
  return versioning === undefined || versioning.type !== common_1.VersioningType.URI
88
127
  ? undefined
89
128
  : {
90
- prefix: versioning.prefix === undefined || versioning.prefix === false
91
- ? "v"
92
- : versioning.prefix,
129
+ // as NestJS's RoutePathFactory.getVersionPrefix(): `false` is no
130
+ // prefix at all, and only an absent one is the default "v"
131
+ prefix: versioning.prefix === false ? "" : ((_b = versioning.prefix) !== null && _b !== void 0 ? _b : "v"),
93
132
  defaultVersion: versioning.defaultVersion,
94
133
  };
95
134
  })(),
@@ -150,7 +189,7 @@ const visitController = (props) => __awaiter(void 0, void 0, void 0, function* (
150
189
  : undefined,
151
190
  modulePrefix: props.modulePrefix,
152
191
  };
153
- for (const mk of getOwnPropertyNames(controller.prototype).filter((key) => key !== "constructor" && typeof controller.prototype[key] === "function")) {
192
+ for (const mk of getOwnPropertyNames(controller.prototype).filter((key) => key !== "constructor")) {
154
193
  const errorMessages = [];
155
194
  visitMethod({
156
195
  config: props.config,
@@ -164,7 +203,9 @@ const visitController = (props) => __awaiter(void 0, void 0, void 0, function* (
164
203
  });
165
204
  if (errorMessages.length) {
166
205
  const file = yield (0, get_function_location_1.default)(controller.prototype[mk]);
167
- methodErrors.push(Object.assign(Object.assign({ name: mk, messages: errorMessages }, file), { source: path_1.default.relative(process.cwd(), file.source.replace("file:///", "")) }));
206
+ methodErrors.push(Object.assign(Object.assign({ name: mk, messages: errorMessages }, file), { source: path_1.default.relative(process.cwd(), file.source.startsWith("file:")
207
+ ? (0, url_1.fileURLToPath)(file.source)
208
+ : file.source) }));
168
209
  }
169
210
  }
170
211
  if (methodErrors.length)
@@ -174,7 +215,7 @@ const visitController = (props) => __awaiter(void 0, void 0, void 0, function* (
174
215
  });
175
216
  });
176
217
  const visitMethod = (props) => {
177
- var _a, _b, _c;
218
+ var _a, _b;
178
219
  const route = Reflect.getMetadata("nestia/WebSocketRoute", props.method.value);
179
220
  if ((() => {
180
221
  const _io0 = input => Array.isArray(input.paths) && input.paths.every(elem => "string" === typeof elem);
@@ -195,16 +236,16 @@ const visitMethod = (props) => {
195
236
  " - @WebSocketRoute.Param()",
196
237
  " - @WebSocketRoute.Query()",
197
238
  ].join("\n"));
198
- const versions = VersioningStrategy_1.VersioningStrategy.merge(props.config.versioning)([
199
- ...((_b = props.controller.versions) !== null && _b !== void 0 ? _b : []),
200
- ...VersioningStrategy_1.VersioningStrategy.cast(Reflect.getMetadata(constants_1.VERSION_METADATA, props.method.value)),
201
- ]);
239
+ const versions = VersioningStrategy_1.VersioningStrategy.merge(props.config.versioning)({
240
+ controller: props.controller.versions,
241
+ method: VersioningStrategy_1.VersioningStrategy.cast(Reflect.getMetadata(constants_1.VERSION_METADATA, props.method.value)),
242
+ });
202
243
  for (const v of versions)
203
244
  for (const cp of wrapPaths(props.controller.prefixes))
204
245
  for (const mp of wrapPaths(route.paths)) {
205
- const parser = new path_parser_1.Path("/" +
246
+ const parser = new RoutePathMatcher_1.RoutePathMatcher("/" +
206
247
  [
207
- (_c = props.config.globalPrefix) !== null && _c !== void 0 ? _c : "",
248
+ (_b = props.config.globalPrefix) !== null && _b !== void 0 ? _b : "",
208
249
  v,
209
250
  props.controller.modulePrefix,
210
251
  cp,
@@ -245,16 +286,18 @@ const visitMethod = (props) => {
245
286
  else if (p.category === "driver")
246
287
  args.push(input.acceptor.getDriver());
247
288
  else if (p.category === "header") {
248
- const error = p.validate(input.acceptor.header);
249
- if (error !== null)
250
- throw error;
251
- args.push(input.acceptor.header);
289
+ const result = (0, validate_request_body_1.resolve_request_body)(p.validate, input.acceptor.header);
290
+ if (!result.success)
291
+ throw result.error;
292
+ args.push(result.data);
252
293
  }
253
294
  else if (p.category === "param")
254
295
  args.push(p.assert(input.params[p.field]));
255
296
  else if (p.category === "query") {
256
- const query = p.validate(new URLSearchParams(input.acceptor.path.indexOf("?") !== -1
257
- ? input.acceptor.path.split("?")[1]
297
+ // the query is all after the first "?", which it may hold too
298
+ const index = input.acceptor.path.indexOf("?");
299
+ const query = p.validate(new URLSearchParams(index !== -1
300
+ ? input.acceptor.path.substring(index + 1)
258
301
  : ""));
259
302
  if (query instanceof Error)
260
303
  throw query;
@@ -262,27 +305,120 @@ const visitMethod = (props) => {
262
305
  }
263
306
  }
264
307
  catch (exp) {
265
- yield input.acceptor.reject(1003, exp instanceof Error
266
- ? JSON.stringify(Object.assign({}, exp))
267
- : "unknown error");
268
- return;
308
+ // an invalid handshake: rejected before the handler runs
309
+ throw new WebSocketRejection(1003, exp);
269
310
  }
270
311
  yield props.method.value.call(props.controller.instance, ...args);
271
312
  }),
272
313
  });
273
314
  }
274
315
  };
316
+ /**
317
+ * A handshake rejected on purpose, with its close code: 1002 for no route, 1003
318
+ * for a header, param, or query failing its type.
319
+ */
320
+ class WebSocketRejection {
321
+ constructor(code, cause) {
322
+ this.code = code;
323
+ this.cause = cause;
324
+ }
325
+ }
326
+ /**
327
+ * Ends a WebSocket request that failed, so the client always learns it: a
328
+ * handshake not accepted yet is rejected, 1008 for an error of the route
329
+ * itself, and an accepted connection is closed with 1011. When tgrid refuses
330
+ * either, as it does while `accept()` is still running, the socket is closed
331
+ * directly. Nothing escapes, as the upgrade callback has no one to catch it.
332
+ */
333
+ const terminate = (props) => __awaiter(void 0, void 0, void 0, function* () {
334
+ const reason = closeReason(props.error instanceof WebSocketRejection ? props.error.cause : props.error);
335
+ const state = props.acceptor.state;
336
+ if (state === -2 /* WebSocketAcceptor.State.REJECTING */ ||
337
+ state === 2 /* WebSocketAcceptor.State.CLOSING */ ||
338
+ state === 3 /* WebSocketAcceptor.State.CLOSED */)
339
+ return; // the route already ends the connection itself
340
+ const code = state !== -1 /* WebSocketAcceptor.State.NONE */
341
+ ? 1011
342
+ : props.error instanceof WebSocketRejection
343
+ ? props.error.code
344
+ : 1008;
345
+ try {
346
+ if (state === -1 /* WebSocketAcceptor.State.NONE */)
347
+ return yield props.acceptor.reject(code, reason);
348
+ else if (state === 1 /* WebSocketAcceptor.State.OPEN */)
349
+ return yield props.acceptor.close(code, reason);
350
+ }
351
+ catch (_a) { }
352
+ try {
353
+ props.socket.close(code, reason);
354
+ }
355
+ catch (_b) {
356
+ props.socket.terminate();
357
+ }
358
+ });
359
+ /**
360
+ * The reason a close frame carries: the error's message, cut to the 123 bytes
361
+ * of UTF-8 a close reason may hold, never inside a character. A longer reason
362
+ * makes `ws` throw instead of closing, and the client waits forever.
363
+ *
364
+ * A validator's `BadRequestException` carries a generic message, so the
365
+ * property it names is preferred: typia's `reason` from an assertion, or the
366
+ * first of the `errors` from a validation.
367
+ */
368
+ const closeReason = (error) => {
369
+ var _a;
370
+ const message = (_a = invalidProperty(error)) !== null && _a !== void 0 ? _a : (error instanceof Error
371
+ ? error.message
372
+ : typeof error === "string"
373
+ ? error
374
+ : "unknown error");
375
+ const encoded = Buffer.from(message, "utf8");
376
+ if (encoded.length <= MAX_CLOSE_REASON_BYTES)
377
+ return message;
378
+ let end = MAX_CLOSE_REASON_BYTES;
379
+ // back off continuation bytes (10xxxxxx) to a character boundary
380
+ while (end > 0 && (encoded[end] & 0xc0) === 0x80)
381
+ --end;
382
+ return encoded.subarray(0, end).toString("utf8");
383
+ };
384
+ const invalidProperty = (error) => {
385
+ if (!(error instanceof common_1.HttpException))
386
+ return null;
387
+ const response = error.getResponse();
388
+ if (typeof response !== "object" || response === null)
389
+ return null;
390
+ const { reason, errors } = response;
391
+ if (typeof reason === "string")
392
+ return reason;
393
+ if (Array.isArray(errors) && errors.length !== 0) {
394
+ const first = errors[0];
395
+ if (typeof (first === null || first === void 0 ? void 0 : first.path) === "string" && typeof first.expected === "string")
396
+ return [
397
+ `invalid type on ${first.path}, expect to be ${first.expected}`,
398
+ errors.length > 1 ? ` (and ${errors.length - 1} more)` : "",
399
+ ].join("");
400
+ }
401
+ return null;
402
+ };
403
+ /**
404
+ * RFC 6455 §5.5: a control frame's payload is at most 125 bytes, 2 of them the
405
+ * code.
406
+ */
407
+ const MAX_CLOSE_REASON_BYTES = 123;
275
408
  const wrapPaths = (value) => (value.length === 0 ? [""] : value);
276
409
  const getOwnPropertyNames = (prototype) => {
277
- const result = new Set();
278
- const iterate = (m) => {
279
- if (m === null)
280
- return;
281
- for (const k of Object.getOwnPropertyNames(m))
282
- result.add(k);
283
- iterate(Object.getPrototypeOf(m));
284
- };
285
- iterate(prototype);
286
- return Array.from(result);
410
+ var _a;
411
+ const visited = new Set();
412
+ const result = [];
413
+ for (let current = prototype; current !== null; current = Object.getPrototypeOf(current))
414
+ for (const key of Object.getOwnPropertyNames(current)) {
415
+ if (visited.has(key))
416
+ continue;
417
+ visited.add(key);
418
+ if (typeof ((_a = Object.getOwnPropertyDescriptor(current, key)) === null || _a === void 0 ? void 0 : _a.value) ===
419
+ "function")
420
+ result.push(key);
421
+ }
422
+ return result;
287
423
  };
288
424
  //# sourceMappingURL=WebSocketAdaptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketAdaptor.js","sourceRoot":"","sources":["../../src/adaptors/WebSocketAdaptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSocketAdaptor.js","sourceRoot":"","sources":["../../src/adaptors/WebSocketAdaptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoutePathMatcher = void 0;
4
+ const path_to_regexp_1 = require("path-to-regexp");
5
+ /**
6
+ * A WebSocket route's path, matched as NestJS 11's Express router matches an
7
+ * HTTP route: path-to-regexp 8's syntax, where `\:` is a literal colon, `*name`
8
+ * a wildcard, and `{...}` an optional group; find-my-way's (Fastify) literal
9
+ * colon `::` is read too, as `@nestia/sdk` reads it when it builds the SDK's
10
+ * URL.
11
+ *
12
+ * @internal
13
+ */
14
+ class RoutePathMatcher {
15
+ constructor(path) {
16
+ this.path = path;
17
+ const route = fromFastifyColons(path);
18
+ this.params = names((0, path_to_regexp_1.parse)(route).tokens);
19
+ this.match_ = (0, path_to_regexp_1.match)(route, {
20
+ decode: (value) => {
21
+ try {
22
+ return decodeURIComponent(value);
23
+ }
24
+ catch (_a) {
25
+ return value;
26
+ }
27
+ },
28
+ });
29
+ }
30
+ /**
31
+ * The parameters of a matching request path, or `null`. A wildcard's segments
32
+ * are joined by `/`, and an optional parameter absent is left out.
33
+ */
34
+ test(path) {
35
+ const matched = this.match_(path);
36
+ if (matched === false)
37
+ return null;
38
+ const output = {};
39
+ for (const [key, value] of Object.entries(matched.params))
40
+ if (value !== undefined)
41
+ output[key] = Array.isArray(value) ? value.join("/") : value;
42
+ return output;
43
+ }
44
+ toString() {
45
+ return this.path;
46
+ }
47
+ }
48
+ exports.RoutePathMatcher = RoutePathMatcher;
49
+ const names = (tokens) => tokens.flatMap((token) => token.type === "param" || token.type === "wildcard"
50
+ ? [token.name]
51
+ : token.type === "group"
52
+ ? names(token.tokens)
53
+ : []);
54
+ /**
55
+ * A route with find-my-way's (Fastify) literal colon `::` spelled as
56
+ * path-to-regexp's `\:`. find-my-way reads `::` as a colon in static text
57
+ * alone: after a parameter it is part of the parameter's name, so it is left as
58
+ * is there, and path-to-regexp then rejects the route, as no parameter of that
59
+ * name is what the handler reads.
60
+ *
61
+ * @internal
62
+ */
63
+ const fromFastifyColons = (route) => {
64
+ let output = "";
65
+ for (let i = 0; i < route.length;) {
66
+ if (route[i] === "\\") {
67
+ output += route.slice(i, i + 2);
68
+ i += 2;
69
+ }
70
+ else if (route.startsWith("::", i)) {
71
+ output += "\\:";
72
+ i += 2;
73
+ }
74
+ else if (route[i] === ":") {
75
+ const name = /^:[A-Za-z0-9_$]*/.exec(route.slice(i))[0];
76
+ output += name;
77
+ i += name.length;
78
+ if (route.startsWith("::", i)) {
79
+ output += "::";
80
+ i += 2;
81
+ }
82
+ }
83
+ else
84
+ output += route[i++];
85
+ }
86
+ return output;
87
+ };
88
+ //# sourceMappingURL=RoutePathMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoutePathMatcher.js","sourceRoot":"","sources":["../../../src/adaptors/internal/RoutePathMatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.get_request_context_id = exports.create_external_context_creator = void 0;
4
+ const core_1 = require("@nestjs/core");
5
+ const external_exception_filter_context_1 = require("@nestjs/core/exceptions/external-exception-filter-context");
6
+ const guards_1 = require("@nestjs/core/guards");
7
+ const external_context_creator_1 = require("@nestjs/core/helpers/external-context-creator");
8
+ const interceptors_1 = require("@nestjs/core/interceptors");
9
+ const pipes_1 = require("@nestjs/core/pipes");
10
+ const request_constants_1 = require("@nestjs/core/router/request/request-constants");
11
+ /**
12
+ * The creator of NestJS's enhancer pipeline (guards, interceptors, pipes, and
13
+ * exception filters) for the controllers of one module.
14
+ *
15
+ * `ExternalContextCreator` looks the module up among those providing the class,
16
+ * and a controller is provided by none, so its enhancers would not resolve: the
17
+ * module is named here instead.
18
+ *
19
+ * @internal
20
+ */
21
+ const create_external_context_creator = (container, moduleKey) => new ControllerContextCreator(container, moduleKey);
22
+ exports.create_external_context_creator = create_external_context_creator;
23
+ class ControllerContextCreator extends external_context_creator_1.ExternalContextCreator {
24
+ constructor(owner, moduleKey) {
25
+ super(new guards_1.GuardsContextCreator(owner, owner.applicationConfig), new guards_1.GuardsConsumer(), new interceptors_1.InterceptorsContextCreator(owner, owner.applicationConfig), new interceptors_1.InterceptorsConsumer(), owner.getModules(), new pipes_1.PipesContextCreator(owner, owner.applicationConfig), new pipes_1.PipesConsumer(), new external_exception_filter_context_1.ExternalExceptionFilterContext(owner, owner.applicationConfig));
26
+ this.owner = owner;
27
+ this.moduleKey = moduleKey;
28
+ }
29
+ getContextModuleKey() {
30
+ return this.moduleKey;
31
+ }
32
+ registerRequestProvider(request, contextId) {
33
+ this.owner.registerRequestProvider(request, contextId);
34
+ }
35
+ }
36
+ /**
37
+ * The context a request-scoped provider is built in for this request, the one
38
+ * NestJS's router attaches to it, registering the request as `REQUEST`.
39
+ *
40
+ * @internal
41
+ */
42
+ const get_request_context_id = (container, request, durable) => {
43
+ const contextId = core_1.ContextIdFactory.getByRequest(request);
44
+ if (!request[request_constants_1.REQUEST_CONTEXT_ID]) {
45
+ Object.defineProperty(request, request_constants_1.REQUEST_CONTEXT_ID, {
46
+ value: contextId,
47
+ enumerable: false,
48
+ writable: false,
49
+ configurable: false,
50
+ });
51
+ container.registerRequestProvider(durable ? contextId.payload : Object.assign(request, contextId.payload), contextId);
52
+ }
53
+ return contextId;
54
+ };
55
+ exports.get_request_context_id = get_request_context_id;
56
+ //# sourceMappingURL=external_context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external_context.js","sourceRoot":"","sources":["../../../src/adaptors/internal/external_context.ts"],"names":[],"mappings":";;;AAAA,uCAA0E;AAC1E,iHAA2G;AAC3G,gDAA2E;AAC3E,4FAAuF;AACvF,4DAGmC;AACnC,8CAAwE;AACxE,qFAAmF;AAEnF;;;;;;;;;GASG;AACI,MAAM,+BAA+B,GAAG,CAC7C,SAAwB,EACxB,SAAiB,EACO,EAAE,CAAC,IAAI,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAHnE,QAAA,+BAA+B,GAA/B,+BAA+B,CAGoC;AAEhF,MAAM,wBAAyB,SAAQ,iDAAsB;IAC3D,YACmB,KAAoB,EACpB,SAAiB;QAElC,KAAK,CACH,IAAI,6BAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,EACxD,IAAI,uBAAc,EAAE,EACpB,IAAI,yCAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAC9D,IAAI,mCAAoB,EAAE,EAC1B,KAAK,CAAC,UAAU,EAAE,EAClB,IAAI,2BAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,EACvD,IAAI,qBAAa,EAAE,EACnB,IAAI,kEAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,CACnE,CAAC;qBAZe,KAAK;yBACL,SAAS;IAY5B,CAAC;IAEe,mBAAmB;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEe,uBAAuB,CACrC,OAAU,EACV,SAAoB;QAEpB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;;;;GAKG;AACI,MAAM,sBAAsB,GAAG,CACpC,SAAwB,EACxB,OAAY,EACZ,OAAgB,EACL,EAAE;IACb,MAAM,SAAS,GAAc,uBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,CAAC,sCAAkB,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,sCAAkB,EAAE;YACjD,KAAK,EAAE,SAAS;YAChB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,SAAS,CAAC,uBAAuB,CAC/B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,EACvE,SAAS,CACV,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAnBW,QAAA,sBAAsB,GAAtB,sBAAsB,CAmBjC"}
@@ -6,6 +6,11 @@ import { ModuleMetadata } from "@nestjs/common/interfaces";
6
6
  * controller classes dynamically just by specifying their directory path.
7
7
  *
8
8
  * @author Jeongho Nam - https://github.com/samchon
9
+ * @evidence contracts/common.md#principled-implementation The namespace builds a Nest module whose controllers are found on disk at startup instead of listed in code, using the shared loader.
10
+ * @evidence contracts/common.md#clear-and-simple-design One function that delegates discovery to `load_controllers` and decorates a class with the result.
11
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts Paths are caller input, and no controller name is assumed.
12
+ * @evidence contracts/common.md#meaningful-documentation The comment describes the purpose and the path forms.
13
+ * @evidence contracts/portability.md#os-neutral-implementation Controller discovery delegates native path handling to SourceFinder and conversion of import paths to file URLs to load_controllers; module metadata contains controller constructors rather than filesystem identities.
9
14
  */
10
15
  export declare namespace DynamicModule {
11
16
  /**
@@ -18,7 +23,14 @@ export declare namespace DynamicModule {
18
23
  *
19
24
  * @param path Path of controllers
20
25
  * @param metadata Additional metadata except controllers
26
+ * @param isTsNode Select TypeScript source files explicitly; otherwise
27
+ * compiled JavaScript is tried first, with a source fallback under `ttsx`.
21
28
  * @returns Module instance
29
+ * @evidence contracts/common.md#principled-implementation Controllers are loaded from the paths, given as a path, a list, or include and exclude lists, and then a class decorated with `@Module` and those controllers is returned, so Nest treats the result as an ordinary module.
30
+ * @evidence contracts/common.md#clear-and-simple-design A short function whose discovery details live in `load_controllers`.
31
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It calls Nest's public `Module` decorator with the metadata; nothing is patched.
32
+ * @evidence contracts/common.md#meaningful-documentation The comment documents the path forms and the `isTsNode` option.
33
+ * @evidence contracts/portability.md#os-neutral-implementation Controller discovery delegates native path handling to SourceFinder and conversion of import paths to file URLs to load_controllers; module metadata contains controller constructors rather than filesystem identities.
22
34
  */
23
35
  function mount(path: string | string[] | {
24
36
  include: string[];
@@ -57,6 +57,11 @@ const load_controller_1 = require("./internal/load_controller");
57
57
  * controller classes dynamically just by specifying their directory path.
58
58
  *
59
59
  * @author Jeongho Nam - https://github.com/samchon
60
+ * @evidence contracts/common.md#principled-implementation The namespace builds a Nest module whose controllers are found on disk at startup instead of listed in code, using the shared loader.
61
+ * @evidence contracts/common.md#clear-and-simple-design One function that delegates discovery to `load_controllers` and decorates a class with the result.
62
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts Paths are caller input, and no controller name is assumed.
63
+ * @evidence contracts/common.md#meaningful-documentation The comment describes the purpose and the path forms.
64
+ * @evidence contracts/portability.md#os-neutral-implementation Controller discovery delegates native path handling to SourceFinder and conversion of import paths to file URLs to load_controllers; module metadata contains controller constructors rather than filesystem identities.
60
65
  */
61
66
  var DynamicModule;
62
67
  (function (DynamicModule) {
@@ -70,7 +75,14 @@ var DynamicModule;
70
75
  *
71
76
  * @param path Path of controllers
72
77
  * @param metadata Additional metadata except controllers
78
+ * @param isTsNode Select TypeScript source files explicitly; otherwise
79
+ * compiled JavaScript is tried first, with a source fallback under `ttsx`.
73
80
  * @returns Module instance
81
+ * @evidence contracts/common.md#principled-implementation Controllers are loaded from the paths, given as a path, a list, or include and exclude lists, and then a class decorated with `@Module` and those controllers is returned, so Nest treats the result as an ordinary module.
82
+ * @evidence contracts/common.md#clear-and-simple-design A short function whose discovery details live in `load_controllers`.
83
+ * @evidence contracts/common.md#prohibited-implementation-shortcuts It calls Nest's public `Module` decorator with the metadata; nothing is patched.
84
+ * @evidence contracts/common.md#meaningful-documentation The comment documents the path forms and the `isTsNode` option.
85
+ * @evidence contracts/portability.md#os-neutral-implementation Controller discovery delegates native path handling to SourceFinder and conversion of import paths to file URLs to load_controllers; module metadata contains controller constructors rather than filesystem identities.
74
86
  */
75
87
  function mount(path_1) {
76
88
  return __awaiter(this, arguments, void 0, function* (path, metadata = {}, isTsNode) {
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicModule.js","sourceRoot":"","sources":["../../src/decorators/DynamicModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AAIxC,gEAA8D;AAE9D;;;;;;;GAOG;AACH,IAAiB,aAAa,CA6B7B;AA7BD,WAAiB,aAAa;IAC5B;;;;;;;;;;;OAWG;IACH,SAAsB,KAAK;6DACzB,IAAmE,EACnE,QAAQ,GAAwC,EAAE,EAClD,QAAkB;YAElB,mBAAmB;YACnB,MAAM,WAAW,GAAsB,MAAM,IAAA,kCAAgB,EAC3D,IAAI,EACJ,QAAQ,CACT,CAAC;YAEF,yBAAyB;gBAEnB,YAAY;wCADjB,IAAA,eAAM,kCAAM,QAAQ,KAAE,WAAW,IAAG;;;;;;;;;oBACrC,6KAAqB;;;oBAAf,uDAAY;;;;YAClB,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;IAfqB,cAAA,KAAK,QAe1B,CAAA;AACH,CAAC,EA7BgB,aAAa,aAAb,aAAa,GAAb,aAAa,QA6B7B"}
1
+ {"version":3,"file":"DynamicModule.js","sourceRoot":"","sources":["../../src/decorators/DynamicModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AAIxC,gEAA8D;AAE9D;;;;;;;;;;;;GAYG;AACH,IAAiB,aAAa,CAoC7B;AApCD,WAAiB,aAAa;IAC5B;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAsB,KAAK;6DACzB,IAAmE,EACnE,QAAQ,GAAwC,EAAE,EAClD,QAAkB;YAElB,mBAAmB;YACnB,MAAM,WAAW,GAAsB,MAAM,IAAA,kCAAgB,EAC3D,IAAI,EACJ,QAAQ,CACT,CAAC;YAEF,yBAAyB;gBAEnB,YAAY;wCADjB,IAAA,eAAM,kCAAM,QAAQ,KAAE,WAAW,IAAG;;;;;;;;;oBACrC,6KAAqB;;;oBAAf,uDAAY;;;;YAClB,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;IAfqB,cAAA,KAAK,QAe1B,CAAA;AACH,CAAC,EApCgB,aAAa,aAAb,aAAa,GAAb,aAAa,QAoC7B"}