@alterior/runtime 3.13.3 → 3.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/app-options.d.ts +65 -65
  2. package/dist/app-options.js +26 -26
  3. package/dist/app-options.js.map +1 -1
  4. package/dist/application.d.ts +52 -52
  5. package/dist/application.js +172 -171
  6. package/dist/application.js.map +1 -1
  7. package/dist/args.d.ts +7 -7
  8. package/dist/args.js +13 -13
  9. package/dist/expose.d.ts +12 -12
  10. package/dist/expose.d.ts.map +1 -1
  11. package/dist/expose.js +36 -36
  12. package/dist/expose.js.map +1 -1
  13. package/dist/index.d.ts +9 -9
  14. package/dist/index.js +12 -12
  15. package/dist/lifecycle.d.ts +24 -24
  16. package/dist/lifecycle.js +2 -2
  17. package/dist/module.test.d.ts +1 -1
  18. package/dist/modules.d.ts +120 -120
  19. package/dist/modules.js +282 -282
  20. package/dist/modules.js.map +1 -1
  21. package/dist/reflector.d.ts +123 -123
  22. package/dist/reflector.js +306 -306
  23. package/dist/reflector.js.map +1 -1
  24. package/dist/roles.service.d.ts +79 -79
  25. package/dist/roles.service.js +124 -124
  26. package/dist/roles.service.js.map +1 -1
  27. package/dist/service.d.ts +24 -24
  28. package/dist/service.js +19 -19
  29. package/dist/service.js.map +1 -1
  30. package/dist/test.d.ts +1 -1
  31. package/dist.esm/app-options.d.ts +65 -65
  32. package/dist.esm/app-options.js +23 -23
  33. package/dist.esm/app-options.js.map +1 -1
  34. package/dist.esm/application.d.ts +52 -52
  35. package/dist.esm/application.js +167 -166
  36. package/dist.esm/application.js.map +1 -1
  37. package/dist.esm/args.d.ts +7 -7
  38. package/dist.esm/args.js +9 -9
  39. package/dist.esm/expose.d.ts +12 -12
  40. package/dist.esm/expose.d.ts.map +1 -1
  41. package/dist.esm/expose.js +31 -31
  42. package/dist.esm/expose.js.map +1 -1
  43. package/dist.esm/index.d.ts +9 -9
  44. package/dist.esm/index.js +9 -9
  45. package/dist.esm/lifecycle.d.ts +24 -24
  46. package/dist.esm/lifecycle.js +1 -1
  47. package/dist.esm/module.test.d.ts +1 -1
  48. package/dist.esm/modules.d.ts +120 -120
  49. package/dist.esm/modules.js +276 -276
  50. package/dist.esm/modules.js.map +1 -1
  51. package/dist.esm/reflector.d.ts +123 -123
  52. package/dist.esm/reflector.js +296 -296
  53. package/dist.esm/reflector.js.map +1 -1
  54. package/dist.esm/roles.service.d.ts +79 -79
  55. package/dist.esm/roles.service.js +121 -121
  56. package/dist.esm/roles.service.js.map +1 -1
  57. package/dist.esm/service.d.ts +24 -24
  58. package/dist.esm/service.js +15 -15
  59. package/dist.esm/service.js.map +1 -1
  60. package/dist.esm/test.d.ts +1 -1
  61. package/package.json +9 -9
  62. package/src/application.ts +1 -1
  63. package/tsconfig.esm.tsbuildinfo +1 -0
  64. package/tsconfig.json +0 -2
  65. package/tsconfig.tsbuildinfo +1 -5546
