@decohere/crucible 0.0.1-dev.20 → 0.0.1-dev.20261105.103

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 (45) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +354 -0
  3. package/es6/src/const.js +3 -5
  4. package/es6/src/decorators/index.js +0 -2
  5. package/es6/src/decorators/inject.decorator.js +27 -14
  6. package/es6/src/decorators/injectable.dectorator.js +0 -2
  7. package/es6/src/index.js +0 -2
  8. package/es6/src/models/service-key.js +10 -0
  9. package/es6/src/models/service-registration.model.js +1 -6
  10. package/es6/src/services/container.js +197 -0
  11. package/es6/src/services/index.js +2 -4
  12. package/es6/src/services/service-container-builder.js +57 -0
  13. package/es6/src/services/service-registry.js +34 -23
  14. package/es6/src/types/errors.js +0 -2
  15. package/es6/src/types/index.js +1 -2
  16. package/es6/src/types/types.js +0 -2
  17. package/package.json +13 -7
  18. package/types/src/const.d.ts +1 -1
  19. package/types/src/decorators/inject.decorator.d.ts +17 -2
  20. package/types/src/models/service-key.d.ts +9 -0
  21. package/types/src/models/service-registration.model.d.ts +5 -4
  22. package/types/src/services/{crucible.d.ts → container.d.ts} +16 -5
  23. package/types/src/services/index.d.ts +2 -2
  24. package/types/src/services/{crucible-builder.d.ts → service-container-builder.d.ts} +9 -5
  25. package/types/src/services/service-registry.d.ts +12 -6
  26. package/types/src/types/index.d.ts +1 -0
  27. package/types/src/types/types.d.ts +1 -1
  28. package/commonjs/src/const.js +0 -33
  29. package/commonjs/src/decorators/index.js +0 -21
  30. package/commonjs/src/decorators/inject.decorator.js +0 -27
  31. package/commonjs/src/decorators/injectable.dectorator.js +0 -16
  32. package/commonjs/src/index.js +0 -22
  33. package/commonjs/src/models/registration-key.model.js +0 -31
  34. package/commonjs/src/models/service-registration.model.js +0 -30
  35. package/commonjs/src/services/crucible-builder.js +0 -68
  36. package/commonjs/src/services/crucible.js +0 -165
  37. package/commonjs/src/services/index.js +0 -21
  38. package/commonjs/src/services/service-registry.js +0 -50
  39. package/commonjs/src/types/errors.js +0 -29
  40. package/commonjs/src/types/index.js +0 -20
  41. package/commonjs/src/types/types.js +0 -6
  42. package/es6/src/models/registration-key.model.js +0 -21
  43. package/es6/src/services/crucible-builder.js +0 -58
  44. package/es6/src/services/crucible.js +0 -155
  45. package/types/src/models/registration-key.model.d.ts +0 -7
