@rapidrest/core 1.2.0 → 1.3.0

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 (81) hide show
  1. package/dist/lib/ClassLoader.js +3 -2
  2. package/dist/lib/ClassLoader.js.map +1 -1
  3. package/dist/lib/JWTUtils.js +101 -5
  4. package/dist/lib/JWTUtils.js.map +1 -1
  5. package/dist/lib/Logger.js +9 -2
  6. package/dist/lib/Logger.js.map +1 -1
  7. package/dist/lib/MessagingUtils.js +27 -22
  8. package/dist/lib/MessagingUtils.js.map +1 -1
  9. package/dist/lib/NotificationsUtils.js +4 -2
  10. package/dist/lib/NotificationsUtils.js.map +1 -1
  11. package/dist/lib/OASUtils.js +17 -3
  12. package/dist/lib/OASUtils.js.map +1 -1
  13. package/dist/lib/ObjectFactory.js +95 -77
  14. package/dist/lib/ObjectFactory.js.map +1 -1
  15. package/dist/lib/StringUtils.js +16 -12
  16. package/dist/lib/StringUtils.js.map +1 -1
  17. package/dist/lib/TelemetryUtils.js +2 -2
  18. package/dist/lib/TelemetryUtils.js.map +1 -1
  19. package/dist/lib/threads/ThreadPool.js +17 -8
  20. package/dist/lib/threads/ThreadPool.js.map +1 -1
  21. package/dist/types/JWTUtils.d.ts +21 -3
  22. package/dist/types/Logger.d.ts +1 -1
  23. package/dist/types/MessagingUtils.d.ts +4 -0
  24. package/dist/types/OASUtils.d.ts +2 -0
  25. package/dist/types/ObjectFactory.d.ts +6 -0
  26. package/dist/types/TelemetryUtils.d.ts +1 -1
  27. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Config.md +1 -1
  28. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Destroy.md +1 -1
  29. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Init.md +1 -1
  30. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Inject.md +1 -1
  31. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Logger.md +1 -1
  32. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Nullable.md +1 -1
  33. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Validator.md +1 -1
  34. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/type-aliases/ValidatorFunction.md +1 -1
  35. package/docs/reference/classes/AlertUtils.md +6 -6
  36. package/docs/reference/classes/ApiError.md +5 -5
  37. package/docs/reference/classes/ClassLoader.md +11 -11
  38. package/docs/reference/classes/Event.md +8 -8
  39. package/docs/reference/classes/EventUtils.md +6 -6
  40. package/docs/reference/classes/FileUtils.md +5 -5
  41. package/docs/reference/classes/JWTUtils.md +61 -13
  42. package/docs/reference/classes/MessagingUtils.md +8 -8
  43. package/docs/reference/classes/OASUtils.md +22 -8
  44. package/docs/reference/classes/ObjectFactory.md +14 -14
  45. package/docs/reference/classes/ObjectUtils.md +2 -2
  46. package/docs/reference/classes/StringUtils.md +6 -6
  47. package/docs/reference/classes/ThreadPool.md +11 -11
  48. package/docs/reference/classes/ThreadWorker.md +6 -6
  49. package/docs/reference/classes/UserUtils.md +6 -6
  50. package/docs/reference/classes/ValidationUtils.md +14 -14
  51. package/docs/reference/enumerations/AlertPriority.md +6 -6
  52. package/docs/reference/enumerations/JWTUtilsCompressionMethods.md +2 -2
  53. package/docs/reference/enumerations/WorkerMessageType.md +5 -5
  54. package/docs/reference/functions/sleep.md +1 -1
  55. package/docs/reference/interfaces/Alert.md +10 -10
  56. package/docs/reference/interfaces/AlertAttachment.md +5 -5
  57. package/docs/reference/interfaces/AlertClose.md +3 -3
  58. package/docs/reference/interfaces/AlertUtilsAttachmentOptions.md +4 -4
  59. package/docs/reference/interfaces/AlertUtilsOptions.md +4 -4
  60. package/docs/reference/interfaces/InstanceOptions.md +4 -4
  61. package/docs/reference/interfaces/JWTPayload.md +5 -5
  62. package/docs/reference/interfaces/JWTUser.md +5 -5
  63. package/docs/reference/interfaces/JWTUtilsConfig.md +4 -4
  64. package/docs/reference/interfaces/JWTUtilsPayloadKeyOptions.md +5 -5
  65. package/docs/reference/interfaces/JWTUtilsPayloadOptions.md +3 -3
  66. package/docs/reference/interfaces/JWTUtilsPayloadPasswordOptions.md +6 -6
  67. package/docs/reference/interfaces/NewEvent.md +2 -2
  68. package/docs/reference/interfaces/OriginSettings.md +3 -3
  69. package/docs/reference/interfaces/SlackConfig.md +4 -4
  70. package/docs/reference/interfaces/SmtpAuth.md +3 -3
  71. package/docs/reference/interfaces/SmtpConfig.md +5 -5
  72. package/docs/reference/interfaces/Template.md +13 -13
  73. package/docs/reference/interfaces/TemplateMapBase.md +1 -1
  74. package/docs/reference/interfaces/TwilioConfig.md +4 -4
  75. package/docs/reference/interfaces/WorkerMessage.md +3 -3
  76. package/docs/reference/interfaces/WorkerOptions.md +6 -6
  77. package/docs/reference/type-aliases/BooleanFunc.md +1 -1
  78. package/docs/reference/type-aliases/TemplateMap.md +1 -1
  79. package/docs/reference/type-aliases/WorkerCallback.md +1 -1
  80. package/docs/reference/variables/Logger.md +2 -2
  81. package/package.json +2 -2