package/dist/modules.js CHANGED
@@ -1,283 +1,283 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Runtime = exports.ModuleInstance = exports.ModuleDefinition = void 0;
4
- const tslib_1 = require("tslib");
5
- const di_1 = require("@alterior/di");
6
- const di_2 = require("@alterior/di");
7
- const common_1 = require("@alterior/common");
8
- const roles_service_1 = require("./roles.service");
9
- /**
10
- * Combines a module annotation and a target class into a single
11
- * object for storage purposes in Runtime and related objects.
12
- */
13
- class ModuleDefinition {
14
- }
15
- exports.ModuleDefinition = ModuleDefinition;
16
- /**
17
- * Represents a live instance of a module.
18
- * Contains both the module definition as well
19
- * as a reference to the module instance itself.
20
- */
21
- class ModuleInstance {
22
- constructor(definition, instance) {
23
- this.definition = definition;
24
- this.instance = instance;
25
- }
26
- }
27
- exports.ModuleInstance = ModuleInstance;
28
- /**
29
- * Used to construct a runtime environment for a given entry module.
30
- * Handles resolving the module tree into an injector as well as constructing
31
- * the module instances and running lifecycle events.
32
- */
33
- class Runtime {
34
- constructor(entryModule) {
35
- this.definitions = [];
36
- this.visited = [];
37
- this.instances = null;
38
- /**
39
- * Retrieve the providers that were collected from the
40
- * module graph and used to create the primary injector.
41
- */
42
- this.providers = [];
43
- this._selfTest = false;
44
- this._injector = null;
45
- this.resolveModule(entryModule);
46
- }
47
- /**
48
- * Get a specific service from the dependency injector.
49
- * @param ctor
50
- */
51
- getService(ctor) {
52
- return this.injector.get(ctor);
53
- }
54
- /**
55
- * Iterate over the module definitions which are part of this
56
- * runtime and append to the given array the set of dependency injection
57
- * providers which are specified in the module definitions.
58
- *
59
- * @param providers An array which will be populated
60
- */
61
- contributeProviders(providers) {
62
- providers.push({ provide: Runtime, useValue: this });
63
- this.definitions
64
- .filter(defn => defn.metadata && defn.metadata.providers)
65
- .forEach(defn => providers.push(...defn.metadata.providers));
66
- }
67
- /**
68
- * Perform runtime configuration steps
69
- */
70
- configure() {
71
- let roleEnv = this.injector.get(common_1.Environment)
72
- .get();
73
- let roleMode = 'default';
74
- let roles = [];
75
- if (roleEnv.ALT_ROLES_ONLY) {
76
- roleMode = 'only';
77
- roles = roleEnv.ALT_ROLES_ONLY.split(',');
78
- }
79
- else if (roleEnv.ALT_ROLES_ALL_EXCEPT) {
80
- roleMode = 'all-except';
81
- roles = roleEnv.ALT_ROLES_ALL_EXCEPT.split(',');
82
- }
83
- else if (roleEnv.ALT_ROLES_DEFAULT_EXCEPT) {
84
- roleMode = 'default-except';
85
- roles = roleEnv.ALT_ROLES_DEFAULT_EXCEPT.split(',');
86
- }
87
- let rolesService = this.injector.get(roles_service_1.RolesService);
88
- if (roleMode !== 'default') {
89
- rolesService.configure({ mode: roleMode, roles });
90
- }
91
- if (typeof process !== 'undefined' && process.argv) {
92
- this.processCommandLine(process.argv.slice(2));
93
- }
94
- }
95
- /**
96
- * True if the `--self-test` option was used to launch the application.
97
- */
98
- get selfTest() {
99
- return this._selfTest;
100
- }
101
- processCommandLine(args) {
102
- let argIndex = 0;
103
- let optionValue = () => {
104
- let arg = args[argIndex];
105
- if (argIndex + 1 >= args.length)
106
- throw new Error(`You must specify a value for option ${arg}`);
107
- let value = args[++argIndex];
108
- if (value.startsWith('-')) {
109
- throw new Error(`You must specify a value for option ${arg} (encountered option '${value}' instead)`);
110
- }
111
- return value;
112
- };
113
- let roleMode = 'default';
114
- let roles;
115
- for (; argIndex < args.length; ++argIndex) {
116
- let arg = args[argIndex];
117
- if (arg === '--self-test') {
118
- this._selfTest = true;
119
- }
120
- else if (arg == '-r' || arg == '--roles-only') {
121
- roleMode = 'only';
122
- roles = optionValue().split(',');
123
- }
124
- else if (arg == '-x' || arg == '--roles-skip') {
125
- roleMode = 'default-except';
126
- roles = optionValue().split(',');
127
- }
128
- else if (arg == '-R' || arg == '--roles-all-except') {
129
- roleMode = 'all-except';
130
- roles = optionValue().split(',');
131
- }
132
- }
133
- let rolesService = this.injector.get(roles_service_1.RolesService);
134
- if (roleMode !== 'default') {
135
- rolesService.configure({ mode: 'only', roles });
136
- }
137
- }
138
- /**
139
- * Fire an event to all modules which understand it. Should be upper-camel-case, meaning
140
- * to fire the altOnStart() method, send "OnStart".
141
- * @param eventName
142
- */
143
- fireEvent(eventName) {
144
- for (let modInstance of this.instances) {
145
- if (modInstance.instance[`alt${eventName}`])
146
- modInstance.instance[`alt${eventName}`]();
147
- }
148
- }
149
- /**
150
- * Get the runtime's dependency injector. This injector can provide all dependencies specified
151
- * in the imported modules' `providers` definitions.
152
- */
153
- get injector() {
154
- return this._injector;
155
- }
156
- /**
157
- * Instantiate the modules of this runtime using the given dependency injector.
158
- * The injector will be inherited into an injector that provides the dependencies
159
- * specified in the imported modules' `providers` definitions.
160
- *
161
- * @param injector
162
- */
163
- load(injector) {
164
- if (this.instances)
165
- return;
166
- let ownInjector;
167
- let providers = this.definitions.map(x => x.target);
168
- try {
169
- ownInjector = di_2.ReflectiveInjector.resolveAndCreate(providers, injector);
170
- }
171
- catch (e) {
172
- console.error(`Failed to construct injector:`);
173
- console.error(`Providers:`);
174
- console.dir(providers);
175
- console.error(`Definitions:`);
176
- console.dir(this.definitions);
177
- throw e;
178
- }
179
- this._injector = ownInjector;
180
- let moduleInstances = this.definitions.map(defn => new ModuleInstance(defn, ownInjector.get(defn.target)));
181
- this.instances = moduleInstances;
182
- return this.instances;
183
- }
184
- /**
185
- * Stop any services, as defined by imported modules of this runtime. For instance, if you import WebServerModule
186
- * from @alterior/web-server, calling this will instruct the module to stop serving on the configured port.
187
- * Also builds in a timeout to allow for all services and operations to stop before resolving.
188
- *
189
- * This will send the `OnStop` lifecycle event to all modules, which triggers the `altOnStop()` method of any module
190
- * which implements it to be called. It also instructs the RolesService to stop any roles which are currently running.
191
- * For more information about Roles, see the documentation for RolesService.
192
- */
193
- stop() {
194
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
195
- this.fireEvent('OnStop');
196
- let rolesService = this.injector.get(roles_service_1.RolesService);
197
- rolesService.stopAll();
198
- });
199
- }
200
- /**
201
- * Start any services, as defined by modules. For instance, if you import WebServerModule from @alterior/web-server,
202
- * calling this will instruct the module to begin serving on the configured port.
203
- *
204
- * This will send the `OnStart` lifecycle event to all modules, which triggers the `altOnStart()` method of any module
205
- * which implements it to be called. It also instructs the RolesService to start roles as per it's configuration.
206
- * For more information about Roles, see the documentation for RolesService.
207
- */
208
- start() {
209
- this.fireEvent('OnStart');
210
- let rolesService = this.injector.get(roles_service_1.RolesService);
211
- rolesService.startAll();
212
- }
213
- /**
214
- * Stop all running services and shut down the process
215
- */
216
- shutdown() {
217
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
218
- yield this.stop();
219
- process.exit();
220
- });
221
- }
222
- /**
223
- * Retrieve the ModuleAnnotation for a given Module definition, whether it be a class annotated
224
- * with `@Module()` or a plain object with `$module` which configures a module class.
225
- *
226
- * This is an alias of ModuleAnnotation.getForClass(module)
227
- *
228
- * @param module
229
- */
230
- getMetadataForModule(module) {
231
- return di_1.ModuleAnnotation.getForClass(module);
232
- }
233
- /**
234
- * Resolves the given module, adding it to this runtime.
235
- * Calls itself for all imports. Visited modules are tracked per runtime,
236
- * so resolveModule() on the same runtime object will not work, preventing
237
- * loops.
238
- */
239
- resolveModule(module) {
240
- // Prevent infinite recursion
241
- if (this.visited.includes(module))
242
- return;
243
- this.visited.push(module);
244
- // Construct this compilation unit
245
- let isExtension = false;
246
- if (module['$module']) {
247
- isExtension = true;
248
- // This is a mask
249
- module = Object.assign({}, module);
250
- let parentModule = module['$module'];
251
- let options = Object.assign({}, module);
252
- delete module['$module'];
253
- if (!options.imports)
254
- options.imports = [];
255
- options.imports.push(parentModule);
256
- let subModule = class subModule {
257
- };
258
- subModule = tslib_1.__decorate([
259
- (0, di_1.Module)(options)
260
- ], subModule);
261
- ;
262
- module = subModule;
263
- let metadata = this.getMetadataForModule(module);
264
- }
265
- let metadata = this.getMetadataForModule(module);
266
- if (metadata && metadata.imports) {
267
- let position = 0;
268
- for (let importedModule of metadata.imports) {
269
- if (!importedModule) {
270
- throw new Error(`Failed to resolve module referenced in position ${position} by ${module.toString()}`);
271
- }
272
- this.resolveModule(importedModule);
273
- ++position;
274
- }
275
- }
276
- this.definitions.push({
277
- target: module,
278
- metadata,
279
- });
280
- }
281
- }
282
- exports.Runtime = Runtime;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Runtime = exports.ModuleInstance = exports.ModuleDefinition = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@alterior/di");
6
+ const di_2 = require("@alterior/di");
7
+ const common_1 = require("@alterior/common");
8
+ const roles_service_1 = require("./roles.service");
9
+ /**
10
+ * Combines a module annotation and a target class into a single
11
+ * object for storage purposes in Runtime and related objects.
12
+ */
13
+ class ModuleDefinition {
14
+ }
15
+ exports.ModuleDefinition = ModuleDefinition;
16
+ /**
17
+ * Represents a live instance of a module.
18
+ * Contains both the module definition as well
19
+ * as a reference to the module instance itself.
20
+ */
21
+ class ModuleInstance {
22
+ constructor(definition, instance) {
23
+ this.definition = definition;
24
+ this.instance = instance;
25
+ }
26
+ }
27
+ exports.ModuleInstance = ModuleInstance;
28
+ /**
29
+ * Used to construct a runtime environment for a given entry module.
30
+ * Handles resolving the module tree into an injector as well as constructing
31
+ * the module instances and running lifecycle events.
32
+ */
33
+ class Runtime {
34
+ constructor(entryModule) {
35
+ this.definitions = [];
36
+ this.visited = [];
37
+ this.instances = null;
38
+ /**
39
+ * Retrieve the providers that were collected from the
40
+ * module graph and used to create the primary injector.
41
+ */
42
+ this.providers = [];
43
+ this._selfTest = false;
44
+ this._injector = null;
45
+ this.resolveModule(entryModule);
46
+ }
47
+ /**
48
+ * Get a specific service from the dependency injector.
49
+ * @param ctor
50
+ */
51
+ getService(ctor) {
52
+ return this.injector.get(ctor);
53
+ }
54
+ /**
55
+ * Iterate over the module definitions which are part of this
56
+ * runtime and append to the given array the set of dependency injection
57
+ * providers which are specified in the module definitions.
58
+ *
59
+ * @param providers An array which will be populated
60
+ */
61
+ contributeProviders(providers) {
62
+ providers.push({ provide: Runtime, useValue: this });
63
+ this.definitions
64
+ .filter(defn => defn.metadata && defn.metadata.providers)
65
+ .forEach(defn => providers.push(...defn.metadata.providers));
66
+ }
67
+ /**
68
+ * Perform runtime configuration steps
69
+ */
70
+ configure() {
71
+ let roleEnv = this.injector.get(common_1.Environment)
72
+ .get();
73
+ let roleMode = 'default';
74
+ let roles = [];
75
+ if (roleEnv.ALT_ROLES_ONLY) {
76
+ roleMode = 'only';
77
+ roles = roleEnv.ALT_ROLES_ONLY.split(',');
78
+ }
79
+ else if (roleEnv.ALT_ROLES_ALL_EXCEPT) {
80
+ roleMode = 'all-except';
81
+ roles = roleEnv.ALT_ROLES_ALL_EXCEPT.split(',');
82
+ }
83
+ else if (roleEnv.ALT_ROLES_DEFAULT_EXCEPT) {
84
+ roleMode = 'default-except';
85
+ roles = roleEnv.ALT_ROLES_DEFAULT_EXCEPT.split(',');
86
+ }
87
+ let rolesService = this.injector.get(roles_service_1.RolesService);
88
+ if (roleMode !== 'default') {
89
+ rolesService.configure({ mode: roleMode, roles });
90
+ }
91
+ if (typeof process !== 'undefined' && process.argv) {
92
+ this.processCommandLine(process.argv.slice(2));
93
+ }
94
+ }
95
+ /**
96
+ * True if the `--self-test` option was used to launch the application.
97
+ */
98
+ get selfTest() {
99
+ return this._selfTest;
100
+ }
101
+ processCommandLine(args) {
102
+ let argIndex = 0;
103
+ let optionValue = () => {
104
+ let arg = args[argIndex];
105
+ if (argIndex + 1 >= args.length)
106
+ throw new Error(`You must specify a value for option ${arg}`);
107
+ let value = args[++argIndex];
108
+ if (value.startsWith('-')) {
109
+ throw new Error(`You must specify a value for option ${arg} (encountered option '${value}' instead)`);
110
+ }
111
+ return value;
112
+ };
113
+ let roleMode = 'default';
114
+ let roles;
115
+ for (; argIndex < args.length; ++argIndex) {
116
+ let arg = args[argIndex];
117
+ if (arg === '--self-test') {
118
+ this._selfTest = true;
119
+ }
120
+ else if (arg == '-r' || arg == '--roles-only') {
121
+ roleMode = 'only';
122
+ roles = optionValue().split(',');
123
+ }
124
+ else if (arg == '-x' || arg == '--roles-skip') {
125
+ roleMode = 'default-except';
126
+ roles = optionValue().split(',');
127
+ }
128
+ else if (arg == '-R' || arg == '--roles-all-except') {
129
+ roleMode = 'all-except';
130
+ roles = optionValue().split(',');
131
+ }
132
+ }
133
+ let rolesService = this.injector.get(roles_service_1.RolesService);
134
+ if (roleMode !== 'default') {
135
+ rolesService.configure({ mode: 'only', roles });
136
+ }
137
+ }
138
+ /**
139
+ * Fire an event to all modules which understand it. Should be upper-camel-case, meaning
140
+ * to fire the altOnStart() method, send "OnStart".
141
+ * @param eventName
142
+ */
143
+ fireEvent(eventName) {
144
+ for (let modInstance of this.instances) {
145
+ if (modInstance.instance[`alt${eventName}`])
146
+ modInstance.instance[`alt${eventName}`]();
147
+ }
148
+ }
149
+ /**
150
+ * Get the runtime's dependency injector. This injector can provide all dependencies specified
151
+ * in the imported modules' `providers` definitions.
152
+ */
153
+ get injector() {
154
+ return this._injector;
155
+ }
156
+ /**
157
+ * Instantiate the modules of this runtime using the given dependency injector.
158
+ * The injector will be inherited into an injector that provides the dependencies
159
+ * specified in the imported modules' `providers` definitions.
160
+ *
161
+ * @param injector
162
+ */
163
+ load(injector) {
164
+ if (this.instances)
165
+ return;
166
+ let ownInjector;
167
+ let providers = this.definitions.map(x => x.target);
168
+ try {
169
+ ownInjector = di_2.ReflectiveInjector.resolveAndCreate(providers, injector);
170
+ }
171
+ catch (e) {
172
+ console.error(`Failed to construct injector:`);
173
+ console.error(`Providers:`);
174
+ console.dir(providers);
175
+ console.error(`Definitions:`);
176
+ console.dir(this.definitions);
177
+ throw e;
178
+ }
179
+ this._injector = ownInjector;
180
+ let moduleInstances = this.definitions.map(defn => new ModuleInstance(defn, ownInjector.get(defn.target)));
181
+ this.instances = moduleInstances;
182
+ return this.instances;
183
+ }
184
+ /**
185
+ * Stop any services, as defined by imported modules of this runtime. For instance, if you import WebServerModule
186
+ * from @alterior/web-server, calling this will instruct the module to stop serving on the configured port.
187
+ * Also builds in a timeout to allow for all services and operations to stop before resolving.
188
+ *
189
+ * This will send the `OnStop` lifecycle event to all modules, which triggers the `altOnStop()` method of any module
190
+ * which implements it to be called. It also instructs the RolesService to stop any roles which are currently running.
191
+ * For more information about Roles, see the documentation for RolesService.
192
+ */
193
+ stop() {
194
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
195
+ this.fireEvent('OnStop');
196
+ let rolesService = this.injector.get(roles_service_1.RolesService);
197
+ rolesService.stopAll();
198
+ });
199
+ }
200
+ /**
201
+ * Start any services, as defined by modules. For instance, if you import WebServerModule from @alterior/web-server,
202
+ * calling this will instruct the module to begin serving on the configured port.
203
+ *
204
+ * This will send the `OnStart` lifecycle event to all modules, which triggers the `altOnStart()` method of any module
205
+ * which implements it to be called. It also instructs the RolesService to start roles as per it's configuration.
206
+ * For more information about Roles, see the documentation for RolesService.
207
+ */
208
+ start() {
209
+ this.fireEvent('OnStart');
210
+ let rolesService = this.injector.get(roles_service_1.RolesService);
211
+ rolesService.startAll();
212
+ }
213
+ /**
214
+ * Stop all running services and shut down the process
215
+ */
216
+ shutdown() {
217
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
218
+ yield this.stop();
219
+ process.exit();
220
+ });
221
+ }
222
+ /**
223
+ * Retrieve the ModuleAnnotation for a given Module definition, whether it be a class annotated
224
+ * with `@Module()` or a plain object with `$module` which configures a module class.
225
+ *
226
+ * This is an alias of ModuleAnnotation.getForClass(module)
227
+ *
228
+ * @param module
229
+ */
230
+ getMetadataForModule(module) {
231
+ return di_1.ModuleAnnotation.getForClass(module);
232
+ }
233
+ /**
234
+ * Resolves the given module, adding it to this runtime.
235
+ * Calls itself for all imports. Visited modules are tracked per runtime,
236
+ * so resolveModule() on the same runtime object will not work, preventing
237
+ * loops.
238
+ */
239
+ resolveModule(module) {
240
+ // Prevent infinite recursion
241
+ if (this.visited.includes(module))
242
+ return;
243
+ this.visited.push(module);
244
+ // Construct this compilation unit
245
+ let isExtension = false;
246
+ if (module['$module']) {
247
+ isExtension = true;
248
+ // This is a mask
249
+ module = Object.assign({}, module);
250
+ let parentModule = module['$module'];
251
+ let options = Object.assign({}, module);
252
+ delete module['$module'];
253
+ if (!options.imports)
254
+ options.imports = [];
255
+ options.imports.push(parentModule);
256
+ let subModule = class subModule {
257
+ };
258
+ subModule = tslib_1.__decorate([
259
+ (0, di_1.Module)(options)
260
+ ], subModule);
261
+ ;
262
+ module = subModule;
263
+ let metadata = this.getMetadataForModule(module);
264
+ }
265
+ let metadata = this.getMetadataForModule(module);
266
+ if (metadata && metadata.imports) {
267
+ let position = 0;
268
+ for (let importedModule of metadata.imports) {
269
+ if (!importedModule) {
270
+ throw new Error(`Failed to resolve module referenced in position ${position} by ${module.toString()}`);
271
+ }
272
+ this.resolveModule(importedModule);
273
+ ++position;
274
+ }
275
+ }
276
+ this.definitions.push({
277
+ target: module,
278
+ metadata,
279
+ });
280
+ }
281
+ }
282
+ exports.Runtime = Runtime;
283
283
  //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"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"}