@inversifyjs/core 1.3.2 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +299 -6
- package/CHANGELOG.md +15 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataConstructorArgument.d.ts +4 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataConstructorArgument.d.ts.map +1 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataConstructorArgument.js +12 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataConstructorArgument.js.map +1 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataConstructorArgument.spec.d.ts.map +1 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataProperty.d.ts +4 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataProperty.d.ts.map +1 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataProperty.js +11 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataProperty.js.map +1 -0
- package/lib/cjs/metadata/actions/updateMaybeClassMetadataProperty.spec.d.ts.map +1 -0
- package/lib/cjs/metadata/calculations/assertConstructorMetadataArrayFilled.d.ts +4 -0
- package/lib/cjs/metadata/calculations/assertConstructorMetadataArrayFilled.d.ts.map +1 -0
- package/lib/cjs/metadata/calculations/assertConstructorMetadataArrayFilled.js +23 -0
- package/lib/cjs/metadata/calculations/assertConstructorMetadataArrayFilled.js.map +1 -0
- package/lib/cjs/metadata/calculations/assertConstructorMetadataArrayFilled.spec.d.ts.map +1 -0
- package/lib/cjs/metadata/calculations/getClassMetadataConstructorArguments.d.ts.map +1 -1
- package/lib/cjs/metadata/calculations/getClassMetadataConstructorArguments.js +2 -0
- package/lib/cjs/metadata/calculations/getClassMetadataConstructorArguments.js.map +1 -1
- package/lib/cjs/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.d.ts.map +1 -1
- package/lib/cjs/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.js +2 -0
- package/lib/cjs/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.js.map +1 -1
- package/lib/cjs/metadata/calculations/getDefaultClassMetadata.d.ts +3 -0
- package/lib/cjs/metadata/calculations/getDefaultClassMetadata.d.ts.map +1 -0
- package/lib/cjs/metadata/calculations/getDefaultClassMetadata.js +14 -0
- package/lib/cjs/metadata/calculations/getDefaultClassMetadata.js.map +1 -0
- package/lib/cjs/metadata/calculations/getDefaultClassMetadata.spec.d.ts.map +1 -0
- package/lib/cjs/metadata/decorators/injectBase.d.ts +4 -0
- package/lib/cjs/metadata/decorators/injectBase.d.ts.map +1 -0
- package/lib/cjs/metadata/decorators/injectBase.js +39 -0
- package/lib/cjs/metadata/decorators/injectBase.js.map +1 -0
- package/lib/cjs/metadata/decorators/injectBase.spec.d.ts.map +1 -0
- package/lib/cjs/metadata/models/BaseClassElementMetadata.d.ts +1 -2
- package/lib/cjs/metadata/models/BaseClassElementMetadata.d.ts.map +1 -1
- package/lib/cjs/metadata/models/ManagedClassElementMetadata.d.ts +1 -1
- package/lib/cjs/metadata/models/ManagedClassElementMetadata.d.ts.map +1 -1
- package/lib/cjs/metadata/models/MaybeClassElementMetadata.d.ts +5 -0
- package/lib/cjs/metadata/models/MaybeClassElementMetadata.d.ts.map +1 -0
- package/lib/cjs/metadata/models/MaybeClassElementMetadata.js +3 -0
- package/lib/cjs/metadata/models/MaybeClassElementMetadata.js.map +1 -0
- package/lib/cjs/metadata/models/MaybeClassElementMetadataKind.d.ts +4 -0
- package/lib/cjs/metadata/models/MaybeClassElementMetadataKind.d.ts.map +1 -0
- package/lib/cjs/metadata/models/MaybeClassElementMetadataKind.js +8 -0
- package/lib/cjs/metadata/models/MaybeClassElementMetadataKind.js.map +1 -0
- package/lib/cjs/metadata/models/MaybeClassMetadata.d.ts +8 -0
- package/lib/cjs/metadata/models/MaybeClassMetadata.d.ts.map +1 -0
- package/lib/cjs/metadata/models/MaybeClassMetadata.js +3 -0
- package/lib/cjs/metadata/models/MaybeClassMetadata.js.map +1 -0
- package/lib/cjs/metadata/models/MaybeManagedClassElementMetadata.d.ts +14 -0
- package/lib/cjs/metadata/models/MaybeManagedClassElementMetadata.d.ts.map +1 -0
- package/lib/cjs/metadata/models/MaybeManagedClassElementMetadata.js +3 -0
- package/lib/cjs/metadata/models/MaybeManagedClassElementMetadata.js.map +1 -0
- package/lib/cjs/reflectMetadata/data/classMetadataReflectKey.d.ts +2 -0
- package/lib/cjs/reflectMetadata/data/classMetadataReflectKey.d.ts.map +1 -0
- package/lib/cjs/reflectMetadata/data/classMetadataReflectKey.js +5 -0
- package/lib/cjs/reflectMetadata/data/classMetadataReflectKey.js.map +1 -0
- package/lib/esm/index.js +2 -8
- package/lib/esm/metadata/actions/updateMaybeClassMetadataConstructorArgument.d.ts +4 -0
- package/lib/esm/metadata/actions/updateMaybeClassMetadataConstructorArgument.d.ts.map +1 -0
- package/lib/esm/metadata/actions/updateMaybeClassMetadataConstructorArgument.spec.d.ts.map +1 -0
- package/lib/esm/metadata/actions/updateMaybeClassMetadataProperty.d.ts +4 -0
- package/lib/esm/metadata/actions/updateMaybeClassMetadataProperty.d.ts.map +1 -0
- package/lib/esm/metadata/actions/updateMaybeClassMetadataProperty.spec.d.ts.map +1 -0
- package/lib/esm/metadata/calculations/assertConstructorMetadataArrayFilled.d.ts +4 -0
- package/lib/esm/metadata/calculations/assertConstructorMetadataArrayFilled.d.ts.map +1 -0
- package/lib/esm/metadata/calculations/assertConstructorMetadataArrayFilled.spec.d.ts.map +1 -0
- package/lib/esm/metadata/calculations/getClassMetadataConstructorArguments.d.ts.map +1 -1
- package/lib/esm/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.d.ts.map +1 -1
- package/lib/esm/metadata/calculations/getDefaultClassMetadata.d.ts +3 -0
- package/lib/esm/metadata/calculations/getDefaultClassMetadata.d.ts.map +1 -0
- package/lib/esm/metadata/calculations/getDefaultClassMetadata.spec.d.ts.map +1 -0
- package/lib/esm/metadata/decorators/injectBase.d.ts +4 -0
- package/lib/esm/metadata/decorators/injectBase.d.ts.map +1 -0
- package/lib/esm/metadata/decorators/injectBase.spec.d.ts.map +1 -0
- package/lib/esm/metadata/models/BaseClassElementMetadata.d.ts +1 -2
- package/lib/esm/metadata/models/BaseClassElementMetadata.d.ts.map +1 -1
- package/lib/esm/metadata/models/ManagedClassElementMetadata.d.ts +1 -1
- package/lib/esm/metadata/models/ManagedClassElementMetadata.d.ts.map +1 -1
- package/lib/esm/metadata/models/MaybeClassElementMetadata.d.ts +5 -0
- package/lib/esm/metadata/models/MaybeClassElementMetadata.d.ts.map +1 -0
- package/lib/esm/metadata/models/MaybeClassElementMetadataKind.d.ts +4 -0
- package/lib/esm/metadata/models/MaybeClassElementMetadataKind.d.ts.map +1 -0
- package/lib/esm/metadata/models/MaybeClassMetadata.d.ts +8 -0
- package/lib/esm/metadata/models/MaybeClassMetadata.d.ts.map +1 -0
- package/lib/esm/metadata/models/MaybeManagedClassElementMetadata.d.ts +14 -0
- package/lib/esm/metadata/models/MaybeManagedClassElementMetadata.d.ts.map +1 -0
- package/lib/esm/reflectMetadata/data/classMetadataReflectKey.d.ts +2 -0
- package/lib/esm/reflectMetadata/data/classMetadataReflectKey.d.ts.map +1 -0
- package/package.json +14 -7
- package/tsconfig.cjs.tsbuildinfo +1 -1
- package/webpack.config.mjs +13 -0
- package/lib/esm/error/models/InversifyCoreError.js +0 -19
- package/lib/esm/error/models/InversifyCoreError.js.map +0 -1
- package/lib/esm/error/models/InversifyCoreErrorKind.js +0 -6
- package/lib/esm/error/models/InversifyCoreErrorKind.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/legacyTarget/calculations/getTargetId.js +0 -13
- package/lib/esm/legacyTarget/calculations/getTargetId.js.map +0 -1
- package/lib/esm/legacyTarget/calculations/getTargets.js +0 -15
- package/lib/esm/legacyTarget/calculations/getTargets.js.map +0 -1
- package/lib/esm/legacyTarget/calculations/getTargetsFromMetadataProviders.js +0 -33
- package/lib/esm/legacyTarget/calculations/getTargetsFromMetadataProviders.js.map +0 -1
- package/lib/esm/legacyTarget/models/LegacyTarget.js +0 -2
- package/lib/esm/legacyTarget/models/LegacyTarget.js.map +0 -1
- package/lib/esm/legacyTarget/models/LegacyTargetImpl.js +0 -91
- package/lib/esm/legacyTarget/models/LegacyTargetImpl.js.map +0 -1
- package/lib/esm/legacyTarget/models/LegacyTargetType.js +0 -2
- package/lib/esm/legacyTarget/models/LegacyTargetType.js.map +0 -1
- package/lib/esm/metadata/calculations/getClassElementMetadataFromLegacyMetadata.js +0 -45
- package/lib/esm/metadata/calculations/getClassElementMetadataFromLegacyMetadata.js.map +0 -1
- package/lib/esm/metadata/calculations/getClassElementMetadataFromNewable.js +0 -12
- package/lib/esm/metadata/calculations/getClassElementMetadataFromNewable.js.map +0 -1
- package/lib/esm/metadata/calculations/getClassMetadata.js +0 -18
- package/lib/esm/metadata/calculations/getClassMetadata.js.map +0 -1
- package/lib/esm/metadata/calculations/getClassMetadataConstructorArguments.js +0 -27
- package/lib/esm/metadata/calculations/getClassMetadataConstructorArguments.js.map +0 -1
- package/lib/esm/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.js +0 -23
- package/lib/esm/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.js.map +0 -1
- package/lib/esm/metadata/calculations/getClassMetadataFromMetadataReader.js +0 -18
- package/lib/esm/metadata/calculations/getClassMetadataFromMetadataReader.js.map +0 -1
- package/lib/esm/metadata/calculations/getClassMetadataProperties.js +0 -15
- package/lib/esm/metadata/calculations/getClassMetadataProperties.js.map +0 -1
- package/lib/esm/metadata/calculations/getClassMetadataPropertiesFromMetadataReader.js +0 -11
- package/lib/esm/metadata/calculations/getClassMetadataPropertiesFromMetadataReader.js.map +0 -1
- package/lib/esm/metadata/calculations/getConstructorArgumentMetadataFromLegacyMetadata.js +0 -17
- package/lib/esm/metadata/calculations/getConstructorArgumentMetadataFromLegacyMetadata.js.map +0 -1
- package/lib/esm/metadata/calculations/getLegacyMetadata.js +0 -67
- package/lib/esm/metadata/calculations/getLegacyMetadata.js.map +0 -1
- package/lib/esm/metadata/calculations/getPropertyMetadataFromLegacyMetadata.js +0 -17
- package/lib/esm/metadata/calculations/getPropertyMetadataFromLegacyMetadata.js.map +0 -1
- package/lib/esm/metadata/models/BaseClassElementMetadata.js +0 -2
- package/lib/esm/metadata/models/BaseClassElementMetadata.js.map +0 -1
- package/lib/esm/metadata/models/ClassElementMetadata.js +0 -2
- package/lib/esm/metadata/models/ClassElementMetadata.js.map +0 -1
- package/lib/esm/metadata/models/ClassElementMetadataKind.js +0 -7
- package/lib/esm/metadata/models/ClassElementMetadataKind.js.map +0 -1
- package/lib/esm/metadata/models/ClassMetadata.js +0 -2
- package/lib/esm/metadata/models/ClassMetadata.js.map +0 -1
- package/lib/esm/metadata/models/ClassMetadataLifecycle.js +0 -2
- package/lib/esm/metadata/models/ClassMetadataLifecycle.js.map +0 -1
- package/lib/esm/metadata/models/LegacyConstructorMetadata.js +0 -2
- package/lib/esm/metadata/models/LegacyConstructorMetadata.js.map +0 -1
- package/lib/esm/metadata/models/LegacyMetadata.js +0 -2
- package/lib/esm/metadata/models/LegacyMetadata.js.map +0 -1
- package/lib/esm/metadata/models/LegacyMetadataMap.js +0 -2
- package/lib/esm/metadata/models/LegacyMetadataMap.js.map +0 -1
- package/lib/esm/metadata/models/LegacyMetadataReader.js +0 -2
- package/lib/esm/metadata/models/LegacyMetadataReader.js.map +0 -1
- package/lib/esm/metadata/models/ManagedClassElementMetadata.js +0 -2
- package/lib/esm/metadata/models/ManagedClassElementMetadata.js.map +0 -1
- package/lib/esm/metadata/models/MetadataName.js +0 -2
- package/lib/esm/metadata/models/MetadataName.js.map +0 -1
- package/lib/esm/metadata/models/MetadataTag.js +0 -2
- package/lib/esm/metadata/models/MetadataTag.js.map +0 -1
- package/lib/esm/metadata/models/MetadataTargetName.js +0 -2
- package/lib/esm/metadata/models/MetadataTargetName.js.map +0 -1
- package/lib/esm/metadata/models/UnmanagedClassElementMetadata.js +0 -2
- package/lib/esm/metadata/models/UnmanagedClassElementMetadata.js.map +0 -1
- package/lib/esm/prototype/calculations/getBaseType.js +0 -6
- package/lib/esm/prototype/calculations/getBaseType.js.map +0 -1
- package/lib/esm/prototype/models/Prototype.js +0 -2
- package/lib/esm/prototype/models/Prototype.js.map +0 -1
- package/lib/esm/reflectMetadata/data/keys.js +0 -35
- package/lib/esm/reflectMetadata/data/keys.js.map +0 -1
- package/lib/esm/string/models/LegacyQueryableString.js +0 -2
- package/lib/esm/string/models/LegacyQueryableString.js.map +0 -1
- package/lib/esm/string/models/LegacyQueryableStringImpl.js +0 -22
- package/lib/esm/string/models/LegacyQueryableStringImpl.js.map +0 -1
- package/lib/esm/symbol/calculations/getDescription.js +0 -6
- package/lib/esm/symbol/calculations/getDescription.js.map +0 -1
- package/tsconfig.esm.tsbuildinfo +0 -1
|
@@ -5,10 +5,10 @@ import { MetadataName } from './MetadataName';
|
|
|
5
5
|
import { MetadataTag } from './MetadataTag';
|
|
6
6
|
import { MetadataTargetName } from './MetadataTargetName';
|
|
7
7
|
export interface ManagedClassElementMetadata extends BaseClassElementMetadata<ClassElementMetadataKind.singleInjection | ClassElementMetadataKind.multipleInjection> {
|
|
8
|
-
value: ServiceIdentifier | LazyServiceIdentifier;
|
|
9
8
|
name: MetadataName | undefined;
|
|
10
9
|
optional: boolean;
|
|
11
10
|
tags: Map<MetadataTag, unknown>;
|
|
12
11
|
targetName: MetadataTargetName | undefined;
|
|
12
|
+
value: ServiceIdentifier | LazyServiceIdentifier;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=ManagedClassElementMetadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagedClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/ManagedClassElementMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,2BACf,SAAQ,wBAAwB,CAC5B,wBAAwB,CAAC,eAAe,GACxC,wBAAwB,CAAC,iBAAiB,CAC7C;IACD,
|
|
1
|
+
{"version":3,"file":"ManagedClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/ManagedClassElementMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,2BACf,SAAQ,wBAAwB,CAC5B,wBAAwB,CAAC,eAAe,GACxC,wBAAwB,CAAC,iBAAiB,CAC7C;IACD,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,CAAC;CAClD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ManagedClassElementMetadata } from './ManagedClassElementMetadata';
|
|
2
|
+
import { MaybeManagedClassElementMetadata } from './MaybeManagedClassElementMetadata';
|
|
3
|
+
import { UnmanagedClassElementMetadata } from './UnmanagedClassElementMetadata';
|
|
4
|
+
export type MaybeClassElementMetadata = ManagedClassElementMetadata | MaybeManagedClassElementMetadata | UnmanagedClassElementMetadata;
|
|
5
|
+
//# sourceMappingURL=MaybeClassElementMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassElementMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,MAAM,yBAAyB,GACjC,2BAA2B,GAC3B,gCAAgC,GAChC,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassElementMetadata.js","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassElementMetadata.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassElementMetadataKind.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassElementMetadataKind.ts"],"names":[],"mappings":"AAAA,oBAAY,6BAA6B;IACvC,OAAO,IAAA;CACR"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MaybeClassElementMetadataKind = void 0;
|
|
4
|
+
var MaybeClassElementMetadataKind;
|
|
5
|
+
(function (MaybeClassElementMetadataKind) {
|
|
6
|
+
MaybeClassElementMetadataKind[MaybeClassElementMetadataKind["unknown"] = 0] = "unknown";
|
|
7
|
+
})(MaybeClassElementMetadataKind || (exports.MaybeClassElementMetadataKind = MaybeClassElementMetadataKind = {}));
|
|
8
|
+
//# sourceMappingURL=MaybeClassElementMetadataKind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassElementMetadataKind.js","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassElementMetadataKind.ts"],"names":[],"mappings":";;;AAAA,IAAY,6BAEX;AAFD,WAAY,6BAA6B;IACvC,uFAAO,CAAA;AACT,CAAC,EAFW,6BAA6B,6CAA7B,6BAA6B,QAExC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClassMetadataLifecycle } from './ClassMetadataLifecycle';
|
|
2
|
+
import { MaybeClassElementMetadata } from './MaybeClassElementMetadata';
|
|
3
|
+
export interface MaybeClassMetadata {
|
|
4
|
+
constructorArguments: MaybeClassElementMetadata[];
|
|
5
|
+
lifecycle: ClassMetadataLifecycle;
|
|
6
|
+
properties: Map<string | symbol, MaybeClassElementMetadata>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=MaybeClassMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,yBAAyB,EAAE,CAAC;IAClD,SAAS,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassMetadata.js","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassMetadata.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LazyServiceIdentifier, ServiceIdentifier } from '@inversifyjs/common';
|
|
2
|
+
import { BaseClassElementMetadata } from './BaseClassElementMetadata';
|
|
3
|
+
import { MaybeClassElementMetadataKind } from './MaybeClassElementMetadataKind';
|
|
4
|
+
import { MetadataName } from './MetadataName';
|
|
5
|
+
import { MetadataTag } from './MetadataTag';
|
|
6
|
+
import { MetadataTargetName } from './MetadataTargetName';
|
|
7
|
+
export interface MaybeManagedClassElementMetadata extends BaseClassElementMetadata<MaybeClassElementMetadataKind.unknown> {
|
|
8
|
+
name: MetadataName | undefined;
|
|
9
|
+
optional: boolean | undefined;
|
|
10
|
+
tags: Map<MetadataTag, unknown>;
|
|
11
|
+
targetName: MetadataTargetName | undefined;
|
|
12
|
+
value: ServiceIdentifier | LazyServiceIdentifier | undefined;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=MaybeManagedClassElementMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeManagedClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeManagedClassElementMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,gCACf,SAAQ,wBAAwB,CAAC,6BAA6B,CAAC,OAAO,CAAC;IACvE,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,SAAS,CAAC;CAC9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeManagedClassElementMetadata.js","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeManagedClassElementMetadata.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classMetadataReflectKey.d.ts","sourceRoot":"","sources":["../../../../src/reflectMetadata/data/classMetadataReflectKey.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,EAAE,MACO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classMetadataReflectKey.js","sourceRoot":"","sources":["../../../../src/reflectMetadata/data/classMetadataReflectKey.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAClC,2CAA2C,CAAC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LegacyTargetImpl } from './legacyTarget/models/LegacyTargetImpl';
|
|
3
|
-
import { getClassElementMetadataFromLegacyMetadata } from './metadata/calculations/getClassElementMetadataFromLegacyMetadata';
|
|
4
|
-
import { getClassMetadata } from './metadata/calculations/getClassMetadata';
|
|
5
|
-
import { getClassMetadataFromMetadataReader } from './metadata/calculations/getClassMetadataFromMetadataReader';
|
|
6
|
-
import { ClassElementMetadataKind } from './metadata/models/ClassElementMetadataKind';
|
|
7
|
-
export { ClassElementMetadataKind, getClassElementMetadataFromLegacyMetadata, getClassMetadata, getClassMetadataFromMetadataReader, getTargets, LegacyTargetImpl, };
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
import*as t from"@inversifyjs/reflect-metadata-utils";import*as e from"@inversifyjs/common";var a={d:(t,e)=>{for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},n={};a.d(n,{Uo:()=>k,zN:()=>G,YR:()=>R,QN:()=>z,wK:()=>x,N3:()=>$});const r=(y={getReflectMetadata:()=>t.getReflectMetadata,updateReflectMetadata:()=>t.updateReflectMetadata},v={},a.d(v,y),v),i="named",o="name",s="unmanaged",c="optional",d="inject",u="multi_inject",l="inversify:tagged",m="inversify:tagged_props",f="design:paramtypes",g="post_construct",p="pre_destroy";var y,v;const h=[d,u,o,s,i,c],j=Symbol.for("@inversifyjs/core/InversifyCoreError");class M extends Error{[j];kind;constructor(t,e,a){super(e,a),this[j]=!0,this.kind=t}static is(t){return"object"==typeof t&&null!==t&&!0===t[j]}static isErrorOfKind(t,e){return M.is(t)&&t.kind===e}}var I,k;function w(t,e){const a=[];for(let t=0;t<e.length;++t)void 0===e[t]&&a.push(t);if(a.length>0)throw new M(I.missingInjectionDecorator,`Found unexpected missing metadata on type "${t.name}" at constructor indexes "${a.join('", "')}".\n\nAre you using @inject, @multiInject or @unmanaged decorators at those indexes?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`)}function N(t){return{kind:k.singleInjection,name:void 0,optional:!1,tags:new Map,targetName:void 0,value:t}}function R(t){const e=t.find((t=>t.key===d)),a=t.find((t=>t.key===u));if(void 0!==t.find((t=>t.key===s)))return function(t,e){if(void 0!==e||void 0!==t)throw new M(I.missingInjectionDecorator,"Expected a single @inject, @multiInject or @unmanaged metadata");return{kind:k.unmanaged}}(e,a);if(void 0===a&&void 0===e)throw new M(I.missingInjectionDecorator,"Expected @inject, @multiInject or @unmanaged metadata");const n=t.find((t=>t.key===i)),r=t.find((t=>t.key===c)),l=t.find((t=>t.key===o));return{kind:void 0===e?k.multipleInjection:k.singleInjection,name:n?.value,optional:void 0!==r,tags:new Map(t.filter((t=>h.every((e=>t.key!==e)))).map((t=>[t.key,t.value]))),targetName:l?.value,value:void 0===e?a?.value:e.value}}function E(t,e,a){try{return R(a)}catch(a){throw M.isErrorOfKind(a,I.missingInjectionDecorator)?new M(I.missingInjectionDecorator,`Expected a single @inject, @multiInject or @unmanaged decorator at type "${t.name}" at constructor arguments at index "${e.toString()}"`,{cause:a}):a}}function b(t){const e=(0,r.getReflectMetadata)(t,f),a=(0,r.getReflectMetadata)(t,l),n=[];if(void 0!==a)for(const[e,r]of Object.entries(a)){const a=parseInt(e);n[a]=E(t,a,r)}if(void 0!==e)for(let t=0;t<e.length;++t)if(void 0===n[t]){const a=e[t];n[t]=N(a)}return w(t,n),n}function O(t,e,a){try{return R(a)}catch(a){throw M.isErrorOfKind(a,I.missingInjectionDecorator)?new M(I.missingInjectionDecorator,`Expected a single @inject, @multiInject or @unmanaged decorator at type "${t.name}" at property "${e.toString()}"`,{cause:a}):a}}function D(t){const e=(0,r.getReflectMetadata)(t,m),a=new Map;if(void 0!==e)for(const n of Reflect.ownKeys(e)){const r=e[n];a.set(n,O(t,n,r))}return a}function z(t){const e=(0,r.getReflectMetadata)(t,g),a=(0,r.getReflectMetadata)(t,p);return{constructorArguments:b(t),lifecycle:{postConstructMethodName:e?.value,preDestroyMethodName:a?.value},properties:D(t)}}function A(t,e){const a=e.getConstructorMetadata(t),n=[];for(const[e,r]of Object.entries(a.userGeneratedMetadata)){const a=parseInt(e);n[a]=E(t,a,r)}if(void 0!==a.compilerGeneratedMetadata)for(let t=0;t<a.compilerGeneratedMetadata.length;++t)if(void 0===n[t]){const e=a.compilerGeneratedMetadata[t];n[t]=N(e)}return w(t,n),n}function C(t,e){const a=e.getPropertiesMetadata(t),n=new Map;for(const e of Reflect.ownKeys(a)){const r=a[e];n.set(e,O(t,e,r))}return n}function x(t,e){const a=(0,r.getReflectMetadata)(t,g),n=(0,r.getReflectMetadata)(t,p);return{constructorArguments:A(t,e),lifecycle:{postConstructMethodName:a?.value,preDestroyMethodName:n?.value},properties:C(t,e)}}function L(t){const e=Object.getPrototypeOf(t.prototype),a=e?.constructor;return a}!function(t){t[t.missingInjectionDecorator=0]="missingInjectionDecorator",t[t.unknown=1]="unknown"}(I||(I={})),function(t){t[t.multipleInjection=0]="multipleInjection",t[t.singleInjection=1]="singleInjection",t[t.unmanaged=2]="unmanaged"}(k||(k={}));const T=(t=>{var e={};return a.d(e,t),e})({LazyServiceIdentifier:()=>e.LazyServiceIdentifier});function S(t){let e;switch(t.kind){case k.multipleInjection:e={key:u,value:t.value};break;case k.singleInjection:e={key:d,value:t.value}}return e}class K{#t;constructor(t){this.#t=t}startsWith(t){return this.#t.startsWith(t)}endsWith(t){return this.#t.endsWith(t)}contains(t){return this.#t.includes(t)}equals(t){return this.#t===t}value(){return this.#t}}const _="@inversifyjs/core/targetId";class G{#e;#a;#n;#r;#i;#o;constructor(t,e,a){this.#a=function(){const t=(0,r.getReflectMetadata)(Object,_)??0;return t===Number.MAX_SAFE_INTEGER?(0,r.updateReflectMetadata)(Object,_,t,(()=>Number.MIN_SAFE_INTEGER)):(0,r.updateReflectMetadata)(Object,_,t,(t=>t+1)),t}(),this.#n=t,this.#r=void 0,this.#e=e,this.#i=new K("string"==typeof t?t:t.toString().slice(7,-1)),this.#o=a}get id(){return this.#a}get identifier(){return this.#n}get metadata(){return void 0===this.#r&&(this.#r=(t=this.#e).kind===k.unmanaged?[{key:s,value:!0}]:function(t){const e=[S(t)];void 0!==t.name&&e.push({key:i,value:t.name}),t.optional&&e.push({key:c,value:!0});for(const[a,n]of t.tags)e.push({key:a,value:n});return void 0!==t.targetName&&e.push({key:o,value:t.targetName}),e}(t)),this.#r;var t}get name(){return this.#i}get type(){return this.#o}get serviceIdentifier(){return T.LazyServiceIdentifier.is(this.#e.value)?this.#e.value.unwrap():this.#e.value}getCustomTags(){return[...this.#e.tags.entries()].map((([t,e])=>({key:t,value:e})))}getNamedTag(){return void 0===this.#e.name?null:{key:i,value:this.#e.name}}hasTag(t){return this.metadata.some((e=>e.key===t))}isArray(){return this.#e.kind===k.multipleInjection}isNamed(){return void 0!==this.#e.name}isOptional(){return this.#e.optional}isTagged(){return this.#e.tags.size>0}matchesArray(t){return this.isArray()&&this.#e.value===t}matchesNamedTag(t){return this.#e.name===t}matchesTag(t){return e=>this.metadata.some((a=>a.key===t&&a.value===e))}}const $=t=>function(t,e){return function(a){const n=t(a);let r=L(a);for(;void 0!==r&&r!==Object;){const t=e(r);for(const[e,a]of t)n.properties.has(e)||n.properties.set(e,a);r=L(r)}const i=[];for(const t of n.constructorArguments)if(t.kind!==k.unmanaged){const e=t.targetName??"";i.push(new G(e,t,"ConstructorArgument"))}for(const[t,e]of n.properties)if(e.kind!==k.unmanaged){const a=e.targetName??t;i.push(new G(a,e,"ClassProperty"))}return i}}(void 0===t?z:e=>x(e,t),void 0===t?D:e=>C(e,t));var F=n.Uo,P=n.zN,W=n.YR,Q=n.QN,U=n.wK,Y=n.N3;export{F as ClassElementMetadataKind,P as LegacyTargetImpl,W as getClassElementMetadataFromLegacyMetadata,Q as getClassMetadata,U as getClassMetadataFromMetadataReader,Y as getTargets};
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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SyxNQUFNMEgsRUFHWHRELEdDTkssU0FDTFQsRUFDQVIsR0FJQSxPQUFPLFNBQW1COUMsR0FDeEIsTUFBTXNILEVBQStCaEUsRUFBaUJ0RCxHQUV0RCxJQUFJeUUsRUFBZ0NGLEVBQVl2RSxHQUVoRCxVQUFvQkksSUFBYnFFLEdBQTBCQSxJQUFhbkgsUUFBUSxDQUNwRCxNQUFNaUssRUFHRnpFLEVBQTJCMkIsR0FFL0IsSUFBSyxNQUFPK0MsRUFBYUMsS0FBa0JGLEVBQ3BDRCxFQUFjekQsV0FBVzZELElBQUlGLElBQ2hDRixFQUFjekQsV0FBV1IsSUFBSW1FLEVBQWFDLEdBSTlDaEQsRUFBV0YsRUFBWUUsRUFDekIsQ0FFQSxNQUFNa0QsRUFBMEIsR0FFaEMsSUFBSyxNQUFNQyxLQUF1Qk4sRUFBYzdELHFCQUM5QyxHQUFJbUUsRUFBb0J4SSxPQUFTVSxFQUF5QnVCLFVBQVcsQ0FDbkUsTUFBTVAsRUFBcUI4RyxFQUFvQjlHLFlBQWMsR0FFN0Q2RyxFQUFRdEgsS0FDTixJQUFJbUYsRUFDRjFFLEVBQ0E4RyxFQUNBLHVCQUdOLENBR0YsSUFBSyxNQUFPM0UsRUFBVTlCLEtBQWFtRyxFQUFjekQsV0FDL0MsR0FBSTFDLEVBQVMvQixPQUFTVSxFQUF5QnVCLFVBQVcsQ0FDeEQsTUFBTVAsRUFBOEJLLEVBQVNMLFlBQWNtQyxFQUUzRDBFLEVBQVF0SCxLQUNOLElBQUltRixFQUFpQjFFLEVBQVlLLEVBQVUsaUJBRS9DLENBR0YsT0FBT3dHLENBQ1QsQ0FDRixDRGpDU0UsTUFaY3pILElBQW5CMkQsRUFDSVQsRUFDQ3RELEdBQ0NzRSxFQUFtQ3RFLEVBQU0rRCxRQUk1QjNELElBQW5CMkQsRUFDSWpCLEVBQ0M5QyxHQUNDb0UsRUFBNkNwRSxFQUFNK0QsSSIsInNvdXJjZXMiOlsid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlL2V4dGVybmFsIG1vZHVsZSBcIkBpbnZlcnNpZnlqcy9yZWZsZWN0LW1ldGFkYXRhLXV0aWxzXCIiLCJ3ZWJwYWNrOi8vQGludmVyc2lmeWpzL2NvcmUvLi9zcmMvcmVmbGVjdE1ldGFkYXRhL2RhdGEva2V5cy50cyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9lcnJvci9tb2RlbHMvSW52ZXJzaWZ5Q29yZUVycm9yLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlLy4vc3JjL2Vycm9yL21vZGVscy9JbnZlcnNpZnlDb3JlRXJyb3JLaW5kLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlLy4vc3JjL21ldGFkYXRhL21vZGVscy9DbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQudHMiLCJ3ZWJwYWNrOi8vQGludmVyc2lmeWpzL2NvcmUvLi9zcmMvbWV0YWRhdGEvY2FsY3VsYXRpb25zL2Fzc2VydENvbnN0cnVjdG9yTWV0YWRhdGFBcnJheUZpbGxlZC50cyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0Q2xhc3NFbGVtZW50TWV0YWRhdGFGcm9tTmV3YWJsZS50cyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0Q2xhc3NFbGVtZW50TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEudHMiLCJ3ZWJwYWNrOi8vQGludmVyc2lmeWpzL2NvcmUvLi9zcmMvbWV0YWRhdGEvY2FsY3VsYXRpb25zL2dldENvbnN0cnVjdG9yQXJndW1lbnRNZXRhZGF0YUZyb21MZWdhY3lNZXRhZGF0YS50cyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0Q2xhc3NNZXRhZGF0YUNvbnN0cnVjdG9yQXJndW1lbnRzLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlLy4vc3JjL21ldGFkYXRhL2NhbGN1bGF0aW9ucy9nZXRQcm9wZXJ0eU1ldGFkYXRhRnJvbUxlZ2FjeU1ldGFkYXRhLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlLy4vc3JjL21ldGFkYXRhL2NhbGN1bGF0aW9ucy9nZXRDbGFzc01ldGFkYXRhUHJvcGVydGllcy50cyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0Q2xhc3NNZXRhZGF0YS50cyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0Q2xhc3NNZXRhZGF0YUNvbnN0cnVjdG9yQXJndW1lbnRzRnJvbU1ldGFkYXRhUmVhZGVyLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlLy4vc3JjL21ldGFkYXRhL2NhbGN1bGF0aW9ucy9nZXRDbGFzc01ldGFkYXRhUHJvcGVydGllc0Zyb21NZXRhZGF0YVJlYWRlci50cyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0Q2xhc3NNZXRhZGF0YUZyb21NZXRhZGF0YVJlYWRlci50cyIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9wcm90b3R5cGUvY2FsY3VsYXRpb25zL2dldEJhc2VUeXBlLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlL2V4dGVybmFsIG1vZHVsZSBcIkBpbnZlcnNpZnlqcy9jb21tb25cIiIsIndlYnBhY2s6Ly9AaW52ZXJzaWZ5anMvY29yZS8uL3NyYy9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0TGVnYWN5TWV0YWRhdGEudHMiLCJ3ZWJwYWNrOi8vQGludmVyc2lmeWpzL2NvcmUvLi9zcmMvc3RyaW5nL21vZGVscy9MZWdhY3lRdWVyeWFibGVTdHJpbmdJbXBsLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlLy4vc3JjL2xlZ2FjeVRhcmdldC9jYWxjdWxhdGlvbnMvZ2V0VGFyZ2V0SWQudHMiLCJ3ZWJwYWNrOi8vQGludmVyc2lmeWpzL2NvcmUvLi9zcmMvbGVnYWN5VGFyZ2V0L21vZGVscy9MZWdhY3lUYXJnZXRJbXBsLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlLy4vc3JjL3N5bWJvbC9jYWxjdWxhdGlvbnMvZ2V0RGVzY3JpcHRpb24udHMiLCJ3ZWJwYWNrOi8vQGludmVyc2lmeWpzL2NvcmUvLi9zcmMvbGVnYWN5VGFyZ2V0L2NhbGN1bGF0aW9ucy9nZXRUYXJnZXRzLnRzIiwid2VicGFjazovL0BpbnZlcnNpZnlqcy9jb3JlLy4vc3JjL2xlZ2FjeVRhcmdldC9jYWxjdWxhdGlvbnMvZ2V0VGFyZ2V0c0Zyb21NZXRhZGF0YVByb3ZpZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGUgcmVxdWlyZSBzY29wZVxudmFyIF9fd2VicGFja19yZXF1aXJlX18gPSB7fTtcblxuIiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsInZhciB4ID0gKHkpID0+IHtcblx0dmFyIHggPSB7fTsgX193ZWJwYWNrX3JlcXVpcmVfXy5kKHgsIHkpOyByZXR1cm4geFxufSBcbnZhciB5ID0gKHgpID0+ICgoKSA9PiAoeCkpXG5jb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0geCh7IFtcImdldFJlZmxlY3RNZXRhZGF0YVwiXTogKCkgPT4gKF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfX2ludmVyc2lmeWpzX3JlZmxlY3RfbWV0YWRhdGFfdXRpbHNfOGVjYzRjMTZfXy5nZXRSZWZsZWN0TWV0YWRhdGEpLCBbXCJ1cGRhdGVSZWZsZWN0TWV0YWRhdGFcIl06ICgpID0+IChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX19pbnZlcnNpZnlqc19yZWZsZWN0X21ldGFkYXRhX3V0aWxzXzhlY2M0YzE2X18udXBkYXRlUmVmbGVjdE1ldGFkYXRhKSB9KTsiLCIvLyBVc2VkIGZvciBuYW1lZCBiaW5kaW5nc1xuZXhwb3J0IGNvbnN0IE5BTUVEX1RBRzogc3RyaW5nID0gJ25hbWVkJztcblxuZXhwb3J0IGNvbnN0IE5BTUVfVEFHOiBzdHJpbmcgPSAnbmFtZSc7XG5cbi8vIFRoZSBmb3IgdW5tYW5hZ2VkIGluamVjdGlvbnMgKGluIGJhc2UgY2xhc3NlcyB3aGVuIHVzaW5nIGluaGVyaXRhbmNlKVxuZXhwb3J0IGNvbnN0IFVOTUFOQUdFRF9UQUc6IHN0cmluZyA9ICd1bm1hbmFnZWQnO1xuXG4vLyBUaGUgZm9yIG9wdGlvbmFsIGluamVjdGlvbnNcbmV4cG9ydCBjb25zdCBPUFRJT05BTF9UQUc6IHN0cmluZyA9ICdvcHRpb25hbCc7XG5cbi8vIFRoZSB0eXBlIG9mIHRoZSBiaW5kaW5nIGF0IGRlc2lnbiB0aW1lXG5leHBvcnQgY29uc3QgSU5KRUNUX1RBRzogc3RyaW5nID0gJ2luamVjdCc7XG5cbi8vIFRoZSB0eXBlIG9mIHRoZSBiaW5kaW5nIGF0IGRlc2lnbiB0eXBlIGZvciBtdWx0aS1pbmplY3Rpb25zXG5leHBvcnQgY29uc3QgTVVMVElfSU5KRUNUX1RBRzogc3RyaW5nID0gJ211bHRpX2luamVjdCc7XG5cbi8vIHVzZWQgdG8gc3RvcmUgY29uc3RydWN0b3IgYXJndW1lbnRzIHRhZ3NcbmV4cG9ydCBjb25zdCBUQUdHRUQ6IHN0cmluZyA9ICdpbnZlcnNpZnk6dGFnZ2VkJztcblxuLy8gdXNlZCB0byBzdG9yZSBjbGFzcyBwcm9wZXJ0aWVzIHRhZ3NcbmV4cG9ydCBjb25zdCBUQUdHRURfUFJPUDogc3RyaW5nID0gJ2ludmVyc2lmeTp0YWdnZWRfcHJvcHMnO1xuXG4vLyB1c2VkIHRvIHN0b3JlIHR5cGVzIHRvIGJlIGluamVjdGVkXG5leHBvcnQgY29uc3QgUEFSQU1fVFlQRVM6IHN0cmluZyA9ICdpbnZlcnNpZnk6cGFyYW10eXBlcyc7XG5cbi8vIHVzZWQgdG8gYWNjZXNzIGRlc2lnbiB0aW1lIHR5cGVzXG5leHBvcnQgY29uc3QgREVTSUdOX1BBUkFNX1RZUEVTOiBzdHJpbmcgPSAnZGVzaWduOnBhcmFtdHlwZXMnO1xuXG4vLyB1c2VkIHRvIGlkZW50aWZ5IHBvc3RDb25zdHJ1Y3QgZnVuY3Rpb25zXG5leHBvcnQgY29uc3QgUE9TVF9DT05TVFJVQ1Q6IHN0cmluZyA9ICdwb3N0X2NvbnN0cnVjdCc7XG5cbi8vIHVzZWQgdG8gaWRlbnRpZnkgcHJlRGVzdHJveSBmdW5jdGlvbnNcbmV4cG9ydCBjb25zdCBQUkVfREVTVFJPWTogc3RyaW5nID0gJ3ByZV9kZXN0cm95JztcblxuZnVuY3Rpb24gZ2V0Tm9uQ3VzdG9tVGFnS2V5cygpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbXG4gICAgSU5KRUNUX1RBRyxcbiAgICBNVUxUSV9JTkpFQ1RfVEFHLFxuICAgIE5BTUVfVEFHLFxuICAgIFVOTUFOQUdFRF9UQUcsXG4gICAgTkFNRURfVEFHLFxuICAgIE9QVElPTkFMX1RBRyxcbiAgXTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PTl9DVVNUT01fVEFHX0tFWVM6IHN0cmluZ1tdID0gZ2V0Tm9uQ3VzdG9tVGFnS2V5cygpO1xuIiwiaW1wb3J0IHsgSW52ZXJzaWZ5Q29yZUVycm9yS2luZCB9IGZyb20gJy4vSW52ZXJzaWZ5Q29yZUVycm9yS2luZCc7XG5cbmV4cG9ydCBjb25zdCBpc0FwcEVycm9yU3ltYm9sOiB1bmlxdWUgc3ltYm9sID0gU3ltYm9sLmZvcihcbiAgJ0BpbnZlcnNpZnlqcy9jb3JlL0ludmVyc2lmeUNvcmVFcnJvcicsXG4pO1xuXG5leHBvcnQgY2xhc3MgSW52ZXJzaWZ5Q29yZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgW2lzQXBwRXJyb3JTeW1ib2xdOiB0cnVlO1xuXG4gIHB1YmxpYyBraW5kOiBJbnZlcnNpZnlDb3JlRXJyb3JLaW5kO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGtpbmQ6IEludmVyc2lmeUNvcmVFcnJvcktpbmQsXG4gICAgbWVzc2FnZT86IHN0cmluZyxcbiAgICBvcHRpb25zPzogRXJyb3JPcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBvcHRpb25zKTtcblxuICAgIHRoaXNbaXNBcHBFcnJvclN5bWJvbF0gPSB0cnVlO1xuICAgIHRoaXMua2luZCA9IGtpbmQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgSW52ZXJzaWZ5Q29yZUVycm9yIHtcbiAgICByZXR1cm4gKFxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nIHwgc3ltYm9sLCB1bmtub3duPilbaXNBcHBFcnJvclN5bWJvbF0gPT09IHRydWVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0Vycm9yT2ZLaW5kKFxuICAgIHZhbHVlOiB1bmtub3duLFxuICAgIGtpbmQ6IEludmVyc2lmeUNvcmVFcnJvcktpbmQsXG4gICk6IHZhbHVlIGlzIEludmVyc2lmeUNvcmVFcnJvciB7XG4gICAgcmV0dXJuIEludmVyc2lmeUNvcmVFcnJvci5pcyh2YWx1ZSkgJiYgdmFsdWUua2luZCA9PT0ga2luZDtcbiAgfVxufVxuIiwiZXhwb3J0IGVudW0gSW52ZXJzaWZ5Q29yZUVycm9yS2luZCB7XG4gIG1pc3NpbmdJbmplY3Rpb25EZWNvcmF0b3IsXG4gIHVua25vd24sXG59XG4iLCJleHBvcnQgZW51bSBDbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQge1xuICBtdWx0aXBsZUluamVjdGlvbixcbiAgc2luZ2xlSW5qZWN0aW9uLFxuICB1bm1hbmFnZWQsXG59XG4iLCJpbXBvcnQgeyBOZXdhYmxlIH0gZnJvbSAnQGludmVyc2lmeWpzL2NvbW1vbic7XG5cbmltcG9ydCB7IEludmVyc2lmeUNvcmVFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9yL21vZGVscy9JbnZlcnNpZnlDb3JlRXJyb3InO1xuaW1wb3J0IHsgSW52ZXJzaWZ5Q29yZUVycm9yS2luZCB9IGZyb20gJy4uLy4uL2Vycm9yL21vZGVscy9JbnZlcnNpZnlDb3JlRXJyb3JLaW5kJztcbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydENvbnN0cnVjdG9yTWV0YWRhdGFBcnJheUZpbGxlZChcbiAgdHlwZTogTmV3YWJsZSxcbiAgdmFsdWU6IChDbGFzc0VsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZClbXSxcbik6IGFzc2VydHMgdmFsdWUgaXMgQ2xhc3NFbGVtZW50TWV0YWRhdGFbXSB7XG4gIGNvbnN0IHVuZGVmaW5lZEluZGV4ZXM6IG51bWJlcltdID0gW107XG5cbiAgLy8gVXNpbmcgYSBmb3IgbG9vcCB0byBlbnN1cmUgZW1wdHkgdmFsdWVzIGFyZSB0cmF2ZXJzZWQgYXMgd2VsbFxuICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpIHtcbiAgICBjb25zdCBlbGVtZW50OiBDbGFzc0VsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZCA9IHZhbHVlW2ldO1xuXG4gICAgaWYgKGVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdW5kZWZpbmVkSW5kZXhlcy5wdXNoKGkpO1xuICAgIH1cbiAgfVxuXG4gIGlmICh1bmRlZmluZWRJbmRleGVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgSW52ZXJzaWZ5Q29yZUVycm9yKFxuICAgICAgSW52ZXJzaWZ5Q29yZUVycm9yS2luZC5taXNzaW5nSW5qZWN0aW9uRGVjb3JhdG9yLFxuICAgICAgYEZvdW5kIHVuZXhwZWN0ZWQgbWlzc2luZyBtZXRhZGF0YSBvbiB0eXBlIFwiJHt0eXBlLm5hbWV9XCIgYXQgY29uc3RydWN0b3IgaW5kZXhlcyBcIiR7dW5kZWZpbmVkSW5kZXhlcy5qb2luKCdcIiwgXCInKX1cIi5cblxuQXJlIHlvdSB1c2luZyBAaW5qZWN0LCBAbXVsdGlJbmplY3Qgb3IgQHVubWFuYWdlZCBkZWNvcmF0b3JzIGF0IHRob3NlIGluZGV4ZXM/XG5cbklmIHlvdSdyZSB1c2luZyB0eXBlc2NyaXB0IGFuZCB3YW50IHRvIHJlbHkgb24gYXV0byBpbmplY3Rpb24sIHNldCBcImVtaXREZWNvcmF0b3JNZXRhZGF0YVwiIGNvbXBpbGVyIG9wdGlvbiB0byB0cnVlYCxcbiAgICApO1xuICB9XG59XG4iLCJpbXBvcnQgeyBOZXdhYmxlIH0gZnJvbSAnQGludmVyc2lmeWpzL2NvbW1vbic7XG5cbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhJztcbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhS2luZCB9IGZyb20gJy4uL21vZGVscy9DbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NFbGVtZW50TWV0YWRhdGFGcm9tTmV3YWJsZShcbiAgdHlwZTogTmV3YWJsZSxcbik6IENsYXNzRWxlbWVudE1ldGFkYXRhIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBDbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQuc2luZ2xlSW5qZWN0aW9uLFxuICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICBvcHRpb25hbDogZmFsc2UsXG4gICAgdGFnczogbmV3IE1hcCgpLFxuICAgIHRhcmdldE5hbWU6IHVuZGVmaW5lZCxcbiAgICB2YWx1ZTogdHlwZSxcbiAgfTtcbn1cbiIsImltcG9ydCB7IExhenlTZXJ2aWNlSWRlbnRpZmllciwgU2VydmljZUlkZW50aWZpZXIgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcblxuaW1wb3J0IHsgSW52ZXJzaWZ5Q29yZUVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3IvbW9kZWxzL0ludmVyc2lmeUNvcmVFcnJvcic7XG5pbXBvcnQgeyBJbnZlcnNpZnlDb3JlRXJyb3JLaW5kIH0gZnJvbSAnLi4vLi4vZXJyb3IvbW9kZWxzL0ludmVyc2lmeUNvcmVFcnJvcktpbmQnO1xuaW1wb3J0IHtcbiAgSU5KRUNUX1RBRyxcbiAgTVVMVElfSU5KRUNUX1RBRyxcbiAgTkFNRV9UQUcsXG4gIE5BTUVEX1RBRyxcbiAgTk9OX0NVU1RPTV9UQUdfS0VZUyxcbiAgT1BUSU9OQUxfVEFHLFxuICBVTk1BTkFHRURfVEFHLFxufSBmcm9tICcuLi8uLi9yZWZsZWN0TWV0YWRhdGEvZGF0YS9rZXlzJztcbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhJztcbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhS2luZCB9IGZyb20gJy4uL21vZGVscy9DbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQnO1xuaW1wb3J0IHsgTGVnYWN5TWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvTGVnYWN5TWV0YWRhdGEnO1xuaW1wb3J0IHsgTWFuYWdlZENsYXNzRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL01hbmFnZWRDbGFzc0VsZW1lbnRNZXRhZGF0YSc7XG5pbXBvcnQgeyBNZXRhZGF0YU5hbWUgfSBmcm9tICcuLi9tb2RlbHMvTWV0YWRhdGFOYW1lJztcbmltcG9ydCB7IE1ldGFkYXRhVGFnIH0gZnJvbSAnLi4vbW9kZWxzL01ldGFkYXRhVGFnJztcbmltcG9ydCB7IE1ldGFkYXRhVGFyZ2V0TmFtZSB9IGZyb20gJy4uL21vZGVscy9NZXRhZGF0YVRhcmdldE5hbWUnO1xuaW1wb3J0IHsgVW5tYW5hZ2VkQ2xhc3NFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvVW5tYW5hZ2VkQ2xhc3NFbGVtZW50TWV0YWRhdGEnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NFbGVtZW50TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEoXG4gIG1ldGFkYXRhTGlzdDogTGVnYWN5TWV0YWRhdGFbXSxcbik6IENsYXNzRWxlbWVudE1ldGFkYXRhIHtcbiAgY29uc3QgaW5qZWN0TWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhIHwgdW5kZWZpbmVkID0gbWV0YWRhdGFMaXN0LmZpbmQoXG4gICAgKG1ldGFkYXRhOiBMZWdhY3lNZXRhZGF0YSk6IGJvb2xlYW4gPT4gbWV0YWRhdGEua2V5ID09PSBJTkpFQ1RfVEFHLFxuICApO1xuICBjb25zdCBtdWx0aUluamVjdE1ldGFkYXRhOiBMZWdhY3lNZXRhZGF0YSB8IHVuZGVmaW5lZCA9IG1ldGFkYXRhTGlzdC5maW5kKFxuICAgIChtZXRhZGF0YTogTGVnYWN5TWV0YWRhdGEpOiBib29sZWFuID0+IG1ldGFkYXRhLmtleSA9PT0gTVVMVElfSU5KRUNUX1RBRyxcbiAgKTtcbiAgY29uc3QgdW5tYW5hZ2VkTWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhIHwgdW5kZWZpbmVkID0gbWV0YWRhdGFMaXN0LmZpbmQoXG4gICAgKG1ldGFkYXRhOiBMZWdhY3lNZXRhZGF0YSk6IGJvb2xlYW4gPT4gbWV0YWRhdGEua2V5ID09PSBVTk1BTkFHRURfVEFHLFxuICApO1xuXG4gIGlmICh1bm1hbmFnZWRNZXRhZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGdldFVubWFuYWdlZENsYXNzRWxlbWVudE1ldGFkYXRhKFxuICAgICAgaW5qZWN0TWV0YWRhdGEsXG4gICAgICBtdWx0aUluamVjdE1ldGFkYXRhLFxuICAgICk7XG4gIH1cblxuICBpZiAobXVsdGlJbmplY3RNZXRhZGF0YSA9PT0gdW5kZWZpbmVkICYmIGluamVjdE1ldGFkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgSW52ZXJzaWZ5Q29yZUVycm9yKFxuICAgICAgSW52ZXJzaWZ5Q29yZUVycm9yS2luZC5taXNzaW5nSW5qZWN0aW9uRGVjb3JhdG9yLFxuICAgICAgJ0V4cGVjdGVkIEBpbmplY3QsIEBtdWx0aUluamVjdCBvciBAdW5tYW5hZ2VkIG1ldGFkYXRhJyxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbmFtZU1ldGFkYXRhOiBMZWdhY3lNZXRhZGF0YSB8IHVuZGVmaW5lZCA9IG1ldGFkYXRhTGlzdC5maW5kKFxuICAgIChtZXRhZGF0YTogTGVnYWN5TWV0YWRhdGEpOiBib29sZWFuID0+IG1ldGFkYXRhLmtleSA9PT0gTkFNRURfVEFHLFxuICApO1xuXG4gIGNvbnN0IG9wdGlvbmFsTWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhIHwgdW5kZWZpbmVkID0gbWV0YWRhdGFMaXN0LmZpbmQoXG4gICAgKG1ldGFkYXRhOiBMZWdhY3lNZXRhZGF0YSk6IGJvb2xlYW4gPT4gbWV0YWRhdGEua2V5ID09PSBPUFRJT05BTF9UQUcsXG4gICk7XG5cbiAgY29uc3QgdGFyZ2V0TmFtZU1ldGFkYXRhOiBMZWdhY3lNZXRhZGF0YSB8IHVuZGVmaW5lZCA9IG1ldGFkYXRhTGlzdC5maW5kKFxuICAgIChtZXRhZGF0YTogTGVnYWN5TWV0YWRhdGEpOiBib29sZWFuID0+IG1ldGFkYXRhLmtleSA9PT0gTkFNRV9UQUcsXG4gICk7XG5cbiAgY29uc3QgbWFuYWdlZENsYXNzRWxlbWVudE1ldGFkYXRhOiBNYW5hZ2VkQ2xhc3NFbGVtZW50TWV0YWRhdGEgPSB7XG4gICAga2luZDpcbiAgICAgIGluamVjdE1ldGFkYXRhID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBDbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQubXVsdGlwbGVJbmplY3Rpb25cbiAgICAgICAgOiBDbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQuc2luZ2xlSW5qZWN0aW9uLFxuICAgIG5hbWU6IG5hbWVNZXRhZGF0YT8udmFsdWUgYXMgTWV0YWRhdGFOYW1lIHwgdW5kZWZpbmVkLFxuICAgIG9wdGlvbmFsOiBvcHRpb25hbE1ldGFkYXRhICE9PSB1bmRlZmluZWQsXG4gICAgdGFnczogbmV3IE1hcChcbiAgICAgIG1ldGFkYXRhTGlzdFxuICAgICAgICAuZmlsdGVyKChtZXRhZGF0YTogTGVnYWN5TWV0YWRhdGEpOiBib29sZWFuID0+XG4gICAgICAgICAgTk9OX0NVU1RPTV9UQUdfS0VZUy5ldmVyeShcbiAgICAgICAgICAgIChjdXN0b21UYWdLZXk6IHN0cmluZyk6IGJvb2xlYW4gPT4gbWV0YWRhdGEua2V5ICE9PSBjdXN0b21UYWdLZXksXG4gICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKChtZXRhZGF0YTogTGVnYWN5TWV0YWRhdGEpOiBbTWV0YWRhdGFUYWcsIHVua25vd25dID0+IFtcbiAgICAgICAgICBtZXRhZGF0YS5rZXksXG4gICAgICAgICAgbWV0YWRhdGEudmFsdWUsXG4gICAgICAgIF0pLFxuICAgICksXG4gICAgdGFyZ2V0TmFtZTogdGFyZ2V0TmFtZU1ldGFkYXRhPy52YWx1ZSBhcyBNZXRhZGF0YVRhcmdldE5hbWUgfCB1bmRlZmluZWQsXG4gICAgdmFsdWU6XG4gICAgICBpbmplY3RNZXRhZGF0YSA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gKG11bHRpSW5qZWN0TWV0YWRhdGE/LnZhbHVlIGFzXG4gICAgICAgICAgICB8IFNlcnZpY2VJZGVudGlmaWVyXG4gICAgICAgICAgICB8IExhenlTZXJ2aWNlSWRlbnRpZmllcilcbiAgICAgICAgOiAoaW5qZWN0TWV0YWRhdGEudmFsdWUgYXMgU2VydmljZUlkZW50aWZpZXIgfCBMYXp5U2VydmljZUlkZW50aWZpZXIpLFxuICB9O1xuXG4gIHJldHVybiBtYW5hZ2VkQ2xhc3NFbGVtZW50TWV0YWRhdGE7XG59XG5cbmZ1bmN0aW9uIGdldFVubWFuYWdlZENsYXNzRWxlbWVudE1ldGFkYXRhKFxuICBpbmplY3RNZXRhZGF0YTogTGVnYWN5TWV0YWRhdGEgfCB1bmRlZmluZWQsXG4gIG11bHRpSW5qZWN0TWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhIHwgdW5kZWZpbmVkLFxuKTogVW5tYW5hZ2VkQ2xhc3NFbGVtZW50TWV0YWRhdGEge1xuICBpZiAobXVsdGlJbmplY3RNZXRhZGF0YSAhPT0gdW5kZWZpbmVkIHx8IGluamVjdE1ldGFkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgSW52ZXJzaWZ5Q29yZUVycm9yKFxuICAgICAgSW52ZXJzaWZ5Q29yZUVycm9yS2luZC5taXNzaW5nSW5qZWN0aW9uRGVjb3JhdG9yLFxuICAgICAgJ0V4cGVjdGVkIGEgc2luZ2xlIEBpbmplY3QsIEBtdWx0aUluamVjdCBvciBAdW5tYW5hZ2VkIG1ldGFkYXRhJyxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBraW5kOiBDbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQudW5tYW5hZ2VkLFxuICB9O1xufVxuIiwiaW1wb3J0IHsgTmV3YWJsZSB9IGZyb20gJ0BpbnZlcnNpZnlqcy9jb21tb24nO1xuXG5pbXBvcnQgeyBJbnZlcnNpZnlDb3JlRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvci9tb2RlbHMvSW52ZXJzaWZ5Q29yZUVycm9yJztcbmltcG9ydCB7IEludmVyc2lmeUNvcmVFcnJvcktpbmQgfSBmcm9tICcuLi8uLi9lcnJvci9tb2RlbHMvSW52ZXJzaWZ5Q29yZUVycm9yS2luZCc7XG5pbXBvcnQgeyBDbGFzc0VsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uL21vZGVscy9DbGFzc0VsZW1lbnRNZXRhZGF0YSc7XG5pbXBvcnQgeyBMZWdhY3lNZXRhZGF0YSB9IGZyb20gJy4uL21vZGVscy9MZWdhY3lNZXRhZGF0YSc7XG5pbXBvcnQgeyBnZXRDbGFzc0VsZW1lbnRNZXRhZGF0YUZyb21MZWdhY3lNZXRhZGF0YSB9IGZyb20gJy4vZ2V0Q2xhc3NFbGVtZW50TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uc3RydWN0b3JBcmd1bWVudE1ldGFkYXRhRnJvbUxlZ2FjeU1ldGFkYXRhKFxuICB0eXBlOiBOZXdhYmxlLFxuICBpbmRleDogbnVtYmVyLFxuICBtZXRhZGF0YUxpc3Q6IExlZ2FjeU1ldGFkYXRhW10sXG4pOiBDbGFzc0VsZW1lbnRNZXRhZGF0YSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGdldENsYXNzRWxlbWVudE1ldGFkYXRhRnJvbUxlZ2FjeU1ldGFkYXRhKG1ldGFkYXRhTGlzdCk7XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgaWYgKFxuICAgICAgSW52ZXJzaWZ5Q29yZUVycm9yLmlzRXJyb3JPZktpbmQoXG4gICAgICAgIGVycm9yLFxuICAgICAgICBJbnZlcnNpZnlDb3JlRXJyb3JLaW5kLm1pc3NpbmdJbmplY3Rpb25EZWNvcmF0b3IsXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgSW52ZXJzaWZ5Q29yZUVycm9yKFxuICAgICAgICBJbnZlcnNpZnlDb3JlRXJyb3JLaW5kLm1pc3NpbmdJbmplY3Rpb25EZWNvcmF0b3IsXG4gICAgICAgIGBFeHBlY3RlZCBhIHNpbmdsZSBAaW5qZWN0LCBAbXVsdGlJbmplY3Qgb3IgQHVubWFuYWdlZCBkZWNvcmF0b3IgYXQgdHlwZSBcIiR7dHlwZS5uYW1lfVwiIGF0IGNvbnN0cnVjdG9yIGFyZ3VtZW50cyBhdCBpbmRleCBcIiR7aW5kZXgudG9TdHJpbmcoKX1cImAsXG4gICAgICAgIHsgY2F1c2U6IGVycm9yIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IE5ld2FibGUgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcbmltcG9ydCB7IGdldFJlZmxlY3RNZXRhZGF0YSB9IGZyb20gJ0BpbnZlcnNpZnlqcy9yZWZsZWN0LW1ldGFkYXRhLXV0aWxzJztcblxuaW1wb3J0IHsgREVTSUdOX1BBUkFNX1RZUEVTLCBUQUdHRUQgfSBmcm9tICcuLi8uLi9yZWZsZWN0TWV0YWRhdGEvZGF0YS9rZXlzJztcbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhJztcbmltcG9ydCB7IExlZ2FjeU1ldGFkYXRhTWFwIH0gZnJvbSAnLi4vbW9kZWxzL0xlZ2FjeU1ldGFkYXRhTWFwJztcbmltcG9ydCB7IGFzc2VydENvbnN0cnVjdG9yTWV0YWRhdGFBcnJheUZpbGxlZCB9IGZyb20gJy4vYXNzZXJ0Q29uc3RydWN0b3JNZXRhZGF0YUFycmF5RmlsbGVkJztcbmltcG9ydCB7IGdldENsYXNzRWxlbWVudE1ldGFkYXRhRnJvbU5ld2FibGUgfSBmcm9tICcuL2dldENsYXNzRWxlbWVudE1ldGFkYXRhRnJvbU5ld2FibGUnO1xuaW1wb3J0IHsgZ2V0Q29uc3RydWN0b3JBcmd1bWVudE1ldGFkYXRhRnJvbUxlZ2FjeU1ldGFkYXRhIH0gZnJvbSAnLi9nZXRDb25zdHJ1Y3RvckFyZ3VtZW50TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NNZXRhZGF0YUNvbnN0cnVjdG9yQXJndW1lbnRzKFxuICB0eXBlOiBOZXdhYmxlLFxuKTogQ2xhc3NFbGVtZW50TWV0YWRhdGFbXSB7XG4gIGNvbnN0IHR5cGVzY3JpcHRNZXRhZGF0YUxpc3Q6IE5ld2FibGVbXSB8IHVuZGVmaW5lZCA9IGdldFJlZmxlY3RNZXRhZGF0YShcbiAgICB0eXBlLFxuICAgIERFU0lHTl9QQVJBTV9UWVBFUyxcbiAgKTtcblxuICBjb25zdCBjb25zdHJ1Y3RvclBhcmFtZXRlcnNMZWdhY3lNZXRhZGF0YTogTGVnYWN5TWV0YWRhdGFNYXAgfCB1bmRlZmluZWQgPVxuICAgIGdldFJlZmxlY3RNZXRhZGF0YSh0eXBlLCBUQUdHRUQpO1xuXG4gIGNvbnN0IGNvbnN0cnVjdG9yQXJndW1lbnRzTWV0YWRhdGE6IChDbGFzc0VsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZClbXSA9IFtdO1xuXG4gIGlmIChjb25zdHJ1Y3RvclBhcmFtZXRlcnNMZWdhY3lNZXRhZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCBbc3RyaW5naWZpZWRJbmRleCwgbWV0YWRhdGFMaXN0XSBvZiBPYmplY3QuZW50cmllcyhcbiAgICAgIGNvbnN0cnVjdG9yUGFyYW1ldGVyc0xlZ2FjeU1ldGFkYXRhLFxuICAgICkpIHtcbiAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSBwYXJzZUludChzdHJpbmdpZmllZEluZGV4KTtcblxuICAgICAgY29uc3RydWN0b3JBcmd1bWVudHNNZXRhZGF0YVtpbmRleF0gPVxuICAgICAgICBnZXRDb25zdHJ1Y3RvckFyZ3VtZW50TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEoXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBpbmRleCxcbiAgICAgICAgICBtZXRhZGF0YUxpc3QsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVzY3JpcHRNZXRhZGF0YUxpc3QgIT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0eXBlc2NyaXB0TWV0YWRhdGFMaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgICBpZiAoY29uc3RydWN0b3JBcmd1bWVudHNNZXRhZGF0YVtpXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IHR5cGVzY3JpcHRNZXRhZGF0YTogTmV3YWJsZSA9IHR5cGVzY3JpcHRNZXRhZGF0YUxpc3RbXG4gICAgICAgICAgaVxuICAgICAgICBdIGFzIE5ld2FibGU7XG5cbiAgICAgICAgY29uc3RydWN0b3JBcmd1bWVudHNNZXRhZGF0YVtpXSA9XG4gICAgICAgICAgZ2V0Q2xhc3NFbGVtZW50TWV0YWRhdGFGcm9tTmV3YWJsZSh0eXBlc2NyaXB0TWV0YWRhdGEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzc2VydENvbnN0cnVjdG9yTWV0YWRhdGFBcnJheUZpbGxlZCh0eXBlLCBjb25zdHJ1Y3RvckFyZ3VtZW50c01ldGFkYXRhKTtcblxuICByZXR1cm4gY29uc3RydWN0b3JBcmd1bWVudHNNZXRhZGF0YTtcbn1cbiIsImltcG9ydCB7IE5ld2FibGUgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcblxuaW1wb3J0IHsgSW52ZXJzaWZ5Q29yZUVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3IvbW9kZWxzL0ludmVyc2lmeUNvcmVFcnJvcic7XG5pbXBvcnQgeyBJbnZlcnNpZnlDb3JlRXJyb3JLaW5kIH0gZnJvbSAnLi4vLi4vZXJyb3IvbW9kZWxzL0ludmVyc2lmeUNvcmVFcnJvcktpbmQnO1xuaW1wb3J0IHsgQ2xhc3NFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvQ2xhc3NFbGVtZW50TWV0YWRhdGEnO1xuaW1wb3J0IHsgTGVnYWN5TWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvTGVnYWN5TWV0YWRhdGEnO1xuaW1wb3J0IHsgZ2V0Q2xhc3NFbGVtZW50TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEgfSBmcm9tICcuL2dldENsYXNzRWxlbWVudE1ldGFkYXRhRnJvbUxlZ2FjeU1ldGFkYXRhJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BlcnR5TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEoXG4gIHR5cGU6IE5ld2FibGUsXG4gIGtleTogc3RyaW5nIHwgc3ltYm9sLFxuICBtZXRhZGF0YUxpc3Q6IExlZ2FjeU1ldGFkYXRhW10sXG4pOiBDbGFzc0VsZW1lbnRNZXRhZGF0YSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGdldENsYXNzRWxlbWVudE1ldGFkYXRhRnJvbUxlZ2FjeU1ldGFkYXRhKG1ldGFkYXRhTGlzdCk7XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgaWYgKFxuICAgICAgSW52ZXJzaWZ5Q29yZUVycm9yLmlzRXJyb3JPZktpbmQoXG4gICAgICAgIGVycm9yLFxuICAgICAgICBJbnZlcnNpZnlDb3JlRXJyb3JLaW5kLm1pc3NpbmdJbmplY3Rpb25EZWNvcmF0b3IsXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgSW52ZXJzaWZ5Q29yZUVycm9yKFxuICAgICAgICBJbnZlcnNpZnlDb3JlRXJyb3JLaW5kLm1pc3NpbmdJbmplY3Rpb25EZWNvcmF0b3IsXG4gICAgICAgIGBFeHBlY3RlZCBhIHNpbmdsZSBAaW5qZWN0LCBAbXVsdGlJbmplY3Qgb3IgQHVubWFuYWdlZCBkZWNvcmF0b3IgYXQgdHlwZSBcIiR7dHlwZS5uYW1lfVwiIGF0IHByb3BlcnR5IFwiJHtrZXkudG9TdHJpbmcoKX1cImAsXG4gICAgICAgIHsgY2F1c2U6IGVycm9yIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IE5ld2FibGUgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcbmltcG9ydCB7IGdldFJlZmxlY3RNZXRhZGF0YSB9IGZyb20gJ0BpbnZlcnNpZnlqcy9yZWZsZWN0LW1ldGFkYXRhLXV0aWxzJztcblxuaW1wb3J0IHsgVEFHR0VEX1BST1AgfSBmcm9tICcuLi8uLi9yZWZsZWN0TWV0YWRhdGEvZGF0YS9rZXlzJztcbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhJztcbmltcG9ydCB7IExlZ2FjeU1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0xlZ2FjeU1ldGFkYXRhJztcbmltcG9ydCB7IExlZ2FjeU1ldGFkYXRhTWFwIH0gZnJvbSAnLi4vbW9kZWxzL0xlZ2FjeU1ldGFkYXRhTWFwJztcbmltcG9ydCB7IGdldFByb3BlcnR5TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEgfSBmcm9tICcuL2dldFByb3BlcnR5TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NNZXRhZGF0YVByb3BlcnRpZXMoXG4gIHR5cGU6IE5ld2FibGUsXG4pOiBNYXA8c3RyaW5nIHwgc3ltYm9sLCBDbGFzc0VsZW1lbnRNZXRhZGF0YT4ge1xuICBjb25zdCBwcm9wZXJ0aWVzTGVnYWN5TWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhTWFwIHwgdW5kZWZpbmVkID1cbiAgICBnZXRSZWZsZWN0TWV0YWRhdGEodHlwZSwgVEFHR0VEX1BST1ApO1xuXG4gIGNvbnN0IHByb3BlcnRpZXNNZXRhZGF0YTogTWFwPHN0cmluZyB8IHN5bWJvbCwgQ2xhc3NFbGVtZW50TWV0YWRhdGE+ID1cbiAgICBuZXcgTWFwKCk7XG5cbiAgaWYgKHByb3BlcnRpZXNMZWdhY3lNZXRhZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBSZWZsZWN0Lm93bktleXMocHJvcGVydGllc0xlZ2FjeU1ldGFkYXRhKSkge1xuICAgICAgY29uc3QgbGVnYWN5TWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhW10gPSBwcm9wZXJ0aWVzTGVnYWN5TWV0YWRhdGFbXG4gICAgICAgIHByb3BlcnR5XG4gICAgICBdIGFzIExlZ2FjeU1ldGFkYXRhW107XG4gICAgICBwcm9wZXJ0aWVzTWV0YWRhdGEuc2V0KFxuICAgICAgICBwcm9wZXJ0eSxcbiAgICAgICAgZ2V0UHJvcGVydHlNZXRhZGF0YUZyb21MZWdhY3lNZXRhZGF0YSh0eXBlLCBwcm9wZXJ0eSwgbGVnYWN5TWV0YWRhdGEpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvcGVydGllc01ldGFkYXRhO1xufVxuIiwiaW1wb3J0IHsgTmV3YWJsZSB9IGZyb20gJ0BpbnZlcnNpZnlqcy9jb21tb24nO1xuaW1wb3J0IHsgZ2V0UmVmbGVjdE1ldGFkYXRhIH0gZnJvbSAnQGludmVyc2lmeWpzL3JlZmxlY3QtbWV0YWRhdGEtdXRpbHMnO1xuXG5pbXBvcnQgeyBQT1NUX0NPTlNUUlVDVCwgUFJFX0RFU1RST1kgfSBmcm9tICcuLi8uLi9yZWZsZWN0TWV0YWRhdGEvZGF0YS9rZXlzJztcbmltcG9ydCB7IENsYXNzTWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvQ2xhc3NNZXRhZGF0YSc7XG5pbXBvcnQgeyBMZWdhY3lNZXRhZGF0YSB9IGZyb20gJy4uL21vZGVscy9MZWdhY3lNZXRhZGF0YSc7XG5pbXBvcnQgeyBnZXRDbGFzc01ldGFkYXRhQ29uc3RydWN0b3JBcmd1bWVudHMgfSBmcm9tICcuL2dldENsYXNzTWV0YWRhdGFDb25zdHJ1Y3RvckFyZ3VtZW50cyc7XG5pbXBvcnQgeyBnZXRDbGFzc01ldGFkYXRhUHJvcGVydGllcyB9IGZyb20gJy4vZ2V0Q2xhc3NNZXRhZGF0YVByb3BlcnRpZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NNZXRhZGF0YSh0eXBlOiBOZXdhYmxlKTogQ2xhc3NNZXRhZGF0YSB7XG4gIGNvbnN0IHBvc3RDb25zdHJ1Y3RNZXRhZGF0YTogTGVnYWN5TWV0YWRhdGEgfCB1bmRlZmluZWQgPVxuICAgIGdldFJlZmxlY3RNZXRhZGF0YTxMZWdhY3lNZXRhZGF0YT4odHlwZSwgUE9TVF9DT05TVFJVQ1QpO1xuICBjb25zdCBwcmVEZXN0cm95TWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhIHwgdW5kZWZpbmVkID1cbiAgICBnZXRSZWZsZWN0TWV0YWRhdGE8TGVnYWN5TWV0YWRhdGE+KHR5cGUsIFBSRV9ERVNUUk9ZKTtcblxuICBjb25zdCBjbGFzc01ldGFkYXRhOiBDbGFzc01ldGFkYXRhID0ge1xuICAgIGNvbnN0cnVjdG9yQXJndW1lbnRzOiBnZXRDbGFzc01ldGFkYXRhQ29uc3RydWN0b3JBcmd1bWVudHModHlwZSksXG4gICAgbGlmZWN5Y2xlOiB7XG4gICAgICBwb3N0Q29uc3RydWN0TWV0aG9kTmFtZTogcG9zdENvbnN0cnVjdE1ldGFkYXRhPy52YWx1ZSBhcyBzdHJpbmcsXG4gICAgICBwcmVEZXN0cm95TWV0aG9kTmFtZTogcHJlRGVzdHJveU1ldGFkYXRhPy52YWx1ZSBhcyBzdHJpbmcsXG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzOiBnZXRDbGFzc01ldGFkYXRhUHJvcGVydGllcyh0eXBlKSxcbiAgfTtcblxuICByZXR1cm4gY2xhc3NNZXRhZGF0YTtcbn1cbiIsImltcG9ydCB7IE5ld2FibGUgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcblxuaW1wb3J0IHsgQ2xhc3NFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvQ2xhc3NFbGVtZW50TWV0YWRhdGEnO1xuaW1wb3J0IHsgTGVnYWN5Q29uc3RydWN0b3JNZXRhZGF0YSB9IGZyb20gJy4uL21vZGVscy9MZWdhY3lDb25zdHJ1Y3Rvck1ldGFkYXRhJztcbmltcG9ydCB7IExlZ2FjeU1ldGFkYXRhUmVhZGVyIH0gZnJvbSAnLi4vbW9kZWxzL0xlZ2FjeU1ldGFkYXRhUmVhZGVyJztcbmltcG9ydCB7IGFzc2VydENvbnN0cnVjdG9yTWV0YWRhdGFBcnJheUZpbGxlZCB9IGZyb20gJy4vYXNzZXJ0Q29uc3RydWN0b3JNZXRhZGF0YUFycmF5RmlsbGVkJztcbmltcG9ydCB7IGdldENsYXNzRWxlbWVudE1ldGFkYXRhRnJvbU5ld2FibGUgfSBmcm9tICcuL2dldENsYXNzRWxlbWVudE1ldGFkYXRhRnJvbU5ld2FibGUnO1xuaW1wb3J0IHsgZ2V0Q29uc3RydWN0b3JBcmd1bWVudE1ldGFkYXRhRnJvbUxlZ2FjeU1ldGFkYXRhIH0gZnJvbSAnLi9nZXRDb25zdHJ1Y3RvckFyZ3VtZW50TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NNZXRhZGF0YUNvbnN0cnVjdG9yQXJndW1lbnRzRnJvbU1ldGFkYXRhUmVhZGVyKFxuICB0eXBlOiBOZXdhYmxlLFxuICBtZXRhZGF0YVJlYWRlcjogTGVnYWN5TWV0YWRhdGFSZWFkZXIsXG4pOiBDbGFzc0VsZW1lbnRNZXRhZGF0YVtdIHtcbiAgY29uc3QgbGVnYWN5Q29uc3RydWN0b3JNZXRhZGF0YTogTGVnYWN5Q29uc3RydWN0b3JNZXRhZGF0YSA9XG4gICAgbWV0YWRhdGFSZWFkZXIuZ2V0Q29uc3RydWN0b3JNZXRhZGF0YSh0eXBlKTtcblxuICBjb25zdCBjb25zdHJ1Y3RvckFyZ3VtZW50c01ldGFkYXRhOiAoQ2xhc3NFbGVtZW50TWV0YWRhdGEgfCB1bmRlZmluZWQpW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IFtzdHJpbmdpZmllZEluZGV4LCBtZXRhZGF0YUxpc3RdIG9mIE9iamVjdC5lbnRyaWVzKFxuICAgIGxlZ2FjeUNvbnN0cnVjdG9yTWV0YWRhdGEudXNlckdlbmVyYXRlZE1ldGFkYXRhLFxuICApKSB7XG4gICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHBhcnNlSW50KHN0cmluZ2lmaWVkSW5kZXgpO1xuXG4gICAgY29uc3RydWN0b3JBcmd1bWVudHNNZXRhZGF0YVtpbmRleF0gPVxuICAgICAgZ2V0Q29uc3RydWN0b3JBcmd1bWVudE1ldGFkYXRhRnJvbUxlZ2FjeU1ldGFkYXRhKFxuICAgICAgICB0eXBlLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgbWV0YWRhdGFMaXN0LFxuICAgICAgKTtcbiAgfVxuXG4gIGlmIChsZWdhY3lDb25zdHJ1Y3Rvck1ldGFkYXRhLmNvbXBpbGVyR2VuZXJhdGVkTWV0YWRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoXG4gICAgICBsZXQgaTogbnVtYmVyID0gMDtcbiAgICAgIGkgPCBsZWdhY3lDb25zdHJ1Y3Rvck1ldGFkYXRhLmNvbXBpbGVyR2VuZXJhdGVkTWV0YWRhdGEubGVuZ3RoO1xuICAgICAgKytpXG4gICAgKSB7XG4gICAgICBpZiAoY29uc3RydWN0b3JBcmd1bWVudHNNZXRhZGF0YVtpXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IHR5cGVzY3JpcHRNZXRhZGF0YTogTmV3YWJsZSA9IGxlZ2FjeUNvbnN0cnVjdG9yTWV0YWRhdGFcbiAgICAgICAgICAuY29tcGlsZXJHZW5lcmF0ZWRNZXRhZGF0YVtpXSBhcyBOZXdhYmxlO1xuXG4gICAgICAgIGNvbnN0cnVjdG9yQXJndW1lbnRzTWV0YWRhdGFbaV0gPVxuICAgICAgICAgIGdldENsYXNzRWxlbWVudE1ldGFkYXRhRnJvbU5ld2FibGUodHlwZXNjcmlwdE1ldGFkYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3NlcnRDb25zdHJ1Y3Rvck1ldGFkYXRhQXJyYXlGaWxsZWQodHlwZSwgY29uc3RydWN0b3JBcmd1bWVudHNNZXRhZGF0YSk7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdG9yQXJndW1lbnRzTWV0YWRhdGE7XG59XG4iLCJpbXBvcnQgeyBOZXdhYmxlIH0gZnJvbSAnQGludmVyc2lmeWpzL2NvbW1vbic7XG5cbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhJztcbmltcG9ydCB7IExlZ2FjeU1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0xlZ2FjeU1ldGFkYXRhJztcbmltcG9ydCB7IExlZ2FjeU1ldGFkYXRhTWFwIH0gZnJvbSAnLi4vbW9kZWxzL0xlZ2FjeU1ldGFkYXRhTWFwJztcbmltcG9ydCB7IExlZ2FjeU1ldGFkYXRhUmVhZGVyIH0gZnJvbSAnLi4vbW9kZWxzL0xlZ2FjeU1ldGFkYXRhUmVhZGVyJztcbmltcG9ydCB7IGdldFByb3BlcnR5TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEgfSBmcm9tICcuL2dldFByb3BlcnR5TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xhc3NNZXRhZGF0YVByb3BlcnRpZXNGcm9tTWV0YWRhdGFSZWFkZXIoXG4gIHR5cGU6IE5ld2FibGUsXG4gIG1ldGFkYXRhUmVhZGVyOiBMZWdhY3lNZXRhZGF0YVJlYWRlcixcbik6IE1hcDxzdHJpbmcgfCBzeW1ib2wsIENsYXNzRWxlbWVudE1ldGFkYXRhPiB7XG4gIGNvbnN0IHByb3BlcnRpZXNMZWdhY3lNZXRhZGF0YTogTGVnYWN5TWV0YWRhdGFNYXAgPVxuICAgIG1ldGFkYXRhUmVhZGVyLmdldFByb3BlcnRpZXNNZXRhZGF0YSh0eXBlKTtcblxuICBjb25zdCBwcm9wZXJ0aWVzTWV0YWRhdGE6IE1hcDxzdHJpbmcgfCBzeW1ib2wsIENsYXNzRWxlbWVudE1ldGFkYXRhPiA9XG4gICAgbmV3IE1hcCgpO1xuXG4gIGZvciAoY29uc3QgcHJvcGVydHkgb2YgUmVmbGVjdC5vd25LZXlzKHByb3BlcnRpZXNMZWdhY3lNZXRhZGF0YSkpIHtcbiAgICBjb25zdCBsZWdhY3lNZXRhZGF0YTogTGVnYWN5TWV0YWRhdGFbXSA9IHByb3BlcnRpZXNMZWdhY3lNZXRhZGF0YVtcbiAgICAgIHByb3BlcnR5XG4gICAgXSBhcyBMZWdhY3lNZXRhZGF0YVtdO1xuICAgIHByb3BlcnRpZXNNZXRhZGF0YS5zZXQoXG4gICAgICBwcm9wZXJ0eSxcbiAgICAgIGdldFByb3BlcnR5TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEodHlwZSwgcHJvcGVydHksIGxlZ2FjeU1ldGFkYXRhKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHByb3BlcnRpZXNNZXRhZGF0YTtcbn1cbiIsImltcG9ydCB7IE5ld2FibGUgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcbmltcG9ydCB7IGdldFJlZmxlY3RNZXRhZGF0YSB9IGZyb20gJ0BpbnZlcnNpZnlqcy9yZWZsZWN0LW1ldGFkYXRhLXV0aWxzJztcblxuaW1wb3J0IHsgUE9TVF9DT05TVFJVQ1QsIFBSRV9ERVNUUk9ZIH0gZnJvbSAnLi4vLi4vcmVmbGVjdE1ldGFkYXRhL2RhdGEva2V5cyc7XG5pbXBvcnQgeyBDbGFzc01ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL0NsYXNzTWV0YWRhdGEnO1xuaW1wb3J0IHsgTGVnYWN5TWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvTGVnYWN5TWV0YWRhdGEnO1xuaW1wb3J0IHsgTGVnYWN5TWV0YWRhdGFSZWFkZXIgfSBmcm9tICcuLi9tb2RlbHMvTGVnYWN5TWV0YWRhdGFSZWFkZXInO1xuaW1wb3J0IHsgZ2V0Q2xhc3NNZXRhZGF0YUNvbnN0cnVjdG9yQXJndW1lbnRzRnJvbU1ldGFkYXRhUmVhZGVyIH0gZnJvbSAnLi9nZXRDbGFzc01ldGFkYXRhQ29uc3RydWN0b3JBcmd1bWVudHNGcm9tTWV0YWRhdGFSZWFkZXInO1xuaW1wb3J0IHsgZ2V0Q2xhc3NNZXRhZGF0YVByb3BlcnRpZXNGcm9tTWV0YWRhdGFSZWFkZXIgfSBmcm9tICcuL2dldENsYXNzTWV0YWRhdGFQcm9wZXJ0aWVzRnJvbU1ldGFkYXRhUmVhZGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzTWV0YWRhdGFGcm9tTWV0YWRhdGFSZWFkZXIoXG4gIHR5cGU6IE5ld2FibGUsXG4gIG1ldGFkYXRhUmVhZGVyOiBMZWdhY3lNZXRhZGF0YVJlYWRlcixcbik6IENsYXNzTWV0YWRhdGEge1xuICBjb25zdCBwb3N0Q29uc3RydWN0TWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhIHwgdW5kZWZpbmVkID1cbiAgICBnZXRSZWZsZWN0TWV0YWRhdGE8TGVnYWN5TWV0YWRhdGE+KHR5cGUsIFBPU1RfQ09OU1RSVUNUKTtcbiAgY29uc3QgcHJlRGVzdHJveU1ldGFkYXRhOiBMZWdhY3lNZXRhZGF0YSB8IHVuZGVmaW5lZCA9XG4gICAgZ2V0UmVmbGVjdE1ldGFkYXRhPExlZ2FjeU1ldGFkYXRhPih0eXBlLCBQUkVfREVTVFJPWSk7XG5cbiAgY29uc3QgY2xhc3NNZXRhZGF0YTogQ2xhc3NNZXRhZGF0YSA9IHtcbiAgICBjb25zdHJ1Y3RvckFyZ3VtZW50czpcbiAgICAgIGdldENsYXNzTWV0YWRhdGFDb25zdHJ1Y3RvckFyZ3VtZW50c0Zyb21NZXRhZGF0YVJlYWRlcihcbiAgICAgICAgdHlwZSxcbiAgICAgICAgbWV0YWRhdGFSZWFkZXIsXG4gICAgICApLFxuICAgIGxpZmVjeWNsZToge1xuICAgICAgcG9zdENvbnN0cnVjdE1ldGhvZE5hbWU6IHBvc3RDb25zdHJ1Y3RNZXRhZGF0YT8udmFsdWUgYXMgc3RyaW5nLFxuICAgICAgcHJlRGVzdHJveU1ldGhvZE5hbWU6IHByZURlc3Ryb3lNZXRhZGF0YT8udmFsdWUgYXMgc3RyaW5nLFxuICAgIH0sXG4gICAgcHJvcGVydGllczogZ2V0Q2xhc3NNZXRhZGF0YVByb3BlcnRpZXNGcm9tTWV0YWRhdGFSZWFkZXIoXG4gICAgICB0eXBlLFxuICAgICAgbWV0YWRhdGFSZWFkZXIsXG4gICAgKSxcbiAgfTtcblxuICByZXR1cm4gY2xhc3NNZXRhZGF0YTtcbn1cbiIsImltcG9ydCB7IE5ld2FibGUgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcblxuaW1wb3J0IHsgUHJvdG90eXBlIH0gZnJvbSAnLi4vbW9kZWxzL1Byb3RvdHlwZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYXNlVHlwZTxUSW5zdGFuY2UsIFRBcmdzIGV4dGVuZHMgdW5rbm93bltdPihcbiAgdHlwZTogTmV3YWJsZTxUSW5zdGFuY2UsIFRBcmdzPixcbik6IE5ld2FibGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBwcm90b3R5cGU6IFByb3RvdHlwZSB8IG51bGwgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoXG4gICAgdHlwZS5wcm90b3R5cGUsXG4gICkgYXMgUHJvdG90eXBlIHwgbnVsbDtcblxuICBjb25zdCBiYXNlVHlwZTogTmV3YWJsZSB8IHVuZGVmaW5lZCA9IHByb3RvdHlwZT8uY29uc3RydWN0b3I7XG5cbiAgcmV0dXJuIGJhc2VUeXBlO1xufVxuIiwidmFyIHggPSAoeSkgPT4ge1xuXHR2YXIgeCA9IHt9OyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoeCwgeSk7IHJldHVybiB4XG59IFxudmFyIHkgPSAoeCkgPT4gKCgpID0+ICh4KSlcbmNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSB4KHsgW1wiTGF6eVNlcnZpY2VJZGVudGlmaWVyXCJdOiAoKSA9PiAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9faW52ZXJzaWZ5anNfY29tbW9uXzA4MWQ4YzA3X18uTGF6eVNlcnZpY2VJZGVudGlmaWVyKSB9KTsiLCJpbXBvcnQge1xuICBJTkpFQ1RfVEFHLFxuICBNVUxUSV9JTkpFQ1RfVEFHLFxuICBOQU1FX1RBRyxcbiAgTkFNRURfVEFHLFxuICBPUFRJT05BTF9UQUcsXG4gIFVOTUFOQUdFRF9UQUcsXG59IGZyb20gJy4uLy4uL3JlZmxlY3RNZXRhZGF0YS9kYXRhL2tleXMnO1xuaW1wb3J0IHsgQ2xhc3NFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvQ2xhc3NFbGVtZW50TWV0YWRhdGEnO1xuaW1wb3J0IHsgQ2xhc3NFbGVtZW50TWV0YWRhdGFLaW5kIH0gZnJvbSAnLi4vbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhS2luZCc7XG5pbXBvcnQgeyBMZWdhY3lNZXRhZGF0YSB9IGZyb20gJy4uL21vZGVscy9MZWdhY3lNZXRhZGF0YSc7XG5pbXBvcnQgeyBNYW5hZ2VkQ2xhc3NFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvTWFuYWdlZENsYXNzRWxlbWVudE1ldGFkYXRhJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExlZ2FjeU1ldGFkYXRhKFxuICBjbGFzc0VsZW1lbnRNZXRhZGF0YTogQ2xhc3NFbGVtZW50TWV0YWRhdGEsXG4pOiBMZWdhY3lNZXRhZGF0YVtdIHtcbiAgc3dpdGNoIChjbGFzc0VsZW1lbnRNZXRhZGF0YS5raW5kKSB7XG4gICAgY2FzZSBDbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQudW5tYW5hZ2VkOlxuICAgICAgcmV0dXJuIGdldFVubWFuYWdlZExlZ2FjeU1ldGFkYXRhKCk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBnZXRNYW5hZ2VkTGVnYWN5TWV0YWRhdGEoY2xhc3NFbGVtZW50TWV0YWRhdGEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldE1hbmFnZWRMZWdhY3lNZXRhZGF0YShcbiAgY2xhc3NFbGVtZW50TWV0YWRhdGE6IE1hbmFnZWRDbGFzc0VsZW1lbnRNZXRhZGF0YSxcbik6IExlZ2FjeU1ldGFkYXRhW10ge1xuICBjb25zdCBsZWdhY3lNZXRhZGF0YUxpc3Q6IExlZ2FjeU1ldGFkYXRhW10gPSBbXG4gICAgZ2V0TWFuYWdlZEtpbmRMZWdhY3lNZXRhZGF0YShjbGFzc0VsZW1lbnRNZXRhZGF0YSksXG4gIF07XG5cbiAgaWYgKGNsYXNzRWxlbWVudE1ldGFkYXRhLm5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIGxlZ2FjeU1ldGFkYXRhTGlzdC5wdXNoKHtcbiAgICAgIGtleTogTkFNRURfVEFHLFxuICAgICAgdmFsdWU6IGNsYXNzRWxlbWVudE1ldGFkYXRhLm5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBpZiAoY2xhc3NFbGVtZW50TWV0YWRhdGEub3B0aW9uYWwpIHtcbiAgICBsZWdhY3lNZXRhZGF0YUxpc3QucHVzaCh7XG4gICAgICBrZXk6IE9QVElPTkFMX1RBRyxcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgZm9yIChjb25zdCBbdGFnS2V5LCB0YWdWYWx1ZV0gb2YgY2xhc3NFbGVtZW50TWV0YWRhdGEudGFncykge1xuICAgIGxlZ2FjeU1ldGFkYXRhTGlzdC5wdXNoKHtcbiAgICAgIGtleTogdGFnS2V5LFxuICAgICAgdmFsdWU6IHRhZ1ZhbHVlLFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKGNsYXNzRWxlbWVudE1ldGFkYXRhLnRhcmdldE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIGxlZ2FjeU1ldGFkYXRhTGlzdC5wdXNoKHtcbiAgICAgIGtleTogTkFNRV9UQUcsXG4gICAgICB2YWx1ZTogY2xhc3NFbGVtZW50TWV0YWRhdGEudGFyZ2V0TmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBsZWdhY3lNZXRhZGF0YUxpc3Q7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmFnZWRLaW5kTGVnYWN5TWV0YWRhdGEoXG4gIGNsYXNzRWxlbWVudE1ldGFkYXRhOiBNYW5hZ2VkQ2xhc3NFbGVtZW50TWV0YWRhdGEsXG4pOiBMZWdhY3lNZXRhZGF0YSB7XG4gIGxldCBraW5kTGVnYWN5TWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhO1xuXG4gIHN3aXRjaCAoY2xhc3NFbGVtZW50TWV0YWRhdGEua2luZCkge1xuICAgIGNhc2UgQ2xhc3NFbGVtZW50TWV0YWRhdGFLaW5kLm11bHRpcGxlSW5qZWN0aW9uOlxuICAgICAga2luZExlZ2FjeU1ldGFkYXRhID0ge1xuICAgICAgICBrZXk6IE1VTFRJX0lOSkVDVF9UQUcsXG4gICAgICAgIHZhbHVlOiBjbGFzc0VsZW1lbnRNZXRhZGF0YS52YWx1ZSxcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICBjYXNlIENsYXNzRWxlbWVudE1ldGFkYXRhS2luZC5zaW5nbGVJbmplY3Rpb246XG4gICAgICBraW5kTGVnYWN5TWV0YWRhdGEgPSB7XG4gICAgICAgIGtleTogSU5KRUNUX1RBRyxcbiAgICAgICAgdmFsdWU6IGNsYXNzRWxlbWVudE1ldGFkYXRhLnZhbHVlLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGtpbmRMZWdhY3lNZXRhZGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0VW5tYW5hZ2VkTGVnYWN5TWV0YWRhdGEoKTogTGVnYWN5TWV0YWRhdGFbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAga2V5OiBVTk1BTkFHRURfVEFHLFxuICAgICAgdmFsdWU6IHRydWUsXG4gICAgfSxcbiAgXTtcbn1cbiIsImltcG9ydCB7IExlZ2FjeVF1ZXJ5YWJsZVN0cmluZyB9IGZyb20gJy4vTGVnYWN5UXVlcnlhYmxlU3RyaW5nJztcblxuZXhwb3J0IGNsYXNzIExlZ2FjeVF1ZXJ5YWJsZVN0cmluZ0ltcGwgaW1wbGVtZW50cyBMZWdhY3lRdWVyeWFibGVTdHJpbmcge1xuICByZWFkb25seSAjc3RyOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc3RyOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNzdHIgPSBzdHI7XG4gIH1cblxuICBwdWJsaWMgc3RhcnRzV2l0aChzZWFyY2hTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNzdHIuc3RhcnRzV2l0aChzZWFyY2hTdHJpbmcpO1xuICB9XG5cbiAgcHVibGljIGVuZHNXaXRoKHNlYXJjaFN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI3N0ci5lbmRzV2l0aChzZWFyY2hTdHJpbmcpO1xuICB9XG5cbiAgcHVibGljIGNvbnRhaW5zKHNlYXJjaFN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI3N0ci5pbmNsdWRlcyhzZWFyY2hTdHJpbmcpO1xuICB9XG5cbiAgcHVibGljIGVxdWFscyhjb21wYXJlU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jc3RyID09PSBjb21wYXJlU3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI3N0cjtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgZ2V0UmVmbGVjdE1ldGFkYXRhLFxuICB1cGRhdGVSZWZsZWN0TWV0YWRhdGEsXG59IGZyb20gJ0BpbnZlcnNpZnlqcy9yZWZsZWN0LW1ldGFkYXRhLXV0aWxzJztcblxuY29uc3QgSURfTUVUQURBVEE6IHN0cmluZyA9ICdAaW52ZXJzaWZ5anMvY29yZS90YXJnZXRJZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYXJnZXRJZCgpOiBudW1iZXIge1xuICBjb25zdCB0YXJnZXRJZDogbnVtYmVyID0gZ2V0UmVmbGVjdE1ldGFkYXRhPG51bWJlcj4oT2JqZWN0LCBJRF9NRVRBREFUQSkgPz8gMDtcblxuICBpZiAodGFyZ2V0SWQgPT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSB7XG4gICAgdXBkYXRlUmVmbGVjdE1ldGFkYXRhKFxuICAgICAgT2JqZWN0LFxuICAgICAgSURfTUVUQURBVEEsXG4gICAgICB0YXJnZXRJZCxcbiAgICAgICgpID0+IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgdXBkYXRlUmVmbGVjdE1ldGFkYXRhKFxuICAgICAgT2JqZWN0LFxuICAgICAgSURfTUVUQURBVEEsXG4gICAgICB0YXJnZXRJZCxcbiAgICAgIChpZDogbnVtYmVyKSA9PiBpZCArIDEsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXRJZDtcbn1cbiIsImltcG9ydCB7IExhenlTZXJ2aWNlSWRlbnRpZmllciwgU2VydmljZUlkZW50aWZpZXIgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcblxuaW1wb3J0IHsgZ2V0TGVnYWN5TWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0TGVnYWN5TWV0YWRhdGEnO1xuaW1wb3J0IHsgQ2xhc3NFbGVtZW50TWV0YWRhdGFLaW5kIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhS2luZCc7XG5pbXBvcnQgeyBMZWdhY3lNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21ldGFkYXRhL21vZGVscy9MZWdhY3lNZXRhZGF0YSc7XG5pbXBvcnQgeyBNYW5hZ2VkQ2xhc3NFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9tb2RlbHMvTWFuYWdlZENsYXNzRWxlbWVudE1ldGFkYXRhJztcbmltcG9ydCB7IE1ldGFkYXRhTmFtZSB9IGZyb20gJy4uLy4uL21ldGFkYXRhL21vZGVscy9NZXRhZGF0YU5hbWUnO1xuaW1wb3J0IHsgTWV0YWRhdGFUYWcgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9tb2RlbHMvTWV0YWRhdGFUYWcnO1xuaW1wb3J0IHsgTkFNRURfVEFHIH0gZnJvbSAnLi4vLi4vcmVmbGVjdE1ldGFkYXRhL2RhdGEva2V5cyc7XG5pbXBvcnQgeyBMZWdhY3lRdWVyeWFibGVTdHJpbmcgfSBmcm9tICcuLi8uLi9zdHJpbmcvbW9kZWxzL0xlZ2FjeVF1ZXJ5YWJsZVN0cmluZyc7XG5pbXBvcnQgeyBMZWdhY3lRdWVyeWFibGVTdHJpbmdJbXBsIH0gZnJvbSAnLi4vLi4vc3RyaW5nL21vZGVscy9MZWdhY3lRdWVyeWFibGVTdHJpbmdJbXBsJztcbmltcG9ydCB7IGdldERlc2NyaXB0aW9uIH0gZnJvbSAnLi4vLi4vc3ltYm9sL2NhbGN1bGF0aW9ucy9nZXREZXNjcmlwdGlvbic7XG5pbXBvcnQgeyBnZXRUYXJnZXRJZCB9IGZyb20gJy4uL2NhbGN1bGF0aW9ucy9nZXRUYXJnZXRJZCc7XG5pbXBvcnQgeyBMZWdhY3lUYXJnZXQgfSBmcm9tICcuL0xlZ2FjeVRhcmdldCc7XG5pbXBvcnQgeyBMZWdhY3lUYXJnZXRUeXBlIH0gZnJvbSAnLi9MZWdhY3lUYXJnZXRUeXBlJztcblxuZXhwb3J0IGNsYXNzIExlZ2FjeVRhcmdldEltcGwgaW1wbGVtZW50cyBMZWdhY3lUYXJnZXQge1xuICByZWFkb25seSAjbWV0YWRhdGE6IE1hbmFnZWRDbGFzc0VsZW1lbnRNZXRhZGF0YTtcbiAgcmVhZG9ubHkgI2lkOiBudW1iZXI7XG4gIHJlYWRvbmx5ICNpZGVudGlmaWVyOiBzdHJpbmcgfCBzeW1ib2w7XG4gICNsYXp5TGVnYWN5TWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhW10gfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5ICNuYW1lOiBMZWdhY3lRdWVyeWFibGVTdHJpbmc7XG4gIHJlYWRvbmx5ICN0eXBlOiBMZWdhY3lUYXJnZXRUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGlkZW50aWZpZXI6IHN0cmluZyB8IHN5bWJvbCxcbiAgICBtZXRhZGF0YTogTWFuYWdlZENsYXNzRWxlbWVudE1ldGFkYXRhLFxuICAgIHR5cGU6IExlZ2FjeVRhcmdldFR5cGUsXG4gICkge1xuICAgIHRoaXMuI2lkID0gZ2V0VGFyZ2V0SWQoKTtcbiAgICB0aGlzLiNpZGVudGlmaWVyID0gaWRlbnRpZmllcjtcbiAgICB0aGlzLiNsYXp5TGVnYWN5TWV0YWRhdGEgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy4jbWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICB0aGlzLiNuYW1lID0gbmV3IExlZ2FjeVF1ZXJ5YWJsZVN0cmluZ0ltcGwoXG4gICAgICB0eXBlb2YgaWRlbnRpZmllciA9PT0gJ3N0cmluZycgPyBpZGVudGlmaWVyIDogZ2V0RGVzY3JpcHRpb24oaWRlbnRpZmllciksXG4gICAgKTtcbiAgICB0aGlzLiN0eXBlID0gdHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jaWQ7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhpcyBpcyBhIGNsYXNzIHByb3BlcnR5IHRhcmdldCwgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgaW5qZWN0ZWRcbiAgICovXG4gIHB1YmxpYyBnZXQgaWRlbnRpZmllcigpOiBzdHJpbmcgfCBzeW1ib2wge1xuICAgIHJldHVybiB0aGlzLiNpZGVudGlmaWVyO1xuICB9XG5cbiAgcHVibGljIGdldCBtZXRhZGF0YSgpOiBMZWdhY3lNZXRhZGF0YVtdIHtcbiAgICBpZiAodGhpcy4jbGF6eUxlZ2FjeU1ldGFkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuI2xhenlMZWdhY3lNZXRhZGF0YSA9IGdldExlZ2FjeU1ldGFkYXRhKHRoaXMuI21ldGFkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jbGF6eUxlZ2FjeU1ldGFkYXRhO1xuICB9XG5cbiAgcHVibGljIGdldCBuYW1lKCk6IExlZ2FjeVF1ZXJ5YWJsZVN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI25hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHR5cGUoKTogTGVnYWN5VGFyZ2V0VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuI3R5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlcnZpY2VJZGVudGlmaWVyKCk6IFNlcnZpY2VJZGVudGlmaWVyIHtcbiAgICBpZiAoTGF6eVNlcnZpY2VJZGVudGlmaWVyLmlzKHRoaXMuI21ldGFkYXRhLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuI21ldGFkYXRhLnZhbHVlLnVud3JhcCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy4jbWV0YWRhdGEudmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEN1c3RvbVRhZ3MoKTogTGVnYWN5TWV0YWRhdGFbXSB8IG51bGwge1xuICAgIHJldHVybiBbLi4udGhpcy4jbWV0YWRhdGEudGFncy5lbnRyaWVzKCldLm1hcChcbiAgICAgIChba2V5LCB2YWx1ZV06IFtNZXRhZGF0YVRhZywgdW5rbm93bl0pOiBMZWdhY3lNZXRhZGF0YSA9PiAoe1xuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROYW1lZFRhZygpOiBMZWdhY3lNZXRhZGF0YTxNZXRhZGF0YU5hbWU+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuI21ldGFkYXRhLm5hbWUgPT09IHVuZGVmaW5lZFxuICAgICAgPyBudWxsXG4gICAgICA6IHtcbiAgICAgICAgICBrZXk6IE5BTUVEX1RBRyxcbiAgICAgICAgICB2YWx1ZTogdGhpcy4jbWV0YWRhdGEubmFtZSxcbiAgICAgICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNUYWcoa2V5OiBNZXRhZGF0YVRhZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1ldGFkYXRhLnNvbWUoXG4gICAgICAobWV0YWRhdGE6IExlZ2FjeU1ldGFkYXRhKTogYm9vbGVhbiA9PiBtZXRhZGF0YS5rZXkgPT09IGtleSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGlzQXJyYXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI21ldGFkYXRhLmtpbmQgPT09IENsYXNzRWxlbWVudE1ldGFkYXRhS2luZC5tdWx0aXBsZUluamVjdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBpc05hbWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNtZXRhZGF0YS5uYW1lICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgaXNPcHRpb25hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jbWV0YWRhdGEub3B0aW9uYWw7XG4gIH1cblxuICBwdWJsaWMgaXNUYWdnZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI21ldGFkYXRhLnRhZ3Muc2l6ZSA+IDA7XG4gIH1cblxuICBwdWJsaWMgbWF0Y2hlc0FycmF5KG5hbWU6IFNlcnZpY2VJZGVudGlmaWVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBcnJheSgpICYmIHRoaXMuI21ldGFkYXRhLnZhbHVlID09PSBuYW1lO1xuICB9XG5cbiAgcHVibGljIG1hdGNoZXNOYW1lZFRhZyhuYW1lOiBNZXRhZGF0YU5hbWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jbWV0YWRhdGEubmFtZSA9PT0gbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBtYXRjaGVzVGFnKGtleTogTWV0YWRhdGFUYWcpOiAodmFsdWU6IHVua25vd24pID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAodmFsdWU6IHVua25vd24pOiBib29sZWFuID0+XG4gICAgICB0aGlzLm1ldGFkYXRhLnNvbWUoXG4gICAgICAgIChtZXRhZGF0YTogTGVnYWN5TWV0YWRhdGEpOiBib29sZWFuID0+XG4gICAgICAgICAgbWV0YWRhdGEua2V5ID09PSBrZXkgJiYgbWV0YWRhdGEudmFsdWUgPT09IHZhbHVlLFxuICAgICAgKTtcbiAgfVxufVxuIiwiY29uc3QgU1lNQk9MX0lOREVYX1NUQVJUOiBudW1iZXIgPSA3O1xuY29uc3QgU1lNQk9MX0lOREVYX0VORDogbnVtYmVyID0gLTE7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdGlvbihzeW1ib2w6IHN5bWJvbCkge1xuICByZXR1cm4gc3ltYm9sLnRvU3RyaW5nKCkuc2xpY2UoU1lNQk9MX0lOREVYX1NUQVJULCBTWU1CT0xfSU5ERVhfRU5EKTtcbn1cbiIsImltcG9ydCB7IE5ld2FibGUgfSBmcm9tICdAaW52ZXJzaWZ5anMvY29tbW9uJztcblxuaW1wb3J0IHsgZ2V0Q2xhc3NNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21ldGFkYXRhL2NhbGN1bGF0aW9ucy9nZXRDbGFzc01ldGFkYXRhJztcbmltcG9ydCB7IGdldENsYXNzTWV0YWRhdGFGcm9tTWV0YWRhdGFSZWFkZXIgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9jYWxjdWxhdGlvbnMvZ2V0Q2xhc3NNZXRhZGF0YUZyb21NZXRhZGF0YVJlYWRlcic7XG5pbXBvcnQgeyBnZXRDbGFzc01ldGFkYXRhUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL21ldGFkYXRhL2NhbGN1bGF0aW9ucy9nZXRDbGFzc01ldGFkYXRhUHJvcGVydGllcyc7XG5pbXBvcnQgeyBnZXRDbGFzc01ldGFkYXRhUHJvcGVydGllc0Zyb21NZXRhZGF0YVJlYWRlciB9IGZyb20gJy4uLy4uL21ldGFkYXRhL2NhbGN1bGF0aW9ucy9nZXRDbGFzc01ldGFkYXRhUHJvcGVydGllc0Zyb21NZXRhZGF0YVJlYWRlcic7XG5pbXBvcnQgeyBDbGFzc0VsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21ldGFkYXRhL21vZGVscy9DbGFzc0VsZW1lbnRNZXRhZGF0YSc7XG5pbXBvcnQgeyBDbGFzc01ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvbW9kZWxzL0NsYXNzTWV0YWRhdGEnO1xuaW1wb3J0IHsgTGVnYWN5TWV0YWRhdGFSZWFkZXIgfSBmcm9tICcuLi8uLi9tZXRhZGF0YS9tb2RlbHMvTGVnYWN5TWV0YWRhdGFSZWFkZXInO1xuaW1wb3J0IHsgTGVnYWN5VGFyZ2V0IH0gZnJvbSAnLi4vbW9kZWxzL0xlZ2FjeVRhcmdldCc7XG5pbXBvcnQgeyBnZXRUYXJnZXRzRnJvbU1ldGFkYXRhUHJvdmlkZXJzIH0gZnJvbSAnLi9nZXRUYXJnZXRzRnJvbU1ldGFkYXRhUHJvdmlkZXJzJztcblxuZXhwb3J0IGNvbnN0IGdldFRhcmdldHM6IChcbiAgbWV0YWRhdGFSZWFkZXI/OiBMZWdhY3lNZXRhZGF0YVJlYWRlcixcbikgPT4gKHR5cGU6IE5ld2FibGUpID0+IExlZ2FjeVRhcmdldFtdID0gKFxuICBtZXRhZGF0YVJlYWRlcj86IExlZ2FjeU1ldGFkYXRhUmVhZGVyLFxuKTogKCh0eXBlOiBOZXdhYmxlKSA9PiBMZWdhY3lUYXJnZXRbXSkgPT4ge1xuICBjb25zdCBnZXRDbGFzc01ldGFkYXRhRm46ICh0eXBlOiBOZXdhYmxlKSA9PiBDbGFzc01ldGFkYXRhID1cbiAgICBtZXRhZGF0YVJlYWRlciA9PT0gdW5kZWZpbmVkXG4gICAgICA/IGdldENsYXNzTWV0YWRhdGFcbiAgICAgIDogKHR5cGU6IE5ld2FibGUpOiBDbGFzc01ldGFkYXRhID0+XG4gICAgICAgICAgZ2V0Q2xhc3NNZXRhZGF0YUZyb21NZXRhZGF0YVJlYWRlcih0eXBlLCBtZXRhZGF0YVJlYWRlcik7XG4gIGNvbnN0IGdldENsYXNzTWV0YWRhdGFQcm9wZXJ0aWVzRm46IChcbiAgICB0eXBlOiBOZXdhYmxlLFxuICApID0+IE1hcDxzdHJpbmcgfCBzeW1ib2wsIENsYXNzRWxlbWVudE1ldGFkYXRhPiA9XG4gICAgbWV0YWRhdGFSZWFkZXIgPT09IHVuZGVmaW5lZFxuICAgICAgPyBnZXRDbGFzc01ldGFkYXRhUHJvcGVydGllc1xuICAgICAgOiAodHlwZTogTmV3YWJsZSk6IE1hcDxzdHJpbmcgfCBzeW1ib2wsIENsYXNzRWxlbWVudE1ldGFkYXRhPiA9PlxuICAgICAgICAgIGdldENsYXNzTWV0YWRhdGFQcm9wZXJ0aWVzRnJvbU1ldGFkYXRhUmVhZGVyKHR5cGUsIG1ldGFkYXRhUmVhZGVyKTtcblxuICByZXR1cm4gZ2V0VGFyZ2V0c0Zyb21NZXRhZGF0YVByb3ZpZGVycyhcbiAgICBnZXRDbGFzc01ldGFkYXRhRm4sXG4gICAgZ2V0Q2xhc3NNZXRhZGF0YVByb3BlcnRpZXNGbixcbiAgKTtcbn07XG4iLCJpbXBvcnQgeyBOZXdhYmxlIH0gZnJvbSAnQGludmVyc2lmeWpzL2NvbW1vbic7XG5cbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvbW9kZWxzL0NsYXNzRWxlbWVudE1ldGFkYXRhJztcbmltcG9ydCB7IENsYXNzRWxlbWVudE1ldGFkYXRhS2luZCB9IGZyb20gJy4uLy4uL21ldGFkYXRhL21vZGVscy9DbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQnO1xuaW1wb3J0IHsgQ2xhc3NNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21ldGFkYXRhL21vZGVscy9DbGFzc01ldGFkYXRhJztcbmltcG9ydCB7IGdldEJhc2VUeXBlIH0gZnJvbSAnLi4vLi4vcHJvdG90eXBlL2NhbGN1bGF0aW9ucy9nZXRCYXNlVHlwZSc7XG5pbXBvcnQgeyBMZWdhY3lUYXJnZXQgfSBmcm9tICcuLi9tb2RlbHMvTGVnYWN5VGFyZ2V0JztcbmltcG9ydCB7IExlZ2FjeVRhcmdldEltcGwgfSBmcm9tICcuLi9tb2RlbHMvTGVnYWN5VGFyZ2V0SW1wbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYXJnZXRzRnJvbU1ldGFkYXRhUHJvdmlkZXJzKFxuICBnZXRDbGFzc01ldGFkYXRhOiAodHlwZTogTmV3YWJsZSkgPT4gQ2xhc3NNZXRhZGF0YSxcbiAgZ2V0Q2xhc3NNZXRhZGF0YVByb3BlcnRpZXM6IChcbiAgICB0eXBlOiBOZXdhYmxlLFxuICApID0+IE1hcDxzdHJpbmcgfCBzeW1ib2wsIENsYXNzRWxlbWVudE1ldGFkYXRhPixcbik6ICh0eXBlOiBOZXdhYmxlKSA9PiBMZWdhY3lUYXJnZXRbXSB7XG4gIHJldHVybiBmdW5jdGlvbiBnZXRUYWdldHModHlwZTogTmV3YWJsZSk6IExlZ2FjeVRhcmdldFtdIHtcbiAgICBjb25zdCBjbGFzc01ldGFkYXRhOiBDbGFzc01ldGFkYXRhID0gZ2V0Q2xhc3NNZXRhZGF0YSh0eXBlKTtcblxuICAgIGxldCBiYXNlVHlwZTogTmV3YWJsZSB8IHVuZGVmaW5lZCA9IGdldEJhc2VUeXBlKHR5cGUpO1xuXG4gICAgd2hpbGUgKGJhc2VUeXBlICE9PSB1bmRlZmluZWQgJiYgYmFzZVR5cGUgIT09IE9iamVjdCkge1xuICAgICAgY29uc3QgY2xhc3NNZXRhZGF0YVByb3BlcnRpZXM6IE1hcDxcbiAgICAgICAgc3RyaW5nIHwgc3ltYm9sLFxuICAgICAgICBDbGFzc0VsZW1lbnRNZXRhZGF0YVxuICAgICAgPiA9IGdldENsYXNzTWV0YWRhdGFQcm9wZXJ0aWVzKGJhc2VUeXBlKTtcblxuICAgICAgZm9yIChjb25zdCBbcHJvcGVydHlLZXksIHByb3BlcnR5VmFsdWVdIG9mIGNsYXNzTWV0YWRhdGFQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmICghY2xhc3NNZXRhZGF0YS5wcm9wZXJ0aWVzLmhhcyhwcm9wZXJ0eUtleSkpIHtcbiAgICAgICAgICBjbGFzc01ldGFkYXRhLnByb3BlcnRpZXMuc2V0KHByb3BlcnR5S2V5LCBwcm9wZXJ0eVZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBiYXNlVHlwZSA9IGdldEJhc2VUeXBlKGJhc2VUeXBlKTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRzOiBMZWdhY3lUYXJnZXRbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb25zdHJ1Y3RvckFyZ3VtZW50IG9mIGNsYXNzTWV0YWRhdGEuY29uc3RydWN0b3JBcmd1bWVudHMpIHtcbiAgICAgIGlmIChjb25zdHJ1Y3RvckFyZ3VtZW50LmtpbmQgIT09IENsYXNzRWxlbWVudE1ldGFkYXRhS2luZC51bm1hbmFnZWQpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0TmFtZTogc3RyaW5nID0gY29uc3RydWN0b3JBcmd1bWVudC50YXJnZXROYW1lID8/ICcnO1xuXG4gICAgICAgIHRhcmdldHMucHVzaChcbiAgICAgICAgICBuZXcgTGVnYWN5VGFyZ2V0SW1wbChcbiAgICAgICAgICAgIHRhcmdldE5hbWUsXG4gICAgICAgICAgICBjb25zdHJ1Y3RvckFyZ3VtZW50LFxuICAgICAgICAgICAgJ0NvbnN0cnVjdG9yQXJndW1lbnQnLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbcHJvcGVydHksIG1ldGFkYXRhXSBvZiBjbGFzc01ldGFkYXRhLnByb3BlcnRpZXMpIHtcbiAgICAgIGlmIChtZXRhZGF0YS5raW5kICE9PSBDbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQudW5tYW5hZ2VkKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldE5hbWU6IHN0cmluZyB8IHN5bWJvbCA9IG1ldGFkYXRhLnRhcmdldE5hbWUgPz8gcHJvcGVydHk7XG5cbiAgICAgICAgdGFyZ2V0cy5wdXNoKFxuICAgICAgICAgIG5ldyBMZWdhY3lUYXJnZXRJbXBsKHRhcmdldE5hbWUsIG1ldGFkYXRhLCAnQ2xhc3NQcm9wZXJ0eScpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRzO1xuICB9O1xufVxuIl0sIm5hbWVzIjpbIl9fd2VicGFja19yZXF1aXJlX18iLCJleHBvcnRzIiwiZGVmaW5pdGlvbiIsImtleSIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJvYmoiLCJwcm9wIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwieSIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfX2ludmVyc2lmeWpzX3JlZmxlY3RfbWV0YWRhdGFfdXRpbHNfOGVjYzRjMTZfXyIsIngiLCJkIiwiTkFNRURfVEFHIiwiTkFNRV9UQUciLCJVTk1BTkFHRURfVEFHIiwiT1BUSU9OQUxfVEFHIiwiSU5KRUNUX1RBRyIsIk1VTFRJX0lOSkVDVF9UQUciLCJUQUdHRUQiLCJUQUdHRURfUFJPUCIsIkRFU0lHTl9QQVJBTV9UWVBFUyIsIlBPU1RfQ09OU1RSVUNUIiwiUFJFX0RFU1RST1kiLCJOT05fQ1VTVE9NX1RBR19LRVlTIiwiaXNBcHBFcnJvclN5bWJvbCIsIlN5bWJvbCIsImZvciIsIkludmVyc2lmeUNvcmVFcnJvciIsIkVycm9yIiwia2luZCIsImNvbnN0cnVjdG9yIiwibWVzc2FnZSIsIm9wdGlvbnMiLCJzdXBlciIsInRoaXMiLCJpcyIsInZhbHVlIiwiaXNFcnJvck9mS2luZCIsIkludmVyc2lmeUNvcmVFcnJvcktpbmQiLCJDbGFzc0VsZW1lbnRNZXRhZGF0YUtpbmQiLCJhc3NlcnRDb25zdHJ1Y3Rvck1ldGFkYXRhQXJyYXlGaWxsZWQiLCJ0eXBlIiwidW5kZWZpbmVkSW5kZXhlcyIsImkiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJwdXNoIiwibWlzc2luZ0luamVjdGlvbkRlY29yYXRvciIsIm5hbWUiLCJqb2luIiwiZ2V0Q2xhc3NFbGVtZW50TWV0YWRhdGFGcm9tTmV3YWJsZSIsInNpbmdsZUluamVjdGlvbiIsIm9wdGlvbmFsIiwidGFncyIsIk1hcCIsInRhcmdldE5hbWUiLCJnZXRDbGFzc0VsZW1lbnRNZXRhZGF0YUZyb21MZWdhY3lNZXRhZGF0YSIsIm1ldGFkYXRhTGlzdCIsImluamVjdE1ldGFkYXRhIiwiZmluZCIsIm1ldGFkYXRhIiwibXVsdGlJbmplY3RNZXRhZGF0YSIsInVubWFuYWdlZCIsImdldFVubWFuYWdlZENsYXNzRWxlbWVudE1ldGFkYXRhIiwibmFtZU1ldGFkYXRhIiwib3B0aW9uYWxNZXRhZGF0YSIsInRhcmdldE5hbWVNZXRhZGF0YSIsIm11bHRpcGxlSW5qZWN0aW9uIiwiZmlsdGVyIiwiZXZlcnkiLCJjdXN0b21UYWdLZXkiLCJtYXAiLCJnZXRDb25zdHJ1Y3RvckFyZ3VtZW50TWV0YWRhdGFGcm9tTGVnYWN5TWV0YWRhdGEiLCJpbmRleCIsImVycm9yIiwidG9TdHJpbmciLCJjYXVzZSIsImdldENsYXNzTWV0YWRhdGFDb25zdHJ1Y3RvckFyZ3VtZW50cyIsInR5cGVzY3JpcHRNZXRhZGF0YUxpc3QiLCJnZXRSZWZsZWN0TWV0YWRhdGEiLCJjb25zdHJ1Y3RvclBhcmFtZXRlcnNMZWdhY3lNZXRhZGF0YSIsImNvbnN0cnVjdG9yQXJndW1lbnRzTWV0YWRhdGEiLCJzdHJpbmdpZmllZEluZGV4IiwiZW50cmllcyIsInBhcnNlSW50IiwidHlwZXNjcmlwdE1ldGFkYXRhIiwiZ2V0UHJvcGVydHlNZXRhZGF0YUZyb21MZWdhY3lNZXRhZGF0YSIsImdldENsYXNzTWV0YWRhdGFQcm9wZXJ0aWVzIiwicHJvcGVydGllc0xlZ2FjeU1ldGFkYXRhIiwicHJvcGVydGllc01ldGFkYXRhIiwicHJvcGVydHkiLCJSZWZsZWN0Iiwib3duS2V5cyIsImxlZ2FjeU1ldGFkYXRhIiwic2V0IiwiZ2V0Q2xhc3NNZXRhZGF0YSIsInBvc3RDb25zdHJ1Y3RNZXRhZGF0YSIsInByZURlc3Ryb3lNZXRhZGF0YSIsImNvbnN0cnVjdG9yQXJndW1lbnRzIiwibGlmZWN5Y2xlIiwicG9zdENvbnN0cnVjdE1ldGhvZE5hbWUiLCJwcmVEZXN0cm95TWV0aG9kTmFtZSIsInByb3BlcnRpZXMiLCJnZXRDbGFzc01ldGFkYXRhQ29uc3RydWN0b3JBcmd1bWVudHNGcm9tTWV0YWRhdGFSZWFkZXIiLCJtZXRhZGF0YVJlYWRlciIsImxlZ2FjeUNvbnN0cnVjdG9yTWV0YWRhdGEiLCJnZXRDb25zdHJ1Y3Rvck1ldGFkYXRhIiwidXNlckdlbmVyYXRlZE1ldGFkYXRhIiwiY29tcGlsZXJHZW5lcmF0ZWRNZXRhZGF0YSIsImdldENsYXNzTWV0YWRhdGFQcm9wZXJ0aWVzRnJvbU1ldGFkYXRhUmVhZGVyIiwiZ2V0UHJvcGVydGllc01ldGFkYXRhIiwiZ2V0Q2xhc3NNZXRhZGF0YUZyb21NZXRhZGF0YVJlYWRlciIsImdldEJhc2VUeXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJiYXNlVHlwZSIsIl9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfX2ludmVyc2lmeWpzX2NvbW1vbl8wODFkOGMwN19fIiwiZ2V0TWFuYWdlZEtpbmRMZWdhY3lNZXRhZGF0YSIsImNsYXNzRWxlbWVudE1ldGFkYXRhIiwia2luZExlZ2FjeU1ldGFkYXRhIiwiTGVnYWN5UXVlcnlhYmxlU3RyaW5nSW1wbCIsInN0ciIsInN0YXJ0c1dpdGgiLCJzZWFyY2hTdHJpbmciLCJlbmRzV2l0aCIsImNvbnRhaW5zIiwiaW5jbHVkZXMiLCJlcXVhbHMiLCJjb21wYXJlU3RyaW5nIiwiSURfTUVUQURBVEEiLCJMZWdhY3lUYXJnZXRJbXBsIiwiaWRlbnRpZmllciIsInRhcmdldElkIiwiTnVtYmVyIiwiTUFYX1NBRkVfSU5URUdFUiIsInVwZGF0ZVJlZmxlY3RNZXRhZGF0YSIsIk1JTl9TQUZFX0lOVEVHRVIiLCJpZCIsImdldFRhcmdldElkIiwic2xpY2UiLCJsZWdhY3lNZXRhZGF0YUxpc3QiLCJ0YWdLZXkiLCJ0YWdWYWx1ZSIsImdldE1hbmFnZWRMZWdhY3lNZXRhZGF0YSIsInNlcnZpY2VJZGVudGlmaWVyIiwiTGF6eVNlcnZpY2VJZGVudGlmaWVyIiwidW53cmFwIiwiZ2V0Q3VzdG9tVGFncyIsImdldE5hbWVkVGFnIiwiaGFzVGFnIiwic29tZSIsImlzQXJyYXkiLCJpc05hbWVkIiwiaXNPcHRpb25hbCIsImlzVGFnZ2VkIiwic2l6ZSIsIm1hdGNoZXNBcnJheSIsIm1hdGNoZXNOYW1lZFRhZyIsIm1hdGNoZXNUYWciLCJnZXRUYXJnZXRzIiwiY2xhc3NNZXRhZGF0YSIsImNsYXNzTWV0YWRhdGFQcm9wZXJ0aWVzIiwicHJvcGVydHlLZXkiLCJwcm9wZXJ0eVZhbHVlIiwiaGFzIiwidGFyZ2V0cyIsImNvbnN0cnVjdG9yQXJndW1lbnQiLCJnZXRUYXJnZXRzRnJvbU1ldGFkYXRhUHJvdmlkZXJzIl0sInNvdXJjZVJvb3QiOiIifQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MaybeClassElementMetadata } from '../models/MaybeClassElementMetadata';
|
|
2
|
+
import { MaybeClassMetadata } from '../models/MaybeClassMetadata';
|
|
3
|
+
export declare function updateMaybeClassMetadataConstructorArgument(updateMetadata: (classMetadata: MaybeClassElementMetadata | undefined) => MaybeClassElementMetadata, index: number): (classMetadata: MaybeClassMetadata) => MaybeClassMetadata;
|
|
4
|
+
//# sourceMappingURL=updateMaybeClassMetadataConstructorArgument.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateMaybeClassMetadataConstructorArgument.d.ts","sourceRoot":"","sources":["../../../../src/metadata/actions/updateMaybeClassMetadataConstructorArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,wBAAgB,2CAA2C,CACzD,cAAc,EAAE,CACd,aAAa,EAAE,yBAAyB,GAAG,SAAS,KACjD,yBAAyB,EAC9B,KAAK,EAAE,MAAM,GACZ,CAAC,aAAa,EAAE,kBAAkB,KAAK,kBAAkB,CAU3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateMaybeClassMetadataConstructorArgument.spec.d.ts","sourceRoot":"","sources":["../../../../src/metadata/actions/updateMaybeClassMetadataConstructorArgument.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MaybeClassElementMetadata } from '../models/MaybeClassElementMetadata';
|
|
2
|
+
import { MaybeClassMetadata } from '../models/MaybeClassMetadata';
|
|
3
|
+
export declare function updateMaybeClassMetadataProperty(updateMetadata: (classElementMetadata: MaybeClassElementMetadata | undefined) => MaybeClassElementMetadata, propertyKey: string | symbol): (classMetadata: MaybeClassMetadata) => MaybeClassMetadata;
|
|
4
|
+
//# sourceMappingURL=updateMaybeClassMetadataProperty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateMaybeClassMetadataProperty.d.ts","sourceRoot":"","sources":["../../../../src/metadata/actions/updateMaybeClassMetadataProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,CACd,oBAAoB,EAAE,yBAAyB,GAAG,SAAS,KACxD,yBAAyB,EAC9B,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,CAAC,aAAa,EAAE,kBAAkB,KAAK,kBAAkB,CAS3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateMaybeClassMetadataProperty.spec.d.ts","sourceRoot":"","sources":["../../../../src/metadata/actions/updateMaybeClassMetadataProperty.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Newable } from '@inversifyjs/common';
|
|
2
|
+
import { ClassElementMetadata } from '../models/ClassElementMetadata';
|
|
3
|
+
export declare function assertConstructorMetadataArrayFilled(type: Newable, value: (ClassElementMetadata | undefined)[]): asserts value is ClassElementMetadata[];
|
|
4
|
+
//# sourceMappingURL=assertConstructorMetadataArrayFilled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertConstructorMetadataArrayFilled.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/assertConstructorMetadataArrayFilled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,CAAC,oBAAoB,GAAG,SAAS,CAAC,EAAE,GAC1C,OAAO,CAAC,KAAK,IAAI,oBAAoB,EAAE,CAsBzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertConstructorMetadataArrayFilled.spec.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/assertConstructorMetadataArrayFilled.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClassMetadataConstructorArguments.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/getClassMetadataConstructorArguments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"getClassMetadataConstructorArguments.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/getClassMetadataConstructorArguments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAMtE,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,OAAO,GACZ,oBAAoB,EAAE,CA0CxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClassMetadataConstructorArgumentsFromMetadataReader.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"getClassMetadataConstructorArgumentsFromMetadataReader.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAKtE,wBAAgB,sDAAsD,CACpE,IAAI,EAAE,OAAO,EACb,cAAc,EAAE,oBAAoB,GACnC,oBAAoB,EAAE,CAsCxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultClassMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/getDefaultClassMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,wBAAgB,uBAAuB,IAAI,aAAa,CASvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultClassMetadata.spec.d.ts","sourceRoot":"","sources":["../../../../src/metadata/calculations/getDefaultClassMetadata.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ManagedClassElementMetadata } from '../models/ManagedClassElementMetadata';
|
|
2
|
+
import { MaybeClassElementMetadata } from '../models/MaybeClassElementMetadata';
|
|
3
|
+
export declare function injectBase(updateMetadata: (classMetadata: MaybeClassElementMetadata | undefined) => ManagedClassElementMetadata): ParameterDecorator & PropertyDecorator;
|
|
4
|
+
//# sourceMappingURL=injectBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectBase.d.ts","sourceRoot":"","sources":["../../../../src/metadata/decorators/injectBase.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,wBAAgB,UAAU,CACxB,cAAc,EAAE,CACd,aAAa,EAAE,yBAAyB,GAAG,SAAS,KACjD,2BAA2B,GAC/B,kBAAkB,GAAG,iBAAiB,CAcxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injectBase.spec.d.ts","sourceRoot":"","sources":["../../../../src/metadata/decorators/injectBase.spec.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export interface BaseClassElementMetadata<TKind extends ClassElementMetadataKind> {
|
|
1
|
+
export interface BaseClassElementMetadata<TKind> {
|
|
3
2
|
kind: TKind;
|
|
4
3
|
}
|
|
5
4
|
//# sourceMappingURL=BaseClassElementMetadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/BaseClassElementMetadata.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"BaseClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/BaseClassElementMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB,CAAC,KAAK;IAC7C,IAAI,EAAE,KAAK,CAAC;CACb"}
|
|
@@ -5,10 +5,10 @@ import { MetadataName } from './MetadataName';
|
|
|
5
5
|
import { MetadataTag } from './MetadataTag';
|
|
6
6
|
import { MetadataTargetName } from './MetadataTargetName';
|
|
7
7
|
export interface ManagedClassElementMetadata extends BaseClassElementMetadata<ClassElementMetadataKind.singleInjection | ClassElementMetadataKind.multipleInjection> {
|
|
8
|
-
value: ServiceIdentifier | LazyServiceIdentifier;
|
|
9
8
|
name: MetadataName | undefined;
|
|
10
9
|
optional: boolean;
|
|
11
10
|
tags: Map<MetadataTag, unknown>;
|
|
12
11
|
targetName: MetadataTargetName | undefined;
|
|
12
|
+
value: ServiceIdentifier | LazyServiceIdentifier;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=ManagedClassElementMetadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagedClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/ManagedClassElementMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,2BACf,SAAQ,wBAAwB,CAC5B,wBAAwB,CAAC,eAAe,GACxC,wBAAwB,CAAC,iBAAiB,CAC7C;IACD,
|
|
1
|
+
{"version":3,"file":"ManagedClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/ManagedClassElementMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,2BACf,SAAQ,wBAAwB,CAC5B,wBAAwB,CAAC,eAAe,GACxC,wBAAwB,CAAC,iBAAiB,CAC7C;IACD,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,CAAC;CAClD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ManagedClassElementMetadata } from './ManagedClassElementMetadata';
|
|
2
|
+
import { MaybeManagedClassElementMetadata } from './MaybeManagedClassElementMetadata';
|
|
3
|
+
import { UnmanagedClassElementMetadata } from './UnmanagedClassElementMetadata';
|
|
4
|
+
export type MaybeClassElementMetadata = ManagedClassElementMetadata | MaybeManagedClassElementMetadata | UnmanagedClassElementMetadata;
|
|
5
|
+
//# sourceMappingURL=MaybeClassElementMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassElementMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,MAAM,yBAAyB,GACjC,2BAA2B,GAC3B,gCAAgC,GAChC,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassElementMetadataKind.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassElementMetadataKind.ts"],"names":[],"mappings":"AAAA,oBAAY,6BAA6B;IACvC,OAAO,IAAA;CACR"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClassMetadataLifecycle } from './ClassMetadataLifecycle';
|
|
2
|
+
import { MaybeClassElementMetadata } from './MaybeClassElementMetadata';
|
|
3
|
+
export interface MaybeClassMetadata {
|
|
4
|
+
constructorArguments: MaybeClassElementMetadata[];
|
|
5
|
+
lifecycle: ClassMetadataLifecycle;
|
|
6
|
+
properties: Map<string | symbol, MaybeClassElementMetadata>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=MaybeClassMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeClassMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeClassMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,yBAAyB,EAAE,CAAC;IAClD,SAAS,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LazyServiceIdentifier, ServiceIdentifier } from '@inversifyjs/common';
|
|
2
|
+
import { BaseClassElementMetadata } from './BaseClassElementMetadata';
|
|
3
|
+
import { MaybeClassElementMetadataKind } from './MaybeClassElementMetadataKind';
|
|
4
|
+
import { MetadataName } from './MetadataName';
|
|
5
|
+
import { MetadataTag } from './MetadataTag';
|
|
6
|
+
import { MetadataTargetName } from './MetadataTargetName';
|
|
7
|
+
export interface MaybeManagedClassElementMetadata extends BaseClassElementMetadata<MaybeClassElementMetadataKind.unknown> {
|
|
8
|
+
name: MetadataName | undefined;
|
|
9
|
+
optional: boolean | undefined;
|
|
10
|
+
tags: Map<MetadataTag, unknown>;
|
|
11
|
+
targetName: MetadataTargetName | undefined;
|
|
12
|
+
value: ServiceIdentifier | LazyServiceIdentifier | undefined;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=MaybeManagedClassElementMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeManagedClassElementMetadata.d.ts","sourceRoot":"","sources":["../../../../src/metadata/models/MaybeManagedClassElementMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,gCACf,SAAQ,wBAAwB,CAAC,6BAA6B,CAAC,OAAO,CAAC;IACvE,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,SAAS,CAAC;CAC9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classMetadataReflectKey.d.ts","sourceRoot":"","sources":["../../../../src/reflectMetadata/data/classMetadataReflectKey.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,EAAE,MACO,CAAC"}
|
package/package.json
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
},
|
|
6
6
|
"description": "InversifyJs core package",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@inversifyjs/common": "1.3.
|
|
9
|
-
"@inversifyjs/reflect-metadata-utils": "0.2.
|
|
8
|
+
"@inversifyjs/common": "1.3.3",
|
|
9
|
+
"@inversifyjs/reflect-metadata-utils": "0.2.3"
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@eslint/js": "9.14.0",
|
|
@@ -15,15 +15,18 @@
|
|
|
15
15
|
"@stryker-mutator/jest-runner": "8.6.0",
|
|
16
16
|
"@stryker-mutator/typescript-checker": "8.6.0",
|
|
17
17
|
"@types/node": "22.9.0",
|
|
18
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
19
|
-
"@typescript-eslint/parser": "8.
|
|
18
|
+
"@typescript-eslint/eslint-plugin": "8.14.0",
|
|
19
|
+
"@typescript-eslint/parser": "8.14.0",
|
|
20
20
|
"eslint": "9.14.0",
|
|
21
21
|
"jest": "29.7.0",
|
|
22
22
|
"prettier": "3.3.3",
|
|
23
23
|
"rimraf": "6.0.1",
|
|
24
|
+
"ts-loader": "9.5.1",
|
|
24
25
|
"ts-jest": "29.2.5",
|
|
25
26
|
"ts-node": "10.9.2",
|
|
26
|
-
"typescript": "5.6.3"
|
|
27
|
+
"typescript": "5.6.3",
|
|
28
|
+
"webpack": "5.96.1",
|
|
29
|
+
"webpack-cli": "5.1.4"
|
|
27
30
|
},
|
|
28
31
|
"homepage": "https://inversify.io",
|
|
29
32
|
"keywords": [
|
|
@@ -36,6 +39,10 @@
|
|
|
36
39
|
"node",
|
|
37
40
|
"typescript"
|
|
38
41
|
],
|
|
42
|
+
"devEngines": {
|
|
43
|
+
"node": "^20.18.0",
|
|
44
|
+
"pnpm": "^9.12.1"
|
|
45
|
+
},
|
|
39
46
|
"license": "MIT",
|
|
40
47
|
"main": "lib/cjs/index.js",
|
|
41
48
|
"module": "lib/esm/index.js",
|
|
@@ -54,11 +61,11 @@
|
|
|
54
61
|
"url": "git+https://github.com/inversify/monorepo.git"
|
|
55
62
|
},
|
|
56
63
|
"sideEffects": false,
|
|
57
|
-
"version": "1.3.
|
|
64
|
+
"version": "1.3.4",
|
|
58
65
|
"scripts": {
|
|
59
66
|
"build": "pnpm run build:cjs && pnpm run build:esm",
|
|
60
67
|
"build:cjs": "tsc --build tsconfig.cjs.json && pnpm exec foundation-ts-package-cjs ./lib/cjs",
|
|
61
|
-
"build:esm": "
|
|
68
|
+
"build:esm": "webpack && pnpm exec foundation-ts-package-esm ./lib/esm",
|
|
62
69
|
"build:clean": "rimraf lib",
|
|
63
70
|
"format": "prettier --write ./src/**/*.ts",
|
|
64
71
|
"lint": "eslint ./src",
|
package/tsconfig.cjs.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/index.ts","./src/error/models/InversifyCoreError.ts","./src/error/models/InversifyCoreErrorKind.ts","./src/legacyTarget/calculations/getTargetId.spec.ts","./src/legacyTarget/calculations/getTargetId.ts","./src/legacyTarget/calculations/getTargets.spec.ts","./src/legacyTarget/calculations/getTargets.ts","./src/legacyTarget/calculations/getTargetsFromMetadataProviders.spec.ts","./src/legacyTarget/calculations/getTargetsFromMetadataProviders.ts","./src/legacyTarget/models/LegacyTarget.ts","./src/legacyTarget/models/LegacyTargetImpl.spec.ts","./src/legacyTarget/models/LegacyTargetImpl.ts","./src/legacyTarget/models/LegacyTargetType.ts","./src/metadata/calculations/getClassElementMetadataFromLegacyMetadata.spec.ts","./src/metadata/calculations/getClassElementMetadataFromLegacyMetadata.ts","./src/metadata/calculations/getClassElementMetadataFromNewable.spec.ts","./src/metadata/calculations/getClassElementMetadataFromNewable.ts","./src/metadata/calculations/getClassMetadata.spec.ts","./src/metadata/calculations/getClassMetadata.ts","./src/metadata/calculations/getClassMetadataConstructorArguments.spec.ts","./src/metadata/calculations/getClassMetadataConstructorArguments.ts","./src/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.spec.ts","./src/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.ts","./src/metadata/calculations/getClassMetadataFromMetadataReader.spec.ts","./src/metadata/calculations/getClassMetadataFromMetadataReader.ts","./src/metadata/calculations/getClassMetadataProperties.spec.ts","./src/metadata/calculations/getClassMetadataProperties.ts","./src/metadata/calculations/getClassMetadataPropertiesFromMetadataReader.spec.ts","./src/metadata/calculations/getClassMetadataPropertiesFromMetadataReader.ts","./src/metadata/calculations/getConstructorArgumentMetadataFromLegacyMetadata.spec.ts","./src/metadata/calculations/getConstructorArgumentMetadataFromLegacyMetadata.ts","./src/metadata/calculations/getLegacyMetadata.spec.ts","./src/metadata/calculations/getLegacyMetadata.ts","./src/metadata/calculations/getPropertyMetadataFromLegacyMetadata.spec.ts","./src/metadata/calculations/getPropertyMetadataFromLegacyMetadata.ts","./src/metadata/models/BaseClassElementMetadata.ts","./src/metadata/models/ClassElementMetadata.ts","./src/metadata/models/ClassElementMetadataKind.ts","./src/metadata/models/ClassMetadata.ts","./src/metadata/models/ClassMetadataLifecycle.ts","./src/metadata/models/LegacyConstructorMetadata.ts","./src/metadata/models/LegacyMetadata.ts","./src/metadata/models/LegacyMetadataMap.ts","./src/metadata/models/LegacyMetadataReader.ts","./src/metadata/models/ManagedClassElementMetadata.ts","./src/metadata/models/MetadataName.ts","./src/metadata/models/MetadataTag.ts","./src/metadata/models/MetadataTargetName.ts","./src/metadata/models/UnmanagedClassElementMetadata.ts","./src/prototype/calculations/getBaseType.spec.ts","./src/prototype/calculations/getBaseType.ts","./src/prototype/models/Prototype.ts","./src/reflectMetadata/data/keys.ts","./src/string/models/LegacyQueryableString.ts","./src/string/models/LegacyQueryableStringImpl.spec.ts","./src/string/models/LegacyQueryableStringImpl.ts","./src/symbol/calculations/getDescription.spec.ts","./src/symbol/calculations/getDescription.ts"],"version":"5.6.3"}
|
|
1
|
+
{"root":["./src/index.ts","./src/error/models/InversifyCoreError.ts","./src/error/models/InversifyCoreErrorKind.ts","./src/legacyTarget/calculations/getTargetId.spec.ts","./src/legacyTarget/calculations/getTargetId.ts","./src/legacyTarget/calculations/getTargets.spec.ts","./src/legacyTarget/calculations/getTargets.ts","./src/legacyTarget/calculations/getTargetsFromMetadataProviders.spec.ts","./src/legacyTarget/calculations/getTargetsFromMetadataProviders.ts","./src/legacyTarget/models/LegacyTarget.ts","./src/legacyTarget/models/LegacyTargetImpl.spec.ts","./src/legacyTarget/models/LegacyTargetImpl.ts","./src/legacyTarget/models/LegacyTargetType.ts","./src/metadata/actions/updateMaybeClassMetadataConstructorArgument.spec.ts","./src/metadata/actions/updateMaybeClassMetadataConstructorArgument.ts","./src/metadata/actions/updateMaybeClassMetadataProperty.spec.ts","./src/metadata/actions/updateMaybeClassMetadataProperty.ts","./src/metadata/calculations/assertConstructorMetadataArrayFilled.spec.ts","./src/metadata/calculations/assertConstructorMetadataArrayFilled.ts","./src/metadata/calculations/getClassElementMetadataFromLegacyMetadata.spec.ts","./src/metadata/calculations/getClassElementMetadataFromLegacyMetadata.ts","./src/metadata/calculations/getClassElementMetadataFromNewable.spec.ts","./src/metadata/calculations/getClassElementMetadataFromNewable.ts","./src/metadata/calculations/getClassMetadata.spec.ts","./src/metadata/calculations/getClassMetadata.ts","./src/metadata/calculations/getClassMetadataConstructorArguments.spec.ts","./src/metadata/calculations/getClassMetadataConstructorArguments.ts","./src/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.spec.ts","./src/metadata/calculations/getClassMetadataConstructorArgumentsFromMetadataReader.ts","./src/metadata/calculations/getClassMetadataFromMetadataReader.spec.ts","./src/metadata/calculations/getClassMetadataFromMetadataReader.ts","./src/metadata/calculations/getClassMetadataProperties.spec.ts","./src/metadata/calculations/getClassMetadataProperties.ts","./src/metadata/calculations/getClassMetadataPropertiesFromMetadataReader.spec.ts","./src/metadata/calculations/getClassMetadataPropertiesFromMetadataReader.ts","./src/metadata/calculations/getConstructorArgumentMetadataFromLegacyMetadata.spec.ts","./src/metadata/calculations/getConstructorArgumentMetadataFromLegacyMetadata.ts","./src/metadata/calculations/getDefaultClassMetadata.spec.ts","./src/metadata/calculations/getDefaultClassMetadata.ts","./src/metadata/calculations/getLegacyMetadata.spec.ts","./src/metadata/calculations/getLegacyMetadata.ts","./src/metadata/calculations/getPropertyMetadataFromLegacyMetadata.spec.ts","./src/metadata/calculations/getPropertyMetadataFromLegacyMetadata.ts","./src/metadata/decorators/injectBase.spec.ts","./src/metadata/decorators/injectBase.ts","./src/metadata/models/BaseClassElementMetadata.ts","./src/metadata/models/ClassElementMetadata.ts","./src/metadata/models/ClassElementMetadataKind.ts","./src/metadata/models/ClassMetadata.ts","./src/metadata/models/ClassMetadataLifecycle.ts","./src/metadata/models/LegacyConstructorMetadata.ts","./src/metadata/models/LegacyMetadata.ts","./src/metadata/models/LegacyMetadataMap.ts","./src/metadata/models/LegacyMetadataReader.ts","./src/metadata/models/ManagedClassElementMetadata.ts","./src/metadata/models/MaybeClassElementMetadata.ts","./src/metadata/models/MaybeClassElementMetadataKind.ts","./src/metadata/models/MaybeClassMetadata.ts","./src/metadata/models/MaybeManagedClassElementMetadata.ts","./src/metadata/models/MetadataName.ts","./src/metadata/models/MetadataTag.ts","./src/metadata/models/MetadataTargetName.ts","./src/metadata/models/UnmanagedClassElementMetadata.ts","./src/prototype/calculations/getBaseType.spec.ts","./src/prototype/calculations/getBaseType.ts","./src/prototype/models/Prototype.ts","./src/reflectMetadata/data/classMetadataReflectKey.ts","./src/reflectMetadata/data/keys.ts","./src/string/models/LegacyQueryableString.ts","./src/string/models/LegacyQueryableStringImpl.spec.ts","./src/string/models/LegacyQueryableStringImpl.ts","./src/symbol/calculations/getDescription.spec.ts","./src/symbol/calculations/getDescription.ts"],"version":"5.6.3"}
|