@pristine-ts/networking 2.0.1 → 2.0.3

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 (41) hide show
  1. package/dist/lib/cjs/contexts/contexts.js +18 -0
  2. package/dist/lib/cjs/contexts/contexts.js.map +1 -0
  3. package/dist/lib/cjs/contexts/request-context.js +24 -0
  4. package/dist/lib/cjs/contexts/request-context.js.map +1 -0
  5. package/dist/lib/cjs/handlers/request.event-handler.js +0 -2
  6. package/dist/lib/cjs/handlers/request.event-handler.js.map +1 -1
  7. package/dist/lib/cjs/interceptors/request-body-converter.interceptor.js +3 -3
  8. package/dist/lib/cjs/interceptors/request-body-converter.interceptor.js.map +1 -1
  9. package/dist/lib/cjs/managers/managers.js +18 -0
  10. package/dist/lib/cjs/managers/managers.js.map +1 -0
  11. package/dist/lib/cjs/managers/request-context.manager.js +98 -0
  12. package/dist/lib/cjs/managers/request-context.manager.js.map +1 -0
  13. package/dist/lib/cjs/networking.module.js +2 -0
  14. package/dist/lib/cjs/networking.module.js.map +1 -1
  15. package/dist/lib/cjs/router.js +154 -155
  16. package/dist/lib/cjs/router.js.map +1 -1
  17. package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  18. package/dist/lib/esm/contexts/contexts.js +2 -0
  19. package/dist/lib/esm/contexts/contexts.js.map +1 -0
  20. package/dist/lib/esm/contexts/request-context.js +20 -0
  21. package/dist/lib/esm/contexts/request-context.js.map +1 -0
  22. package/dist/lib/esm/handlers/request.event-handler.js +0 -2
  23. package/dist/lib/esm/handlers/request.event-handler.js.map +1 -1
  24. package/dist/lib/esm/interceptors/request-body-converter.interceptor.js +3 -3
  25. package/dist/lib/esm/interceptors/request-body-converter.interceptor.js.map +1 -1
  26. package/dist/lib/esm/managers/managers.js +2 -0
  27. package/dist/lib/esm/managers/managers.js.map +1 -0
  28. package/dist/lib/esm/managers/request-context.manager.js +95 -0
  29. package/dist/lib/esm/managers/request-context.manager.js.map +1 -0
  30. package/dist/lib/esm/networking.module.js +2 -0
  31. package/dist/lib/esm/networking.module.js.map +1 -1
  32. package/dist/lib/esm/router.js +154 -155
  33. package/dist/lib/esm/router.js.map +1 -1
  34. package/dist/lib/esm/tsconfig.tsbuildinfo +1 -1
  35. package/dist/types/contexts/contexts.d.ts +1 -0
  36. package/dist/types/contexts/request-context.d.ts +24 -0
  37. package/dist/types/managers/managers.d.ts +1 -0
  38. package/dist/types/managers/request-context.manager.d.ts +43 -0
  39. package/dist/types/networking.module.d.ts +2 -0
  40. package/dist/types/router.d.ts +3 -1
  41. package/package.json +7 -7
@@ -36,6 +36,8 @@ import { HttpError } from "./errors/http.error";
36
36
  import { RouterCache } from "./cache/router.cache";
37
37
  import { ClassMetadata, MethodMetadata } from "@pristine-ts/metadata";
38
38
  import { RequestInterceptorPriorityEnum } from "./enums/request-interceptor-priority.enum";
39
+ import { RequestContext } from "./contexts/request-context";
40
+ import { RequestContextManager } from "./managers/request-context.manager";
39
41
  /**
40
42
  * The router service is the service that creates the routing tree from the controllers.
41
43
  * It also executes a request properly by routing it to the intended controller and returns the response.
@@ -50,12 +52,13 @@ let Router = class Router {
50
52
  * @param authorizerManager The authorizer manager to validate authorization.
51
53
  * @param authenticationManager The authentication manager to validate authentication.
52
54
  */
