mnemonica 0.9.99780 → 0.9.99781
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/README.md +190 -13
- package/build/api/errors/exceptionConstructor.js +3 -3
- package/build/api/errors/throwModificationError.js +3 -3
- package/build/api/hooks/invokeHook.js +1 -1
- package/build/api/types/InstanceCreator.js +18 -5
- package/build/api/types/Mnemosyne.d.ts +1 -1
- package/build/api/types/Mnemosyne.js +19 -17
- package/build/api/types/Props.js +1 -1
- package/build/api/types/TypeProxy.js +4 -2
- package/build/api/types/createInstanceModificator.js +1 -1
- package/build/api/types/index.js +3 -3
- package/build/api/utils/index.d.ts +4 -4
- package/build/api/utils/index.js +9 -7
- package/build/constants/index.js +4 -1
- package/build/descriptors/errors/index.js +1 -1
- package/build/descriptors/index.d.ts +2 -2
- package/build/descriptors/index.js +2 -5
- package/build/descriptors/types/index.d.ts +5 -2
- package/build/descriptors/types/index.js +1 -1
- package/build/index.d.ts +5 -7
- package/build/index.js +4 -10
- package/build/types/index.d.ts +58 -1
- package/build/types/index.js +1 -1
- package/build/utils/index.js +7 -9
- package/build/utils/parse.js +2 -2
- package/package.json +21 -17
package/README.md
CHANGED
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
- [Symbols & Constants](#symbols--constants)
|
|
44
44
|
- [Configuration Options](#configuration-options)
|
|
45
45
|
- [AI Agent Usage Guide](#ai-agent-usage-guide)
|
|
46
|
+
- [Usage with TypeØmatica](#usage-with-typeomatica)
|
|
46
47
|
- [Examples](#examples)
|
|
47
48
|
|
|
48
49
|
---
|
|
@@ -77,7 +78,7 @@ Think of it as a mathematical function `f(x) => y` where `this` is your persiste
|
|
|
77
78
|
npm install mnemonica
|
|
78
79
|
```
|
|
79
80
|
|
|
80
|
-
**Requirements:** Node.js >=
|
|
81
|
+
**Requirements:** Node.js >=18 <24
|
|
81
82
|
|
|
82
83
|
---
|
|
83
84
|
|
|
@@ -262,6 +263,20 @@ import {
|
|
|
262
263
|
ApplyFunction, // apply(entity, Ctor, args) => S
|
|
263
264
|
CallFunction, // call(entity, Ctor, ...args) => S
|
|
264
265
|
BindFunction, // bind(entity, Ctor) => (...args) => S
|
|
266
|
+
|
|
267
|
+
// createTypesCollection types
|
|
268
|
+
CreateTypesCollectionFunction, // (config?: constructorOptions) => TypesCollection
|
|
269
|
+
TypesCollection, // Interface returned by createTypesCollection
|
|
270
|
+
|
|
271
|
+
// Configuration helper types
|
|
272
|
+
HideInstanceMethodsOptions, // constructorOptions & { exposeInstanceMethods: true }
|
|
273
|
+
IsHidingMethods<Config>, // Conditional type for exposeInstanceMethods: false detection
|
|
274
|
+
|
|
275
|
+
// Utility types
|
|
276
|
+
Proto<P, T>, // Merges parent P and child T types
|
|
277
|
+
SN, // String-Name map for nested constructors
|
|
278
|
+
SubtypesMap, // Map<string, TypeClass>
|
|
279
|
+
TypeAbsorber, // Main define() function interface with overloads
|
|
265
280
|
} from 'mnemonica';
|
|
266
281
|
```
|
|
267
282
|
|
|
@@ -373,28 +388,62 @@ const subInstance = createSub('arg1', 'arg2');
|
|
|
373
388
|
|
|
374
389
|
TypeScript decorator for class-based definitions.
|
|
375
390
|
|
|
391
|
+
**Usage Patterns:**
|
|
392
|
+
|
|
376
393
|
```typescript
|
|
377
394
|
import { decorate } from 'mnemonica';
|
|
378
395
|
|
|
396
|
+
// 1. Basic decoration
|
|
379
397
|
@decorate()
|
|
380
398
|
class MyClass {
|
|
381
399
|
field: number = 123;
|
|
382
400
|
}
|
|
383
401
|
|
|
384
|
-
// With configuration
|
|
385
|
-
@decorate({ strictChain: false })
|
|
402
|
+
// 2. With configuration
|
|
403
|
+
@decorate({ strictChain: false, blockErrors: true })
|
|
386
404
|
class ConfiguredClass {
|
|
387
|
-
|
|
405
|
+
field: number = 123;
|
|
388
406
|
}
|
|
389
407
|
|
|
390
|
-
// Nested decoration
|
|
408
|
+
// 3. Nested decoration (define as subtype)
|
|
391
409
|
@decorate()
|
|
392
|
-
class ParentClass {
|
|
410
|
+
class ParentClass {
|
|
411
|
+
parentField: string = 'parent';
|
|
412
|
+
}
|
|
393
413
|
|
|
394
414
|
@decorate(ParentClass)
|
|
395
|
-
class ChildClass {
|
|
415
|
+
class ChildClass {
|
|
416
|
+
childField: string = 'child';
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// Create parent instance, then child from it
|
|
420
|
+
const parent = new ParentClass();
|
|
421
|
+
const child = new parent.ChildClass();
|
|
422
|
+
|
|
423
|
+
// 4. Parent with configuration
|
|
424
|
+
@decorate(ParentClass, { strictChain: false })
|
|
425
|
+
class ConfiguredChildClass {
|
|
426
|
+
field: number = 123;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
// 5. Using decorated class as decorator (advanced)
|
|
430
|
+
// After a class is decorated with @decorate(), it can be used
|
|
431
|
+
// as a decorator for nested types
|
|
432
|
+
@decorate()
|
|
433
|
+
class BaseDecorator {
|
|
434
|
+
baseField: number = 100;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
// Use BaseDecorator as a decorator
|
|
438
|
+
// @ts-ignore - TypeScript limitation with callable class types
|
|
439
|
+
@BaseDecorator()
|
|
440
|
+
class ExtendedClass {
|
|
441
|
+
extField: number = 200;
|
|
442
|
+
}
|
|
396
443
|
```
|
|
397
444
|
|
|
445
|
+
**Note:** When using decorated classes as decorators (pattern 5), TypeScript may require `@ts-ignore` due to type checking limitations with callable class types.
|
|
446
|
+
|
|
398
447
|
#### `registerHook(Constructor, hookType, callback)`
|
|
399
448
|
|
|
400
449
|
Registers a hook for a specific constructor.
|
|
@@ -456,6 +505,61 @@ const myCollection = createTypesCollection();
|
|
|
456
505
|
const MyType = myCollection.define('MyType', function () {});
|
|
457
506
|
```
|
|
458
507
|
|
|
508
|
+
**`TypesCollection` Interface:**
|
|
509
|
+
|
|
510
|
+
`createTypesCollection()` returns a `TypesCollection` object with the following interface:
|
|
511
|
+
|
|
512
|
+
```typescript
|
|
513
|
+
interface TypesCollection {
|
|
514
|
+
// Define a new type in this collection
|
|
515
|
+
define: TypeAbsorber;
|
|
516
|
+
|
|
517
|
+
// Look up a type by its nested path (e.g., 'TypeName.SubType')
|
|
518
|
+
lookup: (path: string) => TypeClass | undefined;
|
|
519
|
+
|
|
520
|
+
// Register a hook for all types in this collection
|
|
521
|
+
registerHook(hookType: hooksTypes, callback: hook): void;
|
|
522
|
+
|
|
523
|
+
// Invoke hooks manually (advanced usage)
|
|
524
|
+
invokeHook(hookType: hooksTypes, opts: hooksOpts): void;
|
|
525
|
+
|
|
526
|
+
// Register a flow checker that runs before hooks
|
|
527
|
+
registerFlowChecker(callback: () => unknown): void;
|
|
528
|
+
|
|
529
|
+
// Map of all types defined in this collection
|
|
530
|
+
subtypes: Map<string, TypeClass>;
|
|
531
|
+
|
|
532
|
+
// Registered hooks for this collection
|
|
533
|
+
hooks: Record<string, hook[]>;
|
|
534
|
+
}
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
**Example with full configuration:**
|
|
538
|
+
|
|
539
|
+
```js
|
|
540
|
+
const { createTypesCollection } = require('mnemonica');
|
|
541
|
+
|
|
542
|
+
// Create isolated collection with custom config
|
|
543
|
+
const myCollection = createTypesCollection({
|
|
544
|
+
strictChain: false,
|
|
545
|
+
blockErrors: false,
|
|
546
|
+
exposeInstanceMethods: false // Hide instance methods for cleaner API
|
|
547
|
+
});
|
|
548
|
+
|
|
549
|
+
// Define types in isolation
|
|
550
|
+
const MyType = myCollection.define('MyType', function (data) {
|
|
551
|
+
Object.assign(this, data);
|
|
552
|
+
});
|
|
553
|
+
|
|
554
|
+
// Collection-level hooks
|
|
555
|
+
myCollection.registerHook('preCreation', (opts) => {
|
|
556
|
+
console.log('Creating in myCollection:', opts.TypeName);
|
|
557
|
+
});
|
|
558
|
+
|
|
559
|
+
// Look up types within the collection
|
|
560
|
+
const FoundType = myCollection.lookup('MyType');
|
|
561
|
+
```
|
|
562
|
+
|
|
459
563
|
#### `getProps(instance)` / `setProps(instance, values)`
|
|
460
564
|
|
|
461
565
|
Get or set internal properties of an instance.
|
|
@@ -476,6 +580,8 @@ setProps(instance, { __timestamp__: Date.now() });
|
|
|
476
580
|
|
|
477
581
|
All mnemonica instances have the following methods:
|
|
478
582
|
|
|
583
|
+
> **Note:** You can disable instance methods by setting `exposeInstanceMethods: false` in the type configuration. When disabled, these methods are still accessible via `getProps(instance).__self__` or the standalone `utils` export.
|
|
584
|
+
|
|
479
585
|
#### `.extract()`
|
|
480
586
|
|
|
481
587
|
Extracts all inherited properties into a single flat object.
|
|
@@ -564,7 +670,7 @@ All instances have non-enumerable internal properties:
|
|
|
564
670
|
| `.__stack__` | `string` | Stack trace (if `submitStack: true` in config) |
|
|
565
671
|
| `.__creator__` | `TypeDef` | Instance creator reference |
|
|
566
672
|
| `.__timestamp__` | `number` | Creation timestamp (ms since epoch) |
|
|
567
|
-
| `.__self__` | `object` | Self reference to the instance |
|
|
673
|
+
| `.__self__` | `object` | Self reference to the instance (useful when `exposeInstanceMethods: false`) |
|
|
568
674
|
|
|
569
675
|
---
|
|
570
676
|
|
|
@@ -758,15 +864,60 @@ Pass options as the third argument to `define()`:
|
|
|
758
864
|
|
|
759
865
|
```js
|
|
760
866
|
define('SomeType', function () {}, {
|
|
761
|
-
strictChain: true,
|
|
762
|
-
blockErrors: true,
|
|
763
|
-
submitStack: false,
|
|
764
|
-
awaitReturn: true,
|
|
867
|
+
strictChain: true, // Only allow sub-instances from current type
|
|
868
|
+
blockErrors: true, // Disallow construction if error in prototype chain
|
|
869
|
+
submitStack: false, // Collect stack trace as __stack__ property
|
|
870
|
+
awaitReturn: true, // Ensure await new Constructor() returns value
|
|
765
871
|
ModificationConstructor: fn, // Custom modification constructor
|
|
766
|
-
asClass: false // Force class mode (auto-detected by default)
|
|
872
|
+
asClass: false, // Force class mode (auto-detected by default)
|
|
873
|
+
exposeInstanceMethods: true // Expose instance methods (default: true for backward compatibility)
|
|
767
874
|
});
|
|
768
875
|
```
|
|
769
876
|
|
|
877
|
+
### Configuration Option Details
|
|
878
|
+
|
|
879
|
+
| Option | Type | Default | Description |
|
|
880
|
+
|--------|------|---------|-------------|
|
|
881
|
+
| `strictChain` | `boolean` | `true` | If `true`, only direct subtypes can be instantiated. If `false`, allows using subtypes from parent chains. |
|
|
882
|
+
| `blockErrors` | `boolean` | `true` | If `true`, prevents construction when errors exist in the prototype chain. |
|
|
883
|
+
| `submitStack` | `boolean` | `false` | If `true`, collects stack trace and stores as `__stack__` property on instances. |
|
|
884
|
+
| `awaitReturn` | `boolean` | `true` | For async constructors, ensures `await new Constructor()` returns the instance. |
|
|
885
|
+
| `asClass` | `boolean` | `auto` | Force class mode detection. Usually auto-detected from constructor syntax. |
|
|
886
|
+
| `exposeInstanceMethods` | `boolean` | `true` | Expose instance methods on the instance. Set to `false` to hide from TypeScript types. See details below. |
|
|
887
|
+
| `ModificationConstructor` | `Function` | - | Custom constructor function for internal instance modification. |
|
|
888
|
+
|
|
889
|
+
### `exposeInstanceMethods` Option
|
|
890
|
+
|
|
891
|
+
Controls whether instance methods (`extract()`, `pick()`, `parent()`, `clone`, `fork()`, `exception()`, `sibling()`) are exposed on the instance type.
|
|
892
|
+
|
|
893
|
+
| Value | Behavior |
|
|
894
|
+
|-------|----------|
|
|
895
|
+
| `true` (default) | All instance methods are available directly on instances |
|
|
896
|
+
| `false` | Methods are hidden from TypeScript types but still accessible via prototype chain |
|
|
897
|
+
|
|
898
|
+
**Use Case:** Set to `false` when you want a cleaner public API and don't want internal mnemonica methods cluttering autocomplete/IntelliSense.
|
|
899
|
+
|
|
900
|
+
```typescript
|
|
901
|
+
import { define, getProps, utils } from 'mnemonica';
|
|
902
|
+
|
|
903
|
+
// With exposeInstanceMethods: false
|
|
904
|
+
const CleanType = define('CleanType', function (data) {
|
|
905
|
+
Object.assign(this, data);
|
|
906
|
+
}, { exposeInstanceMethods: false });
|
|
907
|
+
|
|
908
|
+
const instance = new CleanType({ value: 42 });
|
|
909
|
+
|
|
910
|
+
// Methods not available directly on instance (TypeScript error)
|
|
911
|
+
// instance.extract(); // Error!
|
|
912
|
+
|
|
913
|
+
// But still accessible via getProps
|
|
914
|
+
const props = getProps(instance);
|
|
915
|
+
props.__self__.extract(); // Works!
|
|
916
|
+
|
|
917
|
+
// Or using utils
|
|
918
|
+
utils.extract(instance); // Works!
|
|
919
|
+
```
|
|
920
|
+
|
|
770
921
|
### Override Default Config for Collection
|
|
771
922
|
|
|
772
923
|
```js
|
|
@@ -777,6 +928,32 @@ defaultTypes[SymbolConfig].blockErrors = false;
|
|
|
777
928
|
|
|
778
929
|
---
|
|
779
930
|
|
|
931
|
+
## Usage with TypeØmatica
|
|
932
|
+
|
|
933
|
+
TypeØmatica is a companion library that provides strict runtime type checking using JavaScript Proxies. It enforces types at runtime exactly as TypeScript expects at compile time.
|
|
934
|
+
|
|
935
|
+
```typescript
|
|
936
|
+
import { BaseClass } from 'typeomatica';
|
|
937
|
+
import { decorate } from 'mnemonica';
|
|
938
|
+
|
|
939
|
+
@decorate()
|
|
940
|
+
class User extends BaseClass {
|
|
941
|
+
name: string = 'default';
|
|
942
|
+
age: number = 0;
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
const user = new User();
|
|
946
|
+
user.name = 'John'; // ✓ Works - string to string
|
|
947
|
+
user.age = 25; // ✓ Works - number to number
|
|
948
|
+
|
|
949
|
+
// @ts-ignore
|
|
950
|
+
user.age = '25'; // ✗ TypeError: Type Mismatch at runtime!
|
|
951
|
+
```
|
|
952
|
+
|
|
953
|
+
For complete documentation including integration patterns, error handling, and advanced usage, see [TypeØmatica.md](TypeØmatica.md).
|
|
954
|
+
|
|
955
|
+
---
|
|
956
|
+
|
|
780
957
|
## AI Agent Usage Guide
|
|
781
958
|
|
|
782
959
|
This section helps AI agents understand and work with mnemonica programmatically.
|
|
@@ -8,7 +8,7 @@ const errors_2 = require("../errors");
|
|
|
8
8
|
const utils_1 = require("../../utils");
|
|
9
9
|
const { parse } = utils_1.utils;
|
|
10
10
|
const utils_2 = require("../utils");
|
|
11
|
-
const {
|
|
11
|
+
const { makeErrorModificatorType } = utils_2.default;
|
|
12
12
|
const InstanceModificator_1 = require("../types/InstanceModificator");
|
|
13
13
|
const Props_1 = require("../types/Props");
|
|
14
14
|
const checkThrowArgs = (instance, target, error, args) => {
|
|
@@ -102,7 +102,7 @@ const prepareException = function (target, error, ...args) {
|
|
|
102
102
|
ExceptionCreator.config = Object.assign({}, __creator__.config);
|
|
103
103
|
ExceptionCreator.config.blockErrors = false;
|
|
104
104
|
ExceptionCreator.existentInstance = error;
|
|
105
|
-
ExceptionCreator.ModificatorType =
|
|
105
|
+
ExceptionCreator.ModificatorType = makeErrorModificatorType(TypeName, function () {
|
|
106
106
|
return exceptionConsctructHandler.call(this, {
|
|
107
107
|
instance,
|
|
108
108
|
TypeName,
|
|
@@ -115,4 +115,4 @@ const prepareException = function (target, error, ...args) {
|
|
|
115
115
|
return new ExceptionCreator.InstanceModificator();
|
|
116
116
|
};
|
|
117
117
|
exports.default = prepareException;
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uQ29uc3RydWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2Vycm9ycy9leGNlcHRpb25Db25zdHJ1Y3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBRWIsK0NBQTRDO0FBQzVDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxxQkFBUyxDQUFDO0FBRTFCLHFEQUF1RDtBQUN2RCxNQUFNLEVBQ0wsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixHQUFHLG9CQUFXLENBQUM7QUFFaEIsc0NBQW1EO0FBRW5ELHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLEdBQUcsYUFBSyxDQUFDO0FBRVYsb0NBQWtDO0FBRWxDLE1BQU0sRUFDTCx1QkFBdUIsRUFDdkIsR0FBRyxlQUFVLENBQUM7QUFFZixzRUFBdUU7QUFFdkUsMENBQWtEO0FBRWxELE1BQU0sY0FBYyxHQUFHLENBQUUsUUFBaUIsRUFBRSxNQUFlLEVBQUUsS0FBWSxFQUFFLElBQWUsRUFBRyxFQUFFO0lBRTlGLElBQUksVUFBVSxDQUFDO0lBV2YsSUFBSyxDQUFDLE1BQU0sRUFBRyxDQUFDO1FBQ2YsTUFBTSxJQUFJLHlCQUF5QixDQUFFLDJDQUEyQyxDQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUssQ0FBQyxDQUFFLEtBQUssWUFBWSxLQUFLLENBQUUsRUFBRyxDQUFDO1FBQ25DLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFFLGdDQUFnQyxDQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUssQ0FBQyxDQUFFLFVBQVUsWUFBWSxLQUFLLENBQUUsRUFBRyxDQUFDO1FBQ3hDLE9BQU87SUFDUixDQUFDO0lBRUQsR0FBRyxDQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7UUFDNUIsR0FBRztZQUNGLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUM7S0FDRCxDQUFFLENBQUM7SUFFSixHQUFHLENB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USxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFFLENBQUM7SUFFaEQsTUFBTSxLQUFLLEdBQUcsSUFBQSxpQkFBUyxFQUFDLFFBQVEsQ0FBVSxDQUFDO0lBRTNDLE1BQU0sRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLEdBQUcsS0FBSyxDQUFDO0lBR1YsTUFBTSxFQUNMLEtBQUssRUFBRSxTQUFTLEVBQ2hCLFFBQVEsRUFDUixHQUFHLFFBQVEsQ0FBQztJQVViLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBRSxXQUFXLENBQUUsQ0FBQztJQUN0RCxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBRSxDQUFDO0lBQ2xFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRTVDLGdCQUFnQixDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUUxQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsdUJBQXVCLENBQUUsUUFBUSxFQUFFO1FBQ3JFLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFFLElBQUksRUFBRTtZQUM3QyxRQUFRO1lBQ1IsUUFBUTtZQUNSLFNBQVM7WUFDVCxJQUFJO1lBQ0osS0FBSztTQUNMLENBQUUsQ0FBQztJQUNMLENBQUMsQ0FBRSxDQUFDO0lBRUosZ0JBQWdCLENBQUMsbUJBQW1CLEdBQUcsSUFBQSw2Q0FBdUIsRUFBRSxnQkFBZ0IsQ0FBRSxDQUFDO0lBRW5GLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0FBQ25ELENBQUMsQ0FBQztBQUVGLGtCQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3QgeyBvZHAgfSA9IGNvbnN0YW50cztcblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3Qge1xuXHRXUk9OR19BUkdVTUVOVFNfVVNFRCxcblx0V1JPTkdfSU5TVEFOQ0VfSU5WT0NBVElPTlxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgeyBjbGVhbnVwU3RhY2ssIGdldFN0YWNrIH0gZnJvbSAnLi4vZXJyb3JzJztcblxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5jb25zdCB7XG5cdHBhcnNlXG59ID0gdXRpbHM7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcblxuY29uc3Qge1xuXHRtYWtlRmFrZU1vZGlmaWNhdG9yVHlwZVxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi4vdHlwZXMvSW5zdGFuY2VNb2RpZmljYXRvcic7XG5cbmltcG9ydCB7IF9nZXRQcm9wcywgUHJvcHMgfSBmcm9tICcuLi90eXBlcy9Qcm9wcyc7XG5cbmNvbnN0IGNoZWNrVGhyb3dBcmdzID0gKCBpbnN0YW5jZTogdW5rbm93biwgdGFyZ2V0OiB1bmtub3duLCBlcnJvcjogRXJyb3IsIGFyZ3M6IHVua25vd25bXSApID0+IHtcblxuXHRsZXQgd3JvbmdUaHJvdztcblxuXHQvKiB1bnJlYWNoZWJsZSwgY3VzIGluc3RhbmNlIGJvdW5kIGluc2lkZSBvZiBNbmVtb3N5bmVcblx0aWYgKGluc3RhbmNlICE9PSBPYmplY3QoaW5zdGFuY2UpKSB7XG5cdFx0d3JvbmdUaHJvdyA9IG5ldyBXUk9OR19BUkdVTUVOVFNfVVNFRCgnXCJ0aGlzXCIgbXVzdCBiZSBhbiBvYmplY3QnKTtcblx0fVxuXHRpZiAoaW5zdGFuY2UuY29uc3RydWN0b3JbU3ltYm9sQ29uc3RydWN0b3JOYW1lXSAhPT0gaW5zdGFuY2UuY29uc3RydWN0b3IubmFtZSkge1xuXHRcdHdyb25nVGhyb3cgPSBuZXcgV1JPTkdfQVJHVU1FTlRTX1VTRUQoJ1widGhpc1wiIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG5cdH1cblx0Ki9cblxuXHRpZiAoICF0YXJnZXQgKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX0lOU1RBTkNFX0lOVk9DQVRJT04oICdleGNlcHRpb24gc2hvdWxkIGJlIG1hZGUgd2l0aCBuZXcga2V5d29yZCcgKTtcblx0fVxuXG5cdGlmICggISggZXJyb3IgaW5zdGFuY2VvZiBFcnJvciApICkge1xuXHRcdHdyb25nVGhyb3cgPSBuZXcgV1JPTkdfQVJHVU1FTlRTX1VTRUQoICdlcnJvciBtdXN0IGJlIGluc3RhbmNlb2YgRXJyb3InICk7XG5cdH1cblxuXHRpZiAoICEoIHdyb25nVGhyb3cgaW5zdGFuY2VvZiBFcnJvciApICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdG9kcCggd3JvbmdUaHJvdywgJ2luc3RhbmNlJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gaW5zdGFuY2U7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCB3cm9uZ1Rocm93LCAnZXJyb3InLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBlcnJvcjtcblx0XHR9XG5cdH0gKTtcblxuXHRvZHAoIHdyb25nVGhyb3csICdhcmdzJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gYXJncztcblx0XHR9XG5cdH0gKTtcblxuXHR0aHJvdyB3cm9uZ1Rocm93O1xuXG59O1xuXG5jb25zdCBleGNlcHRpb25Db25zY3RydWN0SGFuZGxlciA9IGZ1bmN0aW9uICggdGhpczogRXJyb3IsIG9wdHM6IHsgWyBpbmRleDogc3RyaW5nIF06IHVua25vd24gfSApIHtcblxuXHRjb25zdCB7XG5cdFx0aW5zdGFuY2UsXG5cdFx0VHlwZU5hbWUsXG5cdFx0dHlwZVN0YWNrLFxuXHRcdGFyZ3MsXG5cdFx0ZXJyb3Jcblx0fSA9IG9wdHMgYXMge1xuXHRcdGluc3RhbmNlOiB7IGV4dHJhY3Q6ICgpID0+IHVua25vd24gfTtcblx0XHRUeXBlTmFtZTogc3RyaW5nO1xuXHRcdHR5cGVTdGFjazogc3RyaW5nW107XG5cdFx0YXJnczogdW5rbm93bltdO1xuXHRcdGVycm9yOiBFcnJvcjtcblx0fTtcblxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRjb25zdCBleGNlcHRpb24gPSB0aGlzO1xuXG5cdG9kcCggZXhjZXB0aW9uLCAnYXJncycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdvcmlnaW5hbEVycm9yJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gZXJyb3I7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdpbnN0YW5jZScsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGluc3RhbmNlO1xuXHRcdH1cblx0fSApO1xuXG5cdG9kcCggZXhjZXB0aW9uLCAnZXh0cmFjdCcsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIGluc3RhbmNlLmV4dHJhY3QoKTtcblx0XHRcdH07XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdwYXJzZScsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHBhcnNlKCBpbnN0YW5jZSApO1xuXHRcdFx0fTtcblx0XHR9XG5cdH0gKTtcblxuXHQvLyByZWFsIGVycm9yIHN0YWNrXG5cdGNvbnN0IGVycm9yU3RhY2sgPSBleGNlcHRpb24uc3RhY2shLnNwbGl0KCAnXFxuJyApO1xuXG5cdGNvbnN0IHN0YWNrOiBzdHJpbmdbXSA9IFtdO1xuXG5cdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBsaWZlY3ljbGUgb2YgWyAke1R5cGVOYW1lfSBdIHRyYWNlZCAtLT5gO1xuXG5cdGdldFN0YWNrLmNhbGwoIGV4Y2VwdGlvbiwgdGl0bGUsIFtdLCBwcmVwYXJlRXhjZXB0aW9uICk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHQvLyBAdHMtaWdub3JlXG5cdHN0YWNrLnB1c2goIC4uLmV4Y2VwdGlvbi5zdGFjayApO1xuXG5cdHN0YWNrLnB1c2goICc8LS0gd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yIC0tPicgKTtcblxuXHRlcnJvclN0YWNrLmZvckVhY2goICggbGluZTogc3RyaW5nICkgPT4ge1xuXHRcdGlmICggIXN0YWNrLmluY2x1ZGVzKCBsaW5lICkgKSB7XG5cdFx0XHRzdGFjay5wdXNoKCBsaW5lICk7XG5cdFx0fVxuXHR9ICk7XG5cblx0c3RhY2sucHVzaCggJ1xcbjwtLSBvZiBjb25zdHJ1Y3RvciBkZWZpbml0aW9ucyBzdGFjayAtLT4nICk7XG5cdHN0YWNrLnB1c2goIC4uLnR5cGVTdGFjayApO1xuXG5cdGNvbnN0IGV4Y2VwdGlvblN0YWNrID0gY2xlYW51cFN0YWNrKCBzdGFjayApLmpvaW4oICdcXG4nICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdzdGFjaycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGV4Y2VwdGlvblN0YWNrO1xuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIGV4Y2VwdGlvbjtcblxuXG59O1xuXG5jb25zdCBwcmVwYXJlRXhjZXB0aW9uID0gZnVuY3Rpb24gKCB0aGlzOiBvYmplY3QsIHRhcmdldDogdW5rbm93biwgZXJyb3I6IEVycm9yLCAuLi5hcmdzOiB1bmtub3duW10gKSB7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG5cdGNvbnN0IGluc3RhbmNlID0gdGhpcztcblxuXHRjaGVja1Rocm93QXJncyggaW5zdGFuY2UsIHRhcmdldCwgZXJyb3IsIGFyZ3MgKTtcblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fLFxuXHRcdF9fY3JlYXRvcl9fXG5cdH0gPSBwcm9wcztcblxuXG5cdGNvbnN0IHtcblx0XHRzdGFjazogdHlwZVN0YWNrLFxuXHRcdFR5cGVOYW1lXG5cdH0gPSBfX3R5cGVfXztcblxuXHQvKiBzaG9ydCB3YXksIG1ha2VzIGhvb2tzIGNhbGxzLCB3aWxsIG5vdCB1c2VcblxuXHRjb25zdCB0eXBlID0gT2JqZWN0LmNyZWF0ZShfX3R5cGVfXyk7XG5cdHR5cGUuY29uZmlnLmJsb2NrRXJyb3JzID0gZmFsc2U7XG5cblx0bGV0IGVycm9yZWQgPSBuZXcgSW5zdGFuY2VDcmVhdG9yKHR5cGUsIGVycm9yLCBhcmdzKTtcblx0Ki9cblxuXHRjb25zdCBFeGNlcHRpb25DcmVhdG9yID0gT2JqZWN0LmNyZWF0ZSggX19jcmVhdG9yX18gKTtcblx0RXhjZXB0aW9uQ3JlYXRvci5jb25maWcgPSBPYmplY3QuYXNzaWduKCB7fSwgX19jcmVhdG9yX18uY29uZmlnICk7XG5cdEV4Y2VwdGlvbkNyZWF0b3IuY29uZmlnLmJsb2NrRXJyb3JzID0gZmFsc2U7XG5cblx0RXhjZXB0aW9uQ3JlYXRvci5leGlzdGVudEluc3RhbmNlID0gZXJyb3I7XG5cdCBcblx0RXhjZXB0aW9uQ3JlYXRvci5Nb2RpZmljYXRvclR5cGUgPSBtYWtlRmFrZU1vZGlmaWNhdG9yVHlwZSggVHlwZU5hbWUsIGZ1bmN0aW9uICh0aGlzOiBFcnJvcikge1xuXHRcdHJldHVybiBleGNlcHRpb25Db25zY3RydWN0SGFuZGxlci5jYWxsKCB0aGlzLCB7XG5cdFx0XHRpbnN0YW5jZSxcblx0XHRcdFR5cGVOYW1lLFxuXHRcdFx0dHlwZVN0YWNrLFxuXHRcdFx0YXJncyxcblx0XHRcdGVycm9yXG5cdFx0fSApO1xuXHR9ICk7XG5cblx0RXhjZXB0aW9uQ3JlYXRvci5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIEV4Y2VwdGlvbkNyZWF0b3IgKTtcblxuXHRyZXR1cm4gbmV3IEV4Y2VwdGlvbkNyZWF0b3IuSW5zdGFuY2VNb2RpZmljYXRvcigpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgcHJlcGFyZUV4Y2VwdGlvbjtcbiJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uQ29uc3RydWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2Vycm9ycy9leGNlcHRpb25Db25zdHJ1Y3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBRWIsK0NBQTRDO0FBQzVDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxxQkFBUyxDQUFDO0FBRTFCLHFEQUF1RDtBQUN2RCxNQUFNLEVBQ0wsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixHQUFHLG9CQUFXLENBQUM7QUFFaEIsc0NBQW1EO0FBRW5ELHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLEdBQUcsYUFBSyxDQUFDO0FBRVYsb0NBQWtDO0FBRWxDLE1BQU0sRUFDTCx3QkFBd0IsRUFDeEIsR0FBRyxlQUFVLENBQUM7QUFFZixzRUFBdUU7QUFFdkUsMENBQWtEO0FBRWxELE1BQU0sY0FBYyxHQUFHLENBQUUsUUFBaUIsRUFBRSxNQUFlLEVBQUUsS0FBWSxFQUFFLElBQWUsRUFBRyxFQUFFO0lBRTlGLElBQUksVUFBVSxDQUFDO0lBV2YsSUFBSyxDQUFDLE1BQU0sRUFBRyxDQUFDO1FBQ2YsTUFBTSxJQUFJLHlCQUF5QixDQUFFLDJDQUEyQyxDQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUssQ0FBQyxDQUFFLEtBQUssWUFBWSxLQUFLLENBQUUsRUFBRyxDQUFDO1FBQ25DLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFFLGdDQUFnQyxDQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUssQ0FBQyxDQUFFLFVBQVUsWUFBWSxLQUFLLENBQUUsRUFBRyxDQUFDO1FBQ3hDLE9BQU87SUFDUixDQUFDO0lBRUQsR0FBRyxDQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7UUFDNUIsR0FBRztZQUNGLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUM7S0FDRCxDQUFFLENBQUM7SUFFSixHQUFHLENB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QVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBRSxDQUFDO0lBRWhELE1BQU0sS0FBSyxHQUFHLElBQUEsaUJBQVMsRUFBQyxRQUFRLENBQVUsQ0FBQztJQUUzQyxNQUFNLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxHQUFHLEtBQUssQ0FBQztJQUdWLE1BQU0sRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUNoQixRQUFRLEVBQ1IsR0FBRyxRQUFRLENBQUM7SUFVYixNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUUsV0FBVyxDQUFFLENBQUM7SUFDdEQsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUUsQ0FBQztJQUNsRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUU1QyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFMUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLHdCQUF3QixDQUFFLFFBQVEsRUFBRTtRQUN0RSxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBRSxJQUFJLEVBQUU7WUFDN0MsUUFBUTtZQUNSLFFBQVE7WUFDUixTQUFTO1lBQ1QsSUFBSTtZQUNKLEtBQUs7U0FDTCxDQUFFLENBQUM7SUFDTCxDQUFDLENBQUUsQ0FBQztJQUVKLGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLElBQUEsNkNBQXVCLEVBQUUsZ0JBQWdCLENBQUUsQ0FBQztJQUVuRixPQUFPLElBQUksZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztBQUNuRCxDQUFDLENBQUM7QUFFRixrQkFBZSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmNvbnN0IHsgb2RwIH0gPSBjb25zdGFudHM7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmNvbnN0IHtcblx0V1JPTkdfQVJHVU1FTlRTX1VTRUQsXG5cdFdST05HX0lOU1RBTkNFX0lOVk9DQVRJT05cbn0gPSBFcnJvcnNUeXBlcztcblxuaW1wb3J0IHsgY2xlYW51cFN0YWNrLCBnZXRTdGFjayB9IGZyb20gJy4uL2Vycm9ycyc7XG5cbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRwYXJzZVxufSA9IHV0aWxzO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IHtcblx0bWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlXG59ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHsgbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IgfSBmcm9tICcuLi90eXBlcy9JbnN0YW5jZU1vZGlmaWNhdG9yJztcblxuaW1wb3J0IHsgX2dldFByb3BzLCBQcm9wcyB9IGZyb20gJy4uL3R5cGVzL1Byb3BzJztcblxuY29uc3QgY2hlY2tUaHJvd0FyZ3MgPSAoIGluc3RhbmNlOiB1bmtub3duLCB0YXJnZXQ6IHVua25vd24sIGVycm9yOiBFcnJvciwgYXJnczogdW5rbm93bltdICkgPT4ge1xuXG5cdGxldCB3cm9uZ1Rocm93O1xuXG5cdC8qIHVucmVhY2hlYmxlLCBjdXMgaW5zdGFuY2UgYm91bmQgaW5zaWRlIG9mIE1uZW1vc3luZVxuXHRpZiAoaW5zdGFuY2UgIT09IE9iamVjdChpbnN0YW5jZSkpIHtcblx0XHR3cm9uZ1Rocm93ID0gbmV3IFdST05HX0FSR1VNRU5UU19VU0VEKCdcInRoaXNcIiBtdXN0IGJlIGFuIG9iamVjdCcpO1xuXHR9XG5cdGlmIChpbnN0YW5jZS5jb25zdHJ1Y3RvcltTeW1ib2xDb25zdHJ1Y3Rvck5hbWVdICE9PSBpbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lKSB7XG5cdFx0d3JvbmdUaHJvdyA9IG5ldyBXUk9OR19BUkdVTUVOVFNfVVNFRCgnXCJ0aGlzXCIgbXVzdCBiZSBhbiBvYmplY3QnKTtcblx0fVxuXHQqL1xuXG5cdGlmICggIXRhcmdldCApIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfSU5TVEFOQ0VfSU5WT0NBVElPTiggJ2V4Y2VwdGlvbiBzaG91bGQgYmUgbWFkZSB3aXRoIG5ldyBrZXl3b3JkJyApO1xuXHR9XG5cblx0aWYgKCAhKCBlcnJvciBpbnN0YW5jZW9mIEVycm9yICkgKSB7XG5cdFx0d3JvbmdUaHJvdyA9IG5ldyBXUk9OR19BUkdVTUVOVFNfVVNFRCggJ2Vycm9yIG11c3QgYmUgaW5zdGFuY2VvZiBFcnJvcicgKTtcblx0fVxuXG5cdGlmICggISggd3JvbmdUaHJvdyBpbnN0YW5jZW9mIEVycm9yICkgKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0b2RwKCB3cm9uZ1Rocm93LCAnaW5zdGFuY2UnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBpbnN0YW5jZTtcblx0XHR9XG5cdH0gKTtcblxuXHRvZHAoIHdyb25nVGhyb3csICdlcnJvcicsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdH1cblx0fSApO1xuXG5cdG9kcCggd3JvbmdUaHJvdywgJ2FyZ3MnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBhcmdzO1xuXHRcdH1cblx0fSApO1xuXG5cdHRocm93IHdyb25nVGhyb3c7XG5cbn07XG5cbmNvbnN0IGV4Y2VwdGlvbkNvbnNjdHJ1Y3RIYW5kbGVyID0gZnVuY3Rpb24gKCB0aGlzOiBFcnJvciwgb3B0czogeyBbIGluZGV4OiBzdHJpbmcgXTogdW5rbm93biB9ICkge1xuXG5cdGNvbnN0IHtcblx0XHRpbnN0YW5jZSxcblx0XHRUeXBlTmFtZSxcblx0XHR0eXBlU3RhY2ssXG5cdFx0YXJncyxcblx0XHRlcnJvclxuXHR9ID0gb3B0cyBhcyB7XG5cdFx0aW5zdGFuY2U6IHsgZXh0cmFjdDogKCkgPT4gdW5rbm93biB9O1xuXHRcdFR5cGVOYW1lOiBzdHJpbmc7XG5cdFx0dHlwZVN0YWNrOiBzdHJpbmdbXTtcblx0XHRhcmdzOiB1bmtub3duW107XG5cdFx0ZXJyb3I6IEVycm9yO1xuXHR9O1xuXG5cblx0IFxuXHRjb25zdCBleGNlcHRpb24gPSB0aGlzO1xuXG5cdG9kcCggZXhjZXB0aW9uLCAnYXJncycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdvcmlnaW5hbEVycm9yJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gZXJyb3I7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdpbnN0YW5jZScsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGluc3RhbmNlO1xuXHRcdH1cblx0fSApO1xuXG5cdG9kcCggZXhjZXB0aW9uLCAnZXh0cmFjdCcsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIGluc3RhbmNlLmV4dHJhY3QoKTtcblx0XHRcdH07XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdwYXJzZScsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHBhcnNlKCBpbnN0YW5jZSApO1xuXHRcdFx0fTtcblx0XHR9XG5cdH0gKTtcblxuXHQvLyByZWFsIGVycm9yIHN0YWNrXG5cdGNvbnN0IGVycm9yU3RhY2sgPSBleGNlcHRpb24uc3RhY2shLnNwbGl0KCAnXFxuJyApO1xuXG5cdGNvbnN0IHN0YWNrOiBzdHJpbmdbXSA9IFtdO1xuXG5cdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBsaWZlY3ljbGUgb2YgWyAke1R5cGVOYW1lfSBdIHRyYWNlZCAtLT5gO1xuXG5cdGdldFN0YWNrLmNhbGwoIGV4Y2VwdGlvbiwgdGl0bGUsIFtdLCBwcmVwYXJlRXhjZXB0aW9uICk7XG5cblx0IFxuXHRzdGFjay5wdXNoKCAuLi4oZXhjZXB0aW9uLnN0YWNrIGFzIHVua25vd24gYXMgc3RyaW5nW10pICk7XG5cblx0c3RhY2sucHVzaCggJzwtLSB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3IgLS0+JyApO1xuXG5cdGVycm9yU3RhY2suZm9yRWFjaCggKCBsaW5lOiBzdHJpbmcgKSA9PiB7XG5cdFx0aWYgKCAhc3RhY2suaW5jbHVkZXMoIGxpbmUgKSApIHtcblx0XHRcdHN0YWNrLnB1c2goIGxpbmUgKTtcblx0XHR9XG5cdH0gKTtcblxuXHRzdGFjay5wdXNoKCAnXFxuPC0tIG9mIGNvbnN0cnVjdG9yIGRlZmluaXRpb25zIHN0YWNrIC0tPicgKTtcblx0c3RhY2sucHVzaCggLi4udHlwZVN0YWNrICk7XG5cblx0Y29uc3QgZXhjZXB0aW9uU3RhY2sgPSBjbGVhbnVwU3RhY2soIHN0YWNrICkuam9pbiggJ1xcbicgKTtcblxuXHRvZHAoIGV4Y2VwdGlvbiwgJ3N0YWNrJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gZXhjZXB0aW9uU3RhY2s7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4gZXhjZXB0aW9uO1xuXG5cbn07XG5cbmNvbnN0IHByZXBhcmVFeGNlcHRpb24gPSBmdW5jdGlvbiAoIHRoaXM6IG9iamVjdCwgdGFyZ2V0OiB1bmtub3duLCBlcnJvcjogRXJyb3IsIC4uLmFyZ3M6IHVua25vd25bXSApIHtcblxuXHQgXG5cdGNvbnN0IGluc3RhbmNlID0gdGhpcztcblxuXHRjaGVja1Rocm93QXJncyggaW5zdGFuY2UsIHRhcmdldCwgZXJyb3IsIGFyZ3MgKTtcblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fLFxuXHRcdF9fY3JlYXRvcl9fXG5cdH0gPSBwcm9wcztcblxuXG5cdGNvbnN0IHtcblx0XHRzdGFjazogdHlwZVN0YWNrLFxuXHRcdFR5cGVOYW1lXG5cdH0gPSBfX3R5cGVfXztcblxuXHQvKiBzaG9ydCB3YXksIG1ha2VzIGhvb2tzIGNhbGxzLCB3aWxsIG5vdCB1c2VcblxuXHRjb25zdCB0eXBlID0gT2JqZWN0LmNyZWF0ZShfX3R5cGVfXyk7XG5cdHR5cGUuY29uZmlnLmJsb2NrRXJyb3JzID0gZmFsc2U7XG5cblx0bGV0IGVycm9yZWQgPSBuZXcgSW5zdGFuY2VDcmVhdG9yKHR5cGUsIGVycm9yLCBhcmdzKTtcblx0Ki9cblxuXHRjb25zdCBFeGNlcHRpb25DcmVhdG9yID0gT2JqZWN0LmNyZWF0ZSggX19jcmVhdG9yX18gKTtcblx0RXhjZXB0aW9uQ3JlYXRvci5jb25maWcgPSBPYmplY3QuYXNzaWduKCB7fSwgX19jcmVhdG9yX18uY29uZmlnICk7XG5cdEV4Y2VwdGlvbkNyZWF0b3IuY29uZmlnLmJsb2NrRXJyb3JzID0gZmFsc2U7XG5cblx0RXhjZXB0aW9uQ3JlYXRvci5leGlzdGVudEluc3RhbmNlID0gZXJyb3I7XG5cdCBcblx0RXhjZXB0aW9uQ3JlYXRvci5Nb2RpZmljYXRvclR5cGUgPSBtYWtlRXJyb3JNb2RpZmljYXRvclR5cGUoIFR5cGVOYW1lLCBmdW5jdGlvbiAodGhpczogRXJyb3IpIHtcblx0XHRyZXR1cm4gZXhjZXB0aW9uQ29uc2N0cnVjdEhhbmRsZXIuY2FsbCggdGhpcywge1xuXHRcdFx0aW5zdGFuY2UsXG5cdFx0XHRUeXBlTmFtZSxcblx0XHRcdHR5cGVTdGFjayxcblx0XHRcdGFyZ3MsXG5cdFx0XHRlcnJvclxuXHRcdH0gKTtcblx0fSApO1xuXG5cdEV4Y2VwdGlvbkNyZWF0b3IuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBFeGNlcHRpb25DcmVhdG9yICk7XG5cblx0cmV0dXJuIG5ldyBFeGNlcHRpb25DcmVhdG9yLkluc3RhbmNlTW9kaWZpY2F0b3IoKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHByZXBhcmVFeGNlcHRpb247XG4iXX0=
|
|
@@ -7,7 +7,7 @@ const errors_1 = require("../../descriptors/errors");
|
|
|
7
7
|
const { BASE_MNEMONICA_ERROR } = errors_1.ErrorsTypes;
|
|
8
8
|
const _1 = require("./");
|
|
9
9
|
const utils_1 = require("../utils");
|
|
10
|
-
const {
|
|
10
|
+
const { makeErrorModificatorType } = utils_1.default;
|
|
11
11
|
const utils_2 = require("../../utils");
|
|
12
12
|
const { parse, parent, extract } = utils_2.utils;
|
|
13
13
|
const InstanceModificator_1 = require("../types/InstanceModificator");
|
|
@@ -40,7 +40,7 @@ const throwModificationError = function (error) {
|
|
|
40
40
|
},
|
|
41
41
|
enumerable: true
|
|
42
42
|
});
|
|
43
|
-
self.ModificatorType =
|
|
43
|
+
self.ModificatorType = makeErrorModificatorType(TypeName);
|
|
44
44
|
self.InstanceModificator = (0, InstanceModificator_1.makeInstanceModificator)(self);
|
|
45
45
|
const erroredInstance = new self.InstanceModificator();
|
|
46
46
|
let errorProto = Reflect.getPrototypeOf(erroredInstance);
|
|
@@ -122,4 +122,4 @@ const throwModificationError = function (error) {
|
|
|
122
122
|
throw erroredInstance;
|
|
123
123
|
};
|
|
124
124
|
exports.throwModificationError = throwModificationError;
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3dNb2RpZmljYXRpb25FcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZXJyb3JzL3Rocm93TW9kaWZpY2F0aW9uRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFJYiwrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxTQUFTLEdBQ1QsR0FBRyxxQkFBUyxDQUFDO0FBR2QscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLHlCQUE0QztBQUU1QyxvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLHVCQUF1QixFQUN2QixHQUFHLGVBQVUsQ0FBQztBQUVmLHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxhQUFLLENBQUM7QUFFVixzRUFBdUU7QUFjaEUsTUFBTSxzQkFBc0IsR0FBRyxVQUF5QyxLQUFxQjtJQUluRyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsTUFBTSxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQUUsRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUNoQixFQUNELElBQUksRUFDSixHQUFHLElBQUksQ0FBQztJQU1ULE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO0lBRXZELElBQUssS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUcsQ0FBQztRQUUxQyxLQUFLLENBQUMsT0FBbUIsQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBRSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxPQUFtQixDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV6QyxNQUFNLEtBQUssQ0FBQztJQUViLENBQUM7SUFFRCxHQUFHLENBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1FBQzlCLEdBQUc7WUFDRixPQUFPLGVBQWUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsVUFBVSxFQUFHLElBQUk7S0FDakIsQ0FBRSxDQUFDO0lBRUosTUFBTSxPQUFPLEdBQVksQ0FBRSxlQUFlLENBQUUsQ0FBQztJQUU3QyxHQUFHLENBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtRQUN0QixHQUFHO1lBQ0YsT0FBTyxPQUFPLENBQUM7UUFDaEIsQ0FBQztRQUNELFVBQVUsRUFBRyxJQUFJO0tBQ2pCLENBQUUsQ0FBQztJQUNKLE1BQU0sT0FBTyxHQUFZLEVBQUUsQ0FBQztJQUM1QixHQUFHLENBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtRQUN0QixHQUFHO1lBQ0YsT0FBTyxPQUFPLENBQUM7UUFDaEIsQ0FBQztRQUNELFVBQVUsRUFBRyxJQUFJO0tBQ2pCLENBQUUsQ0FBQztJQUVKLElBQUksQ0FBQyxlQUFlLEdBQUcsdUJBQXVCLENBQUUsUUFBUSxDQUFFLENBQUM7SUFFM0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUEsNkNBQXVCLEVBQUUsSUFBMEMsQ0FBbUQsQ0FBQztJQUdsSixNQUFNLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBRXZELElBQUksVUFBVSxHQUFrQixPQUFPLENBQUMsY0FBYyxDQUFFLGVBQWUsQ0FBRSxDQUFDO0lBQzFFLElBQUksbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLE9BQVEsVUFBVSxFQUFHLENBQUM7UUFDckIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBRSxVQUFVLENBQUUsQ0FBQztRQU96RCxJQUNDLFdBQVcsS0FBSyxJQUFJLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssU0FBUztZQUNsRSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLEVBQ3JELENBQUM7WUFDRixtQkFBbUIsR0FBRyxJQUFJLENBQUM7WUFDM0IsTUFBTTtRQUNQLENBQUM7UUFDRCxVQUFVLEdBQUcsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFHRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFFLFVBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFTcEUsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0lBRTNCLElBQUssS0FBSyxZQUFZLG9CQUFvQixFQUFHLENBQUM7UUFFN0MsS0FBSyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUMsS0FBZSxDQUFFLENBQUM7SUFFckMsQ0FBQztTQUFNLENBQUM7UUFFUCxNQUFNLEtBQUssR0FBRyx1QkFBdUIsUUFBUSxlQUFlLENBQUM7UUFFN0QsV0FBUSxDQUFDLElBQUksQ0FBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSw4QkFBc0IsQ0FBRSxDQUFDO1FBRXBFLEtBQUssQ0FBQyxJQUFJLENBQUUsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFFLENBQUM7UUFFdkMsTUFBTSxVQUFVLEdBQUksS0FBSyxDQUFDLEtBQWlCLENBQUMsS0FBSyxDQUFFLElBQUksQ0FBRSxDQUFDO1FBRTFELEtBQUssQ0FBQyxJQUFJLENBQUUsa0NBQWtDLENBQUUsQ0FBQztRQUVqRCxVQUFVLENBQUMsT0FBTyxDQUFFLENBQUUsSUFBWSxFQUFHLEVBQUU7WUFDdEMsSUFBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUUsSUFBSSxDQUFFLEVBQUcsQ0FBQztnQkFDL0IsS0FBSyxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0YsQ0FBQyxDQUFFLENBQUM7UUFFSixLQUFLLENBQUMsSUFBSSxDQUFFLDRDQUE0QyxDQUFFLENBQUM7UUFDM0QsS0FBSyxDQUFDLElBQUksQ0FBRSxHQUFHLFNBQVMsQ0FBRSxDQUFDO0lBRTVCLENBQUM7SUFFRCxNQUFNLG9CQUFvQixHQUFHLElBQUEsZUFBWSxFQUFFLEtBQUssQ0FBRSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUUsQ0FBQztJQU9oRSxHQUFHLENBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRTtRQUM5QixHQUFHO1lBQ0YsT0FBTyxvQkFBb0IsQ0FBQztRQUM3QixDQUFDO0tBQ0QsQ0FBRSxDQUFDO0lBRUosSUFBSSxDQUFDLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztJQUV6QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1osSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBR3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEVBQ0wsSUFBSSxFQUNKLFVBQVUsR0FDVixHQUFHLE9BQU8sQ0FBQztZQUNaLElBQUssSUFBSSxDQUFDLEdBQUcsQ0FBRSxJQUFJLENBQUUsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFFLElBQUksQ0FBRSxFQUFHLENBQUM7Z0JBQ2xELE9BQU87WUFDUixDQUFDO1FBQ0YsQ0FBQztRQU1ELEdBQUcsQ0FBRSxlQUFlLEVBQUUsTUFBTSxFQUFFO1lBQzdCLEdBQUc7Z0JBQ0YsT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDO1NBQ0QsQ0FBRSxDQUFDO1FBRUosR0FBRyxDQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUU7WUFDdEMsR0FBRztnQkFDRixPQUFPLEtBQUssQ0FBQztZQUNkLENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixHQUFHLENBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRTtZQUNqQyxHQUFHO2dCQUNGLE9BQU8sZUFBZSxDQUFDO1lBQ3hCLENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixHQUFHLENBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRTtZQUNoQyxHQUFHO2dCQUNGLE9BQU8sR0FBRyxFQUFFO29CQUNYLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQztZQUNILENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixHQUFHLENBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRTtZQUM5QixHQUFHO2dCQUNGLE9BQU8sR0FBRyxFQUFFO29CQUNYLE9BQU8sS0FBSyxDQUFFLGVBQWUsQ0FBRSxDQUFDO2dCQUNqQyxDQUFDLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBRSxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sZUFBZSxDQUFDO0FBRXZCLENBQUMsQ0FBQztBQTdMVyxRQUFBLHNCQUFzQiwwQkE2TGpDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7IE1uZW1vbmljYUVycm9yIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdE1ORU1PTklDQSxcbn0gPSBjb25zdGFudHM7XG5cblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3Qge1xuXHRCQVNFX01ORU1PTklDQV9FUlJPUlxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgeyBjbGVhbnVwU3RhY2ssIGdldFN0YWNrIH0gZnJvbSAnLi8nO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdG1ha2VGYWtlTW9kaWZpY2F0b3JUeXBlXG59ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5jb25zdCB7XG5cdHBhcnNlLFxuXHRwYXJlbnQsXG5cdGV4dHJhY3Rcbn0gPSB1dGlscztcblxuaW1wb3J0IHsgbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IgfSBmcm9tICcuLi90eXBlcy9JbnN0YW5jZU1vZGlmaWNhdG9yJztcblxuLy8gSW5zdGFuY2UgY3JlYXRvciBjb250ZXh0IHR5cGVcbnR5cGUgSW5zdGFuY2VDcmVhdG9yQ29udGV4dCA9IHtcblx0VHlwZU5hbWU6IHN0cmluZztcblx0dHlwZTogeyBzdGFjazogc3RyaW5nIH07XG5cdGFyZ3M6IHVua25vd25bXTtcblx0TW9kaWZpY2F0b3JUeXBlOiBDYWxsYWJsZUZ1bmN0aW9uO1xuXHRJbnN0YW5jZU1vZGlmaWNhdG9yOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4geyBzdGFjazogc3RyaW5nW10gfTtcblx0aW5oZXJpdGVkSW5zdGFuY2U/OiB1bmtub3duO1xuXHRpbnZva2VQb3N0SG9va3MoKTogeyB0eXBlOiBTZXQ8dW5rbm93bj47IGNvbGxlY3Rpb246IFNldDx1bmtub3duPiB9O1xuXHRba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcblxuZXhwb3J0IGNvbnN0IHRocm93TW9kaWZpY2F0aW9uRXJyb3IgPSBmdW5jdGlvbiAoIHRoaXM6IEluc3RhbmNlQ3JlYXRvckNvbnRleHQsIGVycm9yOiBNbmVtb25pY2FFcnJvciApIHtcblxuXHQvLyBJbnN0YW5jZUNyZWF0b3Jcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG5cdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdGNvbnN0IHtcblx0XHRUeXBlTmFtZSxcblx0XHR0eXBlOiB7XG5cdFx0XHRzdGFjazogdHlwZVN0YWNrXG5cdFx0fSxcblx0XHRhcmdzXG5cdH0gPSBzZWxmO1xuXG5cdC8vIGlmICggZXJyb3JbIFN5bWJvbENvbnN0cnVjdG9yTmFtZSBdICkge1xuXHQvLyBcdGRlYnVnZ2VyO1xuXHQvLyB9XG5cblx0Y29uc3QgZXhjZXB0aW9uUmVhc29uID0gZXJyb3IuZXhjZXB0aW9uUmVhc29uIHx8IGVycm9yO1xuXG5cdGlmICggZXJyb3IuZXhjZXB0aW9uUmVhc29uICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHQoZXJyb3IucmVhc29ucyBhcyBFcnJvcltdKS5wdXNoKCBlcnJvci5leGNlcHRpb25SZWFzb24gKTtcblx0XHQoZXJyb3Iuc3VycGx1cyBhcyBFcnJvcltdKS5wdXNoKCBlcnJvciApO1xuXG5cdFx0dGhyb3cgZXJyb3I7XG5cblx0fVxuXG5cdG9kcCggZXJyb3IsICdleGNlcHRpb25SZWFzb24nLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBleGNlcHRpb25SZWFzb247XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9ICk7XG5cblx0Y29uc3QgcmVhc29uczogRXJyb3JbXSA9IFsgZXhjZXB0aW9uUmVhc29uIF07XG5cblx0b2RwKCBlcnJvciwgJ3JlYXNvbnMnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiByZWFzb25zO1xuXHRcdH0sXG5cdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0fSApO1xuXHRjb25zdCBzdXJwbHVzOiBFcnJvcltdID0gW107XG5cdG9kcCggZXJyb3IsICdzdXJwbHVzJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gc3VycGx1cztcblx0XHR9LFxuXHRcdGVudW1lcmFibGUgOiB0cnVlXG5cdH0gKTtcblxuXHRzZWxmLk1vZGlmaWNhdG9yVHlwZSA9IG1ha2VGYWtlTW9kaWZpY2F0b3JUeXBlKCBUeXBlTmFtZSApO1xuXG5cdHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBzZWxmIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gKSBhcyBJbnN0YW5jZUNyZWF0b3JDb250ZXh0WydJbnN0YW5jZU1vZGlmaWNhdG9yJ107XG5cblx0Ly8gbGV0IGVycm9yZWRJbnN0YW5jZSA9IG5ldyBzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IoKTtcblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvcigpO1xuXG5cdGxldCBlcnJvclByb3RvOiBvYmplY3QgfCBudWxsID0gUmVmbGVjdC5nZXRQcm90b3R5cGVPZiggZXJyb3JlZEluc3RhbmNlICk7XG5cdGxldCBpc01uZW1vbmljYUluc3RhbmNlID0gZmFsc2U7XG5cdHdoaWxlICggZXJyb3JQcm90byApIHtcblx0XHRjb25zdCB0ZXN0VG9Qcm90byA9IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoIGVycm9yUHJvdG8gKTtcblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IG51bGwpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHRpZiAoXG5cdFx0XHR0ZXN0VG9Qcm90byAhPT0gbnVsbCAmJiB0ZXN0VG9Qcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSBNTkVNT05JQ0EgJiZcblx0XHRcdE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlc3RUb1Byb3RvLCAnY29uc3RydWN0b3InKVxuXHRcdCkge1xuXHRcdFx0aXNNbmVtb25pY2FJbnN0YW5jZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0ZXJyb3JQcm90byA9IHRlc3RUb1Byb3RvO1xuXHR9XG5cblx0Ly8gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHRjb25zdCByZXN1bHQgPSBSZWZsZWN0LnNldFByb3RvdHlwZU9mKCBlcnJvclByb3RvIGFzIG9iamVjdCwgZXJyb3IpO1xuXHQvLyBsZXQgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHQvLyBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuXHQvLyBcdE9iamVjdC5zZXRQcm90b3R5cGVPZihlcnJvclByb3RvLCBlcnJvcik7XG5cdC8vIFx0Ly8gdW5yZWFjaGFibGVcblx0Ly8gXHRyZXN1bHQgPSB0cnVlO1xuXHQvLyB9XG5cdC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XG5cblx0Y29uc3Qgc3RhY2s6IHN0cmluZ1tdID0gW107XG5cblx0aWYgKCBlcnJvciBpbnN0YW5jZW9mIEJBU0VfTU5FTU9OSUNBX0VSUk9SICkge1xuXG5cdFx0c3RhY2sucHVzaCggZXJyb3Iuc3RhY2sgYXMgc3RyaW5nICk7XG5cblx0fSBlbHNlIHtcblxuXHRcdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBjcmVhdGlvbiBvZiBbICR7VHlwZU5hbWV9IF0gdHJhY2VkIC0tPmA7XG5cblx0XHRnZXRTdGFjay5jYWxsKCBlcnJvcmVkSW5zdGFuY2UsIHRpdGxlLCBbXSwgdGhyb3dNb2RpZmljYXRpb25FcnJvciApO1xuXG5cdFx0c3RhY2sucHVzaCggLi4uZXJyb3JlZEluc3RhbmNlLnN0YWNrICk7XG5cblx0XHRjb25zdCBlcnJvclN0YWNrID0gKGVycm9yLnN0YWNrIGFzIHN0cmluZyApLnNwbGl0KCAnXFxuJyApO1xuXG5cdFx0c3RhY2sucHVzaCggJzwtLSB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3IgLS0+JyApO1xuXG5cdFx0ZXJyb3JTdGFjay5mb3JFYWNoKCAoIGxpbmU6IHN0cmluZyApID0+IHtcblx0XHRcdGlmICggIXN0YWNrLmluY2x1ZGVzKCBsaW5lICkgKSB7XG5cdFx0XHRcdHN0YWNrLnB1c2goIGxpbmUgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRzdGFjay5wdXNoKCAnXFxuPC0tIG9mIGNvbnN0cnVjdG9yIGRlZmluaXRpb25zIHN0YWNrIC0tPicgKTtcblx0XHRzdGFjay5wdXNoKCAuLi50eXBlU3RhY2sgKTtcblxuXHR9XG5cblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlU3RhY2sgPSBjbGVhbnVwU3RhY2soIHN0YWNrICkuam9pbiggJ1xcbicgKTtcblxuXHQvLyBzdGFydGluZyBmcm9tIE5vZGUuanMgdjIyIHdlIHNob3VsZCBkZWZpbmUgdGhpcyBwcm9wZXJ0eSB0aHJvdWdoIG9kcFxuXHQvLyB0aGF0IHdhcyB1bm5lY2Vzc2FyeSBmb3IgdjIwLCB0aG91Z2ggc2VlbXMgbmV3IHY4IG9wdGltaXplZCBjb21waWxlclxuXHQvLyBpcyBnYXRoZXJpbmcgdmFsdWUgZnJvbSBkZWVwIGNoYWluIGFuZCB3aGlsZSBjb21wYXJpbmcgaXQgd2l0aCBcblx0Ly8gYXNzaWdubWVudCBvcGVyYXRvciwgdGhlbiBpdCB3aWxsIG5vdCBjcmVhdGUgdGhpcyBwcm9wZXJ0eSBcblx0Ly8gc28gd2UgbmVlZCBkaXJlY3QgcHJvcGVydHkgZGVjbGFyYXRpb24gaGVyZSAuLi5cblx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdzdGFjaycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGVycm9yZWRJbnN0YW5jZVN0YWNrO1xuXHRcdH1cblx0fSApO1xuXG5cdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBlcnJvcmVkSW5zdGFuY2U7XG5cblx0aWYgKHJlc3VsdCkge1xuXHRcdGlmIChpc01uZW1vbmljYUluc3RhbmNlKSB7XG5cblx0XHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RhcnRcblx0XHRcdGNvbnN0IHJlc3VsdHMgPSBzZWxmLmludm9rZVBvc3RIb29rcygpO1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHR0eXBlLFxuXHRcdFx0XHRjb2xsZWN0aW9uLFxuXHRcdFx0fSA9IHJlc3VsdHM7XG5cdFx0XHRpZiAoIHR5cGUuaGFzKCB0cnVlICkgfHwgY29sbGVjdGlvbi5oYXMoIHRydWUgKSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIH1cblxuXHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RvcFxuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdhcmdzJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdvcmlnaW5hbEVycm9yJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnaW5zdGFuY2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gZXJyb3JlZEluc3RhbmNlO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnZXh0cmFjdCcsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgX3BhcmVudCA9IHBhcmVudChlcnJvcmVkSW5zdGFuY2UpO1xuXHRcdFx0XHRcdHJldHVybiBleHRyYWN0KF9wYXJlbnQpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAncGFyc2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZSggZXJyb3JlZEluc3RhbmNlICk7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0dGhyb3cgZXJyb3JlZEluc3RhbmNlO1xuXG59O1xuIl19
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3dNb2RpZmljYXRpb25FcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZXJyb3JzL3Rocm93TW9kaWZpY2F0aW9uRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFJYiwrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxTQUFTLEdBQ1QsR0FBRyxxQkFBUyxDQUFDO0FBR2QscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLHlCQUE0QztBQUU1QyxvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLHdCQUF3QixFQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxhQUFLLENBQUM7QUFFVixzRUFBdUU7QUFjaEUsTUFBTSxzQkFBc0IsR0FBRyxVQUF5QyxLQUFxQjtJQUluRyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsTUFBTSxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQUUsRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUNoQixFQUNELElBQUksRUFDSixHQUFHLElBQUksQ0FBQztJQU1ULE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO0lBRXZELElBQUssS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUcsQ0FBQztRQUUxQyxLQUFLLENBQUMsT0FBbUIsQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBRSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxPQUFtQixDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV6QyxNQUFNLEtBQUssQ0FBQztJQUViLENBQUM7SUFFRCxHQUFHLENBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1FBQzlCLEdBQUc7WUFDRixPQUFP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SyxDQUFFLGVBQWUsQ0FBRSxDQUFDO2dCQUNqQyxDQUFDLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBRSxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sZUFBZSxDQUFDO0FBRXZCLENBQUMsQ0FBQztBQTdMVyxRQUFBLHNCQUFzQiwwQkE2TGpDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7IE1uZW1vbmljYUVycm9yIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdE1ORU1PTklDQSxcbn0gPSBjb25zdGFudHM7XG5cblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3Qge1xuXHRCQVNFX01ORU1PTklDQV9FUlJPUlxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgeyBjbGVhbnVwU3RhY2ssIGdldFN0YWNrIH0gZnJvbSAnLi8nO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdG1ha2VFcnJvck1vZGlmaWNhdG9yVHlwZVxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRwYXJzZSxcblx0cGFyZW50LFxuXHRleHRyYWN0XG59ID0gdXRpbHM7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi4vdHlwZXMvSW5zdGFuY2VNb2RpZmljYXRvcic7XG5cbi8vIEluc3RhbmNlIGNyZWF0b3IgY29udGV4dCB0eXBlXG50eXBlIEluc3RhbmNlQ3JlYXRvckNvbnRleHQgPSB7XG5cdFR5cGVOYW1lOiBzdHJpbmc7XG5cdHR5cGU6IHsgc3RhY2s6IHN0cmluZyB9O1xuXHRhcmdzOiB1bmtub3duW107XG5cdE1vZGlmaWNhdG9yVHlwZTogQ2FsbGFibGVGdW5jdGlvbjtcblx0SW5zdGFuY2VNb2RpZmljYXRvcjogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IHsgc3RhY2s6IHN0cmluZ1tdIH07XG5cdGluaGVyaXRlZEluc3RhbmNlPzogdW5rbm93bjtcblx0aW52b2tlUG9zdEhvb2tzKCk6IHsgdHlwZTogU2V0PHVua25vd24+OyBjb2xsZWN0aW9uOiBTZXQ8dW5rbm93bj4gfTtcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcbn07XG5cbmV4cG9ydCBjb25zdCB0aHJvd01vZGlmaWNhdGlvbkVycm9yID0gZnVuY3Rpb24gKCB0aGlzOiBJbnN0YW5jZUNyZWF0b3JDb250ZXh0LCBlcnJvcjogTW5lbW9uaWNhRXJyb3IgKSB7XG5cblx0Ly8gSW5zdGFuY2VDcmVhdG9yXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0Y29uc3Qge1xuXHRcdFR5cGVOYW1lLFxuXHRcdHR5cGU6IHtcblx0XHRcdHN0YWNrOiB0eXBlU3RhY2tcblx0XHR9LFxuXHRcdGFyZ3Ncblx0fSA9IHNlbGY7XG5cblx0Ly8gaWYgKCBlcnJvclsgU3ltYm9sQ29uc3RydWN0b3JOYW1lIF0gKSB7XG5cdC8vIFx0ZGVidWdnZXI7XG5cdC8vIH1cblxuXHRjb25zdCBleGNlcHRpb25SZWFzb24gPSBlcnJvci5leGNlcHRpb25SZWFzb24gfHwgZXJyb3I7XG5cblx0aWYgKCBlcnJvci5leGNlcHRpb25SZWFzb24gIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdChlcnJvci5yZWFzb25zIGFzIEVycm9yW10pLnB1c2goIGVycm9yLmV4Y2VwdGlvblJlYXNvbiApO1xuXHRcdChlcnJvci5zdXJwbHVzIGFzIEVycm9yW10pLnB1c2goIGVycm9yICk7XG5cblx0XHR0aHJvdyBlcnJvcjtcblxuXHR9XG5cblx0b2RwKCBlcnJvciwgJ2V4Y2VwdGlvblJlYXNvbicsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGV4Y2VwdGlvblJlYXNvbjtcblx0XHR9LFxuXHRcdGVudW1lcmFibGUgOiB0cnVlXG5cdH0gKTtcblxuXHRjb25zdCByZWFzb25zOiBFcnJvcltdID0gWyBleGNlcHRpb25SZWFzb24gXTtcblxuXHRvZHAoIGVycm9yLCAncmVhc29ucycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIHJlYXNvbnM7XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9ICk7XG5cdGNvbnN0IHN1cnBsdXM6IEVycm9yW10gPSBbXTtcblx0b2RwKCBlcnJvciwgJ3N1cnBsdXMnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBzdXJwbHVzO1xuXHRcdH0sXG5cdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0fSApO1xuXG5cdHNlbGYuTW9kaWZpY2F0b3JUeXBlID0gbWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlKCBUeXBlTmFtZSApO1xuXG5cdHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBzZWxmIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gKSBhcyBJbnN0YW5jZUNyZWF0b3JDb250ZXh0WydJbnN0YW5jZU1vZGlmaWNhdG9yJ107XG5cblx0Ly8gbGV0IGVycm9yZWRJbnN0YW5jZSA9IG5ldyBzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IoKTtcblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvcigpO1xuXG5cdGxldCBlcnJvclByb3RvOiBvYmplY3QgfCBudWxsID0gUmVmbGVjdC5nZXRQcm90b3R5cGVPZiggZXJyb3JlZEluc3RhbmNlICk7XG5cdGxldCBpc01uZW1vbmljYUluc3RhbmNlID0gZmFsc2U7XG5cdHdoaWxlICggZXJyb3JQcm90byApIHtcblx0XHRjb25zdCB0ZXN0VG9Qcm90byA9IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoIGVycm9yUHJvdG8gKTtcblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IG51bGwpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHRpZiAoXG5cdFx0XHR0ZXN0VG9Qcm90byAhPT0gbnVsbCAmJiB0ZXN0VG9Qcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSBNTkVNT05JQ0EgJiZcblx0XHRcdE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlc3RUb1Byb3RvLCAnY29uc3RydWN0b3InKVxuXHRcdCkge1xuXHRcdFx0aXNNbmVtb25pY2FJbnN0YW5jZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0ZXJyb3JQcm90byA9IHRlc3RUb1Byb3RvO1xuXHR9XG5cblx0Ly8gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHRjb25zdCByZXN1bHQgPSBSZWZsZWN0LnNldFByb3RvdHlwZU9mKCBlcnJvclByb3RvIGFzIG9iamVjdCwgZXJyb3IpO1xuXHQvLyBsZXQgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHQvLyBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuXHQvLyBcdE9iamVjdC5zZXRQcm90b3R5cGVPZihlcnJvclByb3RvLCBlcnJvcik7XG5cdC8vIFx0Ly8gdW5yZWFjaGFibGVcblx0Ly8gXHRyZXN1bHQgPSB0cnVlO1xuXHQvLyB9XG5cdC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XG5cblx0Y29uc3Qgc3RhY2s6IHN0cmluZ1tdID0gW107XG5cblx0aWYgKCBlcnJvciBpbnN0YW5jZW9mIEJBU0VfTU5FTU9OSUNBX0VSUk9SICkge1xuXG5cdFx0c3RhY2sucHVzaCggZXJyb3Iuc3RhY2sgYXMgc3RyaW5nICk7XG5cblx0fSBlbHNlIHtcblxuXHRcdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBjcmVhdGlvbiBvZiBbICR7VHlwZU5hbWV9IF0gdHJhY2VkIC0tPmA7XG5cblx0XHRnZXRTdGFjay5jYWxsKCBlcnJvcmVkSW5zdGFuY2UsIHRpdGxlLCBbXSwgdGhyb3dNb2RpZmljYXRpb25FcnJvciApO1xuXG5cdFx0c3RhY2sucHVzaCggLi4uZXJyb3JlZEluc3RhbmNlLnN0YWNrICk7XG5cblx0XHRjb25zdCBlcnJvclN0YWNrID0gKGVycm9yLnN0YWNrIGFzIHN0cmluZyApLnNwbGl0KCAnXFxuJyApO1xuXG5cdFx0c3RhY2sucHVzaCggJzwtLSB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3IgLS0+JyApO1xuXG5cdFx0ZXJyb3JTdGFjay5mb3JFYWNoKCAoIGxpbmU6IHN0cmluZyApID0+IHtcblx0XHRcdGlmICggIXN0YWNrLmluY2x1ZGVzKCBsaW5lICkgKSB7XG5cdFx0XHRcdHN0YWNrLnB1c2goIGxpbmUgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRzdGFjay5wdXNoKCAnXFxuPC0tIG9mIGNvbnN0cnVjdG9yIGRlZmluaXRpb25zIHN0YWNrIC0tPicgKTtcblx0XHRzdGFjay5wdXNoKCAuLi50eXBlU3RhY2sgKTtcblxuXHR9XG5cblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlU3RhY2sgPSBjbGVhbnVwU3RhY2soIHN0YWNrICkuam9pbiggJ1xcbicgKTtcblxuXHQvLyBzdGFydGluZyBmcm9tIE5vZGUuanMgdjIyIHdlIHNob3VsZCBkZWZpbmUgdGhpcyBwcm9wZXJ0eSB0aHJvdWdoIG9kcFxuXHQvLyB0aGF0IHdhcyB1bm5lY2Vzc2FyeSBmb3IgdjIwLCB0aG91Z2ggc2VlbXMgbmV3IHY4IG9wdGltaXplZCBjb21waWxlclxuXHQvLyBpcyBnYXRoZXJpbmcgdmFsdWUgZnJvbSBkZWVwIGNoYWluIGFuZCB3aGlsZSBjb21wYXJpbmcgaXQgd2l0aCBcblx0Ly8gYXNzaWdubWVudCBvcGVyYXRvciwgdGhlbiBpdCB3aWxsIG5vdCBjcmVhdGUgdGhpcyBwcm9wZXJ0eSBcblx0Ly8gc28gd2UgbmVlZCBkaXJlY3QgcHJvcGVydHkgZGVjbGFyYXRpb24gaGVyZSAuLi5cblx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdzdGFjaycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGVycm9yZWRJbnN0YW5jZVN0YWNrO1xuXHRcdH1cblx0fSApO1xuXG5cdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBlcnJvcmVkSW5zdGFuY2U7XG5cblx0aWYgKHJlc3VsdCkge1xuXHRcdGlmIChpc01uZW1vbmljYUluc3RhbmNlKSB7XG5cblx0XHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RhcnRcblx0XHRcdGNvbnN0IHJlc3VsdHMgPSBzZWxmLmludm9rZVBvc3RIb29rcygpO1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHR0eXBlLFxuXHRcdFx0XHRjb2xsZWN0aW9uLFxuXHRcdFx0fSA9IHJlc3VsdHM7XG5cdFx0XHRpZiAoIHR5cGUuaGFzKCB0cnVlICkgfHwgY29sbGVjdGlvbi5oYXMoIHRydWUgKSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIH1cblxuXHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RvcFxuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdhcmdzJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdvcmlnaW5hbEVycm9yJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnaW5zdGFuY2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gZXJyb3JlZEluc3RhbmNlO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnZXh0cmFjdCcsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgX3BhcmVudCA9IHBhcmVudChlcnJvcmVkSW5zdGFuY2UpO1xuXHRcdFx0XHRcdHJldHVybiBleHRyYWN0KF9wYXJlbnQpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAncGFyc2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZSggZXJyb3JlZEluc3RhbmNlICk7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0dGhyb3cgZXJyb3JlZEluc3RhbmNlO1xuXG59O1xuIl19
|
|
@@ -39,4 +39,4 @@ const invokeHook = function (hookType, opts) {
|
|
|
39
39
|
return invocationResults;
|
|
40
40
|
};
|
|
41
41
|
exports.invokeHook = invokeHook;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvaG9va3MvaW52b2tlSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7OztBQUViLGlEQUE4QztBQUU5Qyx5Q0FBc0M7QUFFL0IsTUFBTSxVQUFVLEdBQUcsVUFBc0IsUUFBZ0IsRUFBRSxJQUFnQztJQUVqRyxNQUFNLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsSUFBSSxFQUVKLE9BQU8sRUFDUCxHQUFHLElBQUksQ0FBQztJQUVULE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUdwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsSUFBSyxJQUFBLFNBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBRSxFQUFHLENBQUM7UUFLbkMsTUFBTSxFQUNMLFFBQVEsR0FFUixHQUFHLElBQUksQ0FBQztRQUVULE1BQU0sUUFBUSxHQUFHO1lBQ2hCLElBQUk7WUFDSixRQUFRO1lBQ1IsZ0JBQWdCO1lBQ2hCLElBQUk7U0FDSixDQUFDO1FBRUYsSUFBSyxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUUsUUFBUSxFQUFFO2dCQUN4QixpQkFBaUI7Z0JBQ2pCLHNCQUFzQixDQUFHLEtBQVk7b0JBQ3BDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBRSxLQUFLLENBQUUsQ0FBQztnQkFDekMsQ0FBQzthQUNELENBQUUsQ0FBQztRQUNMLENBQUM7UUFHRCxJQUFJLENBQUMsS0FBSyxDQUFFLFFBQVEsQ0FBRSxDQUFDLE9BQU8sQ0FBRSxDQUFFLElBQTRELEVBQUcsRUFBRTtZQUNsRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFFLElBQUksRUFBRSxRQUFRLENBQUUsQ0FBQztZQUMzQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUUsTUFBTSxDQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFFLENBQUM7UUFFSixNQUFNLFdBQVcsR0FBRywyQkFBWSxDQUFDLEdBQUcsQ0FBRSxJQUFJLENBQUUsQ0FBQztRQUM3QyxJQUFLLE9BQU8sV0FBVyxLQUFLLFVBQVUsRUFBRyxDQUFDO1lBQ3pDLFdBQVc7aUJBQ1QsSUFBSSxDQUFFLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFFLEVBQUUsRUFBRTtnQkFDL0IsaUJBQWlCO2dCQUNqQixRQUFRO2FBQ1IsRUFBRSxRQUFRLENBQUUsQ0FBRSxDQUFDO1FBQ2xCLENBQUM7SUFFRixDQUFDO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQztBQUUxQixDQUFDLENBQUM7QUE3RFcsUUFBQSxVQUFVLGNBNkRyQiIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgZmxvd0NoZWNrZXJzIH0gZnJvbSAnLi9mbG93Q2hlY2tlcnMnO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5leHBvcnQgY29uc3QgaW52b2tlSG9vayA9IGZ1bmN0aW9uICggdGhpczogYW55LCBob29rVHlwZTogc3RyaW5nLCBvcHRzOiB7IFsgaW5kZXg6IHN0cmluZyBdOiBhbnkgfSApIHtcblxuXHRjb25zdCB7XG5cdFx0dHlwZSxcblx0XHRleGlzdGVudEluc3RhbmNlLFxuXHRcdGluaGVyaXRlZEluc3RhbmNlLFxuXHRcdGFyZ3MsXG5cdFx0Ly8gSW5zdGFuY2VNb2RpZmljYXRvcixcblx0XHRjcmVhdG9yXG5cdH0gPSBvcHRzO1xuXG5cdGNvbnN0IGludm9jYXRpb25SZXN1bHRzID0gbmV3IFNldCgpO1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0aWYgKCBob3AoIHNlbGYuaG9va3MsIGhvb2tUeXBlICkgKSB7XG5cblx0XHQvLyBcInRoaXNcIiByZWZlcmVzIHRvXG5cdFx0Ly8gdHlwZSwgaWYgY2FsbGVkIGZyb20gdHlwZXNcblxuXHRcdGNvbnN0IHtcblx0XHRcdFR5cGVOYW1lLFxuXHRcdFx0Ly8gcGFyZW50VHlwZSxcblx0XHR9ID0gdHlwZTtcblxuXHRcdGNvbnN0IGhvb2tBcmdzID0ge1xuXHRcdFx0dHlwZSxcblx0XHRcdFR5cGVOYW1lLFxuXHRcdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRcdGFyZ3MsXG5cdFx0fTtcblxuXHRcdGlmICggdHlwZW9mIGluaGVyaXRlZEluc3RhbmNlID09PSAnb2JqZWN0JyApIHtcblx0XHRcdE9iamVjdC5hc3NpZ24oIGhvb2tBcmdzLCB7XG5cdFx0XHRcdGluaGVyaXRlZEluc3RhbmNlLFxuXHRcdFx0XHR0aHJvd01vZGlmaWNhdGlvbkVycm9yICggZXJyb3I6IEVycm9yICkge1xuXHRcdFx0XHRcdGNyZWF0b3IudGhyb3dNb2RpZmljYXRpb25FcnJvciggZXJyb3IgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdCBcblx0XHR0aGlzLmhvb2tzWyBob29rVHlwZSBdLmZvckVhY2goICggaG9vazogKCB0aGlzOiB1bmtub3duLCBob29rUGFyYW1zOiB0eXBlb2YgaG9va0FyZ3MgKSA9PiB2b2lkICkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gaG9vay5jYWxsKCBzZWxmLCBob29rQXJncyApO1xuXHRcdFx0aW52b2NhdGlvblJlc3VsdHMuYWRkKCByZXN1bHQgKTtcblx0XHR9ICk7XG5cblx0XHRjb25zdCBmbG93Q2hlY2tlciA9IGZsb3dDaGVja2Vycy5nZXQoIHRoaXMgKTtcblx0XHRpZiAoIHR5cGVvZiBmbG93Q2hlY2tlciA9PT0gJ2Z1bmN0aW9uJyApIHtcblx0XHRcdGZsb3dDaGVja2VyXG5cdFx0XHRcdC5jYWxsKCB0aGlzLCBPYmplY3QuYXNzaWduKCB7fSwge1xuXHRcdFx0XHRcdGludm9jYXRpb25SZXN1bHRzLFxuXHRcdFx0XHRcdGhvb2tUeXBlLFxuXHRcdFx0XHR9LCBob29rQXJncyApICk7XG5cdFx0fVxuXG5cdH1cblxuXHRyZXR1cm4gaW52b2NhdGlvblJlc3VsdHM7XG5cbn07XG4iXX0=
|
|
@@ -6,7 +6,7 @@ const { odp, SymbolConstructorName } = constants_1.constants;
|
|
|
6
6
|
const errors_1 = require("../../descriptors/errors");
|
|
7
7
|
const { WRONG_MODIFICATION_PATTERN, } = errors_1.ErrorsTypes;
|
|
8
8
|
const utils_1 = require("../utils");
|
|
9
|
-
const { getExistentAsyncStack,
|
|
9
|
+
const { getExistentAsyncStack, makeErrorModificatorType, } = utils_1.default;
|
|
10
10
|
const errors_2 = require("../errors");
|
|
11
11
|
const throwModificationError_1 = require("../errors/throwModificationError");
|
|
12
12
|
const Props_1 = require("./Props");
|
|
@@ -45,7 +45,7 @@ const invokePostHooks = function () {
|
|
|
45
45
|
};
|
|
46
46
|
const postProcessing = function (continuationOf) {
|
|
47
47
|
const self = this;
|
|
48
|
-
const { stack, } = self;
|
|
48
|
+
const { stack, type: { isSubType, config: { strictChain, blockErrors } } } = self;
|
|
49
49
|
if (!self.inheritedInstance.constructor) {
|
|
50
50
|
const msg = 'should inherit from mnemonica instance';
|
|
51
51
|
self.throwModificationError(new WRONG_MODIFICATION_PATTERN(msg, stack));
|
|
@@ -59,6 +59,18 @@ const postProcessing = function (continuationOf) {
|
|
|
59
59
|
const msg = `should inherit from ${continuationOf.TypeName} but got ${icn}`;
|
|
60
60
|
self.throwModificationError(new WRONG_MODIFICATION_PATTERN(msg, stack));
|
|
61
61
|
}
|
|
62
|
+
if (isSubType && strictChain) {
|
|
63
|
+
if (self.inheritedInstance instanceof Error && !blockErrors) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const parent = self.inheritedInstance.parent();
|
|
67
|
+
const parentName = parent.constructor.name;
|
|
68
|
+
const parentTypeName = self.type.parentType.TypeName;
|
|
69
|
+
if (parentName !== parentTypeName) {
|
|
70
|
+
const msg = `should inherit from ${parentTypeName} but made on ${parentName}`;
|
|
71
|
+
self.throwModificationError(new WRONG_MODIFICATION_PATTERN(msg, stack));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
62
74
|
(0, Props_1._setSelf)(self.inheritedInstance);
|
|
63
75
|
self.invokePostHooks();
|
|
64
76
|
};
|
|
@@ -158,9 +170,10 @@ exports.InstanceCreator = function (type, existentInstance, args, chained) {
|
|
|
158
170
|
}
|
|
159
171
|
if (blockErrors) {
|
|
160
172
|
if (existentInstance instanceof Error) {
|
|
161
|
-
self.ModificatorType =
|
|
173
|
+
self.ModificatorType = makeErrorModificatorType(TypeName);
|
|
162
174
|
self.InstanceModificator = (0, InstanceModificator_1.makeInstanceModificator)(self);
|
|
163
|
-
|
|
175
|
+
const blockErrorsErrorInstance = new self.InstanceModificator(...args);
|
|
176
|
+
throw blockErrorsErrorInstance;
|
|
164
177
|
}
|
|
165
178
|
}
|
|
166
179
|
self.invokePreHooks();
|
|
@@ -191,4 +204,4 @@ exports.InstanceCreator = function (type, existentInstance, args, chained) {
|
|
|
191
204
|
return self.inheritedInstance;
|
|
192
205
|
};
|
|
193
206
|
Object.assign(exports.InstanceCreator.prototype, InstanceCreatorPrototype);
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2VDcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9JbnN0YW5jZUNyZWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFJYiwrQ0FFeUI7QUFFekIsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIsR0FBRyxxQkFBUyxDQUFDO0FBRWQscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCwwQkFBMEIsR0FDMUIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUN2QixHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUFxQztBQUNyQyw2RUFBMEU7QUFFMUUsbUNBQXFEO0FBRXJELCtEQUFnRTtBQUdoRSxNQUFNLGNBQWMsR0FBRztJQUV0QixNQUFNLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLEdBQUcsSUFBSSxDQUFDO0lBRVQsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLElBQUksQ0FBQztJQUVULE1BQU0sUUFBUSxHQUFHO1FBQ2hCLElBQUk7UUFDSixnQkFBZ0I7UUFDaEIsSUFBSTtRQUNKLG1CQUFtQjtLQUNuQixDQUFDO0lBRUYsVUFBVSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7SUFFakQsSUFBSSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7QUFFNUMsQ0FBQyxDQUFDO0FBSUYsTUFBTSxlQUFlLEdBQUc7SUFHdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLE1BQU0sRUFDTCxpQkFBaUIsR0FDakIsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLEtBQUssR0FBRyxJQUFBLGlCQUFTLEVBQUMsaUJBQWlCLENBQVUsQ0FBQztJQUVwRCxNQUFNLEVBQ0wsUUFBUSxF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LENBQUM7UUFFbkIsSUFBSSxDQUFDO1lBRUosTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUUsR0FBRyxJQUFJLENBQUUsQ0FBQztZQUV2RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1FBRWpDLENBQUM7UUFBQyxPQUFRLEtBQUssRUFBRyxDQUFDO1lBRWxCLElBQUksQ0FBQyxzQkFBc0IsQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV0QyxDQUFDO0lBRUYsQ0FBQztTQUFNLENBQUM7UUFHUCxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBRSxHQUFHLElBQUksQ0FBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7SUFFakMsQ0FBQztJQUdELElBQUssSUFBSSxDQUFDLGlCQUFpQixZQUFZLE9BQU8sRUFBRyxDQUFDO1FBRWpELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUUsSUFBSSxDQUFFLENBQUM7UUFFeEMsR0FBRyxDQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRTtZQUNuQyxHQUFHO2dCQUNGLE9BQU8sUUFBUSxDQUFDO1lBQ2pCLENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixPQUFPLE1BQU0sQ0FBQztJQUVmLENBQUM7SUFFRCxJQUFJLENBQUMsY0FBYyxDQUFFLElBQUksQ0FBRSxDQUFDO0lBRTVCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0FBRS9CLENBQXlELENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sQ0FBRSx1QkFBZSxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsQ0FBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiICBcbid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgQ29uc3RydWN0b3JGdW5jdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHtcblx0Y29uc3RhbnRzXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IHtcblx0b2RwLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWVcbn0gPSBjb25zdGFudHM7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmNvbnN0IHtcblx0V1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4sXG59ID0gRXJyb3JzVHlwZXM7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Z2V0RXhpc3RlbnRBc3luY1N0YWNrLFxuXHRtYWtlRmFrZU1vZGlmaWNhdG9yVHlwZSxcbn0gPSBUeXBlc1V0aWxzO1xuXG5pbXBvcnQgeyBnZXRTdGFjayB9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgeyB0aHJvd01vZGlmaWNhdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3Rocm93TW9kaWZpY2F0aW9uRXJyb3InO1xuXG5pbXBvcnQgeyBfZ2V0UHJvcHMsIF9zZXRTZWxmLCBQcm9wcyB9IGZyb20gJy4vUHJvcHMnO1xuXG5pbXBvcnQgeyBtYWtlSW5zdGFuY2VNb2RpZmljYXRvciB9IGZyb20gJy4vSW5zdGFuY2VNb2RpZmljYXRvcic7XG5cbiAgXG5jb25zdCBpbnZva2VQcmVIb29rcyA9IGZ1bmN0aW9uICggdGhpczogYW55ICkge1xuXG5cdGNvbnN0IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH0gPSB0aGlzO1xuXG5cdGNvbnN0IHtcblx0XHRjb2xsZWN0aW9uLFxuXHR9ID0gdHlwZTtcblxuXHRjb25zdCBob29rRGF0YSA9IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH07XG5cblx0Y29sbGVjdGlvbi5pbnZva2VIb29rKCAncHJlQ3JlYXRpb24nLCBob29rRGF0YSApO1xuXG5cdHR5cGUuaW52b2tlSG9vayggJ3ByZUNyZWF0aW9uJywgaG9va0RhdGEgKTtcblxufTtcblxuXG4gIFxuY29uc3QgaW52b2tlUG9zdEhvb2tzID0gZnVuY3Rpb24gKCB0aGlzOiBhbnkgKSB7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG5cdGNvbnN0IGNyZWF0b3IgPSB0aGlzO1xuXHRjb25zdCB7XG5cdFx0aW5oZXJpdGVkSW5zdGFuY2UsXG5cdH0gPSBjcmVhdG9yO1xuXG5cdGNvbnN0IHByb3BzID0gX2dldFByb3BzKGluaGVyaXRlZEluc3RhbmNlKSBhcyBQcm9wcztcblxuXHRjb25zdCB7XG5cdFx0X190eXBlX186IHR5cGUsXG5cdFx0X19wYXJlbnRfXzogZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRfX2FyZ3NfXzogYXJncyxcblx0fSA9IHByb3BzO1xuXG5cdGNvbnN0IHtcblx0XHRjb2xsZWN0aW9uLFxuXHR9ID0gdHlwZTtcblxuXHRjb25zdCBob29rVHlwZSA9IGluaGVyaXRlZEluc3RhbmNlIGluc3RhbmNlb2YgRXJyb3IgP1xuXHRcdCdjcmVhdGlvbkVycm9yJyA6ICdwb3N0Q3JlYXRpb24nO1xuXG5cdGNvbnN0IGhvb2tEYXRhID0ge1xuXHRcdHR5cGUsXG5cdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRpbmhlcml0ZWRJbnN0YW5jZSxcblx0XHRhcmdzLFxuXHRcdGNyZWF0b3Jcblx0fTtcblxuXHRyZXR1cm4ge1xuXG5cdFx0dHlwZSA6IHR5cGUuaW52b2tlSG9vayggaG9va1R5cGUsIGhvb2tEYXRhICksXG5cblx0XHRjb2xsZWN0aW9uIDogY29sbGVjdGlvbi5pbnZva2VIb29rKCBob29rVHlwZSwgaG9va0RhdGEgKSxcblxuXHR9O1xuXG59O1xuXG5cbiAgXG5jb25zdCBwb3N0UHJvY2Vzc2luZyA9IGZ1bmN0aW9uICggdGhpczogYW55LCBjb250aW51YXRpb25PZjogYW55ICkge1xuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRjb25zdCBzZWxmID0gdGhpcztcblx0Y29uc3Qge1xuXHRcdHN0YWNrLFxuXHR9ID0gc2VsZjtcblxuXHRpZiAoICFzZWxmLmluaGVyaXRlZEluc3RhbmNlLmNvbnN0cnVjdG9yICkge1xuXHRcdGNvbnN0IG1zZyA9ICdzaG91bGQgaW5oZXJpdCBmcm9tIG1uZW1vbmljYSBpbnN0YW5jZSc7XG5cdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc3RhY2sgKSApO1xuXHR9XG5cblx0aWYgKCAhc2VsZi5pbmhlcml0ZWRJbnN0YW5jZS5jb25zdHJ1Y3RvclsgU3ltYm9sQ29uc3RydWN0b3JOYW1lIF0gKSB7XG5cdFx0Y29uc3QgbXNnID0gJ3Nob3VsZCBpbmhlcml0IGZyb20gbW5lbW9uaWNhIGluc3RhbmNlJztcblx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdH1cblxuXHRpZiAoIGNvbnRpbnVhdGlvbk9mICYmICEoIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgaW5zdGFuY2VvZiBjb250aW51YXRpb25PZiApICkge1xuXHRcdC8vIGRlYnVnZ2VyO1xuXHRcdGNvbnN0IGljbiA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UuY29uc3RydWN0b3IubmFtZTtcblx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke2NvbnRpbnVhdGlvbk9mLlR5cGVOYW1lfSBidXQgZ290ICR7aWNufWA7XG5cdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc3RhY2sgKSApO1xuXHRcdC8vIHRocm93IG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTihtc2csIHNlbGYuc3RhY2spO1xuXHR9XG5cblx0X3NldFNlbGYoc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSk7XG5cblx0c2VsZi5pbnZva2VQb3N0SG9va3MoKTtcblxufTtcblxuZXhwb3J0IGludGVyZmFjZSBUaGVuU3BlYyB7XG5cdHN1YnR5cGU6IG9iamVjdDtcblx0YXJnczogdW5rbm93bltdO1xuXHRuYW1lPzogc3RyaW5nO1xufVxuXG4gIFxuY29uc3QgYWRkVGhlbiA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0aGVuOiBUaGVuU3BlYyApIHtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2Vcblx0XHQudGhlbiggKCkgPT4ge1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9XG5cdFx0XHRcdG5ldyBJbnN0YW5jZUNyZWF0b3IoXG5cdFx0XHRcdFx0dGhlbi5zdWJ0eXBlLFxuXHRcdFx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0XHRcdFx0dGhlbi5hcmdzLFxuXHRcdFx0XHRcdC8vIHdhcyBjaGFpbmVkIDpcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0Ly8gc2VsZi5leGlzdGVudEluc3RhbmNlXG5cdFx0XHRcdCkgYXMgdW5rbm93biBhcyBQcm9taXNlPHVua25vd24+O1xuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0fSApO1xuXG59O1xuXG5cbiAgXG5jb25zdCBtYWtlQXdhaXRlciA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0eXBlOiBhbnksIHRoZW4/OiBUaGVuU3BlYyApIHtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2Vcblx0XHQudGhlbiggKCBpbnN0YW5jZTogdW5rbm93biApID0+IHtcblxuXHRcdFx0aWYgKCB0eXBlb2YgaW5zdGFuY2UgIT09ICdvYmplY3QnICkge1xuXHRcdFx0XHRpZiAoIHNlbGYuY29uZmlnLmF3YWl0UmV0dXJuICkge1xuXHRcdFx0XHRcdGNvbnN0IG1zZyA9IGBzaG91bGQgaW5oZXJpdCBmcm9tICR7dHlwZS5UeXBlTmFtZX06IHNlZW1zIGFzeW5jICR7dHlwZS5UeXBlTmFtZX0gaGFzIG5vIHJldHVybiBzdGF0ZW1lbnRgO1xuXHRcdFx0XHRcdHRocm93IG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzZWxmLnN0YWNrICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGluc3RhbmNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggISggaW5zdGFuY2UgaW5zdGFuY2VvZiBzZWxmLnR5cGUgKSApIHtcblx0XHRcdFx0IFxuXHRcdFx0XHRjb25zdCBpY24gPSAoaW5zdGFuY2UgYXMgYW55KS5jb25zdHJ1Y3Rvci5uYW1lO1xuXHRcdFx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke3R5cGUuVHlwZU5hbWV9IGJ1dCBnb3QgJHtpY259YDtcblx0XHRcdFx0dGhyb3cgbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHNlbGYuc3RhY2sgKTtcblx0XHRcdH1cblxuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXG5cdFx0XHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhzZWxmLmluaGVyaXRlZEluc3RhbmNlKSBhcyBQcm9wcztcblxuXHRcdFx0IFxuXHRcdFx0aWYgKCBwcm9wcy5fX3NlbGZfXyAhPT0gKHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgYXMgdW5rbm93bikgKSB7XG5cdFx0XHRcdHNlbGYucG9zdFByb2Nlc3NpbmcoIHR5cGUgKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cblx0XHR9IClcblx0XHQuY2F0Y2goICggZXJyb3I6IEVycm9yICkgPT4ge1xuXHRcdFx0aWYgKCBzZWxmLmNvbmZpZy5ibG9ja0Vycm9ycyApIHtcblx0XHRcdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBlcnJvciApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgZXJyb3I7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdGlmICggdGhlbiApIHtcblx0XHRzZWxmLmFkZFRoZW4oIHRoZW4gKTtcblx0fVxuXG5cdHR5cGUuc3VidHlwZXMuZm9yRWFjaCggKCBzdWJ0eXBlOiBvYmplY3QsIG5hbWU6IHN0cmluZyApID0+IHtcblx0XHQgXG5cdFx0KHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgYXMgYW55KVsgbmFtZSBdID0gKCAuLi5hcmdzOiB1bmtub3duW10gKSA9PiB7XG5cdFx0XHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID0gc2VsZi5tYWtlQXdhaXRlciggc3VidHlwZSwge1xuXHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRzdWJ0eXBlLFxuXHRcdFx0XHRhcmdzLFxuXHRcdFx0fSApO1xuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0fTtcblx0fSApO1xuXG5cdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXG59O1xuXG5jb25zdCBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGUgPSB7XG5cdGdldEV4aXN0ZW50QXN5bmNTdGFjayxcblx0cG9zdFByb2Nlc3NpbmcsXG5cdG1ha2VBd2FpdGVyLFxuXHRhZGRUaGVuLFxuXHRpbnZva2VQcmVIb29rcyxcblx0aW52b2tlUG9zdEhvb2tzLFxuXHR0aHJvd01vZGlmaWNhdGlvbkVycm9yXG59O1xuXG4gIFxuZXhwb3J0IGNvbnN0IEluc3RhbmNlQ3JlYXRvciA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0eXBlOiBhbnksIGV4aXN0ZW50SW5zdGFuY2U6IHVua25vd24sIGFyZ3M6IHVua25vd25bXSwgY2hhaW5lZDogYm9vbGVhbiApIHtcblxuXHRjb25zdCB7XG5cdFx0Y29uc3RydWN0SGFuZGxlcixcblx0XHRwcm90byxcblx0XHRjb25maWcsXG5cdFx0VHlwZU5hbWVcblx0fSA9IHR5cGU7XG5cblx0Y29uc3Qge1xuXHRcdE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yLFxuXHRcdGJsb2NrRXJyb3JzLFxuXHRcdHN1Ym1pdFN0YWNrXG5cdH0gPSBjb25maWc7XG5cblx0IFxuXHRjb25zdCBtYyA9IE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yKCk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG5cdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdGNvbnN0IE1vZGlmaWNhdG9yVHlwZSA9IGNvbnN0cnVjdEhhbmRsZXIoKTtcblxuXHRPYmplY3QuYXNzaWduKCBzZWxmLCB7XG5cblx0XHR0eXBlLFxuXHRcdFR5cGVOYW1lLFxuXG5cdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblxuXHRcdGdldCBhcmdzICgpIHtcblx0XHRcdHJldHVybiBhcmdzO1xuXHRcdH0sXG5cblx0XHRNb2RpZmljYXRpb25Db25zdHJ1Y3RvciA6IG1jLFxuXHRcdE1vZGlmaWNhdG9yVHlwZSxcblxuXHRcdGNvbmZpZyxcblxuXHRcdHByb3RvXG5cblx0fSApO1xuXG5cdGlmICggc3VibWl0U3RhY2sgfHwgY2hhaW5lZCApIHtcblx0XHRjb25zdCBzdGFja0FkZGl0aW9uOiBzdHJpbmdbXSA9IGNoYWluZWQgPyBzZWxmLmdldEV4aXN0ZW50QXN5bmNTdGFjayggZXhpc3RlbnRJbnN0YW5jZSApIDogW107XG5cdFx0Y29uc3QgdGl0bGUgPSBgXFxuPC0tIGNyZWF0aW9uIG9mIFsgJHtUeXBlTmFtZX0gXSB0cmFjZWQgLS0+YDtcblx0XHRpZiAoIHN1Ym1pdFN0YWNrICkge1xuXHRcdFx0Z2V0U3RhY2suY2FsbCggc2VsZiwgdGl0bGUsIHN0YWNrQWRkaXRpb24gKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2VsZi5zdGFjayA9IHRpdGxlO1xuXHRcdH1cblx0fVxuXG5cdGlmICggYmxvY2tFcnJvcnMgKSB7XG5cblx0XHRpZiAoIGV4aXN0ZW50SW5zdGFuY2UgaW5zdGFuY2VvZiBFcnJvciApIHtcblxuXHRcdFx0c2VsZi5Nb2RpZmljYXRvclR5cGUgPSBtYWtlRmFrZU1vZGlmaWNhdG9yVHlwZSggVHlwZU5hbWUgKTtcblxuXHRcdFx0c2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIHNlbGYgKTtcblxuXHRcdFx0dGhyb3cgbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXG5cdFx0fVxuXHR9XG5cblx0c2VsZi5pbnZva2VQcmVIb29rcygpO1xuXG5cdHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBzZWxmICk7XG5cblx0aWYgKCBibG9ja0Vycm9ycyApIHtcblxuXHRcdHRyeSB7XG5cdFx0XHQvLyBDb25zdHJ1Y3RvciBJbnZvY2F0aW9uIEl0c2VsZlxuXHRcdFx0Y29uc3QgYW5zd2VyID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXHRcdFx0Ly8gZGVidWdnZXI7XG5cdFx0XHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID0gYW5zd2VyO1xuXG5cdFx0fSBjYXRjaCAoIGVycm9yICkge1xuXG5cdFx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIGVycm9yICk7XG5cblx0XHR9XG5cblx0fSBlbHNlIHtcblxuXHRcdC8vIENvbnN0cnVjdG9yIEludm9jYXRpb24gSXRzZWxmXG5cdFx0Y29uc3QgYW5zd2VyID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXHRcdC8vIGRlYnVnZ2VyO1xuXHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBhbnN3ZXI7XG5cblx0fVxuXG5cblx0aWYgKCBzZWxmLmluaGVyaXRlZEluc3RhbmNlIGluc3RhbmNlb2YgUHJvbWlzZSApIHtcblxuXHRcdGNvbnN0IHdhaXRlciA9IHNlbGYubWFrZUF3YWl0ZXIoIHR5cGUgKTtcblxuXHRcdG9kcCggd2FpdGVyLCBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiBUeXBlTmFtZTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRyZXR1cm4gd2FpdGVyO1xuXG5cdH1cblxuXHRzZWxmLnBvc3RQcm9jZXNzaW5nKCB0eXBlICk7XG5cblx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cbn0gYXMgQ29uc3RydWN0b3JGdW5jdGlvbjx0eXBlb2YgSW5zdGFuY2VDcmVhdG9yUHJvdG90eXBlPjtcblxuT2JqZWN0LmFzc2lnbiggSW5zdGFuY2VDcmVhdG9yLnByb3RvdHlwZSwgSW5zdGFuY2VDcmVhdG9yUHJvdG90eXBlICk7XG4iXX0=
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2VDcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9JbnN0YW5jZUNyZWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFJYiwrQ0FFeUI7QUFFekIsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIsR0FBRyxxQkFBUyxDQUFDO0FBRWQscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCwwQkFBMEIsR0FDMUIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wscUJBQXFCLEVBQ3JCLHdCQUF3QixHQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUFxQztBQUNyQyw2RUFBMEU7QUFFMUUsbUNBQXFEO0FBRXJELCtEQUFnRTtBQUVoRSxNQUFNLGNBQWMsR0FBRztJQUV0QixNQUFNLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLEdBQUcsSUFBSSxDQUFDO0lBRVQsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLElBQUksQ0FBQztJQUVULE1BQU0sUUFBUSxHQUFHO1FBQ2hCLElBQUk7UUFDSixnQkFBZ0I7UUFDaEIsSUFBSTtRQUNKLG1CQUFtQjtLQUNuQixDQUFDO0lBRUYsVUFBVSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7SUFFakQsSUFBSSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7QUFFNUMsQ0FBQyxDQUFDO0FBSUYsTUFBTSxlQUFlLEdBQUc7SUFHdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLE1BQU0sRUFDTCxpQkFBaUIsR0FDakIsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLEtBQUssR0FBRyxJQUFBLGlCQUFTLEVBQUMsaUJBQWlCLENBQVUsQ0FBQztJQUVwRCxNQUFNLEVBQ0wsUUFBUSxF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aUJBQWlCLEdBQUcsTUFBTSxDQUFDO0lBRWpDLENBQUM7SUFHRCxJQUFLLElBQUksQ0FBQyxpQkFBaUIsWUFBWSxPQUFPLEVBQUcsQ0FBQztRQUVqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFFLElBQUksQ0FBRSxDQUFDO1FBRXhDLEdBQUcsQ0FBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUU7WUFDbkMsR0FBRztnQkFDRixPQUFPLFFBQVEsQ0FBQztZQUNqQixDQUFDO1NBQ0QsQ0FBRSxDQUFDO1FBRUosT0FBTyxNQUFNLENBQUM7SUFFZixDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUU1QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztBQUUvQixDQUF5RCxDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLENBQUUsdUJBQWUsQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiAgXG4ndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7IENvbnN0cnVjdG9yRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7XG5cdGNvbnN0YW50c1xufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5jb25zdCB7XG5cdG9kcCxcblx0U3ltYm9sQ29uc3RydWN0b3JOYW1lXG59ID0gY29uc3RhbnRzO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG5jb25zdCB7XG5cdFdST05HX01PRElGSUNBVElPTl9QQVRURVJOLFxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdGdldEV4aXN0ZW50QXN5bmNTdGFjayxcblx0bWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlLFxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IGdldFN0YWNrIH0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7IHRocm93TW9kaWZpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvdGhyb3dNb2RpZmljYXRpb25FcnJvcic7XG5cbmltcG9ydCB7IF9nZXRQcm9wcywgX3NldFNlbGYsIFByb3BzIH0gZnJvbSAnLi9Qcm9wcyc7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi9JbnN0YW5jZU1vZGlmaWNhdG9yJztcbiAgXG5jb25zdCBpbnZva2VQcmVIb29rcyA9IGZ1bmN0aW9uICggdGhpczogYW55ICkge1xuXG5cdGNvbnN0IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH0gPSB0aGlzO1xuXG5cdGNvbnN0IHtcblx0XHRjb2xsZWN0aW9uLFxuXHR9ID0gdHlwZTtcblxuXHRjb25zdCBob29rRGF0YSA9IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH07XG5cblx0Y29sbGVjdGlvbi5pbnZva2VIb29rKCAncHJlQ3JlYXRpb24nLCBob29rRGF0YSApO1xuXG5cdHR5cGUuaW52b2tlSG9vayggJ3ByZUNyZWF0aW9uJywgaG9va0RhdGEgKTtcblxufTtcblxuXG4gIFxuY29uc3QgaW52b2tlUG9zdEhvb2tzID0gZnVuY3Rpb24gKCB0aGlzOiBhbnkgKSB7XG5cblx0IFxuXHRjb25zdCBjcmVhdG9yID0gdGhpcztcblx0Y29uc3Qge1xuXHRcdGluaGVyaXRlZEluc3RhbmNlLFxuXHR9ID0gY3JlYXRvcjtcblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbmhlcml0ZWRJbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fOiB0eXBlLFxuXHRcdF9fcGFyZW50X186IGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0X19hcmdzX186IGFyZ3MsXG5cdH0gPSBwcm9wcztcblxuXHRjb25zdCB7XG5cdFx0Y29sbGVjdGlvbixcblx0fSA9IHR5cGU7XG5cblx0Y29uc3QgaG9va1R5cGUgPSBpbmhlcml0ZWRJbnN0YW5jZSBpbnN0YW5jZW9mIEVycm9yID9cblx0XHQnY3JlYXRpb25FcnJvcicgOiAncG9zdENyZWF0aW9uJztcblxuXHRjb25zdCBob29rRGF0YSA9IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0aW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRjcmVhdG9yXG5cdH07XG5cblx0cmV0dXJuIHtcblxuXHRcdHR5cGUgOiB0eXBlLmludm9rZUhvb2soIGhvb2tUeXBlLCBob29rRGF0YSApLFxuXG5cdFx0Y29sbGVjdGlvbiA6IGNvbGxlY3Rpb24uaW52b2tlSG9vayggaG9va1R5cGUsIGhvb2tEYXRhICksXG5cblx0fTtcblxufTtcblxuXG4gIFxuY29uc3QgcG9zdFByb2Nlc3NpbmcgPSBmdW5jdGlvbiAoIHRoaXM6IGFueSwgY29udGludWF0aW9uT2Y6IGFueSApIHtcblx0IFxuXHRjb25zdCBzZWxmID0gdGhpcztcblx0Y29uc3Qge1xuXHRcdHN0YWNrLFxuXHRcdHR5cGU6IHtcblx0XHRcdGlzU3ViVHlwZSxcblx0XHRcdGNvbmZpZzoge1xuXHRcdFx0XHRzdHJpY3RDaGFpbixcblx0XHRcdFx0YmxvY2tFcnJvcnNcblx0XHRcdH1cblx0XHR9XG5cdH0gPSBzZWxmO1xuXG5cdGlmICggIXNlbGYuaW5oZXJpdGVkSW5zdGFuY2UuY29uc3RydWN0b3IgKSB7XG5cdFx0Y29uc3QgbXNnID0gJ3Nob3VsZCBpbmhlcml0IGZyb20gbW5lbW9uaWNhIGluc3RhbmNlJztcblx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdH1cblxuXHRpZiAoICFzZWxmLmluaGVyaXRlZEluc3RhbmNlLmNvbnN0cnVjdG9yWyBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUgXSApIHtcblx0XHRjb25zdCBtc2cgPSAnc2hvdWxkIGluaGVyaXQgZnJvbSBtbmVtb25pY2EgaW5zdGFuY2UnO1xuXHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHN0YWNrICkgKTtcblx0fVxuXG5cdGlmICggY29udGludWF0aW9uT2YgJiYgISggc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSBpbnN0YW5jZW9mIGNvbnRpbnVhdGlvbk9mICkgKSB7XG5cdFx0Ly8gZGVidWdnZXI7XG5cdFx0Y29uc3QgaWNuID0gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lO1xuXHRcdGNvbnN0IG1zZyA9IGBzaG91bGQgaW5oZXJpdCBmcm9tICR7Y29udGludWF0aW9uT2YuVHlwZU5hbWV9IGJ1dCBnb3QgJHtpY259YDtcblx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdFx0Ly8gdGhyb3cgbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKG1zZywgc2VsZi5zdGFjayk7XG5cdH1cblxuXHRpZiAoaXNTdWJUeXBlICYmIHN0cmljdENoYWluKSB7XG5cdFx0XG5cdFx0aWYgKHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgaW5zdGFuY2VvZiBFcnJvciAmJiAhYmxvY2tFcnJvcnMpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBwYXJlbnQgPSBzZWxmLmluaGVyaXRlZEluc3RhbmNlLnBhcmVudCgpO1xuXHRcdGNvbnN0IHBhcmVudE5hbWUgPSBwYXJlbnQuY29uc3RydWN0b3IubmFtZTtcblx0XHRjb25zdCBwYXJlbnRUeXBlTmFtZSA9IHNlbGYudHlwZS5wYXJlbnRUeXBlLlR5cGVOYW1lO1xuXHRcdGlmIChwYXJlbnROYW1lICE9PSBwYXJlbnRUeXBlTmFtZSkge1xuXHRcdFx0Y29uc3QgbXNnID0gYHNob3VsZCBpbmhlcml0IGZyb20gJHtwYXJlbnRUeXBlTmFtZX0gYnV0IG1hZGUgb24gJHtwYXJlbnROYW1lfWA7XG5cdFx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdFx0fVxuXG5cdH1cblxuXHRfc2V0U2VsZihzZWxmLmluaGVyaXRlZEluc3RhbmNlKTtcblxuXHRzZWxmLmludm9rZVBvc3RIb29rcygpO1xuXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW5TcGVjIHtcblx0c3VidHlwZTogb2JqZWN0O1xuXHRhcmdzOiB1bmtub3duW107XG5cdG5hbWU/OiBzdHJpbmc7XG59XG5cbiAgXG5jb25zdCBhZGRUaGVuID0gZnVuY3Rpb24gKCB0aGlzOiBhbnksIHRoZW46IFRoZW5TcGVjICkge1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2Vcblx0XHQudGhlbiggKCkgPT4ge1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9XG5cdFx0XHRcdG5ldyBJbnN0YW5jZUNyZWF0b3IoXG5cdFx0XHRcdFx0dGhlbi5zdWJ0eXBlLFxuXHRcdFx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0XHRcdFx0dGhlbi5hcmdzLFxuXHRcdFx0XHRcdC8vIHdhcyBjaGFpbmVkIDpcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0Ly8gc2VsZi5leGlzdGVudEluc3RhbmNlXG5cdFx0XHRcdCkgYXMgdW5rbm93biBhcyBQcm9taXNlPHVua25vd24+O1xuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0fSApO1xuXG59O1xuXG5jb25zdCBtYWtlQXdhaXRlciA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0eXBlOiBhbnksIHRoZW4/OiBUaGVuU3BlYyApIHtcblxuXHQgXG5cdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBzZWxmLmluaGVyaXRlZEluc3RhbmNlXG5cdFx0LnRoZW4oICggaW5zdGFuY2U6IHVua25vd24gKSA9PiB7XG5cblx0XHRcdGlmICggdHlwZW9mIGluc3RhbmNlICE9PSAnb2JqZWN0JyApIHtcblx0XHRcdFx0aWYgKCBzZWxmLmNvbmZpZy5hd2FpdFJldHVybiApIHtcblx0XHRcdFx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke3R5cGUuVHlwZU5hbWV9OiBzZWVtcyBhc3luYyAke3R5cGUuVHlwZU5hbWV9IGhhcyBubyByZXR1cm4gc3RhdGVtZW50YDtcblx0XHRcdFx0XHR0aHJvdyBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc2VsZi5zdGFjayApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBpbnN0YW5jZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICEoIGluc3RhbmNlIGluc3RhbmNlb2Ygc2VsZi50eXBlICkgKSB7XG5cdFx0XHRcdCBcblx0XHRcdFx0Y29uc3QgaWNuID0gKGluc3RhbmNlIGFzIGFueSkuY29uc3RydWN0b3IubmFtZTtcblx0XHRcdFx0Y29uc3QgbXNnID0gYHNob3VsZCBpbmhlcml0IGZyb20gJHt0eXBlLlR5cGVOYW1lfSBidXQgZ290ICR7aWNufWA7XG5cdFx0XHRcdHRocm93IG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzZWxmLnN0YWNrICk7XG5cdFx0XHR9XG5cblx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBpbnN0YW5jZTtcblxuXHRcdFx0Y29uc3QgcHJvcHMgPSBfZ2V0UHJvcHMoc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0XHRcdCBcblx0XHRcdGlmICggcHJvcHMuX19zZWxmX18gIT09IChzZWxmLmluaGVyaXRlZEluc3RhbmNlIGFzIHVua25vd24pICkge1xuXHRcdFx0XHRzZWxmLnBvc3RQcm9jZXNzaW5nKCB0eXBlICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXG5cdFx0fSApXG5cdFx0LmNhdGNoKCAoIGVycm9yOiBFcnJvciApID0+IHtcblx0XHRcdGlmICggc2VsZi5jb25maWcuYmxvY2tFcnJvcnMgKSB7XG5cdFx0XHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggZXJyb3IgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IGVycm9yO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRpZiAoIHRoZW4gKSB7XG5cdFx0c2VsZi5hZGRUaGVuKCB0aGVuICk7XG5cdH1cblxuXHR0eXBlLnN1YnR5cGVzLmZvckVhY2goICggc3VidHlwZTogb2JqZWN0LCBuYW1lOiBzdHJpbmcgKSA9PiB7XG5cdFx0IFxuXHRcdChzZWxmLmluaGVyaXRlZEluc3RhbmNlIGFzIGFueSlbIG5hbWUgXSA9ICggLi4uYXJnczogdW5rbm93bltdICkgPT4ge1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYubWFrZUF3YWl0ZXIoIHN1YnR5cGUsIHtcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0c3VidHlwZSxcblx0XHRcdFx0YXJncyxcblx0XHRcdH0gKTtcblx0XHRcdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXHRcdH07XG5cdH0gKTtcblxuXHRyZXR1cm4gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZTtcblxufTtcblxuY29uc3QgSW5zdGFuY2VDcmVhdG9yUHJvdG90eXBlID0ge1xuXHRnZXRFeGlzdGVudEFzeW5jU3RhY2ssXG5cdHBvc3RQcm9jZXNzaW5nLFxuXHRtYWtlQXdhaXRlcixcblx0YWRkVGhlbixcblx0aW52b2tlUHJlSG9va3MsXG5cdGludm9rZVBvc3RIb29rcyxcblx0dGhyb3dNb2RpZmljYXRpb25FcnJvclxufTtcblxuICBcbmV4cG9ydCBjb25zdCBJbnN0YW5jZUNyZWF0b3IgPSBmdW5jdGlvbiAoIHRoaXM6IGFueSwgdHlwZTogYW55LCBleGlzdGVudEluc3RhbmNlOiB1bmtub3duLCBhcmdzOiB1bmtub3duW10sIGNoYWluZWQ6IGJvb2xlYW4gKSB7XG5cblx0Y29uc3Qge1xuXHRcdGNvbnN0cnVjdEhhbmRsZXIsXG5cdFx0cHJvdG8sXG5cdFx0Y29uZmlnLFxuXHRcdFR5cGVOYW1lXG5cdH0gPSB0eXBlO1xuXG5cdGNvbnN0IHtcblx0XHRNb2RpZmljYXRpb25Db25zdHJ1Y3Rvcixcblx0XHRibG9ja0Vycm9ycyxcblx0XHRzdWJtaXRTdGFja1xuXHR9ID0gY29uZmlnO1xuXG5cdCBcblx0Y29uc3QgbWMgPSBNb2RpZmljYXRpb25Db25zdHJ1Y3RvcigpO1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0Y29uc3QgTW9kaWZpY2F0b3JUeXBlID0gY29uc3RydWN0SGFuZGxlcigpO1xuXG5cdE9iamVjdC5hc3NpZ24oIHNlbGYsIHtcblxuXHRcdHR5cGUsXG5cdFx0VHlwZU5hbWUsXG5cblx0XHRleGlzdGVudEluc3RhbmNlLFxuXG5cdFx0Z2V0IGFyZ3MgKCkge1xuXHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0fSxcblxuXHRcdE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yIDogbWMsXG5cdFx0TW9kaWZpY2F0b3JUeXBlLFxuXG5cdFx0Y29uZmlnLFxuXG5cdFx0cHJvdG9cblxuXHR9ICk7XG5cblx0aWYgKCBzdWJtaXRTdGFjayB8fCBjaGFpbmVkICkge1xuXHRcdGNvbnN0IHN0YWNrQWRkaXRpb246IHN0cmluZ1tdID0gY2hhaW5lZCA/IHNlbGYuZ2V0RXhpc3RlbnRBc3luY1N0YWNrKCBleGlzdGVudEluc3RhbmNlICkgOiBbXTtcblx0XHRjb25zdCB0aXRsZSA9IGBcXG48LS0gY3JlYXRpb24gb2YgWyAke1R5cGVOYW1lfSBdIHRyYWNlZCAtLT5gO1xuXHRcdGlmICggc3VibWl0U3RhY2sgKSB7XG5cdFx0XHRnZXRTdGFjay5jYWxsKCBzZWxmLCB0aXRsZSwgc3RhY2tBZGRpdGlvbiApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZWxmLnN0YWNrID0gdGl0bGU7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCBibG9ja0Vycm9ycyApIHtcblxuXHRcdGlmICggZXhpc3RlbnRJbnN0YW5jZSBpbnN0YW5jZW9mIEVycm9yICkge1xuXG5cdFx0XHRzZWxmLk1vZGlmaWNhdG9yVHlwZSA9IG1ha2VFcnJvck1vZGlmaWNhdG9yVHlwZSggVHlwZU5hbWUgKTtcblxuXHRcdFx0c2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIHNlbGYgKTtcblxuXHRcdFx0Y29uc3QgYmxvY2tFcnJvcnNFcnJvckluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXG5cdFx0XHR0aHJvdyBibG9ja0Vycm9yc0Vycm9ySW5zdGFuY2U7XG5cblx0XHR9XG5cdH1cblxuXHRzZWxmLmludm9rZVByZUhvb2tzKCk7XG5cblx0c2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIHNlbGYgKTtcblxuXHRpZiAoIGJsb2NrRXJyb3JzICkge1xuXG5cdFx0dHJ5IHtcblx0XHRcdC8vIENvbnN0cnVjdG9yIEludm9jYXRpb24gSXRzZWxmXG5cdFx0XHRjb25zdCBhbnN3ZXIgPSBuZXcgc2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yKCAuLi5hcmdzICk7XG5cdFx0XHQvLyBkZWJ1Z2dlcjtcblx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBhbnN3ZXI7XG5cblx0XHR9IGNhdGNoICggZXJyb3IgKSB7XG5cblx0XHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggZXJyb3IgKTtcblxuXHRcdH1cblxuXHR9IGVsc2Uge1xuXG5cdFx0Ly8gQ29uc3RydWN0b3IgSW52b2NhdGlvbiBJdHNlbGZcblx0XHRjb25zdCBhbnN3ZXIgPSBuZXcgc2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yKCAuLi5hcmdzICk7XG5cdFx0Ly8gZGVidWdnZXI7XG5cdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IGFuc3dlcjtcblxuXHR9XG5cblxuXHRpZiAoIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgaW5zdGFuY2VvZiBQcm9taXNlICkge1xuXG5cdFx0Y29uc3Qgd2FpdGVyID0gc2VsZi5tYWtlQXdhaXRlciggdHlwZSApO1xuXG5cdFx0b2RwKCB3YWl0ZXIsIFN5bWJvbENvbnN0cnVjdG9yTmFtZSwge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIFR5cGVOYW1lO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdHJldHVybiB3YWl0ZXI7XG5cblx0fVxuXG5cdHNlbGYucG9zdFByb2Nlc3NpbmcoIHR5cGUgKTtcblxuXHRyZXR1cm4gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZTtcblxufSBhcyBDb25zdHJ1Y3RvckZ1bmN0aW9uPHR5cGVvZiBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGU+O1xuXG5PYmplY3QuYXNzaWduKCBJbnN0YW5jZUNyZWF0b3IucHJvdG90eXBlLCBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGUgKTtcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ConstructorFunction } from '../../types';
|
|
2
2
|
declare const _default: {
|
|
3
|
-
readonly createMnemosyne: (Uranus: unknown) => object;
|
|
3
|
+
readonly createMnemosyne: (Uranus: unknown, exposeInstanceMethods: boolean) => object;
|
|
4
4
|
readonly prepareSubtypeForConstruction: (subtypeName: string, inheritedInstance: unknown) => ConstructorFunction<{
|
|
5
5
|
getExistentAsyncStack: (existentInstance: import("../utils").asyncStack) => unknown;
|
|
6
6
|
postProcessing: (this: any, continuationOf: any) => void;
|