@aws-amplify/graphql-api-construct 1.2.0-amplify-table-preview.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +114 -151
- package/API.md +1 -4
- package/CHANGELOG.md +6 -9
- package/README.md +17 -0
- package/lib/amplify-graphql-api.d.ts +4 -0
- package/lib/amplify-graphql-api.js +23 -6
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/internal/amplify-metadata.js +3 -14
- package/lib/internal/authorization-modes.d.ts +2 -10
- package/lib/internal/authorization-modes.js +4 -4
- package/lib/internal/construct-exports.js +3 -12
- package/lib/internal/construct-tree.d.ts +14 -0
- package/lib/internal/construct-tree.js +28 -0
- package/lib/internal/default-parameters.js +1 -2
- package/lib/types.d.ts +4 -15
- package/lib/types.js +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/API.md +3 -12
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +1 -5
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts +2 -4
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +5 -10
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts +1 -6
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/definitions.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.d.ts +3 -3
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js +12 -8
- package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +10 -11
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +0 -8
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +7 -8
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-index-transformer/API.md +0 -3
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +0 -11
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.js +1 -2
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js +7 -26
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/resolvers/resolvers.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +7 -8
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +0 -8
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +10 -11
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +0 -14
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js +0 -4
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.d.ts +2 -5
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js +60 -46
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/package.json +6 -8
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +0 -4
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +5 -5
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +0 -11
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js +10 -3
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +8 -9
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +0 -8
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -8
- package/node_modules/@aws-amplify/graphql-transformer/API.md +0 -3
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +3 -7
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +0 -3
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +3 -11
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/package.json +14 -15
- package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +2 -15
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +0 -6
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/transform-parameters.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +3 -3
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +0 -6
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transform-parameters.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transform-parameters.ts +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
- package/node_modules/graphql-transformer-common/API.md +0 -3
- package/node_modules/graphql-transformer-common/CHANGELOG.md +0 -6
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +0 -3
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +0 -3
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
- package/node_modules/graphql-transformer-common/package.json +1 -1
- package/package.json +16 -16
- package/src/amplify-graphql-api.ts +30 -5
- package/src/internal/amplify-metadata.ts +1 -13
- package/src/internal/authorization-modes.ts +9 -16
- package/src/internal/construct-exports.ts +2 -12
- package/src/internal/construct-tree.ts +26 -0
- package/src/internal/default-parameters.ts +0 -1
- package/src/types.ts +4 -18
- package/node_modules/@aws-amplify/graphql-auth-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts +0 -15
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js +0 -169
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts +0 -40
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js +0 -242
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts +0 -13
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts.map +0 -1
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js +0 -665
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js.map +0 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +0 -201
- package/node_modules/@aws-amplify/graphql-transformer/LICENSE +0 -201
package/API.md
CHANGED
@@ -71,6 +71,7 @@ export class AmplifyGraphqlApi extends Construct {
|
|
71
71
|
addOpenSearchDataSource(id: string, domain: IDomain_2, options?: DataSourceOptions): OpenSearchDataSource;
|
72
72
|
addRdsDataSource(id: string, serverlessCluster: IServerlessCluster, secretStore: ISecret, databaseName?: string, options?: DataSourceOptions): RdsDataSource;
|
73
73
|
addResolver(id: string, props: ExtendedResolverProps): Resolver;
|
74
|
+
readonly apiId: string;
|
74
75
|
readonly apiKey: string | undefined;
|
75
76
|
readonly generatedFunctionSlots: FunctionSlot[];
|
76
77
|
readonly graphqlUrl: string;
|
@@ -81,7 +82,6 @@ export class AmplifyGraphqlApi extends Construct {
|
|
81
82
|
// @public
|
82
83
|
export interface AmplifyGraphqlApiCfnResources {
|
83
84
|
readonly additionalCfnResources: Record<string, CfnResource>;
|
84
|
-
readonly cfnAmplifyTables: Record<string, CfnResource>;
|
85
85
|
readonly cfnApiKey?: CfnApiKey;
|
86
86
|
readonly cfnDataSources: Record<string, CfnDataSource>;
|
87
87
|
readonly cfnFunctionConfigurations: Record<string, CfnFunctionConfiguration>;
|
@@ -247,7 +247,6 @@ export interface PartialTranslationBehavior {
|
|
247
247
|
readonly secondaryKeyAsGSI?: boolean;
|
248
248
|
readonly shouldDeepMergeDirectiveConfigDefaults?: boolean;
|
249
249
|
readonly suppressApiKeyGeneration?: boolean;
|
250
|
-
readonly useAmplifyManagedTableResources?: boolean;
|
251
250
|
readonly useSubUsernameForDefaultIdentityClaim?: boolean;
|
252
251
|
}
|
253
252
|
|
@@ -267,7 +266,6 @@ export interface SubscriptionFunctionSlot extends FunctionSlotBase {
|
|
267
266
|
export interface TranslationBehavior {
|
268
267
|
readonly disableResolverDeduping: boolean;
|
269
268
|
readonly enableAutoIndexQueryNames: boolean;
|
270
|
-
// (undocumented)
|
271
269
|
readonly enableSearchNodeToNodeEncryption: boolean;
|
272
270
|
readonly enableTransformerCfnOutputs: boolean;
|
273
271
|
readonly populateOwnerFieldForStaticGroupAuth: boolean;
|
@@ -276,7 +274,6 @@ export interface TranslationBehavior {
|
|
276
274
|
readonly secondaryKeyAsGSI: boolean;
|
277
275
|
readonly shouldDeepMergeDirectiveConfigDefaults: boolean;
|
278
276
|
readonly suppressApiKeyGeneration: boolean;
|
279
|
-
readonly useAmplifyManagedTableResources: boolean;
|
280
277
|
readonly useSubUsernameForDefaultIdentityClaim: boolean;
|
281
278
|
}
|
282
279
|
|
package/CHANGELOG.md
CHANGED
@@ -3,19 +3,16 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
-
# [1.2.0
|
6
|
+
# [1.2.0](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.1.5...@aws-amplify/graphql-api-construct@1.2.0) (2023-10-27)
|
7
7
|
|
8
|
-
###
|
8
|
+
### Features
|
9
9
|
|
10
|
-
-
|
10
|
+
- add apiId to AmplifyGraphqlApi construct properties ([#1987](https://github.com/aws-amplify/amplify-category-api/issues/1987)) ([ccc12f6](https://github.com/aws-amplify/amplify-category-api/commit/ccc12f602e5502a082f621717aa47a3443376870))
|
11
|
+
- throw early exception if multiple instances exist in a single stack ([#1990](https://github.com/aws-amplify/amplify-category-api/issues/1990)) ([6dec41b](https://github.com/aws-amplify/amplify-category-api/commit/6dec41b7ad8946631e04e15d1b07aba94ec3fb3f))
|
11
12
|
|
12
|
-
|
13
|
+
## [1.1.5](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.1.4...@aws-amplify/graphql-api-construct@1.1.5) (2023-10-21)
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
- amplify table construct & key schema related transformer changes ([#1903](https://github.com/aws-amplify/amplify-category-api/issues/1903)) ([16cbc64](https://github.com/aws-amplify/amplify-category-api/commit/16cbc64fdfe2bf6e5b725d3c9eafebaeaa613fdc))
|
17
|
-
- **amplify-table:** add non-GSI update in handler ([#1940](https://github.com/aws-amplify/amplify-category-api/issues/1940)) ([26c4c2d](https://github.com/aws-amplify/amplify-category-api/commit/26c4c2d952b193b20a9abffabe0686385dacfb62))
|
18
|
-
- bootstrap for adding amplify managed table ([#1849](https://github.com/aws-amplify/amplify-category-api/issues/1849)) ([d7d6740](https://github.com/aws-amplify/amplify-category-api/commit/d7d6740e7bc5291bc42eaefe208c0a5886b8a718))
|
15
|
+
**Note:** Version bump only for package @aws-amplify/graphql-api-construct
|
19
16
|
|
20
17
|
## [1.1.4](https://github.com/aws-amplify/amplify-category-api/compare/@aws-amplify/graphql-api-construct@1.1.3...@aws-amplify/graphql-api-construct@1.1.4) (2023-10-12)
|
21
18
|
|
package/README.md
CHANGED
@@ -6,6 +6,8 @@ This package vends an L3 CDK Construct wrapping the behavior of the Amplify Grap
|
|
6
6
|
|
7
7
|
The primary way to use this construct is to invoke it with a provided schema (either as an inline graphql string, or as one or more `appsync.SchemaFile`) objects, and with authorization config provided. There are 5 supported methods for authorization of an AppSync API, all of which are supported by this construct. For more information on authorization rule definitions in Amplify, refer to the [authorization docs](https://docs.amplify.aws/cli/graphql/authorization-rules/). Note: currently at least one authorization rule is required, and if multiple are specified, a `defaultAuthorizationMode` must be specified on the api as well. Specified authorization modes must be a superset of those configured in the graphql schema.
|
8
8
|
|
9
|
+
Note: only a single instance of the `AmplifyGraphqlApi` construct can be invoked within a CDK synthesis at this point in time.
|
10
|
+
|
9
11
|
## Examples
|
10
12
|
|
11
13
|
### Simple Todo List With Cognito Userpool-based Owner Authorization
|
@@ -591,6 +593,7 @@ Any object.
|
|
591
593
|
| **Name** | **Type** | **Description** |
|
592
594
|
| --- | --- | --- |
|
593
595
|
| <code><a href="#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
596
|
+
| <code><a href="#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.apiId">apiId</a></code> | <code>string</code> | Generated Api Id. |
|
594
597
|
| <code><a href="#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.generatedFunctionSlots">generatedFunctionSlots</a></code> | <code><a href="#@aws-amplify/graphql-api-construct.MutationFunctionSlot">MutationFunctionSlot</a> \| <a href="#@aws-amplify/graphql-api-construct.QueryFunctionSlot">QueryFunctionSlot</a> \| <a href="#@aws-amplify/graphql-api-construct.SubscriptionFunctionSlot">SubscriptionFunctionSlot</a>[]</code> | Resolvers generated by the transform process, persisted on the side in order to facilitate pulling a manifest for the purposes of inspecting and producing overrides. |
|
595
598
|
| <code><a href="#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.graphqlUrl">graphqlUrl</a></code> | <code>string</code> | Graphql URL For the generated API. |
|
596
599
|
| <code><a href="#@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.realtimeUrl">realtimeUrl</a></code> | <code>string</code> | Realtime URL For the generated API. |
|
@@ -611,6 +614,20 @@ The tree node.
|
|
611
614
|
|
612
615
|
---
|
613
616
|
|
617
|
+
##### `apiId`<sup>Required</sup> <a name="apiId" id="@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.apiId"></a>
|
618
|
+
|
619
|
+
```typescript
|
620
|
+
public readonly apiId: string;
|
621
|
+
```
|
622
|
+
|
623
|
+
- *Type:* string
|
624
|
+
|
625
|
+
Generated Api Id.
|
626
|
+
|
627
|
+
May be a CDK Token.
|
628
|
+
|
629
|
+
---
|
630
|
+
|
614
631
|
##### `generatedFunctionSlots`<sup>Required</sup> <a name="generatedFunctionSlots" id="@aws-amplify/graphql-api-construct.AmplifyGraphqlApi.property.generatedFunctionSlots"></a>
|
615
632
|
|
616
633
|
```typescript
|
@@ -64,6 +64,10 @@ export declare class AmplifyGraphqlApi extends Construct {
|
|
64
64
|
* Generated Api Key if generated. May be a CDK Token.
|
65
65
|
*/
|
66
66
|
readonly apiKey: string | undefined;
|
67
|
+
/**
|
68
|
+
* Generated Api Id. May be a CDK Token.
|
69
|
+
*/
|
70
|
+
readonly apiId: string;
|
67
71
|
/**
|
68
72
|
* Conflict resolution setting
|
69
73
|
*/
|
@@ -12,6 +12,7 @@ const backend_output_schemas_1 = require("@aws-amplify/backend-output-schemas");
|
|
12
12
|
const aws_appsync_1 = require("aws-cdk-lib/aws-appsync");
|
13
13
|
const user_defined_slots_1 = require("./internal/user-defined-slots");
|
14
14
|
const internal_1 = require("./internal");
|
15
|
+
const construct_tree_1 = require("./internal/construct-tree");
|
15
16
|
/**
|
16
17
|
* L3 Construct which invokes the Amplify Transformer Pattern over an input Graphql Schema.
|
17
18
|
*
|
@@ -52,9 +53,10 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
|
|
52
53
|
*/
|
53
54
|
constructor(scope, id, props) {
|
54
55
|
super(scope, id);
|
56
|
+
validateNoOtherAmplifyGraphqlApiInStack(this);
|
55
57
|
const { definition, authorizationModes, conflictResolution, functionSlots, transformerPlugins, predictionsBucket, stackMappings, translationBehavior, functionNameMap, outputStorageStrategy, } = props;
|
56
58
|
(0, internal_1.addAmplifyMetadataToStackDescription)(scope);
|
57
|
-
const { authConfig,
|
59
|
+
const { authConfig, authSynthParameters } = (0, internal_1.convertAuthorizationModesToTransformerAuthConfig)(authorizationModes);
|
58
60
|
(0, user_defined_slots_1.validateFunctionSlots)(functionSlots ?? []);
|
59
61
|
const separatedFunctionSlots = (0, user_defined_slots_1.separateSlots)([...(functionSlots ?? []), ...definition.functionSlots]);
|
60
62
|
// Allow amplifyEnvironmentName to be retrieve from context, and use value 'NONE' if no value can be found.
|
@@ -81,9 +83,6 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
|
|
81
83
|
schema: definition.schema,
|
82
84
|
userDefinedSlots: (0, user_defined_slots_1.parseUserDefinedSlots)(separatedFunctionSlots),
|
83
85
|
transformersFactoryArgs: {
|
84
|
-
authConfig,
|
85
|
-
identityPoolId,
|
86
|
-
adminRoles,
|
87
86
|
customTransformers: transformerPlugins ?? [],
|
88
87
|
...(predictionsBucket ? { storageConfig: { bucketName: predictionsBucket.bucketName } } : {}),
|
89
88
|
functionNameMap,
|
@@ -101,6 +100,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
|
|
101
100
|
this.conflictResolution = conflictResolution;
|
102
101
|
this.generatedFunctionSlots = (0, internal_1.getGeneratedFunctionSlots)(assetManager.resolverAssets);
|
103
102
|
this.storeOutput(outputStorageStrategy);
|
103
|
+
this.apiId = this.resources.cfnResources.cfnGraphqlApi.attrApiId;
|
104
104
|
this.graphqlUrl = this.resources.cfnResources.cfnGraphqlApi.attrGraphQlUrl;
|
105
105
|
this.realtimeUrl = this.resources.cfnResources.cfnGraphqlApi.attrRealtimeUrl;
|
106
106
|
this.apiKey = this.resources.cfnResources.cfnApiKey?.attrApiKey;
|
@@ -242,5 +242,22 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
|
|
242
242
|
}
|
243
243
|
exports.AmplifyGraphqlApi = AmplifyGraphqlApi;
|
244
244
|
_a = JSII_RTTI_SYMBOL_1;
|
245
|
-
AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.2.0
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hbXBsaWZ5LWdyYXBocWwtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDBFQUFvRTtBQUNwRSw2Q0FBaUQ7QUFDakQsNkRBQWtEO0FBRWxELGdGQUFnRztBQUNoRyxnRkFBdUU7QUFFdkUseURBY2lDO0FBUWpDLHNFQUE0RztBQVM1Ryx5Q0FVb0I7QUFFcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQXFDOUM7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFDSixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsR0FDdEIsR0FBRyxLQUFLLENBQUM7UUFFVixJQUFBLCtDQUFvQyxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxHQUNuRSxJQUFBLDJEQUFnRCxFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFdkUsSUFBQSwwQ0FBcUIsRUFBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0MsTUFBTSxzQkFBc0IsR0FBRyxJQUFBLGtDQUFhLEVBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFFdEcsMkdBQTJHO1FBQzNHLDBHQUEwRztRQUMxRyxrRkFBa0Y7UUFD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aUJBQWlCLENBQUMsRUFBVSxFQUFFLE9BQTJCO1FBQzlELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx1QkFBdUIsQ0FBQyxFQUFVLEVBQUUsTUFBeUIsRUFBRSxPQUEyQjtRQUMvRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksZ0JBQWdCLENBQ3JCLEVBQVUsRUFDVixpQkFBcUMsRUFDckMsV0FBb0IsRUFDcEIsWUFBcUIsRUFDckIsT0FBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxXQUFXLENBQUMsRUFBVSxFQUFFLEtBQTRCO1FBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxFQUFVLEVBQUUsS0FBdUI7UUFDcEQsT0FBTyxJQUFJLDZCQUFlLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNuQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVO1lBQzlCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdlJILDhDQXdSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZXhlY3V0ZVRyYW5zZm9ybSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IE5lc3RlZFN0YWNrLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBBc3NldFByb3BzIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdGFja01ldGFkYXRhQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9iYWNrZW5kLW91dHB1dC1zdG9yYWdlJztcbmltcG9ydCB7IGdyYXBocWxPdXRwdXRLZXkgfSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc2NoZW1hcyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBocWxPdXRwdXQsIEF3c0FwcHN5bmNBdXRoZW50aWNhdGlvblR5cGUgfSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc2NoZW1hcyc7XG5pbXBvcnQge1xuICBBcHBzeW5jRnVuY3Rpb24sXG4gIERhdGFTb3VyY2VPcHRpb25zLFxuICBEeW5hbW9EYkRhdGFTb3VyY2UsXG4gIEVsYXN0aWNzZWFyY2hEYXRhU291cmNlLFxuICBFdmVudEJyaWRnZURhdGFTb3VyY2UsXG4gIEV4dGVuZGVkUmVzb2x2ZXJQcm9wcyxcbiAgSHR0cERhdGFTb3VyY2UsXG4gIEh0dHBEYXRhU291cmNlT3B0aW9ucyxcbiAgTGFtYmRhRGF0YVNvdXJjZSxcbiAgTm9uZURhdGFTb3VyY2UsXG4gIE9wZW5TZWFyY2hEYXRhU291cmNlLFxuICBSZHNEYXRhU291cmNlLFxuICBSZXNvbHZlcixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcHN5bmMnO1xuaW1wb3J0IHsgSVRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IElEb21haW4gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY3NlYXJjaCc7XG5pbXBvcnQgeyBJRG9tYWluIGFzIElPcGVuU2VhcmNoRG9tYWluIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW9wZW5zZWFyY2hzZXJ2aWNlJztcbmltcG9ydCB7IElFdmVudEJ1cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBJU2VydmVybGVzc0NsdXN0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcmRzJztcbmltcG9ydCB7IElTZWNyZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0IHsgcGFyc2VVc2VyRGVmaW5lZFNsb3RzLCB2YWxpZGF0ZUZ1bmN0aW9uU2xvdHMsIHNlcGFyYXRlU2xvdHMgfSBmcm9tICcuL2ludGVybmFsL3VzZXItZGVmaW5lZC1zbG90cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzLFxuICBBbXBsaWZ5R3JhcGhxbEFwaVByb3BzLFxuICBGdW5jdGlvblNsb3QsXG4gIElCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5LFxuICBBZGRGdW5jdGlvblByb3BzLFxuICBDb25mbGljdFJlc29sdXRpb24sXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgY29udmVydEF1dGhvcml6YXRpb25Nb2Rlc1RvVHJhbnNmb3JtZXJBdXRoQ29uZmlnLFxuICBjb252ZXJ0VG9SZXNvbHZlckNvbmZpZyxcbiAgZGVmYXVsdFRyYW5zbGF0aW9uQmVoYXZpb3IsXG4gIEFzc2V0TWFuYWdlcixcbiAgZ2V0R2VuZXJhdGVkUmVzb3VyY2VzLFxuICBnZXRHZW5lcmF0ZWRGdW5jdGlvblNsb3RzLFxuICBDb2RlZ2VuQXNzZXRzLFxuICBhZGRBbXBsaWZ5TWV0YWRhdGFUb1N0YWNrRGVzY3JpcHRpb24sXG4gIGdldEFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblR5cGVzLFxufSBmcm9tICcuL2ludGVybmFsJztcblxuLyoqXG4gKiBMMyBDb25zdHJ1Y3Qgd2hpY2ggaW52b2tlcyB0aGUgQW1wbGlmeSBUcmFuc2Zvcm1lciBQYXR0ZXJuIG92ZXIgYW4gaW5wdXQgR3JhcGhxbCBTY2hlbWEuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBxdWlja2x5IGRlZmluZSBhcHBzeW5jIGFwaXMgd2hpY2ggc3VwcG9ydCBmdWxsIENSVUQrTGlzdCBhbmQgU3Vic2NyaXB0aW9ucywgcmVsYXRpb25zaGlwcyxcbiAqIGF1dGgsIHNlYXJjaCBvdmVyIGRhdGEsIHRoZSBhYmlsaXR5IHRvIGluamVjdCBjdXN0b20gYnVzaW5lc3MgbG9naWMgYW5kIHF1ZXJ5L211dGF0aW9uIG9wZXJhdGlvbnMsIGFuZCBjb25uZWN0IHRvIE1MIHNlcnZpY2VzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byB0aGUgZG9jcyBsaW5rcyBiZWxvdzpcbiAqIERhdGEgTW9kZWxpbmcgLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvZGF0YS1tb2RlbGluZy9cbiAqIEF1dGhvcml6YXRpb24gLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvYXV0aG9yaXphdGlvbi1ydWxlcy9cbiAqIEN1c3RvbSBCdXNpbmVzcyBMb2dpYyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9jdXN0b20tYnVzaW5lc3MtbG9naWMvXG4gKiBTZWFyY2ggLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvc2VhcmNoLWFuZC1yZXN1bHQtYWdncmVnYXRpb25zL1xuICogTUwgU2VydmljZXMgLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvY29ubmVjdC10by1tYWNoaW5lLWxlYXJuaW5nLXNlcnZpY2VzL1xuICpcbiAqIEZvciBhIGZ1bGwgcmVmZXJlbmNlIG9mIHRoZSBzdXBwb3J0ZWQgY3VzdG9tIGdyYXBocWwgZGlyZWN0aXZlcyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9kaXJlY3RpdmVzLXJlZmVyZW5jZS9cbiAqXG4gKiBUaGUgb3V0cHV0IG9mIHRoaXMgY29uc3RydWN0IGlzIGEgbWFwcGluZyBvZiBMMiBvciBMMSByZXNvdXJjZXMgZ2VuZXJhdGVkIGJ5IHRoZSB0cmFuc2Zvcm1lciwgd2hpY2ggZ2VuZXJhbGx5IGZvbGxvdyB0aGUgYWNjZXNzIHBhdHRlcm5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgIGNvbnN0IGFwaSA9IG5ldyBBbXBsaWZ5R3JhcGhRbEFwaSh0aGlzLCAnYXBpJywgeyA8cGFyYW1zPiB9KTtcbiAqICAgLy8gQWNjZXNzIEwyIHJlc291cmNlcyB1bmRlciBgLnJlc291cmNlc2BcbiAqICAgYXBpLnJlc291cmNlcy50YWJsZXNbXCJUb2RvXCJdLnRhYmxlQXJuO1xuICpcbiAqICAgLy8gQWNjZXNzIEwxIHJlc291cmNlcyB1bmRlciBgLnJlc291cmNlcy5jZm5SZXNvdXJjZXNgXG4gKiAgIGFwaS5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkueHJheUVuYWJsZWQgPSB0cnVlO1xuICogICBPYmplY3QudmFsdWVzKGFwaS5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmblRhYmxlcykuZm9yRWFjaCh0YWJsZSA9PiB7XG4gKiAgICAgdGFibGUucG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24gPSB7IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiBmYWxzZSB9O1xuICogICB9KTtcbiAqIGBgYFxuICogYHJlc291cmNlcy48UmVzb3VyY2VUeXBlPi48UmVzb3VyY2VOYW1lPmAgLSB5b3UgY2FuIHRoZW4gcGVyZm9ybSBhbnkgQ0RLIGFjdGlvbiBvbiB0aGVzZSByZXN1bHRpbmcgcmVzb3VyZWNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlHcmFwaHFsQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBMMSBhbmQgTDIgQ0RLIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZWQgYXNzZXRzIHJlcXVpcmVkIGZvciBjb2RlZ2VuIHN0ZXBzLiBQZXJzaXN0ZWQgaW4gb3JkZXIgdG8gcmVuZGVyIGFzIHBhcnQgb2YgdGhlIG91dHB1dCBzdHJhdGVneS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29kZWdlbkFzc2V0czogQ29kZWdlbkFzc2V0cztcblxuICAvKipcbiAgICogUmVzb2x2ZXJzIGdlbmVyYXRlZCBieSB0aGUgdHJhbnNmb3JtIHByb2Nlc3MsIHBlcnNpc3RlZCBvbiB0aGUgc2lkZSBpbiBvcmRlciB0byBmYWNpbGl0YXRlIHB1bGxpbmcgYSBtYW5pZmVzdFxuICAgKiBmb3IgdGhlIHB1cnBvc2VzIG9mIGluc3BlY3RpbmcgYW5kIHByb2R1Y2luZyBvdmVycmlkZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJhdGVkRnVuY3Rpb25TbG90czogRnVuY3Rpb25TbG90W107XG5cbiAgLyoqXG4gICAqIEdyYXBocWwgVVJMIEZvciB0aGUgZ2VuZXJhdGVkIEFQSS4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYXBocWxVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogUmVhbHRpbWUgVVJMIEZvciB0aGUgZ2VuZXJhdGVkIEFQSS4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlYWx0aW1lVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBBcGkgS2V5IGlmIGdlbmVyYXRlZC4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBDb25mbGljdCByZXNvbHV0aW9uIHNldHRpbmdcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmxpY3RSZXNvbHV0aW9uOiBDb25mbGljdFJlc29sdXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIE5ldyBBbXBsaWZ5R3JhcGhxbEFwaSBjb25zdHJ1Y3QsIHRoaXMgd2lsbCBjcmVhdGUgYW4gYXBwc3luYyBhcGkgd2l0aCBhdXRob3JpemF0aW9uLCBhIHNjaGVtYSwgYW5kIGFsbCBuZWNlc3NhcnkgcmVzb2x2ZXJzLCBmdW5jdGlvbnMsXG4gICAqIGFuZCBkYXRhc291cmNlcy5cbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB0byBjcmVhdGUgdGhpcyBjb25zdHJ1Y3Qgd2l0aGluLlxuICAgKiBAcGFyYW0gaWQgdGhlIGlkIHRvIHVzZSBmb3IgdGhpcyBhcGkuXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgcHJvcGVydGllcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgZ2VuZXJhdGVkIGFwaS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBbXBsaWZ5R3JhcGhxbEFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGRlZmluaXRpb24sXG4gICAgICBhdXRob3JpemF0aW9uTW9kZXMsXG4gICAgICBjb25mbGljdFJlc29sdXRpb24sXG4gICAgICBmdW5jdGlvblNsb3RzLFxuICAgICAgdHJhbnNmb3JtZXJQbHVnaW5zLFxuICAgICAgcHJlZGljdGlvbnNCdWNrZXQsXG4gICAgICBzdGFja01hcHBpbmdzLFxuICAgICAgdHJhbnNsYXRpb25CZWhhdmlvcixcbiAgICAgIGZ1bmN0aW9uTmFtZU1hcCxcbiAgICAgIG91dHB1dFN0b3JhZ2VTdHJhdGVneSxcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBhZGRBbXBsaWZ5TWV0YWRhdGFUb1N0YWNrRGVzY3JpcHRpb24oc2NvcGUpO1xuXG4gICAgY29uc3QgeyBhdXRoQ29uZmlnLCBpZGVudGl0eVBvb2xJZCwgYWRtaW5Sb2xlcywgYXV0aFN5bnRoUGFyYW1ldGVycyB9ID1cbiAgICAgIGNvbnZlcnRBdXRob3JpemF0aW9uTW9kZXNUb1RyYW5zZm9ybWVyQXV0aENvbmZpZyhhdXRob3JpemF0aW9uTW9kZXMpO1xuXG4gICAgdmFsaWRhdGVGdW5jdGlvblNsb3RzKGZ1bmN0aW9uU2xvdHMgPz8gW10pO1xuICAgIGNvbnN0IHNlcGFyYXRlZEZ1bmN0aW9uU2xvdHMgPSBzZXBhcmF0ZVNsb3RzKFsuLi4oZnVuY3Rpb25TbG90cyA/PyBbXSksIC4uLmRlZmluaXRpb24uZnVuY3Rpb25TbG90c10pO1xuXG4gICAgLy8gQWxsb3cgYW1wbGlmeUVudmlyb25tZW50TmFtZSB0byBiZSByZXRyaWV2ZSBmcm9tIGNvbnRleHQsIGFuZCB1c2UgdmFsdWUgJ05PTkUnIGlmIG5vIHZhbHVlIGNhbiBiZSBmb3VuZC5cbiAgICAvLyBhbXBsaWZ5RW52aXJvbm1lbnROYW1lIGlzIHJlcXVpcmVkIGZvciBsb2dpY2FsIGlkIHN1ZmZpeGluZywgYXMgd2VsbCBhcyBFeHBvcnRzIGZyb20gdGhlIG5lc3RlZCBzdGFja3MuXG4gICAgLy8gQWxsb3cgZXhwb3J0IHNvIGN1c3RvbWVycyBjYW4gcmV1c2UgdGhlIGVudiBpbiB0aGVpciBvd24gcmVmZXJlbmNlcyBkb3duc3RyZWFtLlxuICAgIGNvbnN0IGFtcGxpZnlFbnZpcm9ubWVudE5hbWUgPSB0aGlzLm5vZGUudHJ5R2V0Q29udGV4dCgnYW1wbGlmeUVudmlyb25tZW50TmFtZScpID8/ICdOT05FJztcbiAgICBpZiAoYW1wbGlmeUVudmlyb25tZW50TmFtZS5sZW5ndGggPiA4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG9yIGNkayAtLWNvbnRleHQgZW52IG11c3QgaGF2ZSBhIGxlbmd0aCA8PSA4LCBmb3VuZCAke2FtcGxpZnlFbnZpcm9ubWVudE5hbWV9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXNzZXRNYW5hZ2VyID0gbmV3IEFzc2V0TWFuYWdlcigpO1xuXG4gICAgZXhlY3V0ZVRyYW5zZm9ybSh7XG4gICAgICBzY29wZTogdGhpcyxcbiAgICAgIG5lc3RlZFN0YWNrUHJvdmlkZXI6IHtcbiAgICAgICAgcHJvdmlkZTogKG5lc3RlZFN0YWNrU2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nKSA9PiBuZXcgTmVzdGVkU3RhY2sobmVzdGVkU3RhY2tTY29wZSwgbmFtZSksXG4gICAgICB9LFxuICAgICAgYXNzZXRQcm92aWRlcjoge1xuICAgICAgICBwcm92aWRlOiAoYXNzZXRTY29wZTogQ29uc3RydWN0LCBhc3NldElkOiBzdHJpbmcsIGFzc2V0UHJvcHM6IEFzc2V0UHJvcHMpID0+XG4gICAgICAgICAgbmV3IEFzc2V0KGFzc2V0U2NvcGUsIGFzc2V0SWQsIHsgcGF0aDogYXNzZXRNYW5hZ2VyLmFkZEFzc2V0KGFzc2V0UHJvcHMuZmlsZU5hbWUsIGFzc2V0UHJvcHMuZmlsZUNvbnRlbnQpIH0pLFxuICAgICAgfSxcbiAgICAgIHN5bnRoUGFyYW1ldGVyczoge1xuICAgICAgICBhbXBsaWZ5RW52aXJvbm1lbnROYW1lOiBhbXBsaWZ5RW52aXJvbm1lbnROYW1lLFxuICAgICAgICBhcGlOYW1lOiBwcm9wcy5hcGlOYW1lID8/IGlkLFxuICAgICAgICAuLi5hdXRoU3ludGhQYXJhbWV0ZXJzLFxuICAgICAgfSxcbiAgICAgIHNjaGVtYTogZGVmaW5pdGlvbi5zY2hlbWEsXG4gICAgICB1c2VyRGVmaW5lZFNsb3RzOiBwYXJzZVVzZXJEZWZpbmVkU2xvdHMoc2VwYXJhdGVkRnVuY3Rpb25TbG90cyksXG4gICAgICB0cmFuc2Zvcm1lcnNGYWN0b3J5QXJnczoge1xuICAgICAgICBhdXRoQ29uZmlnLFxuICAgICAgICBpZGVudGl0eVBvb2xJZCxcbiAgICAgICAgYWRtaW5Sb2xlcyxcbiAgICAgICAgY3VzdG9tVHJhbnNmb3JtZXJzOiB0cmFuc2Zvcm1lclBsdWdpbnMgPz8gW10sXG4gICAgICAgIC4uLihwcmVkaWN0aW9uc0J1Y2tldCA/IHsgc3RvcmFnZUNvbmZpZzogeyBidWNrZXROYW1lOiBwcmVkaWN0aW9uc0J1Y2tldC5idWNrZXROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgZnVuY3Rpb25OYW1lTWFwLFxuICAgICAgfSxcbiAgICAgIGF1dGhDb25maWcsXG4gICAgICBzdGFja01hcHBpbmc6IHN0YWNrTWFwcGluZ3MgPz8ge30sXG4gICAgICByZXNvbHZlckNvbmZpZzogY29uZmxpY3RSZXNvbHV0aW9uID8gY29udmVydFRvUmVzb2x2ZXJDb25maWcoY29uZmxpY3RSZXNvbHV0aW9uKSA6IHVuZGVmaW5lZCxcbiAgICAgIHRyYW5zZm9ybVBhcmFtZXRlcnM6IHtcbiAgICAgICAgLi4uZGVmYXVsdFRyYW5zbGF0aW9uQmVoYXZpb3IsXG4gICAgICAgIC4uLih0cmFuc2xhdGlvbkJlaGF2aW9yID8/IHt9KSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvZGVnZW5Bc3NldHMgPSBuZXcgQ29kZWdlbkFzc2V0cyh0aGlzLCAnQW1wbGlmeUNvZGVnZW5Bc3NldHMnLCB7IG1vZGVsU2NoZW1hOiBkZWZpbml0aW9uLnNjaGVtYSB9KTtcblxuICAgIHRoaXMucmVzb3VyY2VzID0gZ2V0R2VuZXJhdGVkUmVzb3VyY2VzKHRoaXMpO1xuICAgIHRoaXMuY29uZmxpY3RSZXNvbHV0aW9uID0gY29uZmxpY3RSZXNvbHV0aW9uO1xuICAgIHRoaXMuZ2VuZXJhdGVkRnVuY3Rpb25TbG90cyA9IGdldEdlbmVyYXRlZEZ1bmN0aW9uU2xvdHMoYXNzZXRNYW5hZ2VyLnJlc29sdmVyQXNzZXRzKTtcbiAgICB0aGlzLnN0b3JlT3V0cHV0KG91dHB1dFN0b3JhZ2VTdHJhdGVneSk7XG5cbiAgICB0aGlzLmdyYXBocWxVcmwgPSB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdHRyR3JhcGhRbFVybDtcbiAgICB0aGlzLnJlYWx0aW1lVXJsID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0clJlYWx0aW1lVXJsO1xuICAgIHRoaXMuYXBpS2V5ID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkFwaUtleT8uYXR0ckFwaUtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgZ3JhcGhxbCBhcGkgb3V0cHV0IHRvIGJlIHVzZWQgZm9yIGNsaWVudCBjb25maWcgZ2VuZXJhdGlvblxuICAgKiBAcGFyYW0gb3V0cHV0U3RvcmFnZVN0cmF0ZWd5IFN0cmF0ZWd5IHRvIHN0b3JlIGNvbnN0cnVjdCBvdXRwdXRzLiBJZiBubyBzdHJhdGVneSBpcyBwcm92aWRlZCBhIGRlZmF1bHQgc3RyYXRlZ3kgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBzdG9yZU91dHB1dChcbiAgICBvdXRwdXRTdG9yYWdlU3RyYXRlZ3k6IElCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5ID0gbmV3IFN0YWNrTWV0YWRhdGFCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5KFN0YWNrLm9mKHRoaXMpKSxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICBjb25zdCBvdXRwdXQ6IEdyYXBocWxPdXRwdXQgPSB7XG4gICAgICB2ZXJzaW9uOiAnMScsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGF3c0FwcHN5bmNBcGlJZDogdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0ckFwaUlkLFxuICAgICAgICBhd3NBcHBzeW5jQXBpRW5kcG9pbnQ6IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF0dHJHcmFwaFFsVXJsLFxuICAgICAgICBhd3NBcHBzeW5jQXV0aGVudGljYXRpb25UeXBlOiB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdXRoZW50aWNhdGlvblR5cGUgYXMgQXdzQXBwc3luY0F1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgYXdzQXBwc3luY1JlZ2lvbjogc3RhY2sucmVnaW9uLFxuICAgICAgICBhbXBsaWZ5QXBpTW9kZWxTY2hlbWFTM1VyaTogdGhpcy5jb2RlZ2VuQXNzZXRzLm1vZGVsU2NoZW1hUzNVcmksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkFwaUtleSkge1xuICAgICAgb3V0cHV0LnBheWxvYWQuYXdzQXBwc3luY0FwaUtleSA9IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5BcGlLZXkuYXR0ckFwaUtleTtcbiAgICB9XG5cbiAgICBjb25zdCBhZGRpdGlvbmFsQXV0aFR5cGVzID0gZ2V0QWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXModGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkpO1xuICAgIGlmIChhZGRpdGlvbmFsQXV0aFR5cGVzKSB7XG4gICAgICBvdXRwdXQucGF5bG9hZC5hd3NBcHBzeW5jQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXMgPSBhZGRpdGlvbmFsQXV0aFR5cGVzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZsaWN0UmVzb2x1dGlvbj8ucHJvamVjdD8uaGFuZGxlclR5cGUpIHtcbiAgICAgIG91dHB1dC5wYXlsb2FkLmF3c0FwcHN5bmNDb25mbGljdFJlc29sdXRpb25Nb2RlID0gdGhpcy5jb25mbGljdFJlc29sdXRpb24/LnByb2plY3Q/LmhhbmRsZXJUeXBlO1xuICAgIH1cblxuICAgIG91dHB1dFN0b3JhZ2VTdHJhdGVneS5hZGRCYWNrZW5kT3V0cHV0RW50cnkoZ3JhcGhxbE91dHB1dEtleSwgb3V0cHV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZm9sbG93aW5nIGFyZSBwcm94eSBtZXRob2RzIHRvIHRoZSBMMiBJR3JhcGhxbEFwaSBpbnRlcmZhY2UsIHRvIGZhY2lsaXRhdGUgZWFzaWVyIHVzZSBvZiB0aGUgTDMgd2l0aG91dCBuZWVkaW5nXG4gICAqIHRvIGFjY2VzcyB0aGUgdW5kZXJseWluZyByZXNvdXJjZXMuXG4gICAqL1xuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgRHluYW1vREIgZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSB0YWJsZSBUaGUgRHluYW1vREIgdGFibGUgYmFja2luZyB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGREeW5hbW9EYkRhdGFTb3VyY2UoaWQ6IHN0cmluZywgdGFibGU6IElUYWJsZSwgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogRHluYW1vRGJEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGREeW5hbW9EYkRhdGFTb3VyY2UoaWQsIHRhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgZWxhc3RpY3NlYXJjaCBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgYWRkT3BlblNlYXJjaERhdGFTb3VyY2VgXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGRvbWFpbiBUaGUgZWxhc3RpY3NlYXJjaCBkb21haW4gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZEVsYXN0aWNzZWFyY2hEYXRhU291cmNlKGlkOiBzdHJpbmcsIGRvbWFpbjogSURvbWFpbiwgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogRWxhc3RpY3NlYXJjaERhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZEVsYXN0aWNzZWFyY2hEYXRhU291cmNlKGlkLCBkb21haW4sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBFdmVudEJyaWRnZSBkYXRhIHNvdXJjZSB0byB0aGlzIGFwaS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGV2ZW50QnVzIFRoZSBFdmVudEJyaWRnZSBFdmVudEJ1cyBvbiB3aGljaCB0byBwdXQgZXZlbnRzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRFdmVudEJyaWRnZURhdGFTb3VyY2UoaWQ6IHN0cmluZywgZXZlbnRCdXM6IElFdmVudEJ1cywgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogRXZlbnRCcmlkZ2VEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRFdmVudEJyaWRnZURhdGFTb3VyY2UoaWQsIGV2ZW50QnVzLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgaHR0cCBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGVuZHBvaW50IFRoZSBodHRwIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRIdHRwRGF0YVNvdXJjZShpZDogc3RyaW5nLCBlbmRwb2ludDogc3RyaW5nLCBvcHRpb25zPzogSHR0cERhdGFTb3VyY2VPcHRpb25zKTogSHR0cERhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZEh0dHBEYXRhU291cmNlKGlkLCBlbmRwb2ludCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IExhbWJkYSBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGxhbWJkYUZ1bmN0aW9uIFRoZSBMYW1iZGEgZnVuY3Rpb24gdG8gY2FsbCB0byBpbnRlcmFjdCB3aXRoIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZExhbWJkYURhdGFTb3VyY2UoaWQ6IHN0cmluZywgbGFtYmRhRnVuY3Rpb246IElGdW5jdGlvbiwgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogTGFtYmRhRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkTGFtYmRhRGF0YVNvdXJjZShpZCwgbGFtYmRhRnVuY3Rpb24sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBkdW1teSBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIFVzZWZ1bCBmb3IgcGlwZWxpbmUgcmVzb2x2ZXJzIGFuZCBmb3IgYmFja2VuZCBjaGFuZ2VzIHRoYXQgZG9uJ3QgcmVxdWlyZSBhIGRhdGEgc291cmNlLlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE5vbmVEYXRhU291cmNlKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyk6IE5vbmVEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGROb25lRGF0YVNvdXJjZShpZCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogZGQgYSBuZXcgT3BlblNlYXJjaCBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGRvbWFpbiBUaGUgT3BlblNlYXJjaCBkb21haW4gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE9wZW5TZWFyY2hEYXRhU291cmNlKGlkOiBzdHJpbmcsIGRvbWFpbjogSU9wZW5TZWFyY2hEb21haW4sIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyk6IE9wZW5TZWFyY2hEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRPcGVuU2VhcmNoRGF0YVNvdXJjZShpZCwgZG9tYWluLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgUmRzIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gc2VydmVybGVzc0NsdXN0ZXIgVGhlIHNlcnZlcmxlc3MgY2x1c3RlciB0byBpbnRlcmFjdCB3aXRoIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBzZWNyZXRTdG9yZSBUaGUgc2VjcmV0IHN0b3JlIHRoYXQgY29udGFpbnMgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmb3IgdGhlIHNlcnZlcmxlc3MgY2x1c3Rlci5cbiAgICogQHBhcmFtIGRhdGFiYXNlTmFtZSBUaGUgb3B0aW9uYWwgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gdXNlIHdpdGhpbiB0aGUgY2x1c3Rlci5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkUmRzRGF0YVNvdXJjZShcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlcnZlcmxlc3NDbHVzdGVyOiBJU2VydmVybGVzc0NsdXN0ZXIsXG4gICAgc2VjcmV0U3RvcmU6IElTZWNyZXQsXG4gICAgZGF0YWJhc2VOYW1lPzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyxcbiAgKTogUmRzRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkUmRzRGF0YVNvdXJjZShpZCwgc2VydmVybGVzc0NsdXN0ZXIsIHNlY3JldFN0b3JlLCBkYXRhYmFzZU5hbWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHJlc29sdmVyIHRvIHRoZSBhcGkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIHJlc29sdmVyJ3MgaWQuXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgcmVzb2x2ZXIgcHJvcGVydGllcy5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCByZXNvbHZlci5cbiAgICovXG4gIHB1YmxpYyBhZGRSZXNvbHZlcihpZDogc3RyaW5nLCBwcm9wczogRXh0ZW5kZWRSZXNvbHZlclByb3BzKTogUmVzb2x2ZXIge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmNyZWF0ZVJlc29sdmVyKGlkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGFwcHN5bmMgZnVuY3Rpb24gdG8gdGhlIGFwaS5cbiAgICogQHBhcmFtIGlkIHRoZSBmdW5jdGlvbidzIGlkLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGFwcHN5bmMgZnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWRkRnVuY3Rpb24oaWQ6IHN0cmluZywgcHJvcHM6IEFkZEZ1bmN0aW9uUHJvcHMpOiBBcHBzeW5jRnVuY3Rpb24ge1xuICAgIHJldHVybiBuZXcgQXBwc3luY0Z1bmN0aW9uKHRoaXMsIGlkLCB7XG4gICAgICBhcGk6IHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGksXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
245
|
+
AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.2.0" };
|
246
|
+
/**
|
247
|
+
* Given the provided scope, walk the node tree, and throw an exception if any other AmplifyGraphqlApi constructs
|
248
|
+
* are found in the stack.
|
249
|
+
* @param scope the scope this construct is created in.
|
250
|
+
*/
|
251
|
+
const validateNoOtherAmplifyGraphqlApiInStack = (scope) => {
|
252
|
+
const rootStack = (0, construct_tree_1.getStackForScope)(scope, true);
|
253
|
+
let wasOtherAmplifyGraphlApiFound = false;
|
254
|
+
(0, construct_tree_1.walkAndProcessNodes)(rootStack, (node) => {
|
255
|
+
if (node instanceof AmplifyGraphqlApi && scope !== node) {
|
256
|
+
wasOtherAmplifyGraphlApiFound = true;
|
257
|
+
}
|
258
|
+
});
|
259
|
+
if (wasOtherAmplifyGraphlApiFound) {
|
260
|
+
throw new Error('Only one AmplifyGraphqlApi is expected in a stack');
|
261
|
+
}
|
262
|
+
};
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hbXBsaWZ5LWdyYXBocWwtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDBFQUFvRTtBQUNwRSw2Q0FBaUQ7QUFDakQsNkRBQWtEO0FBRWxELGdGQUFnRztBQUNoRyxnRkFBdUU7QUFFdkUseURBY2lDO0FBUWpDLHNFQUE0RztBQVM1Ryx5Q0FVb0I7QUFDcEIsOERBQWtGO0FBRWxGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsc0JBQVM7SUEwQzlDOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7UUFDckUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQix1Q0FBdUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QyxNQUFNLEVBQ0osVUFBVSxFQUNWLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YscUJBQXFCLEdBQ3RCLEdBQUcsS0FBSyxDQUFDO1FBRVYsSUFBQSwrQ0FBb0MsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxNQUFNLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsSUFBQSwyREFBZ0QsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpILElBQUEsMENBQXFCLEVBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sc0JBQXNCLEdBQUcsSUFBQSxrQ0FBYSxFQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRXRHLDJHQUEyRztRQUMz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dUMsR0FBRyxDQUFDLEtBQWdCLEVBQVEsRUFBRTtJQUN6RSxNQUFNLFNBQVMsR0FBRyxJQUFBLGlDQUFnQixFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVoRCxJQUFJLDZCQUE2QixHQUFHLEtBQUssQ0FBQztJQUMxQyxJQUFBLG9DQUFtQixFQUFDLFNBQVMsRUFBRSxDQUFDLElBQWUsRUFBRSxFQUFFO1FBQ2pELElBQUksSUFBSSxZQUFZLGlCQUFpQixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDdkQsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLDZCQUE2QixFQUFFO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztLQUN0RTtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZXhlY3V0ZVRyYW5zZm9ybSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IE5lc3RlZFN0YWNrLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBBc3NldFByb3BzIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdGFja01ldGFkYXRhQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9iYWNrZW5kLW91dHB1dC1zdG9yYWdlJztcbmltcG9ydCB7IGdyYXBocWxPdXRwdXRLZXkgfSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc2NoZW1hcyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBocWxPdXRwdXQsIEF3c0FwcHN5bmNBdXRoZW50aWNhdGlvblR5cGUgfSBmcm9tICdAYXdzLWFtcGxpZnkvYmFja2VuZC1vdXRwdXQtc2NoZW1hcyc7XG5pbXBvcnQge1xuICBBcHBzeW5jRnVuY3Rpb24sXG4gIERhdGFTb3VyY2VPcHRpb25zLFxuICBEeW5hbW9EYkRhdGFTb3VyY2UsXG4gIEVsYXN0aWNzZWFyY2hEYXRhU291cmNlLFxuICBFdmVudEJyaWRnZURhdGFTb3VyY2UsXG4gIEV4dGVuZGVkUmVzb2x2ZXJQcm9wcyxcbiAgSHR0cERhdGFTb3VyY2UsXG4gIEh0dHBEYXRhU291cmNlT3B0aW9ucyxcbiAgTGFtYmRhRGF0YVNvdXJjZSxcbiAgTm9uZURhdGFTb3VyY2UsXG4gIE9wZW5TZWFyY2hEYXRhU291cmNlLFxuICBSZHNEYXRhU291cmNlLFxuICBSZXNvbHZlcixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcHN5bmMnO1xuaW1wb3J0IHsgSVRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IElEb21haW4gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY3NlYXJjaCc7XG5pbXBvcnQgeyBJRG9tYWluIGFzIElPcGVuU2VhcmNoRG9tYWluIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW9wZW5zZWFyY2hzZXJ2aWNlJztcbmltcG9ydCB7IElFdmVudEJ1cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBJU2VydmVybGVzc0NsdXN0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcmRzJztcbmltcG9ydCB7IElTZWNyZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0IHsgcGFyc2VVc2VyRGVmaW5lZFNsb3RzLCB2YWxpZGF0ZUZ1bmN0aW9uU2xvdHMsIHNlcGFyYXRlU2xvdHMgfSBmcm9tICcuL2ludGVybmFsL3VzZXItZGVmaW5lZC1zbG90cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzLFxuICBBbXBsaWZ5R3JhcGhxbEFwaVByb3BzLFxuICBGdW5jdGlvblNsb3QsXG4gIElCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5LFxuICBBZGRGdW5jdGlvblByb3BzLFxuICBDb25mbGljdFJlc29sdXRpb24sXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgY29udmVydEF1dGhvcml6YXRpb25Nb2Rlc1RvVHJhbnNmb3JtZXJBdXRoQ29uZmlnLFxuICBjb252ZXJ0VG9SZXNvbHZlckNvbmZpZyxcbiAgZGVmYXVsdFRyYW5zbGF0aW9uQmVoYXZpb3IsXG4gIEFzc2V0TWFuYWdlcixcbiAgZ2V0R2VuZXJhdGVkUmVzb3VyY2VzLFxuICBnZXRHZW5lcmF0ZWRGdW5jdGlvblNsb3RzLFxuICBDb2RlZ2VuQXNzZXRzLFxuICBhZGRBbXBsaWZ5TWV0YWRhdGFUb1N0YWNrRGVzY3JpcHRpb24sXG4gIGdldEFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblR5cGVzLFxufSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IGdldFN0YWNrRm9yU2NvcGUsIHdhbGtBbmRQcm9jZXNzTm9kZXMgfSBmcm9tICcuL2ludGVybmFsL2NvbnN0cnVjdC10cmVlJztcblxuLyoqXG4gKiBMMyBDb25zdHJ1Y3Qgd2hpY2ggaW52b2tlcyB0aGUgQW1wbGlmeSBUcmFuc2Zvcm1lciBQYXR0ZXJuIG92ZXIgYW4gaW5wdXQgR3JhcGhxbCBTY2hlbWEuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBxdWlja2x5IGRlZmluZSBhcHBzeW5jIGFwaXMgd2hpY2ggc3VwcG9ydCBmdWxsIENSVUQrTGlzdCBhbmQgU3Vic2NyaXB0aW9ucywgcmVsYXRpb25zaGlwcyxcbiAqIGF1dGgsIHNlYXJjaCBvdmVyIGRhdGEsIHRoZSBhYmlsaXR5IHRvIGluamVjdCBjdXN0b20gYnVzaW5lc3MgbG9naWMgYW5kIHF1ZXJ5L211dGF0aW9uIG9wZXJhdGlvbnMsIGFuZCBjb25uZWN0IHRvIE1MIHNlcnZpY2VzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byB0aGUgZG9jcyBsaW5rcyBiZWxvdzpcbiAqIERhdGEgTW9kZWxpbmcgLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvZGF0YS1tb2RlbGluZy9cbiAqIEF1dGhvcml6YXRpb24gLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvYXV0aG9yaXphdGlvbi1ydWxlcy9cbiAqIEN1c3RvbSBCdXNpbmVzcyBMb2dpYyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9jdXN0b20tYnVzaW5lc3MtbG9naWMvXG4gKiBTZWFyY2ggLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvc2VhcmNoLWFuZC1yZXN1bHQtYWdncmVnYXRpb25zL1xuICogTUwgU2VydmljZXMgLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvY29ubmVjdC10by1tYWNoaW5lLWxlYXJuaW5nLXNlcnZpY2VzL1xuICpcbiAqIEZvciBhIGZ1bGwgcmVmZXJlbmNlIG9mIHRoZSBzdXBwb3J0ZWQgY3VzdG9tIGdyYXBocWwgZGlyZWN0aXZlcyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9kaXJlY3RpdmVzLXJlZmVyZW5jZS9cbiAqXG4gKiBUaGUgb3V0cHV0IG9mIHRoaXMgY29uc3RydWN0IGlzIGEgbWFwcGluZyBvZiBMMiBvciBMMSByZXNvdXJjZXMgZ2VuZXJhdGVkIGJ5IHRoZSB0cmFuc2Zvcm1lciwgd2hpY2ggZ2VuZXJhbGx5IGZvbGxvdyB0aGUgYWNjZXNzIHBhdHRlcm5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgIGNvbnN0IGFwaSA9IG5ldyBBbXBsaWZ5R3JhcGhRbEFwaSh0aGlzLCAnYXBpJywgeyA8cGFyYW1zPiB9KTtcbiAqICAgLy8gQWNjZXNzIEwyIHJlc291cmNlcyB1bmRlciBgLnJlc291cmNlc2BcbiAqICAgYXBpLnJlc291cmNlcy50YWJsZXNbXCJUb2RvXCJdLnRhYmxlQXJuO1xuICpcbiAqICAgLy8gQWNjZXNzIEwxIHJlc291cmNlcyB1bmRlciBgLnJlc291cmNlcy5jZm5SZXNvdXJjZXNgXG4gKiAgIGFwaS5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkueHJheUVuYWJsZWQgPSB0cnVlO1xuICogICBPYmplY3QudmFsdWVzKGFwaS5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmblRhYmxlcykuZm9yRWFjaCh0YWJsZSA9PiB7XG4gKiAgICAgdGFibGUucG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24gPSB7IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiBmYWxzZSB9O1xuICogICB9KTtcbiAqIGBgYFxuICogYHJlc291cmNlcy48UmVzb3VyY2VUeXBlPi48UmVzb3VyY2VOYW1lPmAgLSB5b3UgY2FuIHRoZW4gcGVyZm9ybSBhbnkgQ0RLIGFjdGlvbiBvbiB0aGVzZSByZXN1bHRpbmcgcmVzb3VyZWNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlHcmFwaHFsQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBMMSBhbmQgTDIgQ0RLIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZWQgYXNzZXRzIHJlcXVpcmVkIGZvciBjb2RlZ2VuIHN0ZXBzLiBQZXJzaXN0ZWQgaW4gb3JkZXIgdG8gcmVuZGVyIGFzIHBhcnQgb2YgdGhlIG91dHB1dCBzdHJhdGVneS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29kZWdlbkFzc2V0czogQ29kZWdlbkFzc2V0cztcblxuICAvKipcbiAgICogUmVzb2x2ZXJzIGdlbmVyYXRlZCBieSB0aGUgdHJhbnNmb3JtIHByb2Nlc3MsIHBlcnNpc3RlZCBvbiB0aGUgc2lkZSBpbiBvcmRlciB0byBmYWNpbGl0YXRlIHB1bGxpbmcgYSBtYW5pZmVzdFxuICAgKiBmb3IgdGhlIHB1cnBvc2VzIG9mIGluc3BlY3RpbmcgYW5kIHByb2R1Y2luZyBvdmVycmlkZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJhdGVkRnVuY3Rpb25TbG90czogRnVuY3Rpb25TbG90W107XG5cbiAgLyoqXG4gICAqIEdyYXBocWwgVVJMIEZvciB0aGUgZ2VuZXJhdGVkIEFQSS4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYXBocWxVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogUmVhbHRpbWUgVVJMIEZvciB0aGUgZ2VuZXJhdGVkIEFQSS4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlYWx0aW1lVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBBcGkgS2V5IGlmIGdlbmVyYXRlZC4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZWQgQXBpIElkLiBNYXkgYmUgYSBDREsgVG9rZW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29uZmxpY3QgcmVzb2x1dGlvbiBzZXR0aW5nXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZsaWN0UmVzb2x1dGlvbjogQ29uZmxpY3RSZXNvbHV0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBOZXcgQW1wbGlmeUdyYXBocWxBcGkgY29uc3RydWN0LCB0aGlzIHdpbGwgY3JlYXRlIGFuIGFwcHN5bmMgYXBpIHdpdGggYXV0aG9yaXphdGlvbiwgYSBzY2hlbWEsIGFuZCBhbGwgbmVjZXNzYXJ5IHJlc29sdmVycywgZnVuY3Rpb25zLFxuICAgKiBhbmQgZGF0YXNvdXJjZXMuXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgdG8gY3JlYXRlIHRoaXMgY29uc3RydWN0IHdpdGhpbi5cbiAgICogQHBhcmFtIGlkIHRoZSBpZCB0byB1c2UgZm9yIHRoaXMgYXBpLlxuICAgKiBAcGFyYW0gcHJvcHMgdGhlIHByb3BlcnRpZXMgdXNlZCB0byBjb25maWd1cmUgdGhlIGdlbmVyYXRlZCBhcGkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQW1wbGlmeUdyYXBocWxBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB2YWxpZGF0ZU5vT3RoZXJBbXBsaWZ5R3JhcGhxbEFwaUluU3RhY2sodGhpcyk7XG5cbiAgICBjb25zdCB7XG4gICAgICBkZWZpbml0aW9uLFxuICAgICAgYXV0aG9yaXphdGlvbk1vZGVzLFxuICAgICAgY29uZmxpY3RSZXNvbHV0aW9uLFxuICAgICAgZnVuY3Rpb25TbG90cyxcbiAgICAgIHRyYW5zZm9ybWVyUGx1Z2lucyxcbiAgICAgIHByZWRpY3Rpb25zQnVja2V0LFxuICAgICAgc3RhY2tNYXBwaW5ncyxcbiAgICAgIHRyYW5zbGF0aW9uQmVoYXZpb3IsXG4gICAgICBmdW5jdGlvbk5hbWVNYXAsXG4gICAgICBvdXRwdXRTdG9yYWdlU3RyYXRlZ3ksXG4gICAgfSA9IHByb3BzO1xuXG4gICAgYWRkQW1wbGlmeU1ldGFkYXRhVG9TdGFja0Rlc2NyaXB0aW9uKHNjb3BlKTtcblxuICAgIGNvbnN0IHsgYXV0aENvbmZpZywgYXV0aFN5bnRoUGFyYW1ldGVycyB9ID0gY29udmVydEF1dGhvcml6YXRpb25Nb2Rlc1RvVHJhbnNmb3JtZXJBdXRoQ29uZmlnKGF1dGhvcml6YXRpb25Nb2Rlcyk7XG5cbiAgICB2YWxpZGF0ZUZ1bmN0aW9uU2xvdHMoZnVuY3Rpb25TbG90cyA/PyBbXSk7XG4gICAgY29uc3Qgc2VwYXJhdGVkRnVuY3Rpb25TbG90cyA9IHNlcGFyYXRlU2xvdHMoWy4uLihmdW5jdGlvblNsb3RzID8/IFtdKSwgLi4uZGVmaW5pdGlvbi5mdW5jdGlvblNsb3RzXSk7XG5cbiAgICAvLyBBbGxvdyBhbXBsaWZ5RW52aXJvbm1lbnROYW1lIHRvIGJlIHJldHJpZXZlIGZyb20gY29udGV4dCwgYW5kIHVzZSB2YWx1ZSAnTk9ORScgaWYgbm8gdmFsdWUgY2FuIGJlIGZvdW5kLlxuICAgIC8vIGFtcGxpZnlFbnZpcm9ubWVudE5hbWUgaXMgcmVxdWlyZWQgZm9yIGxvZ2ljYWwgaWQgc3VmZml4aW5nLCBhcyB3ZWxsIGFzIEV4cG9ydHMgZnJvbSB0aGUgbmVzdGVkIHN0YWNrcy5cbiAgICAvLyBBbGxvdyBleHBvcnQgc28gY3VzdG9tZXJzIGNhbiByZXVzZSB0aGUgZW52IGluIHRoZWlyIG93biByZWZlcmVuY2VzIGRvd25zdHJlYW0uXG4gICAgY29uc3QgYW1wbGlmeUVudmlyb25tZW50TmFtZSA9IHRoaXMubm9kZS50cnlHZXRDb250ZXh0KCdhbXBsaWZ5RW52aXJvbm1lbnROYW1lJykgPz8gJ05PTkUnO1xuICAgIGlmIChhbXBsaWZ5RW52aXJvbm1lbnROYW1lLmxlbmd0aCA+IDgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgb3IgY2RrIC0tY29udGV4dCBlbnYgbXVzdCBoYXZlIGEgbGVuZ3RoIDw9IDgsIGZvdW5kICR7YW1wbGlmeUVudmlyb25tZW50TmFtZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBhc3NldE1hbmFnZXIgPSBuZXcgQXNzZXRNYW5hZ2VyKCk7XG5cbiAgICBleGVjdXRlVHJhbnNmb3JtKHtcbiAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgbmVzdGVkU3RhY2tQcm92aWRlcjoge1xuICAgICAgICBwcm92aWRlOiAobmVzdGVkU3RhY2tTY29wZTogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcpID0+IG5ldyBOZXN0ZWRTdGFjayhuZXN0ZWRTdGFja1Njb3BlLCBuYW1lKSxcbiAgICAgIH0sXG4gICAgICBhc3NldFByb3ZpZGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IChhc3NldFNjb3BlOiBDb25zdHJ1Y3QsIGFzc2V0SWQ6IHN0cmluZywgYXNzZXRQcm9wczogQXNzZXRQcm9wcykgPT5cbiAgICAgICAgICBuZXcgQXNzZXQoYXNzZXRTY29wZSwgYXNzZXRJZCwgeyBwYXRoOiBhc3NldE1hbmFnZXIuYWRkQXNzZXQoYXNzZXRQcm9wcy5maWxlTmFtZSwgYXNzZXRQcm9wcy5maWxlQ29udGVudCkgfSksXG4gICAgICB9LFxuICAgICAgc3ludGhQYXJhbWV0ZXJzOiB7XG4gICAgICAgIGFtcGxpZnlFbnZpcm9ubWVudE5hbWU6IGFtcGxpZnlFbnZpcm9ubWVudE5hbWUsXG4gICAgICAgIGFwaU5hbWU6IHByb3BzLmFwaU5hbWUgPz8gaWQsXG4gICAgICAgIC4uLmF1dGhTeW50aFBhcmFtZXRlcnMsXG4gICAgICB9LFxuICAgICAgc2NoZW1hOiBkZWZpbml0aW9uLnNjaGVtYSxcbiAgICAgIHVzZXJEZWZpbmVkU2xvdHM6IHBhcnNlVXNlckRlZmluZWRTbG90cyhzZXBhcmF0ZWRGdW5jdGlvblNsb3RzKSxcbiAgICAgIHRyYW5zZm9ybWVyc0ZhY3RvcnlBcmdzOiB7XG4gICAgICAgIGN1c3RvbVRyYW5zZm9ybWVyczogdHJhbnNmb3JtZXJQbHVnaW5zID8/IFtdLFxuICAgICAgICAuLi4ocHJlZGljdGlvbnNCdWNrZXQgPyB7IHN0b3JhZ2VDb25maWc6IHsgYnVja2V0TmFtZTogcHJlZGljdGlvbnNCdWNrZXQuYnVja2V0TmFtZSB9IH0gOiB7fSksXG4gICAgICAgIGZ1bmN0aW9uTmFtZU1hcCxcbiAgICAgIH0sXG4gICAgICBhdXRoQ29uZmlnLFxuICAgICAgc3RhY2tNYXBwaW5nOiBzdGFja01hcHBpbmdzID8/IHt9LFxuICAgICAgcmVzb2x2ZXJDb25maWc6IGNvbmZsaWN0UmVzb2x1dGlvbiA/IGNvbnZlcnRUb1Jlc29sdmVyQ29uZmlnKGNvbmZsaWN0UmVzb2x1dGlvbikgOiB1bmRlZmluZWQsXG4gICAgICB0cmFuc2Zvcm1QYXJhbWV0ZXJzOiB7XG4gICAgICAgIC4uLmRlZmF1bHRUcmFuc2xhdGlvbkJlaGF2aW9yLFxuICAgICAgICAuLi4odHJhbnNsYXRpb25CZWhhdmlvciA/PyB7fSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb2RlZ2VuQXNzZXRzID0gbmV3IENvZGVnZW5Bc3NldHModGhpcywgJ0FtcGxpZnlDb2RlZ2VuQXNzZXRzJywgeyBtb2RlbFNjaGVtYTogZGVmaW5pdGlvbi5zY2hlbWEgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlcyA9IGdldEdlbmVyYXRlZFJlc291cmNlcyh0aGlzKTtcbiAgICB0aGlzLmNvbmZsaWN0UmVzb2x1dGlvbiA9IGNvbmZsaWN0UmVzb2x1dGlvbjtcbiAgICB0aGlzLmdlbmVyYXRlZEZ1bmN0aW9uU2xvdHMgPSBnZXRHZW5lcmF0ZWRGdW5jdGlvblNsb3RzKGFzc2V0TWFuYWdlci5yZXNvbHZlckFzc2V0cyk7XG4gICAgdGhpcy5zdG9yZU91dHB1dChvdXRwdXRTdG9yYWdlU3RyYXRlZ3kpO1xuXG4gICAgdGhpcy5hcGlJZCA9IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF0dHJBcGlJZDtcbiAgICB0aGlzLmdyYXBocWxVcmwgPSB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdHRyR3JhcGhRbFVybDtcbiAgICB0aGlzLnJlYWx0aW1lVXJsID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0clJlYWx0aW1lVXJsO1xuICAgIHRoaXMuYXBpS2V5ID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkFwaUtleT8uYXR0ckFwaUtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgZ3JhcGhxbCBhcGkgb3V0cHV0IHRvIGJlIHVzZWQgZm9yIGNsaWVudCBjb25maWcgZ2VuZXJhdGlvblxuICAgKiBAcGFyYW0gb3V0cHV0U3RvcmFnZVN0cmF0ZWd5IFN0cmF0ZWd5IHRvIHN0b3JlIGNvbnN0cnVjdCBvdXRwdXRzLiBJZiBubyBzdHJhdGVneSBpcyBwcm92aWRlZCBhIGRlZmF1bHQgc3RyYXRlZ3kgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBzdG9yZU91dHB1dChcbiAgICBvdXRwdXRTdG9yYWdlU3RyYXRlZ3k6IElCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5ID0gbmV3IFN0YWNrTWV0YWRhdGFCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5KFN0YWNrLm9mKHRoaXMpKSxcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZih0aGlzKTtcbiAgICBjb25zdCBvdXRwdXQ6IEdyYXBocWxPdXRwdXQgPSB7XG4gICAgICB2ZXJzaW9uOiAnMScsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIGF3c0FwcHN5bmNBcGlJZDogdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0ckFwaUlkLFxuICAgICAgICBhd3NBcHBzeW5jQXBpRW5kcG9pbnQ6IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF0dHJHcmFwaFFsVXJsLFxuICAgICAgICBhd3NBcHBzeW5jQXV0aGVudGljYXRpb25UeXBlOiB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdXRoZW50aWNhdGlvblR5cGUgYXMgQXdzQXBwc3luY0F1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICAgICAgYXdzQXBwc3luY1JlZ2lvbjogc3RhY2sucmVnaW9uLFxuICAgICAgICBhbXBsaWZ5QXBpTW9kZWxTY2hlbWFTM1VyaTogdGhpcy5jb2RlZ2VuQXNzZXRzLm1vZGVsU2NoZW1hUzNVcmksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkFwaUtleSkge1xuICAgICAgb3V0cHV0LnBheWxvYWQuYXdzQXBwc3luY0FwaUtleSA9IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5BcGlLZXkuYXR0ckFwaUtleTtcbiAgICB9XG5cbiAgICBjb25zdCBhZGRpdGlvbmFsQXV0aFR5cGVzID0gZ2V0QWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXModGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkpO1xuICAgIGlmIChhZGRpdGlvbmFsQXV0aFR5cGVzKSB7XG4gICAgICBvdXRwdXQucGF5bG9hZC5hd3NBcHBzeW5jQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uVHlwZXMgPSBhZGRpdGlvbmFsQXV0aFR5cGVzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZsaWN0UmVzb2x1dGlvbj8ucHJvamVjdD8uaGFuZGxlclR5cGUpIHtcbiAgICAgIG91dHB1dC5wYXlsb2FkLmF3c0FwcHN5bmNDb25mbGljdFJlc29sdXRpb25Nb2RlID0gdGhpcy5jb25mbGljdFJlc29sdXRpb24/LnByb2plY3Q/LmhhbmRsZXJUeXBlO1xuICAgIH1cblxuICAgIG91dHB1dFN0b3JhZ2VTdHJhdGVneS5hZGRCYWNrZW5kT3V0cHV0RW50cnkoZ3JhcGhxbE91dHB1dEtleSwgb3V0cHV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZm9sbG93aW5nIGFyZSBwcm94eSBtZXRob2RzIHRvIHRoZSBMMiBJR3JhcGhxbEFwaSBpbnRlcmZhY2UsIHRvIGZhY2lsaXRhdGUgZWFzaWVyIHVzZSBvZiB0aGUgTDMgd2l0aG91dCBuZWVkaW5nXG4gICAqIHRvIGFjY2VzcyB0aGUgdW5kZXJseWluZyByZXNvdXJjZXMuXG4gICAqL1xuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgRHluYW1vREIgZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSB0YWJsZSBUaGUgRHluYW1vREIgdGFibGUgYmFja2luZyB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGREeW5hbW9EYkRhdGFTb3VyY2UoaWQ6IHN0cmluZywgdGFibGU6IElUYWJsZSwgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogRHluYW1vRGJEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGREeW5hbW9EYkRhdGFTb3VyY2UoaWQsIHRhYmxlLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgZWxhc3RpY3NlYXJjaCBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgYWRkT3BlblNlYXJjaERhdGFTb3VyY2VgXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGRvbWFpbiBUaGUgZWxhc3RpY3NlYXJjaCBkb21haW4gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZEVsYXN0aWNzZWFyY2hEYXRhU291cmNlKGlkOiBzdHJpbmcsIGRvbWFpbjogSURvbWFpbiwgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogRWxhc3RpY3NlYXJjaERhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZEVsYXN0aWNzZWFyY2hEYXRhU291cmNlKGlkLCBkb21haW4sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBFdmVudEJyaWRnZSBkYXRhIHNvdXJjZSB0byB0aGlzIGFwaS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGV2ZW50QnVzIFRoZSBFdmVudEJyaWRnZSBFdmVudEJ1cyBvbiB3aGljaCB0byBwdXQgZXZlbnRzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRFdmVudEJyaWRnZURhdGFTb3VyY2UoaWQ6IHN0cmluZywgZXZlbnRCdXM6IElFdmVudEJ1cywgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogRXZlbnRCcmlkZ2VEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRFdmVudEJyaWRnZURhdGFTb3VyY2UoaWQsIGV2ZW50QnVzLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgaHR0cCBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGVuZHBvaW50IFRoZSBodHRwIGVuZHBvaW50LlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRIdHRwRGF0YVNvdXJjZShpZDogc3RyaW5nLCBlbmRwb2ludDogc3RyaW5nLCBvcHRpb25zPzogSHR0cERhdGFTb3VyY2VPcHRpb25zKTogSHR0cERhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZEh0dHBEYXRhU291cmNlKGlkLCBlbmRwb2ludCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IExhbWJkYSBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGxhbWJkYUZ1bmN0aW9uIFRoZSBMYW1iZGEgZnVuY3Rpb24gdG8gY2FsbCB0byBpbnRlcmFjdCB3aXRoIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZExhbWJkYURhdGFTb3VyY2UoaWQ6IHN0cmluZywgbGFtYmRhRnVuY3Rpb246IElGdW5jdGlvbiwgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogTGFtYmRhRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkTGFtYmRhRGF0YVNvdXJjZShpZCwgbGFtYmRhRnVuY3Rpb24sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBkdW1teSBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIFVzZWZ1bCBmb3IgcGlwZWxpbmUgcmVzb2x2ZXJzIGFuZCBmb3IgYmFja2VuZCBjaGFuZ2VzIHRoYXQgZG9uJ3QgcmVxdWlyZSBhIGRhdGEgc291cmNlLlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE5vbmVEYXRhU291cmNlKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyk6IE5vbmVEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGROb25lRGF0YVNvdXJjZShpZCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogZGQgYSBuZXcgT3BlblNlYXJjaCBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIGRvbWFpbiBUaGUgT3BlblNlYXJjaCBkb21haW4gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZE9wZW5TZWFyY2hEYXRhU291cmNlKGlkOiBzdHJpbmcsIGRvbWFpbjogSU9wZW5TZWFyY2hEb21haW4sIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyk6IE9wZW5TZWFyY2hEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRPcGVuU2VhcmNoRGF0YVNvdXJjZShpZCwgZG9tYWluLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgUmRzIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gc2VydmVybGVzc0NsdXN0ZXIgVGhlIHNlcnZlcmxlc3MgY2x1c3RlciB0byBpbnRlcmFjdCB3aXRoIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBzZWNyZXRTdG9yZSBUaGUgc2VjcmV0IHN0b3JlIHRoYXQgY29udGFpbnMgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmb3IgdGhlIHNlcnZlcmxlc3MgY2x1c3Rlci5cbiAgICogQHBhcmFtIGRhdGFiYXNlTmFtZSBUaGUgb3B0aW9uYWwgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gdXNlIHdpdGhpbiB0aGUgY2x1c3Rlci5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkUmRzRGF0YVNvdXJjZShcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlcnZlcmxlc3NDbHVzdGVyOiBJU2VydmVybGVzc0NsdXN0ZXIsXG4gICAgc2VjcmV0U3RvcmU6IElTZWNyZXQsXG4gICAgZGF0YWJhc2VOYW1lPzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBEYXRhU291cmNlT3B0aW9ucyxcbiAgKTogUmRzRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkUmRzRGF0YVNvdXJjZShpZCwgc2VydmVybGVzc0NsdXN0ZXIsIHNlY3JldFN0b3JlLCBkYXRhYmFzZU5hbWUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHJlc29sdmVyIHRvIHRoZSBhcGkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIHJlc29sdmVyJ3MgaWQuXG4gICAqIEBwYXJhbSBwcm9wcyB0aGUgcmVzb2x2ZXIgcHJvcGVydGllcy5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCByZXNvbHZlci5cbiAgICovXG4gIHB1YmxpYyBhZGRSZXNvbHZlcihpZDogc3RyaW5nLCBwcm9wczogRXh0ZW5kZWRSZXNvbHZlclByb3BzKTogUmVzb2x2ZXIge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmNyZWF0ZVJlc29sdmVyKGlkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGFwcHN5bmMgZnVuY3Rpb24gdG8gdGhlIGFwaS5cbiAgICogQHBhcmFtIGlkIHRoZSBmdW5jdGlvbidzIGlkLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGFwcHN5bmMgZnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgYWRkRnVuY3Rpb24oaWQ6IHN0cmluZywgcHJvcHM6IEFkZEZ1bmN0aW9uUHJvcHMpOiBBcHBzeW5jRnVuY3Rpb24ge1xuICAgIHJldHVybiBuZXcgQXBwc3luY0Z1bmN0aW9uKHRoaXMsIGlkLCB7XG4gICAgICBhcGk6IHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGksXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEdpdmVuIHRoZSBwcm92aWRlZCBzY29wZSwgd2FsayB0aGUgbm9kZSB0cmVlLCBhbmQgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFueSBvdGhlciBBbXBsaWZ5R3JhcGhxbEFwaSBjb25zdHJ1Y3RzXG4gKiBhcmUgZm91bmQgaW4gdGhlIHN0YWNrLlxuICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB0aGlzIGNvbnN0cnVjdCBpcyBjcmVhdGVkIGluLlxuICovXG5jb25zdCB2YWxpZGF0ZU5vT3RoZXJBbXBsaWZ5R3JhcGhxbEFwaUluU3RhY2sgPSAoc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQgPT4ge1xuICBjb25zdCByb290U3RhY2sgPSBnZXRTdGFja0ZvclNjb3BlKHNjb3BlLCB0cnVlKTtcblxuICBsZXQgd2FzT3RoZXJBbXBsaWZ5R3JhcGhsQXBpRm91bmQgPSBmYWxzZTtcbiAgd2Fsa0FuZFByb2Nlc3NOb2Rlcyhyb290U3RhY2ssIChub2RlOiBDb25zdHJ1Y3QpID0+IHtcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEFtcGxpZnlHcmFwaHFsQXBpICYmIHNjb3BlICE9PSBub2RlKSB7XG4gICAgICB3YXNPdGhlckFtcGxpZnlHcmFwaGxBcGlGb3VuZCA9IHRydWU7XG4gICAgfVxuICB9KTtcblxuICBpZiAod2FzT3RoZXJBbXBsaWZ5R3JhcGhsQXBpRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIEFtcGxpZnlHcmFwaHFsQXBpIGlzIGV4cGVjdGVkIGluIGEgc3RhY2snKTtcbiAgfVxufTtcbiJdfQ==
|
@@ -34,5 +34,5 @@ class AmplifyGraphqlDefinition {
|
|
34
34
|
}
|
35
35
|
exports.AmplifyGraphqlDefinition = AmplifyGraphqlDefinition;
|
36
36
|
_a = JSII_RTTI_SYMBOL_1;
|
37
|
-
AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.2.0
|
37
|
+
AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.2.0" };
|
38
38
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseURBQXFEO0FBR3JEOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBYztRQUM5QixPQUFPO1lBQ0wsTUFBTTtZQUNOLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFtQjtRQUNyQyxPQUFPO1lBQ0wsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksd0JBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDekYsYUFBYSxFQUFFLEVBQUU7U0FDbEIsQ0FBQztJQUNKLENBQUM7O0FBdkJILDREQXdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCB7IFNjaGVtYUZpbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwc3luYyc7XG5pbXBvcnQgeyBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ2xhc3MgZXhwb3NpbmcgdXRpbGl0aWVzIHRvIHByb2R1Y2UgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiBvYmplY3RzIGdpdmVuIHZhcmlvdXMgaW5wdXRzLlxuICovXG5leHBvcnQgY2xhc3MgQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBzY2hlbWEgZGVmaW5pdGlvbiBmcm9tIGEgc3RyaW5nIGlucHV0XG4gICAqIEBwYXJhbSBzY2hlbWEgdGhlIGdyYXBocWwgaW5wdXQgYXMgYSBzdHJpbmdcbiAgICogQHJldHVybnMgYSBmdWxseSBmb3JtZWQgYW1wbGlmeSBncmFwaHFsIGRlZmluaXRpb25cbiAgICovXG4gIHN0YXRpYyBmcm9tU3RyaW5nKHNjaGVtYTogc3RyaW5nKTogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYSxcbiAgICAgIGZ1bmN0aW9uU2xvdHM6IFtdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBvbmUgb3IgbW9yZSBhcHBzeW5jIFNjaGVtYUZpbGUgb2JqZWN0cyBpbnRvIGFuIEFtcGxpZnkgR3JhcGhxbCBTY2hlbWFcbiAgICogQHBhcmFtIGZpbGVQYXRocyBvbmUgb3IgbW9yZSBwYXRocyB0byB0aGUgZ3JhcGhxbCBmaWxlcyB0byBwcm9jZXNzXG4gICAqIEByZXR1cm5zIGEgZnVsbHkgZm9ybWVkIGFtcGxpZnkgZ3JhcGhxbCBkZWZpbml0aW9uXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGVzKC4uLmZpbGVQYXRoczogc3RyaW5nW10pOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiBmaWxlUGF0aHMubWFwKChmaWxlUGF0aCkgPT4gbmV3IFNjaGVtYUZpbGUoeyBmaWxlUGF0aCB9KS5kZWZpbml0aW9uKS5qb2luKG9zLkVPTCksXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
@@ -4,18 +4,7 @@ exports.addAmplifyMetadataToStackDescription = void 0;
|
|
4
4
|
const os = require("os");
|
5
5
|
const fs = require("fs");
|
6
6
|
const path = require("path");
|
7
|
-
|
8
|
-
* Given a scope, search up for the parent stack. This should be the nearest stack object.
|
9
|
-
* @param scope the scope to search up against.
|
10
|
-
* @returns the stack, if one can be found, else throws an error.
|
11
|
-
*/
|
12
|
-
const getStackForScope = (scope) => {
|
13
|
-
const stacksInHierarchy = scope.node.scopes.filter((parentScope) => 'templateOptions' in parentScope);
|
14
|
-
if (stacksInHierarchy.length === 0) {
|
15
|
-
throw new Error('No Stack Found in Construct Scope');
|
16
|
-
}
|
17
|
-
return stacksInHierarchy.reverse()[0];
|
18
|
-
};
|
7
|
+
const construct_tree_1 = require("./construct-tree");
|
19
8
|
/**
|
20
9
|
* Compute the platform string, based on
|
21
10
|
* https://github.com/aws-amplify/amplify-cli/blob/88da2c9fca04d6ce734b078868d02c110db7d6a3/packages/amplify-provider-awscloudformation/src/template-description-utils.ts#L60-L70
|
@@ -60,10 +49,10 @@ const getAttributionMetadata = () => ({
|
|
60
49
|
* @param scope the scope we will use to append metadata
|
61
50
|
*/
|
62
51
|
const addAmplifyMetadataToStackDescription = (scope) => {
|
63
|
-
const stack = getStackForScope(scope);
|
52
|
+
const stack = (0, construct_tree_1.getStackForScope)(scope);
|
64
53
|
if (!stack.templateOptions.description || stack.templateOptions.description === '') {
|
65
54
|
stack.templateOptions.description = JSON.stringify(getAttributionMetadata());
|
66
55
|
}
|
67
56
|
};
|
68
57
|
exports.addAmplifyMetadataToStackDescription = addAmplifyMetadataToStackDescription;
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1tZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hbXBsaWZ5LW1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLHFEQUFvRDtBQUVwRDs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsR0FBVyxFQUFFO0lBQy9CLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ3JCLEtBQUssUUFBUTtZQUNYLE9BQU8sS0FBSyxDQUFDO1FBQ2YsS0FBSyxPQUFPO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxPQUFPLENBQUM7UUFDakI7WUFDRSxPQUFPLE9BQU8sQ0FBQztLQUNsQjtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsR0FBVyxFQUFFO0lBQ3JDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDekUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO0tBQ3RGO0lBQ0QsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbEYsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDO0lBQ25ELElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO0tBQ2pHO0lBQ0QsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxHQUEyQixFQUFFLENBQUMsQ0FBQztJQUM1RCxTQUFTLEVBQUUsV0FBVyxFQUFFO0lBQ3hCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRTtJQUNoQyxTQUFTLEVBQUUsYUFBYTtDQUN6QixDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSSxNQUFNLG9DQUFvQyxHQUFHLENBQUMsS0FBZ0IsRUFBUSxFQUFFO0lBQzdFLE1BQU0sS0FBSyxHQUFHLElBQUEsaUNBQWdCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtRQUNsRixLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztLQUM5RTtBQUNILENBQUMsQ0FBQztBQUxXLFFBQUEsb0NBQW9DLHdDQUsvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGdldFN0YWNrRm9yU2NvcGUgfSBmcm9tICcuL2NvbnN0cnVjdC10cmVlJztcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBwbGF0Zm9ybSBzdHJpbmcsIGJhc2VkIG9uXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYXdzLWFtcGxpZnkvYW1wbGlmeS1jbGkvYmxvYi84OGRhMmM5ZmNhMDRkNmNlNzM0YjA3ODg2OGQwMmMxMTBkYjdkNmEzL3BhY2thZ2VzL2FtcGxpZnktcHJvdmlkZXItYXdzY2xvdWRmb3JtYXRpb24vc3JjL3RlbXBsYXRlLWRlc2NyaXB0aW9uLXV0aWxzLnRzI0w2MC1MNzBcbiAqIEByZXR1cm5zIHRoZSBwbGF0Zm9ybSBzdHJpbmdcbiAqL1xuY29uc3QgZ2V0UGxhdGZvcm0gPSAoKTogc3RyaW5nID0+IHtcbiAgc3dpdGNoIChvcy5wbGF0Zm9ybSgpKSB7XG4gICAgY2FzZSAnZGFyd2luJzpcbiAgICAgIHJldHVybiAnTWFjJztcbiAgICBjYXNlICd3aW4zMic6XG4gICAgICByZXR1cm4gJ1dpbmRvd3MnO1xuICAgIGNhc2UgJ2xpbnV4JzpcbiAgICAgIHJldHVybiAnTGludXgnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ090aGVyJztcbiAgfVxufTtcblxuY29uc3QgZ2V0TGlicmFyeVZlcnNpb24gPSAoKTogc3RyaW5nID0+IHtcbiAgY29uc3QgcGFja2FnZUpzb25QYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3BhY2thZ2UuanNvbicpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMocGFja2FnZUpzb25QYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGxvYWQgZGV0ZXJtaW5lIGxpYnJhcnkgdmVyc2lvbiBmb3IgbWV0YWRhdGEgZ2VuZXJhdGlvbi4nKTtcbiAgfVxuICBjb25zdCBwYWNrYWdlSnNvbkNvbnRlbnRzID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKSk7XG4gIGNvbnN0IGxpYnJhcnlWZXJzaW9uID0gcGFja2FnZUpzb25Db250ZW50cy52ZXJzaW9uO1xuICBpZiAoIWxpYnJhcnlWZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdMaWJyYXJ5IHZlcnNpb24gY291bGQgbm90IGJlIHJlYWQgZnJvbSBwYWNrYWdlIGpzb24gZm9yIG1ldGFkYXRhIGdlbmVyYXRpb24uJyk7XG4gIH1cbiAgcmV0dXJuIGxpYnJhcnlWZXJzaW9uO1xufTtcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBiaS1tZXRhZGF0YSBzdHJpbmcgdG8gZW1iZWQgc29tZXdoZXJlIGluIHRoZSBzdGFja1xuICogQHJldHVybnMgdGhlIG1ldGFkYXRhIHN0cmluZyB0byBjb21wdXRlIGFtcGxpZnkgYXR0cmlidXRpb25cbiAqL1xuY29uc3QgZ2V0QXR0cmlidXRpb25NZXRhZGF0YSA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGNyZWF0ZWRPbjogZ2V0UGxhdGZvcm0oKSxcbiAgY3JlYXRlZEJ5OiAnQW1wbGlmeUNESycsXG4gIGNyZWF0ZWRXaXRoOiBnZXRMaWJyYXJ5VmVyc2lvbigpLFxuICBzdGFja1R5cGU6ICdhcGktQXBwU3luYycsXG59KTtcblxuLyoqXG4gKiBJZiBwb3NzaWJsZSwgYXR0YWNoIHRoZSBzdGFjayBkZXNjcmlwdGlvbiB0byB0aGUgcGFyZW50IHN0YWNrLlxuICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSB3ZSB3aWxsIHVzZSB0byBhcHBlbmQgbWV0YWRhdGFcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZEFtcGxpZnlNZXRhZGF0YVRvU3RhY2tEZXNjcmlwdGlvbiA9IChzY29wZTogQ29uc3RydWN0KTogdm9pZCA9PiB7XG4gIGNvbnN0IHN0YWNrID0gZ2V0U3RhY2tGb3JTY29wZShzY29wZSk7XG4gIGlmICghc3RhY2sudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uIHx8IHN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9PT0gJycpIHtcbiAgICBzdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSBKU09OLnN0cmluZ2lmeShnZXRBdHRyaWJ1dGlvbk1ldGFkYXRhKCkpO1xuICB9XG59O1xuIl19
|
@@ -1,20 +1,12 @@
|
|
1
1
|
import { AppSyncAuthConfiguration, SynthParameters } from '@aws-amplify/graphql-transformer-interfaces';
|
2
|
-
import { AuthorizationModes } from '../types';
|
3
2
|
import { CfnGraphQLApi } from 'aws-cdk-lib/aws-appsync';
|
4
|
-
|
3
|
+
import { AuthorizationModes } from '../types';
|
4
|
+
type AuthSynthParameters = Pick<SynthParameters, 'userPoolId' | 'authenticatedUserRoleName' | 'unauthenticatedUserRoleName' | 'identityPoolId' | 'adminRoles'>;
|
5
5
|
interface AuthConfig {
|
6
6
|
/**
|
7
7
|
* used mainly in the before step to pass the authConfig from the transformer core down to the directive
|
8
8
|
*/
|
9
9
|
authConfig?: AppSyncAuthConfiguration;
|
10
|
-
/**
|
11
|
-
* using the iam provider the resolvers checks will lets the roles in this list pass through the acm
|
12
|
-
*/
|
13
|
-
adminRoles?: Array<string>;
|
14
|
-
/**
|
15
|
-
* when authorizing private/public @auth can also check authenticated/unauthenticated status for a given identityPoolId
|
16
|
-
*/
|
17
|
-
identityPoolId?: string;
|
18
10
|
/**
|
19
11
|
* Params to include the transformer.
|
20
12
|
*/
|
@@ -89,7 +89,7 @@ const convertAuthConfigToAppSyncAuth = (authModes) => {
|
|
89
89
|
*/
|
90
90
|
const getAdditionalAuthenticationTypes = (cfnGraphqlApi) => {
|
91
91
|
if (!(0, lodash_1.isArray)(cfnGraphqlApi.additionalAuthenticationProviders)) {
|
92
|
-
return;
|
92
|
+
return undefined;
|
93
93
|
}
|
94
94
|
return cfnGraphqlApi.additionalAuthenticationProviders
|
95
95
|
.map((additionalAuthenticationProvider) => additionalAuthenticationProvider.authenticationType)
|
@@ -103,8 +103,6 @@ exports.getAdditionalAuthenticationTypes = getAdditionalAuthenticationTypes;
|
|
103
103
|
*/
|
104
104
|
const convertAuthorizationModesToTransformerAuthConfig = (authModes) => ({
|
105
105
|
authConfig: convertAuthConfigToAppSyncAuth(authModes),
|
106
|
-
adminRoles: authModes.adminRoles?.map((role) => role.roleName) ?? [],
|
107
|
-
identityPoolId: authModes.iamConfig?.identityPoolId,
|
108
106
|
authSynthParameters: getSynthParameters(authModes),
|
109
107
|
});
|
110
108
|
exports.convertAuthorizationModesToTransformerAuthConfig = convertAuthorizationModesToTransformerAuthConfig;
|
@@ -114,6 +112,8 @@ exports.convertAuthorizationModesToTransformerAuthConfig = convertAuthorizationM
|
|
114
112
|
* @returns a record of params to be consumed by the transformer.
|
115
113
|
*/
|
116
114
|
const getSynthParameters = (authModes) => ({
|
115
|
+
adminRoles: authModes.adminRoles?.map((role) => role.roleName) ?? [],
|
116
|
+
identityPoolId: authModes.iamConfig?.identityPoolId,
|
117
117
|
...(authModes.userPoolConfig ? { userPoolId: authModes.userPoolConfig.userPool.userPoolId } : {}),
|
118
118
|
...(authModes?.iamConfig
|
119
119
|
? {
|
@@ -122,4 +122,4 @@ const getSynthParameters = (authModes) => ({
|
|
122
122
|
}
|
123
123
|
: {}),
|
124
124
|
});
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi1tb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hdXRob3JpemF0aW9uLW1vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLG1DQUFpQztBQVNqQzs7O0dBR0c7QUFDSCxNQUFNLDZCQUE2QixHQUFHLENBQUMsUUFBaUMsRUFBaUMsRUFBRTtJQUN6RyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDekMsUUFBUSxRQUFRLENBQUMsSUFBSSxFQUFFO1FBQ3JCLEtBQUssU0FBUztZQUNaLE9BQU87Z0JBQ0wsa0JBQWtCO2dCQUNsQixZQUFZLEVBQUU7b0JBQ1osV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO29CQUNqQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtpQkFDaEQ7YUFDRixDQUFDO1FBQ0osS0FBSyxTQUFTO1lBQ1osT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUM7UUFDaEMsS0FBSywyQkFBMkI7WUFDOUIsT0FBTztnQkFDTCxrQkFBa0I7Z0JBQ2xCLGNBQWMsRUFBRTtvQkFDZCxVQUFVLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2lCQUN6QzthQUNGLENBQUM7UUFDSixLQUFLLGdCQUFnQjtZQUNuQixPQUFPO2dCQUNMLGtCQUFrQjtnQkFDbEIsbUJBQW1CLEVBQUU7b0JBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsZ0JBQWdCO29CQUMvQixTQUFTLEVBQUUsUUFBUSxDQUFDLGFBQWE7b0JBQ2pDLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtvQkFDM0IsTUFBTSxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUU7b0JBQ2pELE9BQU8sRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFO2lCQUNsRDthQUNGLENBQUM7UUFDSixLQUFLLFlBQVk7WUFDZixPQUFP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M0YsZ0NBQWdDLENBQUMsa0JBQWtCLENBQ3REO1NBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBWFcsUUFBQSxnQ0FBZ0Msb0NBVzNDO0FBRUY7Ozs7R0FJRztBQUNJLE1BQU0sZ0RBQWdELEdBQUcsQ0FBQyxTQUE2QixFQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLFVBQVUsRUFBRSw4QkFBOEIsQ0FBQyxTQUFTLENBQUM7SUFDckQsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtJQUNwRSxjQUFjLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxjQUFjO0lBQ25ELG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztDQUNuRCxDQUFDLENBQUM7QUFMVSxRQUFBLGdEQUFnRCxvREFLMUQ7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQTZCLEVBQXVCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUztRQUN0QixDQUFDLENBQUM7WUFDRSx5QkFBeUIsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFFBQVE7WUFDN0UsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRO1NBQ2xGO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUNSLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbiwgQXBwU3luY0F1dGhDb25maWd1cmF0aW9uRW50cnksIFN5bnRoUGFyYW1ldGVycyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgQXV0aG9yaXphdGlvbk1vZGVzLFxuICBBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnLFxuICBJQU1BdXRob3JpemF0aW9uQ29uZmlnLFxuICBMYW1iZGFBdXRob3JpemF0aW9uQ29uZmlnLFxuICBPSURDQXV0aG9yaXphdGlvbkNvbmZpZyxcbiAgVXNlclBvb2xBdXRob3JpemF0aW9uQ29uZmlnLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBDZm5HcmFwaFFMQXBpIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcHN5bmMnO1xuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ2xvZGFzaCc7XG5cbnR5cGUgQXV0aG9yaXphdGlvbkNvbmZpZ01vZGUgPVxuICB8IChJQU1BdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnQVdTX0lBTScgfSlcbiAgfCAoVXNlclBvb2xBdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnQU1BWk9OX0NPR05JVE9fVVNFUl9QT09MUycgfSlcbiAgfCAoT0lEQ0F1dGhvcml6YXRpb25Db25maWcgJiB7IHR5cGU6ICdPUEVOSURfQ09OTkVDVCcgfSlcbiAgfCAoQXBpS2V5QXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ0FQSV9LRVknIH0pXG4gIHwgKExhbWJkYUF1dGhvcml6YXRpb25Db25maWcgJiB7IHR5cGU6ICdBV1NfTEFNQkRBJyB9KTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIHNpbmdsZSBhdXRoIG1vZGUgY29uZmlnIGludG8gdGhlIGFtcGxpZnktaW50ZXJuYWwgcmVwcmVzZW50YXRpb24uXG4gKiBAcGFyYW0gYXV0aE1vZGUgdGhlIGF1dGggbW9kZSB0byBjb252ZXJ0IGludG8gdGhlIEFwcHN5bmMgQ0RLIHJlcHJlc2VudGF0aW9uLlxuICovXG5jb25zdCBjb252ZXJ0QXV0aE1vZGVUb0F1dGhQcm92aWRlciA9IChhdXRoTW9kZTogQXV0aG9yaXphdGlvbkNvbmZpZ01vZGUpOiBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb25FbnRyeSA9PiB7XG4gIGNvbnN0IGF1dGhlbnRpY2F0aW9uVHlwZSA9IGF1dGhNb2RlLnR5cGU7XG4gIHN3aXRjaCAoYXV0aE1vZGUudHlwZSkge1xuICAgIGNhc2UgJ0FQSV9LRVknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICBhcGlLZXlDb25maWc6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYXV0aE1vZGUuZGVzY3JpcHRpb24sXG4gICAgICAgICAgYXBpS2V5RXhwaXJhdGlvbkRheXM6IGF1dGhNb2RlLmV4cGlyZXMudG9EYXlzKCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ0FXU19JQU0nOlxuICAgICAgcmV0dXJuIHsgYXV0aGVudGljYXRpb25UeXBlIH07XG4gICAgY2FzZSAnQU1BWk9OX0NPR05JVE9fVVNFUl9QT09MUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGlvblR5cGUsXG4gICAgICAgIHVzZXJQb29sQ29uZmlnOiB7XG4gICAgICAgICAgdXNlclBvb2xJZDogYXV0aE1vZGUudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnT1BFTklEX0NPTk5FQ1QnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICBvcGVuSURDb25uZWN0Q29uZmlnOiB7XG4gICAgICAgICAgbmFtZTogYXV0aE1vZGUub2lkY1Byb3ZpZGVyTmFtZSxcbiAgICAgICAgICBpc3N1ZXJVcmw6IGF1dGhNb2RlLm9pZGNJc3N1ZXJVcmwsXG4gICAgICAgICAgY2xpZW50SWQ6IGF1dGhNb2RlLmNsaWVudElkLFxuICAgICAgICAgIGlhdFRUTDogYXV0aE1vZGUudG9rZW5FeHBpcnlGcm9tSXNzdWUudG9TZWNvbmRzKCksXG4gICAgICAgICAgYXV0aFRUTDogYXV0aE1vZGUudG9rZW5FeHBpcnlGcm9tQXV0aC50b1NlY29uZHMoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnQVdTX0xBTUJEQSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGlvblR5cGUsXG4gICAgICAgIGxhbWJkYUF1dGhvcml6ZXJDb25maWc6IHtcbiAgICAgICAgICBsYW1iZGFGdW5jdGlvbjogYXV0aE1vZGUuZnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIHR0bFNlY29uZHM6IGF1dGhNb2RlLnR0bC50b1NlY29uZHMoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBBdXRoTW9kZSB0eXBlICR7YXV0aGVudGljYXRpb25UeXBlfSBlbmNvdW50ZXJlZC5gKTtcbiAgfVxufTtcblxuLyoqXG4gKiBHaXZlbiBhbiBhcHBzeW5jIGF1dGggY29uZmlndXJhdGlvbiwgY29udmVydCBpbnRvIGFwcHN5bmMgYXV0aCBwcm92aWRlciBzZXR1cC5cbiAqIEBwYXJhbSBhdXRoTW9kZXMgdGhlIGNvbmZpZyB0byB0cmFuc2Zvcm1cbiAqIEByZXR1cm5zIHRoZSBhcHBzeW5jIGNvbmZpZyBvYmplY3QuXG4gKi9cbmNvbnN0IGNvbnZlcnRBdXRoQ29uZmlnVG9BcHBTeW5jQXV0aCA9IChhdXRoTW9kZXM6IEF1dGhvcml6YXRpb25Nb2Rlcyk6IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbiA9PiB7XG4gIC8vIENvbnZlcnQgYXV0aCBtb2RlcyBpbnRvIGFuIGFycmF5IG9mIGFwcHN5bmMgY29uZmlncywgYW5kIGluY2x1ZGUgdGhlIHR5cGUgc28gd2UgY2FuIHVzZSB0aGF0IGZvciBzd2l0Y2hpbmcgYW5kIHBhcnRpdGlvbmluZyBsYXRlci5cbiAgY29uc3QgYXV0aENvbmZpZyA9IFtcbiAgICBhdXRoTW9kZXMuYXBpS2V5Q29uZmlnID8geyB0eXBlOiAnQVBJX0tFWScsIC4uLmF1dGhNb2Rlcy5hcGlLZXlDb25maWcgfSA6IG51bGwsXG4gICAgYXV0aE1vZGVzLmxhbWJkYUNvbmZpZyA/IHsgdHlwZTogJ0FXU19MQU1CREEnLCAuLi5hdXRoTW9kZXMubGFtYmRhQ29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5vaWRjQ29uZmlnID8geyB0eXBlOiAnT1BFTklEX0NPTk5FQ1QnLCAuLi5hdXRoTW9kZXMub2lkY0NvbmZpZyB9IDogbnVsbCxcbiAgICBhdXRoTW9kZXMudXNlclBvb2xDb25maWcgPyB7IHR5cGU6ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJywgLi4uYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5pYW1Db25maWcgPyB7IHR5cGU6ICdBV1NfSUFNJywgLi4uYXV0aE1vZGVzLmlhbUNvbmZpZyB9IDogbnVsbCxcbiAgXS5maWx0ZXIoKG1vZGUpID0+IG1vZGUpIGFzIEF1dGhvcml6YXRpb25Db25maWdNb2RlW107XG4gIGNvbnN0IGF1dGhQcm92aWRlcnMgPSBhdXRoQ29uZmlnLm1hcChjb252ZXJ0QXV0aE1vZGVUb0F1dGhQcm92aWRlcik7XG5cbiAgLy8gVmFsaWRhdGUgaW5wdXRzIG1ha2Ugc2Vuc2UsIG5lZWRzIGF0IGxlYXN0IG9uZSBtb2RlLCBhbmQgYSBkZWZhdWx0IG1vZGUgaXMgcmVxdWlyZWQgaWYgdGhlcmUgYXJlIG11bHRpcGxlIG1vZGVzLlxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBhdXRoIGNvbmZpZyBpcyByZXF1aXJlZCwgYnV0IG5vbmUgd2VyZSBmb3VuZC4nKTtcbiAgfVxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPiAxICYmICFhdXRoTW9kZXMuZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBIGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSBpcyByZXF1aXJlZCBpZiBtdWx0aXBsZSBhdXRob3JpemF0aW9uIG1vZGVzIGFyZSBjb25maWd1cmVkLicpO1xuICB9XG5cbiAgLy8gSW4gdGhlIGNhc2Ugb2YgYSBzaW5nbGUgbW9kZSwgZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlIGlzIG5vdCByZXF1aXJlZCwganVzdCB1c2UgdGhlIHByb3ZpZGVkIHZhbHVlLlxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVmYXVsdEF1dGhlbnRpY2F0aW9uOiBhdXRoUHJvdmlkZXJzWzBdLFxuICAgICAgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRm9yIG11bHRpLWF1dGgsIHBhcnRpdGlvbiBpbnRvIHRoZSBkZWZhdWx0TW9kZSBhbmQgbm9uLWRlZmF1bHQgbW9kZXMuXG4gIHJldHVybiB7XG4gICAgZGVmYXVsdEF1dGhlbnRpY2F0aW9uOiBhdXRoUHJvdmlkZXJzLmZpbHRlcigocHJvdmlkZXIpID0+IHByb3ZpZGVyLmF1dGhlbnRpY2F0aW9uVHlwZSA9PT0gYXV0aE1vZGVzLmRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSlbMF0sXG4gICAgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzOiBhdXRoUHJvdmlkZXJzLmZpbHRlcihcbiAgICAgIChwcm92aWRlcikgPT4gcHJvdmlkZXIuYXV0aGVudGljYXRpb25UeXBlICE9PSBhdXRoTW9kZXMuZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlLFxuICAgICksXG4gIH07XG59O1xuXG50eXBlIEF1dGhTeW50aFBhcmFtZXRlcnMgPSBQaWNrPFN5bnRoUGFyYW1ldGVycywgJ3VzZXJQb29sSWQnIHwgJ2F1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWUnIHwgJ3VuYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZSc+O1xuXG5pbnRlcmZhY2UgQXV0aENvbmZpZyB7XG4gIC8qKlxuICAgKiB1c2VkIG1haW5seSBpbiB0aGUgYmVmb3JlIHN0ZXAgdG8gcGFzcyB0aGUgYXV0aENvbmZpZyBmcm9tIHRoZSB0cmFuc2Zvcm1lciBjb3JlIGRvd24gdG8gdGhlIGRpcmVjdGl2ZVxuICAgKi9cbiAgYXV0aENvbmZpZz86IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogdXNpbmcgdGhlIGlhbSBwcm92aWRlciB0aGUgcmVzb2x2ZXJzIGNoZWNrcyB3aWxsIGxldHMgdGhlIHJvbGVzIGluIHRoaXMgbGlzdCBwYXNzIHRocm91Z2ggdGhlIGFjbVxuICAgKi9cbiAgYWRtaW5Sb2xlcz86IEFycmF5PHN0cmluZz47XG5cbiAgLyoqXG4gICAqIHdoZW4gYXV0aG9yaXppbmcgcHJpdmF0ZS9wdWJsaWMgQGF1dGggY2FuIGFsc28gY2hlY2sgYXV0aGVudGljYXRlZC91bmF1dGhlbnRpY2F0ZWQgc3RhdHVzIGZvciBhIGdpdmVuIGlkZW50aXR5UG9vbElkXG4gICAqL1xuICBpZGVudGl0eVBvb2xJZD86IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1zIHRvIGluY2x1ZGUgdGhlIHRyYW5zZm9ybWVyLlxuICAgKi9cbiAgYXV0aFN5bnRoUGFyYW1ldGVyczogQXV0aFN5bnRoUGFyYW1ldGVycztcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblR5cGVzIGZvciBzdG9yYWdlIGluIENGTiBvdXRwdXRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblR5cGVzID0gKGNmbkdyYXBocWxBcGk6IENmbkdyYXBoUUxBcGkpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoIWlzQXJyYXkoY2ZuR3JhcGhxbEFwaS5hZGRpdGlvbmFsQXV0aGVudGljYXRpb25Qcm92aWRlcnMpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIChjZm5HcmFwaHFsQXBpLmFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVycyBhcyBDZm5HcmFwaFFMQXBpLkFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyUHJvcGVydHlbXSlcbiAgICAubWFwKFxuICAgICAgKGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyOiBDZm5HcmFwaFFMQXBpLkFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyUHJvcGVydHkpID0+XG4gICAgICAgIGFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblByb3ZpZGVyLmF1dGhlbnRpY2F0aW9uVHlwZSxcbiAgICApXG4gICAgLmpvaW4oJywnKTtcbn07XG5cbi8qKlxuICogQ29udmVydCB0aGUgbGlzdCBvZiBhdXRoIG1vZGVzIGludG8gdGhlIG5lY2Vzc2FyeSBmbGFncyBhbmQgcGFyYW1zIChlZmZlY3RpdmVseSBhIHJlZHVjZXIgb24gdGhlIHJ1bGUgbGlzdClcbiAqIEBwYXJhbSBhdXRoTW9kZXMgdGhlIGxpc3Qgb2YgYXV0aCBtb2RlcyBjb25maWd1cmVkIG9uIHRoZSBBUEkuXG4gKiBAcmV0dXJucyB0aGUgQXV0aENvbmZpZyB3aGljaCB0aGUgQXV0aFRyYW5zZm9ybWVyIG5lZWRzIGFzIGlucHV0LlxuICovXG5leHBvcnQgY29uc3QgY29udmVydEF1dGhvcml6YXRpb25Nb2Rlc1RvVHJhbnNmb3JtZXJBdXRoQ29uZmlnID0gKGF1dGhNb2RlczogQXV0aG9yaXphdGlvbk1vZGVzKTogQXV0aENvbmZpZyA9PiAoe1xuICBhdXRoQ29uZmlnOiBjb252ZXJ0QXV0aENvbmZpZ1RvQXBwU3luY0F1dGgoYXV0aE1vZGVzKSxcbiAgYWRtaW5Sb2xlczogYXV0aE1vZGVzLmFkbWluUm9sZXM/Lm1hcCgocm9sZSkgPT4gcm9sZS5yb2xlTmFtZSkgPz8gW10sXG4gIGlkZW50aXR5UG9vbElkOiBhdXRoTW9kZXMuaWFtQ29uZmlnPy5pZGVudGl0eVBvb2xJZCxcbiAgYXV0aFN5bnRoUGFyYW1ldGVyczogZ2V0U3ludGhQYXJhbWV0ZXJzKGF1dGhNb2RlcyksXG59KTtcblxuLyoqXG4gKiBUcmFuc2Zvcm0gdGhlIGF1dGhvcml6YXRpb24gY29uZmlnIGludG8gdGhlIHRyYW5zZm9ybWVyIHN5bnRoIHBhcmFtZXRlcnMgcGVydGFpbmluZyB0byBhdXRoLlxuICogQHBhcmFtIGF1dGhNb2RlcyB0aGUgYXV0aCBtb2RlcyBwcm92aWRlZCB0byB0aGUgY29uc3RydWN0LlxuICogQHJldHVybnMgYSByZWNvcmQgb2YgcGFyYW1zIHRvIGJlIGNvbnN1bWVkIGJ5IHRoZSB0cmFuc2Zvcm1lci5cbiAqL1xuY29uc3QgZ2V0U3ludGhQYXJhbWV0ZXJzID0gKGF1dGhNb2RlczogQXV0aG9yaXphdGlvbk1vZGVzKTogQXV0aFN5bnRoUGFyYW1ldGVycyA9PiAoe1xuICAuLi4oYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnID8geyB1c2VyUG9vbElkOiBhdXRoTW9kZXMudXNlclBvb2xDb25maWcudXNlclBvb2wudXNlclBvb2xJZCB9IDoge30pLFxuICAuLi4oYXV0aE1vZGVzPy5pYW1Db25maWdcbiAgICA/IHtcbiAgICAgICAgYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlhbUNvbmZpZy5hdXRoZW50aWNhdGVkVXNlclJvbGUucm9sZU5hbWUsXG4gICAgICAgIHVuYXV0aGVudGljYXRlZFVzZXJSb2xlTmFtZTogYXV0aE1vZGVzLmlhbUNvbmZpZy51bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZS5yb2xlTmFtZSxcbiAgICAgIH1cbiAgICA6IHt9KSxcbn0pO1xuIl19
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi1tb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcm5hbC9hdXRob3JpemF0aW9uLW1vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1DQUFpQztBQWlCakM7OztHQUdHO0FBQ0gsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFFBQWlDLEVBQWlDLEVBQUU7SUFDekcsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ3pDLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRTtRQUNyQixLQUFLLFNBQVM7WUFDWixPQUFPO2dCQUNMLGtCQUFrQjtnQkFDbEIsWUFBWSxFQUFFO29CQUNaLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztvQkFDakMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7aUJBQ2hEO2FBQ0YsQ0FBQztRQUNKLEtBQUssU0FBUztZQUNaLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBQ2hDLEtBQUssMkJBQTJCO1lBQzlCLE9BQU87Z0JBQ0wsa0JBQWtCO2dCQUNsQixjQUFjLEVBQUU7b0JBQ2QsVUFBVSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVTtpQkFDekM7YUFDRixDQUFDO1FBQ0osS0FBSyxnQkFBZ0I7WUFDbkIsT0FBTztnQkFDTCxrQkFBa0I7Z0JBQ2xCLG1CQUFtQixFQUFFO29CQUNuQixJQUFJLEVBQUUsUUFBUSxDQUFDLGdCQUFnQjtvQkFDL0IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxhQUFhO29CQUNqQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7b0JBQzNCLE1BQU0sRUFBRSxRQUFRLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFO29CQUNqRCxPQUFPLEVBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRTtpQkFDbEQ7YUFDRixDQUFDO1FBQ0osS0FBSyxZQUFZO1lBQ2YsT0FB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QUFFLEVBQUUsQ0FDM0YsZ0NBQWdDLENBQUMsa0JBQWtCLENBQ3REO1NBQ0EsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBWFcsUUFBQSxnQ0FBZ0Msb0NBVzNDO0FBRUY7Ozs7R0FJRztBQUNJLE1BQU0sZ0RBQWdELEdBQUcsQ0FBQyxTQUE2QixFQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLFVBQVUsRUFBRSw4QkFBOEIsQ0FBQyxTQUFTLENBQUM7SUFDckQsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxDQUFDO0NBQ25ELENBQUMsQ0FBQztBQUhVLFFBQUEsZ0RBQWdELG9EQUcxRDtBQUVIOzs7O0dBSUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLENBQUMsU0FBNkIsRUFBdUIsRUFBRSxDQUFDLENBQUM7SUFDbEYsVUFBVSxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtJQUNwRSxjQUFjLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxjQUFjO0lBQ25ELEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pHLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUztRQUN0QixDQUFDLENBQUM7WUFDRSx5QkFBeUIsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFFBQVE7WUFDN0UsMkJBQTJCLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRO1NBQ2xGO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUNSLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbiwgQXBwU3luY0F1dGhDb25maWd1cmF0aW9uRW50cnksIFN5bnRoUGFyYW1ldGVycyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2ZuR3JhcGhRTEFwaSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtcbiAgQXV0aG9yaXphdGlvbk1vZGVzLFxuICBBcGlLZXlBdXRob3JpemF0aW9uQ29uZmlnLFxuICBJQU1BdXRob3JpemF0aW9uQ29uZmlnLFxuICBMYW1iZGFBdXRob3JpemF0aW9uQ29uZmlnLFxuICBPSURDQXV0aG9yaXphdGlvbkNvbmZpZyxcbiAgVXNlclBvb2xBdXRob3JpemF0aW9uQ29uZmlnLFxufSBmcm9tICcuLi90eXBlcyc7XG5cbnR5cGUgQXV0aG9yaXphdGlvbkNvbmZpZ01vZGUgPVxuICB8IChJQU1BdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnQVdTX0lBTScgfSlcbiAgfCAoVXNlclBvb2xBdXRob3JpemF0aW9uQ29uZmlnICYgeyB0eXBlOiAnQU1BWk9OX0NPR05JVE9fVVNFUl9QT09MUycgfSlcbiAgfCAoT0lEQ0F1dGhvcml6YXRpb25Db25maWcgJiB7IHR5cGU6ICdPUEVOSURfQ09OTkVDVCcgfSlcbiAgfCAoQXBpS2V5QXV0aG9yaXphdGlvbkNvbmZpZyAmIHsgdHlwZTogJ0FQSV9LRVknIH0pXG4gIHwgKExhbWJkYUF1dGhvcml6YXRpb25Db25maWcgJiB7IHR5cGU6ICdBV1NfTEFNQkRBJyB9KTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIHNpbmdsZSBhdXRoIG1vZGUgY29uZmlnIGludG8gdGhlIGFtcGxpZnktaW50ZXJuYWwgcmVwcmVzZW50YXRpb24uXG4gKiBAcGFyYW0gYXV0aE1vZGUgdGhlIGF1dGggbW9kZSB0byBjb252ZXJ0IGludG8gdGhlIEFwcHN5bmMgQ0RLIHJlcHJlc2VudGF0aW9uLlxuICovXG5jb25zdCBjb252ZXJ0QXV0aE1vZGVUb0F1dGhQcm92aWRlciA9IChhdXRoTW9kZTogQXV0aG9yaXphdGlvbkNvbmZpZ01vZGUpOiBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb25FbnRyeSA9PiB7XG4gIGNvbnN0IGF1dGhlbnRpY2F0aW9uVHlwZSA9IGF1dGhNb2RlLnR5cGU7XG4gIHN3aXRjaCAoYXV0aE1vZGUudHlwZSkge1xuICAgIGNhc2UgJ0FQSV9LRVknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICBhcGlLZXlDb25maWc6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYXV0aE1vZGUuZGVzY3JpcHRpb24sXG4gICAgICAgICAgYXBpS2V5RXhwaXJhdGlvbkRheXM6IGF1dGhNb2RlLmV4cGlyZXMudG9EYXlzKCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgJ0FXU19JQU0nOlxuICAgICAgcmV0dXJuIHsgYXV0aGVudGljYXRpb25UeXBlIH07XG4gICAgY2FzZSAnQU1BWk9OX0NPR05JVE9fVVNFUl9QT09MUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGlvblR5cGUsXG4gICAgICAgIHVzZXJQb29sQ29uZmlnOiB7XG4gICAgICAgICAgdXNlclBvb2xJZDogYXV0aE1vZGUudXNlclBvb2wudXNlclBvb2xJZCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnT1BFTklEX0NPTk5FQ1QnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICBvcGVuSURDb25uZWN0Q29uZmlnOiB7XG4gICAgICAgICAgbmFtZTogYXV0aE1vZGUub2lkY1Byb3ZpZGVyTmFtZSxcbiAgICAgICAgICBpc3N1ZXJVcmw6IGF1dGhNb2RlLm9pZGNJc3N1ZXJVcmwsXG4gICAgICAgICAgY2xpZW50SWQ6IGF1dGhNb2RlLmNsaWVudElkLFxuICAgICAgICAgIGlhdFRUTDogYXV0aE1vZGUudG9rZW5FeHBpcnlGcm9tSXNzdWUudG9TZWNvbmRzKCksXG4gICAgICAgICAgYXV0aFRUTDogYXV0aE1vZGUudG9rZW5FeHBpcnlGcm9tQXV0aC50b1NlY29uZHMoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSAnQVdTX0xBTUJEQSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGlvblR5cGUsXG4gICAgICAgIGxhbWJkYUF1dGhvcml6ZXJDb25maWc6IHtcbiAgICAgICAgICBsYW1iZGFGdW5jdGlvbjogYXV0aE1vZGUuZnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgICAgIHR0bFNlY29uZHM6IGF1dGhNb2RlLnR0bC50b1NlY29uZHMoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBBdXRoTW9kZSB0eXBlICR7YXV0aGVudGljYXRpb25UeXBlfSBlbmNvdW50ZXJlZC5gKTtcbiAgfVxufTtcblxuLyoqXG4gKiBHaXZlbiBhbiBhcHBzeW5jIGF1dGggY29uZmlndXJhdGlvbiwgY29udmVydCBpbnRvIGFwcHN5bmMgYXV0aCBwcm92aWRlciBzZXR1cC5cbiAqIEBwYXJhbSBhdXRoTW9kZXMgdGhlIGNvbmZpZyB0byB0cmFuc2Zvcm1cbiAqIEByZXR1cm5zIHRoZSBhcHBzeW5jIGNvbmZpZyBvYmplY3QuXG4gKi9cbmNvbnN0IGNvbnZlcnRBdXRoQ29uZmlnVG9BcHBTeW5jQXV0aCA9IChhdXRoTW9kZXM6IEF1dGhvcml6YXRpb25Nb2Rlcyk6IEFwcFN5bmNBdXRoQ29uZmlndXJhdGlvbiA9PiB7XG4gIC8vIENvbnZlcnQgYXV0aCBtb2RlcyBpbnRvIGFuIGFycmF5IG9mIGFwcHN5bmMgY29uZmlncywgYW5kIGluY2x1ZGUgdGhlIHR5cGUgc28gd2UgY2FuIHVzZSB0aGF0IGZvciBzd2l0Y2hpbmcgYW5kIHBhcnRpdGlvbmluZyBsYXRlci5cbiAgY29uc3QgYXV0aENvbmZpZyA9IFtcbiAgICBhdXRoTW9kZXMuYXBpS2V5Q29uZmlnID8geyB0eXBlOiAnQVBJX0tFWScsIC4uLmF1dGhNb2Rlcy5hcGlLZXlDb25maWcgfSA6IG51bGwsXG4gICAgYXV0aE1vZGVzLmxhbWJkYUNvbmZpZyA/IHsgdHlwZTogJ0FXU19MQU1CREEnLCAuLi5hdXRoTW9kZXMubGFtYmRhQ29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5vaWRjQ29uZmlnID8geyB0eXBlOiAnT1BFTklEX0NPTk5FQ1QnLCAuLi5hdXRoTW9kZXMub2lkY0NvbmZpZyB9IDogbnVsbCxcbiAgICBhdXRoTW9kZXMudXNlclBvb2xDb25maWcgPyB7IHR5cGU6ICdBTUFaT05fQ09HTklUT19VU0VSX1BPT0xTJywgLi4uYXV0aE1vZGVzLnVzZXJQb29sQ29uZmlnIH0gOiBudWxsLFxuICAgIGF1dGhNb2Rlcy5pYW1Db25maWcgPyB7IHR5cGU6ICdBV1NfSUFNJywgLi4uYXV0aE1vZGVzLmlhbUNvbmZpZyB9IDogbnVsbCxcbiAgXS5maWx0ZXIoKG1vZGUpID0+IG1vZGUpIGFzIEF1dGhvcml6YXRpb25Db25maWdNb2RlW107XG4gIGNvbnN0IGF1dGhQcm92aWRlcnMgPSBhdXRoQ29uZmlnLm1hcChjb252ZXJ0QXV0aE1vZGVUb0F1dGhQcm92aWRlcik7XG5cbiAgLy8gVmFsaWRhdGUgaW5wdXRzIG1ha2Ugc2Vuc2UsIG5lZWRzIGF0IGxlYXN0IG9uZSBtb2RlLCBhbmQgYSBkZWZhdWx0IG1vZGUgaXMgcmVxdWlyZWQgaWYgdGhlcmUgYXJlIG11bHRpcGxlIG1vZGVzLlxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBhdXRoIGNvbmZpZyBpcyByZXF1aXJlZCwgYnV0IG5vbmUgd2VyZSBmb3VuZC4nKTtcbiAgfVxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPiAxICYmICFhdXRoTW9kZXMuZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBIGRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSBpcyByZXF1aXJlZCBpZiBtdWx0aXBsZSBhdXRob3JpemF0aW9uIG1vZGVzIGFyZSBjb25maWd1cmVkLicpO1xuICB9XG5cbiAgLy8gSW4gdGhlIGNhc2Ugb2YgYSBzaW5nbGUgbW9kZSwgZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlIGlzIG5vdCByZXF1aXJlZCwganVzdCB1c2UgdGhlIHByb3ZpZGVkIHZhbHVlLlxuICBpZiAoYXV0aFByb3ZpZGVycy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVmYXVsdEF1dGhlbnRpY2F0aW9uOiBhdXRoUHJvdmlkZXJzWzBdLFxuICAgICAgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgLy8gRm9yIG11bHRpLWF1dGgsIHBhcnRpdGlvbiBpbnRvIHRoZSBkZWZhdWx0TW9kZSBhbmQgbm9uLWRlZmF1bHQgbW9kZXMuXG4gIHJldHVybiB7XG4gICAgZGVmYXVsdEF1dGhlbnRpY2F0aW9uOiBhdXRoUHJvdmlkZXJzLmZpbHRlcigocHJvdmlkZXIpID0+IHByb3ZpZGVyLmF1dGhlbnRpY2F0aW9uVHlwZSA9PT0gYXV0aE1vZGVzLmRlZmF1bHRBdXRob3JpemF0aW9uTW9kZSlbMF0sXG4gICAgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzOiBhdXRoUHJvdmlkZXJzLmZpbHRlcihcbiAgICAgIChwcm92aWRlcikgPT4gcHJvdmlkZXIuYXV0aGVudGljYXRpb25UeXBlICE9PSBhdXRoTW9kZXMuZGVmYXVsdEF1dGhvcml6YXRpb25Nb2RlLFxuICAgICksXG4gIH07XG59O1xuXG50eXBlIEF1dGhTeW50aFBhcmFtZXRlcnMgPSBQaWNrPFxuICBTeW50aFBhcmFtZXRlcnMsXG4gICd1c2VyUG9vbElkJyB8ICdhdXRoZW50aWNhdGVkVXNlclJvbGVOYW1lJyB8ICd1bmF1dGhlbnRpY2F0ZWRVc2VyUm9sZU5hbWUnIHwgJ2lkZW50aXR5UG9vbElkJyB8ICdhZG1pblJvbGVzJ1xuPjtcblxuaW50ZXJmYWNlIEF1dGhDb25maWcge1xuICAvKipcbiAgICogdXNlZCBtYWlubHkgaW4gdGhlIGJlZm9yZSBzdGVwIHRvIHBhc3MgdGhlIGF1dGhDb25maWcgZnJvbSB0aGUgdHJhbnNmb3JtZXIgY29yZSBkb3duIHRvIHRoZSBkaXJlY3RpdmVcbiAgICovXG4gIGF1dGhDb25maWc/OiBBcHBTeW5jQXV0aENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFBhcmFtcyB0byBpbmNsdWRlIHRoZSB0cmFuc2Zvcm1lci5cbiAgICovXG4gIGF1dGhTeW50aFBhcmFtZXRlcnM6IEF1dGhTeW50aFBhcmFtZXRlcnM7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyBmb3Igc3RvcmFnZSBpbiBDRk4gb3V0cHV0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyA9IChjZm5HcmFwaHFsQXBpOiBDZm5HcmFwaFFMQXBpKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFpc0FycmF5KGNmbkdyYXBocWxBcGkuYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gKGNmbkdyYXBocWxBcGkuYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzIGFzIENmbkdyYXBoUUxBcGkuQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJQcm9wZXJ0eVtdKVxuICAgIC5tYXAoXG4gICAgICAoYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXI6IENmbkdyYXBoUUxBcGkuQWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXJQcm9wZXJ0eSkgPT5cbiAgICAgICAgYWRkaXRpb25hbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIuYXV0aGVudGljYXRpb25UeXBlLFxuICAgIClcbiAgICAuam9pbignLCcpO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBsaXN0IG9mIGF1dGggbW9kZXMgaW50byB0aGUgbmVjZXNzYXJ5IGZsYWdzIGFuZCBwYXJhbXMgKGVmZmVjdGl2ZWx5IGEgcmVkdWNlciBvbiB0aGUgcnVsZSBsaXN0KVxuICogQHBhcmFtIGF1dGhNb2RlcyB0aGUgbGlzdCBvZiBhdXRoIG1vZGVzIGNvbmZpZ3VyZWQgb24gdGhlIEFQSS5cbiAqIEByZXR1cm5zIHRoZSBBdXRoQ29uZmlnIHdoaWNoIHRoZSBBdXRoVHJhbnNmb3JtZXIgbmVlZHMgYXMgaW5wdXQuXG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0QXV0aG9yaXphdGlvbk1vZGVzVG9UcmFuc2Zvcm1lckF1dGhDb25maWcgPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBBdXRoQ29uZmlnID0+ICh7XG4gIGF1dGhDb25maWc6IGNvbnZlcnRBdXRoQ29uZmlnVG9BcHBTeW5jQXV0aChhdXRoTW9kZXMpLFxuICBhdXRoU3ludGhQYXJhbWV0ZXJzOiBnZXRTeW50aFBhcmFtZXRlcnMoYXV0aE1vZGVzKSxcbn0pO1xuXG4vKipcbiAqIFRyYW5zZm9ybSB0aGUgYXV0aG9yaXphdGlvbiBjb25maWcgaW50byB0aGUgdHJhbnNmb3JtZXIgc3ludGggcGFyYW1ldGVycyBwZXJ0YWluaW5nIHRvIGF1dGguXG4gKiBAcGFyYW0gYXV0aE1vZGVzIHRoZSBhdXRoIG1vZGVzIHByb3ZpZGVkIHRvIHRoZSBjb25zdHJ1Y3QuXG4gKiBAcmV0dXJucyBhIHJlY29yZCBvZiBwYXJhbXMgdG8gYmUgY29uc3VtZWQgYnkgdGhlIHRyYW5zZm9ybWVyLlxuICovXG5jb25zdCBnZXRTeW50aFBhcmFtZXRlcnMgPSAoYXV0aE1vZGVzOiBBdXRob3JpemF0aW9uTW9kZXMpOiBBdXRoU3ludGhQYXJhbWV0ZXJzID0+ICh7XG4gIGFkbWluUm9sZXM6IGF1dGhNb2Rlcy5hZG1pblJvbGVzPy5tYXAoKHJvbGUpID0+IHJvbGUucm9sZU5hbWUpID8/IFtdLFxuICBpZGVudGl0eVBvb2xJZDogYXV0aE1vZGVzLmlhbUNvbmZpZz8uaWRlbnRpdHlQb29sSWQsXG4gIC4uLihhdXRoTW9kZXMudXNlclBvb2xDb25maWcgPyB7IHVzZXJQb29sSWQ6IGF1dGhNb2Rlcy51c2VyUG9vbENvbmZpZy51c2VyUG9vbC51c2VyUG9vbElkIH0gOiB7fSksXG4gIC4uLihhdXRoTW9kZXM/LmlhbUNvbmZpZ1xuICAgID8ge1xuICAgICAgICBhdXRoZW50aWNhdGVkVXNlclJvbGVOYW1lOiBhdXRoTW9kZXMuaWFtQ29uZmlnLmF1dGhlbnRpY2F0ZWRVc2VyUm9sZS5yb2xlTmFtZSxcbiAgICAgICAgdW5hdXRoZW50aWNhdGVkVXNlclJvbGVOYW1lOiBhdXRoTW9kZXMuaWFtQ29uZmlnLnVuYXV0aGVudGljYXRlZFVzZXJSb2xlLnJvbGVOYW1lLFxuICAgICAgfVxuICAgIDoge30pLFxufSk7XG4iXX0=
|
@@ -7,6 +7,7 @@ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
7
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
8
8
|
const graphql_transformer_core_1 = require("@aws-amplify/graphql-transformer-core");
|
9
9
|
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
10
|
+
const construct_tree_1 = require("./construct-tree");
|
10
11
|
/**
|
11
12
|
* Everything below here is intended to help us gather the
|
12
13
|
* output values and render out the L1 resources for access.
|
@@ -25,7 +26,6 @@ const getGeneratedResources = (scope) => {
|
|
25
26
|
const cfnDataSources = {};
|
26
27
|
const tables = {};
|
27
28
|
const cfnTables = {};
|
28
|
-
const cfnAmplifyTables = {};
|
29
29
|
const roles = {};
|
30
30
|
const cfnRoles = {};
|
31
31
|
const functions = {};
|
@@ -68,10 +68,6 @@ const getGeneratedResources = (scope) => {
|
|
68
68
|
cfnTables[resourceName] = currentScope;
|
69
69
|
return;
|
70
70
|
}
|
71
|
-
if (currentScope instanceof aws_cdk_lib_1.CfnResource && currentScope.cfnResourceType === 'Custom::AmplifyDynamoDBTable') {
|
72
|
-
cfnAmplifyTables[resourceName] = currentScope;
|
73
|
-
return;
|
74
|
-
}
|
75
71
|
if (currentScope instanceof aws_iam_1.Role) {
|
76
72
|
roles[resourceName] = currentScope;
|
77
73
|
return;
|
@@ -93,11 +89,7 @@ const getGeneratedResources = (scope) => {
|
|
93
89
|
return;
|
94
90
|
}
|
95
91
|
};
|
96
|
-
|
97
|
-
classifyConstruct(currentScope);
|
98
|
-
currentScope.node.children.forEach(walkAndClassifyConstructTree);
|
99
|
-
};
|
100
|
-
scope.node.children.forEach(walkAndClassifyConstructTree);
|
92
|
+
scope.node.children.forEach((child) => (0, construct_tree_1.walkAndProcessNodes)(child, classifyConstruct));
|
101
93
|
if (!cfnGraphqlApi) {
|
102
94
|
throw new Error('Expected to find AWS::AppSync::GraphQLApi in the generated resource scope.');
|
103
95
|
}
|
@@ -119,7 +111,6 @@ const getGeneratedResources = (scope) => {
|
|
119
111
|
cfnFunctionConfigurations,
|
120
112
|
cfnDataSources,
|
121
113
|
cfnTables,
|
122
|
-
cfnAmplifyTables,
|
123
114
|
cfnRoles,
|
124
115
|
cfnFunctions,
|
125
116
|
additionalCfnResources,
|
@@ -149,4 +140,4 @@ const getGeneratedFunctionSlots = (generatedResolvers) => Object.entries(generat
|
|
149
140
|
};
|
150
141
|
});
|
151
142
|
exports.getGeneratedFunctionSlots = getGeneratedFunctionSlots;
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29uc3RydWN0LWV4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBUWlDO0FBQ2pDLDJEQUEyRDtBQUMzRCxpREFBb0Q7QUFDcEQsNkNBQXVEO0FBQ3ZELG9GQUF3RTtBQUN4RSx1REFBaUY7QUFHakY7Ozs7Ozs7O0dBUUc7QUFDSSxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBZ0IsRUFBOEIsRUFBRTtJQUNwRixJQUFJLGFBQXdDLENBQUM7SUFDN0MsSUFBSSxnQkFBOEMsQ0FBQztJQUNuRCxJQUFJLFNBQWdDLENBQUM7SUFDckMsTUFBTSxZQUFZLEdBQWdDLEVBQUUsQ0FBQztJQUNyRCxNQUFNLHlCQUF5QixHQUE2QyxFQUFFLENBQUM7SUFDL0UsTUFBTSxjQUFjLEdBQWtDLEVBQUUsQ0FBQztJQUN6RCxNQUFNLE1BQU0sR0FBMEIsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sU0FBUyxHQUE2QixFQUFFLENBQUM7SUFDL0MsTUFBTSxnQkFBZ0IsR0FBZ0MsRUFBRSxDQUFDO0lBQ3pELE1BQU0sS0FBSyxHQUF5QixFQUFFLENBQUM7SUFDdkMsTUFBTSxRQUFRLEdBQTRCLEVBQUUsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBbUMsRUFBRSxDQUFDO0lBQ3JELE1BQU0sWUFBWSxHQUFnQyxFQUFFLENBQUM7SUFDckQsTUFBTSxzQkFBc0IsR0FBZ0MsRUFBRSxDQUFDO0lBRS9ELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxZQUF1QixFQUFRLEVBQUU7UUFDMUQsSUFBSSxZQUFZLFlBQVksMkJBQWEsRUFBRTtZQUN6QyxhQUFhLEdBQUcsWUFBWSxDQUFDO1lBQzdCLE9BQU87U0FDUjtRQUNELElBQUksWUFBWSxZQUFZLDhCQUFnQixFQUFFO1lBQzVDLGdCQUFnQixHQUFHLFlBQVksQ0FBQztZQUNoQyxPQUFPO1NBQ1I7UUFD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QUFDLFlBQVksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM3RTtLQUNjLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFoQk0sUUFBQSx5QkFBeUIsNkJBZ0IvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgQ2ZuR3JhcGhRTEFwaSxcbiAgQ2ZuR3JhcGhRTFNjaGVtYSxcbiAgQ2ZuQXBpS2V5LFxuICBDZm5SZXNvbHZlcixcbiAgQ2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uLFxuICBDZm5EYXRhU291cmNlLFxuICBHcmFwaHFsQXBpLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwc3luYyc7XG5pbXBvcnQgeyBDZm5UYWJsZSwgVGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgQ2ZuUm9sZSwgUm9sZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuUmVzb3VyY2UsIE5lc3RlZFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VOYW1lIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2dyYXBocWwtdHJhbnNmb3JtZXItY29yZSc7XG5pbXBvcnQgeyBDZm5GdW5jdGlvbiwgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzLCBGdW5jdGlvblNsb3QgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogRXZlcnl0aGluZyBiZWxvdyBoZXJlIGlzIGludGVuZGVkIHRvIGhlbHAgdXMgZ2F0aGVyIHRoZVxuICogb3V0cHV0IHZhbHVlcyBhbmQgcmVuZGVyIG91dCB0aGUgTDEgcmVzb3VyY2VzIGZvciBhY2Nlc3MuXG4gKlxuICogVGhpcyBpcyBkb25lIGJ5IHJlY3Vyc2luZyBhbG9uZyB0aGUgY29uc3RydWN0IHRyZWUsIGFuZCBjbGFzc2lmeWluZyB0aGUgZ2VuZXJhdGVkIHJlc291cmNlcy5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgcm9vdCB0byBzZWFyY2ggZm9yIGdlbmVyYXRlZCByZXNvdXJjZSBhZ2FpbnN0XG4gKiBAcmV0dXJucyBhIG1hcHBpbmcgb2YgTDEgYW5kIEwyIGNvbnN0cnVjdHMgZ2VuZXJhdGVkIGJ5IHRoZSBHcmFwaHFsIFRyYW5zZm9ybWVyLlxuICovXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdGVkUmVzb3VyY2VzID0gKHNjb3BlOiBDb25zdHJ1Y3QpOiBBbXBsaWZ5R3JhcGhxbEFwaVJlc291cmNlcyA9PiB7XG4gIGxldCBjZm5HcmFwaHFsQXBpOiBDZm5HcmFwaFFMQXBpIHwgdW5kZWZpbmVkO1xuICBsZXQgY2ZuR3JhcGhxbFNjaGVtYTogQ2ZuR3JhcGhRTFNjaGVtYSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNmbkFwaUtleTogQ2ZuQXBpS2V5IHwgdW5kZWZpbmVkO1xuICBjb25zdCBjZm5SZXNvbHZlcnM6IFJlY29yZDxzdHJpbmcsIENmblJlc29sdmVyPiA9IHt9O1xuICBjb25zdCBjZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24+ID0ge307XG4gIGNvbnN0IGNmbkRhdGFTb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBDZm5EYXRhU291cmNlPiA9IHt9O1xuICBjb25zdCB0YWJsZXM6IFJlY29yZDxzdHJpbmcsIFRhYmxlPiA9IHt9O1xuICBjb25zdCBjZm5UYWJsZXM6IFJlY29yZDxzdHJpbmcsIENmblRhYmxlPiA9IHt9O1xuICBjb25zdCBjZm5BbXBsaWZ5VGFibGVzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvdXJjZT4gPSB7fTtcbiAgY29uc3Qgcm9sZXM6IFJlY29yZDxzdHJpbmcsIFJvbGU+ID0ge307XG4gIGNvbnN0IGNmblJvbGVzOiBSZWNvcmQ8c3RyaW5nLCBDZm5Sb2xlPiA9IHt9O1xuICBjb25zdCBmdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIExhbWJkYUZ1bmN0aW9uPiA9IHt9O1xuICBjb25zdCBjZm5GdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIENmbkZ1bmN0aW9uPiA9IHt9O1xuICBjb25zdCBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvdXJjZT4gPSB7fTtcblxuICBjb25zdCBjbGFzc2lmeUNvbnN0cnVjdCA9IChjdXJyZW50U2NvcGU6IENvbnN0cnVjdCk6IHZvaWQgPT4ge1xuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5HcmFwaFFMQXBpKSB7XG4gICAgICBjZm5HcmFwaHFsQXBpID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuR3JhcGhRTFNjaGVtYSkge1xuICAgICAgY2ZuR3JhcGhxbFNjaGVtYSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkFwaUtleSkge1xuICAgICAgY2ZuQXBpS2V5ID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHJlZmVyZW5jZSBuYW1lIGZvciBpbmRleGVkIHJlc291cmNlcywgYW5kIGJhaWwgaWYgbm9uZSBpcyBmb3VuZC5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSBnZXRSZXNvdXJjZU5hbWUoY3VycmVudFNjb3BlKTtcbiAgICBpZiAoIXJlc291cmNlTmFtZSkgcmV0dXJuO1xuXG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkRhdGFTb3VyY2UpIHtcbiAgICAgIGNmbkRhdGFTb3VyY2VzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5SZXNvbHZlcikge1xuICAgICAgY2ZuUmVzb2x2ZXJzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIGNmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbnNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIFRhYmxlKSB7XG4gICAgICB0YWJsZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblRhYmxlKSB7XG4gICAgICBjZm5UYWJsZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblJlc291cmNlICYmIGN1cnJlbnRTY29wZS5jZm5SZXNvdXJjZVR5cGUgPT09ICdDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlJykge1xuICAgICAgY2ZuQW1wbGlmeVRhYmxlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgUm9sZSkge1xuICAgICAgcm9sZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblJvbGUpIHtcbiAgICAgIGNmblJvbGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBMYW1iZGFGdW5jdGlvbikge1xuICAgICAgZnVuY3Rpb25zW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5GdW5jdGlvbikge1xuICAgICAgY2ZuRnVuY3Rpb25zW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5SZXNvdXJjZSkge1xuICAgICAgYWRkaXRpb25hbENmblJlc291cmNlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB3YWxrQW5kQ2xhc3NpZnlDb25zdHJ1Y3RUcmVlID0gKGN1cnJlbnRTY29wZTogQ29uc3RydWN0KTogdm9pZCA9PiB7XG4gICAgY2xhc3NpZnlDb25zdHJ1Y3QoY3VycmVudFNjb3BlKTtcbiAgICBjdXJyZW50U2NvcGUubm9kZS5jaGlsZHJlbi5mb3JFYWNoKHdhbGtBbmRDbGFzc2lmeUNvbnN0cnVjdFRyZWUpO1xuICB9O1xuXG4gIHNjb3BlLm5vZGUuY2hpbGRyZW4uZm9yRWFjaCh3YWxrQW5kQ2xhc3NpZnlDb25zdHJ1Y3RUcmVlKTtcblxuICBpZiAoIWNmbkdyYXBocWxBcGkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgQVdTOjpBcHBTeW5jOjpHcmFwaFFMQXBpIGluIHRoZSBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NvcGUuJyk7XG4gIH1cblxuICBpZiAoIWNmbkdyYXBocWxTY2hlbWEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgQVdTOjpBcHBTeW5jOjpHcmFwaFFMU2NoZW1hIGluIHRoZSBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NvcGUuJyk7XG4gIH1cblxuICBjb25zdCBuZXN0ZWRTdGFja3M6IFJlY29yZDxzdHJpbmcsIE5lc3RlZFN0YWNrPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBzY29wZS5ub2RlLmNoaWxkcmVuLmZpbHRlcihOZXN0ZWRTdGFjay5pc05lc3RlZFN0YWNrKS5tYXAoKG5lc3RlZFN0YWNrOiBOZXN0ZWRTdGFjaykgPT4gW25lc3RlZFN0YWNrLm5vZGUuaWQsIG5lc3RlZFN0YWNrXSksXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBncmFwaHFsQXBpOiBHcmFwaHFsQXBpLmZyb21HcmFwaHFsQXBpQXR0cmlidXRlcyhzY29wZSwgJ0wyR3JhcGhxbEFwaScsIHsgZ3JhcGhxbEFwaUlkOiBjZm5HcmFwaHFsQXBpLmF0dHJBcGlJZCB9KSxcbiAgICB0YWJsZXMsXG4gICAgcm9sZXMsXG4gICAgZnVuY3Rpb25zLFxuICAgIG5lc3RlZFN0YWNrcyxcbiAgICBjZm5SZXNvdXJjZXM6IHtcbiAgICAgIGNmbkdyYXBocWxBcGksXG4gICAgICBjZm5HcmFwaHFsU2NoZW1hLFxuICAgICAgY2ZuQXBpS2V5LFxuICAgICAgY2ZuUmVzb2x2ZXJzLFxuICAgICAgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9ucyxcbiAgICAgIGNmbkRhdGFTb3VyY2VzLFxuICAgICAgY2ZuVGFibGVzLFxuICAgICAgY2ZuQW1wbGlmeVRhYmxlcyxcbiAgICAgIGNmblJvbGVzLFxuICAgICAgY2ZuRnVuY3Rpb25zLFxuICAgICAgYWRkaXRpb25hbENmblJlc291cmNlcyxcbiAgICB9LFxuICB9O1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIGZ1bmN0aW9uIHNsb3RzIGdlbmVyYXRlZCBieSB0aGUgR3JhcGhxbCB0cmFuc2Zvcm0gb3BlcmF0aW9uLCBhZGhlcmluZyB0byB0aGUgRnVuY3Rpb25TbG90IGludGVyZmFjZS5cbiAqIEBwYXJhbSBnZW5lcmF0ZWRSZXNvbHZlcnMgdGhlIHJlc29sdmVycyBnZW5lcmF0ZWQgYnkgdGhlIHRyYW5zZm9ybWVyIHRvIHNwaXQgYmFjayBvdXQuXG4gKiBAcmV0dXJucyB0aGUgbGlzdCBvZiBnZW5lcmF0ZWQgZnVuY3Rpb24gc2xvdHMgaW4gdGhlIHRyYW5zZm9ybWVyLCBpbiBvcmRlciB0byBmYWNpbGl0YXRlIG92ZXJyaWRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEdlbmVyYXRlZEZ1bmN0aW9uU2xvdHMgPSAoZ2VuZXJhdGVkUmVzb2x2ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogRnVuY3Rpb25TbG90W10gPT5cbiAgT2JqZWN0LmVudHJpZXMoZ2VuZXJhdGVkUmVzb2x2ZXJzKVxuICAgIC5maWx0ZXIoKFtuYW1lXSkgPT4gbmFtZS5zcGxpdCgnLicpLmxlbmd0aCA9PT0gNilcbiAgICAubWFwKChbbmFtZSwgcmVzb2x2ZXJDb2RlXSkgPT4ge1xuICAgICAgY29uc3QgW3R5cGVOYW1lLCBmaWVsZE5hbWUsIHNsb3ROYW1lLCBzbG90SW5kZXgsIHRlbXBsYXRlVHlwZV0gPSBuYW1lLnNwbGl0KCcuJyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlTmFtZSxcbiAgICAgICAgZmllbGROYW1lLFxuICAgICAgICBzbG90TmFtZSxcbiAgICAgICAgc2xvdEluZGV4OiBOdW1iZXIucGFyc2VJbnQoc2xvdEluZGV4LCAxMCksXG4gICAgICAgIGZ1bmN0aW9uOiB7XG4gICAgICAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgY29uc29saWRhdGUgcmVxL3JlcSB2YWx1ZXMgYmFjayB0b2dldGhlclxuICAgICAgICAgIC4uLih0ZW1wbGF0ZVR5cGUgPT09ICdyZXEnID8geyByZXF1ZXN0TWFwcGluZ1RlbXBsYXRlOiByZXNvbHZlckNvZGUgfSA6IHt9KSxcbiAgICAgICAgICAuLi4odGVtcGxhdGVUeXBlID09PSAncmVzJyA/IHsgcmVzcG9uc2VNYXBwaW5nVGVtcGxhdGU6IHJlc29sdmVyQ29kZSB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgfSBhcyBGdW5jdGlvblNsb3Q7XG4gICAgfSk7XG4iXX0=
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LWV4cG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvY29uc3RydWN0LWV4cG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBUWlDO0FBQ2pDLDJEQUEyRDtBQUMzRCxpREFBb0Q7QUFDcEQsNkNBQXVEO0FBQ3ZELG9GQUF3RTtBQUN4RSx1REFBaUY7QUFFakYscURBQXVEO0FBRXZEOzs7Ozs7OztHQVFHO0FBQ0ksTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWdCLEVBQThCLEVBQUU7SUFDcEYsSUFBSSxhQUF3QyxDQUFDO0lBQzdDLElBQUksZ0JBQThDLENBQUM7SUFDbkQsSUFBSSxTQUFnQyxDQUFDO0lBQ3JDLE1BQU0sWUFBWSxHQUFnQyxFQUFFLENBQUM7SUFDckQsTUFBTSx5QkFBeUIsR0FBNkMsRUFBRSxDQUFDO0lBQy9FLE1BQU0sY0FBYyxHQUFrQyxFQUFFLENBQUM7SUFDekQsTUFBTSxNQUFNLEdBQTBCLEVBQUUsQ0FBQztJQUN6QyxNQUFNLFNBQVMsR0FBNkIsRUFBRSxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUF5QixFQUFFLENBQUM7SUFDdkMsTUFBTSxRQUFRLEdBQTRCLEVBQUUsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBbUMsRUFBRSxDQUFDO0lBQ3JELE1BQU0sWUFBWSxHQUFnQyxFQUFFLENBQUM7SUFDckQsTUFBTSxzQkFBc0IsR0FBZ0MsRUFBRSxDQUFDO0lBRS9ELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxZQUF1QixFQUFRLEVBQUU7UUFDMUQsSUFBSSxZQUFZLFlBQVksMkJBQWEsRUFBRTtZQUN6QyxhQUFhLEdBQUcsWUFBWSxDQUFDO1lBQzdCLE9BQU87U0FDUjtRQUNELElBQUksWUFBWSxZQUFZLDhCQUFnQixFQUFFO1lBQzVDLGdCQUFnQixHQUFHLFlBQVksQ0FBQztZQUNoQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLFlBQVksWUFBWSx1QkFB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RixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBNUdXLFFBQUEscUJBQXFCLHlCQTRHaEM7QUFFRjs7OztHQUlHO0FBQ0ksTUFBTSx5QkFBeUIsR0FBRyxDQUFDLGtCQUEwQyxFQUFrQixFQUFFLENBQ3RHLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7S0FDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0tBQ2hELEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUU7SUFDNUIsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pGLE9BQU87UUFDTCxRQUFRO1FBQ1IsU0FBUztRQUNULFFBQVE7UUFDUixTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLFFBQVEsRUFBRTtZQUNSLDZEQUE2RDtZQUM3RCxHQUFHLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNFLEdBQUcsQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDN0U7S0FDYyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBaEJNLFFBQUEseUJBQXlCLDZCQWdCL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7XG4gIENmbkdyYXBoUUxBcGksXG4gIENmbkdyYXBoUUxTY2hlbWEsXG4gIENmbkFwaUtleSxcbiAgQ2ZuUmVzb2x2ZXIsXG4gIENmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbixcbiAgQ2ZuRGF0YVNvdXJjZSxcbiAgR3JhcGhxbEFwaSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwcHN5bmMnO1xuaW1wb3J0IHsgQ2ZuVGFibGUsIFRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IENmblJvbGUsIFJvbGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmblJlc291cmNlLCBOZXN0ZWRTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IGdldFJlc291cmNlTmFtZSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWNvcmUnO1xuaW1wb3J0IHsgQ2ZuRnVuY3Rpb24sIEZ1bmN0aW9uIGFzIExhbWJkYUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBBbXBsaWZ5R3JhcGhxbEFwaVJlc291cmNlcywgRnVuY3Rpb25TbG90IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgd2Fsa0FuZFByb2Nlc3NOb2RlcyB9IGZyb20gJy4vY29uc3RydWN0LXRyZWUnO1xuXG4vKipcbiAqIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBpbnRlbmRlZCB0byBoZWxwIHVzIGdhdGhlciB0aGVcbiAqIG91dHB1dCB2YWx1ZXMgYW5kIHJlbmRlciBvdXQgdGhlIEwxIHJlc291cmNlcyBmb3IgYWNjZXNzLlxuICpcbiAqIFRoaXMgaXMgZG9uZSBieSByZWN1cnNpbmcgYWxvbmcgdGhlIGNvbnN0cnVjdCB0cmVlLCBhbmQgY2xhc3NpZnlpbmcgdGhlIGdlbmVyYXRlZCByZXNvdXJjZXMuXG4gKlxuICogQHBhcmFtIHNjb3BlIHJvb3QgdG8gc2VhcmNoIGZvciBnZW5lcmF0ZWQgcmVzb3VyY2UgYWdhaW5zdFxuICogQHJldHVybnMgYSBtYXBwaW5nIG9mIEwxIGFuZCBMMiBjb25zdHJ1Y3RzIGdlbmVyYXRlZCBieSB0aGUgR3JhcGhxbCBUcmFuc2Zvcm1lci5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEdlbmVyYXRlZFJlc291cmNlcyA9IChzY29wZTogQ29uc3RydWN0KTogQW1wbGlmeUdyYXBocWxBcGlSZXNvdXJjZXMgPT4ge1xuICBsZXQgY2ZuR3JhcGhxbEFwaTogQ2ZuR3JhcGhRTEFwaSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNmbkdyYXBocWxTY2hlbWE6IENmbkdyYXBoUUxTY2hlbWEgfCB1bmRlZmluZWQ7XG4gIGxldCBjZm5BcGlLZXk6IENmbkFwaUtleSB8IHVuZGVmaW5lZDtcbiAgY29uc3QgY2ZuUmVzb2x2ZXJzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvbHZlcj4gPSB7fTtcbiAgY29uc3QgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uczogUmVjb3JkPHN0cmluZywgQ2ZuRnVuY3Rpb25Db25maWd1cmF0aW9uPiA9IHt9O1xuICBjb25zdCBjZm5EYXRhU291cmNlczogUmVjb3JkPHN0cmluZywgQ2ZuRGF0YVNvdXJjZT4gPSB7fTtcbiAgY29uc3QgdGFibGVzOiBSZWNvcmQ8c3RyaW5nLCBUYWJsZT4gPSB7fTtcbiAgY29uc3QgY2ZuVGFibGVzOiBSZWNvcmQ8c3RyaW5nLCBDZm5UYWJsZT4gPSB7fTtcbiAgY29uc3Qgcm9sZXM6IFJlY29yZDxzdHJpbmcsIFJvbGU+ID0ge307XG4gIGNvbnN0IGNmblJvbGVzOiBSZWNvcmQ8c3RyaW5nLCBDZm5Sb2xlPiA9IHt9O1xuICBjb25zdCBmdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIExhbWJkYUZ1bmN0aW9uPiA9IHt9O1xuICBjb25zdCBjZm5GdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIENmbkZ1bmN0aW9uPiA9IHt9O1xuICBjb25zdCBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzOiBSZWNvcmQ8c3RyaW5nLCBDZm5SZXNvdXJjZT4gPSB7fTtcblxuICBjb25zdCBjbGFzc2lmeUNvbnN0cnVjdCA9IChjdXJyZW50U2NvcGU6IENvbnN0cnVjdCk6IHZvaWQgPT4ge1xuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5HcmFwaFFMQXBpKSB7XG4gICAgICBjZm5HcmFwaHFsQXBpID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuR3JhcGhRTFNjaGVtYSkge1xuICAgICAgY2ZuR3JhcGhxbFNjaGVtYSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkFwaUtleSkge1xuICAgICAgY2ZuQXBpS2V5ID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIHJlZmVyZW5jZSBuYW1lIGZvciBpbmRleGVkIHJlc291cmNlcywgYW5kIGJhaWwgaWYgbm9uZSBpcyBmb3VuZC5cbiAgICBjb25zdCByZXNvdXJjZU5hbWUgPSBnZXRSZXNvdXJjZU5hbWUoY3VycmVudFNjb3BlKTtcbiAgICBpZiAoIXJlc291cmNlTmFtZSkgcmV0dXJuO1xuXG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmbkRhdGFTb3VyY2UpIHtcbiAgICAgIGNmbkRhdGFTb3VyY2VzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5SZXNvbHZlcikge1xuICAgICAgY2ZuUmVzb2x2ZXJzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5GdW5jdGlvbkNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIGNmbkZ1bmN0aW9uQ29uZmlndXJhdGlvbnNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIFRhYmxlKSB7XG4gICAgICB0YWJsZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIENmblRhYmxlKSB7XG4gICAgICBjZm5UYWJsZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTY29wZSBpbnN0YW5jZW9mIFJvbGUpIHtcbiAgICAgIHJvbGVzW3Jlc291cmNlTmFtZV0gPSBjdXJyZW50U2NvcGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjdXJyZW50U2NvcGUgaW5zdGFuY2VvZiBDZm5Sb2xlKSB7XG4gICAgICBjZm5Sb2xlc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgTGFtYmRhRnVuY3Rpb24pIHtcbiAgICAgIGZ1bmN0aW9uc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuRnVuY3Rpb24pIHtcbiAgICAgIGNmbkZ1bmN0aW9uc1tyZXNvdXJjZU5hbWVdID0gY3VycmVudFNjb3BlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFNjb3BlIGluc3RhbmNlb2YgQ2ZuUmVzb3VyY2UpIHtcbiAgICAgIGFkZGl0aW9uYWxDZm5SZXNvdXJjZXNbcmVzb3VyY2VOYW1lXSA9IGN1cnJlbnRTY29wZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH07XG5cbiAgc2NvcGUubm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gd2Fsa0FuZFByb2Nlc3NOb2RlcyhjaGlsZCwgY2xhc3NpZnlDb25zdHJ1Y3QpKTtcblxuICBpZiAoIWNmbkdyYXBocWxBcGkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgQVdTOjpBcHBTeW5jOjpHcmFwaFFMQXBpIGluIHRoZSBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NvcGUuJyk7XG4gIH1cblxuICBpZiAoIWNmbkdyYXBocWxTY2hlbWEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgQVdTOjpBcHBTeW5jOjpHcmFwaFFMU2NoZW1hIGluIHRoZSBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NvcGUuJyk7XG4gIH1cblxuICBjb25zdCBuZXN0ZWRTdGFja3M6IFJlY29yZDxzdHJpbmcsIE5lc3RlZFN0YWNrPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBzY29wZS5ub2RlLmNoaWxkcmVuLmZpbHRlcihOZXN0ZWRTdGFjay5pc05lc3RlZFN0YWNrKS5tYXAoKG5lc3RlZFN0YWNrOiBOZXN0ZWRTdGFjaykgPT4gW25lc3RlZFN0YWNrLm5vZGUuaWQsIG5lc3RlZFN0YWNrXSksXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBncmFwaHFsQXBpOiBHcmFwaHFsQXBpLmZyb21HcmFwaHFsQXBpQXR0cmlidXRlcyhzY29wZSwgJ0wyR3JhcGhxbEFwaScsIHsgZ3JhcGhxbEFwaUlkOiBjZm5HcmFwaHFsQXBpLmF0dHJBcGlJZCB9KSxcbiAgICB0YWJsZXMsXG4gICAgcm9sZXMsXG4gICAgZnVuY3Rpb25zLFxuICAgIG5lc3RlZFN0YWNrcyxcbiAgICBjZm5SZXNvdXJjZXM6IHtcbiAgICAgIGNmbkdyYXBocWxBcGksXG4gICAgICBjZm5HcmFwaHFsU2NoZW1hLFxuICAgICAgY2ZuQXBpS2V5LFxuICAgICAgY2ZuUmVzb2x2ZXJzLFxuICAgICAgY2ZuRnVuY3Rpb25Db25maWd1cmF0aW9ucyxcbiAgICAgIGNmbkRhdGFTb3VyY2VzLFxuICAgICAgY2ZuVGFibGVzLFxuICAgICAgY2ZuUm9sZXMsXG4gICAgICBjZm5GdW5jdGlvbnMsXG4gICAgICBhZGRpdGlvbmFsQ2ZuUmVzb3VyY2VzLFxuICAgIH0sXG4gIH07XG59O1xuXG4vKipcbiAqIEdldCB0aGUgZnVuY3Rpb24gc2xvdHMgZ2VuZXJhdGVkIGJ5IHRoZSBHcmFwaHFsIHRyYW5zZm9ybSBvcGVyYXRpb24sIGFkaGVyaW5nIHRvIHRoZSBGdW5jdGlvblNsb3QgaW50ZXJmYWNlLlxuICogQHBhcmFtIGdlbmVyYXRlZFJlc29sdmVycyB0aGUgcmVzb2x2ZXJzIGdlbmVyYXRlZCBieSB0aGUgdHJhbnNmb3JtZXIgdG8gc3BpdCBiYWNrIG91dC5cbiAqIEByZXR1cm5zIHRoZSBsaXN0IG9mIGdlbmVyYXRlZCBmdW5jdGlvbiBzbG90cyBpbiB0aGUgdHJhbnNmb3JtZXIsIGluIG9yZGVyIHRvIGZhY2lsaXRhdGUgb3ZlcnJpZGVzLlxuICovXG5leHBvcnQgY29uc3QgZ2V0R2VuZXJhdGVkRnVuY3Rpb25TbG90cyA9IChnZW5lcmF0ZWRSZXNvbHZlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBGdW5jdGlvblNsb3RbXSA9PlxuICBPYmplY3QuZW50cmllcyhnZW5lcmF0ZWRSZXNvbHZlcnMpXG4gICAgLmZpbHRlcigoW25hbWVdKSA9PiBuYW1lLnNwbGl0KCcuJykubGVuZ3RoID09PSA2KVxuICAgIC5tYXAoKFtuYW1lLCByZXNvbHZlckNvZGVdKSA9PiB7XG4gICAgICBjb25zdCBbdHlwZU5hbWUsIGZpZWxkTmFtZSwgc2xvdE5hbWUsIHNsb3RJbmRleCwgdGVtcGxhdGVUeXBlXSA9IG5hbWUuc3BsaXQoJy4nKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGVOYW1lLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIHNsb3ROYW1lLFxuICAgICAgICBzbG90SW5kZXg6IE51bWJlci5wYXJzZUludChzbG90SW5kZXgsIDEwKSxcbiAgICAgICAgZnVuY3Rpb246IHtcbiAgICAgICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBjb25zb2xpZGF0ZSByZXEvcmVxIHZhbHVlcyBiYWNrIHRvZ2V0aGVyXG4gICAgICAgICAgLi4uKHRlbXBsYXRlVHlwZSA9PT0gJ3JlcScgPyB7IHJlcXVlc3RNYXBwaW5nVGVtcGxhdGU6IHJlc29sdmVyQ29kZSB9IDoge30pLFxuICAgICAgICAgIC4uLih0ZW1wbGF0ZVR5cGUgPT09ICdyZXMnID8geyByZXNwb25zZU1hcHBpbmdUZW1wbGF0ZTogcmVzb2x2ZXJDb2RlIH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICB9IGFzIEZ1bmN0aW9uU2xvdDtcbiAgICB9KTtcbiJdfQ==
|