@@ -1,58 +0,0 @@
1
- import { Scopes } from "../const.js";
2
- import { Crucible } from "./crucible.js";
3
- import { ServiceRegistry } from "./service-registry.js";
4
- export class CrucibleBuilder {
5
- serviceRegistry;
6
- constructor(options){
7
- this.serviceRegistry = options?.serviceRegistry ?? new ServiceRegistry();
8
- }
9
- registerType(type, scope = Scopes.transient) {
10
- const registration = this.serviceRegistry.registerType(scope, {
11
- typeOrKey: type.name,
12
- typeOrInstance: type
13
- });
14
- return registration;
15
- }
16
- registerTypes(scopeOrType, ...types) {
17
- const registrations = Array.of();
18
- const isScope = typeof scopeOrType !== "function";
19
- const scope = isScope ? scopeOrType : Scopes.transient;
20
- const allTypes = isScope ? types : [
21
- scopeOrType,
22
- ...types
23
- ];
24
- for (const type of allTypes){
25
- const registration = this.registerType(type, scope);
26
- registrations.push(registration);
27
- }
28
- return registrations;
29
- }
30
- registerTransient(typeOrKey, type) {
31
- const registration = this.serviceRegistry.registerType(Scopes.transient, {
32
- typeOrKey,
33
- typeOrInstance: type
34
- });
35
- return registration;
36
- }
37
- registerSingleton(typeOrKey, typeOrInstance) {
38
- const registration = this.serviceRegistry.registerType(Scopes.singleton, {
39
- typeOrKey,
40
- typeOrInstance
41
- });
42
- return registration;
43
- }
44
- registerRequestScoped(typeOrKey, type) {
45
- const registration = this.serviceRegistry.registerType(Scopes.request, {
46
- typeOrKey,
47
- typeOrInstance: type
48
- });
49
- return registration;
50
- }
51
- build() {
52
- return new Crucible({
53
- serviceRegistry: this.serviceRegistry
54
- });
55
- }
56
- }
57
-
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NydWNpYmxlL3NyYy9zZXJ2aWNlcy9jcnVjaWJsZS1idWlsZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29uc3RydWN0YWJsZSwgRnVuY3Rpb25UeXBlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBTY29wZXMgfSBmcm9tIFwiLi4vY29uc3QuanNcIjtcbmltcG9ydCB0eXBlIHsgU2VydmljZVJlZ2lzdHJhdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvc2VydmljZS1yZWdpc3RyYXRpb24ubW9kZWwuanNcIjtcbmltcG9ydCB0eXBlIHsgQ29udGFpbmVyQnVpbGRlciwgU2NvcGUgfSBmcm9tIFwiLi4vdHlwZXMvdHlwZXMuanNcIjtcbmltcG9ydCB7IENydWNpYmxlIH0gZnJvbSBcIi4vY3J1Y2libGUuanNcIjtcbmltcG9ydCB7IFNlcnZpY2VSZWdpc3RyeSB9IGZyb20gXCIuL3NlcnZpY2UtcmVnaXN0cnkuanNcIjtcblxudHlwZSBDb250YWluZXJCdWlsZGVyT3B0aW9ucyA9IHtcblx0c2VydmljZVJlZ2lzdHJ5OiBTZXJ2aWNlUmVnaXN0cnk7XG59O1xuXG5leHBvcnQgY2xhc3MgQ3J1Y2libGVCdWlsZGVyIGltcGxlbWVudHMgQ29udGFpbmVyQnVpbGRlciB7XG5cdHByaXZhdGUgc2VydmljZVJlZ2lzdHJ5OiBTZXJ2aWNlUmVnaXN0cnk7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zPzogQ29udGFpbmVyQnVpbGRlck9wdGlvbnMpIHtcblx0XHR0aGlzLnNlcnZpY2VSZWdpc3RyeSA9IG9wdGlvbnM/LnNlcnZpY2VSZWdpc3RyeSA/PyBuZXcgU2VydmljZVJlZ2lzdHJ5KCk7XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJUeXBlKHR5cGU6IENvbnN0cnVjdGFibGUsIHNjb3BlOiBTY29wZSA9IFNjb3Blcy50cmFuc2llbnQpIHtcblx0XHRjb25zdCByZWdpc3RyYXRpb24gPSB0aGlzLnNlcnZpY2VSZWdpc3RyeS5yZWdpc3RlclR5cGUoc2NvcGUsIHtcblx0XHRcdHR5cGVPcktleTogdHlwZS5uYW1lLFxuXHRcdFx0dHlwZU9ySW5zdGFuY2U6IHR5cGUsXG5cdFx0fSk7XG5cdFx0cmV0dXJuIHJlZ2lzdHJhdGlvbjtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlclR5cGVzKC4uLnR5cGVzOiBDb25zdHJ1Y3RhYmxlW10pOiBTZXJ2aWNlUmVnaXN0cmF0aW9uW107XG5cdHB1YmxpYyByZWdpc3RlclR5cGVzKHNjb3BlOiBTY29wZSwgLi4udHlwZXM6IENvbnN0cnVjdGFibGVbXSk6IFNlcnZpY2VSZWdpc3RyYXRpb25bXTtcblx0cHVibGljIHJlZ2lzdGVyVHlwZXMoXG5cdFx0c2NvcGVPclR5cGU6IFNjb3BlIHwgQ29uc3RydWN0YWJsZSxcblx0XHQuLi50eXBlczogQ29uc3RydWN0YWJsZVtdXG5cdCk6IFNlcnZpY2VSZWdpc3RyYXRpb25bXSB7XG5cdFx0Y29uc3QgcmVnaXN0cmF0aW9ucyA9IEFycmF5Lm9mPFNlcnZpY2VSZWdpc3RyYXRpb24+KCk7XG5cblx0XHRjb25zdCBpc1Njb3BlID0gdHlwZW9mIHNjb3BlT3JUeXBlICE9PSBcImZ1bmN0aW9uXCI7XG5cdFx0Y29uc3Qgc2NvcGUgPSBpc1Njb3BlID8gc2NvcGVPclR5cGUgOiBTY29wZXMudHJhbnNpZW50O1xuXHRcdGNvbnN0IGFsbFR5cGVzID0gaXNTY29wZSA/IHR5cGVzIDogW3Njb3BlT3JUeXBlLCAuLi50eXBlc107XG5cdFx0Zm9yIChjb25zdCB0eXBlIG9mIGFsbFR5cGVzKSB7XG5cdFx0XHRjb25zdCByZWdpc3RyYXRpb24gPSB0aGlzLnJlZ2lzdGVyVHlwZSh0eXBlLCBzY29wZSk7XG5cdFx0XHRyZWdpc3RyYXRpb25zLnB1c2gocmVnaXN0cmF0aW9uKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVnaXN0cmF0aW9ucztcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlclRyYW5zaWVudChcblx0XHRrZXk6IHN0cmluZyB8IHN5bWJvbCxcblx0XHR0eXBlOiBDb25zdHJ1Y3RhYmxlIHwgRnVuY3Rpb25UeXBlLFxuXHQpOiBTZXJ2aWNlUmVnaXN0cmF0aW9uO1xuXHRwdWJsaWMgcmVnaXN0ZXJUcmFuc2llbnQodHlwZTogQ29uc3RydWN0YWJsZSk6IFNlcnZpY2VSZWdpc3RyYXRpb247XG5cdHB1YmxpYyByZWdpc3RlclRyYW5zaWVudCh0eXBlT3JLZXk6IHN0cmluZyB8IHN5bWJvbCB8IENvbnN0cnVjdGFibGUsIHR5cGU/OiBDb25zdHJ1Y3RhYmxlKSB7XG5cdFx0Y29uc3QgcmVnaXN0cmF0aW9uID0gdGhpcy5zZXJ2aWNlUmVnaXN0cnkucmVnaXN0ZXJUeXBlKFNjb3Blcy50cmFuc2llbnQsIHtcblx0XHRcdHR5cGVPcktleSxcblx0XHRcdHR5cGVPckluc3RhbmNlOiB0eXBlLFxuXHRcdH0pO1xuXHRcdHJldHVybiByZWdpc3RyYXRpb247XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJTaW5nbGV0b24oXG5cdFx0a2V5OiBzdHJpbmcgfCBzeW1ib2wgfCBDb25zdHJ1Y3RhYmxlIHwgb2JqZWN0LFxuXHRcdGluc3RhbmNlOiBvYmplY3QsXG5cdCk6IFNlcnZpY2VSZWdpc3RyYXRpb247XG5cdHB1YmxpYyByZWdpc3RlclNpbmdsZXRvbihrZXk6IHN0cmluZyB8IHN5bWJvbCwgdHlwZTogQ29uc3RydWN0YWJsZSk6IFNlcnZpY2VSZWdpc3RyYXRpb247XG5cdHB1YmxpYyByZWdpc3RlclNpbmdsZXRvbih0eXBlOiBDb25zdHJ1Y3RhYmxlKTogU2VydmljZVJlZ2lzdHJhdGlvbjtcblx0cHVibGljIHJlZ2lzdGVyU2luZ2xldG9uKFxuXHRcdHR5cGVPcktleTogc3RyaW5nIHwgc3ltYm9sIHwgQ29uc3RydWN0YWJsZSxcblx0XHR0eXBlT3JJbnN0YW5jZT86IENvbnN0cnVjdGFibGUgfCBvYmplY3QsXG5cdCkge1xuXHRcdGNvbnN0IHJlZ2lzdHJhdGlvbiA9IHRoaXMuc2VydmljZVJlZ2lzdHJ5LnJlZ2lzdGVyVHlwZShTY29wZXMuc2luZ2xldG9uLCB7XG5cdFx0XHR0eXBlT3JLZXksXG5cdFx0XHR0eXBlT3JJbnN0YW5jZSxcblx0XHR9KTtcblx0XHRyZXR1cm4gcmVnaXN0cmF0aW9uO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyUmVxdWVzdFNjb3BlZDxUPih0eXBlOiAoKSA9PiBUKTogU2VydmljZVJlZ2lzdHJhdGlvbjtcblx0cHVibGljIHJlZ2lzdGVyUmVxdWVzdFNjb3BlZDxUPihrZXk6IHN0cmluZyB8IHN5bWJvbCwgdHlwZTogKCkgPT4gVCk6IFNlcnZpY2VSZWdpc3RyYXRpb247XG5cdHB1YmxpYyByZWdpc3RlclJlcXVlc3RTY29wZWQoa2V5OiBzdHJpbmcgfCBzeW1ib2wsIHR5cGU6IENvbnN0cnVjdGFibGUpOiBTZXJ2aWNlUmVnaXN0cmF0aW9uO1xuXHRwdWJsaWMgcmVnaXN0ZXJSZXF1ZXN0U2NvcGVkKHR5cGU6IENvbnN0cnVjdGFibGUpOiBTZXJ2aWNlUmVnaXN0cmF0aW9uO1xuXHRwdWJsaWMgcmVnaXN0ZXJSZXF1ZXN0U2NvcGVkKFxuXHRcdHR5cGVPcktleTogc3RyaW5nIHwgc3ltYm9sIHwgQ29uc3RydWN0YWJsZSB8IEZ1bmN0aW9uVHlwZSxcblx0XHR0eXBlPzogQ29uc3RydWN0YWJsZSB8IEZ1bmN0aW9uVHlwZSxcblx0KSB7XG5cdFx0Y29uc3QgcmVnaXN0cmF0aW9uID0gdGhpcy5zZXJ2aWNlUmVnaXN0cnkucmVnaXN0ZXJUeXBlKFNjb3Blcy5yZXF1ZXN0LCB7XG5cdFx0XHR0eXBlT3JLZXksXG5cdFx0XHR0eXBlT3JJbnN0YW5jZTogdHlwZSxcblx0XHR9KTtcblx0XHRyZXR1cm4gcmVnaXN0cmF0aW9uO1xuXHR9XG5cblx0cHVibGljIGJ1aWxkKCk6IENydWNpYmxlIHtcblx0XHRyZXR1cm4gbmV3IENydWNpYmxlKHsgc2VydmljZVJlZ2lzdHJ5OiB0aGlzLnNlcnZpY2VSZWdpc3RyeSB9KTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIlNjb3BlcyIsIkNydWNpYmxlIiwiU2VydmljZVJlZ2lzdHJ5IiwiQ3J1Y2libGVCdWlsZGVyIiwic2VydmljZVJlZ2lzdHJ5Iiwib3B0aW9ucyIsInJlZ2lzdGVyVHlwZSIsInR5cGUiLCJzY29wZSIsInRyYW5zaWVudCIsInJlZ2lzdHJhdGlvbiIsInR5cGVPcktleSIsIm5hbWUiLCJ0eXBlT3JJbnN0YW5jZSIsInJlZ2lzdGVyVHlwZXMiLCJzY29wZU9yVHlwZSIsInR5cGVzIiwicmVnaXN0cmF0aW9ucyIsIkFycmF5Iiwib2YiLCJpc1Njb3BlIiwiYWxsVHlwZXMiLCJwdXNoIiwicmVnaXN0ZXJUcmFuc2llbnQiLCJyZWdpc3RlclNpbmdsZXRvbiIsInNpbmdsZXRvbiIsInJlZ2lzdGVyUmVxdWVzdFNjb3BlZCIsInJlcXVlc3QiLCJidWlsZCJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsTUFBTSxRQUFRLGNBQWM7QUFHckMsU0FBU0MsUUFBUSxRQUFRLGdCQUFnQjtBQUN6QyxTQUFTQyxlQUFlLFFBQVEsd0JBQXdCO0FBTXhELE9BQU8sTUFBTUM7SUFDSkMsZ0JBQWlDO0lBQ3pDLFlBQW1CQyxPQUFpQyxDQUFFO1FBQ3JELElBQUksQ0FBQ0QsZUFBZSxHQUFHQyxTQUFTRCxtQkFBbUIsSUFBSUY7SUFDeEQ7SUFFT0ksYUFBYUMsSUFBbUIsRUFBRUMsUUFBZVIsT0FBT1MsU0FBUyxFQUFFO1FBQ3pFLE1BQU1DLGVBQWUsSUFBSSxDQUFDTixlQUFlLENBQUNFLFlBQVksQ0FBQ0UsT0FBTztZQUM3REcsV0FBV0osS0FBS0ssSUFBSTtZQUNwQkMsZ0JBQWdCTjtRQUNqQjtRQUNBLE9BQU9HO0lBQ1I7SUFJT0ksY0FDTkMsV0FBa0MsRUFDbEMsR0FBR0MsS0FBc0IsRUFDRDtRQUN4QixNQUFNQyxnQkFBZ0JDLE1BQU1DLEVBQUU7UUFFOUIsTUFBTUMsVUFBVSxPQUFPTCxnQkFBZ0I7UUFDdkMsTUFBTVAsUUFBUVksVUFBVUwsY0FBY2YsT0FBT1MsU0FBUztRQUN0RCxNQUFNWSxXQUFXRCxVQUFVSixRQUFRO1lBQUNEO2VBQWdCQztTQUFNO1FBQzFELEtBQUssTUFBTVQsUUFBUWMsU0FBVTtZQUM1QixNQUFNWCxlQUFlLElBQUksQ0FBQ0osWUFBWSxDQUFDQyxNQUFNQztZQUM3Q1MsY0FBY0ssSUFBSSxDQUFDWjtRQUNwQjtRQUVBLE9BQU9PO0lBQ1I7SUFPT00sa0JBQWtCWixTQUEwQyxFQUFFSixJQUFvQixFQUFFO1FBQzFGLE1BQU1HLGVBQWUsSUFBSSxDQUFDTixlQUFlLENBQUNFLFlBQVksQ0FBQ04sT0FBT1MsU0FBUyxFQUFFO1lBQ3hFRTtZQUNBRSxnQkFBZ0JOO1FBQ2pCO1FBQ0EsT0FBT0c7SUFDUjtJQVFPYyxrQkFDTmIsU0FBMEMsRUFDMUNFLGNBQXVDLEVBQ3RDO1FBQ0QsTUFBTUgsZUFBZSxJQUFJLENBQUNOLGVBQWUsQ0FBQ0UsWUFBWSxDQUFDTixPQUFPeUIsU0FBUyxFQUFFO1lBQ3hFZDtZQUNBRTtRQUNEO1FBQ0EsT0FBT0g7SUFDUjtJQU1PZ0Isc0JBQ05mLFNBQXlELEVBQ3pESixJQUFtQyxFQUNsQztRQUNELE1BQU1HLGVBQWUsSUFBSSxDQUFDTixlQUFlLENBQUNFLFlBQVksQ0FBQ04sT0FBTzJCLE9BQU8sRUFBRTtZQUN0RWhCO1lBQ0FFLGdCQUFnQk47UUFDakI7UUFDQSxPQUFPRztJQUNSO0lBRU9rQixRQUFrQjtRQUN4QixPQUFPLElBQUkzQixTQUFTO1lBQUVHLGlCQUFpQixJQUFJLENBQUNBLGVBQWU7UUFBQztJQUM3RDtBQUNEIn0=
@@ -1,155 +0,0 @@
1
- import { getMeta, isArrayType, isConstructable, ReflectionMeta } from "@decohere/nexus/reflection";
2
- import { scribe } from "@decohere/scribe";
3
- import { CrucibleMeta, LifetimeScopeToken, Scopes } from "../const.js";
4
- import { RegistrationKey } from "../models/registration-key.model.js";
5
- import { DuplicateScopeError, ResolveError } from "../types/errors.js";
6
- import { ServiceRegistry } from "./service-registry.js";
7
- export class Crucible {
8
- key;
9
- instances = new Map();
10
- serviceRegistry;
11
- rootScope;
12
- scopes = new Map();
13
- logger = scribe.logger(Crucible.name);
14
- isDisposed = false;
15
- constructor(options){
16
- this.key = options?.key;
17
- this.serviceRegistry = new ServiceRegistry(options?.serviceRegistry);
18
- this.registerLifetimeScope();
19
- this.rootScope = options?.rootScope ?? this;
20
- }
21
- resolveMany(resolveRequest) {
22
- const key = new RegistrationKey(resolveRequest);
23
- const registrations = this.getRegistrationFrom(key) ?? [];
24
- const services = Array.of();
25
- for (const registration of registrations){
26
- const service = this.resolveRegistration(registration);
27
- services.push(service);
28
- }
29
- return services;
30
- }
31
- resolve(resolveRequest) {
32
- const key = new RegistrationKey(resolveRequest);
33
- const registration = this.getRegistrationFrom(key);
34
- if (registration == null) {
35
- this.logger.warn(`Cannot resolve dependency ${key.toString()}`);
36
- return null;
37
- }
38
- if (registration.length > 1) {
39
- throw new ResolveError(`There are multiple services registered with key ${key.toString()}. Use resolveMany to resolve all implementations.`);
40
- }
41
- const service = this.resolveRegistration(registration[0]);
42
- return service;
43
- }
44
- beginScope(name) {
45
- if (this.scopes.has(name)) {
46
- throw new DuplicateScopeError(`Cannot create duplicate scope. Scope with ${name} is already created and has not been disposed.`);
47
- }
48
- const scope = new Crucible({
49
- key: name,
50
- serviceRegistry: this.serviceRegistry,
51
- rootScope: this
52
- });
53
- this.scopes.set(name, scope);
54
- return scope;
55
- }
56
- [Symbol.dispose]() {
57
- if (this.isDisposed) {
58
- return;
59
- }
60
- this.disposeSync();
61
- }
62
- async [Symbol.asyncDispose]() {
63
- if (this.isDisposed) {
64
- return;
65
- }
66
- await this.disposeAsync();
67
- }
68
- disposeSync() {
69
- if (this.isDisposed) {
70
- return;
71
- }
72
- this.isDisposed = true;
73
- for (const [, inst] of this.instances){
74
- if (inst === this) {
75
- continue;
76
- }
77
- inst[Symbol.dispose]?.();
78
- }
79
- }
80
- async disposeAsync() {
81
- if (this.isDisposed) {
82
- return;
83
- }
84
- this.isDisposed = true;
85
- for (const [, inst] of this.instances){
86
- if (inst === this) {
87
- continue;
88
- }
89
- if (Symbol.asyncDispose in inst) {
90
- await inst[Symbol.asyncDispose]();
91
- } else {
92
- inst[Symbol.dispose]?.();
93
- }
94
- }
95
- }
96
- getRegistrationFrom(key) {
97
- const registration = this.serviceRegistry.getRegistration(key.value);
98
- return registration;
99
- }
100
- resolveRegistration(registration) {
101
- const { scope } = registration;
102
- switch(scope){
103
- case Scopes.transient:
104
- return this.createInstance(registration);
105
- case Scopes.singleton:
106
- return this.rootScope.getOrCreateInstance(registration);
107
- case Scopes.request:
108
- return this.getOrCreateInstance(registration);
109
- }
110
- }
111
- getOrCreateInstance(registration) {
112
- if (this.isDisposed) {
113
- throw new Error("This continer has been disposed");
114
- }
115
- const { key, type, isInstance } = registration;
116
- const cacheKey = isInstance ? key.value : type;
117
- const existingInstance = this.instances.get(cacheKey);
118
- if (existingInstance != null) {
119
- return existingInstance;
120
- }
121
- const instance = isInstance ? type : this.createInstance(registration);
122
- this.instances.set(cacheKey, instance);
123
- return instance;
124
- }
125
- createInstance(registration) {
126
- const type = registration.type;
127
- const canConstruct = isConstructable(type);
128
- const deps = this.resolveDependencies(type);
129
- const inst = canConstruct ? new type(...deps) : type();
130
- return inst;
131
- }
132
- resolveDependencies(type) {
133
- const params = getMeta(ReflectionMeta.paramtypes, type) ?? [];
134
- const injectTokens = getMeta(CrucibleMeta.injecttoken, type) ?? new Map();
135
- //TODO: put a try catch here so we can throw the name of the service
136
- let resolved = [];
137
- for(let i = 0; i < params.length; i++){
138
- const token = injectTokens.get(i)?.key ?? params[i].name;
139
- const dep = isArrayType(params[i]) ? this.resolveMany(token) : this.resolve(token);
140
- resolved = [
141
- ...resolved,
142
- dep
143
- ];
144
- }
145
- return resolved;
146
- }
147
- registerLifetimeScope() {
148
- this.serviceRegistry.registerType(Scopes.request, {
149
- typeOrKey: LifetimeScopeToken,
150
- typeOrInstance: this
151
- });
152
- }
153
- }
154
-
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NydWNpYmxlL3NyYy9zZXJ2aWNlcy9jcnVjaWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHR0eXBlIENvbnN0cnVjdGFibGUsXG5cdHR5cGUgRnVuY3Rpb25UeXBlLFxuXHRnZXRNZXRhLFxuXHRpc0FycmF5VHlwZSxcblx0aXNDb25zdHJ1Y3RhYmxlLFxuXHRSZWZsZWN0aW9uTWV0YSxcbn0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBzY3JpYmUgfSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHsgQ3J1Y2libGVNZXRhLCBMaWZldGltZVNjb3BlVG9rZW4sIFNjb3BlcyB9IGZyb20gXCIuLi9jb25zdC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBJbmplY3Rpb25NZXRhZGF0YSB9IGZyb20gXCIuLi9kZWNvcmF0b3JzL2luamVjdC5kZWNvcmF0b3IuanNcIjtcbmltcG9ydCB7IFJlZ2lzdHJhdGlvbktleSB9IGZyb20gXCIuLi9tb2RlbHMvcmVnaXN0cmF0aW9uLWtleS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9zZXJ2aWNlLXJlZ2lzdHJhdGlvbi5tb2RlbC5qc1wiO1xuaW1wb3J0IHsgRHVwbGljYXRlU2NvcGVFcnJvciwgUmVzb2x2ZUVycm9yIH0gZnJvbSBcIi4uL3R5cGVzL2Vycm9ycy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBJQ29udGFpbmVyLCBMaWZldGltZVNjb3BlLCBSZXNvbHZlUmVxdWVzdCB9IGZyb20gXCIuLi90eXBlcy90eXBlcy5qc1wiO1xuaW1wb3J0IHsgU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSBcIi4vc2VydmljZS1yZWdpc3RyeS5qc1wiO1xuXG50eXBlIENydWNpYmxlT3B0aW9ucyA9IHtcblx0a2V5Pzogc3RyaW5nO1xuXHRyb290U2NvcGU/OiBDcnVjaWJsZTtcblx0c2VydmljZVJlZ2lzdHJ5OiBTZXJ2aWNlUmVnaXN0cnk7XG59O1xuXG5leHBvcnQgY2xhc3MgQ3J1Y2libGUgaW1wbGVtZW50cyBJQ29udGFpbmVyIHtcblx0cHVibGljIGtleTogc3RyaW5nO1xuXHRwcm90ZWN0ZWQgaW5zdGFuY2VzID0gbmV3IE1hcDx1bmtub3duLCBvYmplY3Q+KCk7XG5cdHByaXZhdGUgc2VydmljZVJlZ2lzdHJ5OiBTZXJ2aWNlUmVnaXN0cnk7XG5cdHByaXZhdGUgcm9vdFNjb3BlOiBDcnVjaWJsZTtcblx0cHJpdmF0ZSBzY29wZXMgPSBuZXcgTWFwPHN0cmluZywgTGlmZXRpbWVTY29wZT4oKTtcblx0cHJpdmF0ZSBsb2dnZXIgPSBzY3JpYmUubG9nZ2VyKENydWNpYmxlLm5hbWUpO1xuXHRwcml2YXRlIGlzRGlzcG9zZWQgPSBmYWxzZTtcblx0cHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBDcnVjaWJsZU9wdGlvbnMpIHtcblx0XHR0aGlzLmtleSA9IG9wdGlvbnM/LmtleTtcblx0XHR0aGlzLnNlcnZpY2VSZWdpc3RyeSA9IG5ldyBTZXJ2aWNlUmVnaXN0cnkob3B0aW9ucz8uc2VydmljZVJlZ2lzdHJ5KTtcblx0XHR0aGlzLnJlZ2lzdGVyTGlmZXRpbWVTY29wZSgpO1xuXHRcdHRoaXMucm9vdFNjb3BlID0gb3B0aW9ucz8ucm9vdFNjb3BlID8/IHRoaXM7XG5cdH1cblxuXHRwdWJsaWMgcmVzb2x2ZU1hbnk8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4ocmVzb2x2ZVJlcXVlc3Q6IFJlc29sdmVSZXF1ZXN0PFQ+KTogVFtdIHtcblx0XHRjb25zdCBrZXkgPSBuZXcgUmVnaXN0cmF0aW9uS2V5KHJlc29sdmVSZXF1ZXN0KTtcblx0XHRjb25zdCByZWdpc3RyYXRpb25zID0gdGhpcy5nZXRSZWdpc3RyYXRpb25Gcm9tKGtleSkgPz8gW107XG5cblx0XHRjb25zdCBzZXJ2aWNlcyA9IEFycmF5Lm9mPFQ+KCk7XG5cdFx0Zm9yIChjb25zdCByZWdpc3RyYXRpb24gb2YgcmVnaXN0cmF0aW9ucykge1xuXHRcdFx0Y29uc3Qgc2VydmljZSA9IHRoaXMucmVzb2x2ZVJlZ2lzdHJhdGlvbjxUPihyZWdpc3RyYXRpb24pO1xuXHRcdFx0c2VydmljZXMucHVzaChzZXJ2aWNlKTtcblx0XHR9XG5cdFx0cmV0dXJuIHNlcnZpY2VzO1xuXHR9XG5cblx0cHVibGljIHJlc29sdmU8VCBleHRlbmRzIG9iamVjdCB8IG9iamVjdFtdPihyZXNvbHZlUmVxdWVzdDogUmVzb2x2ZVJlcXVlc3Q8VD4pOiBUIHtcblx0XHRjb25zdCBrZXkgPSBuZXcgUmVnaXN0cmF0aW9uS2V5KHJlc29sdmVSZXF1ZXN0KTtcblx0XHRjb25zdCByZWdpc3RyYXRpb24gPSB0aGlzLmdldFJlZ2lzdHJhdGlvbkZyb20oa2V5KTtcblx0XHRpZiAocmVnaXN0cmF0aW9uID09IG51bGwpIHtcblx0XHRcdHRoaXMubG9nZ2VyLndhcm4oYENhbm5vdCByZXNvbHZlIGRlcGVuZGVuY3kgJHtrZXkudG9TdHJpbmcoKX1gKTtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdGlmIChyZWdpc3RyYXRpb24ubGVuZ3RoID4gMSkge1xuXHRcdFx0dGhyb3cgbmV3IFJlc29sdmVFcnJvcihcblx0XHRcdFx0YFRoZXJlIGFyZSBtdWx0aXBsZSBzZXJ2aWNlcyByZWdpc3RlcmVkIHdpdGgga2V5ICR7a2V5LnRvU3RyaW5nKCl9LiBVc2UgcmVzb2x2ZU1hbnkgdG8gcmVzb2x2ZSBhbGwgaW1wbGVtZW50YXRpb25zLmAsXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNlcnZpY2UgPSB0aGlzLnJlc29sdmVSZWdpc3RyYXRpb248VD4ocmVnaXN0cmF0aW9uWzBdKTtcblx0XHRyZXR1cm4gc2VydmljZTtcblx0fVxuXG5cdHB1YmxpYyBiZWdpblNjb3BlKG5hbWU/OiBzdHJpbmcpIHtcblx0XHRpZiAodGhpcy5zY29wZXMuaGFzKG5hbWUpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRHVwbGljYXRlU2NvcGVFcnJvcihcblx0XHRcdFx0YENhbm5vdCBjcmVhdGUgZHVwbGljYXRlIHNjb3BlLiBTY29wZSB3aXRoICR7bmFtZX0gaXMgYWxyZWFkeSBjcmVhdGVkIGFuZCBoYXMgbm90IGJlZW4gZGlzcG9zZWQuYCxcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgc2NvcGUgPSBuZXcgQ3J1Y2libGUoe1xuXHRcdFx0a2V5OiBuYW1lLFxuXHRcdFx0c2VydmljZVJlZ2lzdHJ5OiB0aGlzLnNlcnZpY2VSZWdpc3RyeSxcblx0XHRcdHJvb3RTY29wZTogdGhpcyxcblx0XHR9KTtcblxuXHRcdHRoaXMuc2NvcGVzLnNldChuYW1lLCBzY29wZSk7XG5cdFx0cmV0dXJuIHNjb3BlO1xuXHR9XG5cblx0cHVibGljIFtTeW1ib2wuZGlzcG9zZV0oKSB7XG5cdFx0aWYgKHRoaXMuaXNEaXNwb3NlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLmRpc3Bvc2VTeW5jKCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCkge1xuXHRcdGlmICh0aGlzLmlzRGlzcG9zZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0YXdhaXQgdGhpcy5kaXNwb3NlQXN5bmMoKTtcblx0fVxuXG5cdHByaXZhdGUgZGlzcG9zZVN5bmMoKSB7XG5cdFx0aWYgKHRoaXMuaXNEaXNwb3NlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuaXNEaXNwb3NlZCA9IHRydWU7XG5cdFx0Zm9yIChjb25zdCBbLCBpbnN0XSBvZiB0aGlzLmluc3RhbmNlcykge1xuXHRcdFx0aWYgKGluc3QgPT09IHRoaXMpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRpbnN0W1N5bWJvbC5kaXNwb3NlXT8uKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBkaXNwb3NlQXN5bmMoKSB7XG5cdFx0aWYgKHRoaXMuaXNEaXNwb3NlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuaXNEaXNwb3NlZCA9IHRydWU7XG5cdFx0Zm9yIChjb25zdCBbLCBpbnN0XSBvZiB0aGlzLmluc3RhbmNlcykge1xuXHRcdFx0aWYgKGluc3QgPT09IHRoaXMpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoU3ltYm9sLmFzeW5jRGlzcG9zZSBpbiBpbnN0KSB7XG5cdFx0XHRcdGF3YWl0IChpbnN0IGFzIEFzeW5jRGlzcG9zYWJsZSlbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdChpbnN0IGFzIFBhcnRpYWw8RGlzcG9zYWJsZT4pW1N5bWJvbC5kaXNwb3NlXT8uKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBnZXRSZWdpc3RyYXRpb25Gcm9tKGtleTogUmVnaXN0cmF0aW9uS2V5KSB7XG5cdFx0Y29uc3QgcmVnaXN0cmF0aW9uID0gdGhpcy5zZXJ2aWNlUmVnaXN0cnkuZ2V0UmVnaXN0cmF0aW9uKGtleS52YWx1ZSk7XG5cdFx0cmV0dXJuIHJlZ2lzdHJhdGlvbjtcblx0fVxuXG5cdHByaXZhdGUgcmVzb2x2ZVJlZ2lzdHJhdGlvbjxUIGV4dGVuZHMgb2JqZWN0PihyZWdpc3RyYXRpb246IFNlcnZpY2VSZWdpc3RyYXRpb24pOiBUIHtcblx0XHRjb25zdCB7IHNjb3BlIH0gPSByZWdpc3RyYXRpb247XG5cdFx0c3dpdGNoIChzY29wZSkge1xuXHRcdFx0Y2FzZSBTY29wZXMudHJhbnNpZW50OlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jcmVhdGVJbnN0YW5jZShyZWdpc3RyYXRpb24pO1xuXHRcdFx0Y2FzZSBTY29wZXMuc2luZ2xldG9uOlxuXHRcdFx0XHRyZXR1cm4gdGhpcy5yb290U2NvcGUuZ2V0T3JDcmVhdGVJbnN0YW5jZShyZWdpc3RyYXRpb24pO1xuXHRcdFx0Y2FzZSBTY29wZXMucmVxdWVzdDpcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVJbnN0YW5jZShyZWdpc3RyYXRpb24pO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgZ2V0T3JDcmVhdGVJbnN0YW5jZTxUIGV4dGVuZHMgb2JqZWN0PihyZWdpc3RyYXRpb246IFNlcnZpY2VSZWdpc3RyYXRpb24pOiBUIHtcblx0XHRpZiAodGhpcy5pc0Rpc3Bvc2VkKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIGNvbnRpbmVyIGhhcyBiZWVuIGRpc3Bvc2VkXCIpO1xuXHRcdH1cblx0XHRjb25zdCB7IGtleSwgdHlwZSwgaXNJbnN0YW5jZSB9ID0gcmVnaXN0cmF0aW9uO1xuXHRcdGNvbnN0IGNhY2hlS2V5ID0gaXNJbnN0YW5jZSA/IGtleS52YWx1ZSA6IHR5cGU7XG5cdFx0Y29uc3QgZXhpc3RpbmdJbnN0YW5jZSA9IHRoaXMuaW5zdGFuY2VzLmdldChjYWNoZUtleSk7XG5cdFx0aWYgKGV4aXN0aW5nSW5zdGFuY2UgIT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIGV4aXN0aW5nSW5zdGFuY2UgYXMgVDtcblx0XHR9XG5cblx0XHRjb25zdCBpbnN0YW5jZSA9IGlzSW5zdGFuY2UgPyAodHlwZSBhcyBUKSA6IHRoaXMuY3JlYXRlSW5zdGFuY2U8VD4ocmVnaXN0cmF0aW9uKTtcblx0XHR0aGlzLmluc3RhbmNlcy5zZXQoY2FjaGVLZXksIGluc3RhbmNlKTtcblx0XHRyZXR1cm4gaW5zdGFuY2U7XG5cdH1cblxuXHRwcml2YXRlIGNyZWF0ZUluc3RhbmNlPFQgZXh0ZW5kcyBvYmplY3Q+KHJlZ2lzdHJhdGlvbjogU2VydmljZVJlZ2lzdHJhdGlvbik6IFQge1xuXHRcdGNvbnN0IHR5cGUgPSByZWdpc3RyYXRpb24udHlwZSBhcyBDb25zdHJ1Y3RhYmxlIHwgRnVuY3Rpb25UeXBlO1xuXHRcdGNvbnN0IGNhbkNvbnN0cnVjdCA9IGlzQ29uc3RydWN0YWJsZSh0eXBlKTtcblx0XHRjb25zdCBkZXBzID0gdGhpcy5yZXNvbHZlRGVwZW5kZW5jaWVzKHR5cGUpO1xuXHRcdGNvbnN0IGluc3QgPSAoY2FuQ29uc3RydWN0ID8gbmV3IHR5cGUoLi4uZGVwcykgOiB0eXBlKCkpIGFzIFQ7XG5cdFx0cmV0dXJuIGluc3Q7XG5cdH1cblxuXHRwcml2YXRlIHJlc29sdmVEZXBlbmRlbmNpZXModHlwZTogQ29uc3RydWN0YWJsZSB8IEZ1bmN0aW9uVHlwZSk6IHVua25vd25bXSB7XG5cdFx0Y29uc3QgcGFyYW1zID0gZ2V0TWV0YTxBcnJheTxDb25zdHJ1Y3RhYmxlPj4oUmVmbGVjdGlvbk1ldGEucGFyYW10eXBlcywgdHlwZSkgPz8gW107XG5cblx0XHRjb25zdCBpbmplY3RUb2tlbnMgPVxuXHRcdFx0Z2V0TWV0YTxJbmplY3Rpb25NZXRhZGF0YT4oQ3J1Y2libGVNZXRhLmluamVjdHRva2VuLCB0eXBlKSA/PyBuZXcgTWFwKCk7XG5cblx0XHQvL1RPRE86IHB1dCBhIHRyeSBjYXRjaCBoZXJlIHNvIHdlIGNhbiB0aHJvdyB0aGUgbmFtZSBvZiB0aGUgc2VydmljZVxuXHRcdGxldCByZXNvbHZlZCA9IFtdO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcGFyYW1zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCB0b2tlbiA9IGluamVjdFRva2Vucy5nZXQoaSk/LmtleSA/PyBwYXJhbXNbaV0ubmFtZTtcblx0XHRcdGNvbnN0IGRlcCA9IGlzQXJyYXlUeXBlKHBhcmFtc1tpXSkgPyB0aGlzLnJlc29sdmVNYW55KHRva2VuKSA6IHRoaXMucmVzb2x2ZSh0b2tlbik7XG5cdFx0XHRyZXNvbHZlZCA9IFsuLi5yZXNvbHZlZCwgZGVwXTtcblx0XHR9XG5cdFx0cmV0dXJuIHJlc29sdmVkO1xuXHR9XG5cblx0cHJpdmF0ZSByZWdpc3RlckxpZmV0aW1lU2NvcGUoKSB7XG5cdFx0dGhpcy5zZXJ2aWNlUmVnaXN0cnkucmVnaXN0ZXJUeXBlKFNjb3Blcy5yZXF1ZXN0LCB7XG5cdFx0XHR0eXBlT3JLZXk6IExpZmV0aW1lU2NvcGVUb2tlbixcblx0XHRcdHR5cGVPckluc3RhbmNlOiB0aGlzLFxuXHRcdH0pO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiZ2V0TWV0YSIsImlzQXJyYXlUeXBlIiwiaXNDb25zdHJ1Y3RhYmxlIiwiUmVmbGVjdGlvbk1ldGEiLCJzY3JpYmUiLCJDcnVjaWJsZU1ldGEiLCJMaWZldGltZVNjb3BlVG9rZW4iLCJTY29wZXMiLCJSZWdpc3RyYXRpb25LZXkiLCJEdXBsaWNhdGVTY29wZUVycm9yIiwiUmVzb2x2ZUVycm9yIiwiU2VydmljZVJlZ2lzdHJ5IiwiQ3J1Y2libGUiLCJrZXkiLCJpbnN0YW5jZXMiLCJNYXAiLCJzZXJ2aWNlUmVnaXN0cnkiLCJyb290U2NvcGUiLCJzY29wZXMiLCJsb2dnZXIiLCJuYW1lIiwiaXNEaXNwb3NlZCIsIm9wdGlvbnMiLCJyZWdpc3RlckxpZmV0aW1lU2NvcGUiLCJyZXNvbHZlTWFueSIsInJlc29sdmVSZXF1ZXN0IiwicmVnaXN0cmF0aW9ucyIsImdldFJlZ2lzdHJhdGlvbkZyb20iLCJzZXJ2aWNlcyIsIkFycmF5Iiwib2YiLCJyZWdpc3RyYXRpb24iLCJzZXJ2aWNlIiwicmVzb2x2ZVJlZ2lzdHJhdGlvbiIsInB1c2giLCJyZXNvbHZlIiwid2FybiIsInRvU3RyaW5nIiwibGVuZ3RoIiwiYmVnaW5TY29wZSIsImhhcyIsInNjb3BlIiwic2V0IiwiU3ltYm9sIiwiZGlzcG9zZSIsImRpc3Bvc2VTeW5jIiwiYXN5bmNEaXNwb3NlIiwiZGlzcG9zZUFzeW5jIiwiaW5zdCIsImdldFJlZ2lzdHJhdGlvbiIsInZhbHVlIiwidHJhbnNpZW50IiwiY3JlYXRlSW5zdGFuY2UiLCJzaW5nbGV0b24iLCJnZXRPckNyZWF0ZUluc3RhbmNlIiwicmVxdWVzdCIsIkVycm9yIiwidHlwZSIsImlzSW5zdGFuY2UiLCJjYWNoZUtleSIsImV4aXN0aW5nSW5zdGFuY2UiLCJnZXQiLCJpbnN0YW5jZSIsImNhbkNvbnN0cnVjdCIsImRlcHMiLCJyZXNvbHZlRGVwZW5kZW5jaWVzIiwicGFyYW1zIiwicGFyYW10eXBlcyIsImluamVjdFRva2VucyIsImluamVjdHRva2VuIiwicmVzb2x2ZWQiLCJpIiwidG9rZW4iLCJkZXAiLCJyZWdpc3RlclR5cGUiLCJ0eXBlT3JLZXkiLCJ0eXBlT3JJbnN0YW5jZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FHQ0EsT0FBTyxFQUNQQyxXQUFXLEVBQ1hDLGVBQWUsRUFDZkMsY0FBYyxRQUNSLDZCQUE2QjtBQUNwQyxTQUFTQyxNQUFNLFFBQVEsbUJBQW1CO0FBQzFDLFNBQVNDLFlBQVksRUFBRUMsa0JBQWtCLEVBQUVDLE1BQU0sUUFBUSxjQUFjO0FBRXZFLFNBQVNDLGVBQWUsUUFBUSxzQ0FBc0M7QUFFdEUsU0FBU0MsbUJBQW1CLEVBQUVDLFlBQVksUUFBUSxxQkFBcUI7QUFFdkUsU0FBU0MsZUFBZSxRQUFRLHdCQUF3QjtBQVF4RCxPQUFPLE1BQU1DO0lBQ0xDLElBQVk7SUFDVEMsWUFBWSxJQUFJQyxNQUF1QjtJQUN6Q0MsZ0JBQWlDO0lBQ2pDQyxVQUFvQjtJQUNwQkMsU0FBUyxJQUFJSCxNQUE2QjtJQUMxQ0ksU0FBU2YsT0FBT2UsTUFBTSxDQUFDUCxTQUFTUSxJQUFJLEVBQUU7SUFDdENDLGFBQWEsTUFBTTtJQUMzQixZQUFtQkMsT0FBeUIsQ0FBRTtRQUM3QyxJQUFJLENBQUNULEdBQUcsR0FBR1MsU0FBU1Q7UUFDcEIsSUFBSSxDQUFDRyxlQUFlLEdBQUcsSUFBSUwsZ0JBQWdCVyxTQUFTTjtRQUNwRCxJQUFJLENBQUNPLHFCQUFxQjtRQUMxQixJQUFJLENBQUNOLFNBQVMsR0FBR0ssU0FBU0wsYUFBYSxJQUFJO0lBQzVDO0lBRU9PLFlBQXVDQyxjQUFpQyxFQUFPO1FBQ3JGLE1BQU1aLE1BQU0sSUFBSUwsZ0JBQWdCaUI7UUFDaEMsTUFBTUMsZ0JBQWdCLElBQUksQ0FBQ0MsbUJBQW1CLENBQUNkLFFBQVEsRUFBRTtRQUV6RCxNQUFNZSxXQUFXQyxNQUFNQyxFQUFFO1FBQ3pCLEtBQUssTUFBTUMsZ0JBQWdCTCxjQUFlO1lBQ3pDLE1BQU1NLFVBQVUsSUFB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
@@ -1,7 +0,0 @@
1
- import type { Constructable } from "@decohere/nexus/reflection";
2
- export declare class RegistrationKey {
3
- constructor(key: string | symbol | Constructable);
4
- value: string;
5
- private getValue;
6
- toString(): string;
7
- }