@aws-amplify/graphql-api-construct 1.3.0 → 1.4.0-construct-publish-test.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +903 -176
- package/API.md +80 -1
- package/CHANGELOG.md +11 -0
- package/README.md +623 -10
- package/lib/amplify-dynamodb-table-wrapper.d.ts +128 -0
- package/lib/amplify-dynamodb-table-wrapper.js +102 -0
- package/lib/amplify-graphql-api.d.ts +4 -0
- package/lib/amplify-graphql-api.js +10 -3
- package/lib/amplify-graphql-definition.d.ts +19 -2
- package/lib/amplify-graphql-definition.js +57 -5
- package/lib/index.d.ts +2 -1
- package/lib/index.js +5 -2
- package/lib/internal/construct-exports.js +8 -1
- package/lib/internal/data-source-config.d.ts +7 -0
- package/lib/internal/data-source-config.js +37 -0
- package/lib/internal/index.d.ts +1 -1
- package/lib/internal/index.js +2 -2
- package/lib/internal/model-type-name.d.ts +8 -0
- package/lib/internal/model-type-name.js +27 -0
- package/lib/types.d.ts +47 -7
- package/lib/types.js +1 -1
- package/node_modules/@aws-amplify/backend-output-schemas/lib/auth/index.js +7 -9
- package/node_modules/@aws-amplify/backend-output-schemas/lib/auth/v1.js +15 -18
- package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/index.js +10 -16
- package/node_modules/@aws-amplify/backend-output-schemas/lib/graphql/v1.js +22 -20
- package/node_modules/@aws-amplify/backend-output-schemas/lib/index.d.ts +12 -1
- package/node_modules/@aws-amplify/backend-output-schemas/lib/index.js +37 -63
- package/node_modules/@aws-amplify/backend-output-schemas/lib/platform/index.js +16 -14
- package/node_modules/@aws-amplify/backend-output-schemas/lib/platform/stack_metadata_schemas.js +7 -11
- package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.d.ts +5 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/index.js +7 -9
- package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.d.ts +5 -0
- package/node_modules/@aws-amplify/backend-output-schemas/lib/stack/v1.js +9 -11
- package/node_modules/@aws-amplify/backend-output-schemas/lib/storage/index.js +7 -9
- package/node_modules/@aws-amplify/backend-output-schemas/lib/storage/v1.js +9 -12
- package/node_modules/@aws-amplify/backend-output-schemas/package.json +4 -23
- package/node_modules/@aws-amplify/backend-output-storage/lib/index.d.ts +1 -0
- package/node_modules/@aws-amplify/backend-output-storage/lib/index.js +17 -14
- package/node_modules/@aws-amplify/backend-output-storage/lib/stack_metadata_output_storage_strategy.js +28 -32
- package/node_modules/@aws-amplify/backend-output-storage/lib/store_attribution_metadata.d.ts +50 -0
- package/node_modules/@aws-amplify/backend-output-storage/lib/store_attribution_metadata.js +104 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/backend_deployment_type.d.ts +5 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/backend_deployment_type.js +9 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.d.ts +9 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.js +13 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/index.d.ts +4 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/index.js +22 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/unique_backend_identifier.d.ts +53 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/lib/unique_backend_identifier.js +74 -0
- package/node_modules/@aws-amplify/backend-output-storage/node_modules/@aws-amplify/platform-core/package.json +23 -0
- package/node_modules/@aws-amplify/backend-output-storage/package.json +6 -4
- package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +11 -10
- package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +8 -7
- package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +7 -6
- package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +7 -6
- package/node_modules/@aws-amplify/graphql-index-transformer/API.md +3 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-index-transformer.js +4 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-index-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-index-transformer/lib/graphql-primary-key-transformer.js.map +1 -1
- 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 +2 -1
- 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 +5 -5
- 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 +34 -8
- 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 +8 -7
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-maps-to-transformer/LICENSE +201 -0
- 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 +11 -10
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/graphql-model-transformer.d.ts +2 -1
- 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 +52 -47
- 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/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts +15 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js +169 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts +40 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js +242 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamodb-table-construct/index.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts +12 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js +663 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/amplify-table-manager-handler.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.d.ts +5 -2
- 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 +47 -60
- 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 +9 -6
- package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +7 -6
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +201 -0
- 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 +3 -10
- package/node_modules/@aws-amplify/graphql-relational-transformer/lib/resolvers.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +9 -8
- package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
- package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +8 -7
- package/node_modules/@aws-amplify/graphql-transformer/API.md +2 -2
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +3 -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.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/package.json +15 -14
- package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +3 -8
- package/node_modules/@aws-amplify/graphql-transformer-core/API.md +9 -11
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/index.d.ts +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts +3 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js +3 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.js +3 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts +2 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/types.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.d.ts +2 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.js +12 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/utils.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +3 -4
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js +3 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.d.ts +3 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.js +15 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/utils/provision-strategy-utils.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +5 -4
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +25 -3
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +6 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js +2 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-context-provider.d.ts +2 -2
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts +7 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js +6 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/transformer-datasource-provider.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +3 -2
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/index.ts +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-context-provider.ts +2 -2
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/transformer-datasource-provider.ts +16 -1
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@aws-amplify/platform-core/lib/backend_deployment_type.d.ts +5 -0
- package/node_modules/@aws-amplify/platform-core/lib/backend_deployment_type.js +9 -0
- package/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.d.ts +9 -0
- package/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.js +13 -0
- package/node_modules/@aws-amplify/platform-core/lib/index.d.ts +4 -0
- package/node_modules/@aws-amplify/platform-core/lib/index.js +22 -0
- package/node_modules/@aws-amplify/platform-core/lib/unique_backend_identifier.d.ts +53 -0
- package/node_modules/@aws-amplify/platform-core/lib/unique_backend_identifier.js +74 -0
- package/node_modules/@aws-amplify/platform-core/package.json +24 -0
- package/node_modules/@aws-amplify/plugin-types/lib/amplify_function.d.ts +4 -0
- package/node_modules/@aws-amplify/plugin-types/lib/amplify_function.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/amplify_output_writer.d.ts +9 -0
- package/node_modules/@aws-amplify/plugin-types/lib/amplify_output_writer.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/auth_resources.d.ts +42 -0
- package/node_modules/@aws-amplify/plugin-types/lib/auth_resources.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/backend_output.d.ts +6 -0
- package/node_modules/@aws-amplify/plugin-types/lib/backend_output.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.d.ts +13 -0
- package/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.d.ts +8 -0
- package/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.d.ts +7 -0
- package/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/construct_container.d.ts +26 -0
- package/node_modules/@aws-amplify/plugin-types/lib/construct_container.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/construct_factory.d.ts +21 -0
- package/node_modules/@aws-amplify/plugin-types/lib/construct_factory.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/function_resources.d.ts +5 -0
- package/node_modules/@aws-amplify/plugin-types/lib/function_resources.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.d.ts +14 -0
- package/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/index.d.ts +16 -0
- package/node_modules/@aws-amplify/plugin-types/lib/index.js +32 -0
- package/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.d.ts +11 -0
- package/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.d.ts +8 -0
- package/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/resource_provider.d.ts +7 -0
- package/node_modules/@aws-amplify/plugin-types/lib/resource_provider.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/lib/unique_backend_identifier.d.ts +25 -0
- package/node_modules/@aws-amplify/plugin-types/lib/unique_backend_identifier.js +3 -0
- package/node_modules/@aws-amplify/plugin-types/package.json +20 -0
- package/node_modules/graphql-transformer-common/API.md +3 -0
- package/node_modules/graphql-transformer-common/CHANGELOG.md +6 -0
- package/node_modules/graphql-transformer-common/LICENSE +201 -0
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts +3 -0
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.d.ts.map +1 -1
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js +3 -0
- package/node_modules/graphql-transformer-common/lib/ResourceConstants.js.map +1 -1
- package/node_modules/graphql-transformer-common/package.json +3 -2
- package/package.json +24 -24
- package/src/amplify-dynamodb-table-wrapper.ts +177 -0
- package/src/amplify-graphql-api.ts +10 -3
- package/src/amplify-graphql-definition.ts +63 -3
- package/src/index.ts +13 -0
- package/src/internal/construct-exports.ts +7 -0
- package/src/internal/data-source-config.ts +39 -0
- package/src/internal/index.ts +1 -1
- package/src/internal/model-type-name.ts +30 -0
- package/src/types.ts +54 -7
- package/babel.config.js +0 -13
- package/lib/internal/amplify-metadata.d.ts +0 -6
- package/lib/internal/amplify-metadata.js +0 -58
- package/node_modules/@aws-amplify/backend-output-schemas/lib/index.internal.d.ts +0 -3
- package/node_modules/@aws-amplify/backend-output-schemas/lib/index.internal.js +0 -27
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/project-config.d.ts +0 -6
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/project-config.d.ts.map +0 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/project-config.js +0 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/config/project-config.js.map +0 -1
- package/remove-module-type-from-package-json.ts +0 -19
- package/src/internal/amplify-metadata.ts +0 -58
@@ -0,0 +1,128 @@
|
|
1
|
+
import { CfnResource } from 'aws-cdk-lib';
|
2
|
+
import { BillingMode, StreamViewType } from 'aws-cdk-lib/aws-dynamodb';
|
3
|
+
/**
|
4
|
+
* Shape for TTL config.
|
5
|
+
*/
|
6
|
+
export interface TimeToLiveSpecification {
|
7
|
+
/**
|
8
|
+
* Boolean determining if the ttl is enabled or not.
|
9
|
+
*/
|
10
|
+
readonly enabled: boolean;
|
11
|
+
/**
|
12
|
+
* Attribute name to apply to the ttl spec.
|
13
|
+
*/
|
14
|
+
readonly attributeName?: string;
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Wrapper for provisioned throughput config in DDB.
|
18
|
+
*/
|
19
|
+
export interface ProvisionedThroughput {
|
20
|
+
/**
|
21
|
+
* The read capacity units on the table or index.
|
22
|
+
*/
|
23
|
+
readonly readCapacityUnits: number;
|
24
|
+
/**
|
25
|
+
* The write capacity units on the table or index.
|
26
|
+
*/
|
27
|
+
readonly writeCapacityUnits: number;
|
28
|
+
}
|
29
|
+
/**
|
30
|
+
* Server Side Encryption Type Values
|
31
|
+
* - `KMS` - Server-side encryption that uses AWS KMS. The key is stored in your account and is managed by KMS (AWS KMS charges apply).
|
32
|
+
*/
|
33
|
+
export declare enum SSEType {
|
34
|
+
KMS = "KMS"
|
35
|
+
}
|
36
|
+
/**
|
37
|
+
* Represents the settings used to enable server-side encryption.
|
38
|
+
*/
|
39
|
+
export interface SSESpecification {
|
40
|
+
/**
|
41
|
+
* Indicates whether server-side encryption is done using an AWS managed key or an AWS owned key.
|
42
|
+
* If enabled (true), server-side encryption type is set to `KMS` and an AWS managed key is used ( AWS KMS charges apply).
|
43
|
+
* If disabled (false) or not specified, server-side encryption is set to AWS owned key.
|
44
|
+
*/
|
45
|
+
readonly sseEnabled: boolean;
|
46
|
+
/**
|
47
|
+
* The AWS KMS key that should be used for the AWS KMS encryption.
|
48
|
+
* To specify a key, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide
|
49
|
+
* this parameter if the key is different from the default DynamoDB key `alias/aws/dynamodb` .
|
50
|
+
*/
|
51
|
+
readonly kmsMasterKeyId?: string;
|
52
|
+
/**
|
53
|
+
* Server-side encryption type. The only supported value is:
|
54
|
+
* `KMS` Server-side encryption that uses AWS Key Management Service.
|
55
|
+
* The key is stored in your account and is managed by AWS KMS ( AWS KMS charges apply).
|
56
|
+
*/
|
57
|
+
readonly sseType?: SSEType;
|
58
|
+
}
|
59
|
+
/**
|
60
|
+
* Represents the DynamoDB Streams configuration for a table in DynamoDB.
|
61
|
+
*/
|
62
|
+
export interface StreamSpecification {
|
63
|
+
/**
|
64
|
+
* When an item in the table is modified, `StreamViewType` determines what information is written to the stream for this table.
|
65
|
+
* Valid values for `StreamViewType` are:
|
66
|
+
* - `KEYS_ONLY` - Only the key attributes of the modified item are written to the stream.
|
67
|
+
* - `NEW_IMAGE` - The entire item, as it appears after it was modified, is written to the stream.
|
68
|
+
* - `OLD_IMAGE` - The entire item, as it appeared before it was modified, is written to the stream.
|
69
|
+
* - `NEW_AND_OLD_IMAGES` - Both the new and the old item images of the item are written to the stream.
|
70
|
+
*/
|
71
|
+
readonly streamViewType: StreamViewType;
|
72
|
+
}
|
73
|
+
/**
|
74
|
+
* Wrapper class around Custom::AmplifyDynamoDBTable custom resource, to simplify
|
75
|
+
* the override experience a bit. This is NOT a construct, just an easier way to access
|
76
|
+
* the generated construct.
|
77
|
+
* This is a wrapper intended to mimic the `aws_cdk_lib.aws_dynamodb.Table` functionality more-or-less.
|
78
|
+
* Notable differences is the addition of TKTK properties, to account for the fact that they're constructor props
|
79
|
+
* in the CDK construct, as well as the removal of all from*, grant*, and metric* methods implemented by Table.
|
80
|
+
*/
|
81
|
+
export declare class AmplifyDynamoDbTableWrapper {
|
82
|
+
private readonly resource;
|
83
|
+
/**
|
84
|
+
* Return true and perform type narrowing if a given input appears to be capable of
|
85
|
+
* @param x the object to check.
|
86
|
+
* @returns whether or not the resource is an underlying amplify dynamodb table resource.
|
87
|
+
*/
|
88
|
+
static isAmplifyDynamoDbTableResource(x: any): x is CfnResource;
|
89
|
+
/**
|
90
|
+
* Create the wrapper given an underlying CfnResource that is an instance of Custom::AmplifyDynamoDBTable.
|
91
|
+
* @param resource the Cfn resource.
|
92
|
+
*/
|
93
|
+
constructor(resource: CfnResource);
|
94
|
+
/**
|
95
|
+
* Specify how you are charged for read and write throughput and how you manage capacity.
|
96
|
+
*/
|
97
|
+
set billingMode(billingMode: BillingMode);
|
98
|
+
/**
|
99
|
+
* The name of TTL attribute.
|
100
|
+
*/
|
101
|
+
set timeToLiveAttribute(timeToLiveSpecification: TimeToLiveSpecification);
|
102
|
+
/**
|
103
|
+
* Whether point-in-time recovery is enabled.
|
104
|
+
*/
|
105
|
+
set pointInTimeRecoveryEnabled(pointInTimeRecoveryEnabled: boolean);
|
106
|
+
/**
|
107
|
+
* Update the provisioned throughput for the base table.
|
108
|
+
*/
|
109
|
+
set provisionedThroughput(provisionedThroughput: ProvisionedThroughput);
|
110
|
+
/**
|
111
|
+
* Set the provisionedThroughtput for a specified GSI by name.
|
112
|
+
* @param indexName the index to specify a provisionedThroughput config for
|
113
|
+
* @param provisionedThroughput the config to set
|
114
|
+
*/
|
115
|
+
setGlobalSecondaryIndexProvisionedThroughput(indexName: string, provisionedThroughput: ProvisionedThroughput): void;
|
116
|
+
/**
|
117
|
+
* Set the ddb stream specification on the table.
|
118
|
+
*/
|
119
|
+
set streamSpecification(streamSpecification: StreamSpecification);
|
120
|
+
/**
|
121
|
+
* Set the ddb server-side encryption specification on the table.
|
122
|
+
*/
|
123
|
+
set sseSpecification(sseSpecification: SSESpecification);
|
124
|
+
/**
|
125
|
+
* Set table deletion protection.
|
126
|
+
*/
|
127
|
+
set deletionProtectionEnabled(deletionProtectionEnabled: boolean);
|
128
|
+
}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
"use strict";
|
2
|
+
var _a;
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.AmplifyDynamoDbTableWrapper = exports.SSEType = void 0;
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
7
|
+
const AMPLIFY_DYNAMODB_TABLE_RESOURCE_TYPE = 'Custom::AmplifyDynamoDBTable';
|
8
|
+
/**
|
9
|
+
* Server Side Encryption Type Values
|
10
|
+
* - `KMS` - Server-side encryption that uses AWS KMS. The key is stored in your account and is managed by KMS (AWS KMS charges apply).
|
11
|
+
*/
|
12
|
+
var SSEType;
|
13
|
+
(function (SSEType) {
|
14
|
+
SSEType["KMS"] = "KMS";
|
15
|
+
})(SSEType || (exports.SSEType = SSEType = {}));
|
16
|
+
/**
|
17
|
+
* Wrapper class around Custom::AmplifyDynamoDBTable custom resource, to simplify
|
18
|
+
* the override experience a bit. This is NOT a construct, just an easier way to access
|
19
|
+
* the generated construct.
|
20
|
+
* This is a wrapper intended to mimic the `aws_cdk_lib.aws_dynamodb.Table` functionality more-or-less.
|
21
|
+
* Notable differences is the addition of TKTK properties, to account for the fact that they're constructor props
|
22
|
+
* in the CDK construct, as well as the removal of all from*, grant*, and metric* methods implemented by Table.
|
23
|
+
*/
|
24
|
+
class AmplifyDynamoDbTableWrapper {
|
25
|
+
/**
|
26
|
+
* Return true and perform type narrowing if a given input appears to be capable of
|
27
|
+
* @param x the object to check.
|
28
|
+
* @returns whether or not the resource is an underlying amplify dynamodb table resource.
|
29
|
+
*/
|
30
|
+
static isAmplifyDynamoDbTableResource(x) {
|
31
|
+
return x instanceof aws_cdk_lib_1.CfnResource && x.cfnResourceType === AMPLIFY_DYNAMODB_TABLE_RESOURCE_TYPE;
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* Create the wrapper given an underlying CfnResource that is an instance of Custom::AmplifyDynamoDBTable.
|
35
|
+
* @param resource the Cfn resource.
|
36
|
+
*/
|
37
|
+
constructor(resource) {
|
38
|
+
this.resource = resource;
|
39
|
+
if (resource.cfnResourceType !== AMPLIFY_DYNAMODB_TABLE_RESOURCE_TYPE) {
|
40
|
+
throw new Error(`Only CfnResource with type ${AMPLIFY_DYNAMODB_TABLE_RESOURCE_TYPE} can be used in AmplifyDynamoDbTable`);
|
41
|
+
}
|
42
|
+
}
|
43
|
+
/**
|
44
|
+
* Specify how you are charged for read and write throughput and how you manage capacity.
|
45
|
+
*/
|
46
|
+
set billingMode(billingMode) {
|
47
|
+
this.resource.addPropertyOverride('billingMode', billingMode);
|
48
|
+
}
|
49
|
+
/**
|
50
|
+
* The name of TTL attribute.
|
51
|
+
*/
|
52
|
+
set timeToLiveAttribute(timeToLiveSpecification) {
|
53
|
+
this.resource.addPropertyOverride('timeToLiveSpecification', timeToLiveSpecification);
|
54
|
+
}
|
55
|
+
/**
|
56
|
+
* Whether point-in-time recovery is enabled.
|
57
|
+
*/
|
58
|
+
set pointInTimeRecoveryEnabled(pointInTimeRecoveryEnabled) {
|
59
|
+
this.resource.addPropertyOverride('pointInTimeRecoverySpecification', { pointInTimeRecoveryEnabled });
|
60
|
+
}
|
61
|
+
/**
|
62
|
+
* Update the provisioned throughput for the base table.
|
63
|
+
*/
|
64
|
+
set provisionedThroughput(provisionedThroughput) {
|
65
|
+
this.resource.addPropertyOverride('provisionedThroughput', provisionedThroughput);
|
66
|
+
}
|
67
|
+
/**
|
68
|
+
* Set the provisionedThroughtput for a specified GSI by name.
|
69
|
+
* @param indexName the index to specify a provisionedThroughput config for
|
70
|
+
* @param provisionedThroughput the config to set
|
71
|
+
*/
|
72
|
+
setGlobalSecondaryIndexProvisionedThroughput(indexName, provisionedThroughput) {
|
73
|
+
const gsis = Object.entries(this.resource.rawOverrides?.Properties?.globalSecondaryIndexes ?? {});
|
74
|
+
const foundGsis = gsis.filter(([_, gsiConfig]) => indexName === gsiConfig.indexName).map(([gsiIndex]) => gsiIndex);
|
75
|
+
if (foundGsis.length !== 1) {
|
76
|
+
throw new Error(`Index with name ${indexName} not found in table definition`);
|
77
|
+
}
|
78
|
+
this.resource.addPropertyOverride(`globalSecondaryIndexes.${foundGsis[0]}.provisionedThroughput`, provisionedThroughput);
|
79
|
+
}
|
80
|
+
/**
|
81
|
+
* Set the ddb stream specification on the table.
|
82
|
+
*/
|
83
|
+
set streamSpecification(streamSpecification) {
|
84
|
+
this.resource.addPropertyOverride('streamSpecification', streamSpecification);
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* Set the ddb server-side encryption specification on the table.
|
88
|
+
*/
|
89
|
+
set sseSpecification(sseSpecification) {
|
90
|
+
this.resource.addPropertyOverride('sseSpecification', sseSpecification);
|
91
|
+
}
|
92
|
+
/**
|
93
|
+
* Set table deletion protection.
|
94
|
+
*/
|
95
|
+
set deletionProtectionEnabled(deletionProtectionEnabled) {
|
96
|
+
this.resource.addPropertyOverride('deletionProtectionEnabled', deletionProtectionEnabled);
|
97
|
+
}
|
98
|
+
}
|
99
|
+
exports.AmplifyDynamoDbTableWrapper = AmplifyDynamoDbTableWrapper;
|
100
|
+
_a = JSII_RTTI_SYMBOL_1;
|
101
|
+
AmplifyDynamoDbTableWrapper[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyDynamoDbTableWrapper", version: "1.4.0-construct-publish-test.0" };
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1keW5hbW9kYi10YWJsZS13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FtcGxpZnktZHluYW1vZGItdGFibGUtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEwQztBQUcxQyxNQUFNLG9DQUFvQyxHQUFHLDhCQUE4QixDQUFDO0FBZ0M1RTs7O0dBR0c7QUFDSCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0JBQVcsQ0FBQTtBQUNiLENBQUMsRUFGVyxPQUFPLHVCQUFQLE9BQU8sUUFFbEI7QUEyQ0Q7Ozs7Ozs7R0FPRztBQUNILE1BQWEsMkJBQTJCO0lBQ3RDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBTTtRQUMxQyxPQUFPLENBQUMsWUFBWSx5QkFBVyxJQUFJLENBQUMsQ0FBQyxlQUFlLEtBQUssb0NBQW9DLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQTZCLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDaEQsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLG9DQUFvQyxFQUFFO1lBQ3JFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLG9DQUFvQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzNIO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXLENBQUMsV0FBd0I7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxtQkFBbUIsQ0FBQyx1QkFBZ0Q7UUFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksMEJBQTBCLENBQUMsMEJBQW1DO1FBQ2hFLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsa0NBQWtDLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxxQkFBcUIsQ0FBQyxxQkFBNEM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNENBQTRDLENBQUMsU0FBaUIsRUFBRSxxQkFBNEM7UUFDMUcsTUFBTSxJQUFJLEdBQTJDLE1BQU0sQ0FBQyxPQUFPLENBQ2hFLElBQUksQ0FBQyxRQUFnQixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsc0JBQXNCLElBQUksRUFBRSxDQUM5RSxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ILElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsU0FBUyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQy9FO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsU0FBUyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNILENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksbUJBQW1CLENBQUMsbUJBQXdDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGdCQUFnQixDQUFDLGdCQUFrQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSx5QkFBeUIsQ0FBQyx5QkFBa0M7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVGLENBQUM7O0FBbkZILGtFQW9GQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQmlsbGluZ01vZGUsIFN0cmVhbVZpZXdUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcblxuY29uc3QgQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFID0gJ0N1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUnO1xuXG4vKipcbiAqIFNoYXBlIGZvciBUVEwgY29uZmlnLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIEJvb2xlYW4gZGV0ZXJtaW5pbmcgaWYgdGhlIHR0bCBpcyBlbmFibGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZSBuYW1lIHRvIGFwcGx5IHRvIHRoZSB0dGwgc3BlYy5cbiAgICovXG4gIHJlYWRvbmx5IGF0dHJpYnV0ZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3IgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBjb25maWcgaW4gRERCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkVGhyb3VnaHB1dCB7XG4gIC8qKlxuICAgKiBUaGUgcmVhZCBjYXBhY2l0eSB1bml0cyBvbiB0aGUgdGFibGUgb3IgaW5kZXguXG4gICAqL1xuICByZWFkb25seSByZWFkQ2FwYWNpdHlVbml0czogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgd3JpdGUgY2FwYWNpdHkgdW5pdHMgb24gdGhlIHRhYmxlIG9yIGluZGV4LlxuICAgKi9cbiAgcmVhZG9ubHkgd3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogU2VydmVyIFNpZGUgRW5jcnlwdGlvbiBUeXBlIFZhbHVlc1xuICogLSBgS01TYCAtIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLTVMuIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBLTVMgKEFXUyBLTVMgY2hhcmdlcyBhcHBseSkuXG4gKi9cbmV4cG9ydCBlbnVtIFNTRVR5cGUge1xuICBLTVMgPSAnS01TJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzZXR0aW5ncyB1c2VkIHRvIGVuYWJsZSBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNTRVNwZWNpZmljYXRpb24ge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBpcyBkb25lIHVzaW5nIGFuIEFXUyBtYW5hZ2VkIGtleSBvciBhbiBBV1Mgb3duZWQga2V5LlxuICAgKiBJZiBlbmFibGVkICh0cnVlKSwgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlIGlzIHNldCB0byBgS01TYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKCBBV1MgS01TIGNoYXJnZXMgYXBwbHkpLlxuICAgKiBJZiBkaXNhYmxlZCAoZmFsc2UpIG9yIG5vdCBzcGVjaWZpZWQsIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgc2V0IHRvIEFXUyBvd25lZCBrZXkuXG4gICAqL1xuICByZWFkb25seSBzc2VFbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIEtNUyBrZXkgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIEFXUyBLTVMgZW5jcnlwdGlvbi5cbiAgICogVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZVxuICAgKiB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYWxpYXMvYXdzL2R5bmFtb2RiYCAuXG4gICAqL1xuICByZWFkb25seSBrbXNNYXN0ZXJLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0eXBlLiBUaGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXM6XG4gICAqIGBLTVNgIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdGhhdCB1c2VzIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlLlxuICAgKiAgIFRoZSBrZXkgaXMgc3RvcmVkIGluIHlvdXIgYWNjb3VudCBhbmQgaXMgbWFuYWdlZCBieSBBV1MgS01TICggQVdTIEtNUyBjaGFyZ2VzIGFwcGx5KS5cbiAgICovXG4gIHJlYWRvbmx5IHNzZVR5cGU/OiBTU0VUeXBlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIER5bmFtb0RCIFN0cmVhbXMgY29uZmlndXJhdGlvbiBmb3IgYSB0YWJsZSBpbiBEeW5hbW9EQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbiAgLyoqXG4gICAqIFdoZW4gYW4gaXRlbSBpbiB0aGUgdGFibGUgaXMgbW9kaWZpZWQsIGBTdHJlYW1WaWV3VHlwZWAgZGV0ZXJtaW5lcyB3aGF0IGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbSBmb3IgdGhpcyB0YWJsZS5cbiAgICogVmFsaWQgdmFsdWVzIGZvciBgU3RyZWFtVmlld1R5cGVgIGFyZTpcbiAgICogLSBgS0VZU19PTkxZYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE5FV19JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gICAqIC0gYE9MRF9JTUFHRWAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAgICogLSBgTkVXX0FORF9PTERfSU1BR0VTYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtVmlld1R5cGU6IFN0cmVhbVZpZXdUeXBlO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgY2xhc3MgYXJvdW5kIEN1c3RvbTo6QW1wbGlmeUR5bmFtb0RCVGFibGUgY3VzdG9tIHJlc291cmNlLCB0byBzaW1wbGlmeVxuICogdGhlIG92ZXJyaWRlIGV4cGVyaWVuY2UgYSBiaXQuIFRoaXMgaXMgTk9UIGEgY29uc3RydWN0LCBqdXN0IGFuIGVhc2llciB3YXkgdG8gYWNjZXNzXG4gKiB0aGUgZ2VuZXJhdGVkIGNvbnN0cnVjdC5cbiAqIFRoaXMgaXMgYSB3cmFwcGVyIGludGVuZGVkIHRvIG1pbWljIHRoZSBgYXdzX2Nka19saWIuYXdzX2R5bmFtb2RiLlRhYmxlYCBmdW5jdGlvbmFsaXR5IG1vcmUtb3ItbGVzcy5cbiAqIE5vdGFibGUgZGlmZmVyZW5jZXMgaXMgdGhlIGFkZGl0aW9uIG9mIFRLVEsgcHJvcGVydGllcywgdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCB0aGV5J3JlIGNvbnN0cnVjdG9yIHByb3BzXG4gKiBpbiB0aGUgQ0RLIGNvbnN0cnVjdCwgYXMgd2VsbCBhcyB0aGUgcmVtb3ZhbCBvZiBhbGwgZnJvbSosIGdyYW50KiwgYW5kIG1ldHJpYyogbWV0aG9kcyBpbXBsZW1lbnRlZCBieSBUYWJsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlEeW5hbW9EYlRhYmxlV3JhcHBlciB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSBhbmQgcGVyZm9ybSB0eXBlIG5hcnJvd2luZyBpZiBhIGdpdmVuIGlucHV0IGFwcGVhcnMgdG8gYmUgY2FwYWJsZSBvZlxuICAgKiBAcGFyYW0geCB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgcmVzb3VyY2UgaXMgYW4gdW5kZXJseWluZyBhbXBsaWZ5IGR5bmFtb2RiIHRhYmxlIHJlc291cmNlLlxuICAgKi9cbiAgc3RhdGljIGlzQW1wbGlmeUR5bmFtb0RiVGFibGVSZXNvdXJjZSh4OiBhbnkpOiB4IGlzIENmblJlc291cmNlIHtcbiAgICByZXR1cm4geCBpbnN0YW5jZW9mIENmblJlc291cmNlICYmIHguY2ZuUmVzb3VyY2VUeXBlID09PSBBTVBMSUZZX0RZTkFNT0RCX1RBQkxFX1JFU09VUkNFX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSB3cmFwcGVyIGdpdmVuIGFuIHVuZGVybHlpbmcgQ2ZuUmVzb3VyY2UgdGhhdCBpcyBhbiBpbnN0YW5jZSBvZiBDdXN0b206OkFtcGxpZnlEeW5hbW9EQlRhYmxlLlxuICAgKiBAcGFyYW0gcmVzb3VyY2UgdGhlIENmbiByZXNvdXJjZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmblJlc291cmNlKSB7XG4gICAgaWYgKHJlc291cmNlLmNmblJlc291cmNlVHlwZSAhPT0gQU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgQ2ZuUmVzb3VyY2Ugd2l0aCB0eXBlICR7QU1QTElGWV9EWU5BTU9EQl9UQUJMRV9SRVNPVVJDRV9UWVBFfSBjYW4gYmUgdXNlZCBpbiBBbXBsaWZ5RHluYW1vRGJUYWJsZWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGhvdyB5b3UgYXJlIGNoYXJnZWQgZm9yIHJlYWQgYW5kIHdyaXRlIHRocm91Z2hwdXQgYW5kIGhvdyB5b3UgbWFuYWdlIGNhcGFjaXR5LlxuICAgKi9cbiAgc2V0IGJpbGxpbmdNb2RlKGJpbGxpbmdNb2RlOiBCaWxsaW5nTW9kZSkge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnYmlsbGluZ01vZGUnLCBiaWxsaW5nTW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgVFRMIGF0dHJpYnV0ZS5cbiAgICovXG4gIHNldCB0aW1lVG9MaXZlQXR0cmlidXRlKHRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uOiBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgndGltZVRvTGl2ZVNwZWNpZmljYXRpb24nLCB0aW1lVG9MaXZlU3BlY2lmaWNhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBwb2ludC1pbi10aW1lIHJlY292ZXJ5IGlzIGVuYWJsZWQuXG4gICAqL1xuICBzZXQgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQocG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3BvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uJywgeyBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgZm9yIHRoZSBiYXNlIHRhYmxlLlxuICAgKi9cbiAgc2V0IHByb3Zpc2lvbmVkVGhyb3VnaHB1dChwcm92aXNpb25lZFRocm91Z2hwdXQ6IFByb3Zpc2lvbmVkVGhyb3VnaHB1dCkge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgncHJvdmlzaW9uZWRUaHJvdWdocHV0JywgcHJvdmlzaW9uZWRUaHJvdWdocHV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHByb3Zpc2lvbmVkVGhyb3VnaHRwdXQgZm9yIGEgc3BlY2lmaWVkIEdTSSBieSBuYW1lLlxuICAgKiBAcGFyYW0gaW5kZXhOYW1lIHRoZSBpbmRleCB0byBzcGVjaWZ5IGEgcHJvdmlzaW9uZWRUaHJvdWdocHV0IGNvbmZpZyBmb3JcbiAgICogQHBhcmFtIHByb3Zpc2lvbmVkVGhyb3VnaHB1dCB0aGUgY29uZmlnIHRvIHNldFxuICAgKi9cbiAgc2V0R2xvYmFsU2Vjb25kYXJ5SW5kZXhQcm92aXNpb25lZFRocm91Z2hwdXQoaW5kZXhOYW1lOiBzdHJpbmcsIHByb3Zpc2lvbmVkVGhyb3VnaHB1dDogUHJvdmlzaW9uZWRUaHJvdWdocHV0KTogdm9pZCB7XG4gICAgY29uc3QgZ3NpczogQXJyYXk8W3N0cmluZywgeyBpbmRleE5hbWU6IHN0cmluZyB9XT4gPSBPYmplY3QuZW50cmllcyhcbiAgICAgICh0aGlzLnJlc291cmNlIGFzIGFueSkucmF3T3ZlcnJpZGVzPy5Qcm9wZXJ0aWVzPy5nbG9iYWxTZWNvbmRhcnlJbmRleGVzID8/IHt9LFxuICAgICk7XG4gICAgY29uc3QgZm91bmRHc2lzID0gZ3Npcy5maWx0ZXIoKFtfLCBnc2lDb25maWddKSA9PiBpbmRleE5hbWUgPT09IGdzaUNvbmZpZy5pbmRleE5hbWUpLm1hcCgoW2dzaUluZGV4XSkgPT4gZ3NpSW5kZXgpO1xuICAgIGlmIChmb3VuZEdzaXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEluZGV4IHdpdGggbmFtZSAke2luZGV4TmFtZX0gbm90IGZvdW5kIGluIHRhYmxlIGRlZmluaXRpb25gKTtcbiAgICB9XG4gICAgdGhpcy5yZXNvdXJjZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKGBnbG9iYWxTZWNvbmRhcnlJbmRleGVzLiR7Zm91bmRHc2lzWzBdfS5wcm92aXNpb25lZFRocm91Z2hwdXRgLCBwcm92aXNpb25lZFRocm91Z2hwdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGRiIHN0cmVhbSBzcGVjaWZpY2F0aW9uIG9uIHRoZSB0YWJsZS5cbiAgICovXG4gIHNldCBzdHJlYW1TcGVjaWZpY2F0aW9uKHN0cmVhbVNwZWNpZmljYXRpb246IFN0cmVhbVNwZWNpZmljYXRpb24pIHtcbiAgICB0aGlzLnJlc291cmNlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ3N0cmVhbVNwZWNpZmljYXRpb24nLCBzdHJlYW1TcGVjaWZpY2F0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGRkYiBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHNwZWNpZmljYXRpb24gb24gdGhlIHRhYmxlLlxuICAgKi9cbiAgc2V0IHNzZVNwZWNpZmljYXRpb24oc3NlU3BlY2lmaWNhdGlvbjogU1NFU3BlY2lmaWNhdGlvbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnc3NlU3BlY2lmaWNhdGlvbicsIHNzZVNwZWNpZmljYXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0YWJsZSBkZWxldGlvbiBwcm90ZWN0aW9uLlxuICAgKi9cbiAgc2V0IGRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQoZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMucmVzb3VyY2UuYWRkUHJvcGVydHlPdmVycmlkZSgnZGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZCcsIGRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQpO1xuICB9XG59XG4iXX0=
|
@@ -72,6 +72,10 @@ export declare class AmplifyGraphqlApi extends Construct {
|
|
72
72
|
* Conflict resolution setting
|
73
73
|
*/
|
74
74
|
private readonly conflictResolution;
|
75
|
+
/**
|
76
|
+
* Be very careful editing this value. This is the string that is used to identify graphql stacks in BI metrics
|
77
|
+
*/
|
78
|
+
private readonly stackType;
|
75
79
|
/**
|
76
80
|
* New AmplifyGraphqlApi construct, this will create an appsync api with authorization, a schema, and all necessary resolvers, functions,
|
77
81
|
* and datasources.
|
@@ -3,6 +3,7 @@ var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
4
4
|
exports.AmplifyGraphqlApi = void 0;
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
6
|
+
const path = require("path");
|
6
7
|
const constructs_1 = require("constructs");
|
7
8
|
const graphql_transformer_1 = require("@aws-amplify/graphql-transformer");
|
8
9
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
@@ -12,6 +13,7 @@ const backend_output_schemas_1 = require("@aws-amplify/backend-output-schemas");
|
|
12
13
|
const aws_appsync_1 = require("aws-cdk-lib/aws-appsync");
|
13
14
|
const user_defined_slots_1 = require("./internal/user-defined-slots");
|
14
15
|
const internal_1 = require("./internal");
|
16
|
+
const data_source_config_1 = require("./internal/data-source-config");
|
15
17
|
const construct_tree_1 = require("./internal/construct-tree");
|
16
18
|
/**
|
17
19
|
* L3 Construct which invokes the Amplify Transformer Pattern over an input Graphql Schema.
|
@@ -53,9 +55,13 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
|
|
53
55
|
*/
|
54
56
|
constructor(scope, id, props) {
|
55
57
|
super(scope, id);
|
58
|
+
/**
|
59
|
+
* Be very careful editing this value. This is the string that is used to identify graphql stacks in BI metrics
|
60
|
+
*/
|
61
|
+
this.stackType = 'api-AppSync';
|
56
62
|
validateNoOtherAmplifyGraphqlApiInStack(this);
|
57
63
|
const { definition, authorizationModes, conflictResolution, functionSlots, transformerPlugins, predictionsBucket, stackMappings, translationBehavior, functionNameMap, outputStorageStrategy, } = props;
|
58
|
-
|
64
|
+
new backend_output_storage_1.AttributionMetadataStorage().storeAttributionMetadata(aws_cdk_lib_1.Stack.of(scope), this.stackType, path.join(__dirname, '..', 'package.json'));
|
59
65
|
const { authConfig, authSynthParameters } = (0, internal_1.convertAuthorizationModesToTransformerAuthConfig)(authorizationModes);
|
60
66
|
(0, user_defined_slots_1.validateFunctionSlots)(functionSlots ?? []);
|
61
67
|
const separatedFunctionSlots = (0, user_defined_slots_1.separateSlots)([...(functionSlots ?? []), ...definition.functionSlots]);
|
@@ -94,6 +100,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
|
|
94
100
|
...internal_1.defaultTranslationBehavior,
|
95
101
|
...(translationBehavior ?? {}),
|
96
102
|
},
|
103
|
+
...(0, data_source_config_1.parseDataSourceConfig)(definition.dataSourceDefinition),
|
97
104
|
});
|
98
105
|
this.codegenAssets = new internal_1.CodegenAssets(this, 'AmplifyCodegenAssets', { modelSchema: definition.schema });
|
99
106
|
this.resources = (0, internal_1.getGeneratedResources)(this);
|
@@ -242,7 +249,7 @@ class AmplifyGraphqlApi extends constructs_1.Construct {
|
|
242
249
|
}
|
243
250
|
exports.AmplifyGraphqlApi = AmplifyGraphqlApi;
|
244
251
|
_a = JSII_RTTI_SYMBOL_1;
|
245
|
-
AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.
|
252
|
+
AmplifyGraphqlApi[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlApi", version: "1.4.0-construct-publish-test.0" };
|
246
253
|
/**
|
247
254
|
* Given the provided scope, walk the node tree, and throw an exception if any other AmplifyGraphqlApi constructs
|
248
255
|
* are found in the stack.
|
@@ -260,4 +267,4 @@ const validateNoOtherAmplifyGraphqlApiInStack = (scope) => {
|
|
260
267
|
throw new Error('Only one AmplifyGraphqlApi is expected in a stack');
|
261
268
|
}
|
262
269
|
};
|
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==
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hbXBsaWZ5LWdyYXBocWwtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDJDQUF1QztBQUN2QywwRUFBb0U7QUFDcEUsNkNBQWlEO0FBQ2pELDZEQUFrRDtBQUVsRCxnRkFBNEg7QUFDNUgsZ0ZBQXVFO0FBRXZFLHlEQWNpQztBQVFqQyxzRUFBNEc7QUFTNUcseUNBU29CO0FBQ3BCLHNFQUFzRTtBQUN0RSw4REFBa0Y7QUFFbEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQStDOUM7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBYm5COztXQUVHO1FBQ2MsY0FBUyxHQUFHLGFBQWEsQ0FBQztRQVl6Qyx1Q0FBdUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QyxNQUFNLEVBQ0osVUFBVSxFQUNWLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YscUJBQXFCLEdBQ3RCLEdBQUcsS0FBSyxDQUFDO1FBRVYsSUFBSSxtREFBMEIsRUFBRSxDQUFDLHdCQUF3QixDQUFDLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFFdkksTUFBTSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLElBQUEsMkRBQWdELEVBQUMsa0JBQWtCLENBQUMsQ0FB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QUFDO0lBQzdELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLEVBQVUsRUFBRSxLQUF1QjtRQUNwRCxPQUFPLElBQUksNkJBQWUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVU7WUFDOUIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFqU0gsOENBa1NDOzs7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSx1Q0FBdUMsR0FBRyxDQUFDLEtBQWdCLEVBQVEsRUFBRTtJQUN6RSxNQUFNLFNBQVMsR0FBRyxJQUFBLGlDQUFnQixFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUVoRCxJQUFJLDZCQUE2QixHQUFHLEtBQUssQ0FBQztJQUMxQyxJQUFBLG9DQUFtQixFQUFDLFNBQVMsRUFBRSxDQUFDLElBQWUsRUFBRSxFQUFFO1FBQ2pELElBQUksSUFBSSxZQUFZLGlCQUFpQixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDdkQsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLDZCQUE2QixFQUFFO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztLQUN0RTtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGV4ZWN1dGVUcmFuc2Zvcm0gfSBmcm9tICdAYXdzLWFtcGxpZnkvZ3JhcGhxbC10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBOZXN0ZWRTdGFjaywgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBc3NldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgQXNzZXRQcm9wcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9ncmFwaHFsLXRyYW5zZm9ybWVyLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgQXR0cmlidXRpb25NZXRhZGF0YVN0b3JhZ2UsIFN0YWNrTWV0YWRhdGFCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5IH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2JhY2tlbmQtb3V0cHV0LXN0b3JhZ2UnO1xuaW1wb3J0IHsgZ3JhcGhxbE91dHB1dEtleSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9iYWNrZW5kLW91dHB1dC1zY2hlbWFzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhxbE91dHB1dCwgQXdzQXBwc3luY0F1dGhlbnRpY2F0aW9uVHlwZSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9iYWNrZW5kLW91dHB1dC1zY2hlbWFzJztcbmltcG9ydCB7XG4gIEFwcHN5bmNGdW5jdGlvbixcbiAgRGF0YVNvdXJjZU9wdGlvbnMsXG4gIER5bmFtb0RiRGF0YVNvdXJjZSxcbiAgRWxhc3RpY3NlYXJjaERhdGFTb3VyY2UsXG4gIEV2ZW50QnJpZGdlRGF0YVNvdXJjZSxcbiAgRXh0ZW5kZWRSZXNvbHZlclByb3BzLFxuICBIdHRwRGF0YVNvdXJjZSxcbiAgSHR0cERhdGFTb3VyY2VPcHRpb25zLFxuICBMYW1iZGFEYXRhU291cmNlLFxuICBOb25lRGF0YVNvdXJjZSxcbiAgT3BlblNlYXJjaERhdGFTb3VyY2UsXG4gIFJkc0RhdGFTb3VyY2UsXG4gIFJlc29sdmVyLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwc3luYyc7XG5pbXBvcnQgeyBJVGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgSURvbWFpbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljc2VhcmNoJztcbmltcG9ydCB7IElEb21haW4gYXMgSU9wZW5TZWFyY2hEb21haW4gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtb3BlbnNlYXJjaHNlcnZpY2UnO1xuaW1wb3J0IHsgSUV2ZW50QnVzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElTZXJ2ZXJsZXNzQ2x1c3RlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yZHMnO1xuaW1wb3J0IHsgSVNlY3JldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgeyBwYXJzZVVzZXJEZWZpbmVkU2xvdHMsIHZhbGlkYXRlRnVuY3Rpb25TbG90cywgc2VwYXJhdGVTbG90cyB9IGZyb20gJy4vaW50ZXJuYWwvdXNlci1kZWZpbmVkLXNsb3RzJztcbmltcG9ydCB0eXBlIHtcbiAgQW1wbGlmeUdyYXBocWxBcGlSZXNvdXJjZXMsXG4gIEFtcGxpZnlHcmFwaHFsQXBpUHJvcHMsXG4gIEZ1bmN0aW9uU2xvdCxcbiAgSUJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3ksXG4gIEFkZEZ1bmN0aW9uUHJvcHMsXG4gIENvbmZsaWN0UmVzb2x1dGlvbixcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBjb252ZXJ0QXV0aG9yaXphdGlvbk1vZGVzVG9UcmFuc2Zvcm1lckF1dGhDb25maWcsXG4gIGNvbnZlcnRUb1Jlc29sdmVyQ29uZmlnLFxuICBkZWZhdWx0VHJhbnNsYXRpb25CZWhhdmlvcixcbiAgQXNzZXRNYW5hZ2VyLFxuICBnZXRHZW5lcmF0ZWRSZXNvdXJjZXMsXG4gIGdldEdlbmVyYXRlZEZ1bmN0aW9uU2xvdHMsXG4gIENvZGVnZW5Bc3NldHMsXG4gIGdldEFkZGl0aW9uYWxBdXRoZW50aWNhdGlvblR5cGVzLFxufSBmcm9tICcuL2ludGVybmFsJztcbmltcG9ydCB7IHBhcnNlRGF0YVNvdXJjZUNvbmZpZyB9IGZyb20gJy4vaW50ZXJuYWwvZGF0YS1zb3VyY2UtY29uZmlnJztcbmltcG9ydCB7IGdldFN0YWNrRm9yU2NvcGUsIHdhbGtBbmRQcm9jZXNzTm9kZXMgfSBmcm9tICcuL2ludGVybmFsL2NvbnN0cnVjdC10cmVlJztcblxuLyoqXG4gKiBMMyBDb25zdHJ1Y3Qgd2hpY2ggaW52b2tlcyB0aGUgQW1wbGlmeSBUcmFuc2Zvcm1lciBQYXR0ZXJuIG92ZXIgYW4gaW5wdXQgR3JhcGhxbCBTY2hlbWEuXG4gKlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBxdWlja2x5IGRlZmluZSBhcHBzeW5jIGFwaXMgd2hpY2ggc3VwcG9ydCBmdWxsIENSVUQrTGlzdCBhbmQgU3Vic2NyaXB0aW9ucywgcmVsYXRpb25zaGlwcyxcbiAqIGF1dGgsIHNlYXJjaCBvdmVyIGRhdGEsIHRoZSBhYmlsaXR5IHRvIGluamVjdCBjdXN0b20gYnVzaW5lc3MgbG9naWMgYW5kIHF1ZXJ5L211dGF0aW9uIG9wZXJhdGlvbnMsIGFuZCBjb25uZWN0IHRvIE1MIHNlcnZpY2VzLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCByZWZlciB0byB0aGUgZG9jcyBsaW5rcyBiZWxvdzpcbiAqIERhdGEgTW9kZWxpbmcgLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvZGF0YS1tb2RlbGluZy9cbiAqIEF1dGhvcml6YXRpb24gLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvYXV0aG9yaXphdGlvbi1ydWxlcy9cbiAqIEN1c3RvbSBCdXNpbmVzcyBMb2dpYyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9jdXN0b20tYnVzaW5lc3MtbG9naWMvXG4gKiBTZWFyY2ggLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvc2VhcmNoLWFuZC1yZXN1bHQtYWdncmVnYXRpb25zL1xuICogTUwgU2VydmljZXMgLSBodHRwczovL2RvY3MuYW1wbGlmeS5hd3MvY2xpL2dyYXBocWwvY29ubmVjdC10by1tYWNoaW5lLWxlYXJuaW5nLXNlcnZpY2VzL1xuICpcbiAqIEZvciBhIGZ1bGwgcmVmZXJlbmNlIG9mIHRoZSBzdXBwb3J0ZWQgY3VzdG9tIGdyYXBocWwgZGlyZWN0aXZlcyAtIGh0dHBzOi8vZG9jcy5hbXBsaWZ5LmF3cy9jbGkvZ3JhcGhxbC9kaXJlY3RpdmVzLXJlZmVyZW5jZS9cbiAqXG4gKiBUaGUgb3V0cHV0IG9mIHRoaXMgY29uc3RydWN0IGlzIGEgbWFwcGluZyBvZiBMMiBvciBMMSByZXNvdXJjZXMgZ2VuZXJhdGVkIGJ5IHRoZSB0cmFuc2Zvcm1lciwgd2hpY2ggZ2VuZXJhbGx5IGZvbGxvdyB0aGUgYWNjZXNzIHBhdHRlcm5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgIGNvbnN0IGFwaSA9IG5ldyBBbXBsaWZ5R3JhcGhRbEFwaSh0aGlzLCAnYXBpJywgeyA8cGFyYW1zPiB9KTtcbiAqICAgLy8gQWNjZXNzIEwyIHJlc291cmNlcyB1bmRlciBgLnJlc291cmNlc2BcbiAqICAgYXBpLnJlc291cmNlcy50YWJsZXNbXCJUb2RvXCJdLnRhYmxlQXJuO1xuICpcbiAqICAgLy8gQWNjZXNzIEwxIHJlc291cmNlcyB1bmRlciBgLnJlc291cmNlcy5jZm5SZXNvdXJjZXNgXG4gKiAgIGFwaS5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkueHJheUVuYWJsZWQgPSB0cnVlO1xuICogICBPYmplY3QudmFsdWVzKGFwaS5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmblRhYmxlcykuZm9yRWFjaCh0YWJsZSA9PiB7XG4gKiAgICAgdGFibGUucG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24gPSB7IHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiBmYWxzZSB9O1xuICogICB9KTtcbiAqIGBgYFxuICogYHJlc291cmNlcy48UmVzb3VyY2VUeXBlPi48UmVzb3VyY2VOYW1lPmAgLSB5b3UgY2FuIHRoZW4gcGVyZm9ybSBhbnkgQ0RLIGFjdGlvbiBvbiB0aGVzZSByZXN1bHRpbmcgcmVzb3VyZWNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlHcmFwaHFsQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBMMSBhbmQgTDIgQ0RLIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZXM6IEFtcGxpZnlHcmFwaHFsQXBpUmVzb3VyY2VzO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZWQgYXNzZXRzIHJlcXVpcmVkIGZvciBjb2RlZ2VuIHN0ZXBzLiBQZXJzaXN0ZWQgaW4gb3JkZXIgdG8gcmVuZGVyIGFzIHBhcnQgb2YgdGhlIG91dHB1dCBzdHJhdGVneS5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29kZWdlbkFzc2V0czogQ29kZWdlbkFzc2V0cztcblxuICAvKipcbiAgICogUmVzb2x2ZXJzIGdlbmVyYXRlZCBieSB0aGUgdHJhbnNmb3JtIHByb2Nlc3MsIHBlcnNpc3RlZCBvbiB0aGUgc2lkZSBpbiBvcmRlciB0byBmYWNpbGl0YXRlIHB1bGxpbmcgYSBtYW5pZmVzdFxuICAgKiBmb3IgdGhlIHB1cnBvc2VzIG9mIGluc3BlY3RpbmcgYW5kIHByb2R1Y2luZyBvdmVycmlkZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ2VuZXJhdGVkRnVuY3Rpb25TbG90czogRnVuY3Rpb25TbG90W107XG5cbiAgLyoqXG4gICAqIEdyYXBocWwgVVJMIEZvciB0aGUgZ2VuZXJhdGVkIEFQSS4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYXBocWxVcmw6IHN0cmluZztcblxuICAvKipcbiAgICogUmVhbHRpbWUgVVJMIEZvciB0aGUgZ2VuZXJhdGVkIEFQSS4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlYWx0aW1lVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlZCBBcGkgS2V5IGlmIGdlbmVyYXRlZC4gTWF5IGJlIGEgQ0RLIFRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaUtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZWQgQXBpIElkLiBNYXkgYmUgYSBDREsgVG9rZW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29uZmxpY3QgcmVzb2x1dGlvbiBzZXR0aW5nXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZsaWN0UmVzb2x1dGlvbjogQ29uZmxpY3RSZXNvbHV0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBCZSB2ZXJ5IGNhcmVmdWwgZWRpdGluZyB0aGlzIHZhbHVlLiBUaGlzIGlzIHRoZSBzdHJpbmcgdGhhdCBpcyB1c2VkIHRvIGlkZW50aWZ5IGdyYXBocWwgc3RhY2tzIGluIEJJIG1ldHJpY3NcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tUeXBlID0gJ2FwaS1BcHBTeW5jJztcblxuICAvKipcbiAgICogTmV3IEFtcGxpZnlHcmFwaHFsQXBpIGNvbnN0cnVjdCwgdGhpcyB3aWxsIGNyZWF0ZSBhbiBhcHBzeW5jIGFwaSB3aXRoIGF1dGhvcml6YXRpb24sIGEgc2NoZW1hLCBhbmQgYWxsIG5lY2Vzc2FyeSByZXNvbHZlcnMsIGZ1bmN0aW9ucyxcbiAgICogYW5kIGRhdGFzb3VyY2VzLlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRvIGNyZWF0ZSB0aGlzIGNvbnN0cnVjdCB3aXRoaW4uXG4gICAqIEBwYXJhbSBpZCB0aGUgaWQgdG8gdXNlIGZvciB0aGlzIGFwaS5cbiAgICogQHBhcmFtIHByb3BzIHRoZSBwcm9wZXJ0aWVzIHVzZWQgdG8gY29uZmlndXJlIHRoZSBnZW5lcmF0ZWQgYXBpLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFtcGxpZnlHcmFwaHFsQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdmFsaWRhdGVOb090aGVyQW1wbGlmeUdyYXBocWxBcGlJblN0YWNrKHRoaXMpO1xuXG4gICAgY29uc3Qge1xuICAgICAgZGVmaW5pdGlvbixcbiAgICAgIGF1dGhvcml6YXRpb25Nb2RlcyxcbiAgICAgIGNvbmZsaWN0UmVzb2x1dGlvbixcbiAgICAgIGZ1bmN0aW9uU2xvdHMsXG4gICAgICB0cmFuc2Zvcm1lclBsdWdpbnMsXG4gICAgICBwcmVkaWN0aW9uc0J1Y2tldCxcbiAgICAgIHN0YWNrTWFwcGluZ3MsXG4gICAgICB0cmFuc2xhdGlvbkJlaGF2aW9yLFxuICAgICAgZnVuY3Rpb25OYW1lTWFwLFxuICAgICAgb3V0cHV0U3RvcmFnZVN0cmF0ZWd5LFxuICAgIH0gPSBwcm9wcztcblxuICAgIG5ldyBBdHRyaWJ1dGlvbk1ldGFkYXRhU3RvcmFnZSgpLnN0b3JlQXR0cmlidXRpb25NZXRhZGF0YShTdGFjay5vZihzY29wZSksIHRoaXMuc3RhY2tUeXBlLCBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAncGFja2FnZS5qc29uJykpO1xuXG4gICAgY29uc3QgeyBhdXRoQ29uZmlnLCBhdXRoU3ludGhQYXJhbWV0ZXJzIH0gPSBjb252ZXJ0QXV0aG9yaXphdGlvbk1vZGVzVG9UcmFuc2Zvcm1lckF1dGhDb25maWcoYXV0aG9yaXphdGlvbk1vZGVzKTtcblxuICAgIHZhbGlkYXRlRnVuY3Rpb25TbG90cyhmdW5jdGlvblNsb3RzID8/IFtdKTtcbiAgICBjb25zdCBzZXBhcmF0ZWRGdW5jdGlvblNsb3RzID0gc2VwYXJhdGVTbG90cyhbLi4uKGZ1bmN0aW9uU2xvdHMgPz8gW10pLCAuLi5kZWZpbml0aW9uLmZ1bmN0aW9uU2xvdHNdKTtcblxuICAgIC8vIEFsbG93IGFtcGxpZnlFbnZpcm9ubWVudE5hbWUgdG8gYmUgcmV0cmlldmUgZnJvbSBjb250ZXh0LCBhbmQgdXNlIHZhbHVlICdOT05FJyBpZiBubyB2YWx1ZSBjYW4gYmUgZm91bmQuXG4gICAgLy8gYW1wbGlmeUVudmlyb25tZW50TmFtZSBpcyByZXF1aXJlZCBmb3IgbG9naWNhbCBpZCBzdWZmaXhpbmcsIGFzIHdlbGwgYXMgRXhwb3J0cyBmcm9tIHRoZSBuZXN0ZWQgc3RhY2tzLlxuICAgIC8vIEFsbG93IGV4cG9ydCBzbyBjdXN0b21lcnMgY2FuIHJldXNlIHRoZSBlbnYgaW4gdGhlaXIgb3duIHJlZmVyZW5jZXMgZG93bnN0cmVhbS5cbiAgICBjb25zdCBhbXBsaWZ5RW52aXJvbm1lbnROYW1lID0gdGhpcy5ub2RlLnRyeUdldENvbnRleHQoJ2FtcGxpZnlFbnZpcm9ubWVudE5hbWUnKSA/PyAnTk9ORSc7XG4gICAgaWYgKGFtcGxpZnlFbnZpcm9ubWVudE5hbWUubGVuZ3RoID4gOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBvciBjZGsgLS1jb250ZXh0IGVudiBtdXN0IGhhdmUgYSBsZW5ndGggPD0gOCwgZm91bmQgJHthbXBsaWZ5RW52aXJvbm1lbnROYW1lfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGFzc2V0TWFuYWdlciA9IG5ldyBBc3NldE1hbmFnZXIoKTtcblxuICAgIGV4ZWN1dGVUcmFuc2Zvcm0oe1xuICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICBuZXN0ZWRTdGFja1Byb3ZpZGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IChuZXN0ZWRTdGFja1Njb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZykgPT4gbmV3IE5lc3RlZFN0YWNrKG5lc3RlZFN0YWNrU2NvcGUsIG5hbWUpLFxuICAgICAgfSxcbiAgICAgIGFzc2V0UHJvdmlkZXI6IHtcbiAgICAgICAgcHJvdmlkZTogKGFzc2V0U2NvcGU6IENvbnN0cnVjdCwgYXNzZXRJZDogc3RyaW5nLCBhc3NldFByb3BzOiBBc3NldFByb3BzKSA9PlxuICAgICAgICAgIG5ldyBBc3NldChhc3NldFNjb3BlLCBhc3NldElkLCB7IHBhdGg6IGFzc2V0TWFuYWdlci5hZGRBc3NldChhc3NldFByb3BzLmZpbGVOYW1lLCBhc3NldFByb3BzLmZpbGVDb250ZW50KSB9KSxcbiAgICAgIH0sXG4gICAgICBzeW50aFBhcmFtZXRlcnM6IHtcbiAgICAgICAgYW1wbGlmeUVudmlyb25tZW50TmFtZTogYW1wbGlmeUVudmlyb25tZW50TmFtZSxcbiAgICAgICAgYXBpTmFtZTogcHJvcHMuYXBpTmFtZSA/PyBpZCxcbiAgICAgICAgLi4uYXV0aFN5bnRoUGFyYW1ldGVycyxcbiAgICAgIH0sXG4gICAgICBzY2hlbWE6IGRlZmluaXRpb24uc2NoZW1hLFxuICAgICAgdXNlckRlZmluZWRTbG90czogcGFyc2VVc2VyRGVmaW5lZFNsb3RzKHNlcGFyYXRlZEZ1bmN0aW9uU2xvdHMpLFxuICAgICAgdHJhbnNmb3JtZXJzRmFjdG9yeUFyZ3M6IHtcbiAgICAgICAgY3VzdG9tVHJhbnNmb3JtZXJzOiB0cmFuc2Zvcm1lclBsdWdpbnMgPz8gW10sXG4gICAgICAgIC4uLihwcmVkaWN0aW9uc0J1Y2tldCA/IHsgc3RvcmFnZUNvbmZpZzogeyBidWNrZXROYW1lOiBwcmVkaWN0aW9uc0J1Y2tldC5idWNrZXROYW1lIH0gfSA6IHt9KSxcbiAgICAgICAgZnVuY3Rpb25OYW1lTWFwLFxuICAgICAgfSxcbiAgICAgIGF1dGhDb25maWcsXG4gICAgICBzdGFja01hcHBpbmc6IHN0YWNrTWFwcGluZ3MgPz8ge30sXG4gICAgICByZXNvbHZlckNvbmZpZzogY29uZmxpY3RSZXNvbHV0aW9uID8gY29udmVydFRvUmVzb2x2ZXJDb25maWcoY29uZmxpY3RSZXNvbHV0aW9uKSA6IHVuZGVmaW5lZCxcbiAgICAgIHRyYW5zZm9ybVBhcmFtZXRlcnM6IHtcbiAgICAgICAgLi4uZGVmYXVsdFRyYW5zbGF0aW9uQmVoYXZpb3IsXG4gICAgICAgIC4uLih0cmFuc2xhdGlvbkJlaGF2aW9yID8/IHt9KSxcbiAgICAgIH0sXG4gICAgICAuLi5wYXJzZURhdGFTb3VyY2VDb25maWcoZGVmaW5pdGlvbi5kYXRhU291cmNlRGVmaW5pdGlvbiksXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvZGVnZW5Bc3NldHMgPSBuZXcgQ29kZWdlbkFzc2V0cyh0aGlzLCAnQW1wbGlmeUNvZGVnZW5Bc3NldHMnLCB7IG1vZGVsU2NoZW1hOiBkZWZpbml0aW9uLnNjaGVtYSB9KTtcblxuICAgIHRoaXMucmVzb3VyY2VzID0gZ2V0R2VuZXJhdGVkUmVzb3VyY2VzKHRoaXMpO1xuICAgIHRoaXMuY29uZmxpY3RSZXNvbHV0aW9uID0gY29uZmxpY3RSZXNvbHV0aW9uO1xuICAgIHRoaXMuZ2VuZXJhdGVkRnVuY3Rpb25TbG90cyA9IGdldEdlbmVyYXRlZEZ1bmN0aW9uU2xvdHMoYXNzZXRNYW5hZ2VyLnJlc29sdmVyQXNzZXRzKTtcbiAgICB0aGlzLnN0b3JlT3V0cHV0KG91dHB1dFN0b3JhZ2VTdHJhdGVneSk7XG5cbiAgICB0aGlzLmFwaUlkID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0ckFwaUlkO1xuICAgIHRoaXMuZ3JhcGhxbFVybCA9IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF0dHJHcmFwaFFsVXJsO1xuICAgIHRoaXMucmVhbHRpbWVVcmwgPSB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdHRyUmVhbHRpbWVVcmw7XG4gICAgdGhpcy5hcGlLZXkgPSB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuQXBpS2V5Py5hdHRyQXBpS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBncmFwaHFsIGFwaSBvdXRwdXQgdG8gYmUgdXNlZCBmb3IgY2xpZW50IGNvbmZpZyBnZW5lcmF0aW9uXG4gICAqIEBwYXJhbSBvdXRwdXRTdG9yYWdlU3RyYXRlZ3kgU3RyYXRlZ3kgdG8gc3RvcmUgY29uc3RydWN0IG91dHB1dHMuIElmIG5vIHN0cmF0ZWd5IGlzIHByb3ZpZGVkIGEgZGVmYXVsdCBzdHJhdGVneSB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICBwcml2YXRlIHN0b3JlT3V0cHV0KFxuICAgIG91dHB1dFN0b3JhZ2VTdHJhdGVneTogSUJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3kgPSBuZXcgU3RhY2tNZXRhZGF0YUJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3koU3RhY2sub2YodGhpcykpLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBzdGFjayA9IFN0YWNrLm9mKHRoaXMpO1xuICAgIGNvbnN0IG91dHB1dDogR3JhcGhxbE91dHB1dCA9IHtcbiAgICAgIHZlcnNpb246ICcxJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgYXdzQXBwc3luY0FwaUlkOiB0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaS5hdHRyQXBpSWQsXG4gICAgICAgIGF3c0FwcHN5bmNBcGlFbmRwb2ludDogdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkdyYXBocWxBcGkuYXR0ckdyYXBoUWxVcmwsXG4gICAgICAgIGF3c0FwcHN5bmNBdXRoZW50aWNhdGlvblR5cGU6IHRoaXMucmVzb3VyY2VzLmNmblJlc291cmNlcy5jZm5HcmFwaHFsQXBpLmF1dGhlbnRpY2F0aW9uVHlwZSBhcyBBd3NBcHBzeW5jQXV0aGVudGljYXRpb25UeXBlLFxuICAgICAgICBhd3NBcHBzeW5jUmVnaW9uOiBzdGFjay5yZWdpb24sXG4gICAgICAgIGFtcGxpZnlBcGlNb2RlbFNjaGVtYVMzVXJpOiB0aGlzLmNvZGVnZW5Bc3NldHMubW9kZWxTY2hlbWFTM1VyaSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuQXBpS2V5KSB7XG4gICAgICBvdXRwdXQucGF5bG9hZC5hd3NBcHBzeW5jQXBpS2V5ID0gdGhpcy5yZXNvdXJjZXMuY2ZuUmVzb3VyY2VzLmNmbkFwaUtleS5hdHRyQXBpS2V5O1xuICAgIH1cblxuICAgIGNvbnN0IGFkZGl0aW9uYWxBdXRoVHlwZXMgPSBnZXRBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyh0aGlzLnJlc291cmNlcy5jZm5SZXNvdXJjZXMuY2ZuR3JhcGhxbEFwaSk7XG4gICAgaWYgKGFkZGl0aW9uYWxBdXRoVHlwZXMpIHtcbiAgICAgIG91dHB1dC5wYXlsb2FkLmF3c0FwcHN5bmNBZGRpdGlvbmFsQXV0aGVudGljYXRpb25UeXBlcyA9IGFkZGl0aW9uYWxBdXRoVHlwZXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmxpY3RSZXNvbHV0aW9uPy5wcm9qZWN0Py5oYW5kbGVyVHlwZSkge1xuICAgICAgb3V0cHV0LnBheWxvYWQuYXdzQXBwc3luY0NvbmZsaWN0UmVzb2x1dGlvbk1vZGUgPSB0aGlzLmNvbmZsaWN0UmVzb2x1dGlvbj8ucHJvamVjdD8uaGFuZGxlclR5cGU7XG4gICAgfVxuXG4gICAgb3V0cHV0U3RvcmFnZVN0cmF0ZWd5LmFkZEJhY2tlbmRPdXRwdXRFbnRyeShncmFwaHFsT3V0cHV0S2V5LCBvdXRwdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xsb3dpbmcgYXJlIHByb3h5IG1ldGhvZHMgdG8gdGhlIEwyIElHcmFwaHFsQXBpIGludGVyZmFjZSwgdG8gZmFjaWxpdGF0ZSBlYXNpZXIgdXNlIG9mIHRoZSBMMyB3aXRob3V0IG5lZWRpbmdcbiAgICogdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIHJlc291cmNlcy5cbiAgICovXG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBEeW5hbW9EQiBkYXRhIHNvdXJjZSB0byB0aGlzIEFQSS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIHRhYmxlIFRoZSBEeW5hbW9EQiB0YWJsZSBiYWNraW5nIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZER5bmFtb0RiRGF0YVNvdXJjZShpZDogc3RyaW5nLCB0YWJsZTogSVRhYmxlLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBEeW5hbW9EYkRhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZER5bmFtb0RiRGF0YVNvdXJjZShpZCwgdGFibGUsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBlbGFzdGljc2VhcmNoIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBhZGRPcGVuU2VhcmNoRGF0YVNvdXJjZWBcbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gZG9tYWluIFRoZSBlbGFzdGljc2VhcmNoIGRvbWFpbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkRWxhc3RpY3NlYXJjaERhdGFTb3VyY2UoaWQ6IHN0cmluZywgZG9tYWluOiBJRG9tYWluLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBFbGFzdGljc2VhcmNoRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkRWxhc3RpY3NlYXJjaERhdGFTb3VyY2UoaWQsIGRvbWFpbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIEV2ZW50QnJpZGdlIGRhdGEgc291cmNlIHRvIHRoaXMgYXBpLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gZXZlbnRCdXMgVGhlIEV2ZW50QnJpZGdlIEV2ZW50QnVzIG9uIHdoaWNoIHRvIHB1dCBldmVudHMuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZEV2ZW50QnJpZGdlRGF0YVNvdXJjZShpZDogc3RyaW5nLCBldmVudEJ1czogSUV2ZW50QnVzLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBFdmVudEJyaWRnZURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZEV2ZW50QnJpZGdlRGF0YVNvdXJjZShpZCwgZXZlbnRCdXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBodHRwIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gZW5kcG9pbnQgVGhlIGh0dHAgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGlzIGRhdGEgc291cmNlLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgc291cmNlLlxuICAgKi9cbiAgcHVibGljIGFkZEh0dHBEYXRhU291cmNlKGlkOiBzdHJpbmcsIGVuZHBvaW50OiBzdHJpbmcsIG9wdGlvbnM/OiBIdHRwRGF0YVNvdXJjZU9wdGlvbnMpOiBIdHRwRGF0YVNvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuYWRkSHR0cERhdGFTb3VyY2UoaWQsIGVuZHBvaW50LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgTGFtYmRhIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gbGFtYmRhRnVuY3Rpb24gVGhlIExhbWJkYSBmdW5jdGlvbiB0byBjYWxsIHRvIGludGVyYWN0IHdpdGggdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTGFtYmRhRGF0YVNvdXJjZShpZDogc3RyaW5nLCBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uLCBvcHRpb25zPzogRGF0YVNvdXJjZU9wdGlvbnMpOiBMYW1iZGFEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRMYW1iZGFEYXRhU291cmNlKGlkLCBsYW1iZGFGdW5jdGlvbiwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IGR1bW15IGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogVXNlZnVsIGZvciBwaXBlbGluZSByZXNvbHZlcnMgYW5kIGZvciBiYWNrZW5kIGNoYW5nZXMgdGhhdCBkb24ndCByZXF1aXJlIGEgZGF0YSBzb3VyY2UuXG4gICAqIEBwYXJhbSBpZCBUaGUgZGF0YSBzb3VyY2UncyBpZC5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkTm9uZURhdGFTb3VyY2UoaWQ6IHN0cmluZywgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogTm9uZURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZE5vbmVEYXRhU291cmNlKGlkLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZCBhIG5ldyBPcGVuU2VhcmNoIGRhdGEgc291cmNlIHRvIHRoaXMgQVBJLiBUaGlzIGlzIGEgcHJveHkgbWV0aG9kIHRvIHRoZSBMMiBHcmFwaHFsQXBpIENvbnN0cnVjdC5cbiAgICogQHBhcmFtIGlkIFRoZSBkYXRhIHNvdXJjZSdzIGlkLlxuICAgKiBAcGFyYW0gZG9tYWluIFRoZSBPcGVuU2VhcmNoIGRvbWFpbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgZGF0YSBzb3VyY2UuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgZGF0YSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkT3BlblNlYXJjaERhdGFTb3VyY2UoaWQ6IHN0cmluZywgZG9tYWluOiBJT3BlblNlYXJjaERvbWFpbiwgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zKTogT3BlblNlYXJjaERhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlcy5ncmFwaHFsQXBpLmFkZE9wZW5TZWFyY2hEYXRhU291cmNlKGlkLCBkb21haW4sIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBSZHMgZGF0YSBzb3VyY2UgdG8gdGhpcyBBUEkuIFRoaXMgaXMgYSBwcm94eSBtZXRob2QgdG8gdGhlIEwyIEdyYXBocWxBcGkgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgVGhlIGRhdGEgc291cmNlJ3MgaWQuXG4gICAqIEBwYXJhbSBzZXJ2ZXJsZXNzQ2x1c3RlciBUaGUgc2VydmVybGVzcyBjbHVzdGVyIHRvIGludGVyYWN0IHdpdGggdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHBhcmFtIHNlY3JldFN0b3JlIFRoZSBzZWNyZXQgc3RvcmUgdGhhdCBjb250YWlucyB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGZvciB0aGUgc2VydmVybGVzcyBjbHVzdGVyLlxuICAgKiBAcGFyYW0gZGF0YWJhc2VOYW1lIFRoZSBvcHRpb25hbCBuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byB1c2Ugd2l0aGluIHRoZSBjbHVzdGVyLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkYXRhIHNvdXJjZS5cbiAgICogQHJldHVybnMgdGhlIGdlbmVyYXRlZCBkYXRhIHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBhZGRSZHNEYXRhU291cmNlKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgc2VydmVybGVzc0NsdXN0ZXI6IElTZXJ2ZXJsZXNzQ2x1c3RlcixcbiAgICBzZWNyZXRTdG9yZTogSVNlY3JldCxcbiAgICBkYXRhYmFzZU5hbWU/OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IERhdGFTb3VyY2VPcHRpb25zLFxuICApOiBSZHNEYXRhU291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaS5hZGRSZHNEYXRhU291cmNlKGlkLCBzZXJ2ZXJsZXNzQ2x1c3Rlciwgc2VjcmV0U3RvcmUsIGRhdGFiYXNlTmFtZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcmVzb2x2ZXIgdG8gdGhlIGFwaS4gVGhpcyBpcyBhIHByb3h5IG1ldGhvZCB0byB0aGUgTDIgR3JhcGhxbEFwaSBDb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBpZCBUaGUgcmVzb2x2ZXIncyBpZC5cbiAgICogQHBhcmFtIHByb3BzIHRoZSByZXNvbHZlciBwcm9wZXJ0aWVzLlxuICAgKiBAcmV0dXJucyB0aGUgZ2VuZXJhdGVkIHJlc29sdmVyLlxuICAgKi9cbiAgcHVibGljIGFkZFJlc29sdmVyKGlkOiBzdHJpbmcsIHByb3BzOiBFeHRlbmRlZFJlc29sdmVyUHJvcHMpOiBSZXNvbHZlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzLmdyYXBocWxBcGkuY3JlYXRlUmVzb2x2ZXIoaWQsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gYXBwc3luYyBmdW5jdGlvbiB0byB0aGUgYXBpLlxuICAgKiBAcGFyYW0gaWQgdGhlIGZ1bmN0aW9uJ3MgaWQuXG4gICAqIEByZXR1cm5zIHRoZSBnZW5lcmF0ZWQgYXBwc3luYyBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhZGRGdW5jdGlvbihpZDogc3RyaW5nLCBwcm9wczogQWRkRnVuY3Rpb25Qcm9wcyk6IEFwcHN5bmNGdW5jdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBBcHBzeW5jRnVuY3Rpb24odGhpcywgaWQsIHtcbiAgICAgIGFwaTogdGhpcy5yZXNvdXJjZXMuZ3JhcGhxbEFwaSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogR2l2ZW4gdGhlIHByb3ZpZGVkIHNjb3BlLCB3YWxrIHRoZSBub2RlIHRyZWUsIGFuZCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYW55IG90aGVyIEFtcGxpZnlHcmFwaHFsQXBpIGNvbnN0cnVjdHNcbiAqIGFyZSBmb3VuZCBpbiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIHRoaXMgY29uc3RydWN0IGlzIGNyZWF0ZWQgaW4uXG4gKi9cbmNvbnN0IHZhbGlkYXRlTm9PdGhlckFtcGxpZnlHcmFwaHFsQXBpSW5TdGFjayA9IChzY29wZTogQ29uc3RydWN0KTogdm9pZCA9PiB7XG4gIGNvbnN0IHJvb3RTdGFjayA9IGdldFN0YWNrRm9yU2NvcGUoc2NvcGUsIHRydWUpO1xuXG4gIGxldCB3YXNPdGhlckFtcGxpZnlHcmFwaGxBcGlGb3VuZCA9IGZhbHNlO1xuICB3YWxrQW5kUHJvY2Vzc05vZGVzKHJvb3RTdGFjaywgKG5vZGU6IENvbnN0cnVjdCkgPT4ge1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgQW1wbGlmeUdyYXBocWxBcGkgJiYgc2NvcGUgIT09IG5vZGUpIHtcbiAgICAgIHdhc090aGVyQW1wbGlmeUdyYXBobEFwaUZvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh3YXNPdGhlckFtcGxpZnlHcmFwaGxBcGlGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignT25seSBvbmUgQW1wbGlmeUdyYXBocWxBcGkgaXMgZXhwZWN0ZWQgaW4gYSBzdGFjaycpO1xuICB9XG59O1xuIl19
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import { IAmplifyGraphqlDefinition } from './types';
|
1
|
+
import { IAmplifyGraphqlDefinition, ModelDataSourceDefinition } from './types';
|
2
|
+
export declare const DEFAULT_MODEL_DATA_SOURCE_DEFINITION: ModelDataSourceDefinition;
|
2
3
|
/**
|
3
4
|
* Class exposing utilities to produce IAmplifyGraphqlDefinition objects given various inputs.
|
4
5
|
*/
|
@@ -6,13 +7,29 @@ export declare class AmplifyGraphqlDefinition {
|
|
6
7
|
/**
|
7
8
|
* Produce a schema definition from a string input
|
8
9
|
* @param schema the graphql input as a string
|
10
|
+
* @param modelDataSourceDefinition the provision definition for `@model` datasource. The DynamoDB from CloudFormation will be used by default.
|
11
|
+
* @experimental modelDataSourceDefinition
|
9
12
|
* @returns a fully formed amplify graphql definition
|
10
13
|
*/
|
11
|
-
static fromString(schema: string): IAmplifyGraphqlDefinition;
|
14
|
+
static fromString(schema: string, modelDataSourceDefinition?: ModelDataSourceDefinition): IAmplifyGraphqlDefinition;
|
12
15
|
/**
|
13
16
|
* Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema
|
14
17
|
* @param filePaths one or more paths to the graphql files to process
|
15
18
|
* @returns a fully formed amplify graphql definition
|
16
19
|
*/
|
17
20
|
static fromFiles(...filePaths: string[]): IAmplifyGraphqlDefinition;
|
21
|
+
/**
|
22
|
+
* Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema
|
23
|
+
* @experimental
|
24
|
+
* @param filePaths one or more paths to the graphql files to process
|
25
|
+
* @param modelDataSourceDefinition the provision definition for `@model` datasource. The DynamoDB from CloudFormation will be used by default.
|
26
|
+
* @returns a fully formed amplify graphql definition
|
27
|
+
*/
|
28
|
+
static fromFilesAndDefinition(filePaths: string | string[], modelDataSourceDefinition?: ModelDataSourceDefinition): IAmplifyGraphqlDefinition;
|
29
|
+
/**
|
30
|
+
* Combines multiple IAmplifyGraphqlDefinitions into a single definition.
|
31
|
+
* @experimental
|
32
|
+
* @param definitions the definitions to combine
|
33
|
+
*/
|
34
|
+
static combine(definitions: IAmplifyGraphqlDefinition[]): IAmplifyGraphqlDefinition;
|
18
35
|
}
|
@@ -1,10 +1,18 @@
|
|
1
1
|
"use strict";
|
2
2
|
var _a;
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
-
exports.AmplifyGraphqlDefinition = void 0;
|
4
|
+
exports.AmplifyGraphqlDefinition = exports.DEFAULT_MODEL_DATA_SOURCE_DEFINITION = void 0;
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
6
6
|
const os = require("os");
|
7
7
|
const aws_appsync_1 = require("aws-cdk-lib/aws-appsync");
|
8
|
+
const internal_1 = require("./internal");
|
9
|
+
exports.DEFAULT_MODEL_DATA_SOURCE_DEFINITION = {
|
10
|
+
name: 'DefaultDynamoDB',
|
11
|
+
strategy: {
|
12
|
+
dbType: 'DYNAMODB',
|
13
|
+
provisionStrategy: 'DEFAULT',
|
14
|
+
},
|
15
|
+
};
|
8
16
|
/**
|
9
17
|
* Class exposing utilities to produce IAmplifyGraphqlDefinition objects given various inputs.
|
10
18
|
*/
|
@@ -12,12 +20,15 @@ class AmplifyGraphqlDefinition {
|
|
12
20
|
/**
|
13
21
|
* Produce a schema definition from a string input
|
14
22
|
* @param schema the graphql input as a string
|
23
|
+
* @param modelDataSourceDefinition the provision definition for `@model` datasource. The DynamoDB from CloudFormation will be used by default.
|
24
|
+
* @experimental modelDataSourceDefinition
|
15
25
|
* @returns a fully formed amplify graphql definition
|
16
26
|
*/
|
17
|
-
static fromString(schema) {
|
27
|
+
static fromString(schema, modelDataSourceDefinition = exports.DEFAULT_MODEL_DATA_SOURCE_DEFINITION) {
|
18
28
|
return {
|
19
29
|
schema,
|
20
30
|
functionSlots: [],
|
31
|
+
dataSourceDefinition: (0, internal_1.constructDataSourceDefinitionMap)(schema, modelDataSourceDefinition),
|
21
32
|
};
|
22
33
|
}
|
23
34
|
/**
|
@@ -26,13 +37,54 @@ class AmplifyGraphqlDefinition {
|
|
26
37
|
* @returns a fully formed amplify graphql definition
|
27
38
|
*/
|
28
39
|
static fromFiles(...filePaths) {
|
40
|
+
if (!Array.isArray(filePaths)) {
|
41
|
+
filePaths = [filePaths];
|
42
|
+
}
|
43
|
+
const schema = filePaths.map((filePath) => new aws_appsync_1.SchemaFile({ filePath }).definition).join(os.EOL);
|
29
44
|
return {
|
30
|
-
schema
|
45
|
+
schema,
|
46
|
+
functionSlots: [],
|
47
|
+
dataSourceDefinition: (0, internal_1.constructDataSourceDefinitionMap)(schema, exports.DEFAULT_MODEL_DATA_SOURCE_DEFINITION),
|
48
|
+
};
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
* Convert one or more appsync SchemaFile objects into an Amplify Graphql Schema
|
52
|
+
* @experimental
|
53
|
+
* @param filePaths one or more paths to the graphql files to process
|
54
|
+
* @param modelDataSourceDefinition the provision definition for `@model` datasource. The DynamoDB from CloudFormation will be used by default.
|
55
|
+
* @returns a fully formed amplify graphql definition
|
56
|
+
*/
|
57
|
+
static fromFilesAndDefinition(filePaths, modelDataSourceDefinition = exports.DEFAULT_MODEL_DATA_SOURCE_DEFINITION) {
|
58
|
+
if (!Array.isArray(filePaths)) {
|
59
|
+
filePaths = [filePaths];
|
60
|
+
}
|
61
|
+
const schema = filePaths.map((filePath) => new aws_appsync_1.SchemaFile({ filePath }).definition).join(os.EOL);
|
62
|
+
return {
|
63
|
+
schema,
|
64
|
+
functionSlots: [],
|
65
|
+
dataSourceDefinition: (0, internal_1.constructDataSourceDefinitionMap)(schema, modelDataSourceDefinition),
|
66
|
+
};
|
67
|
+
}
|
68
|
+
/**
|
69
|
+
* Combines multiple IAmplifyGraphqlDefinitions into a single definition.
|
70
|
+
* @experimental
|
71
|
+
* @param definitions the definitions to combine
|
72
|
+
*/
|
73
|
+
static combine(definitions) {
|
74
|
+
if (definitions.length === 0) {
|
75
|
+
throw new Error('The definitions of amplify GraphQL cannot be empty.');
|
76
|
+
}
|
77
|
+
if (definitions.length === 1) {
|
78
|
+
return definitions[0];
|
79
|
+
}
|
80
|
+
return {
|
81
|
+
schema: definitions.map((def) => def.schema).join(os.EOL),
|
31
82
|
functionSlots: [],
|
83
|
+
dataSourceDefinition: definitions.reduce((acc, cur) => ({ ...acc, ...cur.dataSourceDefinition }), {}),
|
32
84
|
};
|
33
85
|
}
|
34
86
|
}
|
35
87
|
exports.AmplifyGraphqlDefinition = AmplifyGraphqlDefinition;
|
36
88
|
_a = JSII_RTTI_SYMBOL_1;
|
37
|
-
AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
89
|
+
AmplifyGraphqlDefinition[_a] = { fqn: "@aws-amplify/graphql-api-construct.AmplifyGraphqlDefinition", version: "1.4.0-construct-publish-test.0" };
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1ncmFwaHFsLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIseURBQXFEO0FBRXJELHlDQUE4RDtBQUVqRCxRQUFBLG9DQUFvQyxHQUE4QjtJQUM3RSxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLGlCQUFpQixFQUFFLFNBQVM7S0FDN0I7Q0FDRixDQUFDO0FBQ0Y7O0dBRUc7QUFDSCxNQUFhLHdCQUF3QjtJQUNuQzs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUNmLE1BQWMsRUFDZCw0QkFBdUQsNENBQW9DO1FBRTNGLE9BQU87WUFDTCxNQUFNO1lBQ04sYUFBYSxFQUFFLEVBQUU7WUFDakIsb0JBQW9CLEVBQUUsSUFBQSwyQ0FBZ0MsRUFBQyxNQUFNLEVBQUUseUJBQXlCLENBQUM7U0FDMUYsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQW1CO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzdCLFNBQVMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSx3QkFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pHLE9BQU87WUFDTCxNQUFNO1lBQ04sYUFBYSxFQUFFLEVBQUU7WUFDakIsb0JBQW9CLEVBQUUsSUFBQSwyQ0FBZ0MsRUFBQyxNQUFNLEVBQUUsNENBQW9DLENBQUM7U0FDckcsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQzNCLFNBQTRCLEVBQzVCLDRCQUF1RCw0Q0FBb0M7UUFFM0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0IsU0FBUyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDekI7UUFDRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLHdCQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakcsT0FBTztZQUNMLE1BQU07WUFDTixhQUFhLEVBQUUsRUFBRTtZQUNqQixvQkFBb0IsRUFBRSxJQUFBLDJDQUFnQyxFQUFDLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQztTQUMxRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQXdDO1FBQ3JELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1QixPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QjtRQUNELE9BQU87WUFDTCxNQUFNLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ3pELGFBQWEsRUFBRSxFQUFFO1lBQ2pCLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUN0RyxDQUFDO0lBQ0osQ0FBQzs7QUEzRUgsNERBNEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHsgU2NoZW1hRmlsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBzeW5jJztcbmltcG9ydCB7IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24sIE1vZGVsRGF0YVNvdXJjZURlZmluaXRpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNvbnN0cnVjdERhdGFTb3VyY2VEZWZpbml0aW9uTWFwIH0gZnJvbSAnLi9pbnRlcm5hbCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX0RFRklOSVRJT046IE1vZGVsRGF0YVNvdXJjZURlZmluaXRpb24gPSB7XG4gIG5hbWU6ICdEZWZhdWx0RHluYW1vREInLFxuICBzdHJhdGVneToge1xuICAgIGRiVHlwZTogJ0RZTkFNT0RCJyxcbiAgICBwcm92aXNpb25TdHJhdGVneTogJ0RFRkFVTFQnLFxuICB9LFxufTtcbi8qKlxuICogQ2xhc3MgZXhwb3NpbmcgdXRpbGl0aWVzIHRvIHByb2R1Y2UgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiBvYmplY3RzIGdpdmVuIHZhcmlvdXMgaW5wdXRzLlxuICovXG5leHBvcnQgY2xhc3MgQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBzY2hlbWEgZGVmaW5pdGlvbiBmcm9tIGEgc3RyaW5nIGlucHV0XG4gICAqIEBwYXJhbSBzY2hlbWEgdGhlIGdyYXBocWwgaW5wdXQgYXMgYSBzdHJpbmdcbiAgICogQHBhcmFtIG1vZGVsRGF0YVNvdXJjZURlZmluaXRpb24gdGhlIHByb3Zpc2lvbiBkZWZpbml0aW9uIGZvciBgQG1vZGVsYCBkYXRhc291cmNlLiBUaGUgRHluYW1vREIgZnJvbSBDbG91ZEZvcm1hdGlvbiB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC5cbiAgICogQGV4cGVyaW1lbnRhbCBtb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uXG4gICAqIEByZXR1cm5zIGEgZnVsbHkgZm9ybWVkIGFtcGxpZnkgZ3JhcGhxbCBkZWZpbml0aW9uXG4gICAqL1xuICBzdGF0aWMgZnJvbVN0cmluZyhcbiAgICBzY2hlbWE6IHN0cmluZyxcbiAgICBtb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uOiBNb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uID0gREVGQVVMVF9NT0RFTF9EQVRBX1NPVVJDRV9ERUZJTklUSU9OLFxuICApOiBJQW1wbGlmeUdyYXBocWxEZWZpbml0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hLFxuICAgICAgZnVuY3Rpb25TbG90czogW10sXG4gICAgICBkYXRhU291cmNlRGVmaW5pdGlvbjogY29uc3RydWN0RGF0YVNvdXJjZURlZmluaXRpb25NYXAoc2NoZW1hLCBtb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgb25lIG9yIG1vcmUgYXBwc3luYyBTY2hlbWFGaWxlIG9iamVjdHMgaW50byBhbiBBbXBsaWZ5IEdyYXBocWwgU2NoZW1hXG4gICAqIEBwYXJhbSBmaWxlUGF0aHMgb25lIG9yIG1vcmUgcGF0aHMgdG8gdGhlIGdyYXBocWwgZmlsZXMgdG8gcHJvY2Vzc1xuICAgKiBAcmV0dXJucyBhIGZ1bGx5IGZvcm1lZCBhbXBsaWZ5IGdyYXBocWwgZGVmaW5pdGlvblxuICAgKi9cbiAgc3RhdGljIGZyb21GaWxlcyguLi5maWxlUGF0aHM6IHN0cmluZ1tdKTogSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGZpbGVQYXRocykpIHtcbiAgICAgIGZpbGVQYXRocyA9IFtmaWxlUGF0aHNdO1xuICAgIH1cbiAgICBjb25zdCBzY2hlbWEgPSBmaWxlUGF0aHMubWFwKChmaWxlUGF0aCkgPT4gbmV3IFNjaGVtYUZpbGUoeyBmaWxlUGF0aCB9KS5kZWZpbml0aW9uKS5qb2luKG9zLkVPTCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYSxcbiAgICAgIGZ1bmN0aW9uU2xvdHM6IFtdLFxuICAgICAgZGF0YVNvdXJjZURlZmluaXRpb246IGNvbnN0cnVjdERhdGFTb3VyY2VEZWZpbml0aW9uTWFwKHNjaGVtYSwgREVGQVVMVF9NT0RFTF9EQVRBX1NPVVJDRV9ERUZJTklUSU9OKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgb25lIG9yIG1vcmUgYXBwc3luYyBTY2hlbWFGaWxlIG9iamVjdHMgaW50byBhbiBBbXBsaWZ5IEdyYXBocWwgU2NoZW1hXG4gICAqIEBleHBlcmltZW50YWxcbiAgICogQHBhcmFtIGZpbGVQYXRocyBvbmUgb3IgbW9yZSBwYXRocyB0byB0aGUgZ3JhcGhxbCBmaWxlcyB0byBwcm9jZXNzXG4gICAqIEBwYXJhbSBtb2RlbERhdGFTb3VyY2VEZWZpbml0aW9uIHRoZSBwcm92aXNpb24gZGVmaW5pdGlvbiBmb3IgYEBtb2RlbGAgZGF0YXNvdXJjZS4gVGhlIER5bmFtb0RCIGZyb20gQ2xvdWRGb3JtYXRpb24gd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQuXG4gICAqIEByZXR1cm5zIGEgZnVsbHkgZm9ybWVkIGFtcGxpZnkgZ3JhcGhxbCBkZWZpbml0aW9uXG4gICAqL1xuICBzdGF0aWMgZnJvbUZpbGVzQW5kRGVmaW5pdGlvbihcbiAgICBmaWxlUGF0aHM6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIG1vZGVsRGF0YVNvdXJjZURlZmluaXRpb246IE1vZGVsRGF0YVNvdXJjZURlZmluaXRpb24gPSBERUZBVUxUX01PREVMX0RBVEFfU09VUkNFX0RFRklOSVRJT04sXG4gICk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShmaWxlUGF0aHMpKSB7XG4gICAgICBmaWxlUGF0aHMgPSBbZmlsZVBhdGhzXTtcbiAgICB9XG4gICAgY29uc3Qgc2NoZW1hID0gZmlsZVBhdGhzLm1hcCgoZmlsZVBhdGgpID0+IG5ldyBTY2hlbWFGaWxlKHsgZmlsZVBhdGggfSkuZGVmaW5pdGlvbikuam9pbihvcy5FT0wpO1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWEsXG4gICAgICBmdW5jdGlvblNsb3RzOiBbXSxcbiAgICAgIGRhdGFTb3VyY2VEZWZpbml0aW9uOiBjb25zdHJ1Y3REYXRhU291cmNlRGVmaW5pdGlvbk1hcChzY2hlbWEsIG1vZGVsRGF0YVNvdXJjZURlZmluaXRpb24pLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29tYmluZXMgbXVsdGlwbGUgSUFtcGxpZnlHcmFwaHFsRGVmaW5pdGlvbnMgaW50byBhIHNpbmdsZSBkZWZpbml0aW9uLlxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqIEBwYXJhbSBkZWZpbml0aW9ucyB0aGUgZGVmaW5pdGlvbnMgdG8gY29tYmluZVxuICAgKi9cbiAgc3RhdGljIGNvbWJpbmUoZGVmaW5pdGlvbnM6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb25bXSk6IElBbXBsaWZ5R3JhcGhxbERlZmluaXRpb24ge1xuICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRlZmluaXRpb25zIG9mIGFtcGxpZnkgR3JhcGhRTCBjYW5ub3QgYmUgZW1wdHkuJyk7XG4gICAgfVxuICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBkZWZpbml0aW9uc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYTogZGVmaW5pdGlvbnMubWFwKChkZWYpID0+IGRlZi5zY2hlbWEpLmpvaW4ob3MuRU9MKSxcbiAgICAgIGZ1bmN0aW9uU2xvdHM6IFtdLFxuICAgICAgZGF0YVNvdXJjZURlZmluaXRpb246IGRlZmluaXRpb25zLnJlZHVjZSgoYWNjLCBjdXIpID0+ICh7IC4uLmFjYywgLi4uY3VyLmRhdGFTb3VyY2VEZWZpbml0aW9uIH0pLCB7fSksXG4gICAgfTtcbiAgfVxufVxuIl19
|
package/lib/index.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
-
export type { IAMAuthorizationConfig, UserPoolAuthorizationConfig, OIDCAuthorizationConfig, ApiKeyAuthorizationConfig, LambdaAuthorizationConfig, AuthorizationModes, PartialTranslationBehavior, AmplifyGraphqlApiProps, AmplifyGraphqlApiResources, AmplifyGraphqlApiCfnResources, FunctionSlotBase, MutationFunctionSlot, QueryFunctionSlot, SubscriptionFunctionSlot, FunctionSlot, FunctionSlotOverride, ConflictResolution, ConflictDetectionType, OptimisticConflictResolutionStrategy, CustomConflictResolutionStrategy, AutomergeConflictResolutionStrategy, ConflictResolutionStrategyBase, ConflictResolutionStrategy, TranslationBehavior, IAmplifyGraphqlDefinition, IBackendOutputStorageStrategy, IBackendOutputEntry, AddFunctionProps, } from './types';
|
1
|
+
export type { IAMAuthorizationConfig, UserPoolAuthorizationConfig, OIDCAuthorizationConfig, ApiKeyAuthorizationConfig, LambdaAuthorizationConfig, AuthorizationModes, PartialTranslationBehavior, AmplifyGraphqlApiProps, AmplifyGraphqlApiResources, AmplifyGraphqlApiCfnResources, FunctionSlotBase, MutationFunctionSlot, QueryFunctionSlot, SubscriptionFunctionSlot, FunctionSlot, FunctionSlotOverride, ConflictResolution, ConflictDetectionType, OptimisticConflictResolutionStrategy, CustomConflictResolutionStrategy, AutomergeConflictResolutionStrategy, ConflictResolutionStrategyBase, ConflictResolutionStrategy, TranslationBehavior, IAmplifyGraphqlDefinition, IBackendOutputStorageStrategy, IBackendOutputEntry, AddFunctionProps, ModelDataSourceDefinition, ModelDataSourceDefinitionStrategy, DefaultDynamoDbModelDataSourceDefinitionStrategy, AmplifyDynamoDbModelDataSourceDefinitionStrategy, ModelDataSourceDefinitionDbType, } from './types';
|
2
2
|
export { AmplifyGraphqlApi } from './amplify-graphql-api';
|
3
3
|
export { AmplifyGraphqlDefinition } from './amplify-graphql-definition';
|
4
|
+
export { AmplifyDynamoDbTableWrapper, TimeToLiveSpecification, ProvisionedThroughput, SSESpecification, SSEType, StreamSpecification, } from './amplify-dynamodb-table-wrapper';
|