@alterior/runtime 3.0.0-rc.5 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/modules.js CHANGED
@@ -1,41 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Runtime = exports.ModuleInstance = exports.ModuleDefinition = void 0;
4
- var tslib_1 = require("tslib");
5
- var di_1 = require("@alterior/di");
6
- var di_2 = require("@alterior/di");
7
- var common_1 = require("@alterior/common");
8
- var roles_service_1 = require("./roles.service");
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
9
  /**
10
10
  * Combines a module annotation and a target class into a single
11
11
  * object for storage purposes in Runtime and related objects.
12
12
  */
13
- var ModuleDefinition = /** @class */ (function () {
14
- function ModuleDefinition() {
15
- }
16
- return ModuleDefinition;
17
- }());
13
+ class ModuleDefinition {
14
+ }
18
15
  exports.ModuleDefinition = ModuleDefinition;
19
16
  /**
20
17
  * Represents a live instance of a module.
21
18
  * Contains both the module definition as well
22
19
  * as a reference to the module instance itself.
23
20
  */
24
- var ModuleInstance = /** @class */ (function () {
25
- function ModuleInstance(definition, instance) {
21
+ class ModuleInstance {
22
+ constructor(definition, instance) {
26
23
  this.definition = definition;
27
24
  this.instance = instance;
28
25
  }
29
- return ModuleInstance;
30
- }());
26
+ }
31
27
  exports.ModuleInstance = ModuleInstance;
32
28
  /**
33
29
  * Used to construct a runtime environment for a given entry module.
34
30
  * Handles resolving the module tree into an injector as well as constructing
35
31
  * the module instances and running lifecycle events.
36
32
  */
37
- var Runtime = /** @class */ (function () {
38
- function Runtime(entryModule) {
33
+ class Runtime {
34
+ constructor(entryModule) {
39
35
  this.definitions = [];
40
36
  this.visited = [];
41
37
  this.instances = null;
@@ -52,9 +48,9 @@ var Runtime = /** @class */ (function () {
52
48
  * Get a specific service from the dependency injector.
53
49
  * @param ctor
54
50
  */
55
- Runtime.prototype.getService = function (ctor) {
51
+ getService(ctor) {
56
52
  return this.injector.get(ctor);
57
- };
53
+ }
58
54
  /**
59
55
  * Iterate over the module definitions which are part of this
60
56
  * runtime and append to the given array the set of dependency injection
@@ -62,117 +58,98 @@ var Runtime = /** @class */ (function () {
62
58
  *
63
59
  * @param providers An array which will be populated
64
60
  */
65
- Runtime.prototype.contributeProviders = function (providers) {
61
+ contributeProviders(providers) {
66
62
  providers.push({ provide: Runtime, useValue: this });
67
63
  this.definitions
68
- .filter(function (defn) { return defn.metadata && defn.metadata.providers; })
69
- .forEach(function (defn) { return providers.push.apply(providers, (0, tslib_1.__spreadArray)([], (0, tslib_1.__read)(defn.metadata.providers), false)); });
70
- };
64
+ .filter(defn => defn.metadata && defn.metadata.providers)
65
+ .forEach(defn => providers.push(...defn.metadata.providers));
66
+ }
71
67
  /**
72
68
  * Perform runtime configuration steps
73
69
  */
74
- Runtime.prototype.configure = function () {
75
- var environment = this.injector.get(common_1.Environment);
76
- var rolesService = this.injector.get(roles_service_1.RolesService);
77
- var allRoles = rolesService.roles;
70
+ configure() {
71
+ let environment = this.injector.get(common_1.Environment);
72
+ let rolesService = this.injector.get(roles_service_1.RolesService);
73
+ let allRoles = rolesService.roles;
78
74
  if (environment.get().ALT_ROLES_ONLY) {
79
- var value = environment.get().ALT_ROLES_ONLY;
80
- var roles = value.split(',')
81
- .map(function (x) { return allRoles.find(function (y) { return y.identifier == x; }); })
82
- .map(function (x) { return x.class; });
83
- rolesService.configure({ mode: 'only', roles: roles });
75
+ let value = environment.get().ALT_ROLES_ONLY;
76
+ let roles = value.split(',')
77
+ .map(x => allRoles.find(y => y.identifier == x))
78
+ .map(x => x.class);
79
+ rolesService.configure({ mode: 'only', roles });
84
80
  }
85
81
  else if (environment.get().ALT_ROLES_ALL_EXCEPT) {
86
- var value = environment.get().ALT_ROLES_ALL_EXCEPT;
87
- var roles = value.split(',')
88
- .map(function (x) { return allRoles.find(function (y) { return y.identifier == x; }); })
89
- .map(function (x) { return x.class; });
90
- rolesService.configure({ mode: 'all-except', roles: roles });
82
+ let value = environment.get().ALT_ROLES_ALL_EXCEPT;
83
+ let roles = value.split(',')
84
+ .map(x => allRoles.find(y => y.identifier == x))
85
+ .map(x => x.class);
86
+ rolesService.configure({ mode: 'all-except', roles });
91
87
  }
92
88
  if (typeof process !== 'undefined' && process.argv) {
93
89
  this.processCommandLine(process.argv.slice(2));
94
90
  }
95
- };
96
- Object.defineProperty(Runtime.prototype, "selfTest", {
97
- /**
98
- * True if the `--self-test` option was used to launch the application.
99
- */
100
- get: function () {
101
- return this._selfTest;
102
- },
103
- enumerable: false,
104
- configurable: true
105
- });
106
- Runtime.prototype.processCommandLine = function (args) {
107
- var rolesService = this.injector.get(roles_service_1.RolesService);
108
- var argIndex = 0;
109
- var getArgumentValue = function () {
110
- var arg = args[argIndex];
91
+ }
92
+ /**
93
+ * True if the `--self-test` option was used to launch the application.
94
+ */
95
+ get selfTest() {
96
+ return this._selfTest;
97
+ }
98
+ processCommandLine(args) {
99
+ let rolesService = this.injector.get(roles_service_1.RolesService);
100
+ let argIndex = 0;
101
+ let getArgumentValue = () => {
102
+ let arg = args[argIndex];
111
103
  if (argIndex + 1 >= args.length)
112
- throw new Error("You must specify a value for option " + arg);
113
- var value = args[++argIndex];
104
+ throw new Error(`You must specify a value for option ${arg}`);
105
+ let value = args[++argIndex];
114
106
  if (value.startsWith('-')) {
115
- throw new Error("You must specify a value for option " + arg + " (encountered option '" + value + "' instead)");
107
+ throw new Error(`You must specify a value for option ${arg} (encountered option '${value}' instead)`);
116
108
  }
117
109
  return value;
118
110
  };
119
- var allRoles = rolesService.roles;
111
+ let allRoles = rolesService.roles;
120
112
  for (; argIndex < args.length; ++argIndex) {
121
- var arg = args[argIndex];
113
+ let arg = args[argIndex];
122
114
  if (arg === '--self-test') {
123
115
  this._selfTest = true;
124
116
  }
125
117
  else if (arg == '-r' || arg == '--roles-only') {
126
- var value = getArgumentValue();
127
- var roles = value.split(',')
128
- .map(function (x) { return allRoles.find(function (y) { return y.identifier == x; }); })
129
- .filter(function (x) { return x; })
130
- .map(function (x) { return x.class; });
131
- rolesService.configure({ mode: 'only', roles: roles });
118
+ let value = getArgumentValue();
119
+ let roles = value.split(',')
120
+ .map(x => allRoles.find(y => y.identifier == x))
121
+ .filter(x => x)
122
+ .map(x => x.class);
123
+ rolesService.configure({ mode: 'only', roles });
132
124
  }
133
125
  else if (arg == '-R' || arg == '--roles-all-except') {
134
- var value = getArgumentValue();
135
- var roles = value.split(',')
136
- .map(function (x) { return allRoles.find(function (y) { return y.identifier == x; }); })
137
- .filter(function (x) { return x; })
138
- .map(function (x) { return x.class; });
139
- rolesService.configure({ mode: 'all-except', roles: roles });
126
+ let value = getArgumentValue();
127
+ let roles = value.split(',')
128
+ .map(x => allRoles.find(y => y.identifier == x))
129
+ .filter(x => x)
130
+ .map(x => x.class);
131
+ rolesService.configure({ mode: 'all-except', roles });
140
132
  }
141
133
  }
142
- };
134
+ }
143
135
  /**
144
136
  * Fire an event to all modules which understand it. Should be upper-camel-case, meaning
145
137
  * to fire the altOnStart() method, send "OnStart".
146
138
  * @param eventName
147
139
  */
148
- Runtime.prototype.fireEvent = function (eventName) {
149
- var e_1, _a;
150
- try {
151
- for (var _b = (0, tslib_1.__values)(this.instances), _c = _b.next(); !_c.done; _c = _b.next()) {
152
- var modInstance = _c.value;
153
- if (modInstance.instance["alt" + eventName])
154
- modInstance.instance["alt" + eventName]();
155
- }
140
+ fireEvent(eventName) {
141
+ for (let modInstance of this.instances) {
142
+ if (modInstance.instance[`alt${eventName}`])
143
+ modInstance.instance[`alt${eventName}`]();
156
144
  }
157
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
158
- finally {
159
- try {
160
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
161
- }
162
- finally { if (e_1) throw e_1.error; }
163
- }
164
- };
165
- Object.defineProperty(Runtime.prototype, "injector", {
166
- /**
167
- * Get the runtime's dependency injector. This injector can provide all dependencies specified
168
- * in the imported modules' `providers` definitions.
169
- */
170
- get: function () {
171
- return this._injector;
172
- },
173
- enumerable: false,
174
- configurable: true
175
- });
145
+ }
146
+ /**
147
+ * Get the runtime's dependency injector. This injector can provide all dependencies specified
148
+ * in the imported modules' `providers` definitions.
149
+ */
150
+ get injector() {
151
+ return this._injector;
152
+ }
176
153
  /**
177
154
  * Instantiate the modules of this runtime using the given dependency injector.
178
155
  * The injector will be inherited into an injector that provides the dependencies
@@ -180,27 +157,27 @@ var Runtime = /** @class */ (function () {
180
157
  *
181
158
  * @param injector
182
159
  */
183
- Runtime.prototype.load = function (injector) {
160
+ load(injector) {
184
161
  if (this.instances)
185
162
  return;
186
- var ownInjector;
187
- var providers = this.definitions.map(function (x) { return x.target; });
163
+ let ownInjector;
164
+ let providers = this.definitions.map(x => x.target);
188
165
  try {
189
166
  ownInjector = di_2.ReflectiveInjector.resolveAndCreate(providers, injector);
190
167
  }
191
168
  catch (e) {
192
- console.error("Failed to construct injector:");
193
- console.error("Providers:");
169
+ console.error(`Failed to construct injector:`);
170
+ console.error(`Providers:`);
194
171
  console.dir(providers);
195
- console.error("Definitions:");
172
+ console.error(`Definitions:`);
196
173
  console.dir(this.definitions);
197
174
  throw e;
198
175
  }
199
176
  this._injector = ownInjector;
200
- var moduleInstances = this.definitions.map(function (defn) { return new ModuleInstance(defn, ownInjector.get(defn.target)); });
177
+ let moduleInstances = this.definitions.map(defn => new ModuleInstance(defn, ownInjector.get(defn.target)));
201
178
  this.instances = moduleInstances;
202
179
  return this.instances;
203
- };
180
+ }
204
181
  /**
205
182
  * Stop any services, as defined by imported modules of this runtime. For instance, if you import WebServerModule
206
183
  * from @alterior/web-server, calling this will instruct the module to stop serving on the configured port.
@@ -210,17 +187,13 @@ var Runtime = /** @class */ (function () {
210
187
  * which implements it to be called. It also instructs the RolesService to stop any roles which are currently running.
211
188
  * For more information about Roles, see the documentation for RolesService.
212
189
  */
213
- Runtime.prototype.stop = function () {
214
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
215
- var rolesService;
216
- return (0, tslib_1.__generator)(this, function (_a) {
217
- this.fireEvent('OnStop');
218
- rolesService = this.injector.get(roles_service_1.RolesService);
219
- rolesService.stopAll();
220
- return [2 /*return*/];
221
- });
190
+ stop() {
191
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
192
+ this.fireEvent('OnStop');
193
+ let rolesService = this.injector.get(roles_service_1.RolesService);
194
+ rolesService.stopAll();
222
195
  });
223
- };
196
+ }
224
197
  /**
225
198
  * Start any services, as defined by modules. For instance, if you import WebServerModule from @alterior/web-server,
226
199
  * calling this will instruct the module to begin serving on the configured port.
@@ -229,27 +202,20 @@ var Runtime = /** @class */ (function () {
229
202
  * which implements it to be called. It also instructs the RolesService to start roles as per it's configuration.
230
203
  * For more information about Roles, see the documentation for RolesService.
231
204
  */
232
- Runtime.prototype.start = function () {
205
+ start() {
233
206
  this.fireEvent('OnStart');
234
- var rolesService = this.injector.get(roles_service_1.RolesService);
207
+ let rolesService = this.injector.get(roles_service_1.RolesService);
235
208
  rolesService.startAll();
236
- };
209
+ }
237
210
  /**
238
211
  * Stop all running services and shut down the process
239
212
  */
240
- Runtime.prototype.shutdown = function () {
241
- return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
242
- return (0, tslib_1.__generator)(this, function (_a) {
243
- switch (_a.label) {
244
- case 0: return [4 /*yield*/, this.stop()];
245
- case 1:
246
- _a.sent();
247
- process.exit();
248
- return [2 /*return*/];
249
- }
250
- });
213
+ shutdown() {
214
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
215
+ yield this.stop();
216
+ process.exit();
251
217
  });
252
- };
218
+ }
253
219
  /**
254
220
  * Retrieve the ModuleAnnotation for a given Module definition, whether it be a class annotated
255
221
  * with `@Module()` or a plain object with `$module` which configures a module class.
@@ -258,72 +224,57 @@ var Runtime = /** @class */ (function () {
258
224
  *
259
225
  * @param module
260
226
  */
261
- Runtime.prototype.getMetadataForModule = function (module) {
227
+ getMetadataForModule(module) {
262
228
  return di_1.ModuleAnnotation.getForClass(module);
263
- };
229
+ }
264
230
  /**
265
231
  * Resolves the given module, adding it to this runtime.
266
232
  * Calls itself for all imports. Visited modules are tracked per runtime,
267
233
  * so resolveModule() on the same runtime object will not work, preventing
268
234
  * loops.
269
235
  */
270
- Runtime.prototype.resolveModule = function (module) {
236
+ resolveModule(module) {
271
237
  // Prevent infinite recursion
272
- var e_2, _a;
273
238
  if (this.visited.includes(module))
274
239
  return;
275
240
  this.visited.push(module);
276
241
  // Construct this compilation unit
277
- var isExtension = false;
242
+ let isExtension = false;
278
243
  if (module['$module']) {
279
244
  isExtension = true;
280
245
  // This is a mask
281
246
  module = Object.assign({}, module);
282
- var parentModule = module['$module'];
283
- var options = Object.assign({}, module);
247
+ let parentModule = module['$module'];
248
+ let options = Object.assign({}, module);
284
249
  delete module['$module'];
285
250
  if (!options.imports)
286
251
  options.imports = [];
287
252
  options.imports.push(parentModule);
288
- var subModule = /** @class */ (function () {
289
- function subModule() {
290
- }
291
- subModule = (0, tslib_1.__decorate)([
292
- (0, di_1.Module)(options)
293
- ], subModule);
294
- return subModule;
295
- }());
253
+ let subModule = class subModule {
254
+ };
255
+ subModule = (0, tslib_1.__decorate)([
256
+ (0, di_1.Module)(options)
257
+ ], subModule);
296
258
  ;
297
259
  module = subModule;
298
- var metadata_1 = this.getMetadataForModule(module);
260
+ let metadata = this.getMetadataForModule(module);
299
261
  }
300
- var metadata = this.getMetadataForModule(module);
262
+ let metadata = this.getMetadataForModule(module);
301
263
  if (metadata && metadata.imports) {
302
- var position = 0;
303
- try {
304
- for (var _b = (0, tslib_1.__values)(metadata.imports), _c = _b.next(); !_c.done; _c = _b.next()) {
305
- var importedModule = _c.value;
306
- if (!importedModule) {
307
- throw new Error("Failed to resolve module referenced in position " + position + " by " + module.toString());
308
- }
309
- this.resolveModule(importedModule);
310
- ++position;
264
+ let position = 0;
265
+ for (let importedModule of metadata.imports) {
266
+ if (!importedModule) {
267
+ throw new Error(`Failed to resolve module referenced in position ${position} by ${module.toString()}`);
311
268
  }
312
- }
313
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
314
- finally {
315
- try {
316
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
317
- }
318
- finally { if (e_2) throw e_2.error; }
269
+ this.resolveModule(importedModule);
270
+ ++position;
319
271
  }
320
272
  }
321
273
  this.definitions.push({
322
274
  target: module,
323
- metadata: metadata,
275
+ metadata,
324
276
  });
325
- };
326
- return Runtime;
327
- }());
277
+ }
278
+ }
328
279
  exports.Runtime = Runtime;
329
280
  //# 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":";;;;AAAA,qCAAmF;AACnF,qCAAsE;AACtE,6CAAwD;AACxD,mDAA+C;AAC/C;;;GAGG;AACH,MAAa,gBAAgB;CAG5B;AAHD,4CAGC;AAED;;;;GAIG;AACH,MAAa,cAAc;IACvB,YACa,UAA6B,EAC7B,QAAc;QADd,eAAU,GAAV,UAAU,CAAmB;QAC7B,aAAQ,GAAR,QAAQ,CAAM;IAE3B,CAAC;CACJ;AAND,wCAMC;AAED;;;;GAIG;AACH,MAAa,OAAO;IAChB,YAAY,WAAsB;QAIlC,gBAAW,GAAwB,EAAE,CAAC;QACtC,YAAO,GAAkB,EAAE,CAAC;QAC5B,cAAS,GAAsB,IAAI,CAAC;QAUpC;;;WAGG;QACH,cAAS,GAAgB,EAAE,CAAC;QAiDpB,cAAS,GAAG,KAAK,CAAC;QAsElB,cAAS,GAAc,IAAI,CAAC;QA1IhC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAMD;;;OAGG;IACH,UAAU,CAAI,IAA2B;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAQD;;;;;;OAMG;IACH,mBAAmB,CAAC,SAAsB;QACtC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW;aACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;aACxD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAC/D;IACL,CAAC;IAED;;OAEG;IACH,SAAS;QAEL,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAW,CAAC,CAAC;QACjD,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;QACnD,IAAI,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;QAElC,IAAI,WAAW,CAAC,GAAG,EAAO,CAAC,cAAc,EAAE;YACvC,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,EAAO,CAAC,cAAc,CAAC;YAClD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;YAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;SACnD;aAAM,IAAI,WAAW,CAAC,GAAG,EAAO,CAAC,oBAAoB,EAAE;YACpD,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,EAAO,CAAC,oBAAoB,CAAC;YACxD,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;YAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;SACzD;QAED,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE;YAChD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAClD;IACL,CAAC;IAID;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,kBAAkB,CAAC,IAAe;QAC9B,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;QACnD,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,IAAI,gBAAgB,GAAG,GAAG,EAAE;YACxB,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;gBAC3B,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;YAGlE,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAE7B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,yBAAyB,KAAK,YAAY,CAAC,CAAC;aACzG;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,OAAO,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE;YACvC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,IAAI,GAAG,KAAK,aAAa,EAAE;gBACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACzB;iBAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE;gBAC7C,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;gBAE/B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;qBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;qBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;gBAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;aACnD;iBAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,oBAAoB,EAAE;gBACnD,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;gBAE/B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;qBACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;qBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrB;gBAED,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;aACzD;SACJ;IACL,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,SAAkB;QACxB,KAAK,IAAI,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,SAAS,EAAE,CAAC;gBACvC,WAAW,CAAC,QAAQ,CAAC,MAAM,SAAS,EAAE,CAAC,EAAE,CAAC;SACjD;IACL,CAAC;IAID;;;OAGG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,QAAmB;QACpB,IAAI,IAAI,CAAC,SAAS;YACd,OAAO;QAEX,IAAI,WAAgC,CAAC;QACrC,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI;YACA,WAAW,GAAG,uBAAkB,CAAC,gBAAgB,CAC7C,SAAS,EACT,QAAQ,CACX,CAAC;SACL;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9B,MAAM,CAAC,CAAC;SACX;QAED,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;QAE7B,IAAI,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;QAEjC,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;;;;;;;OAQG;IACG,IAAI;;YACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;YACnD,YAAY,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KAAA;IAED;;;;;;;OAOG;IACH,KAAK;QACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE1B,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,4BAAY,CAAC,CAAC;QACnD,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACG,QAAQ;;YACV,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC;KAAA;IAED;;;;;;;OAOG;IACI,oBAAoB,CAAC,MAAmB;QAC3C,OAAO,qBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,MAAmB;QAErC,6BAA6B;QAE7B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC7B,OAAO;QACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1B,kCAAkC;QAClC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;YACnB,WAAW,GAAG,IAAI,CAAC;YACnB,iBAAiB;YACjB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACnC,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,OAAO,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAa,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;YAEzB,IAAI,CAAC,OAAO,CAAC,OAAO;gBAChB,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;YAEzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAElB,IAAM,SAAS,GAAf,MAAM,SAAS;aAAG,CAAA;YAAZ,SAAS;gBAA/B,IAAA,WAAM,EAAC,OAAO,CAAC;eAAO,SAAS,CAAG;YAAA,CAAC;YACpC,MAAM,GAAG,SAAS,CAAC;YAEnB,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;SACpD;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;YAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,KAAK,IAAI,cAAc,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACzC,IAAI,CAAC,cAAc,EAAE;oBACjB,MAAM,IAAI,KAAK,CAAC,mDAAmD,QAAQ,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBAC1G;gBAED,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACnC,EAAE,QAAQ,CAAC;aACd;SACJ;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAClB,MAAM,EAAE,MAAM;YACd,QAAQ;SACX,CAAC,CAAC;IAEP,CAAC;CACJ;AArSD,0BAqSC"}