@@ -17,11 +17,59 @@ export class ObjectFactory {
17
17
  this.classes = new Map();
18
18
  /** A map for the unique name to the intance of a particular class type. */
19
19
  this.instances = new Map();
20
+ /** Cache of prototype-chain metadata keyed by constructor function. WeakMap allows GC of dropped classes. */
21
+ this._metadataCache = new WeakMap();
22
+ /** Secondary index: className → first registered instance key, for O(1) getInstance() fallback. */
23
+ this._firstByClass = new Map();
20
24
  this.config = config;
21
25
  this.logger = logger ? logger : Logger();
22
26
  // Add ourself so it can be injected/retrieved
23
27
  this.instances.set(`${ObjectFactory.name}:default`, this);
24
28
  }
29
+ /** Walks the prototype chain once for `obj` and caches the discovered decorator metadata on the constructor. */
30
+ _getOrBuildMetadata(obj) {
31
+ const ctor = obj.constructor;
32
+ if (this._metadataCache.has(ctor)) {
33
+ return this._metadataCache.get(ctor);
34
+ }
35
+ const meta = {
36
+ injectConfig: [],
37
+ injectLogger: [],
38
+ injectObject: [],
39
+ initMethods: [],
40
+ };
41
+ let proto = Object.getPrototypeOf(obj);
42
+ while (proto) {
43
+ for (const member of Object.getOwnPropertyNames(proto)) {
44
+ if (!meta.destroyMethod) {
45
+ const hasDestructor = Reflect.getMetadata("rrst:destructor", proto, member);
46
+ if (hasDestructor) {
47
+ meta.destroyMethod = member;
48
+ }
49
+ }
50
+ const hasInit = Reflect.getMetadata("rrst:initialize", proto, member);
51
+ if (hasInit) {
52
+ meta.initMethods.push(member);
53
+ }
54
+ const injectConfig = Reflect.getMetadata("rrst:injectConfig", proto, member);
55
+ if (injectConfig) {
56
+ const configDefault = Reflect.getMetadata("rrst:injectConfigDefault", proto, member);
57
+ meta.injectConfig.push({ member, path: injectConfig, configDefault });
58
+ }
59
+ const injectLogger = Reflect.getMetadata("rrst:injectLogger", proto, member);
60
+ if (injectLogger) {
61
+ meta.injectLogger.push(member);
62
+ }
63
+ const injectObject = Reflect.getMetadata("rrst:injectObject", proto, member);
64
+ if (injectObject) {
65
+ meta.injectObject.push({ member, type: injectObject.type, options: injectObject.options });
66
+ }
67
+ }
68
+ proto = Object.getPrototypeOf(proto);
69
+ }
70
+ this._metadataCache.set(ctor, meta);
71
+ return meta;
72
+ }
25
73
  /**
26
74
  * Destroys the specified objects. If `undefined` is passed in, all objects managed by the factory are destroyed.
27
75
  */
