@zanobijs/core 1.0.0-beta.2 → 1.0.0-beta.3

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/CHANGELOG.md CHANGED
@@ -3,6 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [1.0.0-beta.2](https://github.com/devdroide/ZanobiJS/compare/v1.0.0-beta.1...v1.0.0-beta.2) (2023-11-08)
6
+ # [1.0.0-beta.3](https://github.com/devdroide/ZanobiJS/compare/v1.0.0-beta.2...v1.0.0-beta.3) (2023-11-14)
7
7
 
8
8
  **Note:** Version bump only for package @zanobijs/core
package/README.md CHANGED
@@ -1,11 +1,179 @@
1
- # `core`
1
+ # ZanobiJS
2
2
 
3
- > TODO: description
3
+ It is a mini-framework for Node.js that allows you to build server-side microservices in an efficient and scalable way. It is designed to be small and efficient, but powerful enough for enterprise applications. ZanobiJS is written in TypeScript and JavaScript, giving you the flexibility to choose the language you prefer.
4
+ ## Features
4
5
 
5
- ## Usage
6
+ - Small and efficient.
7
+ - Written in TypeScript/JavaScript.
8
+ - Ideal for building server-side microservices.
9
+ - Optimized scalability and performance.
10
+
11
+
12
+ ## Installation
13
+
14
+ Install my-project with npm
15
+
16
+ ```bash
17
+ npm install @zanobijs/common @zanobijs/core
18
+ ```
19
+
20
+ ## Directories
21
+
22
+ ├── ...
23
+ ├── example # Feature example
24
+ │ ├── example.controller.ts # Controller
25
+ | ├── example.service.ts # Service
26
+ ├── app.module.ts # Main Module
27
+ ├── index.ts # Handler or bootstrap
28
+ └── ...
29
+ ## Usage/Examples
30
+
31
+ ### example.service.ts
32
+
33
+ ```javascript
34
+ import { Inject, Injectable } from "@zanobijs/common";
35
+
36
+ @Injectable()
37
+ export class ServiceExample {
38
+ constructor(
39
+ @Inject("API_CLIENT") private apiClient: string,
40
+ @Inject("API_KEY") private apiKey: string
41
+ ) {}
42
+ getHello() {
43
+ return "Hello ServiceExample";
44
+ }
45
+ getApiClient(){
46
+ return this.apiClient
47
+ }
48
+ getApiKey(){
49
+ return this.apiKey
50
+ }
51
+ }
52
+
53
+ ```
54
+ ### example.controller.ts
55
+
56
+ ```javascript
57
+ import { Controller, Inject } from "@zanobijs/common";
58
+ import { ServiceExample } from "./example.service";
59
+
60
+ @Controller()
61
+ export class ControllerExample {
62
+ constructor(
63
+ private sExample: ServiceExample,
64
+ @Inject("API_URL") private apiUrl: string
65
+ ) {
66
+ this.apiUrl = apiUrl;
67
+ }
68
+
69
+ getApiUrl() {
70
+ return this.apiUrl;
71
+ }
72
+ getHelloService() {
73
+ return this.sExample.getHello();
74
+ }
75
+ getClienteService() {
76
+ return this.sExample.getApiClient();
77
+ }
78
+ getKeyService() {
79
+ return this.sExample.getApiKey();
80
+ }
81
+ }
82
+ ```
83
+ ### AppModule.ts
84
+
85
+ ```javascript
86
+ import { Module } from "@zanobijs/common";
87
+ import { ControllerExample } from "./example/example.controller";
88
+ import { ServiceExample } from "./example/example.service";
89
+
90
+ @Module({
91
+ imports: [],
92
+ controllers: [ControllerExample],
93
+ services: [
94
+ ServiceExample,
95
+ {
96
+ provider: "API_URL",
97
+ useValue: "https://url.com",
98
+ },
99
+ {
100
+ provider: "API_KEY",
101
+ useValue: "myKey12345API",
102
+ },
103
+ {
104
+ provider: "API_CLIENT",
105
+ useValue: "thisClientAPI",
106
+ },
107
+ ],
108
+ exports: [],
109
+ })
110
+ export class AppModule {}
6
111
 
7
112
  ```
8
- const core = require('core');
9
113
 
10
- // TODO: DEMONSTRATE API
114
+ ### Index.ts
115
+
116
+ ```javascript
117
+ import { Factory } from "@zanobijs/core";
118
+ import { AppModule } from "./app.module";
119
+ import { ControllerExample } from "./example/example.controller";
120
+
121
+
122
+ const bootstrap = () => {
123
+ const factory = new Factory(AppModule);
124
+ const app = factory.create();
125
+ const controllerExample = app.get<ControllerExample>(
126
+ "controllerExample"
127
+ );
128
+ console.log(controllerExample.getHelloService());
129
+ console.log(controllerExample.getApiUrl());
130
+ console.log(controllerExample.getClienteService());
131
+ console.log(controllerExample.getKeyService());
132
+ }
133
+ bootstrap();
134
+ // Hello ServiceExample
135
+ // https://url.com
136
+ // thisClientAPI
137
+ // myKey12345API
11
138
  ```
139
+ ## Use Logger
140
+
141
+ - Import logger service of @zanobij/common/utils.
142
+ - Define whether the record is visible. [Default is false]
143
+ - Get the service.
144
+ - Use the different events (success, info, warn, error, debug).
145
+
146
+ ```javascript
147
+ import { Logger } from "@zanobijs/common/utils";
148
+
149
+ process.env.ZANOBIJS_LOGGER = "true";
150
+
151
+ const logger = Logger();
152
+
153
+ logger.success("Lorem ipsum success");
154
+ logger.info("Lorem ipsum info");
155
+ logger.warn("Lorem ipsum warn");
156
+ logger.error("Lorem ipsum error");
157
+ logger.debug("Lorem ipsum debug");
158
+
159
+ // ***** PRINT *****
160
+ // [SUCCESS]: Lorem ipsum success <green print>
161
+ // [INFO]: Lorem ipsum info <blue print>
162
+ // [WARN]: Lorem ipsum warn <yellow print>
163
+ // [ERROR]: Lorem ipsum error <red print>
164
+ // [DEBUG]: Lorem ipsum debug <white print>
165
+
166
+ ```
167
+ ## Authors
168
+
169
+ - [@devdroide](https://www.github.com/devdroide)
170
+
171
+
172
+ ## Credits
173
+
174
+ ZanobiJS is heavily inspired [NestJS](https://nestjs.com/) and [AngularJS](https://angularjs.org/). Credits
175
+
176
+ Finally, it is an effort to provide help with the construction of lambdas initially.
177
+ ## License
178
+
179
+ Private - Read License
@@ -23,11 +23,41 @@ describe("Core - factory", () => {
23
23
  });
24
24
  });
25
25
  describe("Get Entities", () => {
26
+ it("should respond error by resolve entity controller", () => {
27
+ const app = factory.create();
28
+ try {
29
+ app.get("SomeController");
30
+ }
31
+ catch (error) {
32
+ console.log(error);
33
+ (0, chai_1.expect)(error.message).to.be.equal("No 'SomeController' was found registered in @modulo.");
34
+ (0, chai_1.expect)(error.detail).to.have.string("Could not resolve 'someController'.");
35
+ }
36
+ });
37
+ it("should respond error by resolve entity controller with number in name", () => {
38
+ const app = factory.create();
39
+ try {
40
+ app.get("123SomeController");
41
+ }
42
+ catch (error) {
43
+ (0, chai_1.expect)(error.message).to.be.equal("No '123SomeController' was found registered in @modulo.");
44
+ (0, chai_1.expect)(error.detail).to.have.string("Could not resolve '123SomeController'.");
45
+ }
46
+ });
47
+ it("should respond error by resolve entity controller with special character", () => {
48
+ const app = factory.create();
49
+ try {
50
+ app.get("*123SomeController");
51
+ }
52
+ catch (error) {
53
+ (0, chai_1.expect)(error.message).to.be.equal("No '*123SomeController' was found registered in @modulo.");
54
+ (0, chai_1.expect)(error.detail).to.have.string("Could not resolve '*123SomeController'.");
55
+ }
56
+ });
26
57
  it("should respond apiKey to controller the app", () => {
27
58
  const app = factory.create();
28
59
  const controllerWithDepen2 = app.get("controllerWithDepen2");
29
60
  (0, chai_1.expect)(controllerWithDepen2.getApiKey()).to.be.equal("isApiKey_qwerty12345");
30
61
  });
31
62
  });
32
- // it("", () => {});
33
63
  });
