@pristine-ts/networking 0.0.214 → 0.0.217

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 (67) hide show
  1. package/dist/lib/cjs/cache/cache.js +19 -0
  2. package/dist/lib/cjs/cache/cache.js.map +1 -0
  3. package/dist/lib/cjs/cache/cached.router-route.js +33 -0
  4. package/dist/lib/cjs/cache/cached.router-route.js.map +1 -0
  5. package/dist/lib/cjs/cache/router.cache.js +66 -0
  6. package/dist/lib/cjs/cache/router.cache.js.map +1 -0
  7. package/dist/lib/cjs/handlers/request.event-handler.js.map +1 -1
  8. package/dist/lib/cjs/interceptors/default-content-type-response-header.interceptor.js.map +1 -1
  9. package/dist/lib/cjs/interceptors/request-body-converter.interceptor.js.map +1 -1
  10. package/dist/lib/cjs/interceptors/response-headers.interceptor.js.map +1 -1
  11. package/dist/lib/cjs/mappers/request.mapper.js.map +1 -1
  12. package/dist/lib/cjs/models/cached.router-route.js +33 -0
  13. package/dist/lib/cjs/models/cached.router-route.js.map +1 -0
  14. package/dist/lib/cjs/models/router.cache.js +52 -0
  15. package/dist/lib/cjs/models/router.cache.js.map +1 -0
  16. package/dist/lib/cjs/networking.module.js +12 -0
  17. package/dist/lib/cjs/networking.module.js.map +1 -1
  18. package/dist/lib/cjs/resolvers/body-parameter-decorator.resolver.js.map +1 -1
  19. package/dist/lib/cjs/resolvers/controller-method-parameter-decorator.resolver.js.map +1 -1
  20. package/dist/lib/cjs/resolvers/headers-parameter-decorator.resolver.js.map +1 -1
  21. package/dist/lib/cjs/resolvers/identity-parameter-decorator.resolver.js.map +1 -1
  22. package/dist/lib/cjs/resolvers/query-parameter-decorator.resolver.js +3 -6
  23. package/dist/lib/cjs/resolvers/query-parameter-decorator.resolver.js.map +1 -1
  24. package/dist/lib/cjs/resolvers/query-parameters-decorator.resolver.js +10 -7
  25. package/dist/lib/cjs/resolvers/query-parameters-decorator.resolver.js.map +1 -1
  26. package/dist/lib/cjs/resolvers/request-parameter-decorator.resolver.js.map +1 -1
  27. package/dist/lib/cjs/resolvers/route-parameter-decorator.resolver.js.map +1 -1
  28. package/dist/lib/cjs/router.js +51 -18
  29. package/dist/lib/cjs/router.js.map +1 -1
  30. package/dist/lib/esm/cache/cache.js +3 -0
  31. package/dist/lib/esm/cache/cache.js.map +1 -0
  32. package/dist/lib/esm/cache/cached.router-route.js +29 -0
  33. package/dist/lib/esm/cache/cached.router-route.js.map +1 -0
  34. package/dist/lib/esm/cache/router.cache.js +63 -0
  35. package/dist/lib/esm/cache/router.cache.js.map +1 -0
  36. package/dist/lib/esm/handlers/request.event-handler.js.map +1 -1
  37. package/dist/lib/esm/interceptors/default-content-type-response-header.interceptor.js.map +1 -1
  38. package/dist/lib/esm/interceptors/request-body-converter.interceptor.js.map +1 -1
  39. package/dist/lib/esm/interceptors/response-headers.interceptor.js.map +1 -1
  40. package/dist/lib/esm/mappers/request.mapper.js.map +1 -1
  41. package/dist/lib/esm/models/cached.router-route.js +29 -0
  42. package/dist/lib/esm/models/cached.router-route.js.map +1 -0
  43. package/dist/lib/esm/models/router.cache.js +49 -0
  44. package/dist/lib/esm/models/router.cache.js.map +1 -0
  45. package/dist/lib/esm/networking.module.js +12 -0
  46. package/dist/lib/esm/networking.module.js.map +1 -1
  47. package/dist/lib/esm/resolvers/body-parameter-decorator.resolver.js.map +1 -1
  48. package/dist/lib/esm/resolvers/controller-method-parameter-decorator.resolver.js.map +1 -1
  49. package/dist/lib/esm/resolvers/headers-parameter-decorator.resolver.js.map +1 -1
  50. package/dist/lib/esm/resolvers/identity-parameter-decorator.resolver.js.map +1 -1
  51. package/dist/lib/esm/resolvers/query-parameter-decorator.resolver.js +3 -3
  52. package/dist/lib/esm/resolvers/query-parameter-decorator.resolver.js.map +1 -1
  53. package/dist/lib/esm/resolvers/query-parameters-decorator.resolver.js +10 -4
  54. package/dist/lib/esm/resolvers/query-parameters-decorator.resolver.js.map +1 -1
  55. package/dist/lib/esm/resolvers/request-parameter-decorator.resolver.js.map +1 -1
  56. package/dist/lib/esm/resolvers/route-parameter-decorator.resolver.js.map +1 -1
  57. package/dist/lib/esm/router.js +51 -15
  58. package/dist/lib/esm/router.js.map +1 -1
  59. package/dist/types/cache/cache.d.ts +2 -0
  60. package/dist/types/cache/cached.router-route.d.ts +13 -0
  61. package/dist/types/cache/router.cache.d.ts +15 -0
  62. package/dist/types/decorators/response-header.decorator.d.ts +1 -1
  63. package/dist/types/models/cached.router-route.d.ts +13 -0
  64. package/dist/types/models/router.cache.d.ts +15 -0
  65. package/dist/types/networking.module.d.ts +1 -0
  66. package/dist/types/router.d.ts +4 -1
  67. package/package.json +7 -8
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./cached.router-route"), exports);
18
+ __exportStar(require("./router.cache"), exports);
19
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../src/cache/cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,iDAA+B"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CachedRouterRoute = void 0;
4
+ const common_1 = require("@pristine-ts/common");
5
+ class CachedRouterRoute {
6
+ constructor(methodNode) {
7
+ this.methodNode = methodNode;
8
+ this.cachedControllerMethodArguments = {};
9
+ }
10
+ hashRequest(request) {
11
+ return common_1.RequestUtil.hash(request);
12
+ }
13
+ getCachedControllerMethodArguments(request) {
14
+ // Hashed the request
15
+ const hash = this.hashRequest(request);
16
+ if (hash === null) {
17
+ return;
18
+ }
19
+ // Return the arguments if the hashed request exists
20
+ return this.cachedControllerMethodArguments[hash];
21
+ }
22
+ cacheControllerMethodArguments(request, methodArguments) {
23
+ // Hashed the request
24
+ const hash = this.hashRequest(request);
25
+ if (hash === null) {
26
+ return;
27
+ }
28
+ // Save the method arguments
29
+ this.cachedControllerMethodArguments[hash] = methodArguments;
30
+ }
31
+ }
32
+ exports.CachedRouterRoute = CachedRouterRoute;
33
+ //# sourceMappingURL=cached.router-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached.router-route.js","sourceRoot":"","sources":["../../../../src/cache/cached.router-route.ts"],"names":[],"mappings":";;;AACA,gDAAyD;AAEzD,MAAa,iBAAiB;IAI1B,YAA4B,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;QAHhD,oCAA+B,GAAqC,EAAE,CAAC;IAK/E,CAAC;IAEO,WAAW,CAAC,OAAgB;QAChC,OAAO,oBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,kCAAkC,CAAC,OAAgB;QAC/C,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAG,IAAI,KAAK,IAAI,EAAE;YACd,OAAO;SACV;QAED,oDAAoD;QACpD,OAAO,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,8BAA8B,CAAC,OAAgB,EAAE,eAAsB;QACnE,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAG,IAAI,KAAK,IAAI,EAAE;YACd,OAAO;SACV;QAED,4BAA4B;QAC5B,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;IACjE,CAAC;CACJ;AAnCD,8CAmCC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RouterCache = void 0;
16
+ const tsyringe_1 = require("tsyringe");
17
+ const cached_router_route_1 = require("./cached.router-route");
18
+ const networking_module_keyname_1 = require("../networking.module.keyname");
19
+ let RouterCache = class RouterCache {
20
+ constructor(isActive) {
21
+ this.isActive = isActive;
22
+ this.routes = {};
23
+ }
24
+ cleanIfNeeded() {
25
+ // todo: implement a proper LRU cache and also, remove the two layers of cache and flatten it to one.
26
+ }
27
+ get(keyname) {
28
+ if (this.isActive === false) {
29
+ return undefined;
30
+ }
31
+ return this.routes[keyname];
32
+ }
33
+ set(keyname, methodNode) {
34
+ const cachedRouterRoute = new cached_router_route_1.CachedRouterRoute(methodNode);
35
+ if (this.isActive === false) {
36
+ return cachedRouterRoute;
37
+ }
38
+ // todo Calculate the size and add it to the current total
39
+ // Whenever we add a new element to the cache, we have to check if the cache needs to be cleaned
40
+ this.cleanIfNeeded();
41
+ this.routes[keyname] = cachedRouterRoute;
42
+ return cachedRouterRoute;
43
+ }
44
+ getCachedControllerMethodArguments(keyname, request) {
45
+ var _a;
46
+ if (this.isActive === false) {
47
+ return undefined;
48
+ }
49
+ return (_a = this.routes[keyname]) === null || _a === void 0 ? void 0 : _a.getCachedControllerMethodArguments(request);
50
+ }
51
+ setControllerMethodArguments(keyname, request, methodArguments) {
52
+ var _a;
53
+ if (this.isActive === false) {
54
+ return;
55
+ }
56
+ (_a = this.routes[keyname]) === null || _a === void 0 ? void 0 : _a.cacheControllerMethodArguments(request, methodArguments);
57
+ return;
58
+ }
59
+ };
60
+ RouterCache = __decorate([
61
+ (0, tsyringe_1.injectable)(),
62
+ __param(0, (0, tsyringe_1.inject)(`%${networking_module_keyname_1.NetworkingModuleKeyname}.routerCache.isActive%`)),
63
+ __metadata("design:paramtypes", [Boolean])
64
+ ], RouterCache);
65
+ exports.RouterCache = RouterCache;
66
+ //# sourceMappingURL=router.cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.cache.js","sourceRoot":"","sources":["../../../../src/cache/router.cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,uCAAuD;AACvD,+DAAwD;AAExD,4EAAqE;AAG9D,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGpB,YAAiG,QAAiB;QAAjB,aAAQ,GAAR,QAAQ,CAAS;QAF3G,WAAM,GAAkD,EAAE,CAAC;IAGlE,CAAC;IAEO,aAAa;QACjB,qGAAqG;IACzG,CAAC;IAEM,GAAG,CAAC,OAAe;QACtB,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEM,GAAG,CAAC,OAAe,EAAE,UAA4B;QACpD,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO,iBAAiB,CAAC;SAC5B;QAED,0DAA0D;QAE1D,gGAAgG;QAChG,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC;QAEzC,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEM,kCAAkC,CAAC,OAAe,EAAE,OAAgB;;QACvE,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,kCAAkC,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEM,4BAA4B,CAAC,OAAe,EAAE,OAAgB,EAAE,eAAsB;;QACzF,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACxB,OAAO;SACV;QAED,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,8BAA8B,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAE/E,OAAO;IACX,CAAC;CAEJ,CAAA;AArDY,WAAW;IADvB,IAAA,qBAAU,GAAE;IAIW,WAAA,IAAA,iBAAM,EAAC,IAAI,mDAAuB,wBAAwB,CAAC,CAAA;;GAHtE,WAAW,CAqDvB;AArDY,kCAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.event-handler.js","sourceRoot":"","sources":["../../../../src/handlers/request.event-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8E;AAC9E,uCAAiE;AAEjE,gDAAmG;AAEnG,4EAAqE;AAMrE,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAG5B,YAAwD,MAAuB,EACnB,UAA+B,EAC3B,cAAuC,EAClB,mBAAwC;QAHrE,WAAM,GAAN,MAAM,CAAiB;QACnB,eAAU,GAAV,UAAU,CAAqB;QAC3B,mBAAc,GAAd,cAAc,CAAyB;QAClB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAL7H,aAAQ,GAAW,KAAK,CAAC,CAAC,wHAAwH;IAMlJ,CAAC;IAED,QAAQ,CAAI,KAAe;QACvB,OAAO,KAAK,CAAC,OAAO,YAAY,gBAAO,CAAC;IAC5C,CAAC;IAEK,MAAM,CAAC,KAAqB;;YAC9B,8CAA8C;YAC9C,yCAAyC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnB,gBAAgB;YAChB,qEAAqE;YACrE,EAAE;YACF,0BAA0B;YAC1B,0BAA0B;YAC1B,EAAE;YACF,4CAA4C;YAC5C,yDAAyD;YAGzD,iDAAiD;YACjD,qEAAqE;YAErE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,4DAA4D,EAAE;gBAChF,KAAK;aACR,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,0DAA0D,EAAE;gBAC9E,KAAK;gBACL,QAAQ;aACX,CAAC,CAAA;YAEF,gBAAgB;YAChB,kFAAkF;YAElF,OAAO,IAAI,oBAAa,CAAoB,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjE,CAAC;KAAA;CAEJ,CAAA;AA/CY,mBAAmB;IAH/B,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,YAAY,CAAC;IAC1C,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,IAAA,iBAAM,EAAC,yBAAyB,CAAC,CAAA;IACjC,WAAA,IAAA,iBAAM,EAAC,iCAAwB,CAAC,qBAAqB,CAAC,CAAA;;GAN1D,mBAAmB,CA+C/B;AA/CY,kDAAmB"}
1
+ {"version":3,"file":"request.event-handler.js","sourceRoot":"","sources":["../../../../src/handlers/request.event-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8E;AAC9E,uCAAiE;AAEjE,gDAAmG;AAEnG,4EAAqE;AAM9D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAG5B,YAAwD,MAAuB,EACnB,UAA+B,EAC3B,cAAuC,EAClB,mBAAwC;QAHrE,WAAM,GAAN,MAAM,CAAiB;QACnB,eAAU,GAAV,UAAU,CAAqB;QAC3B,mBAAc,GAAd,cAAc,CAAyB;QAClB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAL7H,aAAQ,GAAW,KAAK,CAAC,CAAC,wHAAwH;IAMlJ,CAAC;IAED,QAAQ,CAAI,KAAe;QACvB,OAAO,KAAK,CAAC,OAAO,YAAY,gBAAO,CAAC;IAC5C,CAAC;IAEK,MAAM,CAAC,KAAqB;;YAC9B,8CAA8C;YAC9C,yCAAyC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnB,gBAAgB;YAChB,qEAAqE;YACrE,EAAE;YACF,0BAA0B;YAC1B,0BAA0B;YAC1B,EAAE;YACF,4CAA4C;YAC5C,yDAAyD;YAGzD,iDAAiD;YACjD,qEAAqE;YAErE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,4DAA4D,EAAE;gBAChF,KAAK;aACR,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEpF,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,0DAA0D,EAAE;gBAC9E,KAAK;gBACL,QAAQ;aACX,CAAC,CAAA;YAEF,gBAAgB;YAChB,kFAAkF;YAElF,OAAO,IAAI,oBAAa,CAAoB,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjE,CAAC;KAAA;CAEJ,CAAA;AA/CY,mBAAmB;IAH/B,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,YAAY,CAAC;IAC1C,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;IAC7B,WAAA,IAAA,iBAAM,EAAC,yBAAyB,CAAC,CAAA;IACjC,WAAA,IAAA,iBAAM,EAAC,iCAAwB,CAAC,qBAAqB,CAAC,CAAA;;GAN1D,mBAAmB,CA+C/B;AA/CY,kDAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"default-content-type-response-header.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/default-content-type-response-header.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAmG;AACnG,4EAAqE;AAGrE,uCAA4C;AAG5C;;;GAGG;AAIH,IAAa,2CAA2C,GAAxD,MAAa,2CAA2C;IAEpD;;;;;;OAMG;IACH,YAAsG,gCAAwC,EAC/B,QAAiB,EACpE,UAA+B;QAFW,qCAAgC,GAAhC,gCAAgC,CAAQ;QAC/B,aAAQ,GAAR,QAAQ,CAAS;QACpE,eAAU,GAAV,UAAU,CAAqB;IAAE,CAAC;IAE9F;;;;;OAKG;IACG,iBAAiB,CAAC,QAAkB,EAAE,OAAgB,EAAE,UAA6B;;YACvF,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACxB,OAAO,QAAQ,CAAC;aACnB;YAED,IAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,EAAC;gBAClC,OAAO,QAAQ,CAAC;aACnB;YAED,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAA;YAElF,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;CACJ,CAAA;AAjCY,2CAA2C;IAHvD,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;IAUI,WAAA,IAAA,iBAAM,EAAC,IAAI,mDAAuB,oCAAoC,CAAC,CAAA;IACvE,WAAA,IAAA,iBAAM,EAAC,IAAI,mDAAuB,6CAA6C,CAAC,CAAA;IAChF,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GAXjC,2CAA2C,CAiCvD;AAjCY,kGAA2C"}
1
+ {"version":3,"file":"default-content-type-response-header.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/default-content-type-response-header.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAmG;AACnG,4EAAqE;AAGrE,uCAA4C;AAG5C;;;GAGG;AAII,IAAM,2CAA2C,GAAjD,MAAM,2CAA2C;IAEpD;;;;;;OAMG;IACH,YAAsG,gCAAwC,EAC/B,QAAiB,EACpE,UAA+B;QAFW,qCAAgC,GAAhC,gCAAgC,CAAQ;QAC/B,aAAQ,GAAR,QAAQ,CAAS;QACpE,eAAU,GAAV,UAAU,CAAqB;IAAE,CAAC;IAE9F;;;;;OAKG;IACG,iBAAiB,CAAC,QAAkB,EAAE,OAAgB,EAAE,UAA6B;;YACvF,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACxB,OAAO,QAAQ,CAAC;aACnB;YAED,IAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,EAAC;gBAClC,OAAO,QAAQ,CAAC;aACnB;YAED,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAA;YAElF,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;CACJ,CAAA;AAjCY,2CAA2C;IAHvD,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;IAUI,WAAA,IAAA,iBAAM,EAAC,IAAI,mDAAuB,oCAAoC,CAAC,CAAA;IACvE,WAAA,IAAA,iBAAM,EAAC,IAAI,mDAAuB,6CAA6C,CAAC,CAAA;IAChF,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GAXjC,2CAA2C,CAiCvD;AAjCY,kGAA2C"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-body-converter.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/request-body-converter.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA4C;AAE5C,gDAAyF;AACzF,4EAAqE;AAErE,+EAAuE;AAEvE;;;GAGG;AAIH,IAAa,+BAA+B,GAA5C,MAAa,+BAA+B;IAExC;;;;;OAKG;IACH,YAAwG,QAAiB,EAC7D,UAA+B;QADa,aAAQ,GAAR,QAAQ,CAAS;QAC7D,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IAED;;;OAGG;IACG,gBAAgB,CAAC,OAAgB;;YACnC,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACxB,OAAO,OAAO,CAAC;aAClB;YAED,IAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE;gBAC5C,OAAO,OAAO,CAAC;aAClB;YAED,MAAM,WAAW,GAAW,OAAO,CAAC,SAAS,CAAC,cAAc,CAAW,CAAC;YAExE,QAAQ,WAAW,CAAC,WAAW,EAAE,EAAE;gBAC/B,KAAK,kBAAkB;oBAGnB,QAAQ,OAAO,OAAO,CAAC,IAAI,EAAE;wBACzB,KAAK,WAAW;4BACZ,OAAO,OAAO,CAAC;wBACnB,KAAK,QAAQ;4BACT,IAAG,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;gCAClC,MAAM,YAAY,GAAG,kHAAkH,CAAC;gCACxI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gCAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;6BAChD;4BACD,OAAO,OAAO,CAAC;wBAEnB,KAAK,QAAQ;4BACT,IAAI;gCACA,IAAG,OAAO,CAAC,IAAI,EAAE;oCACb,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iCAC3C;6BACJ;4BACD,OAAO,CAAC,EAAE;gCACN,MAAM,YAAY,GAAG,kIAAkI,CAAC;gCACxJ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gCAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;6BAChD;4BACD,MAAM;wBAEV;4BACI,MAAM,YAAY,GAAG,iGAAiG,CAAC;4BACvH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;4BAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;qBACpD;aAGR;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;CAEJ,CAAA;AAtEY,+BAA+B;IAH3C,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;IASI,WAAA,IAAA,iBAAM,EAAC,GAAG,GAAG,mDAAuB,GAAG,iCAAiC,CAAC,CAAA;IACzE,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GATjC,+BAA+B,CAsE3C;AAtEY,0EAA+B"}
1
+ {"version":3,"file":"request-body-converter.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/request-body-converter.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA4C;AAE5C,gDAAyF;AACzF,4EAAqE;AAErE,+EAAuE;AAEvE;;;GAGG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC;;;;;OAKG;IACH,YAAwG,QAAiB,EAC7D,UAA+B;QADa,aAAQ,GAAR,QAAQ,CAAS;QAC7D,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IAED;;;OAGG;IACG,gBAAgB,CAAC,OAAgB;;YACnC,IAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACxB,OAAO,OAAO,CAAC;aAClB;YAED,IAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE;gBAC5C,OAAO,OAAO,CAAC;aAClB;YAED,MAAM,WAAW,GAAW,OAAO,CAAC,SAAS,CAAC,cAAc,CAAW,CAAC;YAExE,QAAQ,WAAW,CAAC,WAAW,EAAE,EAAE;gBAC/B,KAAK,kBAAkB;oBAGnB,QAAQ,OAAO,OAAO,CAAC,IAAI,EAAE;wBACzB,KAAK,WAAW;4BACZ,OAAO,OAAO,CAAC;wBACnB,KAAK,QAAQ;4BACT,IAAG,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;gCAClC,MAAM,YAAY,GAAG,kHAAkH,CAAC;gCACxI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gCAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;6BAChD;4BACD,OAAO,OAAO,CAAC;wBAEnB,KAAK,QAAQ;4BACT,IAAI;gCACA,IAAG,OAAO,CAAC,IAAI,EAAE;oCACb,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iCAC3C;6BACJ;4BACD,OAAO,CAAC,EAAE;gCACN,MAAM,YAAY,GAAG,kIAAkI,CAAC;gCACxJ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gCAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;6BAChD;4BACD,MAAM;wBAEV;4BACI,MAAM,YAAY,GAAG,iGAAiG,CAAC;4BACvH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;4BAEpC,MAAM,IAAI,8CAAoB,CAAC,YAAY,CAAC,CAAC;qBACpD;aAGR;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;CAEJ,CAAA;AAtEY,+BAA+B;IAH3C,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;IASI,WAAA,IAAA,iBAAM,EAAC,GAAG,GAAG,mDAAuB,GAAG,iCAAiC,CAAC,CAAA;IACzE,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GATjC,+BAA+B,CAsE3C;AAtEY,0EAA+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"response-headers.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/response-headers.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAmG;AACnG,4EAAqE;AAGrE,uCAAoC;AACpC;;;GAGG;AAIH,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;IAEnC;;;;;OAKG;IACG,iBAAiB,CAAC,QAAkB,EAAE,OAAgB,EAAE,UAA6B;;YACvF,IAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAC;gBACpG,QAAQ,CAAC,UAAU,iCAAK,QAAQ,CAAC,OAAO,GAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;aAC3F;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;CACJ,CAAA;AAfY,0BAA0B;IAHtC,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;GACA,0BAA0B,CAetC;AAfY,gEAA0B"}
1
+ {"version":3,"file":"response-headers.interceptor.js","sourceRoot":"","sources":["../../../../src/interceptors/response-headers.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAAmG;AACnG,4EAAqE;AAGrE,uCAAoC;AACpC;;;GAGG;AAII,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAEnC;;;;;OAKG;IACG,iBAAiB,CAAC,QAAkB,EAAE,OAAgB,EAAE,UAA6B;;YACvF,IAAG,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAC;gBACpG,QAAQ,CAAC,UAAU,iCAAK,QAAQ,CAAC,OAAO,GAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;aAC3F;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;CACJ,CAAA;AAfY,0BAA0B;IAHtC,IAAA,YAAG,EAAC,iCAAwB,CAAC,kBAAkB,CAAC;IAChD,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,qBAAU,GAAE;GACA,0BAA0B,CAetC;AAfY,gEAA0B"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.mapper.js","sourceRoot":"","sources":["../../../../src/mappers/request.mapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gDAAmG;AACnG,uCAAoC;AACpC,4EAAqE;AACrE,4CAM2B;AAK3B,IAAa,aAAa,GAA1B,MAAa,aAAa;IACtB,eAAe,CAAC,QAAa,EAAE,gBAAgD;QAC3E,OAAO,QAAQ,YAAY,gBAAO,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,QAAa,EAAE,gBAAgD;QAC/D,OAAO;YACH,cAAc,EAAE,YAAY;YAC5B,MAAM,EAAE,CAAC,IAAI,YAAK,CAAU,SAAS,EAAE,QAAQ,CAAC,CAAC;SACpD,CAAC;IACN,CAAC;IAED,sBAAsB,CAAC,aAA+C,EAAE,QAAa,EAAE,gBAAgD;QACnI,OAAO,aAAa,CAAC,QAAQ,YAAY,iBAAQ,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,aAA+C,EAAE,QAAa,EAAE,gBAAgD;QACvH,OAAO,aAAa,CAAC,QAAQ,CAAC;IAClC,CAAC;CAEJ,CAAA;AApBY,aAAa;IAHzB,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,WAAW,CAAC;IACzC,IAAA,qBAAU,GAAE;GACA,aAAa,CAoBzB;AApBY,sCAAa"}
1
+ {"version":3,"file":"request.mapper.js","sourceRoot":"","sources":["../../../../src/mappers/request.mapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gDAAmG;AACnG,uCAAoC;AACpC,4EAAqE;AACrE,4CAM2B;AAKpB,IAAM,aAAa,GAAnB,MAAM,aAAa;IACtB,eAAe,CAAC,QAAa,EAAE,gBAAgD;QAC3E,OAAO,QAAQ,YAAY,gBAAO,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,QAAa,EAAE,gBAAgD;QAC/D,OAAO;YACH,cAAc,EAAE,YAAY;YAC5B,MAAM,EAAE,CAAC,IAAI,YAAK,CAAU,SAAS,EAAE,QAAQ,CAAC,CAAC;SACpD,CAAC;IACN,CAAC;IAED,sBAAsB,CAAC,aAA+C,EAAE,QAAa,EAAE,gBAAgD;QACnI,OAAO,aAAa,CAAC,QAAQ,YAAY,iBAAQ,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,aAA+C,EAAE,QAAa,EAAE,gBAAgD;QACvH,OAAO,aAAa,CAAC,QAAQ,CAAC;IAClC,CAAC;CAEJ,CAAA;AApBY,aAAa;IAHzB,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,WAAW,CAAC;IACzC,IAAA,qBAAU,GAAE;GACA,aAAa,CAoBzB;AApBY,sCAAa"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CachedRouterRoute = void 0;
4
+ const common_1 = require("@pristine-ts/common");
5
+ class CachedRouterRoute {
6
+ constructor(methodNode) {
7
+ this.methodNode = methodNode;
8
+ this.cachedControllerMethodArguments = {};
9
+ }
10
+ hashRequest(request) {
11
+ return common_1.RequestUtil.hash(request);
12
+ }
13
+ getCachedControllerMethodArguments(request) {
14
+ // Hashed the request
15
+ const hash = this.hashRequest(request);
16
+ if (hash === null) {
17
+ return;
18
+ }
19
+ // Return the arguments if the hashed request exists
20
+ return this.cachedControllerMethodArguments[hash];
21
+ }
22
+ cacheControllerMethodArguments(request, methodArguments) {
23
+ // Hashed the request
24
+ const hash = this.hashRequest(request);
25
+ if (hash === null) {
26
+ return;
27
+ }
28
+ // Save the method arguments
29
+ this.cachedControllerMethodArguments[hash] = methodArguments;
30
+ }
31
+ }
32
+ exports.CachedRouterRoute = CachedRouterRoute;
33
+ //# sourceMappingURL=cached.router-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached.router-route.js","sourceRoot":"","sources":["../../../../src/models/cached.router-route.ts"],"names":[],"mappings":";;;AACA,gDAAyD;AAEzD,MAAa,iBAAiB;IAI1B,YAA4B,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;QAHhD,oCAA+B,GAAqC,EAAE,CAAC;IAK/E,CAAC;IAEO,WAAW,CAAC,OAAgB;QAChC,OAAO,oBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,kCAAkC,CAAC,OAAgB;QAC/C,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAG,IAAI,KAAK,IAAI,EAAE;YACd,OAAO;SACV;QAED,oDAAoD;QACpD,OAAO,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,8BAA8B,CAAC,OAAgB,EAAE,eAAsB;QACnE,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAG,IAAI,KAAK,IAAI,EAAE;YACd,OAAO;SACV;QAED,4BAA4B;QAC5B,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;IACjE,CAAC;CACJ;AAnCD,8CAmCC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RouterCache = void 0;
10
+ const tsyringe_1 = require("tsyringe");
11
+ const cached_router_route_1 = require("./cached.router-route");
12
+ let RouterCache = class RouterCache {
13
+ constructor() {
14
+ this.currentSize = 0;
15
+ this.maximumSize = 100; // In Bytes
16
+ this.routes = {};
17
+ }
18
+ cleanIfNeeded() {
19
+ if (this.currentSize < this.maximumSize) {
20
+ return;
21
+ }
22
+ // For now, we will eliminate starting from the first key to the last, when the maximum size is achieved.
23
+ // We will eliminate 25% of the cache whenever we go over the threshold.
24
+ }
25
+ get(keyname) {
26
+ return this.routes[keyname];
27
+ }
28
+ set(keyname, methodNode) {
29
+ const cachedRouterRoute = new cached_router_route_1.CachedRouterRoute(methodNode);
30
+ // todo Calculate the size and add it to the current total
31
+ // Whenever we add a new elemen to the cache, we have to check if the cache needs to be cleaned
32
+ this.cleanIfNeeded();
33
+ this.routes[keyname] = cachedRouterRoute;
34
+ return cachedRouterRoute;
35
+ }
36
+ getCachedControllerMethodArguments(keyname, request) {
37
+ var _a;
38
+ return (_a = this.routes[keyname]) === null || _a === void 0 ? void 0 : _a.getCachedControllerMethodArguments(request);
39
+ }
40
+ setControllerMethodArguments(keyname, request, methodArguments) {
41
+ var _a;
42
+ (_a = this.routes[keyname]) === null || _a === void 0 ? void 0 : _a.cacheControllerMethodArguments(request, methodArguments);
43
+ // todo Increase the size and add it to the current total;
44
+ return;
45
+ }
46
+ };
47
+ RouterCache = __decorate([
48
+ (0, tsyringe_1.injectable)(),
49
+ (0, tsyringe_1.singleton)()
50
+ ], RouterCache);
51
+ exports.RouterCache = RouterCache;
52
+ //# sourceMappingURL=router.cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.cache.js","sourceRoot":"","sources":["../../../../src/models/router.cache.ts"],"names":[],"mappings":";;;;;;;;;AACA,uCAA+C;AAC/C,+DAAwD;AAKxD,IAAa,WAAW,GAAxB,MAAa,WAAW;IAAxB;QACW,gBAAW,GAAG,CAAC,CAAC;QAEhB,gBAAW,GAAG,GAAG,CAAC,CAAC,WAAW;QAE9B,WAAM,GAAkD,EAAE,CAAC;IAwCtE,CAAC;IAtCW,aAAa;QACjB,IAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACpC,OAAO;SACV;QAED,yGAAyG;QACzG,wEAAwE;IAC5E,CAAC;IAEM,GAAG,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEM,GAAG,CAAC,OAAe,EAAE,UAA4B;QACpD,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,UAAU,CAAC,CAAC;QAE5D,0DAA0D;QAE1D,+FAA+F;QAC/F,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC;QAEzC,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAEM,kCAAkC,CAAC,OAAe,EAAE,OAAgB;;QACvE,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,kCAAkC,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEM,4BAA4B,CAAC,OAAe,EAAE,OAAgB,EAAE,eAAsB;;QACzF,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAAE,8BAA8B,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAE/E,0DAA0D;QAE1D,OAAO;IACX,CAAC;CAEJ,CAAA;AA7CY,WAAW;IAFvB,IAAA,qBAAU,GAAE;IACZ,IAAA,oBAAS,GAAE;GACC,WAAW,CA6CvB;AA7CY,kCAAW"}
@@ -19,6 +19,7 @@ const networking_module_keyname_1 = require("./networking.module.keyname");
19
19
  const security_1 = require("@pristine-ts/security");
20
20
  const telemetry_1 = require("@pristine-ts/telemetry");
21
21
  const configuration_1 = require("@pristine-ts/configuration");
22
+ __exportStar(require("./cache/cache"), exports);
22
23
  __exportStar(require("./decorators/decorators"), exports);
23
24
  __exportStar(require("./errors/errors"), exports);
24
25
  __exportStar(require("./handlers/handlers"), exports);
@@ -69,6 +70,17 @@ exports.NetworkingModule = {
69
70
  defaultResolvers: [
70
71
  new configuration_1.EnvironmentVariableResolver("PRISTINE_NETWORKING_DEFAULT_CONTENT_TYPE_RESPONSE_HEADER"),
71
72
  ],
73
+ },
74
+ /**
75
+ * Activates or deactivates whether the Router Cache is on or off.
76
+ */
77
+ {
78
+ parameterName: networking_module_keyname_1.NetworkingModuleKeyname + ".routerCache.isActive",
79
+ isRequired: false,
80
+ defaultValue: false,
81
+ defaultResolvers: [
82
+ new configuration_1.BooleanResolver(new configuration_1.EnvironmentVariableResolver("PRISTINE_NETWORKING_ROUTER_CACHE_IS_ACTIVE")),
83
+ ],
72
84
  }
73
85
  ],
74
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"networking.module.js","sourceRoot":"","sources":["../../../src/networking.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2EAAoE;AACpE,oDAAqD;AACrD,sDAAuD;AACvD,8DAAwF;AAExF,0DAAwC;AACxC,kDAAgC;AAChC,sDAAoC;AACpC,8DAA4C;AAC5C,0DAAwC;AACxC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAE9B,2CAAyB;AAEZ,QAAA,gBAAgB,GAAoB;IAC7C,OAAO,EAAE,mDAAuB;IAChC,aAAa,EAAE;QACX,yBAAc;QACd,2BAAe;KAClB;IACD,wBAAwB,EAAE;QACtB;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,gCAAgC;YACzE,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,sDAAsD,CAAC,CAAC;aAC/G;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,4CAA4C;YACrF,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,oEAAoE,CAAC,CAAC;aAC7H;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,mCAAmC;YAC5E,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,kBAAkB;YAChC,gBAAgB,EAAE;gBACd,IAAI,2CAA2B,CAAC,0DAA0D,CAAC;aAC9F;SACJ;KACJ;CACJ,CAAA"}
1
+ {"version":3,"file":"networking.module.js","sourceRoot":"","sources":["../../../src/networking.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,2EAAoE;AACpE,oDAAqD;AACrD,sDAAuD;AACvD,8DAAwF;AAExF,gDAA8B;AAC9B,0DAAwC;AACxC,kDAAgC;AAChC,sDAAoC;AACpC,8DAA4C;AAC5C,0DAAwC;AACxC,oDAAkC;AAClC,kDAAgC;AAChC,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAE9B,2CAAyB;AAEZ,QAAA,gBAAgB,GAAoB;IAC7C,OAAO,EAAE,mDAAuB;IAChC,aAAa,EAAE;QACX,yBAAc;QACd,2BAAe;KAClB;IACD,wBAAwB,EAAE;QACtB;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,gCAAgC;YACzE,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,sDAAsD,CAAC,CAAC;aAC/G;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,4CAA4C;YACrF,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,oEAAoE,CAAC,CAAC;aAC7H;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,mCAAmC;YAC5E,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,kBAAkB;YAChC,gBAAgB,EAAE;gBACd,IAAI,2CAA2B,CAAC,0DAA0D,CAAC;aAC9F;SACJ;QAED;;WAEG;QACH;YACI,aAAa,EAAE,mDAAuB,GAAG,uBAAuB;YAChE,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE;gBACd,IAAI,+BAAe,CAAC,IAAI,2CAA2B,CAAC,4CAA4C,CAAC,CAAC;aACrG;SACJ;KACJ;CACJ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"body-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/body-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAIH,IAAa,8BAA8B,GAA3C,MAAa,8BAA8B;IAEvC;;;;;;;OAOG;IACH,OAAO,CAAC,cAA+C,EAC/C,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC;IACrG,CAAC;CACJ,CAAA;AAzBY,8BAA8B;IAH1C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,8BAA8B,CAyB1C;AAzBY,wEAA8B"}
1
+ {"version":3,"file":"body-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/body-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAII,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAEvC;;;;;;;OAOG;IACH,OAAO,CAAC,cAA+C,EAC/C,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC;IACrG,CAAC;CACJ,CAAA;AAzBY,8BAA8B;IAH1C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,8BAA8B,CAyB1C;AAzBY,wEAA8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller-method-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/controller-method-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA+C;AAC/C,gDAAgF;AAKhF;;GAEG;AAEH,IAAa,0CAA0C,GAAvD,MAAa,0CAA0C;IACnD;;;OAGG;IACH,YAAmG,iCAAwF;QAAxF,sCAAiC,GAAjC,iCAAiC,CAAuD;IAC3L,CAAC;IAGD;;;;;;OAMG;IACI,OAAO,CAAC,cAA2C,EAC3C,OAAgB,EAChB,eAA0C,EAC1C,QAA4B;QAEvC,KAAK,MAAM,gCAAgC,IAAI,IAAI,CAAC,iCAAiC,EAAE;YACnF,IAAG,gCAAgC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC1D,OAAO,gCAAgC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;aACvG;SACJ;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACJ,CAAA;AA7BY,0CAA0C;IADtD,IAAA,qBAAU,GAAE;IAMI,WAAA,IAAA,oBAAS,EAAC,iCAAwB,CAAC,gCAAgC,CAAC,CAAA;;GALxE,0CAA0C,CA6BtD;AA7BY,gGAA0C"}
1
+ {"version":3,"file":"controller-method-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/controller-method-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA+C;AAC/C,gDAAgF;AAKhF;;GAEG;AAEI,IAAM,0CAA0C,GAAhD,MAAM,0CAA0C;IACnD;;;OAGG;IACH,YAAmG,iCAAwF;QAAxF,sCAAiC,GAAjC,iCAAiC,CAAuD;IAC3L,CAAC;IAGD;;;;;;OAMG;IACI,OAAO,CAAC,cAA2C,EAC3C,OAAgB,EAChB,eAA0C,EAC1C,QAA4B;QAEvC,KAAK,MAAM,gCAAgC,IAAI,IAAI,CAAC,iCAAiC,EAAE;YACnF,IAAG,gCAAgC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC1D,OAAO,gCAAgC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;aACvG;SACJ;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACJ,CAAA;AA7BY,0CAA0C;IADtD,IAAA,qBAAU,GAAE;IAMI,WAAA,IAAA,oBAAS,EAAC,iCAAwB,CAAC,gCAAgC,CAAC,CAAA;;GALxE,0CAA0C,CA6BtD;AA7BY,gGAA0C"}
@@ -1 +1 @@
1
- {"version":3,"file":"headers-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/headers-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAIH,IAAa,iCAAiC,GAA9C,MAAa,iCAAiC;IAE1C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAkD,EAClD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,CAAC;IACxG,CAAC;CACJ,CAAA;AAzBY,iCAAiC;IAH7C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,iCAAiC,CAyB7C;AAzBY,8EAAiC"}
1
+ {"version":3,"file":"headers-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/headers-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAII,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAE1C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAkD,EAClD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,CAAC;IACxG,CAAC;CACJ,CAAA;AAzBY,iCAAiC;IAH7C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,iCAAiC,CAyB7C;AAzBY,8EAAiC"}
@@ -1 +1 @@
1
- {"version":3,"file":"identity-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/identity-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAIH,IAAa,kCAAkC,GAA/C,MAAa,kCAAkC;IAE3C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAmD,EACnD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,UAAU,CAAC;IACzG,CAAC;CACJ,CAAA;AAzBY,kCAAkC;IAH9C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,kCAAkC,CAyB9C;AAzBY,gFAAkC"}
1
+ {"version":3,"file":"identity-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/identity-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAII,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAE3C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAmD,EACnD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,UAAU,CAAC;IACzG,CAAC;CACJ,CAAA;AAzBY,kCAAkC;IAH9C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,kCAAkC,CAyB9C;AAzBY,gFAAkC"}
@@ -5,15 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
8
  Object.defineProperty(exports, "__esModule", { value: true });
12
9
  exports.QueryParameterDecoratorResolver = void 0;
13
10
  const tsyringe_1 = require("tsyringe");
14
11
  const common_1 = require("@pristine-ts/common");
15
12
  const networking_module_keyname_1 = require("../networking.module.keyname");
16
- const url_parse_1 = __importDefault(require("url-parse"));
13
+ const url_1 = require("url");
17
14
  /**
18
15
  * The QueryParameterDecoratorResolver resolves the value of the query parameter with the name passed to the decorator
19
16
  * of the request so that it can be injected it into the parameter of the route of the controller that was annotated
@@ -31,8 +28,8 @@ let QueryParameterDecoratorResolver = class QueryParameterDecoratorResolver {
31
28
  */
32
29
  resolve(methodArgument, request, routeParameters, identity) {
33
30
  var _a;
34
- const url = new url_parse_1.default(request.url, true);
35
- return Promise.resolve((_a = url.query[methodArgument.queryParameterName]) !== null && _a !== void 0 ? _a : null);
31
+ const url = new url_1.URL(request.url);
32
+ return Promise.resolve((_a = url.searchParams.get(methodArgument.queryParameterName)) !== null && _a !== void 0 ? _a : null);
36
33
  }
37
34
  /**
38
35
  * Returns whether or not the resolver support such a method argument.
@@ -1 +1 @@
1
- {"version":3,"file":"query-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AACrE,0DAA4B;AAI5B;;;;;GAKG;AAIH,IAAa,+BAA+B,GAA5C,MAAa,+BAA+B;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,MAAM,GAAG,GAAG,IAAI,mBAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEvC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AA3BY,+BAA+B;IAH3C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,+BAA+B,CA2B3C;AA3BY,0EAA+B"}
1
+ {"version":3,"file":"query-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AACrE,6BAA0B;AAI1B;;;;;GAKG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AA3BY,+BAA+B;IAH3C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,+BAA+B,CA2B3C;AA3BY,0EAA+B"}
@@ -5,15 +5,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
8
  Object.defineProperty(exports, "__esModule", { value: true });
12
9
  exports.QueryParametersDecoratorResolver = void 0;
13
10
  const tsyringe_1 = require("tsyringe");
14
11
  const common_1 = require("@pristine-ts/common");
15
12
  const networking_module_keyname_1 = require("../networking.module.keyname");
16
- const url_parse_1 = __importDefault(require("url-parse"));
13
+ const url_1 = require("url");
17
14
  /**
18
15
  * The QueryParametersDecoratorResolver resolves the value (a map) of the query parameters of the request so that it can be injected it into the
19
16
  * parameter of the route of the controller that was annotated with the @queryParameters decorator.
@@ -29,9 +26,15 @@ let QueryParametersDecoratorResolver = class QueryParametersDecoratorResolver {
29
26
  * @param identity The identity making the request
30
27
  */
31
28
  resolve(methodArgument, request, routeParameters, identity) {
32
- var _a;
33
- const url = new url_parse_1.default(request.url, true);
34
- return Promise.resolve((_a = url.query) !== null && _a !== void 0 ? _a : null);
29
+ const url = new url_1.URL(request.url);
30
+ let queryParameters = undefined;
31
+ for (const [key, value] of url.searchParams.entries()) {
32
+ if (queryParameters === undefined) {
33
+ queryParameters = {};
34
+ }
35
+ queryParameters[key] = value;
36
+ }
37
+ return Promise.resolve(queryParameters !== null && queryParameters !== void 0 ? queryParameters : null);
35
38
  }
36
39
  /**
37
40
  * Returns whether or not the resolver support such a method argument.
@@ -1 +1 @@
1
- {"version":3,"file":"query-parameters-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameters-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AACrE,0DAA4B;AAI5B;;;;GAIG;AAIH,IAAa,gCAAgC,GAA7C,MAAa,gCAAgC;IAEzC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAiD,EACjD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,MAAM,GAAG,GAAG,IAAI,mBAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEvC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,GAAG,CAAC,KAAK,mCAAI,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAChH,CAAC;CACJ,CAAA;AA3BY,gCAAgC;IAH5C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,gCAAgC,CA2B5C;AA3BY,4EAAgC"}
1
+ {"version":3,"file":"query-parameters-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameters-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AACrE,6BAA0B;AAI1B;;;;GAIG;AAII,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAEzC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAiD,EACjD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,eAAe,GAAuC,SAAS,CAAC;QAEpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;YACnD,IAAG,eAAe,KAAK,SAAS,EAAE;gBAC9B,eAAe,GAAG,EAAE,CAAC;aACxB;YAED,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAChC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAChH,CAAC;CACJ,CAAA;AApCY,gCAAgC;IAH5C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,gCAAgC,CAoC5C;AApCY,4EAAgC"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/request-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAIH,IAAa,iCAAiC,GAA9C,MAAa,iCAAiC;IAE1C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAkD,EAClD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,CAAC;IACxG,CAAC;CACJ,CAAA;AAzBY,iCAAiC;IAH7C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,iCAAiC,CAyB7C;AAzBY,8EAAiC"}
1
+ {"version":3,"file":"request-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/request-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAIrE;;;;GAIG;AAII,IAAM,iCAAiC,GAAvC,MAAM,iCAAiC;IAE1C;;;;;;;OAOG;IACH,OAAO,CAAC,cAAkD,EAClD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,CAAC;IACxG,CAAC;CACJ,CAAA;AAzBY,iCAAiC;IAH7C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,iCAAiC,CAyB7C;AAzBY,8EAAiC"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/route-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAGrE;;;;GAIG;AAIH,IAAa,+BAA+B,GAA5C,MAAa,+BAA+B;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,eAAe,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;IACvF,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AAzBY,+BAA+B;IAH3C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,+BAA+B,CAyB3C;AAzBY,0EAA+B"}
1
+ {"version":3,"file":"route-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/route-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AAGrE;;;;GAIG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,eAAe,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;IACvF,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AAzBY,+BAA+B;IAH3C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,+BAA+B,CAyB3C;AAzBY,0EAA+B"}
@@ -20,9 +20,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
20
20
  step((generator = generator.apply(thisArg, _arguments || [])).next());
21
21
  });
22
22
  };
23
- var __importDefault = (this && this.__importDefault) || function (mod) {
24
- return (mod && mod.__esModule) ? mod : { "default": mod };
25
- };
26
23
  Object.defineProperty(exports, "__esModule", { value: true });
27
24
  exports.Router = void 0;
28
25
  const tsyringe_1 = require("tsyringe");
@@ -33,13 +30,14 @@ const route_1 = require("./models/route");
33
30
  const method_router_node_1 = require("./nodes/method-router.node");
34
31
  const forbidden_http_error_1 = require("./errors/forbidden.http-error");
35
32
  const controller_method_parameter_decorator_resolver_1 = require("./resolvers/controller-method-parameter-decorator.resolver");
36
- const url_parse_1 = __importDefault(require("url-parse"));
33
+ const url_1 = require("url");
37
34
  const common_1 = require("@pristine-ts/common");
38
35
  const networking_module_keyname_1 = require("./networking.module.keyname");
39
36
  const telemetry_1 = require("@pristine-ts/telemetry");
40
37
  const controller_decorator_1 = require("./decorators/controller.decorator");
41
38
  const lodash_1 = require("lodash");
42
39
  const http_error_1 = require("./errors/http.error");
40
+ const router_cache_1 = require("./cache/router.cache");
43
41
  /**
44
42
  * The router service is the service that creates the routing tree from the controllers.
45
43
  * It also executes a request properly by routing it to the intended controller and returns the response.
@@ -49,15 +47,17 @@ let Router = class Router {
49
47
  * The router service is the service that creates the routing tree from the controllers.
50
48
  * It also executes a request properly by routing it to the intended controller and returns the response.
51
49
  * @param loghandler The log handler
50
+ * @param cache The cache that optimizes the response time by caching frequent requests.
52
51
  * @param controllerMethodParameterDecoratorResolver The controller method parameter decorator resolver used to resolve the values.
53
52
  * @param authorizerManager The authorizer manager to validate authorization.
54
53
  * @param authenticationManager The authentication manager to validate authentication.
55
54
  */
56
- constructor(loghandler, controllerMethodParameterDecoratorResolver, authorizerManager, authenticationManager) {
55
+ constructor(loghandler, controllerMethodParameterDecoratorResolver, authorizerManager, authenticationManager, cache) {
57
56
  this.loghandler = loghandler;
58
57
  this.controllerMethodParameterDecoratorResolver = controllerMethodParameterDecoratorResolver;
59
58
  this.authorizerManager = authorizerManager;
60
59
  this.authenticationManager = authenticationManager;
60
+ this.cache = cache;
61
61
  this.root = new path_router_node_1.PathRouterNode("/");
62
62
  // This property is used to track whether the router has been already been properly instantiated or not.
63
63
  this.setupCompleted = false;
@@ -171,14 +171,26 @@ let Router = class Router {
171
171
  const tracingManager = container.resolve("TracingManagerInterface");
172
172
  const routerRequestExecutionSpan = tracingManager.startSpan(telemetry_1.SpanKeynameEnum.RouterRequestExecution, telemetry_1.SpanKeynameEnum.RequestExecution);
173
173
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
174
+ var _a;
174
175
  // Start by decomposing the URL. Set second parameter to true since we want to parse the query strings
175
- const url = new url_parse_1.default(request.url, false);
176
+ // Node's URL default package absolutely needs a base (or a host) if none is provided in the URL. Pristine doesn't
177
+ // care at all about the host. If one is provided in the url, the base provided will do nothing.
178
+ // If none is provided, then the default base will be used and all is well.
179
+ const url = new url_1.URL(request.url, "http://localhost");
176
180
  // Split the path name
177
181
  const splitPath = url_util_1.UrlUtil.splitPath(url.pathname);
178
- const methodNodeSpan = tracingManager.startSpan(telemetry_1.SpanKeynameEnum.RouterFindMethodRouterNode, telemetry_1.SpanKeynameEnum.RouterRequestExecution);
179
- // Retrieve the node to have information about the controller
180
- const methodNode = this.root.find(splitPath, request.httpMethod);
181
- methodNodeSpan.end();
182
+ // We cache the method node
183
+ const cacheKeyname = request.httpMethod + "_" + url.pathname;
184
+ let cachedRouterRoute = this.cache.get(cacheKeyname);
185
+ let methodNode = cachedRouterRoute === null || cachedRouterRoute === void 0 ? void 0 : cachedRouterRoute.methodNode;
186
+ if (methodNode === undefined) {
187
+ const methodNodeSpan = tracingManager.startSpan(telemetry_1.SpanKeynameEnum.RouterFindMethodRouterNode, telemetry_1.SpanKeynameEnum.RouterRequestExecution);
188
+ // Retrieve the node to have information about the controller
189
+ methodNode = this.root.find(splitPath, request.httpMethod);
190
+ methodNodeSpan.end();
191
+ // Cache the method node.
192
+ cachedRouterRoute = this.cache.set(cacheKeyname, methodNode);
193
+ }
182
194
  this.loghandler.debug("Router - Execute request", {
183
195
  rootNode: this.root,
184
196
  request,
@@ -196,7 +208,10 @@ let Router = class Router {
196
208
  return resolve(this.executeErrorResponseInterceptors(new not_found_http_error_1.NotFoundHttpError("No route found for path: '" + url.pathname + "'."), request, container));
197
209
  }
198
210
  // Get the route parameters
199
- const routeParameters = methodNode.parent.getRouteParameters(splitPath.reverse());
211
+ const routeParameters = (_a = cachedRouterRoute === null || cachedRouterRoute === void 0 ? void 0 : cachedRouterRoute.routeParameters) !== null && _a !== void 0 ? _a : methodNode.parent.getRouteParameters(splitPath.reverse());
212
+ if (cachedRouterRoute !== undefined && cachedRouterRoute.routeParameters === undefined) {
213
+ cachedRouterRoute.routeParameters = routeParameters;
214
+ }
200
215
  // Instantiate the controller
201
216
  const routerControllerResolverSpan = tracingManager.startSpan(telemetry_1.SpanKeynameEnum.RouterControllerResolver, telemetry_1.SpanKeynameEnum.RouterRequestExecution);
202
217
  const controller = container.resolve(methodNode.route.controllerInstantiationToken);
@@ -251,13 +266,31 @@ let Router = class Router {
251
266
  interceptedRequest,
252
267
  }, networking_module_keyname_1.NetworkingModuleKeyname);
253
268
  // Resolve the value to inject in the method arguments that have a decorator resolver
254
- const resolvedMethodArguments = [];
255
- for (const methodArgument of methodNode.route.methodArguments) {
256
- resolvedMethodArguments.push(yield this.controllerMethodParameterDecoratorResolver.resolve(methodArgument, interceptedRequest, routeParameters, identity));
269
+ let resolvedMethodArguments = this.cache.getCachedControllerMethodArguments(cacheKeyname, interceptedRequest);
270
+ // If the cache did not contain the cached controller method arguments
271
+ if (resolvedMethodArguments === undefined) {
272
+ this.loghandler.debug("Resolved method arguments were not cached, currently resolving", {
273
+ request,
274
+ interceptedRequest,
275
+ }, networking_module_keyname_1.NetworkingModuleKeyname);
276
+ resolvedMethodArguments = [];
277
+ for (const methodArgument of methodNode.route.methodArguments) {
278
+ resolvedMethodArguments.push(yield this.controllerMethodParameterDecoratorResolver.resolve(methodArgument, interceptedRequest, routeParameters, identity));
279
+ }
280
+ this.cache.setControllerMethodArguments(cacheKeyname, interceptedRequest, resolvedMethodArguments);
281
+ this.loghandler.debug("Resolved method arguments cached for next call.", {
282
+ request,
283
+ interceptedRequest,
284
+ resolvedMethodArguments,
285
+ }, networking_module_keyname_1.NetworkingModuleKeyname);
286
+ }
287
+ else {
288
+ this.loghandler.debug("Method arguments were successfully cached and will be used.", {
289
+ request,
290
+ interceptedRequest,
291
+ resolvedMethodArguments,
292
+ }, networking_module_keyname_1.NetworkingModuleKeyname);
257
293
  }
258
- this.loghandler.debug("Router - Controller argument resolved", {
259
- resolvedMethodArguments,
260
- }, networking_module_keyname_1.NetworkingModuleKeyname);
261
294
  const controllerResponse = controller[methodNode.route.methodPropertyKey](...resolvedMethodArguments);
262
295
  // This resolves the promise if it's a promise or promisifies the value
263
296
  // https://stackoverflow.com/a/27760489/684101
@@ -469,7 +502,7 @@ Router = __decorate([
469
502
  __param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
470
503
  __param(2, (0, tsyringe_1.inject)("AuthorizerManagerInterface")),
471
504
  __param(3, (0, tsyringe_1.inject)("AuthenticationManagerInterface")),
472
- __metadata("design:paramtypes", [Object, controller_method_parameter_decorator_resolver_1.ControllerMethodParameterDecoratorResolver, Object, Object])
505
+ __metadata("design:paramtypes", [Object, controller_method_parameter_decorator_resolver_1.ControllerMethodParameterDecoratorResolver, Object, Object, router_cache_1.RouterCache])
473
506
  ], Router);
474
507
  exports.Router = Router;
475
508
  //# sourceMappingURL=router.js.map