@@ -45,25 +93,11 @@ export class ObjectFactory {
45
93
  // Go through each object and call its destructor, if available
46
94
  for (const obj of objs) {
47
95
  const name = obj.name ?? obj._name;
48
- let destroyFunc = undefined;
49
- let proto = Object.getPrototypeOf(obj);
50
- while (proto) {
51
- for (const member of Object.getOwnPropertyNames(proto)) {
52
- const hasDestructor = Reflect.getMetadata("rrst:destructor", proto, member);
53
- if (hasDestructor) {
54
- destroyFunc = obj[member];
55
- break;
56
- }
57
- }
58
- if (destroyFunc) {
59
- break;
60
- }
61
- proto = Object.getPrototypeOf(proto);
62
- }
63
- if (destroyFunc) {
96
+ const meta = this._getOrBuildMetadata(obj);
97
+ if (meta.destroyMethod) {
64
98
  try {
65
99
  this.logger.debug("Destroying object: " + name);
66
- const boundFunc = destroyFunc.bind(obj);
100
+ const boundFunc = obj[meta.destroyMethod].bind(obj);
67
101
  const result = boundFunc();
68
102
  if (result instanceof Promise) {
69
103
  await result;
@@ -81,6 +115,7 @@ export class ObjectFactory {
81
115
  */
82
116
  clear() {
83
117
  this.instances.clear();
118
+ this._firstByClass.clear();
84
119
  }
85
120
  /**
86
121
  * Deletes all instantiated objects and registered class types.
@@ -94,67 +129,48 @@ export class ObjectFactory {
94
129
  * @param obj The object to initialize with injected defaults
95
130
  */
96
131
  initialize(obj) {
97
- let proto = Object.getPrototypeOf(obj);
98
- while (proto) {
99
- // Search for each type of injectable property
100
- for (const member of Object.getOwnPropertyNames(proto)) {
101
- // Inject @Config
102
- const injectConfig = Reflect.getMetadata("rrst:injectConfig", proto, member);
103
- if (injectConfig) {
104
- const defaultValue = Reflect.getMetadata("rrst:injectConfigDefault", proto, member);
105
- // If the value is a string, then it must be a path to a specific variable desired
106
- if (typeof injectConfig === "string") {
107
- const value = this.config?.get(injectConfig);
108
- if (value !== undefined) {
109
- obj[member] = value;
110
- }
111
- else if (defaultValue !== undefined) {
112
- obj[member] = defaultValue;
113
- }
114
- else {
115
- throw new Error("No configuration variable is defined at path: " + injectConfig);
116
- }
117
- }
118
- else {
119
- // No specific variable is desired, inject the whole config object
120
- obj[member] = this.config;
121
- }
132
+ const meta = this._getOrBuildMetadata(obj);
133
+ for (const { member, path, configDefault } of meta.injectConfig) {
134
+ if (typeof path === "string") {
135
+ const value = this.config?.get(path);
136
+ if (value !== undefined) {
137
+ obj[member] = value;
122
138
  }
123
- // Inject @Logger
124
- const injectLogger = Reflect.getMetadata("rrst:injectLogger", proto, member);
125
- if (injectLogger) {
126
- obj[member] = this.logger;
139
+ else if (configDefault !== undefined) {
140
+ obj[member] = configDefault;
127
141
  }
128
- // Inject @Inject
129
- const injectObject = Reflect.getMetadata("rrst:injectObject", proto, member);
130
- if (injectObject) {
131
- // First register the type just in case it hasn't been done yet
132
- this.register(injectObject.type);
133
- // Now retrieve the instance for the given name
134
- const instance = this.newInstance(injectObject.type, injectObject.options);
135
- if (instance instanceof Promise) {
136
- // Wait for the final value to resolve before setting assigning
137
- instance
138
- .then((val) => {
139
- obj[member] = val;
140
- })
141
- .catch((err) => {
142
- this.logger.error(`Failed to instantiate dependency. Type=${injectObject.type}, Parent=${obj._fqn}, Member=${member}`);
143
- this.logger.debug(err);
144
- });
145
- }
146
- else {
147
- obj[member] = instance;
148
- }
142
+ else {
143
+ throw new Error("No configuration variable is defined at path: " + path);
149
144
  }
150
145
  }
151
- proto = Object.getPrototypeOf(proto);
146
+ else {
147
+ obj[member] = this.config;
148
+ }
149
+ }
150
+ for (const member of meta.injectLogger) {
151
+ obj[member] = this.logger;
152
+ }
153
+ for (const { member, type, options } of meta.injectObject) {
154
+ this.register(type);
155
+ const instance = this.newInstance(type, options);
156
+ if (instance instanceof Promise) {
157
+ instance
158
+ .then((val) => {
159
+ obj[member] = val;
160
+ })
161
+ .catch((err) => {
162
+ this.logger.error(`Failed to instantiate dependency. Type=${type}, Parent=${obj._fqn}, Member=${member}`);
163
+ this.logger.debug(err);
164
+ });
165
+ }
166
+ else {
167
+ obj[member] = instance;
168
+ }
152
169
  }
153
170
  // Call any @Init functions
154
171
  const promises = [];
155
- const initFuncs = this.getInitMethods(obj);
156
- for (const func of initFuncs) {
157
- const result = func.bind(obj)();
172
+ for (const methodName of meta.initMethods) {
173
+ const result = obj[methodName].bind(obj)();
158
174
  if (result instanceof Promise) {
159
175
  promises.push(result);
160
176
  }
@@ -233,13 +249,11 @@ export class ObjectFactory {
233
249
  // First search for the exact name or with `:default`
234
250
  let result = this.instances.get(search.includes(":") ? search : search + ":default");
235
251
  // If we didn't found a result and we weren't given an exact name to search, find the first
236
- // instance of the class.
252
+ // instance of the class using the O(1) secondary index.
237
253
  if (!result && !search.includes(":")) {
238
- for (const key of this.instances.keys()) {
239
- if (key.startsWith(search + ":")) {
240
- result = this.instances.get(key);
241
- break;
242
- }
254
+ const firstKey = this._firstByClass.get(search);
255
+ if (firstKey) {
256
+ result = this.instances.get(firstKey);
243
257
  }
244
258
  }
245
259
  return result;
@@ -298,6 +312,10 @@ export class ObjectFactory {
298
312
  value: name,
299
313
  });
300
314
  this.instances.set(name, instance);
315
+ // Populate secondary index for O(1) getInstance() fallback
316
+ if (!this._firstByClass.has(className)) {
317
+ this._firstByClass.set(className, name);
318
+ }
301
319
  }
302
320
  // Now initialize the object with any injectable defaults. This must happen after we add the instance
303
321
  // to our internal map so that circular dependencies due not cause endless cycles of creation/initialization.
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectFactory.js","sourceRoot":"","sources":["../../src/ObjectFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObjectFactory.js","sourceRoot":"","sources":["../../src/ObjectFactory.ts"],"names":[],"mappings":"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"}
@@ -43,18 +43,22 @@ export class StringUtils {
43
43
  */
44
44
  static findAndReplace(contents, variables) {
45
45
  let output = contents;
46
+ // Pre-compile one regex per key (O(n)) rather than creating new RegExp inside nested loops (O(n²))
47
+ const regexCache = new Map();
48
+ for (const key in variables) {
49
+ regexCache.set(key, new RegExp("(\\{\\{" + key + "\\}\\})", "g"));
50
+ }
46
51
  // Go through all variables and perform replacement
47
- for (let key in variables) {
52
+ for (const key in variables) {
48
53
  // Perform replacement on the variable value itself. This allows nested variable replacement.
49
54
  if (variables[key]) {
50
55
  let value = variables[key];
51
- for (let key2 in variables) {
56
+ for (const key2 in variables) {
52
57
  if (variables[key2]) {
53
- let value2 = variables[key2];
54
- value = value.toString().replace(new RegExp("(\\{\\{" + key2 + "\\}\\})", "g"), value2);
58
+ value = value.toString().replace(regexCache.get(key2), variables[key2]);
55
59
  }
56
60
  }
57
- output = output.replace(new RegExp("(\\{\\{" + key + "\\}\\})", "g"), value);
61
+ output = output.replace(regexCache.get(key), value);
58
62
  }
59
63
  }
60
64
  return output;
@@ -74,13 +78,13 @@ export class StringUtils {
74
78
  * @returns {string} The fully replaced contents of the string.
75
79
  */
76
80
  static replaceAll(str, match, prefix) {
77
- let result = str;
78
- let matches = str.match(match);
79
- while (matches) {
80
- result = result.replace(matches[0], prefix + matches[1]);
81
- matches = result.match(match);
82
- }
83
- return result;
81
+ // Build a single global regex and replace in one O(n) pass instead of looping with repeated .match()
82
+ const global = typeof match === "string"
83
+ ? new RegExp(match, "g")
84
+ : match.global
85
+ ? match
86
+ : new RegExp(match.source, match.flags + "g");
87
+ return str.replace(global, (_full, capture) => prefix + capture);
84
88
  }
85
89
  /**
86
90
  * Converts the first character in the given string to be lowercase (e.g. myVariable).
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/StringUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StringUtils.js","sourceRoot":"","sources":["../../src/StringUtils.ts"],"names":[],"mappings":"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"}
@@ -50,13 +50,13 @@ export class EventUtils {
50
50
  * @param logger The logging utility to use.
51
51
  * @param jwtToken The user's JWT token to send telemetry events on behalf of.
52
52
  */
53
- static init(config, logger, jwtToken) {
53
+ static async init(config, logger, jwtToken) {
54
54
  EventUtils.config = config;
55
55
  EventUtils.listeners = new Map();
56
56
  EventUtils.logger = logger;
57
57
  EventUtils.token = jwtToken;
58
58
  // Extract the user id from the token
59
- const payload = JWTUtils.decodeToken(config.get("auth"), jwtToken);
59
+ const payload = await JWTUtils.decodeToken(config.get("auth"), jwtToken);
60
60
  EventUtils.userId = payload.profile.uid;
61
61
  EventUtils.initialized = true;
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryUtils.js","sourceRoot":"","sources":["../../src/TelemetryUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TelemetryUtils.js","sourceRoot":"","sources":["../../src/TelemetryUtils.ts"],"names":[],"mappings":"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"}
@@ -101,8 +101,9 @@ export class ThreadPool {
101
101
  }
102
102
  // Restart worker thread
103
103
  if (options?.restartOnExit && !this.shutdown) {
104
- const worker = this.createWorker(idx, options);
105
- this.workers[idx] = worker;
104
+ worker.removeAllListeners();
105
+ const newWorker = this.createWorker(idx, options);
106
+ this.workers[idx] = newWorker;
106
107
  }
107
108
  });
108
109
  worker.on("message", (msg) => {
@@ -217,13 +218,21 @@ export class ThreadPool {
217
218
  * @param msg The message to send the next available worker thread.
218
219
  */
219
220
  send(msg) {
220
- const startIdx = (this.lastThread + 1) % this.workers.length;
221
- let worker = undefined;
221
+ const len = this.workers.length;
222
+ if (len === 0)
223
+ throw new Error("No workers in pool.");
224
+ const startIdx = (this.lastThread + 1) % len;
225
+ let idx = startIdx;
222
226
  do {
223
- worker = this.workers[startIdx];
224
- this.lastThread = startIdx;
225
- } while (!worker);
226
- worker.postMessage(msg);
227
+ const worker = this.workers[idx];
228
+ if (worker) {
229
+ worker.postMessage(msg);
230
+ this.lastThread = idx;
231
+ return;
232
+ }
233
+ idx = (idx + 1) % len;
234
+ } while (idx !== startIdx);
235
+ throw new Error("No available workers in the pool.");
227
236
  }
228
237
  /**
229
238
  * Sends the provided message to all worker threads in the pool.
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadPool.js","sourceRoot":"","sources":["../../../src/threads/ThreadPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThreadPool.js","sourceRoot":"","sources":["../../../src/threads/ThreadPool.ts"],"names":[],"mappings":"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"}
@@ -124,9 +124,27 @@ export declare class JWTUtils {
124
124
  *
125
125
  * @param config The JWT configuration to use when generating the token.
126
126
  * @param user The user to encode into the token's payload.
127
- * @param data Additional data to include the token's payload.
128
127
  */
129
- static createToken(config: JWTUtilsConfig, user: JWTUser, data?: any): string;
128
+ private static deriveKey;
129
+ /**
130
+ * Generates a new JWT token for the given config and user object. The user object must be a valid RapidREST
131
+ * user.
132
+ *
133
+ * @param config The JWT configuration to use when generating the token.
134
+ * @param user The user to encode into the token's payload.
135
+ */
136
+ private static deriveKeySync;
137
+ static createToken(config: JWTUtilsConfig, user: JWTUser, data?: any): Promise<string>;
138
+ static createTokenSync(config: JWTUtilsConfig, user: JWTUser, data?: any): string;
139
+ /**
140
+ * Decodes the given JWT authentication token using the provided configuration. If the token is not valid an
141
+ * error is thrown with the reason. Returns the encoded user object payload upon success.
142
+ *
143
+ * @param config The JWT configuration to use when validating the token.
144
+ * @param token The JWT token to validate.
145
+ * @returns The data encoded in the token's payload.
146
+ */
147
+ static decodeToken(config: JWTUtilsConfig, token: string): Promise<JWTPayload>;
130
148
  /**
131
149
  * Decodes the given JWT authentication token using the provided configuration. If the token is not valid an
132
150
  * error is thrown with the reason. Returns the encoded user object payload upon success.
@@ -135,5 +153,5 @@ export declare class JWTUtils {
135
153
  * @param token The JWT token to validate.
136
154
  * @returns The data encoded in the token's payload.
137
155
  */
138
- static decodeToken(config: JWTUtilsConfig, token: string): JWTPayload;
156
+ static decodeTokenSync(config: JWTUtilsConfig, token: string): JWTPayload;
139
157
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Creates a new logger with the specified level and file name to output logs to.
2
+ * Creates (or retrieves a cached) logger with the specified level and file name to output logs to.
3
3
  *
4
4
  * @param level The logging level to create the logger with.
5
5
  * @param file The name (without an extension) of the file to output logs to.
@@ -53,6 +53,10 @@ export declare class MessagingUtils {
53
53
  private twilioConfig;
54
54
  private templates;
55
55
  private logger?;
56
+ /** Reusable nodemailer transporter created once in init(). */
57
+ private _transporter;
58
+ /** Cache of compiled Handlebars delegates keyed by "<templateName>:<field>". */
59
+ private _compiledTemplates;
56
60
  init(): Promise<void>;
57
61
  /**
58
62
  * Loads the template with the given name and returns its contents as a string.
@@ -51,4 +51,6 @@ export declare class OASUtils {
51
51
  * @returns {Promise<any>} A promise whose result will be the loaded OpenAPI Specification as an object.
52
52
  */
53
53
  static loadSpec(file: string): Promise<any>;
54
+ /** Clears the spec parse cache. Useful in tests to force re-loading of specs. */
55
+ static clearSpecCache(): void;
54
56
  }
@@ -26,7 +26,13 @@ export declare class ObjectFactory {
26
26
  readonly instances: Map<string, any>;
27
27
  /** The application logging utility. */
28
28
  protected logger: any;
29
+ /** Cache of prototype-chain metadata keyed by constructor function. WeakMap allows GC of dropped classes. */
30
+ private readonly _metadataCache;
31
+ /** Secondary index: className → first registered instance key, for O(1) getInstance() fallback. */
32
+ private readonly _firstByClass;
29
33
  constructor(config?: any, logger?: any);
34
+ /** Walks the prototype chain once for `obj` and caches the discovered decorator metadata on the constructor. */
35
+ private _getOrBuildMetadata;
30
36
  /**
31
37
  * Destroys the specified objects. If `undefined` is passed in, all objects managed by the factory are destroyed.
32
38
  */
@@ -65,7 +65,7 @@ export declare class EventUtils {
65
65
  * @param logger The logging utility to use.
66
66
  * @param jwtToken The user's JWT token to send telemetry events on behalf of.
67
67
  */
68
- static init(config: any, logger: any, jwtToken: string): void;
68
+ static init(config: any, logger: any, jwtToken: string): Promise<void>;
69
69
  /**
70
70
  * Sends the given event to the telemetry service for permanent recording.
71
71
  *
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **Config**(`path?`, `defaultValue?`): (`target`, `propertyKey`) => `void`
10
10
 
11
- Defined in: [src/decorators/ObjectDecorators.ts:61](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/decorators/ObjectDecorators.ts#L61)
11
+ Defined in: [src/decorators/ObjectDecorators.ts:61](https://github.com/rapidrest/core/blob/df82e91f4c858ef61526c7f35789a4199b84d999/src/decorators/ObjectDecorators.ts#L61)
12
12
 
13
13
  Apply this to a property to have a configuration variable be injected at instantiation. If no path is given, the
14
14
  global configuration object is injected.
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **Destroy**(`target`, `propertyKey`): `void`
10
10
 
11
- Defined in: [src/decorators/ObjectDecorators.ts:10](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/decorators/ObjectDecorators.ts#L10)
11
+ Defined in: [src/decorators/ObjectDecorators.ts:10](https://github.com/rapidrest/core/blob/df82e91f4c858ef61526c7f35789a4199b84d999/src/decorators/ObjectDecorators.ts#L10)
12
12
 
13
13
  Apply this to a class function to mark it as a destructor to be called by the `ObjectFactory` during cleanup.
14
14
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **Init**(`target`, `propertyKey`, `descriptor`): `void`
10
10
 
11
- Defined in: [src/decorators/ObjectDecorators.ts:49](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/decorators/ObjectDecorators.ts#L49)
11
+ Defined in: [src/decorators/ObjectDecorators.ts:49](https://github.com/rapidrest/core/blob/df82e91f4c858ef61526c7f35789a4199b84d999/src/decorators/ObjectDecorators.ts#L49)
12
12
 
13
13
  Apply this to a function to be executed once a new object instance has been created and all dependencies injected.
14
14
  Note: If the decorated function returns a Promise it is not gauranteed to finish execution before the object is
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **Inject**(`type`, `options?`): (`target`, `propertyKey`) => `void`
10
10
 
11
- Defined in: [src/decorators/ObjectDecorators.ts:21](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/decorators/ObjectDecorators.ts#L21)
11
+ Defined in: [src/decorators/ObjectDecorators.ts:21](https://github.com/rapidrest/core/blob/df82e91f4c858ef61526c7f35789a4199b84d999/src/decorators/ObjectDecorators.ts#L21)
12
12
 
13
13
  Injects an object instance to the decorated property of the given name and type using the provided arguments
14
14
  if no object has been created yet.
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **Logger**(`target`, `propertyKey`): `void`
10
10
 
11
- Defined in: [src/decorators/ObjectDecorators.ts:77](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/decorators/ObjectDecorators.ts#L77)
11
+ Defined in: [src/decorators/ObjectDecorators.ts:77](https://github.com/rapidrest/core/blob/df82e91f4c858ef61526c7f35789a4199b84d999/src/decorators/ObjectDecorators.ts#L77)
12
12
 
13
13
  Apply this to a property to have the logger utility injected at instantiation.
14
14
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **Nullable**(`target`, `propertyKey`): `void`
10
10
 
11
- Defined in: [src/decorators/ObjectDecorators.ts:90](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/decorators/ObjectDecorators.ts#L90)
11
+ Defined in: [src/decorators/ObjectDecorators.ts:90](https://github.com/rapidrest/core/blob/df82e91f4c858ef61526c7f35789a4199b84d999/src/decorators/ObjectDecorators.ts#L90)
12
12
 
13
13
  Apply this to a property to indicate that the value can be `null` or `undefined.`
14
14
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  > **Validator**(`func`): (`target`, `propertyKey`) => `void`
10
10
 
11
- Defined in: [src/decorators/ObjectDecorators.ts:108](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/decorators/ObjectDecorators.ts#L108)
11
+ Defined in: [src/decorators/ObjectDecorators.ts:108](https://github.com/rapidrest/core/blob/df82e91f4c858ef61526c7f35789a4199b84d999/src/decorators/ObjectDecorators.ts#L108)
12
12
 
13
13
  Apply this to a property to specify the function that will be used to perform validation of the value.
14
14