@@ -1 +1,2 @@
1
1
  export declare const MODULE_INVALID_ANNOTATION_ERROR: () => string;
2
+ export declare const CONTAINER_RESOLUTION_ERROR: (entity: string) => string;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MODULE_INVALID_ANNOTATION_ERROR = void 0;
3
+ exports.CONTAINER_RESOLUTION_ERROR = exports.MODULE_INVALID_ANNOTATION_ERROR = void 0;
4
4
  const MODULE_INVALID_ANNOTATION_ERROR = () => `The class must have an annotation @Module()`;
5
5
  exports.MODULE_INVALID_ANNOTATION_ERROR = MODULE_INVALID_ANNOTATION_ERROR;
6
+ const CONTAINER_RESOLUTION_ERROR = (entity) => `No '${entity}' was found registered in @modulo.`;
7
+ exports.CONTAINER_RESOLUTION_ERROR = CONTAINER_RESOLUTION_ERROR;
@@ -0,0 +1,13 @@
1
+ import { RuntimeException } from "@zanobijs/common/exceptions/runtime.exception";
2
+ /**
3
+ * Excepción lanzada cuando se intenta obtener una entidad
4
+ * (importar, controlador, servicio o exportar) que no fue
5
+ * declarada en `@Module` de @zanobijs/common
6
+ *
7
+ * @remarks
8
+ * Esta clase extiende la base `RuntimeException`de @zanobijs/core
9
+ * para proporcionar detalles adicionales del error.
10
+ */
11
+ export declare class ContainerResolutionException extends RuntimeException {
12
+ constructor(entity: string, detail?: any);
13
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContainerResolutionException = void 0;
4
+ const runtime_exception_1 = require("@zanobijs/common/exceptions/runtime.exception");
5
+ const constant_message_1 = require("./constant.message");
6
+ /**
7
+ * Excepción lanzada cuando se intenta obtener una entidad
8
+ * (importar, controlador, servicio o exportar) que no fue
9
+ * declarada en `@Module` de @zanobijs/common
10
+ *
11
+ * @remarks
12
+ * Esta clase extiende la base `RuntimeException`de @zanobijs/core
13
+ * para proporcionar detalles adicionales del error.
14
+ */
15
+ class ContainerResolutionException extends runtime_exception_1.RuntimeException {
16
+ constructor(entity, detail = ``) {
17
+ super((0, constant_message_1.CONTAINER_RESOLUTION_ERROR)(entity), detail);
18
+ }
19
+ }
20
+ exports.ContainerResolutionException = ContainerResolutionException;
package/factory.js CHANGED
@@ -4,6 +4,8 @@ exports.Factory = void 0;
4
4
  require("reflect-metadata");
5
5
  const awilix_1 = require("awilix");
6
6
  const module_1 = require("./injector/module");
7
+ const shared_utils_1 = require("@zanobijs/common/utils/shared.utils");
8
+ const resolution_exception_1 = require("./exceptions/resolution.exception");
7
9
  /**
8
10
  * Factory es una clase que facilita la creación y configuración de
9
11
  * contenedores de inyección de dependencias utilizando metadatos y
@@ -58,7 +60,13 @@ class Factory {
58
60
  * @returns {any} - Instancia resuelta.
59
61
  */
60
62
  get(entity) {
61
- return this.container.resolve(entity);
63
+ try {
64
+ const entityUnCapitalize = (0, shared_utils_1.unCapitalize)(entity);
65
+ return this.container.resolve(entityUnCapitalize);
66
+ }
67
+ catch (error) {
68
+ throw new resolution_exception_1.ContainerResolutionException(entity, error.message);
69
+ }
62
70
  }
63
71
  }
64
72
  exports.Factory = Factory;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zanobijs/core",
3
- "version": "1.0.0-beta.2",
3
+ "version": "1.0.0-beta.3",
4
4
  "description": "Zanobi - modern, small, powerful node.js lambda framework (@core)",
5
5
  "keywords": [],
6
6
  "author": "John Edison Cortes Rivera [Devdroide] <johne.aplicativos@gmail.com>",
@@ -30,5 +30,5 @@
30
30
  "peerDependencies": {
31
31
  "@zanobijs/common": "*"
32
32
  },
33
- "gitHead": "ad80511a5c3d7151aa4e722435df24a616bc1504"
33
+ "gitHead": "325565f63aecaf48b12620f23e232f28acbc4eed"
34
34
  }
