ts-ioc-container 16.1.0 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjm/automock/AutoMockedContainer.d.ts +1 -2
- package/cjm/automock/AutoMockedContainer.js +0 -4
- package/cjm/automock/AutoMockedContainer.js.map +1 -1
- package/cjm/core/IInjector.js +1 -1
- package/cjm/core/IInjector.js.map +1 -1
- package/cjm/core/container/Container.d.ts +9 -13
- package/cjm/core/container/Container.js +14 -39
- package/cjm/core/container/Container.js.map +1 -1
- package/cjm/core/container/IContainer.d.ts +0 -2
- package/cjm/core/provider/IProvider.d.ts +2 -3
- package/cjm/core/provider/IProvider.js.map +1 -1
- package/cjm/core/provider/ProviderDecorator.d.ts +2 -2
- package/cjm/core/provider/ProviderDecorator.js.map +1 -1
- package/cjm/index.d.ts +1 -4
- package/cjm/index.js +1 -6
- package/cjm/index.js.map +1 -1
- package/cjm/providers/ProviderBuilder.d.ts +0 -1
- package/cjm/providers/ProviderBuilder.js +0 -5
- package/cjm/providers/ProviderBuilder.js.map +1 -1
- package/cjm/providers/TaggedProvider.d.ts +2 -2
- package/cjm/providers/TaggedProvider.js.map +1 -1
- package/esm/automock/AutoMockedContainer.d.ts +1 -2
- package/esm/automock/AutoMockedContainer.js +0 -4
- package/esm/automock/AutoMockedContainer.js.map +1 -1
- package/esm/core/IInjector.js +1 -1
- package/esm/core/IInjector.js.map +1 -1
- package/esm/core/container/Container.d.ts +9 -13
- package/esm/core/container/Container.js +13 -38
- package/esm/core/container/Container.js.map +1 -1
- package/esm/core/container/IContainer.d.ts +0 -2
- package/esm/core/provider/IProvider.d.ts +2 -3
- package/esm/core/provider/IProvider.js.map +1 -1
- package/esm/core/provider/ProviderDecorator.d.ts +2 -2
- package/esm/core/provider/ProviderDecorator.js.map +1 -1
- package/esm/index.d.ts +1 -4
- package/esm/index.js +0 -2
- package/esm/index.js.map +1 -1
- package/esm/providers/ProviderBuilder.d.ts +0 -1
- package/esm/providers/ProviderBuilder.js +0 -5
- package/esm/providers/ProviderBuilder.js.map +1 -1
- package/esm/providers/TaggedProvider.d.ts +2 -2
- package/esm/providers/TaggedProvider.js.map +1 -1
- package/package.json +2 -2
- package/cjm/core/container/IContainerHook.d.ts +0 -6
- package/cjm/core/container/IContainerHook.js +0 -10
- package/cjm/core/container/IContainerHook.js.map +0 -1
- package/cjm/hooks/ContainerHook.d.ts +0 -10
- package/cjm/hooks/ContainerHook.js +0 -49
- package/cjm/hooks/ContainerHook.js.map +0 -1
- package/cjm/providers/LevelProvider.d.ts +0 -10
- package/cjm/providers/LevelProvider.js +0 -64
- package/cjm/providers/LevelProvider.js.map +0 -1
- package/esm/core/container/IContainerHook.d.ts +0 -6
- package/esm/core/container/IContainerHook.js +0 -7
- package/esm/core/container/IContainerHook.js.map +0 -1
- package/esm/hooks/ContainerHook.d.ts +0 -10
- package/esm/hooks/ContainerHook.js +0 -21
- package/esm/hooks/ContainerHook.js.map +0 -1
- package/esm/providers/LevelProvider.d.ts +0 -10
- package/esm/providers/LevelProvider.js +0 -23
- package/esm/providers/LevelProvider.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IContainer,
|
|
1
|
+
import { IContainer, InjectionToken, IProvider, Tag } from '../index';
|
|
2
2
|
import { IMockRepository } from './IMockRepository';
|
|
3
3
|
export declare class AutoMockedContainer implements IContainer {
|
|
4
4
|
private decorated;
|
|
@@ -9,6 +9,5 @@ export declare class AutoMockedContainer implements IContainer {
|
|
|
9
9
|
dispose(): void;
|
|
10
10
|
getProviders(): IProvider<unknown>[];
|
|
11
11
|
register(provider: IProvider<unknown>): this;
|
|
12
|
-
setHook(hook: IContainerHook): this;
|
|
13
12
|
getInstances(): unknown[];
|
|
14
13
|
}
|
|
@@ -62,10 +62,6 @@ var AutoMockedContainer = /** @class */ (function () {
|
|
|
62
62
|
this.decorated.register(provider);
|
|
63
63
|
return this;
|
|
64
64
|
};
|
|
65
|
-
AutoMockedContainer.prototype.setHook = function (hook) {
|
|
66
|
-
this.decorated.setHook(hook);
|
|
67
|
-
return this;
|
|
68
|
-
};
|
|
69
65
|
AutoMockedContainer.prototype.getInstances = function () {
|
|
70
66
|
return this.decorated.getInstances();
|
|
71
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/automock/AutoMockedContainer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/automock/AutoMockedContainer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAA6F;AAG7F;IACI,6BAAoB,SAAqB,EAAU,cAA+B;QAA9D,cAAS,GAAT,SAAS,CAAY;QAAU,mBAAc,GAAd,cAAc,CAAiB;IAAG,CAAC;IAEtF,yCAAW,GAAX,UAAY,IAAY,EAAE,MAAyB;QAAzB,uBAAA,EAAA,aAAyB;QAC/C,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAClG,CAAC;IAED,qCAAO,GAAP,UAAW,GAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC7C,IAAI;YACA,OAAO,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,OAAO,0BAAC,GAAG,UAAK,IAAI,WAAE;SAC/C;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,YAAY,6BAAqB,EAAE;gBACpC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAI,GAAG,CAAC,CAAC;aAC9C;YAED,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAED,qCAAO,GAAP;QACI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,0CAAY,GAAZ;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,sCAAQ,GAAR,UAAS,QAA4B;QACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,0CAAY,GAAZ;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IACL,0BAAC;AAAD,CAAC,AAnCD,IAmCC;AAnCY,kDAAmB"}
|
package/cjm/core/IInjector.js
CHANGED
|
@@ -42,7 +42,7 @@ var Injector = /** @class */ (function () {
|
|
|
42
42
|
deps[_i - 2] = arguments[_i];
|
|
43
43
|
}
|
|
44
44
|
var instance = this.resolver.apply(this, __spreadArray([container, value], __read(deps), false));
|
|
45
|
-
this.values.push(
|
|
45
|
+
this.values.push(instance);
|
|
46
46
|
return instance;
|
|
47
47
|
};
|
|
48
48
|
return Injector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IInjector.js","sourceRoot":"","sources":["../../lib/core/IInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;IAAA;QACY,WAAM,GAAc,EAAE,CAAC;IAmBnC,CAAC;IAfG,+BAAY,GAAZ;QACI,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,0BAAO,GAAP;QACI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,0BAAO,GAAP,UAAW,SAAqB,EAAE,KAAqB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACnE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,OAAb,IAAI,iBAAU,SAAS,EAAE,KAAK,UAAK,IAAI,UAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"IInjector.js","sourceRoot":"","sources":["../../lib/core/IInjector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;IAAA;QACY,WAAM,GAAc,EAAE,CAAC;IAmBnC,CAAC;IAfG,+BAAY,GAAZ;QACI,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,0BAAO,GAAP;QACI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,0BAAO,GAAP,UAAW,SAAqB,EAAE,KAAqB;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QACnE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,OAAb,IAAI,iBAAU,SAAS,EAAE,KAAK,UAAK,IAAI,UAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAGL,eAAC;AAAD,CAAC,AApBD,IAoBC;AApBqB,4BAAQ"}
|
|
@@ -1,26 +1,22 @@
|
|
|
1
1
|
import { IContainer, InjectionToken } from './IContainer';
|
|
2
2
|
import { IInjector } from '../IInjector';
|
|
3
|
-
import { IProvider,
|
|
4
|
-
|
|
5
|
-
export declare class Container implements IContainer, ScopeOptions {
|
|
3
|
+
import { IProvider, Tagged, Tag } from '../provider/IProvider';
|
|
4
|
+
export declare class Container implements IContainer, Tagged {
|
|
6
5
|
private readonly injector;
|
|
7
6
|
private readonly providers;
|
|
8
|
-
private parent;
|
|
9
|
-
level: number;
|
|
10
7
|
tags: Tag[];
|
|
11
|
-
private hook;
|
|
12
8
|
private isDisposed;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
setHook(hook: IContainerHook): this;
|
|
9
|
+
private parent;
|
|
10
|
+
constructor(injector: IInjector, options?: {
|
|
11
|
+
parent?: IContainer;
|
|
12
|
+
tags?: Tag[];
|
|
13
|
+
});
|
|
19
14
|
register(provider: IProvider<unknown>): this;
|
|
20
15
|
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
21
16
|
createScope(tags?: Tag[], parent?: IContainer): Container;
|
|
22
|
-
getProviders(): IProvider<unknown>[];
|
|
23
17
|
dispose(): void;
|
|
18
|
+
getProviders(): IProvider<unknown>[];
|
|
19
|
+
getInstances(): unknown[];
|
|
24
20
|
map<T extends IContainer>(transform: (l: IContainer) => T): T;
|
|
25
21
|
private validateContainer;
|
|
26
22
|
}
|
|
@@ -39,39 +39,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.Container = void 0;
|
|
40
40
|
var IProvider_1 = require("../provider/IProvider");
|
|
41
41
|
var EmptyContainer_1 = require("./EmptyContainer");
|
|
42
|
-
var IContainerHook_1 = require("./IContainerHook");
|
|
43
42
|
var ProviderRepo_1 = require("../provider/ProviderRepo");
|
|
44
43
|
var ContainerDisposedError_1 = require("./ContainerDisposedError");
|
|
45
44
|
var Container = /** @class */ (function () {
|
|
46
|
-
function Container(injector) {
|
|
45
|
+
function Container(injector, options) {
|
|
46
|
+
if (options === void 0) { options = {}; }
|
|
47
|
+
var _a, _b;
|
|
47
48
|
this.injector = injector;
|
|
48
49
|
this.providers = new ProviderRepo_1.ProviderRepo();
|
|
49
|
-
this.parent = new EmptyContainer_1.EmptyContainer();
|
|
50
|
-
this.level = 0;
|
|
51
|
-
this.tags = [];
|
|
52
|
-
this.hook = IContainerHook_1.emptyHook;
|
|
53
50
|
this.isDisposed = false;
|
|
51
|
+
this.parent = (_a = options.parent) !== null && _a !== void 0 ? _a : new EmptyContainer_1.EmptyContainer();
|
|
52
|
+
this.tags = (_b = options.tags) !== null && _b !== void 0 ? _b : [];
|
|
54
53
|
}
|
|
55
|
-
Container.prototype.getInstances = function () {
|
|
56
|
-
return this.injector.getInstances();
|
|
57
|
-
};
|
|
58
|
-
Container.prototype.setParent = function (parent) {
|
|
59
|
-
this.parent = parent;
|
|
60
|
-
return this;
|
|
61
|
-
};
|
|
62
|
-
Container.prototype.setTags = function (tags) {
|
|
63
|
-
this.tags = tags;
|
|
64
|
-
return this;
|
|
65
|
-
};
|
|
66
|
-
Container.prototype.setLevel = function (level) {
|
|
67
|
-
if (level === void 0) { level = 0; }
|
|
68
|
-
this.level = level;
|
|
69
|
-
return this;
|
|
70
|
-
};
|
|
71
|
-
Container.prototype.setHook = function (hook) {
|
|
72
|
-
this.hook = hook;
|
|
73
|
-
return this;
|
|
74
|
-
};
|
|
75
54
|
Container.prototype.register = function (provider) {
|
|
76
55
|
this.validateContainer();
|
|
77
56
|
this.providers.add(provider);
|
|
@@ -86,22 +65,16 @@ var Container = /** @class */ (function () {
|
|
|
86
65
|
this.validateContainer();
|
|
87
66
|
if ((0, IProvider_1.isProviderKey)(key)) {
|
|
88
67
|
var provider = this.providers.get(key);
|
|
89
|
-
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this))
|
|
90
|
-
? this.hook.resolve(provider.resolve.apply(provider, __spreadArray([this], __read(args), false)))
|
|
91
|
-
: (_a = this.parent).resolve.apply(_a, __spreadArray([key], __read(args), false));
|
|
68
|
+
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this)) ? provider.resolve.apply(provider, __spreadArray([this], __read(args), false)) : (_a = this.parent).resolve.apply(_a, __spreadArray([key], __read(args), false));
|
|
92
69
|
}
|
|
93
|
-
return
|
|
70
|
+
return (_b = this.injector).resolve.apply(_b, __spreadArray([this, key], __read(args), false));
|
|
94
71
|
};
|
|
95
72
|
Container.prototype.createScope = function (tags, parent) {
|
|
96
73
|
var e_1, _a;
|
|
97
74
|
if (tags === void 0) { tags = []; }
|
|
98
75
|
if (parent === void 0) { parent = this; }
|
|
99
76
|
this.validateContainer();
|
|
100
|
-
var scope = new Container(this.injector.clone())
|
|
101
|
-
.setParent(parent)
|
|
102
|
-
.setLevel(this.level + 1)
|
|
103
|
-
.setTags(tags)
|
|
104
|
-
.setHook(this.hook.clone());
|
|
77
|
+
var scope = new Container(this.injector.clone(), { parent: parent, tags: tags });
|
|
105
78
|
try {
|
|
106
79
|
for (var _b = __values(parent.getProviders().filter(function (p) { return p.isValid(scope); })), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
107
80
|
var provider = _c.value;
|
|
@@ -117,16 +90,18 @@ var Container = /** @class */ (function () {
|
|
|
117
90
|
}
|
|
118
91
|
return scope;
|
|
119
92
|
};
|
|
120
|
-
Container.prototype.getProviders = function () {
|
|
121
|
-
return this.providers.merge(this.parent.getProviders());
|
|
122
|
-
};
|
|
123
93
|
Container.prototype.dispose = function () {
|
|
124
94
|
this.isDisposed = true;
|
|
125
95
|
this.parent = new EmptyContainer_1.EmptyContainer();
|
|
126
96
|
this.providers.dispose();
|
|
127
|
-
this.hook.dispose();
|
|
128
97
|
this.injector.dispose();
|
|
129
98
|
};
|
|
99
|
+
Container.prototype.getProviders = function () {
|
|
100
|
+
return this.providers.merge(this.parent.getProviders());
|
|
101
|
+
};
|
|
102
|
+
Container.prototype.getInstances = function () {
|
|
103
|
+
return this.injector.getInstances();
|
|
104
|
+
};
|
|
130
105
|
Container.prototype.map = function (transform) {
|
|
131
106
|
this.parent = transform(this.parent);
|
|
132
107
|
return transform(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/core/container/Container.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/core/container/Container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IProvider, ProviderKey, Tag } from '../provider/IProvider';
|
|
2
2
|
import { constructor, Disposable } from '../utils/types';
|
|
3
|
-
import { IContainerHook } from './IContainerHook';
|
|
4
3
|
import { Traversable } from '../IInjector';
|
|
5
4
|
export declare type InjectionToken<T = any> = constructor<T> | ProviderKey;
|
|
6
5
|
export interface Resolveable {
|
|
@@ -10,5 +9,4 @@ export interface IContainer extends Disposable, Resolveable, Traversable {
|
|
|
10
9
|
createScope(tags?: Tag[], parent?: IContainer): IContainer;
|
|
11
10
|
register(provider: IProvider<unknown>): this;
|
|
12
11
|
getProviders(): IProvider<unknown>[];
|
|
13
|
-
setHook(hook: IContainerHook): this;
|
|
14
12
|
}
|
|
@@ -2,8 +2,7 @@ import { InjectionToken, Resolveable } from '../container/IContainer';
|
|
|
2
2
|
import { Disposable } from '../utils/types';
|
|
3
3
|
export declare type ResolveDependency<T> = (container: Resolveable, ...args: any[]) => T;
|
|
4
4
|
export declare type Tag = string;
|
|
5
|
-
export interface
|
|
6
|
-
level: number;
|
|
5
|
+
export interface Tagged {
|
|
7
6
|
tags: Tag[];
|
|
8
7
|
}
|
|
9
8
|
export interface IProvider<T> extends Disposable {
|
|
@@ -11,7 +10,7 @@ export interface IProvider<T> extends Disposable {
|
|
|
11
10
|
getKeyOrFail(): ProviderKey;
|
|
12
11
|
clone(): IProvider<T>;
|
|
13
12
|
resolve(container: Resolveable, ...args: any[]): T;
|
|
14
|
-
isValid(filters:
|
|
13
|
+
isValid(filters: Tagged): boolean;
|
|
15
14
|
}
|
|
16
15
|
export declare type ProviderKey = string | symbol;
|
|
17
16
|
export declare function isProviderKey<T>(token: InjectionToken<T>): token is ProviderKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../lib/core/provider/IProvider.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../lib/core/provider/IProvider.ts"],"names":[],"mappings":";;;AAuBA,SAAgB,aAAa,CAAI,KAAwB;IACrD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACvD,CAAC;AAFD,sCAEC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Resolveable } from '../container/IContainer';
|
|
2
|
-
import { IProvider, ProviderKey,
|
|
2
|
+
import { IProvider, ProviderKey, Tagged } from './IProvider';
|
|
3
3
|
export declare abstract class ProviderDecorator<T> implements IProvider<T> {
|
|
4
4
|
private decorated;
|
|
5
5
|
protected constructor(decorated: IProvider<T>);
|
|
6
6
|
clone(): IProvider<T>;
|
|
7
7
|
dispose(): void;
|
|
8
|
-
isValid(filters:
|
|
8
|
+
isValid(filters: Tagged): boolean;
|
|
9
9
|
resolve(container: Resolveable, ...args: any[]): T;
|
|
10
10
|
getKeyOrFail(): ProviderKey;
|
|
11
11
|
setKey(key: ProviderKey): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderDecorator.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderDecorator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;IACI,2BAA8B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAEzD,iCAAK,GAAL;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,mCAAO,GAAP,UAAQ,
|
|
1
|
+
{"version":3,"file":"ProviderDecorator.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderDecorator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;IACI,2BAA8B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAEzD,iCAAK,GAAL;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,mCAAO,GAAP;QACI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,mCAAO,GAAP,UAAQ,OAAe;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,mCAAO,GAAP,UAAQ,SAAsB;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,OAAO,CAAA,KAAA,IAAI,CAAC,SAAS,CAAA,CAAC,OAAO,0BAAC,SAAS,UAAK,IAAI,WAAE;IACtD,CAAC;IAED,wCAAY,GAAZ;QACI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,kCAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,wBAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BqB,8CAAiB"}
|
package/cjm/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { IContainer, InjectionToken } from './core/container/IContainer';
|
|
2
|
-
export { ContainerHook } from './hooks/ContainerHook';
|
|
3
2
|
export { ProviderReducer } from './core/provider/IProviderReflector';
|
|
4
3
|
export { IContainer, Resolveable } from './core/container/IContainer';
|
|
5
4
|
export { constructor } from './core/utils/types';
|
|
6
5
|
export { Container } from './core/container/Container';
|
|
7
|
-
export {
|
|
6
|
+
export { Tagged, ResolveDependency, Tag, IProvider } from './core/provider/IProvider';
|
|
8
7
|
export { IInjector } from './core/IInjector';
|
|
9
8
|
export { SimpleInjector } from './injectors/SimpleInjector';
|
|
10
9
|
export { IMethodReflector } from './hooks/IMethodReflector';
|
|
@@ -15,10 +14,8 @@ export { MethodNotImplementedError } from './core/utils/MethodNotImplementedErro
|
|
|
15
14
|
export { ContainerDisposedError } from './core/container/ContainerDisposedError';
|
|
16
15
|
export { Provider } from './core/provider/Provider';
|
|
17
16
|
export { ArgsProvider, ArgsFn, createArgsFnDecorator } from './providers/ArgsProvider';
|
|
18
|
-
export { IContainerHook } from './core/container/IContainerHook';
|
|
19
17
|
export { TaggedProvider } from './providers/TaggedProvider';
|
|
20
18
|
export { ProxyInjector } from './injectors/ProxyInjector';
|
|
21
|
-
export { LevelProvider, perLevel } from './providers/LevelProvider';
|
|
22
19
|
export { IMockRepository } from './automock/IMockRepository';
|
|
23
20
|
export { AutoMockedContainer } from './automock/AutoMockedContainer';
|
|
24
21
|
export { SingletonProvider } from './providers/SingletonProvider';
|
package/cjm/index.js
CHANGED
|
@@ -25,9 +25,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
25
25
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.by = exports.Injector = exports.forKey = exports.asSingleton = exports.perTags = exports.isProviderKey = exports.ProviderReflector = exports.ProviderBuilder = exports.SingletonProvider = exports.AutoMockedContainer = exports.
|
|
29
|
-
var ContainerHook_1 = require("./hooks/ContainerHook");
|
|
30
|
-
Object.defineProperty(exports, "ContainerHook", { enumerable: true, get: function () { return ContainerHook_1.ContainerHook; } });
|
|
28
|
+
exports.by = exports.Injector = exports.forKey = exports.asSingleton = exports.perTags = exports.isProviderKey = exports.ProviderReflector = exports.ProviderBuilder = exports.SingletonProvider = exports.AutoMockedContainer = exports.ProxyInjector = exports.TaggedProvider = exports.createArgsFnDecorator = exports.ArgsProvider = exports.Provider = exports.ContainerDisposedError = exports.MethodNotImplementedError = exports.ProviderNotFoundError = exports.MethodReflector = exports.SimpleInjector = exports.Container = void 0;
|
|
31
29
|
var Container_1 = require("./core/container/Container");
|
|
32
30
|
Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return Container_1.Container; } });
|
|
33
31
|
var SimpleInjector_1 = require("./injectors/SimpleInjector");
|
|
@@ -49,9 +47,6 @@ var TaggedProvider_1 = require("./providers/TaggedProvider");
|
|
|
49
47
|
Object.defineProperty(exports, "TaggedProvider", { enumerable: true, get: function () { return TaggedProvider_1.TaggedProvider; } });
|
|
50
48
|
var ProxyInjector_1 = require("./injectors/ProxyInjector");
|
|
51
49
|
Object.defineProperty(exports, "ProxyInjector", { enumerable: true, get: function () { return ProxyInjector_1.ProxyInjector; } });
|
|
52
|
-
var LevelProvider_1 = require("./providers/LevelProvider");
|
|
53
|
-
Object.defineProperty(exports, "LevelProvider", { enumerable: true, get: function () { return LevelProvider_1.LevelProvider; } });
|
|
54
|
-
Object.defineProperty(exports, "perLevel", { enumerable: true, get: function () { return LevelProvider_1.perLevel; } });
|
|
55
50
|
var AutoMockedContainer_1 = require("./automock/AutoMockedContainer");
|
|
56
51
|
Object.defineProperty(exports, "AutoMockedContainer", { enumerable: true, get: function () { return AutoMockedContainer_1.AutoMockedContainer; } });
|
|
57
52
|
var SingletonProvider_1 = require("./providers/SingletonProvider");
|
package/cjm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wDAAuD;AAA9C,sGAAA,SAAS,OAAA;AAGlB,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AAExB,+EAA8E;AAArE,8HAAA,qBAAqB,OAAA;AAC9B,oFAAmF;AAA1E,sIAAA,yBAAyB,OAAA;AAClC,kFAAiF;AAAxE,gIAAA,sBAAsB,OAAA;AAC/B,qDAAoD;AAA3C,oGAAA,QAAQ,OAAA;AACjB,yDAAuF;AAA9E,4GAAA,YAAY,OAAA;AAAU,qHAAA,qBAAqB,OAAA;AACpD,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AACvB,2DAA0D;AAAjD,8GAAA,aAAa,OAAA;AAEtB,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAC5B,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AAExB,uEAAsE;AAA7D,sHAAA,iBAAiB,OAAA;AAG1B,uDAA0D;AAAjD,0GAAA,aAAa,OAAA;AACtB,6DAAqD;AAA5C,yGAAA,OAAO,OAAA;AAChB,mEAA4D;AAAnD,gHAAA,WAAW,OAAA;AACpB,qDAAkD;AAAzC,kGAAA,MAAM,OAAA;AACf,8CAA2D;AAAnC,qGAAA,QAAQ,OAAA;AAEzB,IAAM,EAAE,GACX,UAAI,GAAsB;IAAE,cAAkB;SAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;QAAlB,6BAAkB;;IAC9C,OAAA,UAAC,CAAa;QACV,OAAA,CAAC,CAAC,OAAO,OAAT,CAAC,iBAAY,GAAG,UAAK,IAAI;IAAzB,CAA0B;AAD9B,CAC8B,CAAC;AAHtB,QAAA,EAAE,MAGoB"}
|
|
@@ -12,7 +12,6 @@ export declare class ProviderBuilder<T> {
|
|
|
12
12
|
withArgsFn(argsFn: ArgsFn): this;
|
|
13
13
|
map(reducer: ProviderReducer<T>): ProviderBuilder<T>;
|
|
14
14
|
forTags(...tags: Tag[]): this;
|
|
15
|
-
forLevel(level: number): this;
|
|
16
15
|
asSingleton(): this;
|
|
17
16
|
forKey(key: ProviderKey): this;
|
|
18
17
|
build(): IProvider<T>;
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ProviderBuilder = void 0;
|
|
4
4
|
var SingletonProvider_1 = require("./SingletonProvider");
|
|
5
5
|
var TaggedProvider_1 = require("./TaggedProvider");
|
|
6
|
-
var LevelProvider_1 = require("./LevelProvider");
|
|
7
6
|
var ArgsProvider_1 = require("./ArgsProvider");
|
|
8
7
|
var Provider_1 = require("../core/provider/Provider");
|
|
9
8
|
var ProviderReflector_1 = require("../core/provider/ProviderReflector");
|
|
@@ -43,10 +42,6 @@ var ProviderBuilder = /** @class */ (function () {
|
|
|
43
42
|
this.provider = new TaggedProvider_1.TaggedProvider(this.provider, tags);
|
|
44
43
|
return this;
|
|
45
44
|
};
|
|
46
|
-
ProviderBuilder.prototype.forLevel = function (level) {
|
|
47
|
-
this.provider = new LevelProvider_1.LevelProvider(this.provider, [level, level]);
|
|
48
|
-
return this;
|
|
49
|
-
};
|
|
50
45
|
ProviderBuilder.prototype.asSingleton = function () {
|
|
51
46
|
this.provider = new SingletonProvider_1.SingletonProvider(this.provider);
|
|
52
47
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":";;;AACA,yDAAwD;AACxD,mDAAkD;
|
|
1
|
+
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":";;;AACA,yDAAwD;AACxD,mDAAkD;AAElD,+CAAsD;AACtD,sDAAqD;AAErD,wEAAuE;AAEvE;IAaI,yBAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAZvC,yBAAS,GAAhB,UAAoB,KAAqB;QACrC,OAAO,IAAI,eAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,qCAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5G,CAAC;IAEM,yBAAS,GAAhB,UAAoB,KAAQ;QACxB,OAAO,IAAI,eAAe,CAAC,mBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,sBAAM,GAAb,UAAiB,EAAyB;QACtC,OAAO,IAAI,eAAe,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAID,kCAAQ,GAAR;QAAS,mBAAmB;aAAnB,UAAmB,EAAnB,qBAAmB,EAAnB,IAAmB;YAAnB,8BAAmB;;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oCAAU,GAAV,UAAW,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6BAAG,GAAH,UAAI,OAA2B;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,iCAAO,GAAP;QAAQ,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qCAAW,GAAX;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gCAAM,GAAN,UAAO,GAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,+BAAK,GAAL;QACI,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACL,sBAAC;AAAD,CAAC,AA/CD,IA+CC;AA/CY,0CAAe"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IProvider,
|
|
1
|
+
import { IProvider, Tagged, Tag } from '../core/provider/IProvider';
|
|
2
2
|
import { ProviderDecorator } from '../core/provider/ProviderDecorator';
|
|
3
3
|
export declare class TaggedProvider<T> extends ProviderDecorator<T> {
|
|
4
4
|
private provider;
|
|
5
5
|
private readonly tags;
|
|
6
6
|
constructor(provider: IProvider<T>, tags: Tag[]);
|
|
7
7
|
clone(): TaggedProvider<T>;
|
|
8
|
-
isValid(filters:
|
|
8
|
+
isValid(filters: Tagged): boolean;
|
|
9
9
|
}
|
|
10
10
|
export declare const perTags: (...tags: Tag[]) => ClassDecorator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/providers/TaggedProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;AAEvE,wEAAuE;AAEvE;IAAuC,kCAAoB;IACvD,wBAAoB,QAAsB,EAAmB,IAAW;QAAxE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,UAAI,GAAJ,IAAI,CAAO;;IAExE,CAAC;IAED,8BAAK,GAAL;QACI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,gCAAO,GAAP,UAAQ,
|
|
1
|
+
{"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/providers/TaggedProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;AAEvE,wEAAuE;AAEvE;IAAuC,kCAAoB;IACvD,wBAAoB,QAAsB,EAAmB,IAAW;QAAxE,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,UAAI,GAAJ,IAAI,CAAO;;IAExE,CAAC;IAED,8BAAK,GAAL;QACI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,gCAAO,GAAP,UAAQ,OAAe;QACX,IAAA,IAAI,GAAK,OAAO,KAAZ,CAAa;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAhB,CAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,CAAC;IACL,qBAAC;AAAD,CAAC,AAbD,CAAuC,qCAAiB,GAavD;AAbY,wCAAc;AAepB,IAAM,OAAO,GAChB;IAAC,cAAc;SAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;QAAd,yBAAc;;IACf,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,qCAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO;;YAAK,OAAA,CAAA,KAAA,EAAE,CAAC,OAAO,CAAC,CAAA,CAAC,OAAO,oCAAI,IAAI;QAA3B,CAA4B,CAAC,CAAC;IACzF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,OAAO,WAMd"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IContainer,
|
|
1
|
+
import { IContainer, InjectionToken, IProvider, Tag } from '../index';
|
|
2
2
|
import { IMockRepository } from './IMockRepository';
|
|
3
3
|
export declare class AutoMockedContainer implements IContainer {
|
|
4
4
|
private decorated;
|
|
@@ -9,6 +9,5 @@ export declare class AutoMockedContainer implements IContainer {
|
|
|
9
9
|
dispose(): void;
|
|
10
10
|
getProviders(): IProvider<unknown>[];
|
|
11
11
|
register(provider: IProvider<unknown>): this;
|
|
12
|
-
setHook(hook: IContainerHook): this;
|
|
13
12
|
getInstances(): unknown[];
|
|
14
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/automock/AutoMockedContainer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AutoMockedContainer.js","sourceRoot":"","sources":["../../lib/automock/AutoMockedContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,qBAAqB,EAAO,MAAM,UAAU,CAAC;AAG7F,MAAM,OAAO,mBAAmB;IAC5B,YAAoB,SAAqB,EAAU,cAA+B;QAA9D,cAAS,GAAT,SAAS,CAAY;QAAU,mBAAc,GAAd,cAAc,CAAiB;IAAG,CAAC;IAEtF,WAAW,CAAC,IAAY,EAAE,SAAqB,IAAI;QAC/C,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAClG,CAAC;IAED,OAAO,CAAI,GAAsB,EAAE,GAAG,IAAW;QAC7C,IAAI;YACA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;SAC/C;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,YAAY,qBAAqB,EAAE;gBACpC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAI,GAAG,CAAC,CAAC;aAC9C;YAED,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,QAAQ,CAAC,QAA4B;QACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;CACJ"}
|
package/esm/core/IInjector.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IInjector.js","sourceRoot":"","sources":["../../lib/core/IInjector.ts"],"names":[],"mappings":"AAeA,MAAM,OAAgB,QAAQ;IAA9B;QACY,WAAM,GAAc,EAAE,CAAC;IAmBnC,CAAC;IAfG,YAAY;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,CAAI,SAAqB,EAAE,KAAqB,EAAE,GAAG,IAAW;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"IInjector.js","sourceRoot":"","sources":["../../lib/core/IInjector.ts"],"names":[],"mappings":"AAeA,MAAM,OAAgB,QAAQ;IAA9B;QACY,WAAM,GAAc,EAAE,CAAC;IAmBnC,CAAC;IAfG,YAAY;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,CAAI,SAAqB,EAAE,KAAqB,EAAE,GAAG,IAAW;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC;IACpB,CAAC;CAGJ"}
|
|
@@ -1,26 +1,22 @@
|
|
|
1
1
|
import { IContainer, InjectionToken } from './IContainer';
|
|
2
2
|
import { IInjector } from '../IInjector';
|
|
3
|
-
import { IProvider,
|
|
4
|
-
|
|
5
|
-
export declare class Container implements IContainer, ScopeOptions {
|
|
3
|
+
import { IProvider, Tagged, Tag } from '../provider/IProvider';
|
|
4
|
+
export declare class Container implements IContainer, Tagged {
|
|
6
5
|
private readonly injector;
|
|
7
6
|
private readonly providers;
|
|
8
|
-
private parent;
|
|
9
|
-
level: number;
|
|
10
7
|
tags: Tag[];
|
|
11
|
-
private hook;
|
|
12
8
|
private isDisposed;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
setHook(hook: IContainerHook): this;
|
|
9
|
+
private parent;
|
|
10
|
+
constructor(injector: IInjector, options?: {
|
|
11
|
+
parent?: IContainer;
|
|
12
|
+
tags?: Tag[];
|
|
13
|
+
});
|
|
19
14
|
register(provider: IProvider<unknown>): this;
|
|
20
15
|
resolve<T>(key: InjectionToken<T>, ...args: any[]): T;
|
|
21
16
|
createScope(tags?: Tag[], parent?: IContainer): Container;
|
|
22
|
-
getProviders(): IProvider<unknown>[];
|
|
23
17
|
dispose(): void;
|
|
18
|
+
getProviders(): IProvider<unknown>[];
|
|
19
|
+
getInstances(): unknown[];
|
|
24
20
|
map<T extends IContainer>(transform: (l: IContainer) => T): T;
|
|
25
21
|
private validateContainer;
|
|
26
22
|
}
|
|
@@ -1,36 +1,15 @@
|
|
|
1
1
|
import { isProviderKey } from '../provider/IProvider';
|
|
2
2
|
import { EmptyContainer } from './EmptyContainer';
|
|
3
|
-
import { emptyHook } from './IContainerHook';
|
|
4
3
|
import { ProviderRepo } from '../provider/ProviderRepo';
|
|
5
4
|
import { ContainerDisposedError } from './ContainerDisposedError';
|
|
6
5
|
export class Container {
|
|
7
|
-
constructor(injector) {
|
|
6
|
+
constructor(injector, options = {}) {
|
|
7
|
+
var _a, _b;
|
|
8
8
|
this.injector = injector;
|
|
9
9
|
this.providers = new ProviderRepo();
|
|
10
|
-
this.parent = new EmptyContainer();
|
|
11
|
-
this.level = 0;
|
|
12
|
-
this.tags = [];
|
|
13
|
-
this.hook = emptyHook;
|
|
14
10
|
this.isDisposed = false;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return this.injector.getInstances();
|
|
18
|
-
}
|
|
19
|
-
setParent(parent) {
|
|
20
|
-
this.parent = parent;
|
|
21
|
-
return this;
|
|
22
|
-
}
|
|
23
|
-
setTags(tags) {
|
|
24
|
-
this.tags = tags;
|
|
25
|
-
return this;
|
|
26
|
-
}
|
|
27
|
-
setLevel(level = 0) {
|
|
28
|
-
this.level = level;
|
|
29
|
-
return this;
|
|
30
|
-
}
|
|
31
|
-
setHook(hook) {
|
|
32
|
-
this.hook = hook;
|
|
33
|
-
return this;
|
|
11
|
+
this.parent = (_a = options.parent) !== null && _a !== void 0 ? _a : new EmptyContainer();
|
|
12
|
+
this.tags = (_b = options.tags) !== null && _b !== void 0 ? _b : [];
|
|
34
13
|
}
|
|
35
14
|
register(provider) {
|
|
36
15
|
this.validateContainer();
|
|
@@ -41,34 +20,30 @@ export class Container {
|
|
|
41
20
|
this.validateContainer();
|
|
42
21
|
if (isProviderKey(key)) {
|
|
43
22
|
const provider = this.providers.get(key);
|
|
44
|
-
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this))
|
|
45
|
-
? this.hook.resolve(provider.resolve(this, ...args))
|
|
46
|
-
: this.parent.resolve(key, ...args);
|
|
23
|
+
return (provider === null || provider === void 0 ? void 0 : provider.isValid(this)) ? provider.resolve(this, ...args) : this.parent.resolve(key, ...args);
|
|
47
24
|
}
|
|
48
|
-
return this.
|
|
25
|
+
return this.injector.resolve(this, key, ...args);
|
|
49
26
|
}
|
|
50
27
|
createScope(tags = [], parent = this) {
|
|
51
28
|
this.validateContainer();
|
|
52
|
-
const scope = new Container(this.injector.clone())
|
|
53
|
-
.setParent(parent)
|
|
54
|
-
.setLevel(this.level + 1)
|
|
55
|
-
.setTags(tags)
|
|
56
|
-
.setHook(this.hook.clone());
|
|
29
|
+
const scope = new Container(this.injector.clone(), { parent, tags });
|
|
57
30
|
for (const provider of parent.getProviders().filter((p) => p.isValid(scope))) {
|
|
58
31
|
scope.register(provider.clone());
|
|
59
32
|
}
|
|
60
33
|
return scope;
|
|
61
34
|
}
|
|
62
|
-
getProviders() {
|
|
63
|
-
return this.providers.merge(this.parent.getProviders());
|
|
64
|
-
}
|
|
65
35
|
dispose() {
|
|
66
36
|
this.isDisposed = true;
|
|
67
37
|
this.parent = new EmptyContainer();
|
|
68
38
|
this.providers.dispose();
|
|
69
|
-
this.hook.dispose();
|
|
70
39
|
this.injector.dispose();
|
|
71
40
|
}
|
|
41
|
+
getProviders() {
|
|
42
|
+
return this.providers.merge(this.parent.getProviders());
|
|
43
|
+
}
|
|
44
|
+
getInstances() {
|
|
45
|
+
return this.injector.getInstances();
|
|
46
|
+
}
|
|
72
47
|
map(transform) {
|
|
73
48
|
this.parent = transform(this.parent);
|
|
74
49
|
return transform(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/core/container/Container.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,aAAa,
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../../lib/core/container/Container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IProvider, ProviderKey, Tag } from '../provider/IProvider';
|
|
2
2
|
import { constructor, Disposable } from '../utils/types';
|
|
3
|
-
import { IContainerHook } from './IContainerHook';
|
|
4
3
|
import { Traversable } from '../IInjector';
|
|
5
4
|
export declare type InjectionToken<T = any> = constructor<T> | ProviderKey;
|
|
6
5
|
export interface Resolveable {
|
|
@@ -10,5 +9,4 @@ export interface IContainer extends Disposable, Resolveable, Traversable {
|
|
|
10
9
|
createScope(tags?: Tag[], parent?: IContainer): IContainer;
|
|
11
10
|
register(provider: IProvider<unknown>): this;
|
|
12
11
|
getProviders(): IProvider<unknown>[];
|
|
13
|
-
setHook(hook: IContainerHook): this;
|
|
14
12
|
}
|
|
@@ -2,8 +2,7 @@ import { InjectionToken, Resolveable } from '../container/IContainer';
|
|
|
2
2
|
import { Disposable } from '../utils/types';
|
|
3
3
|
export declare type ResolveDependency<T> = (container: Resolveable, ...args: any[]) => T;
|
|
4
4
|
export declare type Tag = string;
|
|
5
|
-
export interface
|
|
6
|
-
level: number;
|
|
5
|
+
export interface Tagged {
|
|
7
6
|
tags: Tag[];
|
|
8
7
|
}
|
|
9
8
|
export interface IProvider<T> extends Disposable {
|
|
@@ -11,7 +10,7 @@ export interface IProvider<T> extends Disposable {
|
|
|
11
10
|
getKeyOrFail(): ProviderKey;
|
|
12
11
|
clone(): IProvider<T>;
|
|
13
12
|
resolve(container: Resolveable, ...args: any[]): T;
|
|
14
|
-
isValid(filters:
|
|
13
|
+
isValid(filters: Tagged): boolean;
|
|
15
14
|
}
|
|
16
15
|
export declare type ProviderKey = string | symbol;
|
|
17
16
|
export declare function isProviderKey<T>(token: InjectionToken<T>): token is ProviderKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../lib/core/provider/IProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../lib/core/provider/IProvider.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,aAAa,CAAI,KAAwB;IACrD,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Resolveable } from '../container/IContainer';
|
|
2
|
-
import { IProvider, ProviderKey,
|
|
2
|
+
import { IProvider, ProviderKey, Tagged } from './IProvider';
|
|
3
3
|
export declare abstract class ProviderDecorator<T> implements IProvider<T> {
|
|
4
4
|
private decorated;
|
|
5
5
|
protected constructor(decorated: IProvider<T>);
|
|
6
6
|
clone(): IProvider<T>;
|
|
7
7
|
dispose(): void;
|
|
8
|
-
isValid(filters:
|
|
8
|
+
isValid(filters: Tagged): boolean;
|
|
9
9
|
resolve(container: Resolveable, ...args: any[]): T;
|
|
10
10
|
getKeyOrFail(): ProviderKey;
|
|
11
11
|
setKey(key: ProviderKey): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderDecorator.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderDecorator.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,iBAAiB;IACnC,YAA8B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAEzD,KAAK;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"ProviderDecorator.js","sourceRoot":"","sources":["../../../lib/core/provider/ProviderDecorator.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,iBAAiB;IACnC,YAA8B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAEzD,KAAK;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,SAAsB,EAAE,GAAG,IAAW;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,GAAgB;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
package/esm/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { IContainer, InjectionToken } from './core/container/IContainer';
|
|
2
|
-
export { ContainerHook } from './hooks/ContainerHook';
|
|
3
2
|
export { ProviderReducer } from './core/provider/IProviderReflector';
|
|
4
3
|
export { IContainer, Resolveable } from './core/container/IContainer';
|
|
5
4
|
export { constructor } from './core/utils/types';
|
|
6
5
|
export { Container } from './core/container/Container';
|
|
7
|
-
export {
|
|
6
|
+
export { Tagged, ResolveDependency, Tag, IProvider } from './core/provider/IProvider';
|
|
8
7
|
export { IInjector } from './core/IInjector';
|
|
9
8
|
export { SimpleInjector } from './injectors/SimpleInjector';
|
|
10
9
|
export { IMethodReflector } from './hooks/IMethodReflector';
|
|
@@ -15,10 +14,8 @@ export { MethodNotImplementedError } from './core/utils/MethodNotImplementedErro
|
|
|
15
14
|
export { ContainerDisposedError } from './core/container/ContainerDisposedError';
|
|
16
15
|
export { Provider } from './core/provider/Provider';
|
|
17
16
|
export { ArgsProvider, ArgsFn, createArgsFnDecorator } from './providers/ArgsProvider';
|
|
18
|
-
export { IContainerHook } from './core/container/IContainerHook';
|
|
19
17
|
export { TaggedProvider } from './providers/TaggedProvider';
|
|
20
18
|
export { ProxyInjector } from './injectors/ProxyInjector';
|
|
21
|
-
export { LevelProvider, perLevel } from './providers/LevelProvider';
|
|
22
19
|
export { IMockRepository } from './automock/IMockRepository';
|
|
23
20
|
export { AutoMockedContainer } from './automock/AutoMockedContainer';
|
|
24
21
|
export { SingletonProvider } from './providers/SingletonProvider';
|
package/esm/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { ContainerHook } from './hooks/ContainerHook';
|
|
2
1
|
export { Container } from './core/container/Container';
|
|
3
2
|
export { SimpleInjector } from './injectors/SimpleInjector';
|
|
4
3
|
export { MethodReflector } from './hooks/MethodReflector';
|
|
@@ -9,7 +8,6 @@ export { Provider } from './core/provider/Provider';
|
|
|
9
8
|
export { ArgsProvider, createArgsFnDecorator } from './providers/ArgsProvider';
|
|
10
9
|
export { TaggedProvider } from './providers/TaggedProvider';
|
|
11
10
|
export { ProxyInjector } from './injectors/ProxyInjector';
|
|
12
|
-
export { LevelProvider, perLevel } from './providers/LevelProvider';
|
|
13
11
|
export { AutoMockedContainer } from './automock/AutoMockedContainer';
|
|
14
12
|
export { SingletonProvider } from './providers/SingletonProvider';
|
|
15
13
|
export { ProviderBuilder } from './providers/ProviderBuilder';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAU,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAiB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,CAAC,MAAM,EAAE,GACX,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,EAAE,CACd,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC"}
|
|
@@ -12,7 +12,6 @@ export declare class ProviderBuilder<T> {
|
|
|
12
12
|
withArgsFn(argsFn: ArgsFn): this;
|
|
13
13
|
map(reducer: ProviderReducer<T>): ProviderBuilder<T>;
|
|
14
14
|
forTags(...tags: Tag[]): this;
|
|
15
|
-
forLevel(level: number): this;
|
|
16
15
|
asSingleton(): this;
|
|
17
16
|
forKey(key: ProviderKey): this;
|
|
18
17
|
build(): IProvider<T>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SingletonProvider } from './SingletonProvider';
|
|
2
2
|
import { TaggedProvider } from './TaggedProvider';
|
|
3
|
-
import { LevelProvider } from './LevelProvider';
|
|
4
3
|
import { ArgsProvider } from './ArgsProvider';
|
|
5
4
|
import { Provider } from '../core/provider/Provider';
|
|
6
5
|
import { providerReflector } from '../core/provider/ProviderReflector';
|
|
@@ -32,10 +31,6 @@ export class ProviderBuilder {
|
|
|
32
31
|
this.provider = new TaggedProvider(this.provider, tags);
|
|
33
32
|
return this;
|
|
34
33
|
}
|
|
35
|
-
forLevel(level) {
|
|
36
|
-
this.provider = new LevelProvider(this.provider, [level, level]);
|
|
37
|
-
return this;
|
|
38
|
-
}
|
|
39
34
|
asSingleton() {
|
|
40
35
|
this.provider = new SingletonProvider(this.provider);
|
|
41
36
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProviderBuilder.js","sourceRoot":"","sources":["../../lib/providers/ProviderBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAU,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,eAAe;IAaxB,YAAoB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAZ9C,MAAM,CAAC,SAAS,CAAI,KAAqB;QACrC,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAQ;QACxB,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,MAAM,CAAI,EAAyB;QACtC,OAAO,IAAI,eAAe,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IAID,QAAQ,CAAC,GAAG,SAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,OAA2B;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,IAAW;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW;QACP,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,GAAgB;QACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IProvider,
|
|
1
|
+
import { IProvider, Tagged, Tag } from '../core/provider/IProvider';
|
|
2
2
|
import { ProviderDecorator } from '../core/provider/ProviderDecorator';
|
|
3
3
|
export declare class TaggedProvider<T> extends ProviderDecorator<T> {
|
|
4
4
|
private provider;
|
|
5
5
|
private readonly tags;
|
|
6
6
|
constructor(provider: IProvider<T>, tags: Tag[]);
|
|
7
7
|
clone(): TaggedProvider<T>;
|
|
8
|
-
isValid(filters:
|
|
8
|
+
isValid(filters: Tagged): boolean;
|
|
9
9
|
}
|
|
10
10
|
export declare const perTags: (...tags: Tag[]) => ClassDecorator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/providers/TaggedProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,cAAkB,SAAQ,iBAAoB;IACvD,YAAoB,QAAsB,EAAmB,IAAW;QACpE,KAAK,CAAC,QAAQ,CAAC,CAAC;QADA,aAAQ,GAAR,QAAQ,CAAc;QAAmB,SAAI,GAAJ,IAAI,CAAO;IAExE,CAAC;IAED,KAAK;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"TaggedProvider.js","sourceRoot":"","sources":["../../lib/providers/TaggedProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,cAAkB,SAAQ,iBAAoB;IACvD,YAAoB,QAAsB,EAAmB,IAAW;QACpE,KAAK,CAAC,QAAQ,CAAC,CAAC;QADA,aAAQ,GAAR,QAAQ,CAAc;QAAmB,SAAI,GAAJ,IAAI,CAAO;IAExE,CAAC;IAED,KAAK;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,OAAO,GAChB,CAAC,GAAG,IAAW,EAAkB,EAAE,CACnC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-ioc-container",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "18.0.0",
|
|
4
4
|
"description": "Typescript IoC container",
|
|
5
5
|
"author": "ibabkin <igba14@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/IgorBabkin/ts-ioc-container/tree/master/packages/ts-ioc-container",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"ts-jest": "27.0.5",
|
|
47
47
|
"typescript": "4.4.3"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "eed2f13b5095f9790a3a284e63be3ee9514f0c39"
|
|
50
50
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.emptyHook = void 0;
|
|
4
|
-
var others_1 = require("../utils/others");
|
|
5
|
-
exports.emptyHook = {
|
|
6
|
-
resolve: others_1.id,
|
|
7
|
-
dispose: others_1.noop,
|
|
8
|
-
clone: function () { return exports.emptyHook; },
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=IContainerHook.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IContainerHook.js","sourceRoot":"","sources":["../../../lib/core/container/IContainerHook.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAS9B,QAAA,SAAS,GAAmB;IACrC,OAAO,EAAE,WAAE;IACX,OAAO,EAAE,aAAI;IACb,KAAK,EAAE,cAAM,OAAA,iBAAS,EAAT,CAAS;CACzB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { IContainerHook } from '../core/container/IContainerHook';
|
|
2
|
-
export declare type OnDisposeHook = (instance: unknown) => void;
|
|
3
|
-
export declare class ContainerHook implements IContainerHook {
|
|
4
|
-
private onDisposeFn;
|
|
5
|
-
private instances;
|
|
6
|
-
constructor(onDisposeFn?: OnDisposeHook);
|
|
7
|
-
resolve<T>(instance: T): T;
|
|
8
|
-
dispose(): void;
|
|
9
|
-
clone(): IContainerHook;
|
|
10
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
-
if (m) return m.call(o);
|
|
5
|
-
if (o && typeof o.length === "number") return {
|
|
6
|
-
next: function () {
|
|
7
|
-
if (o && i >= o.length) o = void 0;
|
|
8
|
-
return { value: o && o[i++], done: !o };
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
-
};
|
|
13
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.ContainerHook = void 0;
|
|
15
|
-
var others_1 = require("../core/utils/others");
|
|
16
|
-
var ContainerHook = /** @class */ (function () {
|
|
17
|
-
function ContainerHook(onDisposeFn) {
|
|
18
|
-
if (onDisposeFn === void 0) { onDisposeFn = others_1.noop; }
|
|
19
|
-
this.onDisposeFn = onDisposeFn;
|
|
20
|
-
this.instances = new Set();
|
|
21
|
-
}
|
|
22
|
-
ContainerHook.prototype.resolve = function (instance) {
|
|
23
|
-
this.instances.add(instance);
|
|
24
|
-
return instance;
|
|
25
|
-
};
|
|
26
|
-
ContainerHook.prototype.dispose = function () {
|
|
27
|
-
var e_1, _a;
|
|
28
|
-
try {
|
|
29
|
-
for (var _b = __values(this.instances), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
30
|
-
var it_1 = _c.value;
|
|
31
|
-
this.onDisposeFn(it_1);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
35
|
-
finally {
|
|
36
|
-
try {
|
|
37
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
38
|
-
}
|
|
39
|
-
finally { if (e_1) throw e_1.error; }
|
|
40
|
-
}
|
|
41
|
-
this.instances.clear();
|
|
42
|
-
};
|
|
43
|
-
ContainerHook.prototype.clone = function () {
|
|
44
|
-
return new ContainerHook(this.onDisposeFn);
|
|
45
|
-
};
|
|
46
|
-
return ContainerHook;
|
|
47
|
-
}());
|
|
48
|
-
exports.ContainerHook = ContainerHook;
|
|
49
|
-
//# sourceMappingURL=ContainerHook.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerHook.js","sourceRoot":"","sources":["../../lib/hooks/ContainerHook.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,+CAA4C;AAI5C;IAGI,uBAAoB,WAAiC;QAAjC,4BAAA,EAAA,cAA6B,aAAI;QAAjC,gBAAW,GAAX,WAAW,CAAsB;QAF7C,cAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAE0B,CAAC;IAEzD,+BAAO,GAAP,UAAW,QAAW;QAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,+BAAO,GAAP;;;YACI,KAAiB,IAAA,KAAA,SAAA,IAAI,CAAC,SAAS,CAAA,gBAAA,4BAAE;gBAA5B,IAAM,IAAE,WAAA;gBACT,IAAI,CAAC,WAAW,CAAC,IAAE,CAAC,CAAC;aACxB;;;;;;;;;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,6BAAK,GAAL;QACI,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IACL,oBAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,sCAAa"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { IProvider, ScopeOptions } from '../core/provider/IProvider';
|
|
2
|
-
import { ProviderDecorator } from '../core/provider/ProviderDecorator';
|
|
3
|
-
export declare class LevelProvider<T> extends ProviderDecorator<T> {
|
|
4
|
-
private provider;
|
|
5
|
-
private readonly range;
|
|
6
|
-
constructor(provider: IProvider<T>, range: [number, number]);
|
|
7
|
-
clone(): LevelProvider<T>;
|
|
8
|
-
isValid(filters: ScopeOptions): boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare const perLevel: (value: number) => ClassDecorator;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
18
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
19
|
-
if (!m) return o;
|
|
20
|
-
var i = m.call(o), r, ar = [], e;
|
|
21
|
-
try {
|
|
22
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
23
|
-
}
|
|
24
|
-
catch (error) { e = { error: error }; }
|
|
25
|
-
finally {
|
|
26
|
-
try {
|
|
27
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
28
|
-
}
|
|
29
|
-
finally { if (e) throw e.error; }
|
|
30
|
-
}
|
|
31
|
-
return ar;
|
|
32
|
-
};
|
|
33
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.perLevel = exports.LevelProvider = void 0;
|
|
35
|
-
var ProviderDecorator_1 = require("../core/provider/ProviderDecorator");
|
|
36
|
-
var ProviderReflector_1 = require("../core/provider/ProviderReflector");
|
|
37
|
-
var LevelProvider = /** @class */ (function (_super) {
|
|
38
|
-
__extends(LevelProvider, _super);
|
|
39
|
-
function LevelProvider(provider, range) {
|
|
40
|
-
var _this = _super.call(this, provider) || this;
|
|
41
|
-
_this.provider = provider;
|
|
42
|
-
_this.range = range;
|
|
43
|
-
return _this;
|
|
44
|
-
}
|
|
45
|
-
LevelProvider.prototype.clone = function () {
|
|
46
|
-
return new LevelProvider(this.provider.clone(), this.range);
|
|
47
|
-
};
|
|
48
|
-
LevelProvider.prototype.isValid = function (filters) {
|
|
49
|
-
var level = filters.level;
|
|
50
|
-
var _a = __read(this.range, 2), from = _a[0], to = _a[1];
|
|
51
|
-
return from <= level && level <= to && this.provider.isValid(filters);
|
|
52
|
-
};
|
|
53
|
-
return LevelProvider;
|
|
54
|
-
}(ProviderDecorator_1.ProviderDecorator));
|
|
55
|
-
exports.LevelProvider = LevelProvider;
|
|
56
|
-
var perLevel = function (value) {
|
|
57
|
-
return function (target) {
|
|
58
|
-
var targetClass = target;
|
|
59
|
-
var fn = ProviderReflector_1.providerReflector.findReducerOrCreate(targetClass);
|
|
60
|
-
ProviderReflector_1.providerReflector.addReducer(targetClass, function (builder) { return fn(builder).forLevel(value); });
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
exports.perLevel = perLevel;
|
|
64
|
-
//# sourceMappingURL=LevelProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LevelProvider.js","sourceRoot":"","sources":["../../lib/providers/LevelProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,wEAAuE;AAEvE,wEAAuE;AAEvE;IAAsC,iCAAoB;IACtD,uBAAoB,QAAsB,EAAmB,KAAuB;QAApF,YACI,kBAAM,QAAQ,CAAC,SAClB;QAFmB,cAAQ,GAAR,QAAQ,CAAc;QAAmB,WAAK,GAAL,KAAK,CAAkB;;IAEpF,CAAC;IAED,6BAAK,GAAL;QACI,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,+BAAO,GAAP,UAAQ,OAAqB;QACjB,IAAA,KAAK,GAAK,OAAO,MAAZ,CAAa;QACpB,IAAA,KAAA,OAAa,IAAI,CAAC,KAAK,IAAA,EAAtB,IAAI,QAAA,EAAE,EAAE,QAAc,CAAC;QAC9B,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IACL,oBAAC;AAAD,CAAC,AAdD,CAAsC,qCAAiB,GActD;AAdY,sCAAa;AAgBnB,IAAM,QAAQ,GACjB,UAAC,KAAa;IACd,OAAA,UAAC,MAAM;QACH,IAAM,WAAW,GAAG,MAAqC,CAAC;QAC1D,IAAM,EAAE,GAAG,qCAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,qCAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,UAAC,OAAO,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACxF,CAAC;AAJD,CAIC,CAAC;AANO,QAAA,QAAQ,YAMf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IContainerHook.js","sourceRoot":"","sources":["../../../lib/core/container/IContainerHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAS3C,MAAM,CAAC,MAAM,SAAS,GAAmB;IACrC,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;CACzB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { IContainerHook } from '../core/container/IContainerHook';
|
|
2
|
-
export declare type OnDisposeHook = (instance: unknown) => void;
|
|
3
|
-
export declare class ContainerHook implements IContainerHook {
|
|
4
|
-
private onDisposeFn;
|
|
5
|
-
private instances;
|
|
6
|
-
constructor(onDisposeFn?: OnDisposeHook);
|
|
7
|
-
resolve<T>(instance: T): T;
|
|
8
|
-
dispose(): void;
|
|
9
|
-
clone(): IContainerHook;
|
|
10
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { noop } from '../core/utils/others';
|
|
2
|
-
export class ContainerHook {
|
|
3
|
-
constructor(onDisposeFn = noop) {
|
|
4
|
-
this.onDisposeFn = onDisposeFn;
|
|
5
|
-
this.instances = new Set();
|
|
6
|
-
}
|
|
7
|
-
resolve(instance) {
|
|
8
|
-
this.instances.add(instance);
|
|
9
|
-
return instance;
|
|
10
|
-
}
|
|
11
|
-
dispose() {
|
|
12
|
-
for (const it of this.instances) {
|
|
13
|
-
this.onDisposeFn(it);
|
|
14
|
-
}
|
|
15
|
-
this.instances.clear();
|
|
16
|
-
}
|
|
17
|
-
clone() {
|
|
18
|
-
return new ContainerHook(this.onDisposeFn);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=ContainerHook.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContainerHook.js","sourceRoot":"","sources":["../../lib/hooks/ContainerHook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI5C,MAAM,OAAO,aAAa;IAGtB,YAAoB,cAA6B,IAAI;QAAjC,gBAAW,GAAX,WAAW,CAAsB;QAF7C,cAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAE0B,CAAC;IAEzD,OAAO,CAAI,QAAW;QAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO;QACH,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;SACxB;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;CACJ"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { IProvider, ScopeOptions } from '../core/provider/IProvider';
|
|
2
|
-
import { ProviderDecorator } from '../core/provider/ProviderDecorator';
|
|
3
|
-
export declare class LevelProvider<T> extends ProviderDecorator<T> {
|
|
4
|
-
private provider;
|
|
5
|
-
private readonly range;
|
|
6
|
-
constructor(provider: IProvider<T>, range: [number, number]);
|
|
7
|
-
clone(): LevelProvider<T>;
|
|
8
|
-
isValid(filters: ScopeOptions): boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare const perLevel: (value: number) => ClassDecorator;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ProviderDecorator } from '../core/provider/ProviderDecorator';
|
|
2
|
-
import { providerReflector } from '../core/provider/ProviderReflector';
|
|
3
|
-
export class LevelProvider extends ProviderDecorator {
|
|
4
|
-
constructor(provider, range) {
|
|
5
|
-
super(provider);
|
|
6
|
-
this.provider = provider;
|
|
7
|
-
this.range = range;
|
|
8
|
-
}
|
|
9
|
-
clone() {
|
|
10
|
-
return new LevelProvider(this.provider.clone(), this.range);
|
|
11
|
-
}
|
|
12
|
-
isValid(filters) {
|
|
13
|
-
const { level } = filters;
|
|
14
|
-
const [from, to] = this.range;
|
|
15
|
-
return from <= level && level <= to && this.provider.isValid(filters);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export const perLevel = (value) => (target) => {
|
|
19
|
-
const targetClass = target;
|
|
20
|
-
const fn = providerReflector.findReducerOrCreate(targetClass);
|
|
21
|
-
providerReflector.addReducer(targetClass, (builder) => fn(builder).forLevel(value));
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=LevelProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LevelProvider.js","sourceRoot":"","sources":["../../lib/providers/LevelProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,aAAiB,SAAQ,iBAAoB;IACtD,YAAoB,QAAsB,EAAmB,KAAuB;QAChF,KAAK,CAAC,QAAQ,CAAC,CAAC;QADA,aAAQ,GAAR,QAAQ,CAAc;QAAmB,UAAK,GAAL,KAAK,CAAkB;IAEpF,CAAC;IAED,KAAK;QACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,OAAqB;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC1B,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,OAAO,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,CAAC,KAAa,EAAkB,EAAE,CAClC,CAAC,MAAM,EAAE,EAAE;IACP,MAAM,WAAW,GAAG,MAAqC,CAAC;IAC1D,MAAM,EAAE,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC"}
|