@decaf-ts/injectable-decorators 1.6.6 → 1.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -8
- package/dist/injectable-decorators.cjs +159 -79
- package/dist/injectable-decorators.esm.cjs +157 -80
- package/lib/Injectables.cjs +6 -1
- package/lib/Injectables.d.ts +5 -0
- package/lib/constants.cjs +18 -4
- package/lib/constants.d.ts +15 -2
- package/lib/decorators.cjs +105 -51
- package/lib/decorators.d.ts +140 -94
- package/lib/esm/Injectables.d.ts +5 -0
- package/lib/esm/Injectables.js +6 -1
- package/lib/esm/constants.d.ts +15 -2
- package/lib/esm/constants.js +17 -3
- package/lib/esm/decorators.d.ts +140 -94
- package/lib/esm/decorators.js +102 -48
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/registry.js +6 -4
- package/lib/esm/types.d.ts +40 -3
- package/lib/esm/types.js +1 -1
- package/lib/esm/utils.d.ts +6 -4
- package/lib/esm/utils.js +8 -7
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/registry.cjs +7 -5
- package/lib/types.cjs +1 -1
- package/lib/types.d.ts +40 -3
- package/lib/utils.cjs +11 -9
- package/lib/utils.d.ts +6 -4
- package/package.json +2 -1
package/lib/esm/registry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InjectablesKeys } from "./constants.js";
|
|
2
|
-
import { getInjectKey } from "./
|
|
2
|
+
import { getInjectKey } from "./utils.js";
|
|
3
3
|
/**
|
|
4
4
|
* @description Default implementation of the InjectablesRegistry interface.
|
|
5
5
|
* @summary Holds the various {@link Injectable}s in a cache and provides methods to register, retrieve, and build them.
|
|
@@ -82,7 +82,7 @@ export class InjectableRegistryImp {
|
|
|
82
82
|
const name = category || Symbol.for(obj.toString());
|
|
83
83
|
if (!this.cache[name] || force)
|
|
84
84
|
this.cache[name] = {
|
|
85
|
-
instance: constructor ? obj : undefined,
|
|
85
|
+
instance: options.singleton && constructor ? obj : undefined,
|
|
86
86
|
constructor: !constructor ? obj : obj.constructor,
|
|
87
87
|
options: options,
|
|
88
88
|
};
|
|
@@ -99,10 +99,12 @@ export class InjectableRegistryImp {
|
|
|
99
99
|
catch (e) {
|
|
100
100
|
throw new Error(`failed to build ${name.toString()} with args ${args}: ${e}`);
|
|
101
101
|
}
|
|
102
|
-
|
|
102
|
+
if (options.singleton) {
|
|
103
|
+
this.cache[name].instance = instance;
|
|
104
|
+
}
|
|
103
105
|
if (options.callback)
|
|
104
106
|
instance = options.callback(instance, ...args);
|
|
105
107
|
return instance;
|
|
106
108
|
}
|
|
107
109
|
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBb0I7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSx3QkFBcUI7QUE4RDVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDVSxVQUFLLEdBQWtDLEVBQUUsQ0FBQztJQTJFcEQsQ0FBQztJQXpFQyxHQUFHLENBQUksSUFBMEM7UUFDL0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQ0QsSUFBbUQsRUFDbkQsR0FBRyxJQUFXO1FBRWQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUM5QixZQUFZLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUN4QyxJQUFJLENBQ0wsQ0FBQztZQUNGLElBQUksR0FBSSxJQUFJLEVBQUUsTUFBaUIsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLFlBQVksQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxDQUFFLElBQWUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUM3QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsUUFBUSxDQUNOLEdBQWtCLEVBQ2xCLFFBQTRCLEVBQzVCLE9BQTZCLEVBQzdCLFFBQWlCLEtBQUs7UUFFdEIsTUFBTSxPQUFPLEdBQXdCLEdBQTBCLENBQUM7UUFFaEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDekQsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLElBQUksQ0FBQyxXQUFXO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQ25FLENBQUM7UUFFSixNQUFNLElBQUksR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBRSxHQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ2pCLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDdkMsV0FBVyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLEdBQVcsQ0FBQyxXQUFXO2dCQUMxRCxPQUFPLEVBQUUsT0FBTzthQUNqQixDQUFDO0lBQ04sQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSyxDQUFJLElBQVksRUFBRSxHQUFHLElBQVc7UUFDbkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELElBQUksUUFBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQztZQUNILFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUJBQW1CLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQzdELENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3JDLElBQUksT0FBTyxDQUFDLFFBQVE7WUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNyRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlRGVmLCBJbmplY3RhYmxlT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlc0tleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEluamVjdEtleSB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHlwZSByZXByZXNlbnRpbmcgZWl0aGVyIGEgY2xhc3MgY29uc3RydWN0b3Igb3IgYW4gaW5zdGFuY2UuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGFuIEluamVjdGFibGUgdHlwZSB0aGF0IGNhbiBiZSBlaXRoZXIgYSBjbGFzcyBjb25zdHJ1Y3RvciBvciBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzLlxuICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgdGhlIGluamVjdGFibGUgb2JqZWN0XG4gKiBAdHlwZWRlZiB7ZnVuY3Rpb24oYW55KTogVCB8IFR9IEluamVjdGFibGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIEluamVjdGFibGU8VD4gPSB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0gfCBUO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb250cmFjdCBmb3IgYSByZWdpc3RyeSB0aGF0IG1hbmFnZXMgaW5qZWN0YWJsZSBvYmplY3RzLlxuICogQHN1bW1hcnkgSW50ZXJmYWNlIGZvciBhbiBpbmplY3RhYmxlIHJlZ2lzdHJ5IHRoYXQgcHJvdmlkZXMgbWV0aG9kcyBmb3IgcmV0cmlldmluZywgcmVnaXN0ZXJpbmcsIGFuZCBidWlsZGluZyBpbmplY3RhYmxlIG9iamVjdHMuXG4gKiBAdGVtcGxhdGUgVCBUeXBlIHBhcmFtZXRlciB1c2VkIGluIHRoZSBpbnRlcmZhY2UgbWV0aG9kc1xuICogQGludGVyZmFjZSBJbmplY3RhYmxlc1JlZ2lzdHJ5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGFibGVzUmVnaXN0cnkge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYW4gaW5qZWN0YWJsZSBpbnN0YW5jZSBieSBpdHMgcmVnaXN0ZXJlZCBuYW1lLlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYW4ge0BsaW5rIEluamVjdGFibGV9IGZyb20gdGhlIHJlZ2lzdHJ5IGJ5IG5hbWUsIG9wdGlvbmFsbHkgcGFzc2luZyBjb25zdHJ1Y3RvciBhcmd1bWVudHMuXG4gICAqIEB0ZW1wbGF0ZSBUIFR5cGUgb2YgdGhlIGluamVjdGFibGUgb2JqZWN0IHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSB7c3ltYm9sfSBuYW1lIFRoZSByZWdpc3RlcmVkIG5hbWUgb2YgdGhlIGluamVjdGFibGUgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtIHthbnlbXX0gYXJncyBDb25zdHJ1Y3RvciBhcmd1bWVudHMgdG8gcGFzcyB3aGVuIGluc3RhbnRpYXRpbmcgdGhlIGluamVjdGFibGVcbiAgICogQHJldHVybiB7SW5qZWN0YWJsZTxUPiB8IHVuZGVmaW5lZH0gVGhlIGluamVjdGFibGUgaW5zdGFuY2Ugb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICAgKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICAgKi9cbiAgZ2V0PFQ+KFxuICAgIG5hbWU6IHN5bWJvbCB8IHN0cmluZyB8IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFQgfSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBUIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQWRkcyBhIGNsYXNzIG9yIG9iamVjdCB0byB0aGUgaW5qZWN0YWJsZSByZWdpc3RyeS5cbiAgICogQHN1bW1hcnkgUmVnaXN0ZXJzIGFuIGluamVjdGFibGUgY29uc3RydWN0b3Igb3IgaW5zdGFuY2Ugd2l0aCB0aGUgcmVnaXN0cnksIG1ha2luZyBpdCBhdmFpbGFibGUgZm9yIGluamVjdGlvbi5cbiAgICogQHRlbXBsYXRlIFQgVHlwZSBvZiB0aGUgaW5qZWN0YWJsZSBvYmplY3QgdG8gcmVnaXN0ZXJcbiAgICogQHBhcmFtIHtJbmplY3RhYmxlPFQ+fSBjb25zdHJ1Y3RvciBUaGUgY2xhc3MgY29uc3RydWN0b3Igb3Igb2JqZWN0IGluc3RhbmNlIHRvIHJlZ2lzdGVyXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3MgQWRkaXRpb25hbCBhcmd1bWVudHMgZm9yIHJlZ2lzdHJhdGlvbiAoY2F0ZWdvcnksIHNpbmdsZXRvbiBmbGFnLCBldGMuKVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICAgKi9cbiAgcmVnaXN0ZXI8VD4oXG4gICAgY29uc3RydWN0b3I6IEluamVjdGFibGU8VD4sXG4gICAgY2F0ZWdvcnk6IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBJbmplY3RhYmxlT3B0aW9uczxUPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBhbiBpbmplY3RhYmxlIGNsYXNzLlxuICAgKiBAc3VtbWFyeSBJbnN0YW50aWF0ZXMgYW4gaW5qZWN0YWJsZSBjbGFzcyB1c2luZyBpdHMgY29uc3RydWN0b3IgYW5kIHRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAqIEB0ZW1wbGF0ZSBUIFR5cGUgb2YgdGhlIG9iamVjdCB0byBidWlsZFxuICAgKiBAcGFyYW0ge3N5bWJvbH0gbmFtZSBPYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgaW5qZWN0YWJsZSB0byBidWlsZFxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzIENvbnN0cnVjdG9yIGFyZ3VtZW50cyB0byBwYXNzIHdoZW4gaW5zdGFudGlhdGluZyB0aGUgaW5qZWN0YWJsZVxuICAgKiBAcmV0dXJuIHtUfSBUaGUgbmV3bHkgY3JlYXRlZCBpbnN0YW5jZVxuICAgKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICAgKi9cbiAgYnVpbGQ8VD4obmFtZTogc3ltYm9sLCAuLi5hcmdzOiBhbnlbXSk6IFQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIEluamVjdGFibGVzUmVnaXN0cnkgaW50ZXJmYWNlLlxuICogQHN1bW1hcnkgSG9sZHMgdGhlIHZhcmlvdXMge0BsaW5rIEluamVjdGFibGV9cyBpbiBhIGNhY2hlIGFuZCBwcm92aWRlcyBtZXRob2RzIHRvIHJlZ2lzdGVyLCByZXRyaWV2ZSwgYW5kIGJ1aWxkIHRoZW0uXG4gKiBAdGVtcGxhdGUgVCBUeXBlIHBhcmFtZXRlciB1c2VkIGluIHRoZSBjbGFzcyBtZXRob2RzXG4gKlxuICogQGNsYXNzIEluamVjdGFibGVSZWdpc3RyeUltcFxuICogQGltcGxlbWVudHMgSW5qZWN0YWJsZXNSZWdpc3RyeVxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENyZWF0ZSBhIG5ldyByZWdpc3RyeVxuICogY29uc3QgcmVnaXN0cnkgPSBuZXcgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wKCk7XG4gKlxuICogLy8gUmVnaXN0ZXIgYSBjbGFzc1xuICogY2xhc3MgTXlTZXJ2aWNlIHtcbiAqICAgZG9Tb21ldGhpbmcoKSB7XG4gKiAgICAgcmV0dXJuICdIZWxsbyBXb3JsZCc7XG4gKiAgIH1cbiAqIH1cbiAqIHJlZ2lzdHJ5LnJlZ2lzdGVyKE15U2VydmljZSwgJ015U2VydmljZScsIHRydWUpO1xuICpcbiAqIC8vIEdldCB0aGUgaW5zdGFuY2VcbiAqIGNvbnN0IHNlcnZpY2UgPSByZWdpc3RyeS5nZXQoJ015U2VydmljZScpO1xuICogc2VydmljZS5kb1NvbWV0aGluZygpOyAvLyAnSGVsbG8gV29ybGQnXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgUmVnaXN0cnlcbiAqXG4gKiAgIENsaWVudC0+PlJlZ2lzdHJ5OiByZWdpc3RlcihNeVNlcnZpY2UpXG4gKiAgIFJlZ2lzdHJ5LT4+UmVnaXN0cnk6IFN0b3JlIGluIGNhY2hlXG4gKlxuICogICBDbGllbnQtPj5SZWdpc3RyeTogZ2V0KFwiTXlTZXJ2aWNlXCIpXG4gKiAgIGFsdCBJbnN0YW5jZSBleGlzdHMgYW5kIGlzIHNpbmdsZXRvblxuICogICAgIFJlZ2lzdHJ5LS0+PkNsaWVudDogUmV0dXJuIGNhY2hlZCBpbnN0YW5jZVxuICogICBlbHNlIE5vIGluc3RhbmNlIG9yIG5vdCBzaW5nbGV0b25cbiAqICAgICBSZWdpc3RyeS0+PlJlZ2lzdHJ5OiBidWlsZChuYW1lKVxuICogICAgIFJlZ2lzdHJ5LS0+PkNsaWVudDogUmV0dXJuIG5ldyBpbnN0YW5jZVxuICogICBlbmRcbiAqL1xuZXhwb3J0IGNsYXNzIEluamVjdGFibGVSZWdpc3RyeUltcCBpbXBsZW1lbnRzIEluamVjdGFibGVzUmVnaXN0cnkge1xuICBwcml2YXRlIGNhY2hlOiBSZWNvcmQ8c3ltYm9sLCBJbmplY3RhYmxlRGVmPiA9IHt9O1xuXG4gIGhhczxUPihuYW1lOiBzeW1ib2wgfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIG5hbWUgPT09IFwic3ltYm9sXCIpIHJldHVybiBuYW1lIGluIHRoaXMuY2FjaGU7XG4gICAgcmV0dXJuIFN5bWJvbC5mb3IobmFtZS50b1N0cmluZygpKSBpbiB0aGlzLmNhY2hlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBnZXQ8VD4oXG4gICAgbmFtZTogc3ltYm9sIHwgc3RyaW5nIHwgeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVCB9LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzdHJpbmdcIikgbmFtZSA9IFN5bWJvbC5mb3IobmFtZSk7XG4gICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN5bWJvbFwiKSB7XG4gICAgICBjb25zdCBtZXRhID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgICAgZ2V0SW5qZWN0S2V5KEluamVjdGFibGVzS2V5cy5JTkpFQ1RBQkxFKSxcbiAgICAgICAgbmFtZVxuICAgICAgKTtcbiAgICAgIG5hbWUgPSAobWV0YT8uc3ltYm9sIGFzIHN5bWJvbCkgfHwgU3ltYm9sLmZvcihuYW1lLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBpZiAoIW5hbWUpIHRocm93IG5ldyBFcnJvcihgSW5qZWN0YWJsZSAke25hbWV9IG5vdCBmb3VuZGApO1xuXG4gICAgaWYgKCEoKG5hbWUgYXMgc3ltYm9sKSBpbiB0aGlzLmNhY2hlKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgY2FjaGUgPSB0aGlzLmNhY2hlW25hbWVdO1xuICAgIGlmICghY2FjaGUub3B0aW9ucy5zaW5nbGV0b24gJiYgIWNhY2hlLmluc3RhbmNlKVxuICAgICAgcmV0dXJuIHRoaXMuYnVpbGQ8VD4obmFtZSwgLi4uYXJncyk7XG4gICAgcmV0dXJuIGNhY2hlLmluc3RhbmNlIHx8IHRoaXMuYnVpbGQ8VD4obmFtZSwgLi4uYXJncyk7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICByZWdpc3RlcjxUPihcbiAgICBvYmo6IEluamVjdGFibGU8VD4sXG4gICAgY2F0ZWdvcnk6IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBJbmplY3RhYmxlT3B0aW9uczxUPixcbiAgICBmb3JjZTogYm9vbGVhbiA9IGZhbHNlXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNhc3RPYmo6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBvYmogYXMgUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gIWNhc3RPYmoubmFtZSAmJiBjYXN0T2JqLmNvbnN0cnVjdG9yO1xuICAgIGlmICh0eXBlb2YgY2FzdE9iaiAhPT0gXCJmdW5jdGlvblwiICYmICFjb25zdHJ1Y3RvcilcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEluamVjdGFibGUgcmVnaXN0ZXJpbmcgZmFpbGVkLiBNaXNzaW5nIENsYXNzIG5hbWUgb3IgY29uc3RydWN0b3JgXG4gICAgICApO1xuXG4gICAgY29uc3QgbmFtZSA9IGNhdGVnb3J5IHx8IFN5bWJvbC5mb3IoKG9iaiBhcyBhbnkpLnRvU3RyaW5nKCkpO1xuXG4gICAgaWYgKCF0aGlzLmNhY2hlW25hbWVdIHx8IGZvcmNlKVxuICAgICAgdGhpcy5jYWNoZVtuYW1lXSA9IHtcbiAgICAgICAgaW5zdGFuY2U6IGNvbnN0cnVjdG9yID8gb2JqIDogdW5kZWZpbmVkLFxuICAgICAgICBjb25zdHJ1Y3RvcjogIWNvbnN0cnVjdG9yID8gb2JqIDogKG9iaiBhcyBhbnkpLmNvbnN0cnVjdG9yLFxuICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgfTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGJ1aWxkPFQ+KG5hbWU6IHN5bWJvbCwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICBjb25zdCB7IGNvbnN0cnVjdG9yLCBvcHRpb25zIH0gPSB0aGlzLmNhY2hlW25hbWVdO1xuICAgIGxldCBpbnN0YW5jZTogVDtcbiAgICB0cnkge1xuICAgICAgaW5zdGFuY2UgPSBuZXcgY29uc3RydWN0b3IoLi4uYXJncyk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZmFpbGVkIHRvIGJ1aWxkICR7bmFtZS50b1N0cmluZygpfSB3aXRoIGFyZ3MgJHthcmdzfTogJHtlfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2FjaGVbbmFtZV0uaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICBpZiAob3B0aW9ucy5jYWxsYmFjaykgaW5zdGFuY2UgPSBvcHRpb25zLmNhbGxiYWNrKGluc3RhbmNlLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cbn1cbiJdfQ==
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBb0I7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBZ0I7QUE4RHZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDVSxVQUFLLEdBQWtDLEVBQUUsQ0FBQztJQTZFcEQsQ0FBQztJQTNFQyxHQUFHLENBQUksSUFBMEM7UUFDL0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQ0QsSUFBbUQsRUFDbkQsR0FBRyxJQUFXO1FBRWQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUM5QixZQUFZLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUN4QyxJQUFJLENBQ0wsQ0FBQztZQUNGLElBQUksR0FBSSxJQUFJLEVBQUUsTUFBaUIsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLFlBQVksQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxDQUFFLElBQWUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUM3QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsUUFBUSxDQUNOLEdBQWtCLEVBQ2xCLFFBQTRCLEVBQzVCLE9BQTZCLEVBQzdCLFFBQWlCLEtBQUs7UUFFdEIsTUFBTSxPQUFPLEdBQXdCLEdBQTBCLENBQUM7UUFFaEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDekQsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLElBQUksQ0FBQyxXQUFXO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQ25FLENBQUM7UUFFSixNQUFNLElBQUksR0FBRyxRQUFRLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBRSxHQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUM1RCxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsR0FBVyxDQUFDLFdBQVc7Z0JBQzFELE9BQU8sRUFBRSxPQUFPO2FBQ2pCLENBQUM7SUFDTixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxLQUFLLENBQUksSUFBWSxFQUFFLEdBQUcsSUFBVztRQUNuQyxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxRQUFXLENBQUM7UUFDaEIsSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLElBQUksV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FDN0QsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVE7WUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNyRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlRGVmLCBJbmplY3RhYmxlT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlc0tleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEluamVjdEtleSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFR5cGUgcmVwcmVzZW50aW5nIGVpdGhlciBhIGNsYXNzIGNvbnN0cnVjdG9yIG9yIGFuIGluc3RhbmNlLlxuICogQHN1bW1hcnkgRGVmaW5lcyBhbiBJbmplY3RhYmxlIHR5cGUgdGhhdCBjYW4gYmUgZWl0aGVyIGEgY2xhc3MgY29uc3RydWN0b3Igb3IgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcy5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSB0eXBlIG9mIHRoZSBpbmplY3RhYmxlIG9iamVjdFxuICogQHR5cGVkZWYge2Z1bmN0aW9uKGFueSk6IFQgfCBUfSBJbmplY3RhYmxlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBJbmplY3RhYmxlPFQ+ID0geyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVCB9IHwgVDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29udHJhY3QgZm9yIGEgcmVnaXN0cnkgdGhhdCBtYW5hZ2VzIGluamVjdGFibGUgb2JqZWN0cy5cbiAqIEBzdW1tYXJ5IEludGVyZmFjZSBmb3IgYW4gaW5qZWN0YWJsZSByZWdpc3RyeSB0aGF0IHByb3ZpZGVzIG1ldGhvZHMgZm9yIHJldHJpZXZpbmcsIHJlZ2lzdGVyaW5nLCBhbmQgYnVpbGRpbmcgaW5qZWN0YWJsZSBvYmplY3RzLlxuICogQHRlbXBsYXRlIFQgVHlwZSBwYXJhbWV0ZXIgdXNlZCBpbiB0aGUgaW50ZXJmYWNlIG1ldGhvZHNcbiAqIEBpbnRlcmZhY2UgSW5qZWN0YWJsZXNSZWdpc3RyeVxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmplY3RhYmxlc1JlZ2lzdHJ5IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGZXRjaGVzIGFuIGluamVjdGFibGUgaW5zdGFuY2UgYnkgaXRzIHJlZ2lzdGVyZWQgbmFtZS5cbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIGFuIHtAbGluayBJbmplY3RhYmxlfSBmcm9tIHRoZSByZWdpc3RyeSBieSBuYW1lLCBvcHRpb25hbGx5IHBhc3NpbmcgY29uc3RydWN0b3IgYXJndW1lbnRzLlxuICAgKiBAdGVtcGxhdGUgVCBUeXBlIG9mIHRoZSBpbmplY3RhYmxlIG9iamVjdCB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0ge3N5bWJvbH0gbmFtZSBUaGUgcmVnaXN0ZXJlZCBuYW1lIG9mIHRoZSBpbmplY3RhYmxlIHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3MgQ29uc3RydWN0b3IgYXJndW1lbnRzIHRvIHBhc3Mgd2hlbiBpbnN0YW50aWF0aW5nIHRoZSBpbmplY3RhYmxlXG4gICAqIEByZXR1cm4ge0luamVjdGFibGU8VD4gfCB1bmRlZmluZWR9IFRoZSBpbmplY3RhYmxlIGluc3RhbmNlIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAgICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAgICovXG4gIGdldDxUPihcbiAgICBuYW1lOiBzeW1ib2wgfCBzdHJpbmcgfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogVCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFkZHMgYSBjbGFzcyBvciBvYmplY3QgdG8gdGhlIGluamVjdGFibGUgcmVnaXN0cnkuXG4gICAqIEBzdW1tYXJ5IFJlZ2lzdGVycyBhbiBpbmplY3RhYmxlIGNvbnN0cnVjdG9yIG9yIGluc3RhbmNlIHdpdGggdGhlIHJlZ2lzdHJ5LCBtYWtpbmcgaXQgYXZhaWxhYmxlIGZvciBpbmplY3Rpb24uXG4gICAqIEB0ZW1wbGF0ZSBUIFR5cGUgb2YgdGhlIGluamVjdGFibGUgb2JqZWN0IHRvIHJlZ2lzdGVyXG4gICAqIEBwYXJhbSB7SW5qZWN0YWJsZTxUPn0gY29uc3RydWN0b3IgVGhlIGNsYXNzIGNvbnN0cnVjdG9yIG9yIG9iamVjdCBpbnN0YW5jZSB0byByZWdpc3RlclxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzIEFkZGl0aW9uYWwgYXJndW1lbnRzIGZvciByZWdpc3RyYXRpb24gKGNhdGVnb3J5LCBzaW5nbGV0b24gZmxhZywgZXRjLilcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAgICovXG4gIHJlZ2lzdGVyPFQ+KFxuICAgIGNvbnN0cnVjdG9yOiBJbmplY3RhYmxlPFQ+LFxuICAgIGNhdGVnb3J5OiBzeW1ib2wgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogSW5qZWN0YWJsZU9wdGlvbnM8VD4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogdm9pZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYW4gaW5qZWN0YWJsZSBjbGFzcy5cbiAgICogQHN1bW1hcnkgSW5zdGFudGlhdGVzIGFuIGluamVjdGFibGUgY2xhc3MgdXNpbmcgaXRzIGNvbnN0cnVjdG9yIGFuZCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgKiBAdGVtcGxhdGUgVCBUeXBlIG9mIHRoZSBvYmplY3QgdG8gYnVpbGRcbiAgICogQHBhcmFtIHtzeW1ib2x9IG5hbWUgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGluamVjdGFibGUgdG8gYnVpbGRcbiAgICogQHBhcmFtIHthbnlbXX0gYXJncyBDb25zdHJ1Y3RvciBhcmd1bWVudHMgdG8gcGFzcyB3aGVuIGluc3RhbnRpYXRpbmcgdGhlIGluamVjdGFibGVcbiAgICogQHJldHVybiB7VH0gVGhlIG5ld2x5IGNyZWF0ZWQgaW5zdGFuY2VcbiAgICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAgICovXG4gIGJ1aWxkPFQ+KG5hbWU6IHN5bWJvbCwgLi4uYXJnczogYW55W10pOiBUO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBJbmplY3RhYmxlc1JlZ2lzdHJ5IGludGVyZmFjZS5cbiAqIEBzdW1tYXJ5IEhvbGRzIHRoZSB2YXJpb3VzIHtAbGluayBJbmplY3RhYmxlfXMgaW4gYSBjYWNoZSBhbmQgcHJvdmlkZXMgbWV0aG9kcyB0byByZWdpc3RlciwgcmV0cmlldmUsIGFuZCBidWlsZCB0aGVtLlxuICogQHRlbXBsYXRlIFQgVHlwZSBwYXJhbWV0ZXIgdXNlZCBpbiB0aGUgY2xhc3MgbWV0aG9kc1xuICpcbiAqIEBjbGFzcyBJbmplY3RhYmxlUmVnaXN0cnlJbXBcbiAqIEBpbXBsZW1lbnRzIEluamVjdGFibGVzUmVnaXN0cnlcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDcmVhdGUgYSBuZXcgcmVnaXN0cnlcbiAqIGNvbnN0IHJlZ2lzdHJ5ID0gbmV3IEluamVjdGFibGVSZWdpc3RyeUltcCgpO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGEgY2xhc3NcbiAqIGNsYXNzIE15U2VydmljZSB7XG4gKiAgIGRvU29tZXRoaW5nKCkge1xuICogICAgIHJldHVybiAnSGVsbG8gV29ybGQnO1xuICogICB9XG4gKiB9XG4gKiByZWdpc3RyeS5yZWdpc3RlcihNeVNlcnZpY2UsICdNeVNlcnZpY2UnLCB0cnVlKTtcbiAqXG4gKiAvLyBHZXQgdGhlIGluc3RhbmNlXG4gKiBjb25zdCBzZXJ2aWNlID0gcmVnaXN0cnkuZ2V0KCdNeVNlcnZpY2UnKTtcbiAqIHNlcnZpY2UuZG9Tb21ldGhpbmcoKTsgLy8gJ0hlbGxvIFdvcmxkJ1xuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IFJlZ2lzdHJ5XG4gKlxuICogICBDbGllbnQtPj5SZWdpc3RyeTogcmVnaXN0ZXIoTXlTZXJ2aWNlKVxuICogICBSZWdpc3RyeS0+PlJlZ2lzdHJ5OiBTdG9yZSBpbiBjYWNoZVxuICpcbiAqICAgQ2xpZW50LT4+UmVnaXN0cnk6IGdldChcIk15U2VydmljZVwiKVxuICogICBhbHQgSW5zdGFuY2UgZXhpc3RzIGFuZCBpcyBzaW5nbGV0b25cbiAqICAgICBSZWdpc3RyeS0tPj5DbGllbnQ6IFJldHVybiBjYWNoZWQgaW5zdGFuY2VcbiAqICAgZWxzZSBObyBpbnN0YW5jZSBvciBub3Qgc2luZ2xldG9uXG4gKiAgICAgUmVnaXN0cnktPj5SZWdpc3RyeTogYnVpbGQobmFtZSlcbiAqICAgICBSZWdpc3RyeS0tPj5DbGllbnQ6IFJldHVybiBuZXcgaW5zdGFuY2VcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmplY3RhYmxlUmVnaXN0cnlJbXAgaW1wbGVtZW50cyBJbmplY3RhYmxlc1JlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBjYWNoZTogUmVjb3JkPHN5bWJvbCwgSW5qZWN0YWJsZURlZj4gPSB7fTtcblxuICBoYXM8VD4obmFtZTogc3ltYm9sIHwgeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVCB9KTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN5bWJvbFwiKSByZXR1cm4gbmFtZSBpbiB0aGlzLmNhY2hlO1xuICAgIHJldHVybiBTeW1ib2wuZm9yKG5hbWUudG9TdHJpbmcoKSkgaW4gdGhpcy5jYWNoZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgZ2V0PFQ+KFxuICAgIG5hbWU6IHN5bWJvbCB8IHN0cmluZyB8IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFQgfSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIG5hbWUgPT09IFwic3RyaW5nXCIpIG5hbWUgPSBTeW1ib2wuZm9yKG5hbWUpO1xuICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gXCJzeW1ib2xcIikge1xuICAgICAgY29uc3QgbWV0YSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXG4gICAgICAgIGdldEluamVjdEtleShJbmplY3RhYmxlc0tleXMuSU5KRUNUQUJMRSksXG4gICAgICAgIG5hbWVcbiAgICAgICk7XG4gICAgICBuYW1lID0gKG1ldGE/LnN5bWJvbCBhcyBzeW1ib2wpIHx8IFN5bWJvbC5mb3IobmFtZS50b1N0cmluZygpKTtcbiAgICB9XG4gICAgaWYgKCFuYW1lKSB0aHJvdyBuZXcgRXJyb3IoYEluamVjdGFibGUgJHtuYW1lfSBub3QgZm91bmRgKTtcblxuICAgIGlmICghKChuYW1lIGFzIHN5bWJvbCkgaW4gdGhpcy5jYWNoZSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5jYWNoZVtuYW1lXTtcbiAgICBpZiAoIWNhY2hlLm9wdGlvbnMuc2luZ2xldG9uICYmICFjYWNoZS5pbnN0YW5jZSlcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkPFQ+KG5hbWUsIC4uLmFyZ3MpO1xuICAgIHJldHVybiBjYWNoZS5pbnN0YW5jZSB8fCB0aGlzLmJ1aWxkPFQ+KG5hbWUsIC4uLmFyZ3MpO1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgcmVnaXN0ZXI8VD4oXG4gICAgb2JqOiBJbmplY3RhYmxlPFQ+LFxuICAgIGNhdGVnb3J5OiBzeW1ib2wgfCB1bmRlZmluZWQsXG4gICAgb3B0aW9uczogSW5qZWN0YWJsZU9wdGlvbnM8VD4sXG4gICAgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjYXN0T2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gb2JqIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RvciA9ICFjYXN0T2JqLm5hbWUgJiYgY2FzdE9iai5jb25zdHJ1Y3RvcjtcbiAgICBpZiAodHlwZW9mIGNhc3RPYmogIT09IFwiZnVuY3Rpb25cIiAmJiAhY29uc3RydWN0b3IpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbmplY3RhYmxlIHJlZ2lzdGVyaW5nIGZhaWxlZC4gTWlzc2luZyBDbGFzcyBuYW1lIG9yIGNvbnN0cnVjdG9yYFxuICAgICAgKTtcblxuICAgIGNvbnN0IG5hbWUgPSBjYXRlZ29yeSB8fCBTeW1ib2wuZm9yKChvYmogYXMgYW55KS50b1N0cmluZygpKTtcblxuICAgIGlmICghdGhpcy5jYWNoZVtuYW1lXSB8fCBmb3JjZSlcbiAgICAgIHRoaXMuY2FjaGVbbmFtZV0gPSB7XG4gICAgICAgIGluc3RhbmNlOiBvcHRpb25zLnNpbmdsZXRvbiAmJiBjb25zdHJ1Y3RvciA/IG9iaiA6IHVuZGVmaW5lZCxcbiAgICAgICAgY29uc3RydWN0b3I6ICFjb25zdHJ1Y3RvciA/IG9iaiA6IChvYmogYXMgYW55KS5jb25zdHJ1Y3RvcixcbiAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBidWlsZDxUPihuYW1lOiBzeW1ib2wsIC4uLmFyZ3M6IGFueVtdKTogVCB7XG4gICAgY29uc3QgeyBjb25zdHJ1Y3Rvciwgb3B0aW9ucyB9ID0gdGhpcy5jYWNoZVtuYW1lXTtcbiAgICBsZXQgaW5zdGFuY2U6IFQ7XG4gICAgdHJ5IHtcbiAgICAgIGluc3RhbmNlID0gbmV3IGNvbnN0cnVjdG9yKC4uLmFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGZhaWxlZCB0byBidWlsZCAke25hbWUudG9TdHJpbmcoKX0gd2l0aCBhcmdzICR7YXJnc306ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5zaW5nbGV0b24pIHtcbiAgICAgIHRoaXMuY2FjaGVbbmFtZV0uaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuY2FsbGJhY2spIGluc3RhbmNlID0gb3B0aW9ucy5jYWxsYmFjayhpbnN0YW5jZSwgLi4uYXJncyk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG59XG4iXX0=
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -1,15 +1,52 @@
|
|
|
1
|
+
import { Constructor } from "./decorators";
|
|
2
|
+
/**
|
|
3
|
+
* @description Callback function type used to transform or initialize an instance after construction.
|
|
4
|
+
* @summary Represents a post-construction hook that can modify or replace the created instance before it is returned to the caller.
|
|
5
|
+
* @template T The instance type being produced and possibly transformed.
|
|
6
|
+
* @param {T} instance The newly constructed instance.
|
|
7
|
+
* @param {...any} args Additional arguments forwarded from the construction context.
|
|
8
|
+
* @return {T} The instance to be stored/returned, which may be the original or a transformed instance.
|
|
9
|
+
* @typedef InstanceCallback
|
|
10
|
+
* @memberOf module:injectable-decorators
|
|
11
|
+
*/
|
|
1
12
|
export type InstanceCallback<T> = (instance: T, ...args: any[]) => T;
|
|
13
|
+
/**
|
|
14
|
+
* @description Options controlling how an injectable should be handled by the registry.
|
|
15
|
+
* @summary Specifies lifecycle and callback configuration for injectables, such as whether they are singletons and whether a post-build callback should run.
|
|
16
|
+
* @template T The instance type governed by these options.
|
|
17
|
+
* @property {boolean} singleton Indicates if the injectable should be treated as a singleton (single shared instance).
|
|
18
|
+
* @property {InstanceCallback<T>} callback Optional callback invoked after building an instance to perform additional setup or transformation.
|
|
19
|
+
* @typedef InjectableOptions
|
|
20
|
+
* @memberOf module:injectable-decorators
|
|
21
|
+
*/
|
|
2
22
|
export type InjectableOptions<T> = {
|
|
3
23
|
singleton: boolean;
|
|
4
24
|
callback: InstanceCallback<T>;
|
|
5
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* @description Internal registry definition for a stored injectable entry.
|
|
28
|
+
* @summary Describes how the registry caches injectable metadata, constructor, and (optionally) a built instance.
|
|
29
|
+
* @template T The resolved instance type.
|
|
30
|
+
* @template OPTS The options shape used for this injectable, extending {@link InjectableOptions}.
|
|
31
|
+
* @property {OPTS} options The lifecycle/options associated with this injectable entry.
|
|
32
|
+
* @property {*} [instance] The cached instance when applicable (e.g., singleton), otherwise undefined until built.
|
|
33
|
+
* @property {Constructor} constructor The constructor used to create new instances.
|
|
34
|
+
* @typedef InjectableDef
|
|
35
|
+
* @memberOf module:injectable-decorators
|
|
36
|
+
*/
|
|
6
37
|
export type InjectableDef<T = any, OPTS extends InjectableOptions<T> = InjectableOptions<T>> = {
|
|
7
38
|
options: OPTS;
|
|
8
39
|
instance?: any;
|
|
9
|
-
constructor:
|
|
10
|
-
new (...args: any[]): any;
|
|
11
|
-
};
|
|
40
|
+
constructor: Constructor<T>;
|
|
12
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* @description Metadata attached to classes marked as injectable.
|
|
44
|
+
* @summary Captures identifying information stored via reflection for later retrieval and wiring.
|
|
45
|
+
* @property {string} class The class name of the injectable.
|
|
46
|
+
* @property {symbol} symbol The unique symbol under which the injectable is registered.
|
|
47
|
+
* @typedef InjectableMetadata
|
|
48
|
+
* @memberOf module:injectable-decorators
|
|
49
|
+
*/
|
|
13
50
|
export type InjectableMetadata = {
|
|
14
51
|
class: string;
|
|
15
52
|
symbol: symbol;
|
package/lib/esm/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDYWxsYmFjayBmdW5jdGlvbiB0eXBlIHVzZWQgdG8gdHJhbnNmb3JtIG9yIGluaXRpYWxpemUgYW4gaW5zdGFuY2UgYWZ0ZXIgY29uc3RydWN0aW9uLlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIHBvc3QtY29uc3RydWN0aW9uIGhvb2sgdGhhdCBjYW4gbW9kaWZ5IG9yIHJlcGxhY2UgdGhlIGNyZWF0ZWQgaW5zdGFuY2UgYmVmb3JlIGl0IGlzIHJldHVybmVkIHRvIHRoZSBjYWxsZXIuXG4gKiBAdGVtcGxhdGUgVCBUaGUgaW5zdGFuY2UgdHlwZSBiZWluZyBwcm9kdWNlZCBhbmQgcG9zc2libHkgdHJhbnNmb3JtZWQuXG4gKiBAcGFyYW0ge1R9IGluc3RhbmNlIFRoZSBuZXdseSBjb25zdHJ1Y3RlZCBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7Li4uYW55fSBhcmdzIEFkZGl0aW9uYWwgYXJndW1lbnRzIGZvcndhcmRlZCBmcm9tIHRoZSBjb25zdHJ1Y3Rpb24gY29udGV4dC5cbiAqIEByZXR1cm4ge1R9IFRoZSBpbnN0YW5jZSB0byBiZSBzdG9yZWQvcmV0dXJuZWQsIHdoaWNoIG1heSBiZSB0aGUgb3JpZ2luYWwgb3IgYSB0cmFuc2Zvcm1lZCBpbnN0YW5jZS5cbiAqIEB0eXBlZGVmIEluc3RhbmNlQ2FsbGJhY2tcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbmNlQ2FsbGJhY2s8VD4gPSAoaW5zdGFuY2U6IFQsIC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb25zIGNvbnRyb2xsaW5nIGhvdyBhbiBpbmplY3RhYmxlIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSByZWdpc3RyeS5cbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBsaWZlY3ljbGUgYW5kIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gZm9yIGluamVjdGFibGVzLCBzdWNoIGFzIHdoZXRoZXIgdGhleSBhcmUgc2luZ2xldG9ucyBhbmQgd2hldGhlciBhIHBvc3QtYnVpbGQgY2FsbGJhY2sgc2hvdWxkIHJ1bi5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSBpbnN0YW5jZSB0eXBlIGdvdmVybmVkIGJ5IHRoZXNlIG9wdGlvbnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHNpbmdsZXRvbiBJbmRpY2F0ZXMgaWYgdGhlIGluamVjdGFibGUgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGV0b24gKHNpbmdsZSBzaGFyZWQgaW5zdGFuY2UpLlxuICogQHByb3BlcnR5IHtJbnN0YW5jZUNhbGxiYWNrPFQ+fSBjYWxsYmFjayBPcHRpb25hbCBjYWxsYmFjayBpbnZva2VkIGFmdGVyIGJ1aWxkaW5nIGFuIGluc3RhbmNlIHRvIHBlcmZvcm0gYWRkaXRpb25hbCBzZXR1cCBvciB0cmFuc2Zvcm1hdGlvbi5cbiAqIEB0eXBlZGVmIEluamVjdGFibGVPcHRpb25zXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBJbmplY3RhYmxlT3B0aW9uczxUPiA9IHtcbiAgc2luZ2xldG9uOiBib29sZWFuO1xuICBjYWxsYmFjazogSW5zdGFuY2VDYWxsYmFjazxUPjtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVybmFsIHJlZ2lzdHJ5IGRlZmluaXRpb24gZm9yIGEgc3RvcmVkIGluamVjdGFibGUgZW50cnkuXG4gKiBAc3VtbWFyeSBEZXNjcmliZXMgaG93IHRoZSByZWdpc3RyeSBjYWNoZXMgaW5qZWN0YWJsZSBtZXRhZGF0YSwgY29uc3RydWN0b3IsIGFuZCAob3B0aW9uYWxseSkgYSBidWlsdCBpbnN0YW5jZS5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSByZXNvbHZlZCBpbnN0YW5jZSB0eXBlLlxuICogQHRlbXBsYXRlIE9QVFMgVGhlIG9wdGlvbnMgc2hhcGUgdXNlZCBmb3IgdGhpcyBpbmplY3RhYmxlLCBleHRlbmRpbmcge0BsaW5rIEluamVjdGFibGVPcHRpb25zfS5cbiAqIEBwcm9wZXJ0eSB7T1BUU30gb3B0aW9ucyBUaGUgbGlmZWN5Y2xlL29wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5qZWN0YWJsZSBlbnRyeS5cbiAqIEBwcm9wZXJ0eSB7Kn0gW2luc3RhbmNlXSBUaGUgY2FjaGVkIGluc3RhbmNlIHdoZW4gYXBwbGljYWJsZSAoZS5nLiwgc2luZ2xldG9uKSwgb3RoZXJ3aXNlIHVuZGVmaW5lZCB1bnRpbCBidWlsdC5cbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3J9IGNvbnN0cnVjdG9yIFRoZSBjb25zdHJ1Y3RvciB1c2VkIHRvIGNyZWF0ZSBuZXcgaW5zdGFuY2VzLlxuICogQHR5cGVkZWYgSW5qZWN0YWJsZURlZlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgSW5qZWN0YWJsZURlZjxcbiAgVCA9IGFueSxcbiAgT1BUUyBleHRlbmRzIEluamVjdGFibGVPcHRpb25zPFQ+ID0gSW5qZWN0YWJsZU9wdGlvbnM8VD4sXG4+ID0ge1xuICBvcHRpb25zOiBPUFRTO1xuICBpbnN0YW5jZT86IGFueTtcbiAgY29uc3RydWN0b3I6IENvbnN0cnVjdG9yPFQ+O1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWV0YWRhdGEgYXR0YWNoZWQgdG8gY2xhc3NlcyBtYXJrZWQgYXMgaW5qZWN0YWJsZS5cbiAqIEBzdW1tYXJ5IENhcHR1cmVzIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uIHN0b3JlZCB2aWEgcmVmbGVjdGlvbiBmb3IgbGF0ZXIgcmV0cmlldmFsIGFuZCB3aXJpbmcuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2xhc3MgVGhlIGNsYXNzIG5hbWUgb2YgdGhlIGluamVjdGFibGUuXG4gKiBAcHJvcGVydHkge3N5bWJvbH0gc3ltYm9sIFRoZSB1bmlxdWUgc3ltYm9sIHVuZGVyIHdoaWNoIHRoZSBpbmplY3RhYmxlIGlzIHJlZ2lzdGVyZWQuXG4gKiBAdHlwZWRlZiBJbmplY3RhYmxlTWV0YWRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIEluamVjdGFibGVNZXRhZGF0YSA9IHtcbiAgY2xhc3M6IHN0cmluZztcbiAgc3ltYm9sOiBzeW1ib2w7XG59O1xuIl19
|
package/lib/esm/utils.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
|
-
* @summary
|
|
5
|
-
* @
|
|
3
|
+
* @description Generates a fully qualified reflection metadata key.
|
|
4
|
+
* @summary Returns the reflection key for injectables by prefixing the provided key with the base reflection key.
|
|
5
|
+
* @param {string} key The key to be prefixed
|
|
6
|
+
* @return {string} The fully qualified reflection key
|
|
7
|
+
* @function getInjectKey
|
|
6
8
|
* @memberOf module:injectable-decorators
|
|
7
9
|
*/
|
|
8
|
-
export declare const
|
|
10
|
+
export declare const getInjectKey: (key: string) => string;
|
|
9
11
|
/**
|
|
10
12
|
* @description Extracts the type name from a decorated property using reflection.
|
|
11
13
|
* @summary Retrieves the type from a property decorator by accessing TypeScript's reflection metadata.
|
package/lib/esm/utils.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import {
|
|
3
|
-
import { InjectablesKeys } from "./constants.js";
|
|
2
|
+
import { InjectablesKeys, TypeKey } from "./constants.js";
|
|
4
3
|
/**
|
|
5
|
-
* @description
|
|
6
|
-
* @summary
|
|
7
|
-
* @
|
|
4
|
+
* @description Generates a fully qualified reflection metadata key.
|
|
5
|
+
* @summary Returns the reflection key for injectables by prefixing the provided key with the base reflection key.
|
|
6
|
+
* @param {string} key The key to be prefixed
|
|
7
|
+
* @return {string} The fully qualified reflection key
|
|
8
|
+
* @function getInjectKey
|
|
8
9
|
* @memberOf module:injectable-decorators
|
|
9
10
|
*/
|
|
10
|
-
export const
|
|
11
|
+
export const getInjectKey = (key) => InjectablesKeys.REFLECT + key;
|
|
11
12
|
/**
|
|
12
13
|
* @description Extracts the type name from a decorated property using reflection.
|
|
13
14
|
* @summary Retrieves the type from a property decorator by accessing TypeScript's reflection metadata.
|
|
@@ -28,4 +29,4 @@ export function getTypeFromDecorator(model, propKey) {
|
|
|
28
29
|
}
|
|
29
30
|
return meta.symbol;
|
|
30
31
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSx1QkFBb0I7QUFFdkQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFFM0U7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLEtBQVUsRUFDVixPQUF3QjtJQUV4QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUM5QixZQUFZLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUN4QyxPQUFPLENBQ1IsQ0FBQztJQUNGLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCB7IEluamVjdGFibGVzS2V5cywgVHlwZUtleSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgYSBmdWxseSBxdWFsaWZpZWQgcmVmbGVjdGlvbiBtZXRhZGF0YSBrZXkuXG4gKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSByZWZsZWN0aW9uIGtleSBmb3IgaW5qZWN0YWJsZXMgYnkgcHJlZml4aW5nIHRoZSBwcm92aWRlZCBrZXkgd2l0aCB0aGUgYmFzZSByZWZsZWN0aW9uIGtleS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSB0byBiZSBwcmVmaXhlZFxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgZnVsbHkgcXVhbGlmaWVkIHJlZmxlY3Rpb24ga2V5XG4gKiBAZnVuY3Rpb24gZ2V0SW5qZWN0S2V5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgZ2V0SW5qZWN0S2V5ID0gKGtleTogc3RyaW5nKSA9PiBJbmplY3RhYmxlc0tleXMuUkVGTEVDVCArIGtleTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXh0cmFjdHMgdGhlIHR5cGUgbmFtZSBmcm9tIGEgZGVjb3JhdGVkIHByb3BlcnR5IHVzaW5nIHJlZmxlY3Rpb24uXG4gKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIHR5cGUgZnJvbSBhIHByb3BlcnR5IGRlY29yYXRvciBieSBhY2Nlc3NpbmcgVHlwZVNjcmlwdCdzIHJlZmxlY3Rpb24gbWV0YWRhdGEuXG4gKiBAcGFyYW0ge2FueX0gbW9kZWwgVGhlIHRhcmdldCBvYmplY3QgY29udGFpbmluZyB0aGUgZGVjb3JhdGVkIHByb3BlcnR5XG4gKiBAcGFyYW0ge3N0cmluZyB8IHN5bWJvbH0gcHJvcEtleSBUaGUgcHJvcGVydHkga2V5IChuYW1lIG9yIHN5bWJvbCkgb2YgdGhlIGRlY29yYXRlZCBwcm9wZXJ0eVxuICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdHlwZSwgb3IgdW5kZWZpbmVkIGlmIGl0J3MgYSBGdW5jdGlvbiB0eXBlXG4gKiBAZnVuY3Rpb24gZ2V0VHlwZUZyb21EZWNvcmF0b3JcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlRnJvbURlY29yYXRvcihcbiAgbW9kZWw6IGFueSxcbiAgcHJvcEtleTogc3RyaW5nIHwgc3ltYm9sXG4pOiBzeW1ib2wgfCB1bmRlZmluZWQge1xuICBjb25zdCB0eXBlRGVmID0gUmVmbGVjdC5nZXRNZXRhZGF0YShUeXBlS2V5LCBtb2RlbCwgcHJvcEtleSk7XG4gIGlmICh0eXBlRGVmLm5hbWUgPT09IFwiRnVuY3Rpb25cIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbWV0YSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXG4gICAgZ2V0SW5qZWN0S2V5KEluamVjdGFibGVzS2V5cy5JTkpFQ1RBQkxFKSxcbiAgICB0eXBlRGVmXG4gICk7XG4gIGlmICghbWV0YSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIG1ldGEuc3ltYm9sO1xufVxuIl19
|
package/lib/index.cjs
CHANGED
|
@@ -35,5 +35,5 @@ __exportStar(require("./utils.cjs"), exports);
|
|
|
35
35
|
* @const VERSION
|
|
36
36
|
* @memberOf module:injectable-decorators
|
|
37
37
|
*/
|
|
38
|
-
exports.VERSION = "1.6.
|
|
38
|
+
exports.VERSION = "1.6.8";
|
|
39
39
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0c7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsa0RBQTRCO0FBQzVCLG1EQUE2QjtBQUM3QixvREFBOEI7QUFDOUIsaURBQTJCO0FBQzNCLDhDQUF3QjtBQUN4Qiw4Q0FBd0I7QUFFeEI7Ozs7O0dBS0c7QUFDVSxRQUFBLE9BQU8sR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBBIGxpZ2h0d2VpZ2h0IGRlcGVuZGVuY3kgaW5qZWN0aW9uIGxpYnJhcnkgZm9yIFR5cGVTY3JpcHQgYXBwbGljYXRpb25zLlxuICogQHN1bW1hcnkgQWRkcyBhIHNpbXBsZSBJbmplY3RhYmxlcyBpbXBsZW1lbnRhdGlvbiB0byBjcmVhdGUgc2luZ2xldG9uIGluc3RhbmNlcyBvZiBhbiBvYmplY3RcbiAqIGFuZCBlYXNpbHkgaW5qZWN0IGl0IGludG8gb3RoZXIgb2JqZWN0cy4gUHJvdmlkZXMgZGVjb3JhdG9ycyBmb3IgbWFya2luZyBjbGFzc2VzIGFzIGluamVjdGFibGVcbiAqIGFuZCBmb3IgaW5qZWN0aW5nIGRlcGVuZGVuY2llcyBpbnRvIGNsYXNzIHByb3BlcnRpZXMuXG4gKlxuICogQG1vZHVsZSBpbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0luamVjdGFibGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZWdpc3RyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgaW5qZWN0YWJsZS1kZWNvcmF0b3JzIGxpYnJhcnkuXG4gKiBAc3VtbWFyeSBEZWZpbmVkIG9uIGxpYnJhcnkgYnVpbGQuIEhvbGRzIHRoZSBsaWJyYXJ5J3MgY3VycmVudCB2ZXJzaW9uIHN0cmluZy5cbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcbiJdfQ==
|
package/lib/index.d.ts
CHANGED
package/lib/registry.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.InjectableRegistryImp = void 0;
|
|
4
4
|
const constants_1 = require("./constants.cjs");
|
|
5
|
-
const
|
|
5
|
+
const utils_1 = require("./utils.cjs");
|
|
6
6
|
/**
|
|
7
7
|
* @description Default implementation of the InjectablesRegistry interface.
|
|
8
8
|
* @summary Holds the various {@link Injectable}s in a cache and provides methods to register, retrieve, and build them.
|
|
@@ -61,7 +61,7 @@ class InjectableRegistryImp {
|
|
|
61
61
|
if (typeof name === "string")
|
|
62
62
|
name = Symbol.for(name);
|
|
63
63
|
if (typeof name !== "symbol") {
|
|
64
|
-
const meta = Reflect.getMetadata((0,
|
|
64
|
+
const meta = Reflect.getMetadata((0, utils_1.getInjectKey)(constants_1.InjectablesKeys.INJECTABLE), name);
|
|
65
65
|
name = meta?.symbol || Symbol.for(name.toString());
|
|
66
66
|
}
|
|
67
67
|
if (!name)
|
|
@@ -85,7 +85,7 @@ class InjectableRegistryImp {
|
|
|
85
85
|
const name = category || Symbol.for(obj.toString());
|
|
86
86
|
if (!this.cache[name] || force)
|
|
87
87
|
this.cache[name] = {
|
|
88
|
-
instance: constructor ? obj : undefined,
|
|
88
|
+
instance: options.singleton && constructor ? obj : undefined,
|
|
89
89
|
constructor: !constructor ? obj : obj.constructor,
|
|
90
90
|
options: options,
|
|
91
91
|
};
|
|
@@ -102,11 +102,13 @@ class InjectableRegistryImp {
|
|
|
102
102
|
catch (e) {
|
|
103
103
|
throw new Error(`failed to build ${name.toString()} with args ${args}: ${e}`);
|
|
104
104
|
}
|
|
105
|
-
|
|
105
|
+
if (options.singleton) {
|
|
106
|
+
this.cache[name].instance = instance;
|
|
107
|
+
}
|
|
106
108
|
if (options.callback)
|
|
107
109
|
instance = options.callback(instance, ...args);
|
|
108
110
|
return instance;
|
|
109
111
|
}
|
|
110
112
|
}
|
|
111
113
|
exports.InjectableRegistryImp = InjectableRegistryImp;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0NBQThDO0FBQzlDLGlEQUE0QztBQThENUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNHO0FBQ0gsTUFBYSxxQkFBcUI7SUFBbEM7UUFDVSxVQUFLLEdBQWtDLEVBQUUsQ0FBQztJQTJFcEQsQ0FBQztJQXpFQyxHQUFHLENBQUksSUFBMEM7UUFDL0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQ0QsSUFBbUQsRUFDbkQsR0FBRyxJQUFXO1FBRWQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUM5QixJQUFBLHlCQUFZLEVBQUMsMkJBQWUsQ0FBQyxVQUFVLENBQUMsRUFDeEMsSUFBSSxDQUNMLENBQUM7WUFDRixJQUFJLEdBQUksSUFBSSxFQUFFLE1BQWlCLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsQ0FBRSxJQUFlLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRDs7T0FFRztJQUNILFFBQVEsQ0FDTixHQUFrQixFQUNsQixRQUE0QixFQUM1QixPQUE2QixFQUM3QixRQUFpQixLQUFLO1FBRXRCLE1BQU0sT0FBTyxHQUF3QixHQUEwQixDQUFDO1FBRWhFLE1BQU0sV0FBVyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3pELElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxJQUFJLENBQUMsV0FBVztZQUMvQyxNQUFNLElBQUksS0FBSyxDQUNiLGtFQUFrRSxDQUNuRSxDQUFDO1FBRUosTUFBTSxJQUFJLEdBQUcsUUFBUSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUUsR0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSztZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUNqQixRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3ZDLFdBQVcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxHQUFXLENBQUMsV0FBVztnQkFDMUQsT0FBTyxFQUFFLE9BQU87YUFDakIsQ0FBQztJQUNOLENBQUM7SUFDRDs7T0FFRztJQUNILEtBQUssQ0FBSSxJQUFZLEVBQUUsR0FBRyxJQUFXO1FBQ25DLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxJQUFJLFFBQVcsQ0FBQztRQUNoQixJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsSUFBSSxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLG1CQUFtQixJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUM3RCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNyQyxJQUFJLE9BQU8sQ0FBQyxRQUFRO1lBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDckUsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBNUVELHNEQTRFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGVEZWYsIEluamVjdGFibGVPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEluamVjdGFibGVzS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0SW5qZWN0S2V5IH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIHJlcHJlc2VudGluZyBlaXRoZXIgYSBjbGFzcyBjb25zdHJ1Y3RvciBvciBhbiBpbnN0YW5jZS5cbiAqIEBzdW1tYXJ5IERlZmluZXMgYW4gSW5qZWN0YWJsZSB0eXBlIHRoYXQgY2FuIGJlIGVpdGhlciBhIGNsYXNzIGNvbnN0cnVjdG9yIG9yIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MuXG4gKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgaW5qZWN0YWJsZSBvYmplY3RcbiAqIEB0eXBlZGVmIHtmdW5jdGlvbihhbnkpOiBUIHwgVH0gSW5qZWN0YWJsZVxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgSW5qZWN0YWJsZTxUPiA9IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFQgfSB8IFQ7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnRyYWN0IGZvciBhIHJlZ2lzdHJ5IHRoYXQgbWFuYWdlcyBpbmplY3RhYmxlIG9iamVjdHMuXG4gKiBAc3VtbWFyeSBJbnRlcmZhY2UgZm9yIGFuIGluamVjdGFibGUgcmVnaXN0cnkgdGhhdCBwcm92aWRlcyBtZXRob2RzIGZvciByZXRyaWV2aW5nLCByZWdpc3RlcmluZywgYW5kIGJ1aWxkaW5nIGluamVjdGFibGUgb2JqZWN0cy5cbiAqIEB0ZW1wbGF0ZSBUIFR5cGUgcGFyYW1ldGVyIHVzZWQgaW4gdGhlIGludGVyZmFjZSBtZXRob2RzXG4gKiBAaW50ZXJmYWNlIEluamVjdGFibGVzUmVnaXN0cnlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5qZWN0YWJsZXNSZWdpc3RyeSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmV0Y2hlcyBhbiBpbmplY3RhYmxlIGluc3RhbmNlIGJ5IGl0cyByZWdpc3RlcmVkIG5hbWUuXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBhbiB7QGxpbmsgSW5qZWN0YWJsZX0gZnJvbSB0aGUgcmVnaXN0cnkgYnkgbmFtZSwgb3B0aW9uYWxseSBwYXNzaW5nIGNvbnN0cnVjdG9yIGFyZ3VtZW50cy5cbiAgICogQHRlbXBsYXRlIFQgVHlwZSBvZiB0aGUgaW5qZWN0YWJsZSBvYmplY3QgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtIHtzeW1ib2x9IG5hbWUgVGhlIHJlZ2lzdGVyZWQgbmFtZSBvZiB0aGUgaW5qZWN0YWJsZSB0byByZXRyaWV2ZVxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzIENvbnN0cnVjdG9yIGFyZ3VtZW50cyB0byBwYXNzIHdoZW4gaW5zdGFudGlhdGluZyB0aGUgaW5qZWN0YWJsZVxuICAgKiBAcmV0dXJuIHtJbmplY3RhYmxlPFQ+IHwgdW5kZWZpbmVkfSBUaGUgaW5qZWN0YWJsZSBpbnN0YW5jZSBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gICAqL1xuICBnZXQ8VD4oXG4gICAgbmFtZTogc3ltYm9sIHwgc3RyaW5nIHwgeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVCB9LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBZGRzIGEgY2xhc3Mgb3Igb2JqZWN0IHRvIHRoZSBpbmplY3RhYmxlIHJlZ2lzdHJ5LlxuICAgKiBAc3VtbWFyeSBSZWdpc3RlcnMgYW4gaW5qZWN0YWJsZSBjb25zdHJ1Y3RvciBvciBpbnN0YW5jZSB3aXRoIHRoZSByZWdpc3RyeSwgbWFraW5nIGl0IGF2YWlsYWJsZSBmb3IgaW5qZWN0aW9uLlxuICAgKiBAdGVtcGxhdGUgVCBUeXBlIG9mIHRoZSBpbmplY3RhYmxlIG9iamVjdCB0byByZWdpc3RlclxuICAgKiBAcGFyYW0ge0luamVjdGFibGU8VD59IGNvbnN0cnVjdG9yIFRoZSBjbGFzcyBjb25zdHJ1Y3RvciBvciBvYmplY3QgaW5zdGFuY2UgdG8gcmVnaXN0ZXJcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHBhcmFtIHthbnlbXX0gYXJncyBBZGRpdGlvbmFsIGFyZ3VtZW50cyBmb3IgcmVnaXN0cmF0aW9uIChjYXRlZ29yeSwgc2luZ2xldG9uIGZsYWcsIGV0Yy4pXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gICAqL1xuICByZWdpc3RlcjxUPihcbiAgICBjb25zdHJ1Y3RvcjogSW5qZWN0YWJsZTxUPixcbiAgICBjYXRlZ29yeTogc3ltYm9sIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM6IEluamVjdGFibGVPcHRpb25zPFQ+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIGFuIGluamVjdGFibGUgY2xhc3MuXG4gICAqIEBzdW1tYXJ5IEluc3RhbnRpYXRlcyBhbiBpbmplY3RhYmxlIGNsYXNzIHVzaW5nIGl0cyBjb25zdHJ1Y3RvciBhbmQgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICogQHRlbXBsYXRlIFQgVHlwZSBvZiB0aGUgb2JqZWN0IHRvIGJ1aWxkXG4gICAqIEBwYXJhbSB7c3ltYm9sfSBuYW1lIE9iamVjdCBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBpbmplY3RhYmxlIHRvIGJ1aWxkXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3MgQ29uc3RydWN0b3IgYXJndW1lbnRzIHRvIHBhc3Mgd2hlbiBpbnN0YW50aWF0aW5nIHRoZSBpbmplY3RhYmxlXG4gICAqIEByZXR1cm4ge1R9IFRoZSBuZXdseSBjcmVhdGVkIGluc3RhbmNlXG4gICAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gICAqL1xuICBidWlsZDxUPihuYW1lOiBzeW1ib2wsIC4uLmFyZ3M6IGFueVtdKTogVDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgSW5qZWN0YWJsZXNSZWdpc3RyeSBpbnRlcmZhY2UuXG4gKiBAc3VtbWFyeSBIb2xkcyB0aGUgdmFyaW91cyB7QGxpbmsgSW5qZWN0YWJsZX1zIGluIGEgY2FjaGUgYW5kIHByb3ZpZGVzIG1ldGhvZHMgdG8gcmVnaXN0ZXIsIHJldHJpZXZlLCBhbmQgYnVpbGQgdGhlbS5cbiAqIEB0ZW1wbGF0ZSBUIFR5cGUgcGFyYW1ldGVyIHVzZWQgaW4gdGhlIGNsYXNzIG1ldGhvZHNcbiAqXG4gKiBAY2xhc3MgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wXG4gKiBAaW1wbGVtZW50cyBJbmplY3RhYmxlc1JlZ2lzdHJ5XG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3JlYXRlIGEgbmV3IHJlZ2lzdHJ5XG4gKiBjb25zdCByZWdpc3RyeSA9IG5ldyBJbmplY3RhYmxlUmVnaXN0cnlJbXAoKTtcbiAqXG4gKiAvLyBSZWdpc3RlciBhIGNsYXNzXG4gKiBjbGFzcyBNeVNlcnZpY2Uge1xuICogICBkb1NvbWV0aGluZygpIHtcbiAqICAgICByZXR1cm4gJ0hlbGxvIFdvcmxkJztcbiAqICAgfVxuICogfVxuICogcmVnaXN0cnkucmVnaXN0ZXIoTXlTZXJ2aWNlLCAnTXlTZXJ2aWNlJywgdHJ1ZSk7XG4gKlxuICogLy8gR2V0IHRoZSBpbnN0YW5jZVxuICogY29uc3Qgc2VydmljZSA9IHJlZ2lzdHJ5LmdldCgnTXlTZXJ2aWNlJyk7XG4gKiBzZXJ2aWNlLmRvU29tZXRoaW5nKCk7IC8vICdIZWxsbyBXb3JsZCdcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBSZWdpc3RyeVxuICpcbiAqICAgQ2xpZW50LT4+UmVnaXN0cnk6IHJlZ2lzdGVyKE15U2VydmljZSlcbiAqICAgUmVnaXN0cnktPj5SZWdpc3RyeTogU3RvcmUgaW4gY2FjaGVcbiAqXG4gKiAgIENsaWVudC0+PlJlZ2lzdHJ5OiBnZXQoXCJNeVNlcnZpY2VcIilcbiAqICAgYWx0IEluc3RhbmNlIGV4aXN0cyBhbmQgaXMgc2luZ2xldG9uXG4gKiAgICAgUmVnaXN0cnktLT4+Q2xpZW50OiBSZXR1cm4gY2FjaGVkIGluc3RhbmNlXG4gKiAgIGVsc2UgTm8gaW5zdGFuY2Ugb3Igbm90IHNpbmdsZXRvblxuICogICAgIFJlZ2lzdHJ5LT4+UmVnaXN0cnk6IGJ1aWxkKG5hbWUpXG4gKiAgICAgUmVnaXN0cnktLT4+Q2xpZW50OiBSZXR1cm4gbmV3IGluc3RhbmNlXG4gKiAgIGVuZFxuICovXG5leHBvcnQgY2xhc3MgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wIGltcGxlbWVudHMgSW5qZWN0YWJsZXNSZWdpc3RyeSB7XG4gIHByaXZhdGUgY2FjaGU6IFJlY29yZDxzeW1ib2wsIEluamVjdGFibGVEZWY+ID0ge307XG5cbiAgaGFzPFQ+KG5hbWU6IHN5bWJvbCB8IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFQgfSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzeW1ib2xcIikgcmV0dXJuIG5hbWUgaW4gdGhpcy5jYWNoZTtcbiAgICByZXR1cm4gU3ltYm9sLmZvcihuYW1lLnRvU3RyaW5nKCkpIGluIHRoaXMuY2FjaGU7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGdldDxUPihcbiAgICBuYW1lOiBzeW1ib2wgfCBzdHJpbmcgfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiBuYW1lID09PSBcInN0cmluZ1wiKSBuYW1lID0gU3ltYm9sLmZvcihuYW1lKTtcbiAgICBpZiAodHlwZW9mIG5hbWUgIT09IFwic3ltYm9sXCIpIHtcbiAgICAgIGNvbnN0IG1ldGEgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgICBnZXRJbmplY3RLZXkoSW5qZWN0YWJsZXNLZXlzLklOSkVDVEFCTEUpLFxuICAgICAgICBuYW1lXG4gICAgICApO1xuICAgICAgbmFtZSA9IChtZXRhPy5zeW1ib2wgYXMgc3ltYm9sKSB8fCBTeW1ib2wuZm9yKG5hbWUudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGlmICghbmFtZSkgdGhyb3cgbmV3IEVycm9yKGBJbmplY3RhYmxlICR7bmFtZX0gbm90IGZvdW5kYCk7XG5cbiAgICBpZiAoISgobmFtZSBhcyBzeW1ib2wpIGluIHRoaXMuY2FjaGUpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjYWNoZSA9IHRoaXMuY2FjaGVbbmFtZV07XG4gICAgaWYgKCFjYWNoZS5vcHRpb25zLnNpbmdsZXRvbiAmJiAhY2FjaGUuaW5zdGFuY2UpXG4gICAgICByZXR1cm4gdGhpcy5idWlsZDxUPihuYW1lLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gY2FjaGUuaW5zdGFuY2UgfHwgdGhpcy5idWlsZDxUPihuYW1lLCAuLi5hcmdzKTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIHJlZ2lzdGVyPFQ+KFxuICAgIG9iajogSW5qZWN0YWJsZTxUPixcbiAgICBjYXRlZ29yeTogc3ltYm9sIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbnM6IEluamVjdGFibGVPcHRpb25zPFQ+LFxuICAgIGZvcmNlOiBib29sZWFuID0gZmFsc2VcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2FzdE9iajogUmVjb3JkPHN0cmluZywgYW55PiA9IG9iaiBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gICAgY29uc3QgY29uc3RydWN0b3IgPSAhY2FzdE9iai5uYW1lICYmIGNhc3RPYmouY29uc3RydWN0b3I7XG4gICAgaWYgKHR5cGVvZiBjYXN0T2JqICE9PSBcImZ1bmN0aW9uXCIgJiYgIWNvbnN0cnVjdG9yKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW5qZWN0YWJsZSByZWdpc3RlcmluZyBmYWlsZWQuIE1pc3NpbmcgQ2xhc3MgbmFtZSBvciBjb25zdHJ1Y3RvcmBcbiAgICAgICk7XG5cbiAgICBjb25zdCBuYW1lID0gY2F0ZWdvcnkgfHwgU3ltYm9sLmZvcigob2JqIGFzIGFueSkudG9TdHJpbmcoKSk7XG5cbiAgICBpZiAoIXRoaXMuY2FjaGVbbmFtZV0gfHwgZm9yY2UpXG4gICAgICB0aGlzLmNhY2hlW25hbWVdID0ge1xuICAgICAgICBpbnN0YW5jZTogY29uc3RydWN0b3IgPyBvYmogOiB1bmRlZmluZWQsXG4gICAgICAgIGNvbnN0cnVjdG9yOiAhY29uc3RydWN0b3IgPyBvYmogOiAob2JqIGFzIGFueSkuY29uc3RydWN0b3IsXG4gICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgYnVpbGQ8VD4obmFtZTogc3ltYm9sLCAuLi5hcmdzOiBhbnlbXSk6IFQge1xuICAgIGNvbnN0IHsgY29uc3RydWN0b3IsIG9wdGlvbnMgfSA9IHRoaXMuY2FjaGVbbmFtZV07XG4gICAgbGV0IGluc3RhbmNlOiBUO1xuICAgIHRyeSB7XG4gICAgICBpbnN0YW5jZSA9IG5ldyBjb25zdHJ1Y3RvciguLi5hcmdzKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBmYWlsZWQgdG8gYnVpbGQgJHtuYW1lLnRvU3RyaW5nKCl9IHdpdGggYXJncyAke2FyZ3N9OiAke2V9YFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5jYWNoZVtuYW1lXS5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgIGlmIChvcHRpb25zLmNhbGxiYWNrKSBpbnN0YW5jZSA9IG9wdGlvbnMuY2FsbGJhY2soaW5zdGFuY2UsIC4uLmFyZ3MpO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxufVxuIl19
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0NBQThDO0FBQzlDLHVDQUF1QztBQThEdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNHO0FBQ0gsTUFBYSxxQkFBcUI7SUFBbEM7UUFDVSxVQUFLLEdBQWtDLEVBQUUsQ0FBQztJQTZFcEQsQ0FBQztJQTNFQyxHQUFHLENBQUksSUFBMEM7UUFDL0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQ0QsSUFBbUQsRUFDbkQsR0FBRyxJQUFXO1FBRWQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1lBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUM5QixJQUFBLG9CQUFZLEVBQUMsMkJBQWUsQ0FBQyxVQUFVLENBQUMsRUFDeEMsSUFBSSxDQUNMLENBQUM7WUFDRixJQUFJLEdBQUksSUFBSSxFQUFFLE1BQWlCLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsSUFBSSxZQUFZLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsQ0FBRSxJQUFlLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRDs7T0FFRztJQUNILFFBQVEsQ0FDTixHQUFrQixFQUNsQixRQUE0QixFQUM1QixPQUE2QixFQUM3QixRQUFpQixLQUFLO1FBRXRCLE1BQU0sT0FBTyxHQUF3QixHQUEwQixDQUFDO1FBRWhFLE1BQU0sV0FBVyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3pELElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxJQUFJLENBQUMsV0FBVztZQUMvQyxNQUFNLElBQUksS0FBSyxDQUNiLGtFQUFrRSxDQUNuRSxDQUFDO1FBRUosTUFBTSxJQUFJLEdBQUcsUUFBUSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUUsR0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSztZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUNqQixRQUFRLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDNUQsV0FBVyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFFLEdBQVcsQ0FBQyxXQUFXO2dCQUMxRCxPQUFPLEVBQUUsT0FBTzthQUNqQixDQUFDO0lBQ04sQ0FBQztJQUNEOztPQUVHO0lBQ0gsS0FBSyxDQUFJLElBQVksRUFBRSxHQUFHLElBQVc7UUFDbkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELElBQUksUUFBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQztZQUNILFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUJBQW1CLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQzdELENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRO1lBQUUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDckUsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBOUVELHNEQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGVEZWYsIEluamVjdGFibGVPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IEluamVjdGFibGVzS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0SW5qZWN0S2V5IH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHlwZSByZXByZXNlbnRpbmcgZWl0aGVyIGEgY2xhc3MgY29uc3RydWN0b3Igb3IgYW4gaW5zdGFuY2UuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGFuIEluamVjdGFibGUgdHlwZSB0aGF0IGNhbiBiZSBlaXRoZXIgYSBjbGFzcyBjb25zdHJ1Y3RvciBvciBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzLlxuICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgdGhlIGluamVjdGFibGUgb2JqZWN0XG4gKiBAdHlwZWRlZiB7ZnVuY3Rpb24oYW55KTogVCB8IFR9IEluamVjdGFibGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIEluamVjdGFibGU8VD4gPSB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0gfCBUO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb250cmFjdCBmb3IgYSByZWdpc3RyeSB0aGF0IG1hbmFnZXMgaW5qZWN0YWJsZSBvYmplY3RzLlxuICogQHN1bW1hcnkgSW50ZXJmYWNlIGZvciBhbiBpbmplY3RhYmxlIHJlZ2lzdHJ5IHRoYXQgcHJvdmlkZXMgbWV0aG9kcyBmb3IgcmV0cmlldmluZywgcmVnaXN0ZXJpbmcsIGFuZCBidWlsZGluZyBpbmplY3RhYmxlIG9iamVjdHMuXG4gKiBAdGVtcGxhdGUgVCBUeXBlIHBhcmFtZXRlciB1c2VkIGluIHRoZSBpbnRlcmZhY2UgbWV0aG9kc1xuICogQGludGVyZmFjZSBJbmplY3RhYmxlc1JlZ2lzdHJ5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGFibGVzUmVnaXN0cnkge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYW4gaW5qZWN0YWJsZSBpbnN0YW5jZSBieSBpdHMgcmVnaXN0ZXJlZCBuYW1lLlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYW4ge0BsaW5rIEluamVjdGFibGV9IGZyb20gdGhlIHJlZ2lzdHJ5IGJ5IG5hbWUsIG9wdGlvbmFsbHkgcGFzc2luZyBjb25zdHJ1Y3RvciBhcmd1bWVudHMuXG4gICAqIEB0ZW1wbGF0ZSBUIFR5cGUgb2YgdGhlIGluamVjdGFibGUgb2JqZWN0IHRvIHJldHJpZXZlXG4gICAqIEBwYXJhbSB7c3ltYm9sfSBuYW1lIFRoZSByZWdpc3RlcmVkIG5hbWUgb2YgdGhlIGluamVjdGFibGUgdG8gcmV0cmlldmVcbiAgICogQHBhcmFtIHthbnlbXX0gYXJncyBDb25zdHJ1Y3RvciBhcmd1bWVudHMgdG8gcGFzcyB3aGVuIGluc3RhbnRpYXRpbmcgdGhlIGluamVjdGFibGVcbiAgICogQHJldHVybiB7SW5qZWN0YWJsZTxUPiB8IHVuZGVmaW5lZH0gVGhlIGluamVjdGFibGUgaW5zdGFuY2Ugb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICAgKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICAgKi9cbiAgZ2V0PFQ+KFxuICAgIG5hbWU6IHN5bWJvbCB8IHN0cmluZyB8IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IFQgfSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBUIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQWRkcyBhIGNsYXNzIG9yIG9iamVjdCB0byB0aGUgaW5qZWN0YWJsZSByZWdpc3RyeS5cbiAgICogQHN1bW1hcnkgUmVnaXN0ZXJzIGFuIGluamVjdGFibGUgY29uc3RydWN0b3Igb3IgaW5zdGFuY2Ugd2l0aCB0aGUgcmVnaXN0cnksIG1ha2luZyBpdCBhdmFpbGFibGUgZm9yIGluamVjdGlvbi5cbiAgICogQHRlbXBsYXRlIFQgVHlwZSBvZiB0aGUgaW5qZWN0YWJsZSBvYmplY3QgdG8gcmVnaXN0ZXJcbiAgICogQHBhcmFtIHtJbmplY3RhYmxlPFQ+fSBjb25zdHJ1Y3RvciBUaGUgY2xhc3MgY29uc3RydWN0b3Igb3Igb2JqZWN0IGluc3RhbmNlIHRvIHJlZ2lzdGVyXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3MgQWRkaXRpb25hbCBhcmd1bWVudHMgZm9yIHJlZ2lzdHJhdGlvbiAoY2F0ZWdvcnksIHNpbmdsZXRvbiBmbGFnLCBldGMuKVxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICAgKi9cbiAgcmVnaXN0ZXI8VD4oXG4gICAgY29uc3RydWN0b3I6IEluamVjdGFibGU8VD4sXG4gICAgY2F0ZWdvcnk6IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBJbmplY3RhYmxlT3B0aW9uczxUPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBhbiBpbmplY3RhYmxlIGNsYXNzLlxuICAgKiBAc3VtbWFyeSBJbnN0YW50aWF0ZXMgYW4gaW5qZWN0YWJsZSBjbGFzcyB1c2luZyBpdHMgY29uc3RydWN0b3IgYW5kIHRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gICAqIEB0ZW1wbGF0ZSBUIFR5cGUgb2YgdGhlIG9iamVjdCB0byBidWlsZFxuICAgKiBAcGFyYW0ge3N5bWJvbH0gbmFtZSBPYmplY3QgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgaW5qZWN0YWJsZSB0byBidWlsZFxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzIENvbnN0cnVjdG9yIGFyZ3VtZW50cyB0byBwYXNzIHdoZW4gaW5zdGFudGlhdGluZyB0aGUgaW5qZWN0YWJsZVxuICAgKiBAcmV0dXJuIHtUfSBUaGUgbmV3bHkgY3JlYXRlZCBpbnN0YW5jZVxuICAgKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICAgKi9cbiAgYnVpbGQ8VD4obmFtZTogc3ltYm9sLCAuLi5hcmdzOiBhbnlbXSk6IFQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgdGhlIEluamVjdGFibGVzUmVnaXN0cnkgaW50ZXJmYWNlLlxuICogQHN1bW1hcnkgSG9sZHMgdGhlIHZhcmlvdXMge0BsaW5rIEluamVjdGFibGV9cyBpbiBhIGNhY2hlIGFuZCBwcm92aWRlcyBtZXRob2RzIHRvIHJlZ2lzdGVyLCByZXRyaWV2ZSwgYW5kIGJ1aWxkIHRoZW0uXG4gKiBAdGVtcGxhdGUgVCBUeXBlIHBhcmFtZXRlciB1c2VkIGluIHRoZSBjbGFzcyBtZXRob2RzXG4gKlxuICogQGNsYXNzIEluamVjdGFibGVSZWdpc3RyeUltcFxuICogQGltcGxlbWVudHMgSW5qZWN0YWJsZXNSZWdpc3RyeVxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENyZWF0ZSBhIG5ldyByZWdpc3RyeVxuICogY29uc3QgcmVnaXN0cnkgPSBuZXcgSW5qZWN0YWJsZVJlZ2lzdHJ5SW1wKCk7XG4gKlxuICogLy8gUmVnaXN0ZXIgYSBjbGFzc1xuICogY2xhc3MgTXlTZXJ2aWNlIHtcbiAqICAgZG9Tb21ldGhpbmcoKSB7XG4gKiAgICAgcmV0dXJuICdIZWxsbyBXb3JsZCc7XG4gKiAgIH1cbiAqIH1cbiAqIHJlZ2lzdHJ5LnJlZ2lzdGVyKE15U2VydmljZSwgJ015U2VydmljZScsIHRydWUpO1xuICpcbiAqIC8vIEdldCB0aGUgaW5zdGFuY2VcbiAqIGNvbnN0IHNlcnZpY2UgPSByZWdpc3RyeS5nZXQoJ015U2VydmljZScpO1xuICogc2VydmljZS5kb1NvbWV0aGluZygpOyAvLyAnSGVsbG8gV29ybGQnXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgUmVnaXN0cnlcbiAqXG4gKiAgIENsaWVudC0+PlJlZ2lzdHJ5OiByZWdpc3RlcihNeVNlcnZpY2UpXG4gKiAgIFJlZ2lzdHJ5LT4+UmVnaXN0cnk6IFN0b3JlIGluIGNhY2hlXG4gKlxuICogICBDbGllbnQtPj5SZWdpc3RyeTogZ2V0KFwiTXlTZXJ2aWNlXCIpXG4gKiAgIGFsdCBJbnN0YW5jZSBleGlzdHMgYW5kIGlzIHNpbmdsZXRvblxuICogICAgIFJlZ2lzdHJ5LS0+PkNsaWVudDogUmV0dXJuIGNhY2hlZCBpbnN0YW5jZVxuICogICBlbHNlIE5vIGluc3RhbmNlIG9yIG5vdCBzaW5nbGV0b25cbiAqICAgICBSZWdpc3RyeS0+PlJlZ2lzdHJ5OiBidWlsZChuYW1lKVxuICogICAgIFJlZ2lzdHJ5LS0+PkNsaWVudDogUmV0dXJuIG5ldyBpbnN0YW5jZVxuICogICBlbmRcbiAqL1xuZXhwb3J0IGNsYXNzIEluamVjdGFibGVSZWdpc3RyeUltcCBpbXBsZW1lbnRzIEluamVjdGFibGVzUmVnaXN0cnkge1xuICBwcml2YXRlIGNhY2hlOiBSZWNvcmQ8c3ltYm9sLCBJbmplY3RhYmxlRGVmPiA9IHt9O1xuXG4gIGhhczxUPihuYW1lOiBzeW1ib2wgfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIG5hbWUgPT09IFwic3ltYm9sXCIpIHJldHVybiBuYW1lIGluIHRoaXMuY2FjaGU7XG4gICAgcmV0dXJuIFN5bWJvbC5mb3IobmFtZS50b1N0cmluZygpKSBpbiB0aGlzLmNhY2hlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBnZXQ8VD4oXG4gICAgbmFtZTogc3ltYm9sIHwgc3RyaW5nIHwgeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogVCB9LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gXCJzdHJpbmdcIikgbmFtZSA9IFN5bWJvbC5mb3IobmFtZSk7XG4gICAgaWYgKHR5cGVvZiBuYW1lICE9PSBcInN5bWJvbFwiKSB7XG4gICAgICBjb25zdCBtZXRhID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgICAgZ2V0SW5qZWN0S2V5KEluamVjdGFibGVzS2V5cy5JTkpFQ1RBQkxFKSxcbiAgICAgICAgbmFtZVxuICAgICAgKTtcbiAgICAgIG5hbWUgPSAobWV0YT8uc3ltYm9sIGFzIHN5bWJvbCkgfHwgU3ltYm9sLmZvcihuYW1lLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICBpZiAoIW5hbWUpIHRocm93IG5ldyBFcnJvcihgSW5qZWN0YWJsZSAke25hbWV9IG5vdCBmb3VuZGApO1xuXG4gICAgaWYgKCEoKG5hbWUgYXMgc3ltYm9sKSBpbiB0aGlzLmNhY2hlKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgY2FjaGUgPSB0aGlzLmNhY2hlW25hbWVdO1xuICAgIGlmICghY2FjaGUub3B0aW9ucy5zaW5nbGV0b24gJiYgIWNhY2hlLmluc3RhbmNlKVxuICAgICAgcmV0dXJuIHRoaXMuYnVpbGQ8VD4obmFtZSwgLi4uYXJncyk7XG4gICAgcmV0dXJuIGNhY2hlLmluc3RhbmNlIHx8IHRoaXMuYnVpbGQ8VD4obmFtZSwgLi4uYXJncyk7XG4gIH1cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICByZWdpc3RlcjxUPihcbiAgICBvYmo6IEluamVjdGFibGU8VD4sXG4gICAgY2F0ZWdvcnk6IHN5bWJvbCB8IHVuZGVmaW5lZCxcbiAgICBvcHRpb25zOiBJbmplY3RhYmxlT3B0aW9uczxUPixcbiAgICBmb3JjZTogYm9vbGVhbiA9IGZhbHNlXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGNhc3RPYmo6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBvYmogYXMgUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gIWNhc3RPYmoubmFtZSAmJiBjYXN0T2JqLmNvbnN0cnVjdG9yO1xuICAgIGlmICh0eXBlb2YgY2FzdE9iaiAhPT0gXCJmdW5jdGlvblwiICYmICFjb25zdHJ1Y3RvcilcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEluamVjdGFibGUgcmVnaXN0ZXJpbmcgZmFpbGVkLiBNaXNzaW5nIENsYXNzIG5hbWUgb3IgY29uc3RydWN0b3JgXG4gICAgICApO1xuXG4gICAgY29uc3QgbmFtZSA9IGNhdGVnb3J5IHx8IFN5bWJvbC5mb3IoKG9iaiBhcyBhbnkpLnRvU3RyaW5nKCkpO1xuXG4gICAgaWYgKCF0aGlzLmNhY2hlW25hbWVdIHx8IGZvcmNlKVxuICAgICAgdGhpcy5jYWNoZVtuYW1lXSA9IHtcbiAgICAgICAgaW5zdGFuY2U6IG9wdGlvbnMuc2luZ2xldG9uICYmIGNvbnN0cnVjdG9yID8gb2JqIDogdW5kZWZpbmVkLFxuICAgICAgICBjb25zdHJ1Y3RvcjogIWNvbnN0cnVjdG9yID8gb2JqIDogKG9iaiBhcyBhbnkpLmNvbnN0cnVjdG9yLFxuICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgfTtcbiAgfVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIGJ1aWxkPFQ+KG5hbWU6IHN5bWJvbCwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICBjb25zdCB7IGNvbnN0cnVjdG9yLCBvcHRpb25zIH0gPSB0aGlzLmNhY2hlW25hbWVdO1xuICAgIGxldCBpbnN0YW5jZTogVDtcbiAgICB0cnkge1xuICAgICAgaW5zdGFuY2UgPSBuZXcgY29uc3RydWN0b3IoLi4uYXJncyk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgZmFpbGVkIHRvIGJ1aWxkICR7bmFtZS50b1N0cmluZygpfSB3aXRoIGFyZ3MgJHthcmdzfTogJHtlfWBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xuICAgICAgdGhpcy5jYWNoZVtuYW1lXS5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5jYWxsYmFjaykgaW5zdGFuY2UgPSBvcHRpb25zLmNhbGxiYWNrKGluc3RhbmNlLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cbn1cbiJdfQ==
|
package/lib/types.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDYWxsYmFjayBmdW5jdGlvbiB0eXBlIHVzZWQgdG8gdHJhbnNmb3JtIG9yIGluaXRpYWxpemUgYW4gaW5zdGFuY2UgYWZ0ZXIgY29uc3RydWN0aW9uLlxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIHBvc3QtY29uc3RydWN0aW9uIGhvb2sgdGhhdCBjYW4gbW9kaWZ5IG9yIHJlcGxhY2UgdGhlIGNyZWF0ZWQgaW5zdGFuY2UgYmVmb3JlIGl0IGlzIHJldHVybmVkIHRvIHRoZSBjYWxsZXIuXG4gKiBAdGVtcGxhdGUgVCBUaGUgaW5zdGFuY2UgdHlwZSBiZWluZyBwcm9kdWNlZCBhbmQgcG9zc2libHkgdHJhbnNmb3JtZWQuXG4gKiBAcGFyYW0ge1R9IGluc3RhbmNlIFRoZSBuZXdseSBjb25zdHJ1Y3RlZCBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7Li4uYW55fSBhcmdzIEFkZGl0aW9uYWwgYXJndW1lbnRzIGZvcndhcmRlZCBmcm9tIHRoZSBjb25zdHJ1Y3Rpb24gY29udGV4dC5cbiAqIEByZXR1cm4ge1R9IFRoZSBpbnN0YW5jZSB0byBiZSBzdG9yZWQvcmV0dXJuZWQsIHdoaWNoIG1heSBiZSB0aGUgb3JpZ2luYWwgb3IgYSB0cmFuc2Zvcm1lZCBpbnN0YW5jZS5cbiAqIEB0eXBlZGVmIEluc3RhbmNlQ2FsbGJhY2tcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbmNlQ2FsbGJhY2s8VD4gPSAoaW5zdGFuY2U6IFQsIC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb25zIGNvbnRyb2xsaW5nIGhvdyBhbiBpbmplY3RhYmxlIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSByZWdpc3RyeS5cbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBsaWZlY3ljbGUgYW5kIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gZm9yIGluamVjdGFibGVzLCBzdWNoIGFzIHdoZXRoZXIgdGhleSBhcmUgc2luZ2xldG9ucyBhbmQgd2hldGhlciBhIHBvc3QtYnVpbGQgY2FsbGJhY2sgc2hvdWxkIHJ1bi5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSBpbnN0YW5jZSB0eXBlIGdvdmVybmVkIGJ5IHRoZXNlIG9wdGlvbnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHNpbmdsZXRvbiBJbmRpY2F0ZXMgaWYgdGhlIGluamVjdGFibGUgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGV0b24gKHNpbmdsZSBzaGFyZWQgaW5zdGFuY2UpLlxuICogQHByb3BlcnR5IHtJbnN0YW5jZUNhbGxiYWNrPFQ+fSBjYWxsYmFjayBPcHRpb25hbCBjYWxsYmFjayBpbnZva2VkIGFmdGVyIGJ1aWxkaW5nIGFuIGluc3RhbmNlIHRvIHBlcmZvcm0gYWRkaXRpb25hbCBzZXR1cCBvciB0cmFuc2Zvcm1hdGlvbi5cbiAqIEB0eXBlZGVmIEluamVjdGFibGVPcHRpb25zXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBJbmplY3RhYmxlT3B0aW9uczxUPiA9IHtcbiAgc2luZ2xldG9uOiBib29sZWFuO1xuICBjYWxsYmFjazogSW5zdGFuY2VDYWxsYmFjazxUPjtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVybmFsIHJlZ2lzdHJ5IGRlZmluaXRpb24gZm9yIGEgc3RvcmVkIGluamVjdGFibGUgZW50cnkuXG4gKiBAc3VtbWFyeSBEZXNjcmliZXMgaG93IHRoZSByZWdpc3RyeSBjYWNoZXMgaW5qZWN0YWJsZSBtZXRhZGF0YSwgY29uc3RydWN0b3IsIGFuZCAob3B0aW9uYWxseSkgYSBidWlsdCBpbnN0YW5jZS5cbiAqIEB0ZW1wbGF0ZSBUIFRoZSByZXNvbHZlZCBpbnN0YW5jZSB0eXBlLlxuICogQHRlbXBsYXRlIE9QVFMgVGhlIG9wdGlvbnMgc2hhcGUgdXNlZCBmb3IgdGhpcyBpbmplY3RhYmxlLCBleHRlbmRpbmcge0BsaW5rIEluamVjdGFibGVPcHRpb25zfS5cbiAqIEBwcm9wZXJ0eSB7T1BUU30gb3B0aW9ucyBUaGUgbGlmZWN5Y2xlL29wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5qZWN0YWJsZSBlbnRyeS5cbiAqIEBwcm9wZXJ0eSB7Kn0gW2luc3RhbmNlXSBUaGUgY2FjaGVkIGluc3RhbmNlIHdoZW4gYXBwbGljYWJsZSAoZS5nLiwgc2luZ2xldG9uKSwgb3RoZXJ3aXNlIHVuZGVmaW5lZCB1bnRpbCBidWlsdC5cbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3J9IGNvbnN0cnVjdG9yIFRoZSBjb25zdHJ1Y3RvciB1c2VkIHRvIGNyZWF0ZSBuZXcgaW5zdGFuY2VzLlxuICogQHR5cGVkZWYgSW5qZWN0YWJsZURlZlxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgSW5qZWN0YWJsZURlZjxcbiAgVCA9IGFueSxcbiAgT1BUUyBleHRlbmRzIEluamVjdGFibGVPcHRpb25zPFQ+ID0gSW5qZWN0YWJsZU9wdGlvbnM8VD4sXG4+ID0ge1xuICBvcHRpb25zOiBPUFRTO1xuICBpbnN0YW5jZT86IGFueTtcbiAgY29uc3RydWN0b3I6IENvbnN0cnVjdG9yPFQ+O1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWV0YWRhdGEgYXR0YWNoZWQgdG8gY2xhc3NlcyBtYXJrZWQgYXMgaW5qZWN0YWJsZS5cbiAqIEBzdW1tYXJ5IENhcHR1cmVzIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uIHN0b3JlZCB2aWEgcmVmbGVjdGlvbiBmb3IgbGF0ZXIgcmV0cmlldmFsIGFuZCB3aXJpbmcuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2xhc3MgVGhlIGNsYXNzIG5hbWUgb2YgdGhlIGluamVjdGFibGUuXG4gKiBAcHJvcGVydHkge3N5bWJvbH0gc3ltYm9sIFRoZSB1bmlxdWUgc3ltYm9sIHVuZGVyIHdoaWNoIHRoZSBpbmplY3RhYmxlIGlzIHJlZ2lzdGVyZWQuXG4gKiBAdHlwZWRlZiBJbmplY3RhYmxlTWV0YWRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW5qZWN0YWJsZS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIEluamVjdGFibGVNZXRhZGF0YSA9IHtcbiAgY2xhc3M6IHN0cmluZztcbiAgc3ltYm9sOiBzeW1ib2w7XG59O1xuIl19
|
package/lib/types.d.ts
CHANGED
|
@@ -1,15 +1,52 @@
|
|
|
1
|
+
import { Constructor } from "./decorators";
|
|
2
|
+
/**
|
|
3
|
+
* @description Callback function type used to transform or initialize an instance after construction.
|
|
4
|
+
* @summary Represents a post-construction hook that can modify or replace the created instance before it is returned to the caller.
|
|
5
|
+
* @template T The instance type being produced and possibly transformed.
|
|
6
|
+
* @param {T} instance The newly constructed instance.
|
|
7
|
+
* @param {...any} args Additional arguments forwarded from the construction context.
|
|
8
|
+
* @return {T} The instance to be stored/returned, which may be the original or a transformed instance.
|
|
9
|
+
* @typedef InstanceCallback
|
|
10
|
+
* @memberOf module:injectable-decorators
|
|
11
|
+
*/
|
|
1
12
|
export type InstanceCallback<T> = (instance: T, ...args: any[]) => T;
|
|
13
|
+
/**
|
|
14
|
+
* @description Options controlling how an injectable should be handled by the registry.
|
|
15
|
+
* @summary Specifies lifecycle and callback configuration for injectables, such as whether they are singletons and whether a post-build callback should run.
|
|
16
|
+
* @template T The instance type governed by these options.
|
|
17
|
+
* @property {boolean} singleton Indicates if the injectable should be treated as a singleton (single shared instance).
|
|
18
|
+
* @property {InstanceCallback<T>} callback Optional callback invoked after building an instance to perform additional setup or transformation.
|
|
19
|
+
* @typedef InjectableOptions
|
|
20
|
+
* @memberOf module:injectable-decorators
|
|
21
|
+
*/
|
|
2
22
|
export type InjectableOptions<T> = {
|
|
3
23
|
singleton: boolean;
|
|
4
24
|
callback: InstanceCallback<T>;
|
|
5
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* @description Internal registry definition for a stored injectable entry.
|
|
28
|
+
* @summary Describes how the registry caches injectable metadata, constructor, and (optionally) a built instance.
|
|
29
|
+
* @template T The resolved instance type.
|
|
30
|
+
* @template OPTS The options shape used for this injectable, extending {@link InjectableOptions}.
|
|
31
|
+
* @property {OPTS} options The lifecycle/options associated with this injectable entry.
|
|
32
|
+
* @property {*} [instance] The cached instance when applicable (e.g., singleton), otherwise undefined until built.
|
|
33
|
+
* @property {Constructor} constructor The constructor used to create new instances.
|
|
34
|
+
* @typedef InjectableDef
|
|
35
|
+
* @memberOf module:injectable-decorators
|
|
36
|
+
*/
|
|
6
37
|
export type InjectableDef<T = any, OPTS extends InjectableOptions<T> = InjectableOptions<T>> = {
|
|
7
38
|
options: OPTS;
|
|
8
39
|
instance?: any;
|
|
9
|
-
constructor:
|
|
10
|
-
new (...args: any[]): any;
|
|
11
|
-
};
|
|
40
|
+
constructor: Constructor<T>;
|
|
12
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* @description Metadata attached to classes marked as injectable.
|
|
44
|
+
* @summary Captures identifying information stored via reflection for later retrieval and wiring.
|
|
45
|
+
* @property {string} class The class name of the injectable.
|
|
46
|
+
* @property {symbol} symbol The unique symbol under which the injectable is registered.
|
|
47
|
+
* @typedef InjectableMetadata
|
|
48
|
+
* @memberOf module:injectable-decorators
|
|
49
|
+
*/
|
|
13
50
|
export type InjectableMetadata = {
|
|
14
51
|
class: string;
|
|
15
52
|
symbol: symbol;
|
package/lib/utils.cjs
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getInjectKey = void 0;
|
|
4
4
|
exports.getTypeFromDecorator = getTypeFromDecorator;
|
|
5
5
|
require("reflect-metadata");
|
|
6
|
-
const decorators_1 = require("./decorators.cjs");
|
|
7
6
|
const constants_1 = require("./constants.cjs");
|
|
8
7
|
/**
|
|
9
|
-
* @description
|
|
10
|
-
* @summary
|
|
11
|
-
* @
|
|
8
|
+
* @description Generates a fully qualified reflection metadata key.
|
|
9
|
+
* @summary Returns the reflection key for injectables by prefixing the provided key with the base reflection key.
|
|
10
|
+
* @param {string} key The key to be prefixed
|
|
11
|
+
* @return {string} The fully qualified reflection key
|
|
12
|
+
* @function getInjectKey
|
|
12
13
|
* @memberOf module:injectable-decorators
|
|
13
14
|
*/
|
|
14
|
-
|
|
15
|
+
const getInjectKey = (key) => constants_1.InjectablesKeys.REFLECT + key;
|
|
16
|
+
exports.getInjectKey = getInjectKey;
|
|
15
17
|
/**
|
|
16
18
|
* @description Extracts the type name from a decorated property using reflection.
|
|
17
19
|
* @summary Retrieves the type from a property decorator by accessing TypeScript's reflection metadata.
|
|
@@ -22,14 +24,14 @@ exports.TypeKey = "design:type";
|
|
|
22
24
|
* @memberOf module:injectable-decorators
|
|
23
25
|
*/
|
|
24
26
|
function getTypeFromDecorator(model, propKey) {
|
|
25
|
-
const typeDef = Reflect.getMetadata(
|
|
27
|
+
const typeDef = Reflect.getMetadata(constants_1.TypeKey, model, propKey);
|
|
26
28
|
if (typeDef.name === "Function") {
|
|
27
29
|
return undefined;
|
|
28
30
|
}
|
|
29
|
-
const meta = Reflect.getMetadata((0,
|
|
31
|
+
const meta = Reflect.getMetadata((0, exports.getInjectKey)(constants_1.InjectablesKeys.INJECTABLE), typeDef);
|
|
30
32
|
if (!meta) {
|
|
31
33
|
return undefined;
|
|
32
34
|
}
|
|
33
35
|
return meta.symbol;
|
|
34
36
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0JBLG9EQWdCQztBQXRDRCw0QkFBMEI7QUFDMUIsK0NBQXVEO0FBRXZEOzs7Ozs7O0dBT0c7QUFDSSxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsMkJBQWUsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQTlELFFBQUEsWUFBWSxnQkFBa0Q7QUFFM0U7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FDbEMsS0FBVSxFQUNWLE9BQXdCO0lBRXhCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsbUJBQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUM5QixJQUFBLG9CQUFZLEVBQUMsMkJBQWUsQ0FBQyxVQUFVLENBQUMsRUFDeEMsT0FBTyxDQUNSLENBQUM7SUFDRixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlc0tleXMsIFR5cGVLZXkgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJhdGVzIGEgZnVsbHkgcXVhbGlmaWVkIHJlZmxlY3Rpb24gbWV0YWRhdGEga2V5LlxuICogQHN1bW1hcnkgUmV0dXJucyB0aGUgcmVmbGVjdGlvbiBrZXkgZm9yIGluamVjdGFibGVzIGJ5IHByZWZpeGluZyB0aGUgcHJvdmlkZWQga2V5IHdpdGggdGhlIGJhc2UgcmVmbGVjdGlvbiBrZXkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgdG8gYmUgcHJlZml4ZWRcbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGZ1bGx5IHF1YWxpZmllZCByZWZsZWN0aW9uIGtleVxuICogQGZ1bmN0aW9uIGdldEluamVjdEtleVxuICogQG1lbWJlck9mIG1vZHVsZTppbmplY3RhYmxlLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEluamVjdEtleSA9IChrZXk6IHN0cmluZykgPT4gSW5qZWN0YWJsZXNLZXlzLlJFRkxFQ1QgKyBrZXk7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEV4dHJhY3RzIHRoZSB0eXBlIG5hbWUgZnJvbSBhIGRlY29yYXRlZCBwcm9wZXJ0eSB1c2luZyByZWZsZWN0aW9uLlxuICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSB0eXBlIGZyb20gYSBwcm9wZXJ0eSBkZWNvcmF0b3IgYnkgYWNjZXNzaW5nIFR5cGVTY3JpcHQncyByZWZsZWN0aW9uIG1ldGFkYXRhLlxuICogQHBhcmFtIHthbnl9IG1vZGVsIFRoZSB0YXJnZXQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRlY29yYXRlZCBwcm9wZXJ0eVxuICogQHBhcmFtIHtzdHJpbmcgfCBzeW1ib2x9IHByb3BLZXkgVGhlIHByb3BlcnR5IGtleSAobmFtZSBvciBzeW1ib2wpIG9mIHRoZSBkZWNvcmF0ZWQgcHJvcGVydHlcbiAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHR5cGUsIG9yIHVuZGVmaW5lZCBpZiBpdCdzIGEgRnVuY3Rpb24gdHlwZVxuICogQGZ1bmN0aW9uIGdldFR5cGVGcm9tRGVjb3JhdG9yXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmluamVjdGFibGUtZGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZUZyb21EZWNvcmF0b3IoXG4gIG1vZGVsOiBhbnksXG4gIHByb3BLZXk6IHN0cmluZyB8IHN5bWJvbFxuKTogc3ltYm9sIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdHlwZURlZiA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoVHlwZUtleSwgbW9kZWwsIHByb3BLZXkpO1xuICBpZiAodHlwZURlZi5uYW1lID09PSBcIkZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IG1ldGEgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgIGdldEluamVjdEtleShJbmplY3RhYmxlc0tleXMuSU5KRUNUQUJMRSksXG4gICAgdHlwZURlZlxuICApO1xuICBpZiAoIW1ldGEpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBtZXRhLnN5bWJvbDtcbn1cbiJdfQ==
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
/**
|
|
3
|
-
* @description
|
|
4
|
-
* @summary
|
|
5
|
-
* @
|
|
3
|
+
* @description Generates a fully qualified reflection metadata key.
|
|
4
|
+
* @summary Returns the reflection key for injectables by prefixing the provided key with the base reflection key.
|
|
5
|
+
* @param {string} key The key to be prefixed
|
|
6
|
+
* @return {string} The fully qualified reflection key
|
|
7
|
+
* @function getInjectKey
|
|
6
8
|
* @memberOf module:injectable-decorators
|
|
7
9
|
*/
|
|
8
|
-
export declare const
|
|
10
|
+
export declare const getInjectKey: (key: string) => string;
|
|
9
11
|
/**
|
|
10
12
|
* @description Extracts the type name from a decorated property using reflection.
|
|
11
13
|
* @summary Retrieves the type from a property decorator by accessing TypeScript's reflection metadata.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/injectable-decorators",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.8",
|
|
4
4
|
"description": "injectable decorators extension for decorator validation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.ts",
|
|
27
27
|
"lint": "eslint .",
|
|
28
28
|
"lint-fix": "eslint --fix .",
|
|
29
|
+
"prepare-pr": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
29
30
|
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
30
31
|
"release": "./bin/tag-release.sh",
|
|
31
32
|
"clean-publish": "npx clean-publish",
|