@@ -1,37 +0,0 @@
1
- import { expect } from "chai";
2
- // import { Module } from "@zanobijs/common";
3
- import { Factory } from "../index";
4
- import { ModuleTestAll } from "./mocks/classModule.mock";
5
- import { ControllerWithDepen2 } from "./mocks/classWithDependeciesInject.mock";
6
-
7
- describe("Core - factory", () => {
8
- const factory = new Factory(ModuleTestAll);
9
- describe("Create Factory App", () => {
10
- it("should respond error to create factory by error @Module", () => {
11
- class ModuleWithoutDecorator {}
12
- try {
13
- new Factory(ModuleWithoutDecorator);
14
- } catch (error) {
15
- expect(error.message).to.be.equal(
16
- "The class must have an annotation @Module()",
17
- );
18
- }
19
- });
20
- it("should respond create factory", () => {
21
- const app = factory.create();
22
- expect(app).to.be.instanceOf(Factory);
23
- });
24
- });
25
- describe("Get Entities", () => {
26
- it("should respond apiKey to controller the app", () => {
27
- const app = factory.create();
28
- const controllerWithDepen2 = app.get<ControllerWithDepen2>(
29
- "controllerWithDepen2",
30
- );
31
- expect(controllerWithDepen2.getApiKey()).to.be.equal(
32
- "isApiKey_qwerty12345",
33
- );
34
- });
35
- });
36
- // it("", () => {});
37
- });
@@ -1,32 +0,0 @@
1
- import { expect } from "chai";
2
- import { Injector } from "../../injector";
3
- import { ModuleTestWithInjector } from "../mocks/classModule.mock";
4
- import { ControllerWithDepen2 } from "../mocks/classWithDependeciesInject.mock";
5
- import { ControllerWithDepenClass } from "../mocks/classWithDependeciesClass.mock";
6
-
7
- describe("Core - Injector - injector", () => {
8
- const injector = new Injector(ModuleTestWithInjector);
9
- beforeEach(() => {
10
- process.env.ZANOBI_DEBUG = "false";
11
- });
12
-
13
- it("Should respond an object with paramters to inject", () => {
14
- const getInjectData = injector.getInjectData(ControllerWithDepenClass);
15
- expect(getInjectData).to.is.empty;
16
- });
17
- it("Should respond an object without paramters to inject", () => {
18
- const getInjectData = injector.getInjectData(ControllerWithDepen2);
19
- expect(getInjectData).to.have.property("apiKey");
20
- });
21
- it("Should respond an object type asClass with paramters to inject", () => {
22
- const getInject = injector.getInjector(ControllerWithDepen2);
23
- expect(getInject).to.have.property("lifetime");
24
- expect(getInject).to.have.property("inject");
25
- expect(getInject).to.have.property("injector");
26
- });
27
- it("Should respond an object type asClass without injector", () => {
28
- const getInject = injector.getInjector(ControllerWithDepenClass);
29
- expect(getInject).to.not.have.property("injector");
30
- });
31
- // it("", () => {});
32
- });
@@ -1,66 +0,0 @@
1
- import "reflect-metadata";
2
- import { expect } from "chai";
3
- import { Module } from "../../injector";
4
- import { ModuleTestWithImports, ModuleTestWithInjector } from "../mocks/classModule.mock";
5
-
6
- describe("Core - Injector - module", () => {
7
- let moduleInstance: Module;
8
-
9
- beforeEach(() => {
10
- moduleInstance = new Module();
11
- });
12
-
13
- describe("setup", () => {
14
- it("should respond that setup no is a module", () => {
15
- try {
16
- const mockModule = {};
17
- moduleInstance.setup(mockModule);
18
- } catch (error) {
19
- expect(error.message).to.equal(
20
- "The class must have an annotation @Module()",
21
- );
22
- }
23
- });
24
- it("should respond no problem with the setup.", () => {
25
- moduleInstance.setup(ModuleTestWithInjector);
26
- expect(moduleInstance.getRegisterClass()).to.is.empty;
27
- });
28
- });
29
-
30
- describe("Module initialize", () => {
31
- it("should respond that call getMetadataModule and register on Module", () => {
32
- let metadataCalled = false;
33
- let registerDependencies = false;
34
- let registerDependenciesToAlias = false;
35
-
36
- moduleInstance["getMetadataModule"] = () => {
37
- metadataCalled = true;
38
- };
39
- moduleInstance["registerDependencies"] = () => {
40
- registerDependencies = true;
41
- };
42
- moduleInstance["registerDependenciesToAlias"] = () => {
43
- registerDependenciesToAlias = true;
44
- };
45
-
46
- moduleInstance.initialize();
47
-
48
- expect(metadataCalled).to.be.true;
49
- expect(registerDependencies).to.be.true;
50
- expect(registerDependenciesToAlias).to.be.true;
51
- });
52
- });
53
- describe("Module get information", () => {
54
- it("Should respond apiKey and sContro2 in registered providers", () => {
55
- moduleInstance.setup(ModuleTestWithInjector);
56
- moduleInstance.initialize();
57
- expect(moduleInstance.getRegisterClass()).to.have.property("sContro2");
58
- expect(moduleInstance.getRegisterClass()).to.have.property("apiKey");
59
- });
60
- it("Should respond imports of module", () => {
61
- moduleInstance.setup(ModuleTestWithImports);
62
- moduleInstance.initialize();
63
- expect(moduleInstance.getImports()).to.not.empty
64
- });
65
- });
66
- });
@@ -1,71 +0,0 @@
1
- import { expect } from "chai";
2
- import { Metadata } from "../metadata";
3
- import { ModuleTestEmpty, ModuleTest } from "./mocks/classModule.mock";
4
- import { ServiceWithDepenParam } from "./mocks/classWithDependeciesInject.mock";
5
- import { ControllerWithDepenClass } from "./mocks/classWithDependeciesClass.mock";
6
-
7
- describe("Core - metadata", () => {
8
- class genericClassForTesting {}
9
- const metadata = Metadata.getInstance();
10
-
11
- describe("Is Type", () => {
12
- it("should respond false to is module", () => {
13
- expect(metadata.isTypeModule(genericClassForTesting)).to.be.false;
14
- });
15
- it("should respond false to is imports", () => {
16
- expect(metadata.isTypeImport(genericClassForTesting)).to.be.false;
17
- });
18
- it("should respond false to is controllers", () => {
19
- expect(metadata.isTypeController(genericClassForTesting)).to.be.false;
20
- });
21
- it("should respond false to is services", () => {
22
- expect(metadata.isTypeService(genericClassForTesting)).to.be.false;
23
- });
24
- it("should respond false to is exports", () => {
25
- expect(metadata.isTypeExports(genericClassForTesting)).to.be.false;
26
- });
27
- it("should respond true to is module", () => {
28
- expect(metadata.isTypeModule(ModuleTestEmpty)).to.be.true;
29
- });
30
- it("should respond determine type of service", () => {
31
- expect(metadata.determineType(ServiceWithDepenParam)).to.be.equal(
32
- "service",
33
- );
34
- });
35
- it("should respond determine type of unknown", () => {
36
- class ServiceTest {}
37
- try {
38
- metadata.determineType(ServiceTest);
39
- } catch (error) {
40
- expect(error.message).to.be.equal("ServiceTest type is unknown");
41
- }
42
- });
43
- });
44
- describe("Get Metadata", () => {
45
- it("Should respond the metadata of the decorator module", () => {
46
- const metadata2 = Metadata.getInstance();
47
- const resultMetadata = metadata2.getMetadataModule(ModuleTest);
48
- expect(resultMetadata).to.have.property("imports");
49
- expect(resultMetadata).to.have.property("controllers");
50
- expect(resultMetadata).to.have.property("services");
51
- expect(resultMetadata).to.have.property("exports");
52
- });
53
- it("should respond the dependency metadata of a controller", () => {
54
- const resultMetadata = metadata.getAllDependencies(
55
- ControllerWithDepenClass,
56
- );
57
- expect(resultMetadata).to.have.property("dClass");
58
- expect(resultMetadata).to.have.property("dParam");
59
- expect(resultMetadata).to.have.property("dInject");
60
- expect(resultMetadata.dInject).to.be.empty;
61
- });
62
- it("should respond the dependency metadata of a service", () => {
63
- const resultMetadata = metadata.getAllDependencies(ServiceWithDepenParam);
64
- expect(resultMetadata).to.have.property("dClass");
65
- expect(resultMetadata).to.have.property("dParam");
66
- expect(resultMetadata).to.have.property("dInject");
67
- expect(resultMetadata.dInject).to.not.be.empty;
68
- });
69
- });
70
- describe("", () => {});
71
- });
@@ -1,55 +0,0 @@
1
- import { Module } from "@zanobijs/common";
2
- import { ControllerWithDepenClass, ServiceToController } from "./classWithDependeciesClass.mock";
3
- import { ControllerWithDepen2, ServiceToController2 } from "./classWithDependeciesInject.mock";
4
-
5
- @Module({
6
- imports: [],
7
- controllers: [],
8
- services: [],
9
- exports: [],
10
- })
11
- export class ModuleTestEmpty {}
12
-
13
- @Module({
14
- imports: [],
15
- controllers: [ControllerWithDepenClass],
16
- services: [ServiceToController],
17
- exports: [],
18
- })
19
- export class ModuleTest {}
20
-
21
- @Module({
22
- imports: [],
23
- controllers: [ControllerWithDepen2],
24
- services: [
25
- ServiceToController2,
26
- {
27
- provider: "API_KEY",
28
- useValue: "isApiKey_qwerty12345"
29
- },
30
- ],
31
- exports: [],
32
- })
33
- export class ModuleTestWithInjector {}
34
-
35
- @Module({
36
- imports: [ModuleTestWithInjector],
37
- controllers: [],
38
- services: [],
39
- exports: [],
40
- })
41
- export class ModuleTestWithImports {}
42
-
43
- @Module({
44
- imports: [ModuleTestWithInjector],
45
- controllers: [ControllerWithDepen2],
46
- services: [
47
- ServiceToController2,
48
- {
49
- provider: "API_SECRET",
50
- useValue: "isApiSecret_cvbdfgert"
51
- },
52
- ],
53
- exports: [],
54
- })
55
- export class ModuleTestAll {}
@@ -1,21 +0,0 @@
1
- import { Controller, Injectable } from "@zanobijs/common";
2
-
3
- @Injectable()
4
- export class ServiceToService {
5
- constructor() {}
6
- }
7
-
8
- @Injectable()
9
- export class Service {
10
- constructor() {}
11
- }
12
-
13
- @Injectable()
14
- export class ServiceToController {
15
- constructor() {}
16
- }
17
-
18
- @Controller()
19
- export class ControllerWithDepenClass {
20
- constructor(private servicio: ServiceToController) {}
21
- }
@@ -1,47 +0,0 @@
1
- import { Controller, Inject, Injectable } from "@zanobijs/common";
2
-
3
- @Injectable()
4
- export class ServiceToController2 {
5
- constructor() {}
6
- getHello(){
7
- return "Hello ServiceToController2";
8
- }
9
- }
10
-
11
-
12
- @Injectable()
13
- export class ServiceWithDepenParam {
14
- constructor(
15
- private servicio: ServiceToController2,
16
- @Inject("USER_NAME") private userName: string,
17
- @Inject("USER_AGE") private userAge: number,
18
- @Inject("USER_LOGIN") private userLogin: boolean,
19
- @Inject("USER_LIKE") private userHobbis: string[],
20
- ) {}
21
- }
22
-
23
-
24
- @Controller()
25
- export class ControllerWithDepen2 {
26
- constructor(
27
- private sContro2: ServiceToController2,
28
- @Inject("API_KEY") private apiKey: string,
29
- ) {
30
- this.apiKey = apiKey;
31
- }
32
-
33
- getApiKey() {
34
- return this.apiKey;
35
- }
36
- getHelloService() {
37
- return this.sContro2.getHello();
38
- }
39
- }
40
-
41
- @Injectable()
42
- export class ServiceWithDepen2 {
43
- constructor(
44
- private serviceWithDepenParam: ServiceWithDepenParam,
45
- @Inject("API_KEY") private api_key: string,
46
- ) {}
47
- }
@@ -1 +0,0 @@
1
- export * from "./classModule.mock"
@@ -1 +0,0 @@
1
- export const MODULE_INVALID_ANNOTATION_ERROR = () => `The class must have an annotation @Module()`;
@@ -1,2 +0,0 @@
1
- export * from "./constant.message"
2
- export * from "./invalid.module.exception"
@@ -1,16 +0,0 @@
1
- import { RuntimeException } from "@zanobijs/common/exceptions/runtime.exception";
2
- import { MODULE_INVALID_ANNOTATION_ERROR } from "./constant.message";
3
-
4
- /**
5
- * Excepción lanzada cuando una clase Modulo no tiene el decorador `@Module`
6
- * de @zanobijs/common
7
- *
8
- * @remarks
9
- * Esta clase extiende la base `RuntimeException`de @zanobijs/common
10
- * para proporcionar detalles adicionales específicos a esquemas de módulos inválidos.
11
- */
12
- export class InvalidModuleAnnotationException extends RuntimeException {
13
- constructor(detail: any = ``) {
14
- super(MODULE_INVALID_ANNOTATION_ERROR(), detail);
15
- }
16
- }
package/factory.ts DELETED
@@ -1,69 +0,0 @@
1
- import "reflect-metadata";
2
- import {AwilixContainer, InjectionMode, createContainer } from "awilix";
3
- import { Module } from "./injector/module";
4
-
5
- /**
6
- * Factory es una clase que facilita la creación y configuración de
7
- * contenedores de inyección de dependencias utilizando metadatos y
8
- * la librería `awilix` para registrar y resolver controladores y
9
- * servicios.
10
- */
11
- export class Factory {
12
- private moduleHandler: Module;
13
- private registeredClasses = {};
14
- private container: AwilixContainer<any>;
15
-
16
- constructor(appModule: any) {
17
- this.moduleHandler = new Module();
18
- this.registerClassesFromModule(appModule);
19
- }
20
-
21
- /**
22
- * Este método registra clases desde el módulo proporcionado
23
- * y recorre sus importaciones de forma recursiva para registrar
24
- * las clases necesarias de importación.
25
- * @private
26
- */
27
- private registerClassesFromModule(module: any): void {
28
- this.registerFromModule(module);
29
- const importedModules = this.moduleHandler.getImports();
30
- if (importedModules && importedModules.length) {
31
- importedModules.forEach((moduleImport) => {
32
- this.registerClassesFromModule(moduleImport);
33
- });
34
- }
35
- }
36
-
37
- /**
38
- * Registra clases desde un módulo específico.
39
- * @param {any} module - Módulo desde el que se registrarán las clases.
40
- * @private
41
- */
42
- private registerFromModule(module: any): void {
43
- this.moduleHandler.setup(module);
44
- this.moduleHandler.initialize();
45
- Object.assign(
46
- this.registeredClasses,
47
- this.moduleHandler.getRegisterClass(),
48
- );
49
- }
50
-
51
- /**
52
- * Crea el contenedor de inyección de dependencias y registra las clases.
53
- * @returns {Factory} - Instancia actual de la fábrica.
54
- */
55
- create(): Factory {
56
- this.container = createContainer({ injectionMode: InjectionMode.CLASSIC });
57
- this.container.register(this.registeredClasses);
58
- return this;
59
- }
60
-
61
- /**
62
- * Resuelve y devuelve una instancia del contenedor basado en la entidad proporcionada.
63
- * @param {string} entity - Nombre de la entidad a resolver.
64
- * @returns {any} - Instancia resuelta.
65
- */
66
- get<T>(entity: string): T {
67
- return this.container.resolve(entity)
68
- }
69
- }
package/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export { Factory } from './factory'
2
- export * from "./injector"
package/injector/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./module"
2
- export * from "./injector";
@@ -1,89 +0,0 @@
1
- import { ILoggerService, IModuleConfig } from "@zanobijs/common";
2
- import { Metadata } from "../metadata";
3
- import { Logger } from "@zanobijs/common/utils";
4
- import { isEmpty } from "@zanobijs/common/utils/shared.utils";
5
- import { asClass } from "awilix";
6
-
7
- export type Constructor<T> = { new (...args: any[]): T }
8
-
9
- /**
10
- * La clase `Injector` es la encargada de manejar la inyección de dependencias
11
- * solo para parametros tipo objecto { provider, useValue }
12
- */
13
- export class Injector {
14
- private module: IModuleConfig;
15
- private listProviders = new Map();
16
- private metadata: Metadata;
17
- private logger: ILoggerService;
18
-
19
- /**
20
- * En Constructor de la clase Injector obtenermos las instancias
21
- * de Metadata y Logger e inciamos el escaneo de proveedores.
22
- * @param {Module} module - El módulo debe tener el decorador `@Module`
23
- * para poderlo procesar.
24
- */
25
- constructor(module: any) {
26
- this.metadata = Metadata.getInstance();
27
- this.logger = Logger();
28
- this.module = module;
29
- this.scanProviders();
30
- }
31
-
32
- /**
33
- * Este método privado recorre el array de los servicios del modulo para
34
- * buscar los proveedores tipo objeto a injectar y los almacena en una
35
- * lista de proveedores.
36
- * @private
37
- */
38
- private scanProviders() {
39
- const { services } = this.metadata.getMetadataModule(this.module);
40
- services.forEach((service) => {
41
- if (typeof service === "object")
42
- this.listProviders.set(service.provider, service.useValue);
43
- });
44
- this.logger.debug("Injector - list provider", this.listProviders);
45
- }
46
-
47
- /**
48
- * Método para obtener un objeto con los parámetros y valores
49
- * que se inyectarán en la clase (target).
50
- *
51
- * @param {Class} target - La clase objetivo.
52
- * @returns {object} - Objeto con datos a inyectar.
53
- */
54
- getInjectData(target: Function): object {
55
- const injectData = {};
56
- const dInject = this.metadata.getInjectionDependencies(target);
57
- if (dInject.size > 0) {
58
- for (const key of dInject.keys()) {
59
- if (this.listProviders.has(key)) {
60
- this.logger.info(`"${key}" is on providers list.`);
61
- const paramName = dInject.get(key);
62
- const useValue = this.listProviders.get(key);
63
- injectData[paramName] = useValue;
64
- }
65
- }
66
- }
67
- return injectData;
68
- }
69
-
70
- /**
71
- * Método para obtener el injector apropiado para la clase objetivo.
72
- *
73
- * @param {any} target - La clase objetivo.
74
- * @returns - El injector configurado.
75
- */
76
- getInjector(target) {
77
- const injectData = this.getInjectData(target);
78
- let injector = asClass(target).scoped();
79
-
80
- if (!isEmpty(injectData)) {
81
- injector = injector.inject(() => injectData);
82
- }
83
-
84
- return {
85
- ...injector,
86
- interface: target,
87
- };
88
- }
89
- }
@@ -1,149 +0,0 @@
1
- import "reflect-metadata";
2
- import { aliasTo } from "awilix";
3
- import { IModuleConfig, ILoggerService } from "@zanobijs/common";
4
- import { unCapitalize, isEmpty, isClass } from "@zanobijs/common/utils/shared.utils";
5
- import { Logger } from "@zanobijs/common/utils";
6
- import { Injector } from "./injector";
7
- import { Metadata } from "../metadata";
8
- import { InvalidModuleAnnotationException } from "../exceptions";
9
-
10
- /**
11
- * Módulo para gestionar la configuración y el registro de controladores, servicios y dependencias.
12
- */
13
- export class Module {
14
- private config: IModuleConfig;
15
- private module: any;
16
- private logger: ILoggerService;
17
- private injector: Injector;
18
- private registerClass = {};
19
- private dependenciesClass: any[] = [];
20
- private metadata: Metadata;
21
- private types: string[] = ["controller", "service"];
22
-
23
- /**
24
- * Constructor del módulo.
25
- */
26
- constructor() {
27
- this.logger = Logger();
28
- this.metadata = Metadata.getInstance();
29
- }
30
-
31
- /**
32
- * Configura el módulo con la información proporcionada.
33
- * @param {any} module - Módulo a configurar.
34
- */
35
- setup(module: any): void {
36
- if (this.metadata.isTypeModule(module)) {
37
- this.module = module;
38
- this.injector = new Injector(module);
39
- } else {
40
- throw new InvalidModuleAnnotationException();
41
- }
42
- }
43
-
44
- /**
45
- * Inicializa el módulo extrayendo metadatos y registrando las entidades.
46
- */
47
- initialize(): void {
48
- this.getMetadataModule();
49
- this.registerDependencies();
50
- this.registerDependenciesToAlias();
51
- }
52
-
53
- /**
54
- * Extrae los metadatos del módulo usando reflect-metadata.
55
- * @private
56
- */
57
- private getMetadataModule(): void {
58
- this.config = this.metadata.getMetadataModule(this.module);
59
- }
60
-
61
- /**
62
- * Registra las entidades de configuración en el módulo.
63
- * @private
64
- */
65
- private registerDependencies(): void {
66
- this.registerEntities("controllers");
67
- this.registerEntities("services");
68
- }
69
-
70
- /**
71
- * Registra entidades de configuración (controladores o servicios) del módulo.
72
- * @param {('controllers' | 'services')} entityType - Tipo de entidad a registrar.
73
- * @private
74
- */
75
- private registerEntities(entityType: "controllers" | "services"): void {
76
- const entities = this.config[entityType];
77
-
78
- if (entities && entities.length > 0) {
79
- const registeredEntities = entities
80
- .filter(
81
- (target) =>
82
- isClass(target) &&
83
- this.types.includes(this.metadata.determineType(target)),
84
- )
85
- .map((target) => {
86
- this.groupDependenciesForAlias(target);
87
- const targetName = unCapitalize(target.name);
88
- return { [targetName]: this.injector.getInjector(target) };
89
- });
90
-
91
- Object.assign(this.registerClass, ...registeredEntities);
92
- }
93
- }
94
-
95
- /**
96
- * Agrupación de dependencias para alias
97
- *
98
- * Este método agrupa las dependencias de la clase utilizando el método
99
- * `getClassDependencies` de la instancia `metadata`. Si la clase
100
- * tiene dependencias y estas no están vacías, las añade a la propiedad
101
- * `dependenciesClass` de la instancia actual para luego validar si existe
102
- * alguna dependencia con un nombre diferente y asiganar un alias.
103
- *
104
- * @private
105
- * @param {Function} target - La clase objetivo de la cual se quieren obtener las dependencias.
106
- */
107
- private groupDependenciesForAlias(target: Function): void {
108
- const dependencies: any[] = this.metadata.getClassDependencies(target);
109
- if (dependencies && !isEmpty(dependencies)) {
110
- this.dependenciesClass = [...this.dependenciesClass, ...dependencies];
111
- }
112
- }
113
-
114
- /**
115
- * recorre las dependencias agrupadas y registra con un alias
116
- * aquellas que tienen nombres diferente a la que esta registrada.
117
- *
118
- * @private
119
- * @example
120
- * contructor(private serviceA: ServiceA) // parametro con nombre igual
121
- * contructor(private sA: ServiceA) // parametro con nombre diferente
122
- */
123
- private registerDependenciesToAlias(): void {
124
- this.dependenciesClass.forEach((dependency) => {
125
- if (!this.registerClass[dependency.nameParameter]) {
126
- this.registerClass[dependency.nameParameter] = aliasTo(
127
- dependency.nameClassContainer,
128
- );
129
- }
130
- });
131
- }
132
-
133
- /**
134
- * Devuelve las importaciones del módulo.
135
- * @returns {any[] | undefined} - Importaciones del módulo.
136
- */
137
- getImports(): any[] | undefined {
138
- return this.config.imports;
139
- }
140
-
141
- /**
142
- * Devuelve las clases registradas en el módulo.
143
- * @returns {any} - Clases registradas.
144
- */
145
- getRegisterClass(): any {
146
- this.logger.debug("Module - register class", this.registerClass);
147
- return this.registerClass;
148
- }
149
- }
@@ -1 +0,0 @@
1
-
package/metadata.ts DELETED
@@ -1,178 +0,0 @@
1
- import { IModuleConfig } from "@zanobijs/common";
2
- import {
3
- DEPENDENCIES_CLASS,
4
- DEPENDENCIES_INJECT,
5
- DEPENDENCIES_PARAMETERS,
6
- IS_CONTROLLER,
7
- IS_EXPORT,
8
- IS_IMPORTS,
9
- IS_MODULE,
10
- IS_SERVICE,
11
- MODULE_CONTROLLERS,
12
- MODULE_EXPORTS,
13
- MODULE_IMPORTS,
14
- MODULE_SERVICES,
15
- } from "@zanobijs/common/utils/constants";
16
-
17
- /**
18
- * La clase `Metadata` proporciona métodos para acceder y manipular
19
- * metadatos relacionados con diversos componentes y módulos.
20
- */
21
- export class Metadata {
22
- private static instance: Metadata;
23
- private readonly metadataMap: { [key: string]: string } = {
24
- [IS_MODULE]: "module",
25
- [IS_IMPORTS]: "import",
26
- [IS_CONTROLLER]: "controller",
27
- [IS_SERVICE]: "service",
28
- [IS_EXPORT]: "export",
29
- };
30
- private constructor() {}
31
-
32
- /**
33
- * Obtiene la instancia única (singleton) de `Metadata`.
34
- *
35
- * @returns La instancia única de `Metadata`.
36
- */
37
- static getInstance(): Metadata {
38
- if (!this.instance) {
39
- this.instance = new Metadata();
40
- }
41
- return this.instance;
42
- }
43
-
44
- /**
45
- * Obtiene los metadatos de un módulo específico.
46
- *
47
- * @param module - El módulo del cual obtener los metadatos.
48
- * @returns Un objeto con los metadatos del módulo {imports, controllers ,services, exports }.
49
- */
50
- getMetadataModule(module: any): IModuleConfig {
51
- return {
52
- imports: Reflect.getMetadata(MODULE_IMPORTS, module),
53
- controllers: Reflect.getMetadata(MODULE_CONTROLLERS, module),
54
- services: Reflect.getMetadata(MODULE_SERVICES, module),
55
- exports: Reflect.getMetadata(MODULE_EXPORTS, module),
56
- };
57
- }
58
-
59
- /**
60
- * Obtiene todas las dependencias asociadas con una clase.
61
- *
62
- * @param target - La función/clase objetivo.
63
- * @returns Un objeto con las dependencias del target.
64
- */
65
- getAllDependencies(target: Function) {
66
- return {
67
- dClass: this.getClassDependencies(target),
68
- dParam: this.getParameterDependencies(target),
69
- dInject: this.getInjectionDependencies(target),
70
- };
71
- }
72
-
73
- /**
74
- * Obtiene las dependencias de clase asociadas con una clase.
75
- *
76
- * @param target - La función/clase objetivo.
77
- * @returns Las dependencias de clase de la clase.
78
- */
79
- getClassDependencies(target: Function) {
80
- return Reflect.getMetadata(DEPENDENCIES_CLASS, target);
81
- }
82
-
83
- /**
84
- * Obtiene las dependencias de parámetro asociadas con una clase.
85
- *
86
- * @param target - La función/clase objetivo.
87
- * @returns Las dependencias de parámetro de la clase.
88
- */
89
- getParameterDependencies(target: Function) {
90
- return Reflect.getMetadata(DEPENDENCIES_PARAMETERS, target);
91
- }
92
-
93
- /**
94
- * Obtiene las dependencias a inyectar asociadas con una clase.
95
- *
96
- * @param target - La función/clase objetivo.
97
- * @returns Un Map con las dependencias a inyectar de la clase.
98
- */
99
- getInjectionDependencies(target: Function): Map<string, string> {
100
- return Reflect.getMetadata(DEPENDENCIES_INJECT, target) || new Map();
101
- }
102
-
103
- /**
104
- * Determina el tipo de una clase basado en sus metadatos.
105
- *
106
- * @param target - La función/clase objetivo.
107
- * @returns Una cadena de texto que indica el tipo del clase segun el mapa de metadata.
108
- * @throws {Error} Lanza un error si el tipo de la clase es desconocido.
109
- */
110
- determineType(target: Function): string {
111
- for (const key in this.metadataMap) {
112
- if (this.hasMetadata(key, target)) {
113
- return this.metadataMap[key];
114
- }
115
- }
116
- throw new Error(`${target.name} type is unknown`);
117
- }
118
-
119
- /**
120
- * Verifica si una clase tiene un metadato específico.
121
- *
122
- * @param metadataKey - La llave del metadato a verificar.
123
- * @param target - La función/clase objetivo.
124
- * @returns Verdadero si el target tiene el metadato, falso en caso contrario.
125
- */
126
- private hasMetadata(metadataKey: string, target: Function): boolean {
127
- return !!Reflect.getMetadata(metadataKey, target);
128
- }
129
- /**
130
- * Verifica si una clase es de tipo "module".
131
- *
132
- * @param target - La función/clase objetivo.
133
- * @returns Verdadero si el target es de tipo "module", falso en caso contrario.
134
- */
135
- isTypeModule(target: Function): boolean {
136
- return this.hasMetadata(IS_MODULE, target);
137
- }
138
-
139
- /**
140
- * Verifica si una clase es de tipo "import".
141
- *
142
- * @param target - La función/clase objetivo.
143
- * @returns Verdadero si el target es de tipo "import", falso en caso contrario.
144
- */
145
- isTypeImport(target: Function): boolean {
146
- return this.hasMetadata(IS_IMPORTS, target);
147
- }
148
-
149
- /**
150
- * Verifica si una clase es de tipo "controller".
151
- *
152
- * @param target - La función/clase objetivo.
153
- * @returns Verdadero si el target es de tipo "controller", falso en caso contrario.
154
- */
155
- isTypeController(target: Function): boolean {
156
- return this.hasMetadata(IS_CONTROLLER, target);
157
- }
158
-
159
- /**
160
- * Verifica si una clase es de tipo "service".
161
- *
162
- * @param target - La función/clase objetivo.
163
- * @returns Verdadero si el target es de tipo "service", falso en caso contrario.
164
- */
165
- isTypeService(target: Function): boolean {
166
- return this.hasMetadata(IS_SERVICE, target);
167
- }
168
-
169
- /**
170
- * Verifica si una clase es de tipo "export".
171
- *
172
- * @param target - La función/clase objetivo.
173
- * @returns Verdadero si el target es de tipo "export", falso en caso contrario.
174
- */
175
- isTypeExports(target: Function): boolean {
176
- return this.hasMetadata(IS_EXPORT, target);
177
- }
178
- }
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/typescript/lib/lib.es2022.full.d.ts","../../node_modules/tslib/tslib.d.ts","../../node_modules/reflect-metadata/index.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/buffer/index.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@nodelib/fs.stat/out/types/index.d.ts","../../node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","../../node_modules/@nodelib/fs.stat/out/settings.d.ts","../../node_modules/@nodelib/fs.stat/out/providers/async.d.ts","../../node_modules/@nodelib/fs.stat/out/index.d.ts","../../node_modules/@nodelib/fs.scandir/out/types/index.d.ts","../../node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","../../node_modules/@nodelib/fs.scandir/out/settings.d.ts","../../node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","../../node_modules/@nodelib/fs.scandir/out/index.d.ts","../../node_modules/@nodelib/fs.walk/out/types/index.d.ts","../../node_modules/@nodelib/fs.walk/out/settings.d.ts","../../node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","../../node_modules/@nodelib/fs.walk/out/readers/async.d.ts","../../node_modules/@nodelib/fs.walk/out/providers/async.d.ts","../../node_modules/@nodelib/fs.walk/out/index.d.ts","../../node_modules/fast-glob/out/types/index.d.ts","../../node_modules/fast-glob/out/settings.d.ts","../../node_modules/fast-glob/out/managers/tasks.d.ts","../../node_modules/fast-glob/out/index.d.ts","../../node_modules/awilix/lib/lifetime.d.ts","../../node_modules/awilix/lib/injection-mode.d.ts","../../node_modules/awilix/lib/resolvers.d.ts","../../node_modules/awilix/lib/list-modules.d.ts","../../node_modules/awilix/lib/load-modules.d.ts","../../node_modules/awilix/lib/container.d.ts","../../node_modules/awilix/lib/errors.d.ts","../../node_modules/awilix/lib/awilix.d.ts","../common/interfaces/decorators/decorators.interface.d.ts","../common/interfaces/decorators/module.config.interface.d.ts","../common/interfaces/services/loggerservice.interface.d.ts","../common/interfaces/index.d.ts","../common/decorators/module.decorator.d.ts","../common/decorators/controller.decorator.d.ts","../common/decorators/service.decorator.d.ts","../common/decorators/inject.decorator.d.ts","../common/decorators/index.d.ts","../common/utils/logger.utils.d.ts","../common/utils/index.d.ts","../common/index.d.ts","../common/utils/shared.utils.d.ts","../common/utils/constants.d.ts","./metadata.ts","./injector/injector.ts","./exceptions/constant.message.ts","../common/exceptions/runtime.exception.d.ts","./exceptions/invalid.module.exception.ts","./exceptions/index.ts","./injector/module.ts","./factory.ts","./injector/index.ts","./index.ts","../../node_modules/@types/chai/index.d.ts","./__test__/mocks/classwithdependeciesclass.mock.ts","./__test__/mocks/classwithdependeciesinject.mock.ts","./__test__/mocks/classmodule.mock.ts","./__test__/factory.spec.ts","./__test__/metadata.spec.ts","./__test__/injector/injector.spec.ts","./__test__/injector/module.spec.ts","./__test__/mocks/index.ts","./interface/index.ts","../../node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"bc496ef4377553e461efcf7cc5a5a57cf59f9962aea06b5e722d54a36bf66ea1","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"1df2366de6650547b3dc1d7c4147355c0f6b4729c964e3839636fa418982d131","7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900",{"version":"8d6d51a5118d000ed3bfe6e1dd1335bebfff3fef23cd2af2f84a24d30f90cc90","affectsGlobalScope":true},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","adda9e3915c6bf15e360356a41d950881a51dbe44f9a6088155836b040820663","b4855526ac5a822d6e0005e4b62ee49c599bf89897e4109135283d660e60291c","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","80ad053918e96087d9da8d092ff9f90520c9fc199c8bfd9340266dd8f38f364e","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","d70119390aece1794bf4988f10ea750d13455f5286977d35027d43dd2e9841cf",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","f5a8b7ec4b798c88679194a8ebc25dcb6f5368e6e5811fcda9fe12b0d445b8db","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"8d6138a264ddc6f94f16e99d4e117a2d6eb31b217891cf091b6437a2f114d561","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"91f8b5abcdff8f9ecb9656b9852878718416fb7700b2c4fad8331e5b97c080bb","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"f49fb15c4aa06b65b0dce4db4584bfd8a9f74644baef1511b404dc95be34af00","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"0ed13c80faeb2b7160bffb4926ff299c468e67a37a645b3ae0917ba0db633c1b","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","d406b797d7b2aff9f8bd6c023acfaa5a5fc415bfbf01975e23d415d3f54857af","7d71b2d1a537fe41760a16441cd95d98fcb59ddf9c714aba2fecba961ab253b6","a9bd8a2bbd03a72054cbdf0cd2a77fabea4e3ae591dd02b8f58bda0c34e50c1c","386cc88a3bdee8bc651ead59f8afc9dc5729fc933549bbd217409eabad05ba3e","e4e63592f7d0bccc802cadd688bb1da30cc6713c41ec5f2cbd4fc367241d9f3c","7e89fa384c41f80fd9b14fcc43a2d55656af850762069c97e9fb0f25534a11a4","b5d297366c443cd7f06372c9b6b9d120bae73f6364b87020e960b1ede51805e8","8735c8b508a86d9424cfd25ba1a5dcf17d4fb7765e3e7e76004a456d8d98c065","9cd11c32accb1622df8e3613b9ca0357cef26f8d9b6eccce9cc4026a41339c75","88e71fce4f667113b853095d365094d4603a83acf97300907ea22d74044301cb","dd7e83cabecafd1cf7ac0fba124cad9c722acd7c43a0d474694aaf19baee1ae5","4b18cb89161d3a3647c6742cbad622ca9ae41907c83c2ae0d0f90da89d88a993","9b7a8c0d82690484d298d52d4af072affb16572616329c141a6a0a515a8fd069","60d7f78174d45c25362bda5ea484343927208a4e1d75fea55a14b139283776c1","3b5fcc33d48a1cb7a4055c77cb9598c4456fa64524eb7316193033d56c5511df","8b43f42968f395151bc4416690ee0691881e39d6b65d2efae7a30a1a387f68a5","0e7edc96f150e5f6d5eb0f827b24bb638a9e7a20655f6f1905ba4395cb5a5873","e5a5bc13398d892e955357e929abf28e4aef084c8bda201d7c1020af00136b6e","13803366d33dc680c59e885698ec31cd4c0f4996c517a5b1646c3626ebeb725a","6950d29104b065d2fc494931d52f38c7831270b6025ed92909799081d469a109","1bc55aba3065d376e1204445a5ab0894f3f1270d6836d93d4ca1dfeaec68840d","d53b0177bc892ddeb4bd00756727ffca73635f0a09159cdb612a34c0640aa0f9","265ba8add891282aea2d0441eab765d50a7732550160a9b858dba5e36827ab1b","181a0d4137f5511cf8f5ceb876305afb6723bd6197d47ff1b3fa184b2ec4d0da","39a8696da04d1345ea417f36e9dffc3ee8125c6a7267f08bfc5e4d36030440b2","854da22c6b95d720f458a605a963dd8c7e7af15fe21fa989bc4cee2e3e03e9a7",{"version":"8e65bfde213f1369c25725aca7a829758ab7e23ee36ca5088ca786a802e8ef6f","signature":"8ca37eecd8934777d03680650d9531c87d09c8c8b5cd627b9efe3871710f3049"},{"version":"6b832bebe3e74fa3dc3d90f5c37682df143c25d598ee67166ed10ace6fc47eb0","signature":"1e9f01c98687586aae5926e053e5a7a18c590692312335a916e370afd119b8bc"},{"version":"8a68f16ec33d1d41df4ea8b8664b5926e97fe252a9b5568780cb4e3eb99ac2c6","signature":"7ed7cb60f1d787f6bf79ee645ecb67a7c7f830bf31a218223d1391095c5f586c"},"d8088205900e847751d50638a30562c435ff9efd5f5b88906530204cfa866288",{"version":"11b5ef500c308c394d8ac9dc88186b9f147794f7878cef82b0219f24200403e9","signature":"ce1163a49afc47d5c5192bd8b5262507f764979f875d5fb847202d56e7bf0448"},{"version":"e5b01e253978592692d697270915124db93c260a88f4c00bdbf733670ed8ec1d","signature":"d6fea1d3d84b444d2f55880648324d335fbdfec8c4e945eb1fe53eb92f9c545c"},{"version":"1222a32909d77ffad6df7b0a7a61ca751edd1f309b7a2963b89d461d937f3b42","signature":"7ce48a13539ee8c6cb3970bebd85d831256aa88126be305255d277594fa5988e"},{"version":"b7490adbb8f50fe0c157c43c2ecd3ba9b363ba3cd6ee5937e015bd6eef33f491","signature":"5e13014a03e9db41f31e799f428e104d46a2638de45d4529e9d02d5a2bf5c5fa"},{"version":"254abbd5ecbbc57be9075f6009b4f9ab6d670fcdd42c3166ed6a830a04adeffe","signature":"98cdb585854a41390d8a2c86c9056fcc05882c1d74dac3cdd553429e34373b1b"},{"version":"e408881e06f928ea12a35985ad7fac144362f7a7be785c5c9bbecfa5ff5e88b6","signature":"8c843c275b99b5e878bb3953b9dca967809d8d0af232910421499b912e0d1a3a"},{"version":"1501609e517a632d22e61a7bf3e8c73cd801260baba54203435387c1fef9d9d6","affectsGlobalScope":true},{"version":"665963c5f50de1aa073534f13a7c0af29fa854f45b74f9a6388e0fbc8144972b","signature":"7c3642ec3b427b971e7644ef0f9538930874c0b97cb06b4f2b4ed30a042c5c43"},{"version":"6a80da0c8590555c441c96668e89c20a06da6c7bfed01704efaa25b83efd5d6b","signature":"3f53b0560ed42277ab5f42ca0c091f2e649548396267ef2e24efbfc534a867b5"},{"version":"8dc0f4a184b01804b3cf7dd57a12938ca0f449ce48ec936865c6dc6af337fe7c","signature":"c8b5b45a6a8354a5b68bad8858305fc033fdacbdeec6076957540b491fc10814"},{"version":"5b51642a5a51c852ea740ca17d83776bf700716c4dc245351ae132ededa56f16","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0d2c77ebfe77d5eb486ea2489b322f1c30731f274f60f3dd83750d39401e476c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"662fee23bf95f622a509d3ba29c424df9d9ccec0bb370aeaa879bcfc873fba39","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e44d6db31b1967d2945979af67d07bd1be07352ebc8fec97ac05ab4668304c6a","signature":"99d24f064aeae9497bd0f6ecdff22b392fa7425bf93b674a9b91c338d494ea8a"},{"version":"c46e1f418c68d3067938c7368378f7c2e7626e1580d6630cfe256b573aed4c75","signature":"50e5cf2ade098ac4869a6d93576e3140f91e851daa180574ec9a488c576afa1e"},{"version":"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"46d317b6ee5a27bed0c9553bbadaedd710ab334606e6a5b1aaba4fe0b31d899d","affectsGlobalScope":true}],"root":[[194,196],[198,203],[205,213]],"options":{"composite":true,"declaration":true,"emitDecoratorMetadata":true,"experimentalDecorators":true,"importHelpers":true,"module":1,"noImplicitAny":false,"noUnusedLocals":false,"outDir":"./","removeComments":false,"rootDir":"./","skipLibCheck":true,"sourceMap":false,"strict":true,"strictNullChecks":false,"strictPropertyInitialization":false,"target":9,"useUnknownInCatchVariables":false},"fileIdsList":[[144,156,157],[144,157,158,159,160],[144,151,157,159],[144,156,158],[115,144,151],[115,144,151,152],[144,152,153,154,155],[144,152,154],[144,153],[132,144,151,161,162,163,166],[144,162,163,165],[114,144,151,161,162,163,164],[144,163],[144,161,162],[144,151,161],[144],[65,144],[101,144],[102,107,135,144],[103,114,115,122,132,143,144],[103,104,114,122,144],[105,144],[106,107,115,123,144],[107,132,140,144],[108,110,114,122,144],[109,144],[110,111,144],[114,144],[112,114,144],[101,114,144],[114,115,116,132,143,144],[114,115,116,129,132,135,144],[99,144,148],[110,114,117,122,132,143,144],[114,115,117,118,122,132,140,143,144],[117,119,132,140,143,144],[65,66,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150],[114,120,144],[121,143,144,148],[110,114,122,132,144],[123,144],[124,144],[101,125,144],[126,142,144,148],[127,144],[128,144],[114,129,130,144],[129,131,144,146],[102,114,132,133,134,135,144],[102,132,134,144],[132,133,144],[135,144],[136,144],[101,132,144],[114,138,139,144],[138,139,144],[107,122,132,140,144],[141,144],[122,142,144],[102,117,128,143,144],[107,144],[132,144,145],[121,144,146],[144,147],[102,107,114,116,125,132,143,144,146,148],[132,144,149],[144,172,173,174,175,177,178],[144,173,174,175,176],[144,177],[144,171,174,179],[144,174,175,177],[144,172,173,177],[144,151,168,169,170],[144,168,169],[144,168],[144,151,167],[76,80,143,144],[76,132,143,144],[71,144],[73,76,140,143,144],[122,140,144],[144,151],[71,144,151],[73,76,122,143,144],[68,69,72,75,102,114,132,143,144],[68,74,144],[72,76,102,135,143,144,151],[102,144,151],[92,102,144,151],[70,71,144,151],[76,144],[70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,93,94,95,96,97,98,144],[76,83,84,144],[74,76,84,85,144],[75,144],[68,71,76,144],[76,80,84,85,144],[80,144],[74,76,79,143,144],[68,73,74,76,80,83,144],[102,132,144],[71,76,92,102,144,148,151],[64,144],[144,184,185,186,187],[64,144,183],[144,183,188,190],[144,180,181,182],[144,189],[144,183],[63,144,203,204,206,207],[63,144,202,204,205,206,207],[63,64,144,202,204,207],[63,144,194,204,205,206,207],[63,144,191,205,206],[63,144,191],[63,144,207],[63,144],[63,144,196,198],[63,144,196,197],[63,64,144,179,200],[63,144,201,202],[63,144,195,200],[63,144,179,190,191,192,194],[63,64,144,179,190,191,192,194,195,199],[63,144,191,193],[64],[207],[196,198],[197],[201,202],[195,200],[179],[191]],"referencedMap":[[158,1],[161,2],[160,3],[159,4],[157,5],[153,6],[156,7],[155,8],[154,9],[152,5],[167,10],[166,11],[165,12],[164,13],[163,14],[162,15],[204,16],[214,16],[65,17],[66,17],[101,18],[102,19],[103,20],[104,21],[105,22],[106,23],[107,24],[108,25],[109,26],[110,27],[111,27],[113,28],[112,29],[114,30],[115,31],[116,32],[100,33],[150,16],[117,34],[118,35],[119,36],[151,37],[120,38],[121,39],[122,40],[123,41],[124,42],[125,43],[126,44],[127,45],[128,46],[129,47],[130,47],[131,48],[132,49],[134,50],[133,51],[135,52],[136,53],[137,54],[138,55],[139,56],[140,57],[141,58],[142,59],[143,60],[144,61],[145,62],[146,63],[147,64],[148,65],[149,66],[179,67],[177,68],[178,69],[173,16],[172,16],[175,70],[176,71],[174,72],[67,16],[171,73],[170,74],[169,75],[168,76],[64,16],[63,16],[60,16],[61,16],[10,16],[11,16],[15,16],[14,16],[2,16],[16,16],[17,16],[18,16],[19,16],[20,16],[21,16],[22,16],[23,16],[3,16],[4,16],[24,16],[28,16],[25,16],[26,16],[27,16],[29,16],[30,16],[31,16],[5,16],[32,16],[33,16],[34,16],[35,16],[6,16],[39,16],[36,16],[37,16],[38,16],[40,16],[7,16],[41,16],[46,16],[47,16],[42,16],[43,16],[44,16],[45,16],[8,16],[51,16],[48,16],[49,16],[50,16],[52,16],[9,16],[53,16],[62,16],[54,16],[55,16],[58,16],[56,16],[57,16],[1,16],[59,16],[13,16],[12,16],[83,77],[90,78],[82,77],[97,79],[74,80],[73,81],[96,82],[91,83],[94,84],[76,85],[75,86],[71,87],[70,88],[93,89],[72,90],[77,91],[78,16],[81,91],[68,16],[99,92],[98,91],[85,93],[86,94],[88,95],[84,96],[87,97],[92,82],[79,98],[80,99],[89,100],[69,101],[95,102],[185,103],[188,104],[187,16],[184,105],[186,103],[197,16],[191,106],[180,16],[181,16],[183,107],[182,16],[193,16],[190,108],[189,109],[192,16],[208,110],[210,111],[211,112],[209,113],[207,114],[205,115],[206,115],[212,116],[196,117],[199,118],[198,119],[201,120],[203,121],[202,122],[195,123],[200,124],[213,16],[194,125]],"exportedModulesMap":[[158,1],[161,2],[160,3],[159,4],[157,5],[153,6],[156,7],[155,8],[154,9],[152,5],[167,10],[166,11],[165,12],[164,13],[163,14],[162,15],[204,16],[214,16],[65,17],[66,17],[101,18],[102,19],[103,20],[104,21],[105,22],[106,23],[107,24],[108,25],[109,26],[110,27],[111,27],[113,28],[112,29],[114,30],[115,31],[116,32],[100,33],[150,16],[117,34],[118,35],[119,36],[151,37],[120,38],[121,39],[122,40],[123,41],[124,42],[125,43],[126,44],[127,45],[128,46],[129,47],[130,47],[131,48],[132,49],[134,50],[133,51],[135,52],[136,53],[137,54],[138,55],[139,56],[140,57],[141,58],[142,59],[143,60],[144,61],[145,62],[146,63],[147,64],[148,65],[149,66],[179,67],[177,68],[178,69],[173,16],[172,16],[175,70],[176,71],[174,72],[67,16],[171,73],[170,74],[169,75],[168,76],[64,16],[63,16],[60,16],[61,16],[10,16],[11,16],[15,16],[14,16],[2,16],[16,16],[17,16],[18,16],[19,16],[20,16],[21,16],[22,16],[23,16],[3,16],[4,16],[24,16],[28,16],[25,16],[26,16],[27,16],[29,16],[30,16],[31,16],[5,16],[32,16],[33,16],[34,16],[35,16],[6,16],[39,16],[36,16],[37,16],[38,16],[40,16],[7,16],[41,16],[46,16],[47,16],[42,16],[43,16],[44,16],[45,16],[8,16],[51,16],[48,16],[49,16],[50,16],[52,16],[9,16],[53,16],[62,16],[54,16],[55,16],[58,16],[56,16],[57,16],[1,16],[59,16],[13,16],[12,16],[83,77],[90,78],[82,77],[97,79],[74,80],[73,81],[96,82],[91,83],[94,84],[76,85],[75,86],[71,87],[70,88],[93,89],[72,90],[77,91],[78,16],[81,91],[68,16],[99,92],[98,91],[85,93],[86,94],[88,95],[84,96],[87,97],[92,82],[79,98],[80,99],[89,100],[69,101],[95,102],[185,103],[188,104],[187,16],[184,105],[186,103],[197,16],[191,106],[180,16],[181,16],[183,107],[182,16],[193,16],[190,108],[189,109],[192,16],[211,126],[212,127],[199,128],[198,129],[201,126],[203,130],[202,131],[195,132],[200,126],[194,133]],"semanticDiagnosticsPerFile":[158,161,160,159,157,153,156,155,154,152,167,166,165,164,163,162,204,214,65,66,101,102,103,104,105,106,107,108,109,110,111,113,112,114,115,116,100,150,117,118,119,151,120,121,122,123,124,125,126,127,128,129,130,131,132,134,133,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,179,177,178,173,172,175,176,174,67,171,170,169,168,64,63,60,61,10,11,15,14,2,16,17,18,19,20,21,22,23,3,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,62,54,55,58,56,57,1,59,13,12,83,90,82,97,74,73,96,91,94,76,75,71,70,93,72,77,78,81,68,99,98,85,86,88,84,87,92,79,80,89,69,95,185,188,187,184,186,197,191,180,181,183,182,193,190,189,192,208,210,211,209,207,205,206,212,196,199,198,201,203,202,195,200,213,194],"latestChangedDtsFile":"./interface/index.d.ts"},"version":"5.2.2"}
package/tsconfig.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "../tsconfig.build.json",
3
- "compilerOptions": {
4
- "types": ["node", "mocha"]
5
- },
6
- "references": [
7
- {
8
- "path": "./tsconfig.build.json"
9
- }
10
- ]
11
- }