@shrub/core 0.5.84 → 0.5.86

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.
@@ -126,14 +126,14 @@ export class SingletonServiceFactory {
126
126
  }
127
127
  export class ServiceMap {
128
128
  services;
129
- isScoped;
130
129
  instances = new Map();
131
- isFrozen;
132
- /** Creates a new ServiceMap instance; note: the parameters are for internal purposes and should not be used. */
133
- constructor(services = new Map(), isScoped = false) {
134
- this.services = services;
135
- this.isScoped = isScoped;
136
- if (!isScoped) {
130
+ isFrozen = false;
131
+ isScoped = false;
132
+ /** Creates a new ServiceMap instance with an optional parent if the ServiceMap should be scoped; note: this is used for internal purposes and should not be used directly. */
133
+ constructor(parent) {
134
+ this.isScoped = !!parent;
135
+ this.services = new Map(parent?.services);
136
+ if (!parent) {
137
137
  // the thisFactory is used to return the appropriate ServiceMap instance since the IInstantiationService and IServiceCollection services need to be scoped
138
138
  const thisFactory = { create: service => service };
139
139
  this.registerService(IInstantiationService, "scoped" /* ServiceScope.scoped */, thisFactory, { sealed: true });
@@ -153,39 +153,15 @@ export class ServiceMap {
153
153
  : this.createObjectInstance(ctorOrInjectable);
154
154
  }
155
155
  createScope(register) {
156
- const parent = this;
157
- const getOrCreateServiceInstanceFromParent = this.getOrCreateServiceInstance.bind(this);
158
- return new class ScopedServiceMap extends ServiceMap {
159
- constructor() {
160
- // if registering new services we need to copy the current entries into a new map; otherwise, pass a reference to the parent's set of services
161
- super(register ? new Map(parent.services) : parent.services, /* isScoped */ true);
162
- if (register) {
163
- register(this);
164
- }
165
- this.freeze();
166
- }
167
- dispose() {
168
- for (const instance of this.instances.values()) {
169
- // dispose instances created and referenced by the scope; this will be scoped and transient instances
170
- // also make sure we don't dispose the current instance as that will cause a stack overflow
171
- if (instance !== this && isDisposable(instance)) {
172
- instance.dispose();
173
- }
174
- }
175
- this.instances.clear();
176
- }
177
- getOrCreateServiceInstance(key, rootScope, ancestors) {
178
- // if the service is registered direclty with the scoped service collection the parent collection will not be aware so check that first
179
- if (parent.has(key)) {
180
- const entry = this.services.get(key);
181
- if (entry !== undefined && (entry.scope === "singleton" /* ServiceScope.singleton */ || entry.scope === "instance" /* ServiceScope.instance */)) {
182
- // if the service is a singleton or instance call up the parent chain to get the instance
183
- return getOrCreateServiceInstanceFromParent(key, rootScope, ancestors);
184
- }
185
- }
186
- return super.getOrCreateServiceInstance(key, rootScope, ancestors);
187
- }
188
- };
156
+ const scopedServices = this.createScopeMap();
157
+ if (register) {
158
+ register(scopedServices);
159
+ }
160
+ scopedServices.freeze();
161
+ return scopedServices;
162
+ }
163
+ createScopeMap() {
164
+ return new ScopedServiceMap(this);
189
165
  }
190
166
  getOptions(options) {
191
167
  return this.get(IOptionsService).getOptions(options);
@@ -193,16 +169,20 @@ export class ServiceMap {
193
169
  register(service, ctor, options) {
194
170
  this.registerService(service, getServiceScope(ctor), ctor, options);
195
171
  }
196
- registerInstance(service, instance, options) {
197
- if (instance === undefined) {
172
+ registerInstance(service, instanceOrConstructor, options) {
173
+ if (instanceOrConstructor === undefined) {
198
174
  throw new Error("instance undefined");
199
175
  }
200
176
  if (this.isScoped && this.services.has(service.key)) {
201
177
  throw new Error(`Service with key (${service.key}) cannot be overridden.`);
202
178
  }
203
179
  // TODO: check if the instance constructor has a required scope - if so, verify its a singleton
180
+ const instance = isConstructor(instanceOrConstructor)
181
+ ? this.createInstance(instanceOrConstructor)
182
+ : instanceOrConstructor;
204
183
  this.instances.set(service.key, instance);
205
184
  this.services.set(service.key, { service, scope: "instance" /* ServiceScope.instance */, sealed: options && options.sealed });
185
+ return instance;
206
186
  }
207
187
  registerScoped(service, ctorOrFactory, options) {
208
188
  this.registerService(service, "scoped" /* ServiceScope.scoped */, ctorOrFactory, options);
@@ -257,6 +237,7 @@ export class ServiceMap {
257
237
  freeze() {
258
238
  this.isFrozen = true;
259
239
  }
240
+ /** @internal */
260
241
  getOrCreateServiceInstance(key, rootScope, ancestors) {
261
242
  const entry = this.services.get(key);
262
243
  if (!entry) {
@@ -379,6 +360,34 @@ export class ServiceMap {
379
360
  }
380
361
  }
381
362
  }
363
+ export class ScopedServiceMap extends ServiceMap {
364
+ parent;
365
+ constructor(parent) {
366
+ super(parent);
367
+ this.parent = parent;
368
+ }
369
+ dispose() {
370
+ for (const instance of this.instances.values()) {
371
+ // dispose instances created and referenced by the scope; this will be scoped and transient instances
372
+ // also make sure we don't dispose the current instance as that will cause a stack overflow
373
+ if (instance !== this && isDisposable(instance)) {
374
+ instance.dispose();
375
+ }
376
+ }
377
+ this.instances.clear();
378
+ }
379
+ getOrCreateServiceInstance(key, rootScope, ancestors) {
380
+ // if the service is registered direclty with the scoped service collection the parent collection will not be aware so check that first
381
+ if (this.parent.has(key)) {
382
+ const entry = this.services.get(key);
383
+ if (entry !== undefined && (entry.scope === "singleton" /* ServiceScope.singleton */ || entry.scope === "instance" /* ServiceScope.instance */)) {
384
+ // if the service is a singleton or instance call up the parent chain to get the instance
385
+ return this.parent.getOrCreateServiceInstance(key, rootScope, ancestors);
386
+ }
387
+ }
388
+ return super.getOrCreateServiceInstance(key, rootScope, ancestors);
389
+ }
390
+ }
382
391
  /** Represents an error for an options object instance that failed validation. */
383
392
  export class OptionsValidationError extends Error {
384
393
  constructor(message) {
@@ -428,4 +437,4 @@ class OptionsService {
428
437
  return options;
429
438
  }
430
439
  }
431
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2UtY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrSUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUF3Qix1QkFBdUIsQ0FBQyxDQUFDO0FBQ25HLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQWtCLGlCQUFpQixDQUFDLENBQUM7QUFDakYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFxQixvQkFBb0IsQ0FBQyxDQUFDO0FBRTFGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDO0FBQ3RDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQztBQVN4QixnRkFBZ0Y7QUFDaEYsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFTO0lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMscUNBQXNCLENBQUM7QUFDdEMsQ0FBQztBQUVELG1GQUFtRjtBQUNuRixNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVM7SUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQywyQ0FBeUIsQ0FBQztBQUN6QyxDQUFDO0FBRUQsbUZBQW1GO0FBQ25GLE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBUztJQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLDJDQUF5QixDQUFDO0FBQ3pDLENBQUM7QUFJRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUksWUFBNEM7SUFDNUUsTUFBTSxPQUFPLEdBQUcsT0FBTyxZQUFZLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3hGLE1BQU0sVUFBVSxHQUFpQyxVQUFVLE1BQVcsRUFBRSxXQUFtQixFQUFFLGNBQXNCO1FBQy9HLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO1NBQ3BGO1FBRUQsaUJBQWlCLENBQWlCLFVBQVUsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDO0lBRUYsVUFBVSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzdCLFVBQVUsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDbkQsVUFBVSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQy9CLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxVQUFVLENBQUMsUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFFeEMsVUFBVSxDQUFDLFNBQVMsR0FBRyxVQUFVLE9BQXVDO1FBQ3BFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztTQUN0RDtRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDbkMsQ0FBQyxDQUFBO0lBRUQsT0FBdUIsVUFBVSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFJLEdBQVcsRUFBRSxjQUFrQjtJQUM1RCxNQUFNLFVBQVUsR0FBaUMsRUFBRSxDQUFDO0lBQ3BELE1BQU0sT0FBTyxHQUFRLGdCQUFnQixDQUFJO1FBQ3JDLEdBQUc7UUFDSCxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7S0FDekUsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDeEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQW9DLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkYsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsS0FBMkIsRUFBRSxFQUFFO1FBQ25DLE9BQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDN0MsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7Z0JBQ3RCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtvQkFDekIsT0FBTyxDQUFDLElBQUksc0JBQXNCLENBQUMsWUFBWSxHQUFHLGVBQWUsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7b0JBQ2hHLE1BQU07aUJBQ1Q7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQU0sRUFBRSxJQUFpQyxFQUFXLEVBQUU7UUFDdEUsSUFBSSxLQUF5QyxDQUFDO1FBQzlDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0QsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7UUFFRCxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0lBRUYsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUksR0FBVztJQUN4QyxPQUFPLGdCQUFnQixDQUFJLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxJQUFTO0lBQzlCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsSUFBUztJQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFMUIsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUksVUFBMEIsRUFBRSxNQUFXLEVBQUUsS0FBYTtJQUNoRixNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsRCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBSSxNQUFXO0lBQ2pDLE9BQU8sT0FBTyxNQUFNLEtBQUssVUFBVSxJQUFJLE1BQU0sS0FBSyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztBQUNuRixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsR0FBUTtJQUMxQixPQUFxQixHQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUksTUFBVztJQUNoQyxPQUFPLE9BQU8sTUFBTSxLQUFLLFVBQVUsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQztBQUN0RyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBSSxNQUFXO0lBQ3BDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxJQUF5QixNQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQztBQUMzRixDQUFDO0FBRUQsdUZBQXVGO0FBQ3ZGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxLQUFLO0lBQ0Y7SUFBdEMsWUFBWSxPQUFlLEVBQVcsS0FBYTtRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEbUIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUUvQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBQ0o7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBR0g7SUFGckIsUUFBUSxDQUFLO0lBRXJCLFlBQTZCLGFBQWtEO1FBQWxELGtCQUFhLEdBQWIsYUFBYSxDQUFxQztJQUMvRSxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQTRCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ2hGO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxVQUFVO0lBS1U7SUFBc0Q7SUFKbEUsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7SUFDNUMsUUFBUSxDQUFXO0lBRTNCLGdIQUFnSDtJQUNoSCxZQUE2QixXQUFXLElBQUksR0FBRyxFQUF5QixFQUFXLFdBQVcsS0FBSztRQUF0RSxhQUFRLEdBQVIsUUFBUSxDQUFtQztRQUFXLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDL0YsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNYLDBKQUEwSjtZQUMxSixNQUFNLFdBQVcsR0FBd0MsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN4RixJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixzQ0FBdUIsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0Isc0NBQXVCLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDN0U7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBMEI7UUFDekMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBSSxPQUFvQixFQUFFLFFBQTJCO1FBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxjQUFjLENBQUksZ0JBQWlEO1FBQy9ELE9BQU8sWUFBWSxDQUFDLGdCQUFnQixDQUFDO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLENBQUM7WUFDakQsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxXQUFXLENBQUMsUUFBdUQ7UUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RixPQUFPLElBQUksTUFBTSxnQkFBaUIsU0FBUSxVQUFVO1lBQ2hEO2dCQUNJLDhJQUE4STtnQkFDOUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFbEYsSUFBSSxRQUFRLEVBQUU7b0JBQ1YsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNsQjtnQkFFRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsQ0FBQztZQUVELE9BQU87Z0JBQ0gsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUM1QyxxR0FBcUc7b0JBQ3JHLDJGQUEyRjtvQkFDM0YsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDN0MsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO3FCQUN0QjtpQkFDSjtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLENBQUM7WUFFUywwQkFBMEIsQ0FBQyxHQUFXLEVBQUUsU0FBd0IsRUFBRSxTQUE4QjtnQkFDdEcsdUlBQXVJO2dCQUN2SSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNyQyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyw2Q0FBMkIsSUFBSSxLQUFLLENBQUMsS0FBSywyQ0FBMEIsQ0FBQyxFQUFFO3dCQUMxRyx5RkFBeUY7d0JBQ3pGLE9BQU8sb0NBQW9DLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztxQkFDMUU7aUJBQ0o7Z0JBRUQsT0FBTyxLQUFLLENBQUMsMEJBQTBCLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2RSxDQUFDO1NBQ0osQ0FBQTtJQUNMLENBQUM7SUFFRCxVQUFVLENBQUksT0FBb0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsUUFBUSxDQUF5QixPQUFvQixFQUFFLElBQTRCLEVBQUUsT0FBcUM7UUFDdEgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsZ0JBQWdCLENBQXlCLE9BQW9CLEVBQUUsUUFBbUIsRUFBRSxPQUFxQztRQUNySCxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixPQUFPLENBQUMsR0FBRyx5QkFBeUIsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsK0ZBQStGO1FBRS9GLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLHdDQUF1QixFQUFFLE1BQU0sRUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVELGNBQWMsQ0FBeUIsT0FBb0IsRUFBRSxhQUFrRSxFQUFFLE9BQXFDO1FBQ2xLLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxzQ0FBdUIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxpQkFBaUIsQ0FBeUIsT0FBb0IsRUFBRSxhQUFrRSxFQUFFLE9BQXFDO1FBQ3JLLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyw0Q0FBMEIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxpQkFBaUIsQ0FBeUIsT0FBb0IsRUFBRSxhQUFrRSxFQUFFLE9BQXFDO1FBQ3JLLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyw0Q0FBMEIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxXQUFXLENBQXlCLE9BQW9CLEVBQUUsSUFBNEIsRUFBRSxPQUFxQztRQUN6SCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDaEcsQ0FBQztJQUVELG1CQUFtQixDQUF5QixPQUFvQixFQUFFLFFBQW1CLEVBQUUsT0FBcUM7UUFDeEgsSUFBSTtZQUNBLHNGQUFzRjtZQUN0RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNsRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsTUFBTTtZQUNGLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUF5QixPQUFvQixFQUFFLGFBQWtFLEVBQUUsT0FBcUM7UUFDckssT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxzQ0FBdUIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsb0JBQW9CLENBQXlCLE9BQW9CLEVBQUUsYUFBa0UsRUFBRSxPQUFxQztRQUN4SyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLDRDQUEwQixhQUFhLEVBQUUsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDO0lBQzFHLENBQUM7SUFFRCxvQkFBb0IsQ0FBeUIsT0FBb0IsRUFBRSxhQUFrRSxFQUFFLE9BQXFDO1FBQ3hLLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sNENBQTBCLGFBQWEsRUFBRSxPQUFPLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDMUcsQ0FBQztJQUVELEdBQUcsQ0FBSSxZQUFrQztRQUNyQyxNQUFNLEdBQUcsR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQztRQUMvRSxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsR0FBRyxDQUFJLFlBQWtDO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBSSxZQUFrQztRQUN4QyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDeEIsK0VBQStFO1lBQy9FLElBQUk7Z0JBQ0EsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pDO1lBQ0QsTUFBTSxHQUFFO1NBQ1g7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUVBQWlFO0lBQ2pFLE1BQU07UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRVMsMEJBQTBCLENBQUMsR0FBVyxFQUFFLFNBQXdCLEVBQUUsU0FBOEI7UUFDdEcsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sT0FBTyxDQUFDO1NBQ2xCO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekUsSUFBSSxLQUFLLENBQUMsS0FBSyx1Q0FBd0IsSUFBSSxLQUFLLENBQUMsS0FBSyw2Q0FBMkIsRUFBRTtZQUMvRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQXNCLEVBQUUsS0FBbUIsRUFBRSxhQUFzRCxFQUFFLE9BQXFDO1FBQzlKLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUvRSxJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLE9BQU8sQ0FBQyxHQUFHLHlCQUF5QixDQUFDLENBQUM7U0FDOUU7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsT0FBc0IsRUFBRSxLQUFtQixFQUFFLGFBQXNELEVBQUUsT0FBcUM7UUFDakssSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUN4QixPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlDLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBRUQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0RSxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0UsTUFBTSxNQUFNLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFekMsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxRQUFhLEVBQUUsS0FBbUI7UUFDM0QsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO1lBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUM3RDtRQUVELElBQUksUUFBUSxDQUFDLFdBQVcsS0FBSyxNQUFNLElBQUksUUFBUSxDQUFDLFdBQVcsS0FBSyxRQUFRLEVBQUU7WUFDdEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDeEQ7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBc0IsRUFBRSxLQUFtQjtRQUNsRSxNQUFNLGFBQWEsR0FBbUMsSUFBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLElBQUksYUFBYSxJQUFJLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO1NBQzdGO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFdBQXFDLEVBQUUsVUFBb0MsRUFBRSxRQUFnQjtRQUN4SCxJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsMkNBQTBCLElBQUksV0FBVyw2Q0FBMkIsRUFBRTtZQUNqRyxJQUFJLFVBQVUsdUNBQXdCLEVBQUU7Z0JBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLFFBQVEsK0RBQStELENBQUMsQ0FBQzthQUMvRztTQUNKO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQixDQUFJLFVBQTBCLEVBQUUsU0FBd0IsRUFBRSxTQUE4QjtRQUNqSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7WUFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sd0JBQXdCLENBQUksVUFBMEI7UUFDMUQsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1lBQ3BCLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztRQUVELElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9DO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsVUFBVSxDQUFDLEdBQUcseURBQXlELENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRU8scUJBQXFCLENBQUksS0FBdUIsRUFBRSxTQUF3QixFQUFFLFNBQThCO1FBQzlHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNmLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLHlJQUF5STtZQUN6SSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUVELElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxvQkFBb0IsQ0FBSSxJQUFvQixFQUFFLFNBQXdCLEVBQUUsU0FBOEI7UUFDMUcsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDNUQ7UUFFRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixJQUFJLENBQUMsSUFBSSx1Q0FBdUMsQ0FBQyxDQUFDO1NBQzdGO1FBRUQsSUFBSTtZQUNBLDBJQUEwSTtZQUMxSSxTQUFTLEdBQUcsU0FBUyxJQUFVLElBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU1QyxtREFBbUQ7WUFDbkQsU0FBUyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDNUIsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVyQixtRUFBbUU7WUFDbkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM3RSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxDQUFDO1lBRUgsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRTdDLE9BQU8sSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sR0FBRyxFQUFFO1lBQ1IsSUFBSSxHQUFHLFlBQVksS0FBSyxFQUFFO2dCQUN0QixNQUFNLElBQUksaUJBQWlCLENBQUMsK0NBQStDLElBQUksQ0FBQyxJQUFJLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ2pIO1lBRUQsTUFBTSxJQUFJLGlCQUFpQixDQUFDLCtDQUErQyxJQUFJLENBQUMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDcEc7SUFDTCxDQUFDO0NBQ0o7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLEtBQUs7SUFDN0MsWUFBWSxPQUFlO1FBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDSjtBQUVELE1BQU0sY0FBYztJQUNDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztJQUNuRCxTQUFTLEdBQXVCLEVBQUUsQ0FBQztJQUVwRCxrQkFBa0IsQ0FBQyxRQUEwQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUksT0FBb0IsRUFBRSxRQUEyQjtRQUNqRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsVUFBVSxDQUFJLE9BQW9CO1FBQzlCLElBQUksTUFBcUIsQ0FBQztRQUMxQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxJQUFJLFFBQVEsRUFBRTtnQkFDVixNQUFNLEdBQUcsUUFBUSxDQUFDO2dCQUNsQixNQUFNO2FBQ1Q7U0FDSjtRQUVELE1BQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFNUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRWhELElBQUksS0FBeUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxLQUFLLENBQUM7U0FDZjtRQUVELE9BQU8sTUFBTyxDQUFDO0lBQ25CLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUFZLEVBQUUsY0FBbUI7UUFDN0QseUdBQXlHO1FBQ3pHLElBQUksY0FBYyxFQUFFO1lBQ2hCLGdFQUFnRTtZQUNoRSxPQUFPLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUU7b0JBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3RDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSiJ9
440
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2UtY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1SUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUF3Qix1QkFBdUIsQ0FBQyxDQUFDO0FBQ25HLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQWtCLGlCQUFpQixDQUFDLENBQUM7QUFDakYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFxQixvQkFBb0IsQ0FBQyxDQUFDO0FBRTFGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDO0FBQ3RDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQztBQVN4QixnRkFBZ0Y7QUFDaEYsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFTO0lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMscUNBQXNCLENBQUM7QUFDdEMsQ0FBQztBQUVELG1GQUFtRjtBQUNuRixNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVM7SUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQywyQ0FBeUIsQ0FBQztBQUN6QyxDQUFDO0FBRUQsbUZBQW1GO0FBQ25GLE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBUztJQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLDJDQUF5QixDQUFDO0FBQ3pDLENBQUM7QUFJRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUksWUFBNEM7SUFDNUUsTUFBTSxPQUFPLEdBQUcsT0FBTyxZQUFZLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3hGLE1BQU0sVUFBVSxHQUFpQyxVQUFVLE1BQVcsRUFBRSxXQUFtQixFQUFFLGNBQXNCO1FBQy9HLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJ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
@@ -65,8 +65,11 @@ export interface IServiceRegistrationOptions {
65
65
  export interface IServiceRegistration {
66
66
  /** Registers a service using its required scope. Note: a service class must define a required scope decorator. */
67
67
  register<T, TInstance extends T>(service: IService<T>, ctor: Constructor<TInstance>, options?: IServiceRegistrationOptions): void;
68
- /** Registers a singleton instance that lives within the collection and is available to all child scopes. Note: if the instance implements IDisposable it will not be disposed automatically. */
69
- registerInstance<T, TInstance extends T>(service: IService<T>, instance: TInstance, options?: IServiceRegistrationOptions): void;
68
+ /**
69
+ * Registers a singleton instance that lives within the collection and is available to all child scopes. A constructor can be provided to create a new instance and return a reference to it.
70
+ * Note: if the instance implements IDisposable it will not be disposed automatically.
71
+ */
72
+ registerInstance<T, TInstance extends T>(service: IService<T>, instanceOrConstructor: TInstance | Constructor<TInstance>, options?: IServiceRegistrationOptions): TInstance;
70
73
  /** Registers a service that gets created once per service collection scope. */
71
74
  registerScoped<T, TInstance extends T>(service: IService<T>, ctorOrFactory: Constructor<TInstance> | IServiceFactory<TInstance>, options?: IServiceRegistrationOptions): void;
72
75
  /** Registers a service that gets created once and is available to all child scopes. */
@@ -90,6 +93,8 @@ export interface IServiceCollection {
90
93
  * Note: overwriting existing services are not allowed with scoped service collections.
91
94
  */
92
95
  createScope(register?: (registration: IServiceRegistration) => void): IScopedServiceCollection;
96
+ /** Creates a scoped service map that can be used for registering and providing scoped services to the current service collection. */
97
+ createScopeMap(): ScopedServiceMap;
93
98
  /** Gets an instance of the registered service. */
94
99
  get<T>(serviceOrKey: IService<T> | string): T;
95
100
  /** True if a service has been registered. */
@@ -144,19 +149,20 @@ export declare class SingletonServiceFactory<T> implements IServiceFactory<T> {
144
149
  create(services: IServiceCollection): T;
145
150
  }
146
151
  export declare class ServiceMap implements IServiceRegistration, IServiceCollection, IOptionsService, IInstantiationService {
147
- private readonly services;
148
- readonly isScoped: boolean;
149
- private readonly instances;
150
- private isFrozen?;
151
- /** Creates a new ServiceMap instance; note: the parameters are for internal purposes and should not be used. */
152
- constructor(services?: Map<string, IServiceEntry<any>>, isScoped?: boolean);
152
+ protected readonly services: Map<string, IServiceEntry>;
153
+ protected readonly instances: Map<string, any>;
154
+ protected isFrozen: boolean;
155
+ protected isScoped: boolean;
156
+ /** Creates a new ServiceMap instance with an optional parent if the ServiceMap should be scoped; note: this is used for internal purposes and should not be used directly. */
157
+ constructor(parent?: ServiceMap);
153
158
  addOptionsProvider(provider: IOptionsProvider): void;
154
159
  configureOptions<T>(options: IOptions<T>, callback: (options: T) => T): void;
155
160
  createInstance<T>(ctorOrInjectable: Constructor<T> | IInjectable<T>): T;
156
161
  createScope(register?: (registration: IServiceRegistration) => void): IScopedServiceCollection;
162
+ createScopeMap(): ScopedServiceMap;
157
163
  getOptions<T>(options: IOptions<T>): T;
158
164
  register<T, TInstance extends T>(service: IService<T>, ctor: Constructor<TInstance>, options?: IServiceRegistrationOptions): void;
159
- registerInstance<T, TInstance extends T>(service: IService<T>, instance: TInstance, options?: IServiceRegistrationOptions): void;
165
+ registerInstance<T, TInstance extends T>(service: IService<T>, instanceOrConstructor: TInstance | Constructor<TInstance>, options?: IServiceRegistrationOptions): TInstance;
160
166
  registerScoped<T, TInstance extends T>(service: IService<T>, ctorOrFactory: Constructor<TInstance> | IServiceFactory<TInstance>, options?: IServiceRegistrationOptions): void;
161
167
  registerSingleton<T, TInstance extends T>(service: IService<T>, ctorOrFactory: Constructor<TInstance> | IServiceFactory<TInstance>, options?: IServiceRegistrationOptions): void;
162
168
  registerTransient<T, TInstance extends T>(service: IService<T>, ctorOrFactory: Constructor<TInstance> | IServiceFactory<TInstance>, options?: IServiceRegistrationOptions): void;
@@ -170,7 +176,6 @@ export declare class ServiceMap implements IServiceRegistration, IServiceCollect
170
176
  tryGet<T>(serviceOrKey: IService<T> | string): T | undefined;
171
177
  /** Prevents items from being registered with the serivce map. */
172
178
  freeze(): void;
173
- protected getOrCreateServiceInstance(key: string, rootScope?: ServiceScope, ancestors?: Constructor<any>[]): any;
174
179
  private registerService;
175
180
  private tryRegisterService;
176
181
  private checkFactoryInstance;
@@ -181,6 +186,12 @@ export declare class ServiceMap implements IServiceRegistration, IServiceCollect
181
186
  private createServiceInstance;
182
187
  private createObjectInstance;
183
188
  }
189
+ export declare class ScopedServiceMap extends ServiceMap implements IScopedServiceCollection {
190
+ private readonly parent;
191
+ constructor(parent: ServiceMap);
192
+ dispose(): void;
193
+ getOrCreateServiceInstance(key: string, rootScope?: ServiceScope, ancestors?: Constructor<any>[]): any;
194
+ }
184
195
  /** Represents an error for an options object instance that failed validation. */
185
196
  export declare class OptionsValidationError extends Error {
186
197
  constructor(message: string);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OptionsValidationError = exports.ServiceMap = exports.SingletonServiceFactory = exports.ObjectCreateError = exports.createService = exports.createOptions = exports.createInjectable = exports.Transient = exports.Singleton = exports.Scoped = exports.IServiceCollection = exports.IOptionsService = exports.IInstantiationService = void 0;
3
+ exports.OptionsValidationError = exports.ScopedServiceMap = exports.ServiceMap = exports.SingletonServiceFactory = exports.ObjectCreateError = exports.createService = exports.createOptions = exports.createInjectable = exports.Transient = exports.Singleton = exports.Scoped = exports.IServiceCollection = exports.IOptionsService = exports.IInstantiationService = void 0;
4
4
  exports.IInstantiationService = createService("instantiation-service");
5
5
  exports.IOptionsService = createService("options-service");
6
6
  exports.IServiceCollection = createService("service-collection");
@@ -137,14 +137,14 @@ class SingletonServiceFactory {
137
137
  exports.SingletonServiceFactory = SingletonServiceFactory;
138
138
  class ServiceMap {
139
139
  services;
140
- isScoped;
141
140
  instances = new Map();
142
- isFrozen;
143
- /** Creates a new ServiceMap instance; note: the parameters are for internal purposes and should not be used. */
144
- constructor(services = new Map(), isScoped = false) {
145
- this.services = services;
146
- this.isScoped = isScoped;
147
- if (!isScoped) {
141
+ isFrozen = false;
142
+ isScoped = false;
143
+ /** Creates a new ServiceMap instance with an optional parent if the ServiceMap should be scoped; note: this is used for internal purposes and should not be used directly. */
144
+ constructor(parent) {
145
+ this.isScoped = !!parent;
146
+ this.services = new Map(parent?.services);
147
+ if (!parent) {
148
148
  // the thisFactory is used to return the appropriate ServiceMap instance since the IInstantiationService and IServiceCollection services need to be scoped
149
149
  const thisFactory = { create: service => service };
150
150
  this.registerService(exports.IInstantiationService, "scoped" /* ServiceScope.scoped */, thisFactory, { sealed: true });
@@ -164,39 +164,15 @@ class ServiceMap {
164
164
  : this.createObjectInstance(ctorOrInjectable);
165
165
  }
166
166
  createScope(register) {
167
- const parent = this;
168
- const getOrCreateServiceInstanceFromParent = this.getOrCreateServiceInstance.bind(this);
169
- return new class ScopedServiceMap extends ServiceMap {
170
- constructor() {
171
- // if registering new services we need to copy the current entries into a new map; otherwise, pass a reference to the parent's set of services
172
- super(register ? new Map(parent.services) : parent.services, /* isScoped */ true);
173
- if (register) {
174
- register(this);
175
- }
176
- this.freeze();
177
- }
178
- dispose() {
179
- for (const instance of this.instances.values()) {
180
- // dispose instances created and referenced by the scope; this will be scoped and transient instances
181
- // also make sure we don't dispose the current instance as that will cause a stack overflow
182
- if (instance !== this && isDisposable(instance)) {
183
- instance.dispose();
184
- }
185
- }
186
- this.instances.clear();
187
- }
188
- getOrCreateServiceInstance(key, rootScope, ancestors) {
189
- // if the service is registered direclty with the scoped service collection the parent collection will not be aware so check that first
190
- if (parent.has(key)) {
191
- const entry = this.services.get(key);
192
- if (entry !== undefined && (entry.scope === "singleton" /* ServiceScope.singleton */ || entry.scope === "instance" /* ServiceScope.instance */)) {
193
- // if the service is a singleton or instance call up the parent chain to get the instance
194
- return getOrCreateServiceInstanceFromParent(key, rootScope, ancestors);
195
- }
196
- }
197
- return super.getOrCreateServiceInstance(key, rootScope, ancestors);
198
- }
199
- };
167
+ const scopedServices = this.createScopeMap();
168
+ if (register) {
169
+ register(scopedServices);
170
+ }
171
+ scopedServices.freeze();
172
+ return scopedServices;
173
+ }
174
+ createScopeMap() {
175
+ return new ScopedServiceMap(this);
200
176
  }
201
177
  getOptions(options) {
202
178
  return this.get(exports.IOptionsService).getOptions(options);
@@ -204,16 +180,20 @@ class ServiceMap {
204
180
  register(service, ctor, options) {
205
181
  this.registerService(service, getServiceScope(ctor), ctor, options);
206
182
  }
207
- registerInstance(service, instance, options) {
208
- if (instance === undefined) {
183
+ registerInstance(service, instanceOrConstructor, options) {
184
+ if (instanceOrConstructor === undefined) {
209
185
  throw new Error("instance undefined");
210
186
  }
211
187
  if (this.isScoped && this.services.has(service.key)) {
212
188
  throw new Error(`Service with key (${service.key}) cannot be overridden.`);
213
189
  }
214
190
  // TODO: check if the instance constructor has a required scope - if so, verify its a singleton
191
+ const instance = isConstructor(instanceOrConstructor)
192
+ ? this.createInstance(instanceOrConstructor)
193
+ : instanceOrConstructor;
215
194
  this.instances.set(service.key, instance);
216
195
  this.services.set(service.key, { service, scope: "instance" /* ServiceScope.instance */, sealed: options && options.sealed });
196
+ return instance;
217
197
  }
218
198
  registerScoped(service, ctorOrFactory, options) {
219
199
  this.registerService(service, "scoped" /* ServiceScope.scoped */, ctorOrFactory, options);
@@ -268,6 +248,7 @@ class ServiceMap {
268
248
  freeze() {
269
249
  this.isFrozen = true;
270
250
  }
251
+ /** @internal */
271
252
  getOrCreateServiceInstance(key, rootScope, ancestors) {
272
253
  const entry = this.services.get(key);
273
254
  if (!entry) {
@@ -391,6 +372,35 @@ class ServiceMap {
391
372
  }
392
373
  }
393
374
  exports.ServiceMap = ServiceMap;
375
+ class ScopedServiceMap extends ServiceMap {
376
+ parent;
377
+ constructor(parent) {
378
+ super(parent);
379
+ this.parent = parent;
380
+ }
381
+ dispose() {
382
+ for (const instance of this.instances.values()) {
383
+ // dispose instances created and referenced by the scope; this will be scoped and transient instances
384
+ // also make sure we don't dispose the current instance as that will cause a stack overflow
385
+ if (instance !== this && isDisposable(instance)) {
386
+ instance.dispose();
387
+ }
388
+ }
389
+ this.instances.clear();
390
+ }
391
+ getOrCreateServiceInstance(key, rootScope, ancestors) {
392
+ // if the service is registered direclty with the scoped service collection the parent collection will not be aware so check that first
393
+ if (this.parent.has(key)) {
394
+ const entry = this.services.get(key);
395
+ if (entry !== undefined && (entry.scope === "singleton" /* ServiceScope.singleton */ || entry.scope === "instance" /* ServiceScope.instance */)) {
396
+ // if the service is a singleton or instance call up the parent chain to get the instance
397
+ return this.parent.getOrCreateServiceInstance(key, rootScope, ancestors);
398
+ }
399
+ }
400
+ return super.getOrCreateServiceInstance(key, rootScope, ancestors);
401
+ }
402
+ }
403
+ exports.ScopedServiceMap = ScopedServiceMap;
394
404
  /** Represents an error for an options object instance that failed validation. */
395
405
  class OptionsValidationError extends Error {
396
406
  constructor(message) {
@@ -441,4 +451,4 @@ class OptionsService {
441
451
  return options;
442
452
  }
443
453
  }
444
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NlcnZpY2UtY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrSWEsUUFBQSxxQkFBcUIsR0FBRyxhQUFhLENBQXdCLHVCQUF1QixDQUFDLENBQUM7QUFDdEYsUUFBQSxlQUFlLEdBQUcsYUFBYSxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDO0FBQ3BFLFFBQUEsa0JBQWtCLEdBQUcsYUFBYSxDQUFxQixvQkFBb0IsQ0FBQyxDQUFDO0FBRTFGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDO0FBQ3RDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQztBQVN4QixnRkFBZ0Y7QUFDaEYsU0FBZ0IsTUFBTSxDQUFDLElBQVM7SUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQ0FBc0IsQ0FBQztBQUN0QyxDQUFDO0FBRkQsd0JBRUM7QUFFRCxtRkFBbUY7QUFDbkYsU0FBZ0IsU0FBUyxDQUFDLElBQVM7SUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQywyQ0FBeUIsQ0FBQztBQUN6QyxDQUFDO0FBRkQsOEJBRUM7QUFFRCxtRkFBbUY7QUFDbkYsU0FBZ0IsU0FBUyxDQUFDLElBQVM7SUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQywyQ0FBeUIsQ0FBQztBQUN6QyxDQUFDO0FBRkQsOEJBRUM7QUFJRCxTQUFnQixnQkFBZ0IsQ0FBSSxZQUE0QztJQUM1RSxNQUFNLE9BQU8sR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDeEYsTUFBTSxVQUFVLEdBQWlDLFVBQVUsTUFBVyxFQUFFLFdBQW1CLEVBQUUsY0FBc0I7UUFDL0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLCtE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
454
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb2xsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NlcnZpY2UtY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SWEsUUFBQSxxQkFBcUIsR0FBRyxhQUFhLENBQXdCLHVCQUF1QixDQUFDLENBQUM7QUFDdEYsUUFBQSxlQUFlLEdBQUcsYUFBYSxDQUFrQixpQkFBaUIsQ0FBQyxDQUFDO0FBQ3BFLFFBQUEsa0JBQWtCLEdBQUcsYUFBYSxDQUFxQixvQkFBb0IsQ0FBQyxDQUFDO0FBRTFGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDO0FBQ3RDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQztBQVN4QixnRkFBZ0Y7QUFDaEYsU0FBZ0IsTUFBTSxDQUFDLElBQVM7SUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQ0FBc0IsQ0FBQztBQUN0QyxDQUFDO0FBRkQsd0JBRUM7QUFFRCxtRkFBbUY7QUFDbkYsU0FBZ0IsU0FBUyxDQUFDLElBQVM7SUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQywyQ0FBeUIsQ0FBQztBQUN6QyxDQUFDO0FBRkQsOEJBRUM7QUFFRCxtRkFBbUY7QUFDbkYsU0FBZ0IsU0FBUyxDQUFDLElBQVM7SUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQywyQ0FBeUIsQ0FBQztBQUN6QyxDQUFDO0FBRkQsOEJBRUM7QUFJRCxTQUFnQixnQkFBZ0IsQ0FBSSxZQUE0QztJQUM1RSxNQUFNLE9BQU8sR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDeEYsTUFBTSxVQUFVLEdBQWlDLFVBQVUsTUFBVyxFQUFFLFdBQW1CLEVBQUUsY0FBc0I7UUFDL0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLCtE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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shrub/core",
3
3
  "description": "A framework for modular server-side applications and front-end components.",
4
- "version": "0.5.84",
4
+ "version": "0.5.86",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -22,5 +22,5 @@
22
22
  "clean": "rimraf ./dist && rimraf tsconfig.tsbuildinfo",
23
23
  "test": "jest"
24
24
  },
25
- "gitHead": "b38d877441d2bfb638d2124c03ee7d03217b2640"
25
+ "gitHead": "096aa4c0e08fc79b200b76adc6243eac055b3c74"
26
26
  }