53
- constructor(loghandler, controllerMethodParameterDecoratorResolver, authorizerManager, authenticationManager, cache) {
55
+ constructor(loghandler, controllerMethodParameterDecoratorResolver, authorizerManager, authenticationManager, cache, requestContextManager) {
54
56
  this.loghandler = loghandler;
55
57
  this.controllerMethodParameterDecoratorResolver = controllerMethodParameterDecoratorResolver;
56
58
  this.authorizerManager = authorizerManager;
57
59
  this.authenticationManager = authenticationManager;
58
60
  this.cache = cache;
61
+ this.requestContextManager = requestContextManager;
59
62
  this.root = new PathRouterNode("/");
60
63
  // This property is used to track whether the router has been already been properly instantiated or not.
61
64
  this.setupCompleted = false;
@@ -142,7 +145,7 @@ let Router = class Router {
142
145
  const tracingManager = container.resolve("TracingManagerInterface");
143
146
  const routerRequestExecutionSpan = tracingManager.startSpan(SpanKeynameEnum.RouterRequestExecution, SpanKeynameEnum.RequestExecution);
144
147
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
145
- var _a, _b, _c, _d;
148
+ var _a;
146
149
  // Start by decomposing the URL. Set second parameter to true since we want to parse the query strings
147
150
  // Node's URL default package absolutely needs a base (or a host) if none is provided in the URL. Pristine doesn't
148
151
  // care at all about the host. If one is provided in the url, the base provided will do nothing.
@@ -178,7 +181,6 @@ let Router = class Router {
178
181
  rootNode: this.root,
179
182
  request,
180
183
  },
181
- eventId: request.id,
182
184
  });
183
185
  routerRequestExecutionSpan.end();
184
186
  return resolve(this.executeErrorResponseInterceptors(new NotFoundHttpError("No route found for method: '" + request.httpMethod + "' and path: '" + url.pathname + "'."), request, container));
@@ -188,166 +190,173 @@ let Router = class Router {
188
190
  if (cachedRouterRoute !== undefined && cachedRouterRoute.routeParameters === undefined) {
189
191
  cachedRouterRoute.routeParameters = routeParameters;
190
192
  }
191
- // Instantiate the controller
192
- const routerControllerResolverSpan = tracingManager.startSpan(SpanKeynameEnum.RouterControllerResolver, SpanKeynameEnum.RouterRequestExecution);
193
- this.loghandler.debug("Router - Will resolve the controller from the container", {
194
- routeParameters
195
- });
196
- const controller = container.resolve(methodNode.route.controllerInstantiationToken);
197
- this.loghandler.debug("Router - Controller resolved from the container", {
198
- routeParameters
199
- });
200
- routerControllerResolverSpan.end();
201
- this.loghandler.debug("Router - Before calling the authenticationManager", {
202
- controller,
203
- routeParameters
204
- });
205
- let identity;
206
- // Authenticate the request
207
- try {
208
- const routerRequestAuthenticationSpan = tracingManager.startSpan(SpanKeynameEnum.RouterRequestAuthentication, SpanKeynameEnum.RouterRequestExecution);
209
- identity = yield this.authenticationManager.authenticate(request, methodNode.route.context, container);
210
- routerRequestAuthenticationSpan.end();
211
- this.loghandler.debug("Router - Found identity.", {
212
- highlights: {
213
- identityId: (_b = identity === null || identity === void 0 ? void 0 : identity.id) !== null && _b !== void 0 ? _b : "None",
214
- }, extra: {
215
- identity,
216
- },
217
- eventId: request.id,
193
+ // Install the per-request ALS context. Once installed, any code reached from here
194
+ // (controller method, services it calls, request/response interceptors, etc.) can
195
+ // read the request, methodNode, and (after auth) identity via
196
+ // `RequestContextManager.request()` / `.methodNode()` / `.identity()` without
197
+ // them being threaded through every parameter. `identity` is populated below
198
+ // after the authentication pipeline runs.
199
+ const requestContext = new RequestContext();
200
+ requestContext.request = request;
201
+ requestContext.methodNode = methodNode;
202
+ return this.requestContextManager.run(requestContext, () => __awaiter(this, void 0, void 0, function* () {
203
+ var _a, _b, _c;
204
+ // Instantiate the controller
205
+ const routerControllerResolverSpan = tracingManager.startSpan(SpanKeynameEnum.RouterControllerResolver, SpanKeynameEnum.RouterRequestExecution);
206
+ this.loghandler.debug("Router - Will resolve the controller from the container", {
207
+ routeParameters
218
208
  });
219
- }
220
- catch (error) {
221
- this.loghandler.error("Authentication error", {
222
- highlights: {
223
- errorMessage: (_c = error.message) !== null && _c !== void 0 ? _c : "Unknown error"
224
- },
225
- extra: {
226
- error,
227
- request,
228
- context: methodNode.route.context,
229
- container
230
- },
231
- eventId: request.id,
209
+ const controller = container.resolve(methodNode.route.controllerInstantiationToken);
210
+ this.loghandler.debug("Router - Controller resolved from the container", {
211
+ routeParameters
232
212
  });
233
- // Todo: check if the error is an UnauthorizedHttpError, else create one.
234
- if (error instanceof ForbiddenHttpError === false) {
235
- error = new ForbiddenHttpError("You are not allowed to access this.");
213
+ routerControllerResolverSpan.end();
214
+ this.loghandler.debug("Router - Before calling the authenticationManager", {
215
+ controller,
216
+ routeParameters
217
+ });
218
+ let identity;
219
+ // Authenticate the request
220
+ try {
221
+ const routerRequestAuthenticationSpan = tracingManager.startSpan(SpanKeynameEnum.RouterRequestAuthentication, SpanKeynameEnum.RouterRequestExecution);
222
+ identity = yield this.authenticationManager.authenticate(request, methodNode.route.context, container);
223
+ routerRequestAuthenticationSpan.end();
224
+ // Make the resolved identity available to downstream code via the RequestContext.
225
+ // Services deep in the stack (voters, audit loggers, etc.) can read it from
226
+ // `RequestContextManager.identity()` without needing it passed as a parameter.
227
+ requestContext.identity = identity;
228
+ this.loghandler.debug("Router - Found identity.", {
229
+ highlights: {
230
+ identityId: (_a = identity === null || identity === void 0 ? void 0 : identity.id) !== null && _a !== void 0 ? _a : "None",
231
+ }, extra: {
232
+ identity,
233
+ },
234
+ });
236
235
  }
237
- routerRequestExecutionSpan.end();
238
- return resolve(this.executeErrorResponseInterceptors(error, request, container, methodNode));
239
- }
240
- // Call the controller with the resolved Method arguments
241
- try {
242
- // Verify that the identity making the request is authorized to make such a request
243
- if ((yield this.authorizerManager.isAuthorized(request, methodNode.route.context, container, identity)) === false) {
244
- this.loghandler.error("User not authorized to access this url.", {
245
- request,
246
- context: methodNode.route.context,
247
- container,
248
- identity
236
+ catch (error) {
237
+ this.loghandler.error("Authentication error", {
238
+ highlights: {
239
+ errorMessage: (_b = error.message) !== null && _b !== void 0 ? _b : "Unknown error"
240
+ },
241
+ extra: {
242
+ error,
243
+ request,
244
+ context: methodNode.route.context,
245
+ container
246
+ },
249
247
  });
248
+ // Todo: check if the error is an UnauthorizedHttpError, else create one.
249
+ if (error instanceof ForbiddenHttpError === false) {
250
+ error = new ForbiddenHttpError("You are not allowed to access this.");
251
+ }
250
252
  routerRequestExecutionSpan.end();
251
- return resolve(this.executeErrorResponseInterceptors(new ForbiddenHttpError("You are not allowed to access this."), request, container, methodNode));
253
+ return resolve(this.executeErrorResponseInterceptors(error, request, container, methodNode));
252
254
  }
253
- // Execute all the interceptors
254
- const requestInterceptorsSpan = tracingManager.startSpan(SpanKeynameEnum.RequestInterceptors, SpanKeynameEnum.RouterRequestExecution);
255
- const interceptedRequest = yield this.executeRequestInterceptors(request, container, methodNode);
256
- requestInterceptorsSpan.end();
257
- this.loghandler.debug("Intercepted Request", {
258
- extra: {
259
- request,
260
- interceptedRequest,
261
- },
262
- eventId: request.id,
263
- });
264
- // Resolve the value to inject in the method arguments that have a decorator resolver
265
- let resolvedMethodArguments = this.cache.getCachedControllerMethodArguments(cacheKeyname, interceptedRequest);
266
- // If the cache did not contain the cached controller method arguments
267
- if (resolvedMethodArguments === undefined) {
268
- this.loghandler.debug("Resolved method arguments were not cached, currently resolving", {
255
+ // Call the controller with the resolved Method arguments
256
+ try {
257
+ // Verify that the identity making the request is authorized to make such a request
258
+ if ((yield this.authorizerManager.isAuthorized(request, methodNode.route.context, container, identity)) === false) {
259
+ this.loghandler.error("User not authorized to access this url.", {
260
+ request,
261
+ context: methodNode.route.context,
262
+ container,
263
+ identity
264
+ });
265
+ routerRequestExecutionSpan.end();
266
+ return resolve(this.executeErrorResponseInterceptors(new ForbiddenHttpError("You are not allowed to access this."), request, container, methodNode));
267
+ }
268
+ // Execute all the interceptors
269
+ const requestInterceptorsSpan = tracingManager.startSpan(SpanKeynameEnum.RequestInterceptors, SpanKeynameEnum.RouterRequestExecution);
270
+ const interceptedRequest = yield this.executeRequestInterceptors(request, container, methodNode);
271
+ requestInterceptorsSpan.end();
272
+ this.loghandler.debug("Intercepted Request", {
269
273
  extra: {
270
274
  request,
271
275
  interceptedRequest,
272
276
  },
273
- eventId: request.id,
274
277
  });
275
- resolvedMethodArguments = [];
276
- for (const methodArgument of methodNode.route.methodArguments) {
277
- resolvedMethodArguments.push(yield this.controllerMethodParameterDecoratorResolver.resolve(methodArgument, interceptedRequest, routeParameters, identity));
278
+ // Resolve the value to inject in the method arguments that have a decorator resolver
279
+ let resolvedMethodArguments = this.cache.getCachedControllerMethodArguments(cacheKeyname, interceptedRequest);
280
+ // If the cache did not contain the cached controller method arguments
281
+ if (resolvedMethodArguments === undefined) {
282
+ this.loghandler.debug("Resolved method arguments were not cached, currently resolving", {
283
+ extra: {
284
+ request,
285
+ interceptedRequest,
286
+ },
287
+ });
288
+ resolvedMethodArguments = [];
289
+ for (const methodArgument of methodNode.route.methodArguments) {
290
+ resolvedMethodArguments.push(yield this.controllerMethodParameterDecoratorResolver.resolve(methodArgument, interceptedRequest, routeParameters, identity));
291
+ }
292
+ this.cache.setControllerMethodArguments(cacheKeyname, interceptedRequest, resolvedMethodArguments);
293
+ this.loghandler.debug("Resolved method arguments cached for next call.", {
294
+ request,
295
+ interceptedRequest,
296
+ resolvedMethodArguments,
297
+ });
278
298
  }
279
- this.cache.setControllerMethodArguments(cacheKeyname, interceptedRequest, resolvedMethodArguments);
280
- this.loghandler.debug("Resolved method arguments cached for next call.", {
281
- request,
282
- interceptedRequest,
283
- resolvedMethodArguments,
284
- });
285
- }
286
- else {
287
- this.loghandler.debug("Method arguments were successfully cached and will be used.", {
288
- request,
289
- interceptedRequest,
290
- resolvedMethodArguments,
291
- });
292
- }
293
- const controllerResponse = controller[methodNode.route.methodPropertyKey](...resolvedMethodArguments);
294
- // This resolves the promise if it's a promise or promisifies the value
295
- // https://stackoverflow.com/a/27760489/684101
296
- const response = yield Promise.resolve(controllerResponse);
297
- this.loghandler.debug("Router - The response returned by the controller", {
298
- extra: { response },
299
- eventId: request.id,
300
- });
301
- let returnedResponse;
302
- // If the response is already a Response object, return the response
303
- if (response instanceof Response) {
304
- this.loghandler.debug("Router - Response returned by the controller is a Response object", {
299
+ else {
300
+ this.loghandler.debug("Method arguments were successfully cached and will be used.", {
301
+ request,
302
+ interceptedRequest,
303
+ resolvedMethodArguments,
304
+ });
305
+ }
306
+ const controllerResponse = controller[methodNode.route.methodPropertyKey](...resolvedMethodArguments);
307
+ // This resolves the promise if it's a promise or promisifies the value
308
+ // https://stackoverflow.com/a/27760489/684101
309
+ const response = yield Promise.resolve(controllerResponse);
310
+ this.loghandler.debug("Router - The response returned by the controller", {
305
311
  extra: { response },
306
- eventId: request.id,
307
312
  });
308
- returnedResponse = response;
309
- }
310
- else {
311
- // If the response is not a response object, but the method hasn't thrown an error, assume the
312
- // returned response is directly the body. Also assume an Http Status code of 200.
313
- returnedResponse = new Response();
314
- returnedResponse.status = 200;
315
- returnedResponse.body = response;
316
- this.loghandler.debug("Router - Response returned by the controller is NOT a Response object", {
313
+ let returnedResponse;
314
+ // If the response is already a Response object, return the response
315
+ if (response instanceof Response) {
316
+ this.loghandler.debug("Router - Response returned by the controller is a Response object", {
317
+ extra: { response },
318
+ });
319
+ returnedResponse = response;
320
+ }
321
+ else {
322
+ // If the response is not a response object, but the method hasn't thrown an error, assume the
323
+ // returned response is directly the body. Also assume an Http Status code of 200.
324
+ returnedResponse = new Response();
325
+ returnedResponse.status = 200;
326
+ returnedResponse.body = response;
327
+ this.loghandler.debug("Router - Response returned by the controller is NOT a Response object", {
328
+ extra: {
329
+ response,
330
+ returnedResponse,
331
+ },
332
+ });
333
+ }
334
+ this.loghandler.debug("Router - The response before calling the response interceptors ", {
317
335
  extra: {
318
336
  response,
319
337
  returnedResponse,
320
338
  },
321
- eventId: request.id,
322
339
  });
340
+ const responseInterceptorsSpan = tracingManager.startSpan(SpanKeynameEnum.ResponseInterceptors, SpanKeynameEnum.RouterRequestExecution);
341
+ const interceptedResponse = yield this.executeResponseInterceptors(returnedResponse, request, container, methodNode);
342
+ responseInterceptorsSpan.end();
343
+ routerRequestExecutionSpan.end();
344
+ return resolve(interceptedResponse);
323
345
  }
324
- this.loghandler.debug("Router - The response before calling the response interceptors ", {
325
- extra: {
326
- response,
327
- returnedResponse,
328
- },
329
- eventId: request.id,
330
- });
331
- const responseInterceptorsSpan = tracingManager.startSpan(SpanKeynameEnum.ResponseInterceptors, SpanKeynameEnum.RouterRequestExecution);
332
- const interceptedResponse = yield this.executeResponseInterceptors(returnedResponse, request, container, methodNode);
333
- responseInterceptorsSpan.end();
334
- routerRequestExecutionSpan.end();
335
- return resolve(interceptedResponse);
336
- }
337
- catch (error) {
338
- this.loghandler.error("Router - There was an error trying to execute the request in the router", {
339
- highlights: {
340
- errorMessage: (_d = error.message) !== null && _d !== void 0 ? _d : "Unknown error",
341
- },
342
- extra: {
343
- error,
344
- },
345
- eventId: request.id,
346
- });
347
- // Execute router interceptors for the error response;
348
- routerRequestExecutionSpan.end();
349
- return resolve(this.executeErrorResponseInterceptors(error, request, container, methodNode));
350
- }
346
+ catch (error) {
347
+ this.loghandler.error("Router - There was an error trying to execute the request in the router", {
348
+ highlights: {
349
+ errorMessage: (_c = error.message) !== null && _c !== void 0 ? _c : "Unknown error",
350
+ },
351
+ extra: {
352
+ error,
353
+ },
354
+ });
355
+ // Execute router interceptors for the error response;
356
+ routerRequestExecutionSpan.end();
357
+ return resolve(this.executeErrorResponseInterceptors(error, request, container, methodNode));
358
+ }
359
+ })); // closes requestContextManager.run(requestContext, async () => ...)
351
360
  }));
352
361
  }
353
362
  /**
@@ -388,7 +397,6 @@ let Router = class Router {
388
397
  request,
389
398
  methodNode,
390
399
  },
391
- eventId: request.id,
392
400
  });
393
401
  // Execute all the request interceptors
394
402
  let interceptedRequest = request;
@@ -412,7 +420,6 @@ let Router = class Router {
412
420
  extra: {
413
421
  interceptor
414
422
  },
415
- eventId: request.id,
416
423
  });
417
424
  continue;
418
425
  }
@@ -430,7 +437,6 @@ let Router = class Router {
430
437
  error,
431
438
  interceptor,
432
439
  },
433
- eventId: request.id,
434
440
  });
435
441
  throw error;
436
442
  }
@@ -442,7 +448,6 @@ let Router = class Router {
442
448
  interceptedRequest,
443
449
  methodNode,
444
450
  },
445
- eventId: request.id,
446
451
  });
447
452
  return interceptedRequest;
448
453
  });
@@ -465,7 +470,6 @@ let Router = class Router {
465
470
  request,
466
471
  methodNode,
467
472
  },
468
- eventId: request.id,
469
473
  });
470
474
  // Execute all the request interceptors
471
475
  let interceptedResponse = response;
@@ -489,7 +493,6 @@ let Router = class Router {
489
493
  extra: {
490
494
  interceptor
491
495
  },
492
- eventId: request.id,
493
496
  });
494
497
  continue;
495
498
  }
@@ -505,7 +508,6 @@ let Router = class Router {
505
508
  error,
506
509
  interceptor,
507
510
  },
508
- eventId: request.id,
509
511
  });
510
512
  throw error;
511
513
  }
@@ -518,7 +520,6 @@ let Router = class Router {
518
520
  request,
519
521
  methodNode,
520
522
  },
521
- eventId: request.id,
522
523
  });
523
524
  return interceptedResponse;
524
525
  });
@@ -577,7 +578,6 @@ let Router = class Router {
577
578
  extra: {
578
579
  interceptor
579
580
  },
580
- eventId: request.id,
581
581
  });
582
582
  continue;
583
583
  }
@@ -591,7 +591,6 @@ let Router = class Router {
591
591
  interceptorName: interceptor.constructor.name,
592
592
  },
593
593
  extra: { error },
594
- eventId: request.id,
595
594
  });
596
595
  throw error;
597
596
  }
@@ -605,7 +604,6 @@ let Router = class Router {
605
604
  request,
606
605
  methodNode,
607
606
  },
608
- eventId: request.id,
609
607
  });
610
608
  return interceptedResponse;
611
609
  });
@@ -617,7 +615,8 @@ Router = __decorate([
617
615
  __param(0, inject("LogHandlerInterface")),
618
616
  __param(2, inject("AuthorizerManagerInterface")),
619
617
  __param(3, inject("AuthenticationManagerInterface")),
620
- __metadata("design:paramtypes", [Object, ControllerMethodParameterDecoratorResolver, Object, Object, RouterCache])
618
+ __metadata("design:paramtypes", [Object, ControllerMethodParameterDecoratorResolver, Object, Object, RouterCache,
619
+ RequestContextManager])
621
620
  ], Router);
622
621
  export { Router };
623
622
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/router.ts"],"names":[],"mappings":"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"}