@aws-amplify/graphql-api-construct 1.18.3-ai-next.0 → 1.18.3
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +456 -59
- package/API.md +17 -0
- package/CHANGELOG.md +1 -1
- package/jest.config.js +12 -0
- package/lib/amplify-dynamodb-table-wrapper.js +1 -1
- package/lib/amplify-graphql-api.js +4 -3
- package/lib/amplify-graphql-definition.js +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +5 -2
- package/lib/log-config-types.d.ts +78 -0
- package/lib/log-config-types.js +8 -0
- package/lib/sql-model-datasource-strategy.js +1 -1
- package/lib/types.d.ts +5 -0
- package/lib/types.js +1 -1
- 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/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +15 -54
- package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +2 -2
- package/node_modules/@aws-amplify/graphql-conversation-transformer/jest.config.js +10 -0
- package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +12 -48
- 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/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +9 -49
- package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-directives/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-directives/jest.config.js +6 -0
- package/node_modules/@aws-amplify/graphql-directives/package.json +2 -42
- 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/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-function-transformer/package.json +9 -48
- package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/jest.config.js +9 -0
- package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +9 -44
- 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/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-http-transformer/package.json +9 -48
- package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-index-transformer/package.json +10 -46
- 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/jest.config.js +12 -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 +13 -49
- package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-model-transformer/jest.config.js +12 -0
- 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/package.json +9 -49
- 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/jest.config.js +5 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
- package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +9 -48
- package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +11 -47
- 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/jest.config.js +12 -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 +10 -52
- package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-sql-transformer/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-sql-transformer/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +10 -49
- package/node_modules/@aws-amplify/graphql-transformer/API.md +2 -0
- package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts +2 -1
- 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 +2 -1
- package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer/package.json +20 -61
- package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/API.md +3 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +4 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +201 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/jest.config.js +12 -0
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.d.ts +4 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.d.ts.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.js +27 -7
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/graphql-api.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.d.ts +4 -3
- 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 +5 -3
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/transform.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.d.ts +3 -1
- 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/transformer-context/index.js +2 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/index.js.map +1 -1
- package/node_modules/@aws-amplify/graphql-transformer-core/package.json +8 -46
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/API.md +12 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +4 -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 -0
- 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/logConfig.d.ts +8 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/logConfig.d.ts.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/logConfig.js +3 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/lib/transformer-context/logConfig.js.map +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +3 -35
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/index.ts +1 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/src/transformer-context/logConfig.ts +8 -0
- package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@aws-cdk/assert/BUILD.md +15 -0
- package/node_modules/@aws-cdk/assert/LICENSE +201 -0
- package/node_modules/@aws-cdk/assert/NOTICE +2 -0
- package/node_modules/@aws-cdk/assert/README.md +228 -0
- package/node_modules/@aws-cdk/assert/clone.sh +29 -0
- package/node_modules/@aws-cdk/assert/jest.d.ts +14 -0
- package/node_modules/@aws-cdk/assert/jest.js +57 -0
- package/node_modules/@aws-cdk/assert/lib/assertion.d.ts +17 -0
- package/node_modules/@aws-cdk/assert/lib/assertion.js +31 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/and-assertion.d.ts +10 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/and-assertion.js +21 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/count-resources.d.ts +10 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/count-resources.js +54 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/exist.d.ts +3 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/exist.js +18 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/have-output.d.ts +29 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/have-output.js +77 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/have-resource-matchers.d.ts +123 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/have-resource-matchers.js +404 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/have-resource.d.ts +69 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/have-resource.js +130 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/have-type.d.ts +3 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/have-type.js +22 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/match-template.d.ts +19 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/match-template.js +98 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/negated-assertion.d.ts +8 -0
- package/node_modules/@aws-cdk/assert/lib/assertions/negated-assertion.js +18 -0
- package/node_modules/@aws-cdk/assert/lib/canonicalize-assets.d.ts +11 -0
- package/node_modules/@aws-cdk/assert/lib/canonicalize-assets.js +70 -0
- package/node_modules/@aws-cdk/assert/lib/expect.d.ts +4 -0
- package/node_modules/@aws-cdk/assert/lib/expect.js +16 -0
- package/node_modules/@aws-cdk/assert/lib/index.d.ts +14 -0
- package/node_modules/@aws-cdk/assert/lib/index.js +27 -0
- package/node_modules/@aws-cdk/assert/lib/inspector.d.ts +31 -0
- package/node_modules/@aws-cdk/assert/lib/inspector.js +69 -0
- package/node_modules/@aws-cdk/assert/lib/synth-utils.d.ts +30 -0
- package/node_modules/@aws-cdk/assert/lib/synth-utils.js +92 -0
- package/node_modules/@aws-cdk/assert/package.json +77 -0
- package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +16795 -0
- package/node_modules/@aws-cdk/cfnspec/LICENSE +201 -0
- package/node_modules/@aws-cdk/cfnspec/NOTICE +2 -0
- package/node_modules/@aws-cdk/cfnspec/README.md +14 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/build.d.ts +1 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/build.js +37 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/create-missing-libraries.d.ts +6 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/create-missing-libraries.js +311 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.d.ts +10 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.js +70 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.d.ts +25 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/patch-set.js +241 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.d.ts +9 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/report-issues.js +72 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/scrutiny.d.ts +12 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/scrutiny.js +85 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.d.ts +1 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.js +248 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.d.ts +1 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/split-spec-by-service.js +120 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/template/LICENSE +201 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/template/NOTICE +2 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/update-cfnlint.sh +18 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/update-metrics.sh +15 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/update.sh +113 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.d.ts +67 -0
- package/node_modules/@aws-cdk/cfnspec/build-tools/validate-cfn.js +285 -0
- package/node_modules/@aws-cdk/cfnspec/cfn.version +1 -0
- package/node_modules/@aws-cdk/cfnspec/lib/_private_schema/cfn-lint.d.ts +24 -0
- package/node_modules/@aws-cdk/cfnspec/lib/_private_schema/cfn-lint.js +3 -0
- package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_EC2_VPNConnection.json +27 -0
- package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_Lambda_Function.json +27 -0
- package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_RDS_DBCluster.json +70 -0
- package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_RDS_DBInstance.json +37 -0
- package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_SNS_Topic.json +52 -0
- package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_SQS_Queue.json +53 -0
- package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/README.md +168 -0
- package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/canned-metrics-schema.d.ts +60 -0
- package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/canned-metrics-schema.js +12 -0
- package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/services.json +31957 -0
- package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics.d.ts +41 -0
- package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics.js +75 -0
- package/node_modules/@aws-cdk/cfnspec/lib/index.d.ts +63 -0
- package/node_modules/@aws-cdk/cfnspec/lib/index.js +200 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/augmentation.d.ts +87 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/augmentation.js +28 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/base-types.d.ts +14 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/base-types.js +29 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/cfn-lint.d.ts +13 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/cfn-lint.js +3 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.d.ts +20 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/docs.js +3 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/index.d.ts +7 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/index.js +20 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/property.d.ts +179 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/property.js +168 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/resource-type.d.ts +118 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/resource-type.js +99 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/specification.d.ts +56 -0
- package/node_modules/@aws-cdk/cfnspec/lib/schema/specification.js +11 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/CHANGELOG.md +902 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/LICENSE +15 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/README.md +264 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy/copy.js +232 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy/index.js +6 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy-sync/copy-sync.js +166 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/copy-sync/index.js +5 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/empty/index.js +48 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/file.js +69 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/index.js +23 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/link.js +61 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/ensure/symlink.js +63 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/fs/index.js +130 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/index.js +27 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/index.js +16 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/json/output-json.js +12 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/mkdirs/make-dir.js +141 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move/index.js +6 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move/move.js +65 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move-sync/index.js +5 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/move-sync/move-sync.js +47 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/output/index.js +40 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/path-exists/index.js +12 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/remove/index.js +9 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/util/stat.js +139 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/lib/util/utimes.js +26 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/fs-extra/package.json +70 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/CHANGELOG.md +171 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/LICENSE +15 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/README.md +230 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/index.js +88 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/package.json +40 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/jsonfile/utils.js +14 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/LICENSE +20 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/README.md +76 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/index.js +24 -0
- package/node_modules/@aws-cdk/cfnspec/node_modules/universalify/package.json +34 -0
- package/node_modules/@aws-cdk/cfnspec/package.json +63 -0
- package/node_modules/@aws-cdk/cfnspec/spec/cfn-docs.json +51044 -0
- package/node_modules/@aws-cdk/cfnspec/spec/cfn-lint.json +35 -0
- package/node_modules/@aws-cdk/cfnspec/spec/specification.json +148332 -0
- package/node_modules/@aws-cdk/cloudformation-diff/LICENSE +201 -0
- package/node_modules/@aws-cdk/cloudformation-diff/NOTICE +2 -0
- package/node_modules/@aws-cdk/cloudformation-diff/README.md +12 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.d.ts +9 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.js +94 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.d.ts +326 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.js +457 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.d.ts +41 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.js +165 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.d.ts +21 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.js +166 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diffable.d.ts +22 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/diffable.js +47 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/format-table.d.ts +6 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/format-table.js +109 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/format.d.ts +23 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/format.js +414 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.d.ts +62 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.js +246 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.d.ts +18 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.js +29 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.d.ts +127 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.js +268 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/index.d.ts +4 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/index.js +18 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.d.ts +32 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.js +95 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.d.ts +50 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.js +91 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.d.ts +21 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.js +79 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/util.d.ts +7 -0
- package/node_modules/@aws-cdk/cloudformation-diff/lib/util.js +63 -0
- package/node_modules/@aws-cdk/cloudformation-diff/package.json +60 -0
- package/node_modules/ajv/.runkit_example.js +23 -0
- package/node_modules/ajv/LICENSE +22 -0
- package/node_modules/ajv/README.md +207 -0
- package/node_modules/ajv/dist/2019.d.ts +19 -0
- package/node_modules/ajv/dist/2019.js +61 -0
- package/node_modules/ajv/dist/2019.js.map +1 -0
- package/node_modules/ajv/dist/2020.d.ts +19 -0
- package/node_modules/ajv/dist/2020.js +55 -0
- package/node_modules/ajv/dist/2020.js.map +1 -0
- package/node_modules/ajv/dist/ajv.d.ts +18 -0
- package/node_modules/ajv/dist/ajv.js +50 -0
- package/node_modules/ajv/dist/ajv.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/code.d.ts +40 -0
- package/node_modules/ajv/dist/compile/codegen/code.js +156 -0
- package/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
- package/node_modules/ajv/dist/compile/codegen/index.js +697 -0
- package/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
- package/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
- package/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
- package/node_modules/ajv/dist/compile/errors.d.ts +13 -0
- package/node_modules/ajv/dist/compile/errors.js +123 -0
- package/node_modules/ajv/dist/compile/errors.js.map +1 -0
- package/node_modules/ajv/dist/compile/index.d.ts +80 -0
- package/node_modules/ajv/dist/compile/index.js +242 -0
- package/node_modules/ajv/dist/compile/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
- package/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
- package/node_modules/ajv/dist/compile/jtd/parse.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.js +229 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
- package/node_modules/ajv/dist/compile/jtd/types.js +14 -0
- package/node_modules/ajv/dist/compile/jtd/types.js.map +1 -0
- package/node_modules/ajv/dist/compile/names.d.ts +20 -0
- package/node_modules/ajv/dist/compile/names.js +28 -0
- package/node_modules/ajv/dist/compile/names.js.map +1 -0
- package/node_modules/ajv/dist/compile/ref_error.d.ts +6 -0
- package/node_modules/ajv/dist/compile/ref_error.js +12 -0
- package/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
- package/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
- package/node_modules/ajv/dist/compile/resolve.js +155 -0
- package/node_modules/ajv/dist/compile/resolve.js.map +1 -0
- package/node_modules/ajv/dist/compile/rules.d.ts +28 -0
- package/node_modules/ajv/dist/compile/rules.js +26 -0
- package/node_modules/ajv/dist/compile/rules.js.map +1 -0
- package/node_modules/ajv/dist/compile/util.d.ts +40 -0
- package/node_modules/ajv/dist/compile/util.js +178 -0
- package/node_modules/ajv/dist/compile/util.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
- package/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
- package/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
- package/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
- package/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
- package/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
- package/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
- package/node_modules/ajv/dist/compile/validate/index.js +520 -0
- package/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
- package/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
- package/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
- package/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
- package/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
- package/node_modules/ajv/dist/core.d.ts +173 -0
- package/node_modules/ajv/dist/core.js +618 -0
- package/node_modules/ajv/dist/core.js.map +1 -0
- package/node_modules/ajv/dist/jtd.d.ts +47 -0
- package/node_modules/ajv/dist/jtd.js +72 -0
- package/node_modules/ajv/dist/jtd.js.map +1 -0
- package/node_modules/ajv/dist/refs/data.json +13 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +1 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +1 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
- package/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
- package/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
- package/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
- package/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
- package/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
- package/node_modules/ajv/dist/refs/jtd-schema.js.map +1 -0
- package/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/equal.js +7 -0
- package/node_modules/ajv/dist/runtime/equal.js.map +1 -0
- package/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
- package/node_modules/ajv/dist/runtime/parseJson.js +185 -0
- package/node_modules/ajv/dist/runtime/parseJson.js.map +1 -0
- package/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/quote.js +30 -0
- package/node_modules/ajv/dist/runtime/quote.js.map +1 -0
- package/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/re2.js +6 -0
- package/node_modules/ajv/dist/runtime/re2.js.map +1 -0
- package/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/timestamp.js +42 -0
- package/node_modules/ajv/dist/runtime/timestamp.js.map +1 -0
- package/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
- package/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
- package/node_modules/ajv/dist/runtime/uri.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/uri.js +6 -0
- package/node_modules/ajv/dist/runtime/uri.js.map +1 -0
- package/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
- package/node_modules/ajv/dist/runtime/validation_error.js +11 -0
- package/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
- package/node_modules/ajv/dist/standalone/index.d.ts +6 -0
- package/node_modules/ajv/dist/standalone/index.js +90 -0
- package/node_modules/ajv/dist/standalone/index.js.map +1 -0
- package/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
- package/node_modules/ajv/dist/standalone/instance.js +35 -0
- package/node_modules/ajv/dist/standalone/instance.js.map +1 -0
- package/node_modules/ajv/dist/types/index.d.ts +183 -0
- package/node_modules/ajv/dist/types/index.js +3 -0
- package/node_modules/ajv/dist/types/index.js.map +1 -0
- package/node_modules/ajv/dist/types/json-schema.d.ts +125 -0
- package/node_modules/ajv/dist/types/json-schema.js +3 -0
- package/node_modules/ajv/dist/types/json-schema.js.map +1 -0
- package/node_modules/ajv/dist/types/jtd-schema.d.ts +174 -0
- package/node_modules/ajv/dist/types/jtd-schema.js +3 -0
- package/node_modules/ajv/dist/types/jtd-schema.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
- package/node_modules/ajv/dist/vocabularies/code.js +131 -0
- package/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
- package/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
- package/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
- package/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/errors.js +3 -0
- package/node_modules/ajv/dist/vocabularies/errors.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
- package/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
- package/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.js +149 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.js +67 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.js +51 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
- package/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/next.js +8 -0
- package/node_modules/ajv/dist/vocabularies/next.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.js +24 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
- package/node_modules/ajv/lib/2019.ts +81 -0
- package/node_modules/ajv/lib/2020.ts +75 -0
- package/node_modules/ajv/lib/ajv.ts +70 -0
- package/node_modules/ajv/lib/compile/codegen/code.ts +169 -0
- package/node_modules/ajv/lib/compile/codegen/index.ts +852 -0
- package/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
- package/node_modules/ajv/lib/compile/errors.ts +184 -0
- package/node_modules/ajv/lib/compile/index.ts +324 -0
- package/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
- package/node_modules/ajv/lib/compile/jtd/serialize.ts +266 -0
- package/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
- package/node_modules/ajv/lib/compile/names.ts +27 -0
- package/node_modules/ajv/lib/compile/ref_error.ts +13 -0
- package/node_modules/ajv/lib/compile/resolve.ts +149 -0
- package/node_modules/ajv/lib/compile/rules.ts +50 -0
- package/node_modules/ajv/lib/compile/util.ts +213 -0
- package/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
- package/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
- package/node_modules/ajv/lib/compile/validate/dataType.ts +230 -0
- package/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
- package/node_modules/ajv/lib/compile/validate/index.ts +582 -0
- package/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
- package/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
- package/node_modules/ajv/lib/core.ts +891 -0
- package/node_modules/ajv/lib/jtd.ts +132 -0
- package/node_modules/ajv/lib/refs/data.json +13 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
- package/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
- package/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
- package/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
- package/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
- package/node_modules/ajv/lib/runtime/equal.ts +7 -0
- package/node_modules/ajv/lib/runtime/parseJson.ts +177 -0
- package/node_modules/ajv/lib/runtime/quote.ts +31 -0
- package/node_modules/ajv/lib/runtime/re2.ts +6 -0
- package/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
- package/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
- package/node_modules/ajv/lib/runtime/uri.ts +6 -0
- package/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
- package/node_modules/ajv/lib/standalone/index.ts +100 -0
- package/node_modules/ajv/lib/standalone/instance.ts +36 -0
- package/node_modules/ajv/lib/types/index.ts +244 -0
- package/node_modules/ajv/lib/types/json-schema.ts +187 -0
- package/node_modules/ajv/lib/types/jtd-schema.ts +273 -0
- package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
- package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
- package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
- package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
- package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
- package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
- package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
- package/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
- package/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
- package/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
- package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
- package/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
- package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
- package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
- package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
- package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
- package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
- package/node_modules/ajv/lib/vocabularies/code.ts +168 -0
- package/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
- package/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
- package/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
- package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +113 -0
- package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
- package/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
- package/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
- package/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
- package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
- package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
- package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
- package/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
- package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
- package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
- package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
- package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +184 -0
- package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +76 -0
- package/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
- package/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/jtd/values.ts +58 -0
- package/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
- package/node_modules/ajv/lib/vocabularies/next.ts +8 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
- package/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
- package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/validation/enum.ts +54 -0
- package/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
- package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
- package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +28 -0
- package/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
- package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
- package/node_modules/ajv/package.json +126 -0
- package/node_modules/ansi-regex/index.d.ts +37 -0
- package/node_modules/ansi-regex/index.js +10 -0
- package/node_modules/ansi-regex/license +9 -0
- package/node_modules/ansi-regex/package.json +55 -0
- package/node_modules/ansi-regex/readme.md +78 -0
- package/node_modules/ansi-styles/index.d.ts +345 -0
- package/node_modules/ansi-styles/index.js +163 -0
- package/node_modules/ansi-styles/license +9 -0
- package/node_modules/ansi-styles/package.json +56 -0
- package/node_modules/ansi-styles/readme.md +152 -0
- package/node_modules/astral-regex/index.d.ts +28 -0
- package/node_modules/astral-regex/index.js +6 -0
- package/node_modules/astral-regex/license +9 -0
- package/node_modules/astral-regex/package.json +33 -0
- package/node_modules/astral-regex/readme.md +46 -0
- package/node_modules/at-least-node/LICENSE +6 -0
- package/node_modules/at-least-node/README.md +25 -0
- package/node_modules/at-least-node/index.js +5 -0
- package/node_modules/at-least-node/package.json +32 -0
- package/node_modules/chalk/index.d.ts +415 -0
- package/node_modules/chalk/license +9 -0
- package/node_modules/chalk/package.json +68 -0
- package/node_modules/chalk/readme.md +341 -0
- package/node_modules/chalk/source/index.js +229 -0
- package/node_modules/chalk/source/templates.js +134 -0
- package/node_modules/chalk/source/util.js +39 -0
- package/node_modules/color-convert/CHANGELOG.md +54 -0
- package/node_modules/color-convert/LICENSE +21 -0
- package/node_modules/color-convert/README.md +68 -0
- package/node_modules/color-convert/conversions.js +839 -0
- package/node_modules/color-convert/index.js +81 -0
- package/node_modules/color-convert/package.json +48 -0
- package/node_modules/color-convert/route.js +97 -0
- package/node_modules/color-name/LICENSE +8 -0
- package/node_modules/color-name/README.md +11 -0
- package/node_modules/color-name/index.js +152 -0
- package/node_modules/color-name/package.json +28 -0
- package/node_modules/diff/CONTRIBUTING.md +36 -0
- package/node_modules/diff/LICENSE +29 -0
- package/node_modules/diff/README.md +339 -0
- package/node_modules/diff/dist/diff.js +1730 -0
- package/node_modules/diff/dist/diff.min.js +1 -0
- package/node_modules/diff/lib/convert/dmp.js +32 -0
- package/node_modules/diff/lib/convert/xml.js +42 -0
- package/node_modules/diff/lib/diff/array.js +45 -0
- package/node_modules/diff/lib/diff/base.js +358 -0
- package/node_modules/diff/lib/diff/character.js +37 -0
- package/node_modules/diff/lib/diff/css.js +41 -0
- package/node_modules/diff/lib/diff/json.js +163 -0
- package/node_modules/diff/lib/diff/line.js +94 -0
- package/node_modules/diff/lib/diff/sentence.js +41 -0
- package/node_modules/diff/lib/diff/word.js +108 -0
- package/node_modules/diff/lib/index.es6.js +1699 -0
- package/node_modules/diff/lib/index.js +234 -0
- package/node_modules/diff/lib/index.mjs +1699 -0
- package/node_modules/diff/lib/patch/apply.js +238 -0
- package/node_modules/diff/lib/patch/create.js +276 -0
- package/node_modules/diff/lib/patch/merge.js +613 -0
- package/node_modules/diff/lib/patch/parse.js +167 -0
- package/node_modules/diff/lib/patch/reverse.js +63 -0
- package/node_modules/diff/lib/util/array.js +32 -0
- package/node_modules/diff/lib/util/distance-iterator.js +57 -0
- package/node_modules/diff/lib/util/params.js +24 -0
- package/node_modules/diff/package.json +89 -0
- package/node_modules/diff/release-notes.md +317 -0
- package/node_modules/diff/runtime.js +3 -0
- package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
- package/node_modules/emoji-regex/README.md +73 -0
- package/node_modules/emoji-regex/es2015/index.js +6 -0
- package/node_modules/emoji-regex/es2015/text.js +6 -0
- package/node_modules/emoji-regex/index.d.ts +23 -0
- package/node_modules/emoji-regex/index.js +6 -0
- package/node_modules/emoji-regex/package.json +50 -0
- package/node_modules/emoji-regex/text.js +6 -0
- package/node_modules/fast-deep-equal/LICENSE +21 -0
- package/node_modules/fast-deep-equal/README.md +96 -0
- package/node_modules/fast-deep-equal/es6/index.d.ts +2 -0
- package/node_modules/fast-deep-equal/es6/index.js +72 -0
- package/node_modules/fast-deep-equal/es6/react.d.ts +2 -0
- package/node_modules/fast-deep-equal/es6/react.js +79 -0
- package/node_modules/fast-deep-equal/index.d.ts +4 -0
- package/node_modules/fast-deep-equal/index.js +46 -0
- package/node_modules/fast-deep-equal/package.json +61 -0
- package/node_modules/fast-deep-equal/react.d.ts +2 -0
- package/node_modules/fast-deep-equal/react.js +53 -0
- package/node_modules/fast-uri/.gitattributes +2 -0
- package/node_modules/fast-uri/.github/.stale.yml +21 -0
- package/node_modules/fast-uri/.github/dependabot.yml +13 -0
- package/node_modules/fast-uri/.github/tests_checker.yml +8 -0
- package/node_modules/fast-uri/.github/workflows/ci.yml +23 -0
- package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +20 -0
- package/node_modules/fast-uri/LICENSE +30 -0
- package/node_modules/fast-uri/README.md +125 -0
- package/node_modules/fast-uri/benchmark.js +105 -0
- package/node_modules/fast-uri/index.js +303 -0
- package/node_modules/fast-uri/lib/schemes.js +188 -0
- package/node_modules/fast-uri/lib/scopedChars.js +30 -0
- package/node_modules/fast-uri/lib/utils.js +242 -0
- package/node_modules/fast-uri/package.json +39 -0
- package/node_modules/fast-uri/test/.gitkeep +0 -0
- package/node_modules/fast-uri/test/ajv.test.js +39 -0
- package/node_modules/fast-uri/test/compatibility.test.js +131 -0
- package/node_modules/fast-uri/test/equal.test.js +103 -0
- package/node_modules/fast-uri/test/parse.test.js +318 -0
- package/node_modules/fast-uri/test/resolve.test.js +75 -0
- package/node_modules/fast-uri/test/serialize.test.js +143 -0
- package/node_modules/fast-uri/test/uri-js.test.js +912 -0
- package/node_modules/fast-uri/test/util.test.js +23 -0
- package/node_modules/fast-uri/types/index.d.ts +53 -0
- package/node_modules/fast-uri/types/index.test-d.ts +17 -0
- package/node_modules/graphql-mapping-template/CHANGELOG.md +4 -0
- package/node_modules/graphql-mapping-template/LICENSE +201 -0
- package/node_modules/graphql-mapping-template/jest.config.js +12 -0
- package/node_modules/graphql-mapping-template/package.json +2 -41
- package/node_modules/graphql-transformer-common/CHANGELOG.md +4 -0
- package/node_modules/graphql-transformer-common/LICENSE +201 -0
- package/node_modules/graphql-transformer-common/jest.config.js +12 -0
- package/node_modules/graphql-transformer-common/package.json +3 -42
- package/node_modules/has-flag/index.d.ts +39 -0
- package/node_modules/has-flag/index.js +8 -0
- package/node_modules/has-flag/license +9 -0
- package/node_modules/has-flag/package.json +46 -0
- package/node_modules/has-flag/readme.md +89 -0
- package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
- package/node_modules/is-fullwidth-code-point/index.js +50 -0
- package/node_modules/is-fullwidth-code-point/license +9 -0
- package/node_modules/is-fullwidth-code-point/package.json +42 -0
- package/node_modules/is-fullwidth-code-point/readme.md +39 -0
- package/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
- package/node_modules/json-schema-traverse/.github/FUNDING.yml +2 -0
- package/node_modules/json-schema-traverse/.github/workflows/build.yml +28 -0
- package/node_modules/json-schema-traverse/.github/workflows/publish.yml +27 -0
- package/node_modules/json-schema-traverse/LICENSE +21 -0
- package/node_modules/json-schema-traverse/README.md +95 -0
- package/node_modules/json-schema-traverse/index.d.ts +40 -0
- package/node_modules/json-schema-traverse/index.js +93 -0
- package/node_modules/json-schema-traverse/package.json +43 -0
- package/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
- package/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
- package/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
- package/node_modules/lodash.truncate/LICENSE +47 -0
- package/node_modules/lodash.truncate/README.md +18 -0
- package/node_modules/lodash.truncate/index.js +632 -0
- package/node_modules/lodash.truncate/package.json +17 -0
- package/node_modules/require-from-string/index.js +34 -0
- package/node_modules/require-from-string/license +21 -0
- package/node_modules/require-from-string/package.json +28 -0
- package/node_modules/require-from-string/readme.md +56 -0
- package/node_modules/slice-ansi/index.js +103 -0
- package/node_modules/slice-ansi/license +10 -0
- package/node_modules/slice-ansi/package.json +52 -0
- package/node_modules/slice-ansi/readme.md +66 -0
- package/node_modules/string-width/index.d.ts +29 -0
- package/node_modules/string-width/index.js +47 -0
- package/node_modules/string-width/license +9 -0
- package/node_modules/string-width/package.json +56 -0
- package/node_modules/string-width/readme.md +50 -0
- package/node_modules/strip-ansi/index.d.ts +17 -0
- package/node_modules/strip-ansi/index.js +4 -0
- package/node_modules/strip-ansi/license +9 -0
- package/node_modules/strip-ansi/package.json +54 -0
- package/node_modules/strip-ansi/readme.md +46 -0
- package/node_modules/supports-color/browser.js +5 -0
- package/node_modules/supports-color/index.js +135 -0
- package/node_modules/supports-color/license +9 -0
- package/node_modules/supports-color/package.json +53 -0
- package/node_modules/supports-color/readme.md +76 -0
- package/node_modules/table/LICENSE +24 -0
- package/node_modules/table/README.md +837 -0
- package/node_modules/table/dist/src/alignSpanningCell.d.ts +7 -0
- package/node_modules/table/dist/src/alignSpanningCell.js +48 -0
- package/node_modules/table/dist/src/alignSpanningCell.js.map +1 -0
- package/node_modules/table/dist/src/alignString.d.ts +6 -0
- package/node_modules/table/dist/src/alignString.js +60 -0
- package/node_modules/table/dist/src/alignString.js.map +1 -0
- package/node_modules/table/dist/src/alignTableData.d.ts +2 -0
- package/node_modules/table/dist/src/alignTableData.js +20 -0
- package/node_modules/table/dist/src/alignTableData.js.map +1 -0
- package/node_modules/table/dist/src/calculateCellHeight.d.ts +4 -0
- package/node_modules/table/dist/src/calculateCellHeight.js +12 -0
- package/node_modules/table/dist/src/calculateCellHeight.js.map +1 -0
- package/node_modules/table/dist/src/calculateMaximumColumnWidths.d.ts +7 -0
- package/node_modules/table/dist/src/calculateMaximumColumnWidths.js +36 -0
- package/node_modules/table/dist/src/calculateMaximumColumnWidths.js.map +1 -0
- package/node_modules/table/dist/src/calculateOutputColumnWidths.d.ts +2 -0
- package/node_modules/table/dist/src/calculateOutputColumnWidths.js +10 -0
- package/node_modules/table/dist/src/calculateOutputColumnWidths.js.map +1 -0
- package/node_modules/table/dist/src/calculateRowHeights.d.ts +5 -0
- package/node_modules/table/dist/src/calculateRowHeights.js +42 -0
- package/node_modules/table/dist/src/calculateRowHeights.js.map +1 -0
- package/node_modules/table/dist/src/calculateSpanningCellWidth.d.ts +3 -0
- package/node_modules/table/dist/src/calculateSpanningCellWidth.js +26 -0
- package/node_modules/table/dist/src/calculateSpanningCellWidth.js.map +1 -0
- package/node_modules/table/dist/src/createStream.d.ts +2 -0
- package/node_modules/table/dist/src/createStream.js +74 -0
- package/node_modules/table/dist/src/createStream.js.map +1 -0
- package/node_modules/table/dist/src/drawBorder.d.ts +34 -0
- package/node_modules/table/dist/src/drawBorder.js +202 -0
- package/node_modules/table/dist/src/drawBorder.js.map +1 -0
- package/node_modules/table/dist/src/drawContent.d.ts +14 -0
- package/node_modules/table/dist/src/drawContent.js +51 -0
- package/node_modules/table/dist/src/drawContent.js.map +1 -0
- package/node_modules/table/dist/src/drawRow.d.ts +10 -0
- package/node_modules/table/dist/src/drawRow.js +25 -0
- package/node_modules/table/dist/src/drawRow.js.map +1 -0
- package/node_modules/table/dist/src/drawTable.d.ts +2 -0
- package/node_modules/table/dist/src/drawTable.js +31 -0
- package/node_modules/table/dist/src/drawTable.js.map +1 -0
- package/node_modules/table/dist/src/generated/validators.d.ts +13 -0
- package/node_modules/table/dist/src/generated/validators.js +2694 -0
- package/node_modules/table/dist/src/generated/validators.js.map +1 -0
- package/node_modules/table/dist/src/getBorderCharacters.d.ts +2 -0
- package/node_modules/table/dist/src/getBorderCharacters.js +105 -0
- package/node_modules/table/dist/src/getBorderCharacters.js.map +1 -0
- package/node_modules/table/dist/src/index.d.ts +5 -0
- package/node_modules/table/dist/src/index.js +21 -0
- package/node_modules/table/dist/src/index.js.map +1 -0
- package/node_modules/table/dist/src/injectHeaderConfig.d.ts +3 -0
- package/node_modules/table/dist/src/injectHeaderConfig.js +29 -0
- package/node_modules/table/dist/src/injectHeaderConfig.js.map +1 -0
- package/node_modules/table/dist/src/makeRangeConfig.d.ts +3 -0
- package/node_modules/table/dist/src/makeRangeConfig.js +18 -0
- package/node_modules/table/dist/src/makeRangeConfig.js.map +1 -0
- package/node_modules/table/dist/src/makeStreamConfig.d.ts +7 -0
- package/node_modules/table/dist/src/makeStreamConfig.js +43 -0
- package/node_modules/table/dist/src/makeStreamConfig.js.map +1 -0
- package/node_modules/table/dist/src/makeTableConfig.d.ts +7 -0
- package/node_modules/table/dist/src/makeTableConfig.js +62 -0
- package/node_modules/table/dist/src/makeTableConfig.js.map +1 -0
- package/node_modules/table/dist/src/mapDataUsingRowHeights.d.ts +4 -0
- package/node_modules/table/dist/src/mapDataUsingRowHeights.js +52 -0
- package/node_modules/table/dist/src/mapDataUsingRowHeights.js.map +1 -0
- package/node_modules/table/dist/src/padTableData.d.ts +3 -0
- package/node_modules/table/dist/src/padTableData.js +23 -0
- package/node_modules/table/dist/src/padTableData.js.map +1 -0
- package/node_modules/table/dist/src/schemas/config.json +95 -0
- package/node_modules/table/dist/src/schemas/shared.json +139 -0
- package/node_modules/table/dist/src/schemas/streamConfig.json +25 -0
- package/node_modules/table/dist/src/spanningCellManager.d.ts +23 -0
- package/node_modules/table/dist/src/spanningCellManager.js +95 -0
- package/node_modules/table/dist/src/spanningCellManager.js.map +1 -0
- package/node_modules/table/dist/src/stringifyTableData.d.ts +2 -0
- package/node_modules/table/dist/src/stringifyTableData.js +13 -0
- package/node_modules/table/dist/src/stringifyTableData.js.map +1 -0
- package/node_modules/table/dist/src/table.d.ts +2 -0
- package/node_modules/table/dist/src/table.js +32 -0
- package/node_modules/table/dist/src/table.js.map +1 -0
- package/node_modules/table/dist/src/truncateTableData.d.ts +6 -0
- package/node_modules/table/dist/src/truncateTableData.js +24 -0
- package/node_modules/table/dist/src/truncateTableData.js.map +1 -0
- package/node_modules/table/dist/src/types/api.d.ts +130 -0
- package/node_modules/table/dist/src/types/api.js +3 -0
- package/node_modules/table/dist/src/types/api.js.map +1 -0
- package/node_modules/table/dist/src/types/internal.d.ts +1 -0
- package/node_modules/table/dist/src/types/internal.js +3 -0
- package/node_modules/table/dist/src/types/internal.js.map +1 -0
- package/node_modules/table/dist/src/utils.d.ts +9 -0
- package/node_modules/table/dist/src/utils.js +134 -0
- package/node_modules/table/dist/src/utils.js.map +1 -0
- package/node_modules/table/dist/src/validateConfig.d.ts +2 -0
- package/node_modules/table/dist/src/validateConfig.js +27 -0
- package/node_modules/table/dist/src/validateConfig.js.map +1 -0
- package/node_modules/table/dist/src/validateSpanningCellConfig.d.ts +3 -0
- package/node_modules/table/dist/src/validateSpanningCellConfig.js +46 -0
- package/node_modules/table/dist/src/validateSpanningCellConfig.js.map +1 -0
- package/node_modules/table/dist/src/validateTableData.d.ts +1 -0
- package/node_modules/table/dist/src/validateTableData.js +32 -0
- package/node_modules/table/dist/src/validateTableData.js.map +1 -0
- package/node_modules/table/dist/src/wrapCell.d.ts +8 -0
- package/node_modules/table/dist/src/wrapCell.js +33 -0
- package/node_modules/table/dist/src/wrapCell.js.map +1 -0
- package/node_modules/table/dist/src/wrapString.d.ts +9 -0
- package/node_modules/table/dist/src/wrapString.js +27 -0
- package/node_modules/table/dist/src/wrapString.js.map +1 -0
- package/node_modules/table/dist/src/wrapWord.d.ts +1 -0
- package/node_modules/table/dist/src/wrapWord.js +42 -0
- package/node_modules/table/dist/src/wrapWord.js.map +1 -0
- package/node_modules/table/package.json +77 -0
- package/package.json +132 -123
- package/src/amplify-graphql-api.ts +2 -0
- package/src/index.ts +2 -0
- package/src/log-config-types.ts +84 -0
- package/src/types.ts +6 -1
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
set -eu
|
3
|
+
|
4
|
+
# Run this script on the tarball found in the release artifacts of the CloudWatchConsoleServiceDirectory package.
|
5
|
+
|
6
|
+
explorer_tarball="$1"
|
7
|
+
|
8
|
+
target_file=lib/canned-metrics/services.json
|
9
|
+
|
10
|
+
mkdir -p $(dirname $target_file)
|
11
|
+
|
12
|
+
tar xzOf "$explorer_tarball" "package/dist/lib/configuration/generated/services.json" > $target_file.json
|
13
|
+
node -p "JSON.stringify(require('./${target_file}.json'), undefined, 2)" > $target_file
|
14
|
+
rm $target_file.json
|
15
|
+
echo "Wrote $target_file"
|
@@ -0,0 +1,113 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
###
|
4
|
+
# Updates the AWS CloudFormation Resource Specification using the files published on the AWS Documentaiton.
|
5
|
+
# See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
|
6
|
+
###
|
7
|
+
|
8
|
+
set -euo pipefail
|
9
|
+
scriptdir=$(cd $(dirname $0) && pwd)
|
10
|
+
|
11
|
+
rm -f CHANGELOG.md.new
|
12
|
+
|
13
|
+
function update-spec() {
|
14
|
+
local title=$1
|
15
|
+
local url=$2
|
16
|
+
local targetdir=$3
|
17
|
+
local gunzip=$4
|
18
|
+
local split=$5
|
19
|
+
local services=${@:6}
|
20
|
+
|
21
|
+
local tmpdir="$(mktemp -d)"
|
22
|
+
local newspec="${tmpdir}/new_proposed.json"
|
23
|
+
local newcombined="${tmpdir}/new.json"
|
24
|
+
local oldcombined="${tmpdir}/old.json"
|
25
|
+
|
26
|
+
# fail if the spec has changes, otherwise we won't be able to determine the diff
|
27
|
+
if [ -n "$(git status --porcelain ${targetdir})" ]; then
|
28
|
+
echo "The directory ${targetdir} has changes, revert them before cfn-update"
|
29
|
+
exit 1
|
30
|
+
fi
|
31
|
+
|
32
|
+
if [[ "${url}" == "http"* ]]; then
|
33
|
+
echo >&2 "Downloading from ${url}..."
|
34
|
+
if ${gunzip}; then
|
35
|
+
curl -sL "${url}" | gunzip - > ${newspec}
|
36
|
+
else
|
37
|
+
curl -sL "${url}" > ${newspec}
|
38
|
+
fi
|
39
|
+
else
|
40
|
+
echo >&2 "Copying file ${url}..."
|
41
|
+
cp "${url}" "${newspec}"
|
42
|
+
fi
|
43
|
+
|
44
|
+
# Calculate the old and new combined specs, so we can do a diff on the changes
|
45
|
+
echo >&2 "Updating source spec..."
|
46
|
+
mkdir -p ${targetdir}
|
47
|
+
|
48
|
+
node build-tools/patch-set.js --quiet "${targetdir}" "${oldcombined}"
|
49
|
+
if ${split}; then
|
50
|
+
node build-tools/split-spec-by-service.js "${newspec}" "${targetdir}" "${services}"
|
51
|
+
else
|
52
|
+
cp "${newspec}" "${targetdir}/spec.json"
|
53
|
+
sort-json "${targetdir}/spec.json"
|
54
|
+
fi
|
55
|
+
node build-tools/patch-set.js --quiet "${targetdir}" "${newcombined}"
|
56
|
+
|
57
|
+
echo >&2 "Updating CHANGELOG.md..."
|
58
|
+
node build-tools/spec-diff.js "${title}" "${oldcombined}" "${newcombined}" >> CHANGELOG.md.new
|
59
|
+
|
60
|
+
echo "" >> CHANGELOG.md.new
|
61
|
+
}
|
62
|
+
|
63
|
+
# First run a build to get a complete version of the old spec
|
64
|
+
|
65
|
+
update-spec \
|
66
|
+
"CloudFormation Resource Specification" \
|
67
|
+
"${1:-https://d1uauaxba7bl26.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json}" \
|
68
|
+
spec-source/specification/000_cfn/000_official \
|
69
|
+
true true
|
70
|
+
|
71
|
+
update-spec \
|
72
|
+
"CloudFormation Resource Specification (us-west-2)" \
|
73
|
+
"${2:-https://d201a2mn26r7lk.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json}" \
|
74
|
+
spec-source/specification/001_cfn_us-west-2/000_official \
|
75
|
+
true true AWS_DeviceFarm
|
76
|
+
|
77
|
+
old_version=$(cat cfn.version)
|
78
|
+
new_version=$(node -p "require('${scriptdir}/../spec-source/specification/000_cfn/000_official/001_Version.json').ResourceSpecificationVersion")
|
79
|
+
echo >&2 "Recording new version..."
|
80
|
+
rm -f cfn.version
|
81
|
+
echo "$new_version" > cfn.version
|
82
|
+
|
83
|
+
# Only report outdated specs if we made changes, otherwise we're stuck reporting changes every time.
|
84
|
+
if [[ "$new_version" != "$old_version" ]]; then
|
85
|
+
echo >&2 "Reporting outdated specs..."
|
86
|
+
node build-tools/report-issues spec-source/specification/000_cfn/000_official/ outdated >> CHANGELOG.md.new
|
87
|
+
node build-tools/report-issues spec-source/specification/001_cfn_us-west-2/000_official/ outdated >> CHANGELOG.md.new
|
88
|
+
fi
|
89
|
+
|
90
|
+
update-spec \
|
91
|
+
"Serverless Application Model (SAM) Resource Specification" \
|
92
|
+
"https://raw.githubusercontent.com/awslabs/goformation/master/generate/sam-2016-10-31.json" \
|
93
|
+
spec-source/specification/100_sam/000_official \
|
94
|
+
false false
|
95
|
+
|
96
|
+
npm run build
|
97
|
+
|
98
|
+
echo >&2 "Creating missing AWS construct libraries for new resource types..."
|
99
|
+
node ${scriptdir}/create-missing-libraries.js || {
|
100
|
+
echo "------------------------------------------------------------------------------------"
|
101
|
+
echo "cfn-spec update script failed when trying to create modules for new services"
|
102
|
+
echo "Fix the error (you will likely need to add RefKind patches), and then run 'npm run update' again"
|
103
|
+
exit 1
|
104
|
+
}
|
105
|
+
|
106
|
+
# append old changelog after new and replace as the last step because otherwise we will not be idempotent
|
107
|
+
_changelog_contents=$(cat CHANGELOG.md.new)
|
108
|
+
if [ -n "${_changelog_contents}" ]; then
|
109
|
+
cat CHANGELOG.md >> CHANGELOG.md.new
|
110
|
+
cp CHANGELOG.md.new CHANGELOG.md
|
111
|
+
fi
|
112
|
+
|
113
|
+
exec /bin/bash ${scriptdir}/update-cfnlint.sh
|
@@ -0,0 +1,67 @@
|
|
1
|
+
export interface CfnSpec {
|
2
|
+
PropertyTypes: Record<string, any>;
|
3
|
+
ResourceTypes: Record<string, any>;
|
4
|
+
ResourceSpecificationVersion: string;
|
5
|
+
}
|
6
|
+
export interface ValidationError {
|
7
|
+
readonly value: JsonValue<any>;
|
8
|
+
readonly message: string;
|
9
|
+
}
|
10
|
+
export declare class CfnSpecValidator {
|
11
|
+
static validate(spec: CfnSpec): ValidationError[];
|
12
|
+
readonly errors: ValidationError[];
|
13
|
+
private readonly root;
|
14
|
+
constructor(spec: CfnSpec);
|
15
|
+
validateSpec(): void;
|
16
|
+
/**
|
17
|
+
* Property types are extremely weird
|
18
|
+
*
|
19
|
+
* Nominally, they define "records" that have a `Properties` field with the defined
|
20
|
+
* properties.
|
21
|
+
*
|
22
|
+
* However, they are also commonly used as aliases for other types, meaning they have
|
23
|
+
* the same type-indicating fields as individual property *fields* would have.
|
24
|
+
*
|
25
|
+
* Also also, it seems to be quite common to have them empty--have no fields at all.
|
26
|
+
* This seems to be taken as an alias for an unstructured `Json` type. It's probably
|
27
|
+
* just a mistake, but unfortunately a mistake that S3 is participating in, so if we
|
28
|
+
* fail on that we won't be able to consume updates to S3's schema. Our codegen is
|
29
|
+
* ready to deal with this and just renders it to an empty struct.
|
30
|
+
*/
|
31
|
+
private validatePropertyType;
|
32
|
+
private validateResourceType;
|
33
|
+
private validateProperties;
|
34
|
+
/**
|
35
|
+
* Validate the type
|
36
|
+
*
|
37
|
+
* There must be:
|
38
|
+
* - Either Type or PrimitiveType
|
39
|
+
* - Only if Type is List or Map, there will be either an ItemType or a PrimitiveItemType
|
40
|
+
* - Non-primitive Types must correspond to a property type
|
41
|
+
*/
|
42
|
+
private validateType;
|
43
|
+
private assertValidPropertyTypeReference;
|
44
|
+
private assertOptional;
|
45
|
+
private assert;
|
46
|
+
private validateMap;
|
47
|
+
private report;
|
48
|
+
}
|
49
|
+
interface JsonValue<A> {
|
50
|
+
readonly path: string[];
|
51
|
+
readonly pathValue: any;
|
52
|
+
readonly hasValue: boolean;
|
53
|
+
readonly value: A;
|
54
|
+
readonly valueOrUndefined: A | undefined;
|
55
|
+
get<K extends keyof A>(k: K): JsonValue<A[K]>;
|
56
|
+
}
|
57
|
+
declare class JsonValue<A> implements JsonValue<A> {
|
58
|
+
readonly value: A;
|
59
|
+
readonly path: string[];
|
60
|
+
static of<B>(x: B): JsonValue<B>;
|
61
|
+
readonly hasValue: boolean;
|
62
|
+
readonly valueOrUndefined: A | undefined;
|
63
|
+
readonly pathValue: any;
|
64
|
+
constructor(value: A, path: string[]);
|
65
|
+
}
|
66
|
+
export declare function formatErrorInContext(error: ValidationError): string;
|
67
|
+
export {};
|
@@ -0,0 +1,285 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.formatErrorInContext = exports.CfnSpecValidator = void 0;
|
4
|
+
/* eslint-disable no-console */
|
5
|
+
/**
|
6
|
+
* CloudFormation spec validator
|
7
|
+
*
|
8
|
+
* "Why not JSON Schema?", you might ask, and it's a fair question. The answer is:
|
9
|
+
* because the error reporting from JSON schema is pretty bad, and I want the validation
|
10
|
+
* errors reported from this check to be blindingly obvious, as non-spec-experts
|
11
|
+
* are going to have to consume and understand them.
|
12
|
+
*
|
13
|
+
* I tried JSON Schema validation and its errors look like:
|
14
|
+
*
|
15
|
+
* ```
|
16
|
+
* - instance.PropertyTypes["..."].Properties.Xyz does not match allOf schema <#/definitions/Typed> with 7 error[s]:
|
17
|
+
* - instance.PropertyTypes["..."].Properties.Xyz requires property "PrimitiveType"
|
18
|
+
* - instance.PropertyTypes["..."].Properties.Xyz requires property "Type"
|
19
|
+
* - instance.PropertyTypes["..."].Properties.Xyz requires property "Type"
|
20
|
+
* - instance.PropertyTypes["..."].Properties.Xyz requires property "ItemType"
|
21
|
+
* - instance.PropertyTypes["..."].Properties.Xyz requires property "Type"
|
22
|
+
* - instance.PropertyTypes["..."].Properties.Xyz requires property "PrimitiveItemType"
|
23
|
+
* - instance.PropertyTypes["..."].Properties.Xyz is not exactly one from "Primitive","Complex Type","Collection of Primitives","Collection of Complex Types"
|
24
|
+
* ```
|
25
|
+
*
|
26
|
+
* No bueno. In contrast, this script prints:
|
27
|
+
*
|
28
|
+
* ```
|
29
|
+
* {
|
30
|
+
* "ResourceTypes": {
|
31
|
+
* "AWS::SageMaker::Device": {
|
32
|
+
* "Properties": {
|
33
|
+
* "Device": {
|
34
|
+
*
|
35
|
+
* !!! must have exactly one of 'Type', 'PrimitiveType', found: {"Type":"Device","PrimitiveType":"Json"} !!!
|
36
|
+
*
|
37
|
+
* "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-device.html#cfn-sagemaker-device-device",
|
38
|
+
* "UpdateType": "Mutable",
|
39
|
+
* "Required": false,
|
40
|
+
* "PrimitiveType": "Json",
|
41
|
+
* "Type": "Device"
|
42
|
+
* }
|
43
|
+
* }
|
44
|
+
* }
|
45
|
+
* }
|
46
|
+
* }
|
47
|
+
* ```
|
48
|
+
*/
|
49
|
+
const fs = require("fs-extra");
|
50
|
+
class CfnSpecValidator {
|
51
|
+
constructor(spec) {
|
52
|
+
this.errors = new Array();
|
53
|
+
this.root = JsonValue.of(spec);
|
54
|
+
}
|
55
|
+
static validate(spec) {
|
56
|
+
const ret = new CfnSpecValidator(spec);
|
57
|
+
ret.validateSpec();
|
58
|
+
return ret.errors;
|
59
|
+
}
|
60
|
+
validateSpec() {
|
61
|
+
this.assert(this.root.get('PropertyTypes'), isObject, (propTypes) => {
|
62
|
+
this.validateMap(propTypes, (propType) => this.validatePropertyType(propType));
|
63
|
+
});
|
64
|
+
this.assert(this.root.get('ResourceTypes'), isObject, (resTypes) => {
|
65
|
+
this.validateMap(resTypes, (propType) => this.validateResourceType(propType));
|
66
|
+
});
|
67
|
+
}
|
68
|
+
/**
|
69
|
+
* Property types are extremely weird
|
70
|
+
*
|
71
|
+
* Nominally, they define "records" that have a `Properties` field with the defined
|
72
|
+
* properties.
|
73
|
+
*
|
74
|
+
* However, they are also commonly used as aliases for other types, meaning they have
|
75
|
+
* the same type-indicating fields as individual property *fields* would have.
|
76
|
+
*
|
77
|
+
* Also also, it seems to be quite common to have them empty--have no fields at all.
|
78
|
+
* This seems to be taken as an alias for an unstructured `Json` type. It's probably
|
79
|
+
* just a mistake, but unfortunately a mistake that S3 is participating in, so if we
|
80
|
+
* fail on that we won't be able to consume updates to S3's schema. Our codegen is
|
81
|
+
* ready to deal with this and just renders it to an empty struct.
|
82
|
+
*/
|
83
|
+
validatePropertyType(propType) {
|
84
|
+
// If the only set of properties is "Documentation", we take this to be an alias
|
85
|
+
// for an empty struct and allow it. I feel icky allowing this, but it seems to
|
86
|
+
// be pragmatic for now.
|
87
|
+
if (Object.keys(propType.value).join(',') === 'Documentation') {
|
88
|
+
return;
|
89
|
+
}
|
90
|
+
const properties = propType.get('Properties');
|
91
|
+
if (properties.hasValue) {
|
92
|
+
this.assert(properties, isObject, (props) => {
|
93
|
+
this.validateProperties(props);
|
94
|
+
});
|
95
|
+
}
|
96
|
+
else {
|
97
|
+
this.validateType(propType, 'if a property type doesn\'t have "Properties", it ');
|
98
|
+
}
|
99
|
+
}
|
100
|
+
validateResourceType(resType) {
|
101
|
+
this.assertOptional(resType.get('Properties'), isObject, (props) => {
|
102
|
+
this.validateProperties(props);
|
103
|
+
});
|
104
|
+
this.assertOptional(resType.get('Attributes'), isObject, (attrs) => {
|
105
|
+
this.validateMap(attrs, attr => {
|
106
|
+
this.validateType(attr);
|
107
|
+
});
|
108
|
+
});
|
109
|
+
}
|
110
|
+
validateProperties(properties) {
|
111
|
+
this.validateMap(properties, prop => {
|
112
|
+
this.validateType(prop);
|
113
|
+
this.assertOptional(prop.get('UpdateType'), (x) => {
|
114
|
+
if (!['Mutable', 'Immutable', 'Conditional'].includes(x)) {
|
115
|
+
throw new Error(`invalid value for enum: '${x}'`);
|
116
|
+
}
|
117
|
+
});
|
118
|
+
});
|
119
|
+
}
|
120
|
+
/**
|
121
|
+
* Validate the type
|
122
|
+
*
|
123
|
+
* There must be:
|
124
|
+
* - Either Type or PrimitiveType
|
125
|
+
* - Only if Type is List or Map, there will be either an ItemType or a PrimitiveItemType
|
126
|
+
* - Non-primitive Types must correspond to a property type
|
127
|
+
*/
|
128
|
+
validateType(typedObject, errorPrefix = '') {
|
129
|
+
const type = typedObject.get('Type');
|
130
|
+
const primitiveType = typedObject.get('PrimitiveType');
|
131
|
+
if (type.hasValue === primitiveType.hasValue) {
|
132
|
+
this.report(typedObject, `${errorPrefix}must have exactly one of 'Type', 'PrimitiveType', found: ${JSON.stringify({
|
133
|
+
Type: type.valueOrUndefined,
|
134
|
+
PrimitiveType: primitiveType.valueOrUndefined,
|
135
|
+
})}`);
|
136
|
+
}
|
137
|
+
this.assertOptional(primitiveType, isValidPrimitive);
|
138
|
+
let isCollectionType = false;
|
139
|
+
const itemType = typedObject.get('ItemType');
|
140
|
+
const primitiveItemType = typedObject.get('PrimitiveItemType');
|
141
|
+
if (type.hasValue) {
|
142
|
+
isCollectionType = COLLECTION_TYPES.includes(type.value);
|
143
|
+
if (isCollectionType) {
|
144
|
+
if (itemType.hasValue === primitiveItemType.hasValue) {
|
145
|
+
this.report(typedObject, `must have exactly one of 'ItemType', 'PrimitiveItemType', found: ${JSON.stringify({
|
146
|
+
ItemType: itemType.valueOrUndefined,
|
147
|
+
PrimitiveItemType: primitiveItemType.valueOrUndefined,
|
148
|
+
})}`);
|
149
|
+
}
|
150
|
+
this.assertOptional(primitiveItemType, isValidPrimitive);
|
151
|
+
if (itemType.hasValue) {
|
152
|
+
this.assertValidPropertyTypeReference(itemType);
|
153
|
+
}
|
154
|
+
}
|
155
|
+
else {
|
156
|
+
this.assertValidPropertyTypeReference(type);
|
157
|
+
}
|
158
|
+
}
|
159
|
+
if (!isCollectionType) {
|
160
|
+
if (itemType.hasValue || primitiveItemType.hasValue) {
|
161
|
+
this.report(typedObject, 'only \'List\' or \'Map\' types can have \'ItemType\', \'PrimitiveItemType\'');
|
162
|
+
}
|
163
|
+
}
|
164
|
+
const dupes = typedObject.get('DuplicatesAllowed');
|
165
|
+
if (dupes.hasValue && !isCollectionType) {
|
166
|
+
this.report(dupes, 'occurs on non-collection type');
|
167
|
+
}
|
168
|
+
}
|
169
|
+
assertValidPropertyTypeReference(typeName) {
|
170
|
+
if (BUILTIN_COMPLEX_TYPES.includes(typeName.value)) {
|
171
|
+
return;
|
172
|
+
}
|
173
|
+
const cfnName = typeName.path[1]; // AWS::Xyz::Resource[.Property]
|
174
|
+
const namespace = cfnName.split('.')[0];
|
175
|
+
const propTypeName = `${namespace}.${typeName.value}`;
|
176
|
+
if (!this.root.get('PropertyTypes').get(propTypeName).hasValue) {
|
177
|
+
this.report(typeName, `unknown property type name '${typeName.value}' (missing definition for '${propTypeName}')`);
|
178
|
+
}
|
179
|
+
}
|
180
|
+
assertOptional(x, pred, block) {
|
181
|
+
return x.hasValue ? this.assert(x, pred, block) : true;
|
182
|
+
}
|
183
|
+
assert(x, pred, block) {
|
184
|
+
try {
|
185
|
+
pred(x.value);
|
186
|
+
if (block) {
|
187
|
+
block(new JsonValue(x.value, x.path));
|
188
|
+
}
|
189
|
+
return true;
|
190
|
+
}
|
191
|
+
catch (e) {
|
192
|
+
this.report(x, e.message);
|
193
|
+
return false;
|
194
|
+
}
|
195
|
+
}
|
196
|
+
validateMap(x, block) {
|
197
|
+
for (const key in x.value) {
|
198
|
+
block(x.get(key));
|
199
|
+
}
|
200
|
+
}
|
201
|
+
report(value, message) {
|
202
|
+
this.errors.push({ value, message });
|
203
|
+
}
|
204
|
+
}
|
205
|
+
exports.CfnSpecValidator = CfnSpecValidator;
|
206
|
+
function isObject(x) {
|
207
|
+
if (x == null || typeof x !== 'object' || Array.isArray(x)) {
|
208
|
+
throw new Error(`expected object, found '${x}'`);
|
209
|
+
}
|
210
|
+
}
|
211
|
+
const COLLECTION_TYPES = ['List', 'Map'];
|
212
|
+
const BUILTIN_COMPLEX_TYPES = ['Tag'];
|
213
|
+
function isValidPrimitive(x) {
|
214
|
+
const primitives = ['String', 'Long', 'Integer', 'Double', 'Boolean', 'Timestamp', 'Json'];
|
215
|
+
if (!primitives.includes(x)) {
|
216
|
+
throw new Error(`must be one of ${primitives.join(', ')}, got: ${x}`);
|
217
|
+
}
|
218
|
+
}
|
219
|
+
class JsonValue {
|
220
|
+
constructor(value, path) {
|
221
|
+
this.value = value;
|
222
|
+
this.path = path;
|
223
|
+
this.hasValue = true;
|
224
|
+
this.valueOrUndefined = this.value;
|
225
|
+
this.pathValue = this.value;
|
226
|
+
}
|
227
|
+
static of(x) {
|
228
|
+
return new JsonValue(x, []);
|
229
|
+
}
|
230
|
+
get(k) {
|
231
|
+
if (!this.value || typeof this.value !== 'object' || Array.isArray(this.value)) {
|
232
|
+
return new ErrorValue(`expected object, found ${this.value}`, this.path, this.value);
|
233
|
+
}
|
234
|
+
const ret = this.value[k];
|
235
|
+
if (ret === undefined) {
|
236
|
+
return new ErrorValue(`missing required key '${k}'`, this.path, this.value);
|
237
|
+
}
|
238
|
+
return new JsonValue(ret, [...this.path, `${k}`]);
|
239
|
+
}
|
240
|
+
}
|
241
|
+
class ErrorValue {
|
242
|
+
constructor(error, path, pathValue) {
|
243
|
+
this.error = error;
|
244
|
+
this.path = path;
|
245
|
+
this.pathValue = pathValue;
|
246
|
+
this.hasValue = false;
|
247
|
+
this.valueOrUndefined = undefined;
|
248
|
+
}
|
249
|
+
get(_k) {
|
250
|
+
return this;
|
251
|
+
}
|
252
|
+
get value() {
|
253
|
+
throw new Error(this.error);
|
254
|
+
}
|
255
|
+
}
|
256
|
+
function formatErrorInContext(error) {
|
257
|
+
let reportValue = error.value.pathValue;
|
258
|
+
for (let i = error.value.path.length; i > 0; i--) {
|
259
|
+
reportValue = { [error.value.path[i - 1]]: reportValue };
|
260
|
+
}
|
261
|
+
const formattedLines = JSON.stringify(reportValue, undefined, 2).split('\n');
|
262
|
+
const indent = 2 * (error.value.path.length + 1);
|
263
|
+
// Insert the error message at line N with an appropriate indent
|
264
|
+
formattedLines.splice(error.value.path.length + 1, 0, `\n!!!${' '.repeat(indent - 3)}${error.message} !!!\n`);
|
265
|
+
return formattedLines.join('\n');
|
266
|
+
}
|
267
|
+
exports.formatErrorInContext = formatErrorInContext;
|
268
|
+
async function main(args) {
|
269
|
+
const spec = await fs.readJson(args[0]);
|
270
|
+
const errors = CfnSpecValidator.validate(spec);
|
271
|
+
if (errors.length !== 0) {
|
272
|
+
for (const error of errors) {
|
273
|
+
console.error(formatErrorInContext(error));
|
274
|
+
}
|
275
|
+
process.exitCode = 1;
|
276
|
+
}
|
277
|
+
}
|
278
|
+
if (require.main === module) {
|
279
|
+
main(process.argv.slice(2)).catch(e => {
|
280
|
+
process.exitCode = 1;
|
281
|
+
// eslint-disable-next-line no-console
|
282
|
+
console.error(e.message);
|
283
|
+
});
|
284
|
+
}
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtY2ZuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGUtY2ZuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUMvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJDRztBQUNILCtCQUErQjtBQWEvQixNQUFhLGdCQUFnQjtJQVUzQixZQUFZLElBQWE7UUFIVCxXQUFNLEdBQUcsSUFBSSxLQUFLLEVBQW1CLENBQUM7UUFJcEQsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFYTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQWE7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7SUFTTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixD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LWNvbnNvbGUgKi9cbi8qKlxuICogQ2xvdWRGb3JtYXRpb24gc3BlYyB2YWxpZGF0b3JcbiAqXG4gKiBcIldoeSBub3QgSlNPTiBTY2hlbWE/XCIsIHlvdSBtaWdodCBhc2ssIGFuZCBpdCdzIGEgZmFpciBxdWVzdGlvbi4gVGhlIGFuc3dlciBpczpcbiAqIGJlY2F1c2UgdGhlIGVycm9yIHJlcG9ydGluZyBmcm9tIEpTT04gc2NoZW1hIGlzIHByZXR0eSBiYWQsIGFuZCBJIHdhbnQgdGhlIHZhbGlkYXRpb25cbiAqIGVycm9ycyByZXBvcnRlZCBmcm9tIHRoaXMgY2hlY2sgdG8gYmUgYmxpbmRpbmdseSBvYnZpb3VzLCBhcyBub24tc3BlYy1leHBlcnRzXG4gKiBhcmUgZ29pbmcgdG8gaGF2ZSB0byBjb25zdW1lIGFuZCB1bmRlcnN0YW5kIHRoZW0uXG4gKlxuICogSSB0cmllZCBKU09OIFNjaGVtYSB2YWxpZGF0aW9uIGFuZCBpdHMgZXJyb3JzIGxvb2sgbGlrZTpcbiAqXG4gKiBgYGBcbiAqIC0gaW5zdGFuY2UuUHJvcGVydHlUeXBlc1tcIi4uLlwiXS5Qcm9wZXJ0aWVzLlh5eiBkb2VzIG5vdCBtYXRjaCBhbGxPZiBzY2hlbWEgPCMvZGVmaW5pdGlvbnMvVHlwZWQ+IHdpdGggNyBlcnJvcltzXTpcbiAqIC0gaW5zdGFuY2UuUHJvcGVydHlUeXBlc1tcIi4uLlwiXS5Qcm9wZXJ0aWVzLlh5eiByZXF1aXJlcyBwcm9wZXJ0eSBcIlByaW1pdGl2ZVR5cGVcIlxuICogLSBpbnN0YW5jZS5Qcm9wZXJ0eVR5cGVzW1wiLi4uXCJdLlByb3BlcnRpZXMuWHl6IHJlcXVpcmVzIHByb3BlcnR5IFwiVHlwZVwiXG4gKiAtIGluc3RhbmNlLlByb3BlcnR5VHlwZXNbXCIuLi5cIl0uUHJvcGVydGllcy5YeXogcmVxdWlyZXMgcHJvcGVydHkgXCJUeXBlXCJcbiAqIC0gaW5zdGFuY2UuUHJvcGVydHlUeXBlc1tcIi4uLlwiXS5Qcm9wZXJ0aWVzLlh5eiByZXF1aXJlcyBwcm9wZXJ0eSBcIkl0ZW1UeXBlXCJcbiAqIC0gaW5zdGFuY2UuUHJvcGVydHlUeXBlc1tcIi4uLlwiXS5Qcm9wZXJ0aWVzLlh5eiByZXF1aXJlcyBwcm9wZXJ0eSBcIlR5cGVcIlxuICogLSBpbnN0YW5jZS5Qcm9wZXJ0eVR5cGVzW1wiLi4uXCJdLlByb3BlcnRpZXMuWHl6IHJlcXVpcmVzIHByb3BlcnR5IFwiUHJpbWl0aXZlSXRlbVR5cGVcIlxuICogLSBpbnN0YW5jZS5Qcm9wZXJ0eVR5cGVzW1wiLi4uXCJdLlByb3BlcnRpZXMuWHl6IGlzIG5vdCBleGFjdGx5IG9uZSBmcm9tIFwiUHJpbWl0aXZlXCIsXCJDb21wbGV4IFR5cGVcIixcIkNvbGxlY3Rpb24gb2YgUHJpbWl0aXZlc1wiLFwiQ29sbGVjdGlvbiBvZiBDb21wbGV4IFR5cGVzXCJcbiAqIGBgYFxuICpcbiAqIE5vIGJ1ZW5vLiBJbiBjb250cmFzdCwgdGhpcyBzY3JpcHQgcHJpbnRzOlxuICpcbiAqIGBgYFxuICoge1xuICogICBcIlJlc291cmNlVHlwZXNcIjoge1xuICogICAgIFwiQVdTOjpTYWdlTWFrZXI6OkRldmljZVwiOiB7XG4gKiAgICAgICBcIlByb3BlcnRpZXNcIjoge1xuICogICAgICAgICBcIkRldmljZVwiOiB7XG4gKlxuICogISEhICAgICAgIG11c3QgaGF2ZSBleGFjdGx5IG9uZSBvZiAnVHlwZScsICdQcmltaXRpdmVUeXBlJywgZm91bmQ6IHtcIlR5cGVcIjpcIkRldmljZVwiLFwiUHJpbWl0aXZlVHlwZVwiOlwiSnNvblwifSAhISFcbiAqXG4gKiAgICAgICAgICAgXCJEb2N1bWVudGF0aW9uXCI6IFwiaHR0cDovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2Utc2FnZW1ha2VyLWRldmljZS5odG1sI2Nmbi1zYWdlbWFrZXItZGV2aWNlLWRldmljZVwiLFxuICogICAgICAgICAgIFwiVXBkYXRlVHlwZVwiOiBcIk11dGFibGVcIixcbiAqICAgICAgICAgICBcIlJlcXVpcmVkXCI6IGZhbHNlLFxuICogICAgICAgICAgIFwiUHJpbWl0aXZlVHlwZVwiOiBcIkpzb25cIixcbiAqICAgICAgICAgICBcIlR5cGVcIjogXCJEZXZpY2VcIlxuICogICAgICAgICB9XG4gKiAgICAgICB9XG4gKiAgICAgfVxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENmblNwZWMge1xuICBQcm9wZXJ0eVR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBSZXNvdXJjZVR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBSZXNvdXJjZVNwZWNpZmljYXRpb25WZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvbkVycm9yIHtcbiAgcmVhZG9ubHkgdmFsdWU6IEpzb25WYWx1ZTxhbnk+O1xuICByZWFkb25seSBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDZm5TcGVjVmFsaWRhdG9yIHtcbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZShzcGVjOiBDZm5TcGVjKSB7XG4gICAgY29uc3QgcmV0ID0gbmV3IENmblNwZWNWYWxpZGF0b3Ioc3BlYyk7XG4gICAgcmV0LnZhbGlkYXRlU3BlYygpO1xuICAgIHJldHVybiByZXQuZXJyb3JzO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGVycm9ycyA9IG5ldyBBcnJheTxWYWxpZGF0aW9uRXJyb3I+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm9vdDogSnNvblZhbHVlPENmblNwZWM+O1xuXG4gIGNvbnN0cnVjdG9yKHNwZWM6IENmblNwZWMpIHtcbiAgICB0aGlzLnJvb3QgPSBKc29uVmFsdWUub2Yoc3BlYyk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVTcGVjKCkge1xuICAgIHRoaXMuYXNzZXJ0KHRoaXMucm9vdC5nZXQoJ1Byb3BlcnR5VHlwZXMnKSwgaXNPYmplY3QsIChwcm9wVHlwZXMpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVNYXAocHJvcFR5cGVzLCAocHJvcFR5cGUpID0+IHRoaXMudmFsaWRhdGVQcm9wZXJ0eVR5cGUocHJvcFR5cGUpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYXNzZXJ0KHRoaXMucm9vdC5nZXQoJ1Jlc291cmNlVHlwZXMnKSwgaXNPYmplY3QsIChyZXNUeXBlcykgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZU1hcChyZXNUeXBlcywgKHByb3BUeXBlKSA9PiB0aGlzLnZhbGlkYXRlUmVzb3VyY2VUeXBlKHByb3BUeXBlKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJvcGVydHkgdHlwZXMgYXJlIGV4dHJlbWVseSB3ZWlyZFxuICAgKlxuICAgKiBOb21pbmFsbHksIHRoZXkgZGVmaW5lIFwicmVjb3Jkc1wiIHRoYXQgaGF2ZSBhIGBQcm9wZXJ0aWVzYCBmaWVsZCB3aXRoIHRoZSBkZWZpbmVkXG4gICAqIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEhvd2V2ZXIsIHRoZXkgYXJlIGFsc28gY29tbW9ubHkgdXNlZCBhcyBhbGlhc2VzIGZvciBvdGhlciB0eXBlcywgbWVhbmluZyB0aGV5IGhhdmVcbiAgICogdGhlIHNhbWUgdHlwZS1pbmRpY2F0aW5nIGZpZWxkcyBhcyBpbmRpdmlkdWFsIHByb3BlcnR5ICpmaWVsZHMqIHdvdWxkIGhhdmUuXG4gICAqXG4gICAqIEFsc28gYWxzbywgaXQgc2VlbXMgdG8gYmUgcXVpdGUgY29tbW9uIHRvIGhhdmUgdGhlbSBlbXB0eS0taGF2ZSBubyBmaWVsZHMgYXQgYWxsLlxuICAgKiBUaGlzIHNlZW1zIHRvIGJlIHRha2VuIGFzIGFuIGFsaWFzIGZvciBhbiB1bnN0cnVjdHVyZWQgYEpzb25gIHR5cGUuIEl0J3MgcHJvYmFibHlcbiAgICoganVzdCBhIG1pc3Rha2UsIGJ1dCB1bmZvcnR1bmF0ZWx5IGEgbWlzdGFrZSB0aGF0IFMzIGlzIHBhcnRpY2lwYXRpbmcgaW4sIHNvIGlmIHdlXG4gICAqIGZhaWwgb24gdGhhdCB3ZSB3b24ndCBiZSBhYmxlIHRvIGNvbnN1bWUgdXBkYXRlcyB0byBTMydzIHNjaGVtYS4gT3VyIGNvZGVnZW4gaXNcbiAgICogcmVhZHkgdG8gZGVhbCB3aXRoIHRoaXMgYW5kIGp1c3QgcmVuZGVycyBpdCB0byBhbiBlbXB0eSBzdHJ1Y3QuXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlUHJvcGVydHlUeXBlKHByb3BUeXBlOiBKc29uVmFsdWU8UmVjb3JkPHN0cmluZywgYW55Pj4pIHtcbiAgICAvLyBJZiB0aGUgb25seSBzZXQgb2YgcHJvcGVydGllcyBpcyBcIkRvY3VtZW50YXRpb25cIiwgd2UgdGFrZSB0aGlzIHRvIGJlIGFuIGFsaWFzXG4gICAgLy8gZm9yIGFuIGVtcHR5IHN0cnVjdCBhbmQgYWxsb3cgaXQuIEkgZmVlbCBpY2t5IGFsbG93aW5nIHRoaXMsIGJ1dCBpdCBzZWVtcyB0b1xuICAgIC8vIGJlIHByYWdtYXRpYyBmb3Igbm93LlxuICAgIGlmIChPYmplY3Qua2V5cyhwcm9wVHlwZS52YWx1ZSkuam9pbignLCcpID09PSAnRG9jdW1lbnRhdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcHJvcFR5cGUuZ2V0KCdQcm9wZXJ0aWVzJyk7XG4gICAgaWYgKHByb3BlcnRpZXMuaGFzVmFsdWUpIHtcbiAgICAgIHRoaXMuYXNzZXJ0KHByb3BlcnRpZXMsIGlzT2JqZWN0LCAocHJvcHMpID0+IHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZVByb3BlcnRpZXMocHJvcHMpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsaWRhdGVUeXBlKHByb3BUeXBlLCAnaWYgYSBwcm9wZXJ0eSB0eXBlIGRvZXNuXFwndCBoYXZlIFwiUHJvcGVydGllc1wiLCBpdCAnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlUmVzb3VyY2VUeXBlKHJlc1R5cGU6IEpzb25WYWx1ZTxhbnk+KSB7XG4gICAgdGhpcy5hc3NlcnRPcHRpb25hbChyZXNUeXBlLmdldCgnUHJvcGVydGllcycpLCBpc09iamVjdCwgKHByb3BzKSA9PiB7XG4gICAgICB0aGlzLnZhbGlkYXRlUHJvcGVydGllcyhwcm9wcyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFzc2VydE9wdGlvbmFsKHJlc1R5cGUuZ2V0KCdBdHRyaWJ1dGVzJyksIGlzT2JqZWN0LCAoYXR0cnMpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVNYXAoYXR0cnMsIGF0dHIgPT4ge1xuICAgICAgICB0aGlzLnZhbGlkYXRlVHlwZShhdHRyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVByb3BlcnRpZXMocHJvcGVydGllczogSnNvblZhbHVlPFJlY29yZDxzdHJpbmcsIGFueT4+KSB7XG4gICAgdGhpcy52YWxpZGF0ZU1hcChwcm9wZXJ0aWVzLCBwcm9wID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVUeXBlKHByb3ApO1xuXG4gICAgICB0aGlzLmFzc2VydE9wdGlvbmFsKHByb3AuZ2V0KCdVcGRhdGVUeXBlJyksICh4OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFbJ011dGFibGUnLCAnSW1tdXRhYmxlJywgJ0NvbmRpdGlvbmFsJ10uaW5jbHVkZXMoeCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmFsdWUgZm9yIGVudW06ICcke3h9J2ApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGUgdHlwZVxuICAgKlxuICAgKiBUaGVyZSBtdXN0IGJlOlxuICAgKiAtIEVpdGhlciBUeXBlIG9yIFByaW1pdGl2ZVR5cGVcbiAgICogLSBPbmx5IGlmIFR5cGUgaXMgTGlzdCBvciBNYXAsIHRoZXJlIHdpbGwgYmUgZWl0aGVyIGFuIEl0ZW1UeXBlIG9yIGEgUHJpbWl0aXZlSXRlbVR5cGVcbiAgICogLSBOb24tcHJpbWl0aXZlIFR5cGVzIG11c3QgY29ycmVzcG9uZCB0byBhIHByb3BlcnR5IHR5cGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUeXBlKHR5cGVkT2JqZWN0OiBKc29uVmFsdWU8UmVjb3JkPHN0cmluZywgYW55Pj4sIGVycm9yUHJlZml4ID0gJycpIHtcbiAgICBjb25zdCB0eXBlID0gdHlwZWRPYmplY3QuZ2V0KCdUeXBlJyk7XG4gICAgY29uc3QgcHJpbWl0aXZlVHlwZSA9IHR5cGVkT2JqZWN0LmdldCgnUHJpbWl0aXZlVHlwZScpO1xuXG4gICAgaWYgKHR5cGUuaGFzVmFsdWUgPT09IHByaW1pdGl2ZVR5cGUuaGFzVmFsdWUpIHtcbiAgICAgIHRoaXMucmVwb3J0KHR5cGVkT2JqZWN0LCBgJHtlcnJvclByZWZpeH1tdXN0IGhhdmUgZXhhY3RseSBvbmUgb2YgJ1R5cGUnLCAnUHJpbWl0aXZlVHlwZScsIGZvdW5kOiAke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgVHlwZTogdHlwZS52YWx1ZU9yVW5kZWZpbmVkLFxuICAgICAgICBQcmltaXRpdmVUeXBlOiBwcmltaXRpdmVUeXBlLnZhbHVlT3JVbmRlZmluZWQsXG4gICAgICB9KX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLmFzc2VydE9wdGlvbmFsKHByaW1pdGl2ZVR5cGUsIGlzVmFsaWRQcmltaXRpdmUpO1xuXG4gICAgbGV0IGlzQ29sbGVjdGlvblR5cGUgPSBmYWxzZTtcbiAgICBjb25zdCBpdGVtVHlwZSA9IHR5cGVkT2JqZWN0LmdldCgnSXRlbVR5cGUnKTtcbiAgICBjb25zdCBwcmltaXRpdmVJdGVtVHlwZSA9IHR5cGVkT2JqZWN0LmdldCgnUHJpbWl0aXZlSXRlbVR5cGUnKTtcblxuICAgIGlmICh0eXBlLmhhc1ZhbHVlKSB7XG4gICAgICBpc0NvbGxlY3Rpb25UeXBlID0gQ09MTEVDVElPTl9UWVBFUy5pbmNsdWRlcyh0eXBlLnZhbHVlKTtcbiAgICAgIGlmIChpc0NvbGxlY3Rpb25UeXBlKSB7XG4gICAgICAgIGlmIChpdGVtVHlwZS5oYXNWYWx1ZSA9PT0gcHJpbWl0aXZlSXRlbVR5cGUuaGFzVmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnJlcG9ydCh0eXBlZE9iamVjdCwgYG11c3QgaGF2ZSBleGFjdGx5IG9uZSBvZiAnSXRlbVR5cGUnLCAnUHJpbWl0aXZlSXRlbVR5cGUnLCBmb3VuZDogJHtKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBJdGVtVHlwZTogaXRlbVR5cGUudmFsdWVPclVuZGVmaW5lZCxcbiAgICAgICAgICAgIFByaW1pdGl2ZUl0ZW1UeXBlOiBwcmltaXRpdmVJdGVtVHlwZS52YWx1ZU9yVW5kZWZpbmVkLFxuICAgICAgICAgIH0pfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hc3NlcnRPcHRpb25hbChwcmltaXRpdmVJdGVtVHlwZSwgaXNWYWxpZFByaW1pdGl2ZSk7XG4gICAgICAgIGlmIChpdGVtVHlwZS5oYXNWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuYXNzZXJ0VmFsaWRQcm9wZXJ0eVR5cGVSZWZlcmVuY2UoaXRlbVR5cGUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFzc2VydFZhbGlkUHJvcGVydHlUeXBlUmVmZXJlbmNlKHR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaXNDb2xsZWN0aW9uVHlwZSkge1xuICAgICAgaWYgKGl0ZW1UeXBlLmhhc1ZhbHVlIHx8IHByaW1pdGl2ZUl0ZW1UeXBlLmhhc1ZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVwb3J0KHR5cGVkT2JqZWN0LCAnb25seSBcXCdMaXN0XFwnIG9yIFxcJ01hcFxcJyB0eXBlcyBjYW4gaGF2ZSBcXCdJdGVtVHlwZVxcJywgXFwnUHJpbWl0aXZlSXRlbVR5cGVcXCcnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkdXBlcyA9IHR5cGVkT2JqZWN0LmdldCgnRHVwbGljYXRlc0FsbG93ZWQnKTtcbiAgICBpZiAoZHVwZXMuaGFzVmFsdWUgJiYgIWlzQ29sbGVjdGlvblR5cGUpIHtcbiAgICAgIHRoaXMucmVwb3J0KGR1cGVzLCAnb2NjdXJzIG9uIG5vbi1jb2xsZWN0aW9uIHR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzc2VydFZhbGlkUHJvcGVydHlUeXBlUmVmZXJlbmNlKHR5cGVOYW1lOiBKc29uVmFsdWU8c3RyaW5nPikge1xuICAgIGlmIChCVUlMVElOX0NPTVBMRVhfVFlQRVMuaW5jbHVkZXModHlwZU5hbWUudmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2ZuTmFtZSA9IHR5cGVOYW1lLnBhdGhbMV07IC8vIEFXUzo6WHl6OjpSZXNvdXJjZVsuUHJvcGVydHldXG4gICAgY29uc3QgbmFtZXNwYWNlID0gY2ZuTmFtZS5zcGxpdCgnLicpWzBdO1xuXG4gICAgY29uc3QgcHJvcFR5cGVOYW1lID0gYCR7bmFtZXNwYWNlfS4ke3R5cGVOYW1lLnZhbHVlfWA7XG4gICAgaWYgKCF0aGlzLnJvb3QuZ2V0KCdQcm9wZXJ0eVR5cGVzJykuZ2V0KHByb3BUeXBlTmFtZSkuaGFzVmFsdWUpIHtcbiAgICAgIHRoaXMucmVwb3J0KHR5cGVOYW1lLCBgdW5rbm93biBwcm9wZXJ0eSB0eXBlIG5hbWUgJyR7dHlwZU5hbWUudmFsdWV9JyAobWlzc2luZyBkZWZpbml0aW9uIGZvciAnJHtwcm9wVHlwZU5hbWV9JylgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzc2VydE9wdGlvbmFsPEEsIEIgZXh0ZW5kcyBBPih4OiBKc29uVmFsdWU8QT4sIHByZWQ6ICh4OiBBKSA9PiBhc3NlcnRzIHggaXMgQiwgYmxvY2s/OiAoeDogSnNvblZhbHVlPEI+KSA9PiB2b2lkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHguaGFzVmFsdWUgPyB0aGlzLmFzc2VydCh4LCBwcmVkLCBibG9jaykgOiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NlcnQ8QSwgQiBleHRlbmRzIEE+KHg6IEpzb25WYWx1ZTxBPiwgcHJlZDogKHg6IEEpID0+IGFzc2VydHMgeCBpcyBCLCBibG9jaz86ICh4OiBKc29uVmFsdWU8Qj4pID0+IHZvaWQpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgcHJlZCh4LnZhbHVlKTtcbiAgICAgIGlmIChibG9jaykge1xuICAgICAgICBibG9jayhuZXcgSnNvblZhbHVlKHgudmFsdWUsIHgucGF0aCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5yZXBvcnQoeCwgZS5tZXNzYWdlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTWFwPEE+KHg6IEpzb25WYWx1ZTxSZWNvcmQ8c3RyaW5nLCBBPj4sIGJsb2NrOiAoeDogSnNvblZhbHVlPEE+KSA9PiB2b2lkKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4geC52YWx1ZSkge1xuICAgICAgYmxvY2soeC5nZXQoa2V5KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXBvcnQodmFsdWU6IEpzb25WYWx1ZTxhbnk+LCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVycm9ycy5wdXNoKHsgdmFsdWUsIG1lc3NhZ2UgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNPYmplY3QoeDogYW55KTogYXNzZXJ0cyB4IGlzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAoeCA9PSBudWxsIHx8IHR5cGVvZiB4ICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBvYmplY3QsIGZvdW5kICcke3h9J2ApO1xuICB9XG59XG5cbmNvbnN0IENPTExFQ1RJT05fVFlQRVMgPSBbJ0xpc3QnLCAnTWFwJ107XG5jb25zdCBCVUlMVElOX0NPTVBMRVhfVFlQRVMgPSBbJ1RhZyddO1xuXG5mdW5jdGlvbiBpc1ZhbGlkUHJpbWl0aXZlKHg6IGFueSk6IGFzc2VydHMgeCBpcyBzdHJpbmcge1xuICBjb25zdCBwcmltaXRpdmVzID0gWydTdHJpbmcnLCAnTG9uZycsICdJbnRlZ2VyJywgJ0RvdWJsZScsICdCb29sZWFuJywgJ1RpbWVzdGFtcCcsICdKc29uJ107XG5cbiAgaWYgKCFwcmltaXRpdmVzLmluY2x1ZGVzKHgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IGJlIG9uZSBvZiAke3ByaW1pdGl2ZXMuam9pbignLCAnKX0sIGdvdDogJHt4fWApO1xuICB9XG59XG5cbmludGVyZmFjZSBKc29uVmFsdWU8QT4ge1xuICByZWFkb25seSBwYXRoOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcGF0aFZhbHVlOiBhbnk7XG4gIHJlYWRvbmx5IGhhc1ZhbHVlOiBib29sZWFuO1xuICByZWFkb25seSB2YWx1ZTogQTtcbiAgcmVhZG9ubHkgdmFsdWVPclVuZGVmaW5lZDogQSB8IHVuZGVmaW5lZDtcbiAgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBBPihrOiBLKTogSnNvblZhbHVlPEFbS10+O1xufVxuXG5jbGFzcyBKc29uVmFsdWU8QT4gaW1wbGVtZW50cyBKc29uVmFsdWU8QT4ge1xuICBwdWJsaWMgc3RhdGljIG9mPEI+KHg6IEIpOiBKc29uVmFsdWU8Qj4ge1xuICAgIHJldHVybiBuZXcgSnNvblZhbHVlKHgsIFtdKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBoYXNWYWx1ZTogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZU9yVW5kZWZpbmVkOiBBIHwgdW5kZWZpbmVkID0gdGhpcy52YWx1ZTtcbiAgcHVibGljIHJlYWRvbmx5IHBhdGhWYWx1ZTogYW55ID0gdGhpcy52YWx1ZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IEEsIHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmdbXSkge1xuICB9XG5cbiAgcHVibGljIGdldDxLIGV4dGVuZHMga2V5b2YgQT4oazogSyk6IEpzb25WYWx1ZTxBW0tdPiB7XG4gICAgaWYgKCF0aGlzLnZhbHVlIHx8IHR5cGVvZiB0aGlzLnZhbHVlICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yVmFsdWUoYGV4cGVjdGVkIG9iamVjdCwgZm91bmQgJHt0aGlzLnZhbHVlfWAsIHRoaXMucGF0aCwgdGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IHJldCA9IHRoaXMudmFsdWVba107XG4gICAgaWYgKHJldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yVmFsdWUoYG1pc3NpbmcgcmVxdWlyZWQga2V5ICcke2t9J2AsIHRoaXMucGF0aCwgdGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSnNvblZhbHVlKHJldCwgWy4uLnRoaXMucGF0aCwgYCR7a31gXSk7XG4gIH1cbn1cblxuY2xhc3MgRXJyb3JWYWx1ZTxBPiBpbXBsZW1lbnRzIEpzb25WYWx1ZTxBPiB7XG4gIHB1YmxpYyByZWFkb25seSBoYXNWYWx1ZSA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVPclVuZGVmaW5lZDogQSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVycm9yOiBzdHJpbmcsIHB1YmxpYyByZWFkb25seSBwYXRoOiBzdHJpbmdbXSwgcHVibGljIHJlYWRvbmx5IHBhdGhWYWx1ZTogYW55KSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBBPihfazogSyk6IEpzb25WYWx1ZTxBW0tdPiB7XG4gICAgcmV0dXJuIHRoaXMgYXMgYW55O1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBBIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5lcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEVycm9ySW5Db250ZXh0KGVycm9yOiBWYWxpZGF0aW9uRXJyb3IpIHtcbiAgbGV0IHJlcG9ydFZhbHVlID0gZXJyb3IudmFsdWUucGF0aFZhbHVlO1xuICBmb3IgKGxldCBpID0gZXJyb3IudmFsdWUucGF0aC5sZW5ndGg7IGkgPiAwOyBpLS0pIHtcbiAgICByZXBvcnRWYWx1ZSA9IHsgW2Vycm9yLnZhbHVlLnBhdGhbaSAtIDFdXTogcmVwb3J0VmFsdWUgfTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdHRlZExpbmVzID0gSlNPTi5zdHJpbmdpZnkocmVwb3J0VmFsdWUsIHVuZGVmaW5lZCwgMikuc3BsaXQoJ1xcbicpO1xuXG4gIGNvbnN0IGluZGVudCA9IDIgKiAoZXJyb3IudmFsdWUucGF0aC5sZW5ndGggKyAxKTtcblxuICAvLyBJbnNlcnQgdGhlIGVycm9yIG1lc3NhZ2UgYXQgbGluZSBOIHdpdGggYW4gYXBwcm9wcmlhdGUgaW5kZW50XG4gIGZvcm1hdHRlZExpbmVzLnNwbGljZShlcnJvci52YWx1ZS5wYXRoLmxlbmd0aCArIDEsIDAsIGBcXG4hISEkeycgJy5yZXBlYXQoaW5kZW50IC0gMyl9JHtlcnJvci5tZXNzYWdlfSAhISFcXG5gKTtcblxuICByZXR1cm4gZm9ybWF0dGVkTGluZXMuam9pbignXFxuJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJnczogc3RyaW5nW10pIHtcbiAgY29uc3Qgc3BlYyA9IGF3YWl0IGZzLnJlYWRKc29uKGFyZ3NbMF0pO1xuICBjb25zdCBlcnJvcnMgPSBDZm5TcGVjVmFsaWRhdG9yLnZhbGlkYXRlKHNwZWMpO1xuICBpZiAoZXJyb3JzLmxlbmd0aCAhPT0gMCkge1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGZvcm1hdEVycm9ySW5Db250ZXh0KGVycm9yKSk7XG4gICAgfVxuICAgIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xuICB9XG59XG5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBtYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSkuY2F0Y2goZSA9PiB7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSk7XG4gIH0pO1xufSJdfQ==
|
@@ -0,0 +1 @@
|
|
1
|
+
109.0.0
|
@@ -0,0 +1,24 @@
|
|
1
|
+
/**
|
2
|
+
* All annotations imported from cfn-lint
|
3
|
+
*/
|
4
|
+
export interface CfnLintFileSchema {
|
5
|
+
/**
|
6
|
+
* Resource types that are in this map are stateful
|
7
|
+
*
|
8
|
+
* There is more information in the structure this maps to.
|
9
|
+
*/
|
10
|
+
readonly StatefulResources: {
|
11
|
+
readonly ResourceTypes: Record<string, CfnLintStatefulSchema>;
|
12
|
+
};
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Extra information on stateful resource types
|
16
|
+
*/
|
17
|
+
export interface CfnLintStatefulSchema {
|
18
|
+
/**
|
19
|
+
* Whether or not a Delete operation requires the resource to be empty
|
20
|
+
*
|
21
|
+
* @default false
|
22
|
+
*/
|
23
|
+
readonly DeleteRequiresEmptyResource?: boolean;
|
24
|
+
}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLWxpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZm4tbGludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbGwgYW5ub3RhdGlvbnMgaW1wb3J0ZWQgZnJvbSBjZm4tbGludFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENmbkxpbnRGaWxlU2NoZW1hIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIHR5cGVzIHRoYXQgYXJlIGluIHRoaXMgbWFwIGFyZSBzdGF0ZWZ1bFxuICAgKlxuICAgKiBUaGVyZSBpcyBtb3JlIGluZm9ybWF0aW9uIGluIHRoZSBzdHJ1Y3R1cmUgdGhpcyBtYXBzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgU3RhdGVmdWxSZXNvdXJjZXM6IHsgcmVhZG9ubHkgUmVzb3VyY2VUeXBlczogUmVjb3JkPHN0cmluZywgQ2ZuTGludFN0YXRlZnVsU2NoZW1hPiB9O1xufVxuXG4vKipcbiAqIEV4dHJhIGluZm9ybWF0aW9uIG9uIHN0YXRlZnVsIHJlc291cmNlIHR5cGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuTGludFN0YXRlZnVsU2NoZW1hIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IGEgRGVsZXRlIG9wZXJhdGlvbiByZXF1aXJlcyB0aGUgcmVzb3VyY2UgdG8gYmUgZW1wdHlcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IERlbGV0ZVJlcXVpcmVzRW1wdHlSZXNvdXJjZT86IGJvb2xlYW47XG59XG4iXX0=
|
@@ -0,0 +1,27 @@
|
|
1
|
+
{
|
2
|
+
"options": {
|
3
|
+
"classFile": "vpn",
|
4
|
+
"class": "VpnConnectionBase",
|
5
|
+
"interface": "IVpnConnection"
|
6
|
+
},
|
7
|
+
"metrics": {
|
8
|
+
"namespace": "AWS/VPN",
|
9
|
+
"dimensions": { "VpnId": "this.vpnId" },
|
10
|
+
"metrics": [
|
11
|
+
{
|
12
|
+
"name": "TunnelState",
|
13
|
+
"documentation": "The state of the tunnel. 0 indicates DOWN and 1 indicates UP."
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"name": "TunnelDataIn",
|
17
|
+
"documentation": "The bytes received through the VPN tunnel.",
|
18
|
+
"type": "count"
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"name": "TunnelDataOut",
|
22
|
+
"documentation": "The bytes sent through the VPN tunnel.",
|
23
|
+
"type": "count"
|
24
|
+
}
|
25
|
+
]
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
{
|
2
|
+
"metrics": {
|
3
|
+
"namespace": "AWS/Lambda",
|
4
|
+
"dimensions": { "FunctionName": "this.functionName" },
|
5
|
+
"metrics": [
|
6
|
+
{
|
7
|
+
"name": "Throttles",
|
8
|
+
"documentation": "How often this Lambda is throttled",
|
9
|
+
"type": "count"
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"name": "Invocations",
|
13
|
+
"documentation": "How often this Lambda is invoked",
|
14
|
+
"type": "count"
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"name": "Errors",
|
18
|
+
"documentation": "How many invocations of this Lambda fail",
|
19
|
+
"type": "count"
|
20
|
+
},
|
21
|
+
{
|
22
|
+
"name": "Duration",
|
23
|
+
"documentation": "How long execution of this Lambda takes"
|
24
|
+
}
|
25
|
+
]
|
26
|
+
}
|
27
|
+
}
|