@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,70 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.normalize = exports.massageSpec = void 0;
|
4
|
+
const scrutiny_1 = require("./scrutiny");
|
5
|
+
const lib_1 = require("../lib");
|
6
|
+
function massageSpec(spec) {
|
7
|
+
scrutiny_1.detectScrutinyTypes(spec);
|
8
|
+
replaceIncompleteTypes(spec);
|
9
|
+
dropTypelessAttributes(spec);
|
10
|
+
}
|
11
|
+
exports.massageSpec = massageSpec;
|
12
|
+
/**
|
13
|
+
* Fix incomplete type definitions in PropertyTypes
|
14
|
+
*
|
15
|
+
* Some user-defined types are defined to not have any properties, and not
|
16
|
+
* be a collection of other types either. They have no definition at all.
|
17
|
+
*
|
18
|
+
* Add a property object type with empty properties.
|
19
|
+
*/
|
20
|
+
function replaceIncompleteTypes(spec) {
|
21
|
+
for (const [name, definition] of Object.entries(spec.PropertyTypes)) {
|
22
|
+
if (!lib_1.schema.isRecordType(definition)
|
23
|
+
&& !lib_1.schema.isCollectionProperty(definition)
|
24
|
+
&& !lib_1.schema.isScalarProperty(definition)
|
25
|
+
&& !lib_1.schema.isPrimitiveProperty(definition)) {
|
26
|
+
// eslint-disable-next-line no-console
|
27
|
+
console.log(`[${name}] Incomplete type, adding empty "Properties" field`);
|
28
|
+
definition.Properties = {};
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Drop Attributes specified with the different ResourceTypes that have
|
34
|
+
* no type specified.
|
35
|
+
*/
|
36
|
+
function dropTypelessAttributes(spec) {
|
37
|
+
const resourceTypes = spec.ResourceTypes;
|
38
|
+
Object.values(resourceTypes).forEach((resourceType) => {
|
39
|
+
const attributes = resourceType.Attributes ?? {};
|
40
|
+
Object.keys(attributes).forEach((attrKey) => {
|
41
|
+
const attrVal = attributes[attrKey];
|
42
|
+
if (Object.keys(attrVal).length === 0) {
|
43
|
+
delete attributes[attrKey];
|
44
|
+
}
|
45
|
+
});
|
46
|
+
});
|
47
|
+
}
|
48
|
+
/**
|
49
|
+
* Modifies the provided specification so that ``ResourceTypes`` and ``PropertyTypes`` are listed in alphabetical order.
|
50
|
+
*
|
51
|
+
* @param spec an AWS CloudFormation Resource Specification document.
|
52
|
+
*
|
53
|
+
* @returns ``spec``, after having sorted the ``ResourceTypes`` and ``PropertyTypes`` sections alphabetically.
|
54
|
+
*/
|
55
|
+
function normalize(spec) {
|
56
|
+
spec.ResourceTypes = normalizeSection(spec.ResourceTypes);
|
57
|
+
if (spec.PropertyTypes) {
|
58
|
+
spec.PropertyTypes = normalizeSection(spec.PropertyTypes);
|
59
|
+
}
|
60
|
+
return spec;
|
61
|
+
function normalizeSection(section) {
|
62
|
+
const result = {};
|
63
|
+
for (const key of Object.keys(section).sort()) {
|
64
|
+
result[key] = section[key];
|
65
|
+
}
|
66
|
+
return result;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
exports.normalize = normalize;
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzc2FnZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibWFzc2FnZS1zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFpRDtBQUNqRCxnQ0FBZ0M7QUFFaEMsU0FBZ0IsV0FBVyxDQUFDLElBQTBCO0lBQ3BELDhCQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFKRCxrQ0FJQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQTBCO0lBQ3hELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUNuRSxJQUFJLENBQUMsWUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7ZUFDakMsQ0FBQyxZQUFNLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDO2VBQ3hDLENBQUMsWUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztlQUNwQyxDQUFDLFlBQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxQyxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksb0RBQW9ELENBQUMsQ0FBQztZQUV6RSxVQUErQyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FDbEU7S0FDRjtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQTBCO0lBQ3hELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtRQUNwRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDckMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDNUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxJQUEwQjtJQUNsRCxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDM0Q7SUFDRCxPQUFPLElBQUksQ0FBQztJQUVaLFNBQVMsZ0JBQWdCLENBQUksT0FBOEI7UUFDekQsTUFBTSxNQUFNLEdBQTBCLEVBQUUsQ0FBQztRQUN6QyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7QUFDSCxDQUFDO0FBZEQsOEJBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXRlY3RTY3J1dGlueVR5cGVzIH0gZnJvbSAnLi9zY3J1dGlueSc7XG5pbXBvcnQgeyBzY2hlbWEgfSBmcm9tICcuLi9saWInO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFzc2FnZVNwZWMoc3BlYzogc2NoZW1hLlNwZWNpZmljYXRpb24pIHtcbiAgZGV0ZWN0U2NydXRpbnlUeXBlcyhzcGVjKTtcbiAgcmVwbGFjZUluY29tcGxldGVUeXBlcyhzcGVjKTtcbiAgZHJvcFR5cGVsZXNzQXR0cmlidXRlcyhzcGVjKTtcbn1cblxuLyoqXG4gKiBGaXggaW5jb21wbGV0ZSB0eXBlIGRlZmluaXRpb25zIGluIFByb3BlcnR5VHlwZXNcbiAqXG4gKiBTb21lIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgZGVmaW5lZCB0byBub3QgaGF2ZSBhbnkgcHJvcGVydGllcywgYW5kIG5vdFxuICogYmUgYSBjb2xsZWN0aW9uIG9mIG90aGVyIHR5cGVzIGVpdGhlci4gVGhleSBoYXZlIG5vIGRlZmluaXRpb24gYXQgYWxsLlxuICpcbiAqIEFkZCBhIHByb3BlcnR5IG9iamVjdCB0eXBlIHdpdGggZW1wdHkgcHJvcGVydGllcy5cbiAqL1xuZnVuY3Rpb24gcmVwbGFjZUluY29tcGxldGVUeXBlcyhzcGVjOiBzY2hlbWEuU3BlY2lmaWNhdGlvbikge1xuICBmb3IgKGNvbnN0IFtuYW1lLCBkZWZpbml0aW9uXSBvZiBPYmplY3QuZW50cmllcyhzcGVjLlByb3BlcnR5VHlwZXMpKSB7XG4gICAgaWYgKCFzY2hlbWEuaXNSZWNvcmRUeXBlKGRlZmluaXRpb24pXG4gICAgJiYgIXNjaGVtYS5pc0NvbGxlY3Rpb25Qcm9wZXJ0eShkZWZpbml0aW9uKVxuICAgICYmICFzY2hlbWEuaXNTY2FsYXJQcm9wZXJ0eShkZWZpbml0aW9uKVxuICAgICYmICFzY2hlbWEuaXNQcmltaXRpdmVQcm9wZXJ0eShkZWZpbml0aW9uKSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKGBbJHtuYW1lfV0gSW5jb21wbGV0ZSB0eXBlLCBhZGRpbmcgZW1wdHkgXCJQcm9wZXJ0aWVzXCIgZmllbGRgKTtcblxuICAgICAgKGRlZmluaXRpb24gYXMgdW5rbm93biBhcyBzY2hlbWEuUmVjb3JkUHJvcGVydHkpLlByb3BlcnRpZXMgPSB7fTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBEcm9wIEF0dHJpYnV0ZXMgc3BlY2lmaWVkIHdpdGggdGhlIGRpZmZlcmVudCBSZXNvdXJjZVR5cGVzIHRoYXQgaGF2ZVxuICogbm8gdHlwZSBzcGVjaWZpZWQuXG4gKi9cbmZ1bmN0aW9uIGRyb3BUeXBlbGVzc0F0dHJpYnV0ZXMoc3BlYzogc2NoZW1hLlNwZWNpZmljYXRpb24pIHtcbiAgY29uc3QgcmVzb3VyY2VUeXBlcyA9IHNwZWMuUmVzb3VyY2VUeXBlcztcbiAgT2JqZWN0LnZhbHVlcyhyZXNvdXJjZVR5cGVzKS5mb3JFYWNoKChyZXNvdXJjZVR5cGUpID0+IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gcmVzb3VyY2VUeXBlLkF0dHJpYnV0ZXMgPz8ge307XG4gICAgT2JqZWN0LmtleXMoYXR0cmlidXRlcykuZm9yRWFjaCgoYXR0cktleSkgPT4ge1xuICAgICAgY29uc3QgYXR0clZhbCA9IGF0dHJpYnV0ZXNbYXR0cktleV07XG4gICAgICBpZiAoT2JqZWN0LmtleXMoYXR0clZhbCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGRlbGV0ZSBhdHRyaWJ1dGVzW2F0dHJLZXldO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBNb2RpZmllcyB0aGUgcHJvdmlkZWQgc3BlY2lmaWNhdGlvbiBzbyB0aGF0IGBgUmVzb3VyY2VUeXBlc2BgIGFuZCBgYFByb3BlcnR5VHlwZXNgYCBhcmUgbGlzdGVkIGluIGFscGhhYmV0aWNhbCBvcmRlci5cbiAqXG4gKiBAcGFyYW0gc3BlYyBhbiBBV1MgQ2xvdWRGb3JtYXRpb24gUmVzb3VyY2UgU3BlY2lmaWNhdGlvbiBkb2N1bWVudC5cbiAqXG4gKiBAcmV0dXJucyBgYHNwZWNgYCwgYWZ0ZXIgaGF2aW5nIHNvcnRlZCB0aGUgYGBSZXNvdXJjZVR5cGVzYGAgYW5kIGBgUHJvcGVydHlUeXBlc2BgIHNlY3Rpb25zIGFscGhhYmV0aWNhbGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplKHNwZWM6IHNjaGVtYS5TcGVjaWZpY2F0aW9uKTogc2NoZW1hLlNwZWNpZmljYXRpb24ge1xuICBzcGVjLlJlc291cmNlVHlwZXMgPSBub3JtYWxpemVTZWN0aW9uKHNwZWMuUmVzb3VyY2VUeXBlcyk7XG4gIGlmIChzcGVjLlByb3BlcnR5VHlwZXMpIHtcbiAgICBzcGVjLlByb3BlcnR5VHlwZXMgPSBub3JtYWxpemVTZWN0aW9uKHNwZWMuUHJvcGVydHlUeXBlcyk7XG4gIH1cbiAgcmV0dXJuIHNwZWM7XG5cbiAgZnVuY3Rpb24gbm9ybWFsaXplU2VjdGlvbjxUPihzZWN0aW9uOiB7IFtuYW1lOiBzdHJpbmddOiBUIH0pOiB7IFtuYW1lOiBzdHJpbmddOiBUIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbbmFtZTogc3RyaW5nXTogVCB9ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc2VjdGlvbikuc29ydCgpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHNlY3Rpb25ba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,25 @@
|
|
1
|
+
export interface PatchOptions {
|
2
|
+
readonly quiet?: boolean;
|
3
|
+
}
|
4
|
+
export declare type PatchSet = Record<string, PatchSetElement>;
|
5
|
+
export declare type PatchSetElement = {
|
6
|
+
readonly type: 'fragment';
|
7
|
+
readonly data: any;
|
8
|
+
} | {
|
9
|
+
readonly type: 'patch';
|
10
|
+
readonly data: any;
|
11
|
+
} | {
|
12
|
+
readonly type: 'set';
|
13
|
+
readonly sources: PatchSet;
|
14
|
+
};
|
15
|
+
export declare function loadPatchSet(sourceDirectory: string, relativeTo?: string): Promise<PatchSet>;
|
16
|
+
export declare function evaluatePatchSet(sources: PatchSet, options?: PatchOptions): any;
|
17
|
+
/**
|
18
|
+
* Load a patch set from a directory
|
19
|
+
*/
|
20
|
+
export declare function applyPatchSet(sourceDirectory: string, options?: PatchOptions): Promise<any>;
|
21
|
+
/**
|
22
|
+
* Load a patch set and write it out to a file
|
23
|
+
*/
|
24
|
+
export declare function applyAndWrite(targetFile: string, sourceDirectory: string, options?: PatchOptions): Promise<void>;
|
25
|
+
export declare function writeSorted(targetFile: string, data: any): Promise<void>;
|
@@ -0,0 +1,241 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.writeSorted = exports.applyAndWrite = exports.applyPatchSet = exports.evaluatePatchSet = exports.loadPatchSet = void 0;
|
4
|
+
/**
|
5
|
+
* Apply a JSON patch set into the given target file
|
6
|
+
*
|
7
|
+
* The sources can be taken from one or more directories.
|
8
|
+
*/
|
9
|
+
const path = require("path");
|
10
|
+
const fastJsonPatch = require("fast-json-patch");
|
11
|
+
const fs = require("fs-extra");
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
13
|
+
const sortJson = require('sort-json');
|
14
|
+
async function loadPatchSet(sourceDirectory, relativeTo = process.cwd()) {
|
15
|
+
const ret = {};
|
16
|
+
const files = await fs.readdir(sourceDirectory);
|
17
|
+
for (const file of files) {
|
18
|
+
const fullFile = path.join(sourceDirectory, file);
|
19
|
+
const relName = path.relative(relativeTo, fullFile);
|
20
|
+
if (file.startsWith('.')) {
|
21
|
+
// Nothing, ignore
|
22
|
+
}
|
23
|
+
else if ((await fs.stat(fullFile)).isDirectory()) {
|
24
|
+
ret[relName] = {
|
25
|
+
type: 'set',
|
26
|
+
sources: await loadPatchSet(fullFile, sourceDirectory),
|
27
|
+
};
|
28
|
+
}
|
29
|
+
else if (file.endsWith('.json')) {
|
30
|
+
ret[relName] = {
|
31
|
+
type: file.indexOf('patch') === -1 ? 'fragment' : 'patch',
|
32
|
+
data: await fs.readJson(fullFile),
|
33
|
+
};
|
34
|
+
}
|
35
|
+
}
|
36
|
+
return ret;
|
37
|
+
}
|
38
|
+
exports.loadPatchSet = loadPatchSet;
|
39
|
+
function evaluatePatchSet(sources, options = {}) {
|
40
|
+
const targetObject = {};
|
41
|
+
for (const key of Object.keys(sources).sort()) {
|
42
|
+
const value = sources[key];
|
43
|
+
switch (value.type) {
|
44
|
+
case 'fragment':
|
45
|
+
log(key);
|
46
|
+
merge(targetObject, value.data, []);
|
47
|
+
break;
|
48
|
+
case 'patch':
|
49
|
+
patch(targetObject, value.data, (m) => log(`${key}: ${m}`));
|
50
|
+
break;
|
51
|
+
case 'set':
|
52
|
+
const evaluated = evaluatePatchSet(value.sources, options);
|
53
|
+
log(key);
|
54
|
+
merge(targetObject, evaluated, []);
|
55
|
+
break;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
return targetObject;
|
59
|
+
function log(x) {
|
60
|
+
if (!options.quiet) {
|
61
|
+
// eslint-disable-next-line no-console
|
62
|
+
console.log(x);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
exports.evaluatePatchSet = evaluatePatchSet;
|
67
|
+
/**
|
68
|
+
* Load a patch set from a directory
|
69
|
+
*/
|
70
|
+
async function applyPatchSet(sourceDirectory, options = {}) {
|
71
|
+
const patches = await loadPatchSet(sourceDirectory);
|
72
|
+
return evaluatePatchSet(patches, options);
|
73
|
+
}
|
74
|
+
exports.applyPatchSet = applyPatchSet;
|
75
|
+
/**
|
76
|
+
* Load a patch set and write it out to a file
|
77
|
+
*/
|
78
|
+
async function applyAndWrite(targetFile, sourceDirectory, options = {}) {
|
79
|
+
const model = await applyPatchSet(sourceDirectory, options);
|
80
|
+
await writeSorted(targetFile, model);
|
81
|
+
}
|
82
|
+
exports.applyAndWrite = applyAndWrite;
|
83
|
+
async function writeSorted(targetFile, data) {
|
84
|
+
await fs.mkdirp(path.dirname(targetFile));
|
85
|
+
await fs.writeJson(targetFile, sortJson(data), { spaces: 2 });
|
86
|
+
}
|
87
|
+
exports.writeSorted = writeSorted;
|
88
|
+
function printSorted(data) {
|
89
|
+
process.stdout.write(JSON.stringify(sortJson(data), undefined, 2));
|
90
|
+
}
|
91
|
+
function merge(target, fragment, jsonPath) {
|
92
|
+
if (!fragment) {
|
93
|
+
return;
|
94
|
+
}
|
95
|
+
if (!target || typeof target !== 'object' || Array.isArray(target)) {
|
96
|
+
throw new Error(`Expected object, found: '${target}' at '$.${jsonPath.join('.')}'`);
|
97
|
+
}
|
98
|
+
for (const key of Object.keys(fragment)) {
|
99
|
+
if (key.startsWith('$')) {
|
100
|
+
continue;
|
101
|
+
}
|
102
|
+
if (key in target) {
|
103
|
+
const specVal = target[key];
|
104
|
+
const fragVal = fragment[key];
|
105
|
+
if (typeof specVal !== typeof fragVal) {
|
106
|
+
// eslint-disable-next-line max-len
|
107
|
+
throw new Error(`Attempted to merge ${JSON.stringify(fragVal)} into incompatible ${JSON.stringify(specVal)} at path ${jsonPath.join('/')}/${key}`);
|
108
|
+
}
|
109
|
+
if (specVal == fragVal) {
|
110
|
+
continue;
|
111
|
+
}
|
112
|
+
if (typeof specVal !== 'object') {
|
113
|
+
// eslint-disable-next-line max-len
|
114
|
+
throw new Error(`Conflict when attempting to merge ${JSON.stringify(fragVal)} into ${JSON.stringify(specVal)} at path ${jsonPath.join('/')}/${key}`);
|
115
|
+
}
|
116
|
+
merge(specVal, fragVal, [...jsonPath, key]);
|
117
|
+
}
|
118
|
+
else {
|
119
|
+
target[key] = fragment[key];
|
120
|
+
}
|
121
|
+
}
|
122
|
+
}
|
123
|
+
function patch(target, fragment, log) {
|
124
|
+
if (!fragment) {
|
125
|
+
return;
|
126
|
+
}
|
127
|
+
const patches = findPatches(target, fragment);
|
128
|
+
for (const p of patches) {
|
129
|
+
log(p.description ?? '');
|
130
|
+
try {
|
131
|
+
fastJsonPatch.applyPatch(target, p.operations);
|
132
|
+
}
|
133
|
+
catch (e) {
|
134
|
+
throw new Error(`error applying patch: ${JSON.stringify(p, undefined, 2)}: ${e.message}`);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
}
|
138
|
+
/**
|
139
|
+
* Find the sets of patches to apply in a document
|
140
|
+
*
|
141
|
+
* Adjusts paths to be root-relative, which makes it possible to have paths
|
142
|
+
* point outside the patch scope.
|
143
|
+
*/
|
144
|
+
function findPatches(data, patchSource) {
|
145
|
+
const ret = [];
|
146
|
+
recurse(data, patchSource, []);
|
147
|
+
return ret;
|
148
|
+
function recurse(actualData, fragment, jsonPath) {
|
149
|
+
if (!fragment) {
|
150
|
+
return;
|
151
|
+
}
|
152
|
+
if ('patch' in fragment) {
|
153
|
+
const p = fragment.patch;
|
154
|
+
if (!p.operations) {
|
155
|
+
throw new Error(`Patch needs 'operations' key, got: ${JSON.stringify(p)}`);
|
156
|
+
}
|
157
|
+
ret.push({
|
158
|
+
description: p.description,
|
159
|
+
operations: p.operations.map((op) => adjustPaths(op, jsonPath)),
|
160
|
+
});
|
161
|
+
}
|
162
|
+
else if ('patch:each' in fragment) {
|
163
|
+
const p = fragment['patch:each'];
|
164
|
+
if (typeof actualData !== 'object') {
|
165
|
+
throw new Error(`Patch ${p.description}: expecting object in data, found '${actualData}'`);
|
166
|
+
}
|
167
|
+
if (!p.operations) {
|
168
|
+
throw new Error(`Patch needs 'operations' key, got: ${JSON.stringify(p)}`);
|
169
|
+
}
|
170
|
+
for (const key in actualData) {
|
171
|
+
ret.push({
|
172
|
+
description: `${key}: ${p.description}`,
|
173
|
+
operations: p.operations.map((op) => adjustPaths(op, [...jsonPath, key])),
|
174
|
+
});
|
175
|
+
}
|
176
|
+
}
|
177
|
+
else {
|
178
|
+
for (const key of Object.keys(fragment)) {
|
179
|
+
if (!(key in actualData)) {
|
180
|
+
actualData[key] = {};
|
181
|
+
}
|
182
|
+
recurse(actualData[key], fragment[key], [...jsonPath, key]);
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|
186
|
+
function adjustPaths(op, jsonPath) {
|
187
|
+
return {
|
188
|
+
...op,
|
189
|
+
...op.path ? { path: adjustPath(op.path, jsonPath) } : undefined,
|
190
|
+
...op.from ? { from: adjustPath(op.from, jsonPath) } : undefined,
|
191
|
+
};
|
192
|
+
}
|
193
|
+
/**
|
194
|
+
* Adjust path
|
195
|
+
*
|
196
|
+
* '$/' means from the root, otherwise interpret as relative path.
|
197
|
+
*/
|
198
|
+
function adjustPath(originalPath, jsonPath) {
|
199
|
+
if (typeof originalPath !== 'string') {
|
200
|
+
throw new Error(`adjustPath: expected string, got ${JSON.stringify(originalPath)}`);
|
201
|
+
}
|
202
|
+
if (originalPath.startsWith('$/')) {
|
203
|
+
return originalPath.slice(1);
|
204
|
+
}
|
205
|
+
return jsonPath.map(p => `/${p}`).join('') + originalPath;
|
206
|
+
}
|
207
|
+
}
|
208
|
+
/**
|
209
|
+
* Run this file as a CLI tool, to apply a patch set from the command line
|
210
|
+
*/
|
211
|
+
async function main(args) {
|
212
|
+
const quiet = eatArg('-q', args) || eatArg('--quiet', args);
|
213
|
+
if (args.length < 1) {
|
214
|
+
throw new Error('Usage: patch-set <DIR> [<FILE>]');
|
215
|
+
}
|
216
|
+
const [dir, targetFile] = args;
|
217
|
+
const model = await applyPatchSet(dir, { quiet });
|
218
|
+
if (targetFile) {
|
219
|
+
await writeSorted(targetFile, model);
|
220
|
+
}
|
221
|
+
else {
|
222
|
+
printSorted(model);
|
223
|
+
}
|
224
|
+
}
|
225
|
+
function eatArg(arg, args) {
|
226
|
+
for (let i = 0; i < args.length; i++) {
|
227
|
+
if (args[i] === arg) {
|
228
|
+
args.splice(i, 1);
|
229
|
+
return true;
|
230
|
+
}
|
231
|
+
}
|
232
|
+
return false;
|
233
|
+
}
|
234
|
+
if (require.main === module) {
|
235
|
+
main(process.argv.slice(2)).catch(e => {
|
236
|
+
process.exitCode = 1;
|
237
|
+
// eslint-disable-next-line no-console
|
238
|
+
console.error(e.message);
|
239
|
+
});
|
240
|
+
}
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGF0Y2gtc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBOzs7O0dBSUc7QUFDSCw2QkFBNkI7QUFDN0IsaURBQWlEO0FBQ2pELCtCQUErQjtBQUUvQixpRUFBaUU7QUFDakUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBYy9CLEtBQUssVUFBVSxZQUFZLENBQUMsZUFBdUIsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtJQUNwRixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFFekIsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXBELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QixrQkFBa0I7U0FDbkI7YUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDbEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHO2dCQUNiLElBQUksRUFBRSxLQUFLO2dCQUNYLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDO2FBQ3ZELENBQUM7U0FDSDthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FB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QUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUM7U0FDYjtLQUNGO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtJQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDcEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDckIsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogQXBwbHkgYSBKU09OIHBhdGNoIHNldCBpbnRvIHRoZSBnaXZlbiB0YXJnZXQgZmlsZVxuICpcbiAqIFRoZSBzb3VyY2VzIGNhbiBiZSB0YWtlbiBmcm9tIG9uZSBvciBtb3JlIGRpcmVjdG9yaWVzLlxuICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZmFzdEpzb25QYXRjaCBmcm9tICdmYXN0LWpzb24tcGF0Y2gnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3Qgc29ydEpzb24gPSByZXF1aXJlKCdzb3J0LWpzb24nKTtcblxuZXhwb3J0IGludGVyZmFjZSBQYXRjaE9wdGlvbnMge1xuICByZWFkb25seSBxdWlldD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFBhdGNoU2V0ID0gUmVjb3JkPHN0cmluZywgUGF0Y2hTZXRFbGVtZW50PjtcblxuZXhwb3J0IHR5cGUgUGF0Y2hTZXRFbGVtZW50ID1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdmcmFnbWVudCc7IHJlYWRvbmx5IGRhdGE6IGFueSB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAncGF0Y2gnOyByZWFkb25seSBkYXRhOiBhbnkgfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ3NldCc7IHJlYWRvbmx5IHNvdXJjZXM6IFBhdGNoU2V0IH1cbiAgO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFBhdGNoU2V0KHNvdXJjZURpcmVjdG9yeTogc3RyaW5nLCByZWxhdGl2ZVRvID0gcHJvY2Vzcy5jd2QoKSk6IFByb21pc2U8UGF0Y2hTZXQ+IHtcbiAgY29uc3QgcmV0OiBQYXRjaFNldCA9IHt9O1xuXG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgZnMucmVhZGRpcihzb3VyY2VEaXJlY3RvcnkpO1xuICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICBjb25zdCBmdWxsRmlsZSA9IHBhdGguam9pbihzb3VyY2VEaXJlY3RvcnksIGZpbGUpO1xuICAgIGNvbnN0IHJlbE5hbWUgPSBwYXRoLnJlbGF0aXZlKHJlbGF0aXZlVG8sIGZ1bGxGaWxlKTtcblxuICAgIGlmIChmaWxlLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgLy8gTm90aGluZywgaWdub3JlXG4gICAgfSBlbHNlIGlmICgoYXdhaXQgZnMuc3RhdChmdWxsRmlsZSkpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIHJldFtyZWxOYW1lXSA9IHtcbiAgICAgICAgdHlwZTogJ3NldCcsXG4gICAgICAgIHNvdXJjZXM6IGF3YWl0IGxvYWRQYXRjaFNldChmdWxsRmlsZSwgc291cmNlRGlyZWN0b3J5KSxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChmaWxlLmVuZHNXaXRoKCcuanNvbicpKSB7XG4gICAgICByZXRbcmVsTmFtZV0gPSB7XG4gICAgICAgIHR5cGU6IGZpbGUuaW5kZXhPZigncGF0Y2gnKSA9PT0gLTEgPyAnZnJhZ21lbnQnIDogJ3BhdGNoJyxcbiAgICAgICAgZGF0YTogYXdhaXQgZnMucmVhZEpzb24oZnVsbEZpbGUpLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZhbHVhdGVQYXRjaFNldChzb3VyY2VzOiBQYXRjaFNldCwgb3B0aW9uczogUGF0Y2hPcHRpb25zID0ge30pIHtcbiAgY29uc3QgdGFyZ2V0T2JqZWN0OiBhbnkgPSB7fTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzb3VyY2VzKS5zb3J0KCkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHNvdXJjZXNba2V5XTtcblxuICAgIHN3aXRjaCAodmFsdWUudHlwZSkge1xuICAgICAgY2FzZSAnZnJhZ21lbnQnOlxuICAgICAgICBsb2coa2V5KTtcbiAgICAgICAgbWVyZ2UodGFyZ2V0T2JqZWN0LCB2YWx1ZS5kYXRhLCBbXSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncGF0Y2gnOlxuICAgICAgICBwYXRjaCh0YXJnZXRPYmplY3QsIHZhbHVlLmRhdGEsIChtKSA9PiBsb2coYCR7a2V5fTogJHttfWApKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZXQnOlxuICAgICAgICBjb25zdCBldmFsdWF0ZWQgPSBldmFsdWF0ZVBhdGNoU2V0KHZhbHVlLnNvdXJjZXMsIG9wdGlvbnMpO1xuICAgICAgICBsb2coa2V5KTtcbiAgICAgICAgbWVyZ2UodGFyZ2V0T2JqZWN0LCBldmFsdWF0ZWQsIFtdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldE9iamVjdDtcblxuICBmdW5jdGlvbiBsb2coeDogc3RyaW5nKSB7XG4gICAgaWYgKCFvcHRpb25zLnF1aWV0KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coeCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogTG9hZCBhIHBhdGNoIHNldCBmcm9tIGEgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcHBseVBhdGNoU2V0KHNvdXJjZURpcmVjdG9yeTogc3RyaW5nLCBvcHRpb25zOiBQYXRjaE9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBwYXRjaGVzID0gYXdhaXQgbG9hZFBhdGNoU2V0KHNvdXJjZURpcmVjdG9yeSk7XG4gIHJldHVybiBldmFsdWF0ZVBhdGNoU2V0KHBhdGNoZXMsIG9wdGlvbnMpO1xufVxuXG4vKipcbiAqIExvYWQgYSBwYXRjaCBzZXQgYW5kIHdyaXRlIGl0IG91dCB0byBhIGZpbGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5QW5kV3JpdGUodGFyZ2V0RmlsZTogc3RyaW5nLCBzb3VyY2VEaXJlY3Rvcnk6IHN0cmluZywgb3B0aW9uczogUGF0Y2hPcHRpb25zID0ge30pIHtcbiAgY29uc3QgbW9kZWwgPSBhd2FpdCBhcHBseVBhdGNoU2V0KHNvdXJjZURpcmVjdG9yeSwgb3B0aW9ucyk7XG4gIGF3YWl0IHdyaXRlU29ydGVkKHRhcmdldEZpbGUsIG1vZGVsKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlU29ydGVkKHRhcmdldEZpbGU6IHN0cmluZywgZGF0YTogYW55KSB7XG4gIGF3YWl0IGZzLm1rZGlycChwYXRoLmRpcm5hbWUodGFyZ2V0RmlsZSkpO1xuICBhd2FpdCBmcy53cml0ZUpzb24odGFyZ2V0RmlsZSwgc29ydEpzb24oZGF0YSksIHsgc3BhY2VzOiAyIH0pO1xufVxuXG5mdW5jdGlvbiBwcmludFNvcnRlZChkYXRhOiBhbnkpIHtcbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoSlNPTi5zdHJpbmdpZnkoc29ydEpzb24oZGF0YSksIHVuZGVmaW5lZCwgMikpO1xufVxuXG5mdW5jdGlvbiBtZXJnZSh0YXJnZXQ6IGFueSwgZnJhZ21lbnQ6IGFueSwganNvblBhdGg6IHN0cmluZ1tdKSB7XG4gIGlmICghZnJhZ21lbnQpIHsgcmV0dXJuOyB9XG4gIGlmICghdGFyZ2V0IHx8IHR5cGVvZiB0YXJnZXQgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgb2JqZWN0LCBmb3VuZDogJyR7dGFyZ2V0fScgYXQgJyQuJHtqc29uUGF0aC5qb2luKCcuJyl9J2ApO1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZnJhZ21lbnQpKSB7XG4gICAgaWYgKGtleS5zdGFydHNXaXRoKCckJykpIHsgY29udGludWU7IH1cblxuICAgIGlmIChrZXkgaW4gdGFyZ2V0KSB7XG4gICAgICBjb25zdCBzcGVjVmFsID0gdGFyZ2V0W2tleV07XG4gICAgICBjb25zdCBmcmFnVmFsID0gZnJhZ21lbnRba2V5XTtcbiAgICAgIGlmICh0eXBlb2Ygc3BlY1ZhbCAhPT0gdHlwZW9mIGZyYWdWYWwpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdHRlbXB0ZWQgdG8gbWVyZ2UgJHtKU09OLnN0cmluZ2lmeShmcmFnVmFsKX0gaW50byBpbmNvbXBhdGlibGUgJHtKU09OLnN0cmluZ2lmeShzcGVjVmFsKX0gYXQgcGF0aCAke2pzb25QYXRoLmpvaW4oJy8nKX0vJHtrZXl9YCk7XG4gICAgICB9XG4gICAgICBpZiAoc3BlY1ZhbCA9PSBmcmFnVmFsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBzcGVjVmFsICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZsaWN0IHdoZW4gYXR0ZW1wdGluZyB0byBtZXJnZSAke0pTT04uc3RyaW5naWZ5KGZyYWdWYWwpfSBpbnRvICR7SlNPTi5zdHJpbmdpZnkoc3BlY1ZhbCl9IGF0IHBhdGggJHtqc29uUGF0aC5qb2luKCcvJyl9LyR7a2V5fWApO1xuICAgICAgfVxuICAgICAgbWVyZ2Uoc3BlY1ZhbCwgZnJhZ1ZhbCwgWy4uLmpzb25QYXRoLCBrZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0W2tleV0gPSBmcmFnbWVudFtrZXldO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwYXRjaCh0YXJnZXQ6IGFueSwgZnJhZ21lbnQ6IGFueSwgbG9nOiAoeDogc3RyaW5nKSA9PiB2b2lkKSB7XG4gIGlmICghZnJhZ21lbnQpIHsgcmV0dXJuOyB9XG5cbiAgY29uc3QgcGF0Y2hlcyA9IGZpbmRQYXRjaGVzKHRhcmdldCwgZnJhZ21lbnQpO1xuICBmb3IgKGNvbnN0IHAgb2YgcGF0Y2hlcykge1xuICAgIGxvZyhwLmRlc2NyaXB0aW9uID8/ICcnKTtcblxuICAgIHRyeSB7XG4gICAgICBmYXN0SnNvblBhdGNoLmFwcGx5UGF0Y2godGFyZ2V0LCBwLm9wZXJhdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZXJyb3IgYXBwbHlpbmcgcGF0Y2g6ICR7SlNPTi5zdHJpbmdpZnkocCwgdW5kZWZpbmVkLCAyKX06ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgUGF0Y2gge1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgb3BlcmF0aW9uczogT3BlcmF0aW9uW107XG59XG5cbnR5cGUgT3BlcmF0aW9uID1cbiAgfCB7IHJlYWRvbmx5IG9wOiAnYWRkJzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nOyByZWFkb25seSB2YWx1ZTogYW55IH1cbiAgfCB7IHJlYWRvbmx5IG9wOiAncmVtb3ZlJzsgcmVhZG9ubHkgcGF0aDogc3RyaW5nIH1cbiAgfCB7IHJlYWRvbmx5IG9wOiAncmVwbGFjZSc7IHJlYWRvbmx5IHBhdGg6IHN0cmluZzsgcmVhZG9ubHkgdmFsdWU6IGFueSB9XG4gIHwgeyByZWFkb25seSBvcDogJ2NvcHknOyByZWFkb25seSBwYXRoOiBzdHJpbmc7IHJlYWRvbmx5IGZyb206IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSBvcDogJ21vdmUnOyByZWFkb25seSBwYXRoOiBzdHJpbmc7IHJlYWRvbmx5IGZyb206IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSBvcDogJ3Rlc3QnOyByZWFkb25seSBwYXRoOiBzdHJpbmc7IHJlYWRvbmx5IHZhbHVlOiBhbnkgfVxuICA7XG5cbi8qKlxuICogRmluZCB0aGUgc2V0cyBvZiBwYXRjaGVzIHRvIGFwcGx5IGluIGEgZG9jdW1lbnRcbiAqXG4gKiBBZGp1c3RzIHBhdGhzIHRvIGJlIHJvb3QtcmVsYXRpdmUsIHdoaWNoIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgcGF0aHNcbiAqIHBvaW50IG91dHNpZGUgdGhlIHBhdGNoIHNjb3BlLlxuICovXG5mdW5jdGlvbiBmaW5kUGF0Y2hlcyhkYXRhOiBhbnksIHBhdGNoU291cmNlOiBhbnkpOiBQYXRjaFtdIHtcbiAgY29uc3QgcmV0OiBQYXRjaFtdID0gW107XG4gIHJlY3Vyc2UoZGF0YSwgcGF0Y2hTb3VyY2UsIFtdKTtcbiAgcmV0dXJuIHJldDtcblxuICBmdW5jdGlvbiByZWN1cnNlKGFjdHVhbERhdGE6IGFueSwgZnJhZ21lbnQ6IGFueSwganNvblBhdGg6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFmcmFnbWVudCkgeyByZXR1cm47IH1cblxuICAgIGlmICgncGF0Y2gnIGluIGZyYWdtZW50KSB7XG4gICAgICBjb25zdCBwID0gZnJhZ21lbnQucGF0Y2g7XG4gICAgICBpZiAoIXAub3BlcmF0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGNoIG5lZWRzICdvcGVyYXRpb25zJyBrZXksIGdvdDogJHtKU09OLnN0cmluZ2lmeShwKX1gKTtcbiAgICAgIH1cbiAgICAgIHJldC5wdXNoKHtcbiAgICAgICAgZGVzY3JpcHRpb246IHAuZGVzY3JpcHRpb24sXG4gICAgICAgIG9wZXJhdGlvbnM6IHAub3BlcmF0aW9ucy5tYXAoKG9wOiBhbnkpID0+IGFkanVzdFBhdGhzKG9wLCBqc29uUGF0aCkpLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICgncGF0Y2g6ZWFjaCcgaW4gZnJhZ21lbnQpIHtcbiAgICAgIGNvbnN0IHAgPSBmcmFnbWVudFsncGF0Y2g6ZWFjaCddO1xuICAgICAgaWYgKHR5cGVvZiBhY3R1YWxEYXRhICE9PSAnb2JqZWN0Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGNoICR7cC5kZXNjcmlwdGlvbn06IGV4cGVjdGluZyBvYmplY3QgaW4gZGF0YSwgZm91bmQgJyR7YWN0dWFsRGF0YX0nYCk7XG4gICAgICB9XG4gICAgICBpZiAoIXAub3BlcmF0aW9ucykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGNoIG5lZWRzICdvcGVyYXRpb25zJyBrZXksIGdvdDogJHtKU09OLnN0cmluZ2lmeShwKX1gKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjdHVhbERhdGEpIHtcbiAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgJHtrZXl9OiAke3AuZGVzY3JpcHRpb259YCxcbiAgICAgICAgICBvcGVyYXRpb25zOiBwLm9wZXJhdGlvbnMubWFwKChvcDogYW55KSA9PiBhZGp1c3RQYXRocyhvcCwgWy4uLmpzb25QYXRoLCBrZXldKSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmcmFnbWVudCkpIHtcbiAgICAgICAgaWYgKCEoa2V5IGluIGFjdHVhbERhdGEpKSB7XG4gICAgICAgICAgYWN0dWFsRGF0YVtrZXldID0ge307XG4gICAgICAgIH1cbiAgICAgICAgcmVjdXJzZShhY3R1YWxEYXRhW2tleV0sIGZyYWdtZW50W2tleV0sIFsuLi5qc29uUGF0aCwga2V5XSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYWRqdXN0UGF0aHMob3A6IGFueSwganNvblBhdGg6IHN0cmluZ1tdKTogT3BlcmF0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ub3AsXG4gICAgICAuLi5vcC5wYXRoID8geyBwYXRoOiBhZGp1c3RQYXRoKG9wLnBhdGgsIGpzb25QYXRoKSB9IDogdW5kZWZpbmVkLFxuICAgICAgLi4ub3AuZnJvbSA/IHsgZnJvbTogYWRqdXN0UGF0aChvcC5mcm9tLCBqc29uUGF0aCkgfSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkanVzdCBwYXRoXG4gICAqXG4gICAqICckLycgbWVhbnMgZnJvbSB0aGUgcm9vdCwgb3RoZXJ3aXNlIGludGVycHJldCBhcyByZWxhdGl2ZSBwYXRoLlxuICAgKi9cbiAgZnVuY3Rpb24gYWRqdXN0UGF0aChvcmlnaW5hbFBhdGg6IHN0cmluZywganNvblBhdGg6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIG9yaWdpbmFsUGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgYWRqdXN0UGF0aDogZXhwZWN0ZWQgc3RyaW5nLCBnb3QgJHtKU09OLnN0cmluZ2lmeShvcmlnaW5hbFBhdGgpfWApO1xuICAgIH1cbiAgICBpZiAob3JpZ2luYWxQYXRoLnN0YXJ0c1dpdGgoJyQvJykpIHtcbiAgICAgIHJldHVybiBvcmlnaW5hbFBhdGguc2xpY2UoMSk7XG4gICAgfVxuICAgIHJldHVybiBqc29uUGF0aC5tYXAocCA9PiBgLyR7cH1gKS5qb2luKCcnKSArIG9yaWdpbmFsUGF0aDtcbiAgfVxufVxuXG5cbi8qKlxuICogUnVuIHRoaXMgZmlsZSBhcyBhIENMSSB0b29sLCB0byBhcHBseSBhIHBhdGNoIHNldCBmcm9tIHRoZSBjb21tYW5kIGxpbmVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gbWFpbihhcmdzOiBzdHJpbmdbXSkge1xuICBjb25zdCBxdWlldCA9IGVhdEFyZygnLXEnLCBhcmdzKSB8fCBlYXRBcmcoJy0tcXVpZXQnLCBhcmdzKTtcblxuICBpZiAoYXJncy5sZW5ndGggPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVc2FnZTogcGF0Y2gtc2V0IDxESVI+IFs8RklMRT5dJyk7XG4gIH1cblxuICBjb25zdCBbZGlyLCB0YXJnZXRGaWxlXSA9IGFyZ3M7XG5cbiAgY29uc3QgbW9kZWwgPSBhd2FpdCBhcHBseVBhdGNoU2V0KGRpciwgeyBxdWlldCB9KTtcbiAgaWYgKHRhcmdldEZpbGUpIHtcbiAgICBhd2FpdCB3cml0ZVNvcnRlZCh0YXJnZXRGaWxlLCBtb2RlbCk7XG4gIH0gZWxzZSB7XG4gICAgcHJpbnRTb3J0ZWQobW9kZWwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVhdEFyZyhhcmc6IHN0cmluZywgYXJnczogc3RyaW5nW10pIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFyZ3NbaV0gPT09IGFyZykge1xuICAgICAgYXJncy5zcGxpY2UoaSwgMSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgbWFpbihwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpLmNhdGNoKGUgPT4ge1xuICAgIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihlLm1lc3NhZ2UpO1xuICB9KTtcbn1cbiJdfQ==
|
@@ -0,0 +1,72 @@
|
|
1
|
+
"use strict";
|
2
|
+
/* eslint-disable no-console */
|
3
|
+
/**
|
4
|
+
* Report on spec fragment files that are being held back.
|
5
|
+
*
|
6
|
+
* Report formats:
|
7
|
+
*
|
8
|
+
* - 'outdated'/'changelog': print for changelog format
|
9
|
+
* - 'rejected': print validation errors, exit with error code 1 if there are any
|
10
|
+
*/
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
const path = require("path");
|
13
|
+
const fs = require("fs-extra");
|
14
|
+
const validate_cfn_1 = require("./validate-cfn");
|
15
|
+
async function main(args) {
|
16
|
+
if (args.length < 2) {
|
17
|
+
throw new Error('Usage: report-issues <DIR> <FORMAT>');
|
18
|
+
}
|
19
|
+
const [dir, format] = args;
|
20
|
+
const officialVersion = (await fs.readJson(path.join(dir, '001_Version.json'))).ResourceSpecificationVersion;
|
21
|
+
let headerPrinted = false;
|
22
|
+
for (const file of await fs.readdir(dir)) {
|
23
|
+
if (!file.startsWith('000_')) {
|
24
|
+
continue;
|
25
|
+
}
|
26
|
+
const json = await fs.readJson(path.join(dir, file));
|
27
|
+
const fragmentVersion = json.$version;
|
28
|
+
const serviceName = file.replace(/^000_/, '').replace(/\.json$/, '').replace('_', '::');
|
29
|
+
switch (format) {
|
30
|
+
case 'outdated':
|
31
|
+
case 'changelog':
|
32
|
+
if (fragmentVersion !== officialVersion) {
|
33
|
+
if (!headerPrinted) {
|
34
|
+
console.log('## Unapplied changes');
|
35
|
+
console.log('');
|
36
|
+
headerPrinted = true;
|
37
|
+
}
|
38
|
+
console.log(`* ${serviceName} is at ${fragmentVersion}`);
|
39
|
+
}
|
40
|
+
break;
|
41
|
+
case 'rejected':
|
42
|
+
if (fragmentVersion !== officialVersion) {
|
43
|
+
// Read the 'rejected' file, parse it (which we expect to fail)
|
44
|
+
// and print the failures.
|
45
|
+
const rejectedFileName = `.${file.replace(/.json$/, '.rejected.json')}`;
|
46
|
+
const rejectedPath = path.join(dir, rejectedFileName);
|
47
|
+
if (!await fs.pathExists(rejectedPath)) {
|
48
|
+
// If for whatever reason the file doesn't exist, ignore
|
49
|
+
continue;
|
50
|
+
}
|
51
|
+
const rejectedSpec = await fs.readJson(rejectedPath);
|
52
|
+
const errors = validate_cfn_1.CfnSpecValidator.validate(rejectedSpec);
|
53
|
+
console.warn('='.repeat(70));
|
54
|
+
console.warn(' '.repeat(Math.floor(35 - serviceName.length / 2)) + serviceName);
|
55
|
+
console.warn('='.repeat(70));
|
56
|
+
for (const error of errors) {
|
57
|
+
console.warn(validate_cfn_1.formatErrorInContext(error));
|
58
|
+
process.exitCode = 1;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
break;
|
62
|
+
default:
|
63
|
+
throw new Error(`Unknown format type requested: ${format}`);
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
main(process.argv.slice(2)).catch(e => {
|
68
|
+
// eslint-disable-next-line no-console
|
69
|
+
console.error(e);
|
70
|
+
process.exitCode = 1;
|
71
|
+
});
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWlzc3Vlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlcG9ydC1pc3N1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQjs7Ozs7OztHQU9HOztBQUVILDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsaURBQXdFO0FBRXhFLEtBQUssVUFBVSxJQUFJLENBQUMsSUFBYztJQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztLQUN4RDtJQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBRTNCLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO0lBQzdHLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztJQUUxQixLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixTQUFTO1NBQ1Y7UUFFRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4RixRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssV0FBVztnQkFDZCxJQUFJLGVBQWUsS0FBSyxlQUFlLEVBQUU7b0JBQ3ZDLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQzt3QkFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDaEIsYUFBYSxHQUFHLElBQUksQ0FBQztxQkFDdEI7b0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFdBQVcsVUFBVSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2lCQUMxRDtnQkFDRCxNQUFNO1lBRVIsS0FBSyxVQUFVO2dCQUNiLElBQUksZUFBZSxLQUFLLGVBQWUsRUFBRTtvQkFDdkMsK0RBQStEO29CQUMvRCwwQkFBMEI7b0JBQzFCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7b0JBQ3hFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7b0JBQ3RELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUU7d0JBQ3RDLHdEQUF3RDt3QkFDeEQsU0FBUztxQkFDVjtvQkFDRCxNQUFNLFlBQVksR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBRXJELE1BQU0sTUFBTSxHQUFHLCtCQUFnQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFFdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7b0JBQ2hGLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTt3QkFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxtQ0FBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUMxQyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztxQkFDdEI7aUJBQ0Y7Z0JBQ0QsTUFBTTtZQUVSO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDL0Q7S0FDRjtBQUNILENBQUM7QUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDcEMsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4vKipcbiAqIFJlcG9ydCBvbiBzcGVjIGZyYWdtZW50IGZpbGVzIHRoYXQgYXJlIGJlaW5nIGhlbGQgYmFjay5cbiAqXG4gKiBSZXBvcnQgZm9ybWF0czpcbiAqXG4gKiAtICdvdXRkYXRlZCcvJ2NoYW5nZWxvZyc6IHByaW50IGZvciBjaGFuZ2Vsb2cgZm9ybWF0XG4gKiAtICdyZWplY3RlZCc6IHByaW50IHZhbGlkYXRpb24gZXJyb3JzLCBleGl0IHdpdGggZXJyb3IgY29kZSAxIGlmIHRoZXJlIGFyZSBhbnlcbiAqL1xuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgQ2ZuU3BlY1ZhbGlkYXRvciwgZm9ybWF0RXJyb3JJbkNvbnRleHQgfSBmcm9tICcuL3ZhbGlkYXRlLWNmbic7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJnczogc3RyaW5nW10pIHtcbiAgaWYgKGFyZ3MubGVuZ3RoIDwgMikge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNhZ2U6IHJlcG9ydC1pc3N1ZXMgPERJUj4gPEZPUk1BVD4nKTtcbiAgfVxuXG4gIGNvbnN0IFtkaXIsIGZvcm1hdF0gPSBhcmdzO1xuXG4gIGNvbnN0IG9mZmljaWFsVmVyc2lvbiA9IChhd2FpdCBmcy5yZWFkSnNvbihwYXRoLmpvaW4oZGlyLCAnMDAxX1ZlcnNpb24uanNvbicpKSkuUmVzb3VyY2VTcGVjaWZpY2F0aW9uVmVyc2lvbjtcbiAgbGV0IGhlYWRlclByaW50ZWQgPSBmYWxzZTtcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgYXdhaXQgZnMucmVhZGRpcihkaXIpKSB7XG4gICAgaWYgKCFmaWxlLnN0YXJ0c1dpdGgoJzAwMF8nKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QganNvbiA9IGF3YWl0IGZzLnJlYWRKc29uKHBhdGguam9pbihkaXIsIGZpbGUpKTtcbiAgICBjb25zdCBmcmFnbWVudFZlcnNpb24gPSBqc29uLiR2ZXJzaW9uO1xuICAgIGNvbnN0IHNlcnZpY2VOYW1lID0gZmlsZS5yZXBsYWNlKC9eMDAwXy8sICcnKS5yZXBsYWNlKC9cXC5qc29uJC8sICcnKS5yZXBsYWNlKCdfJywgJzo6Jyk7XG5cbiAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgY2FzZSAnb3V0ZGF0ZWQnOlxuICAgICAgY2FzZSAnY2hhbmdlbG9nJzpcbiAgICAgICAgaWYgKGZyYWdtZW50VmVyc2lvbiAhPT0gb2ZmaWNpYWxWZXJzaW9uKSB7XG4gICAgICAgICAgaWYgKCFoZWFkZXJQcmludGVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnIyMgVW5hcHBsaWVkIGNoYW5nZXMnKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgICAgIGhlYWRlclByaW50ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLmxvZyhgKiAke3NlcnZpY2VOYW1lfSBpcyBhdCAke2ZyYWdtZW50VmVyc2lvbn1gKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmVqZWN0ZWQnOlxuICAgICAgICBpZiAoZnJhZ21lbnRWZXJzaW9uICE9PSBvZmZpY2lhbFZlcnNpb24pIHtcbiAgICAgICAgICAvLyBSZWFkIHRoZSAncmVqZWN0ZWQnIGZpbGUsIHBhcnNlIGl0ICh3aGljaCB3ZSBleHBlY3QgdG8gZmFpbClcbiAgICAgICAgICAvLyBhbmQgcHJpbnQgdGhlIGZhaWx1cmVzLlxuICAgICAgICAgIGNvbnN0IHJlamVjdGVkRmlsZU5hbWUgPSBgLiR7ZmlsZS5yZXBsYWNlKC8uanNvbiQvLCAnLnJlamVjdGVkLmpzb24nKX1gO1xuICAgICAgICAgIGNvbnN0IHJlamVjdGVkUGF0aCA9IHBhdGguam9pbihkaXIsIHJlamVjdGVkRmlsZU5hbWUpO1xuICAgICAgICAgIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhyZWplY3RlZFBhdGgpKSB7XG4gICAgICAgICAgICAvLyBJZiBmb3Igd2hhdGV2ZXIgcmVhc29uIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QsIGlnbm9yZVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlamVjdGVkU3BlYyA9IGF3YWl0IGZzLnJlYWRKc29uKHJlamVjdGVkUGF0aCk7XG5cbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSBDZm5TcGVjVmFsaWRhdG9yLnZhbGlkYXRlKHJlamVjdGVkU3BlYyk7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4oJz0nLnJlcGVhdCg3MCkpO1xuICAgICAgICAgIGNvbnNvbGUud2FybignICcucmVwZWF0KE1hdGguZmxvb3IoMzUgLSBzZXJ2aWNlTmFtZS5sZW5ndGggLyAyKSkgKyBzZXJ2aWNlTmFtZSk7XG4gICAgICAgICAgY29uc29sZS53YXJuKCc9Jy5yZXBlYXQoNzApKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGVycm9ycykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGZvcm1hdEVycm9ySW5Db250ZXh0KGVycm9yKSk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBmb3JtYXQgdHlwZSByZXF1ZXN0ZWQ6ICR7Zm9ybWF0fWApO1xuICAgIH1cbiAgfVxufVxuXG5tYWluKHByb2Nlc3MuYXJndi5zbGljZSgyKSkuY2F0Y2goZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7Il19
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { schema } from '../lib';
|
2
|
+
/**
|
3
|
+
* Auto-detect common properties to apply scrutiny to by using heuristics
|
4
|
+
*
|
5
|
+
* Manually enhancing scrutiny attributes for each property does not scale
|
6
|
+
* well. Fortunately, the most important ones follow a common naming scheme and
|
7
|
+
* we tag all of them at once in this way.
|
8
|
+
*
|
9
|
+
* If the heuristic scheme gets it wrong in some individual cases, those can be
|
10
|
+
* fixed using schema patches.
|
11
|
+
*/
|
12
|
+
export declare function detectScrutinyTypes(spec: schema.Specification): void;
|
@@ -0,0 +1,85 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.detectScrutinyTypes = void 0;
|
4
|
+
const lib_1 = require("../lib");
|
5
|
+
const schema_1 = require("../lib/schema");
|
6
|
+
/**
|
7
|
+
* Auto-detect common properties to apply scrutiny to by using heuristics
|
8
|
+
*
|
9
|
+
* Manually enhancing scrutiny attributes for each property does not scale
|
10
|
+
* well. Fortunately, the most important ones follow a common naming scheme and
|
11
|
+
* we tag all of them at once in this way.
|
12
|
+
*
|
13
|
+
* If the heuristic scheme gets it wrong in some individual cases, those can be
|
14
|
+
* fixed using schema patches.
|
15
|
+
*/
|
16
|
+
function detectScrutinyTypes(spec) {
|
17
|
+
for (const [typeName, typeSpec] of Object.entries(spec.ResourceTypes)) {
|
18
|
+
if (typeSpec.ScrutinyType !== undefined) {
|
19
|
+
continue;
|
20
|
+
} // Already assigned
|
21
|
+
detectResourceScrutiny(typeName, typeSpec);
|
22
|
+
// If a resource scrutiny is set by now, we don't need to look at the properties anymore
|
23
|
+
if (typeSpec.ScrutinyType !== undefined) {
|
24
|
+
continue;
|
25
|
+
}
|
26
|
+
for (const [propertyName, propertySpec] of Object.entries(typeSpec.Properties || {})) {
|
27
|
+
if (propertySpec.ScrutinyType !== undefined) {
|
28
|
+
continue;
|
29
|
+
} // Already assigned
|
30
|
+
detectPropertyScrutiny(typeName, propertyName, propertySpec);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
exports.detectScrutinyTypes = detectScrutinyTypes;
|
35
|
+
/**
|
36
|
+
* Detect and assign a scrutiny type for the resource
|
37
|
+
*/
|
38
|
+
function detectResourceScrutiny(typeName, typeSpec) {
|
39
|
+
const properties = Object.entries(typeSpec.Properties || {});
|
40
|
+
// If this resource is named like *Policy and has a PolicyDocument property
|
41
|
+
if (typeName.endsWith('Policy') && properties.some(apply2(isPolicyDocumentProperty))) {
|
42
|
+
typeSpec.ScrutinyType = isIamType(typeName) ? schema_1.ResourceScrutinyType.IdentityPolicyResource : schema_1.ResourceScrutinyType.ResourcePolicyResource;
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
/**
|
47
|
+
* Detect and assign a scrutiny type for the property
|
48
|
+
*/
|
49
|
+
function detectPropertyScrutiny(_typeName, propertyName, propertySpec) {
|
50
|
+
// Detect fields named like ManagedPolicyArns
|
51
|
+
if (propertyName === 'ManagedPolicyArns') {
|
52
|
+
propertySpec.ScrutinyType = schema_1.PropertyScrutinyType.ManagedPolicies;
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
if (propertyName === 'Policies' && lib_1.schema.isComplexListProperty(propertySpec) && propertySpec.ItemType === 'Policy') {
|
56
|
+
propertySpec.ScrutinyType = schema_1.PropertyScrutinyType.InlineIdentityPolicies;
|
57
|
+
return;
|
58
|
+
}
|
59
|
+
if (isPolicyDocumentProperty(propertyName, propertySpec)) {
|
60
|
+
propertySpec.ScrutinyType = schema_1.PropertyScrutinyType.InlineResourcePolicy;
|
61
|
+
return;
|
62
|
+
}
|
63
|
+
}
|
64
|
+
function isIamType(typeName) {
|
65
|
+
return typeName.indexOf('::IAM::') > 1;
|
66
|
+
}
|
67
|
+
function isPolicyDocumentProperty(propertyName, propertySpec) {
|
68
|
+
const nameContainsPolicy = propertyName.indexOf('Policy') > -1;
|
69
|
+
const primitiveType = lib_1.schema.isPrimitiveProperty(propertySpec) && propertySpec.PrimitiveType;
|
70
|
+
if (nameContainsPolicy && primitiveType === 'Json') {
|
71
|
+
return true;
|
72
|
+
}
|
73
|
+
return false;
|
74
|
+
}
|
75
|
+
/**
|
76
|
+
* Make a function that takes 2 arguments take an array of 2 elements instead
|
77
|
+
*
|
78
|
+
* Makes it possible to map it over an array of arrays. TypeScript won't allow
|
79
|
+
* me to overload this type declaration so we need a different function for
|
80
|
+
* every # of arguments.
|
81
|
+
*/
|
82
|
+
function apply2(fn) {
|
83
|
+
return (as) => fn.apply(fn, as);
|
84
|
+
}
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NydXRpbnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzY3J1dGlueS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnQ0FBZ0M7QUFDaEMsMENBQTJFO0FBRTNFOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLElBQTBCO0lBQzVELEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUNyRSxJQUFJLFFBQVEsQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQUUsU0FBUztTQUFFLENBQUMsbUJBQW1CO1FBRTFFLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzQyx3RkFBd0Y7UUFDeEYsSUFBSSxRQUFRLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUFFLFNBQVM7U0FBRTtRQUV0RCxLQUFLLE1BQU0sQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3BGLElBQUksWUFBWSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7Z0JBQUUsU0FBUzthQUFFLENBQUMsbUJBQW1CO1lBRTlFLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FFOUQ7S0FDRjtBQUNILENBQUM7QUFoQkQsa0RBZ0JDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLHNCQUFzQixDQUFDLFFBQWdCLEVBQUUsUUFBNkI7SUFDN0UsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTdELDJFQUEyRTtJQUMzRSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxFQUFFO1FBQ3BGLFFBQVEsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyw2QkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsNkJBQW9CLENBQUMsc0JBQXNCLENBQUM7UUFDeEksT0FBTztLQUNSO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxTQUFpQixFQUFFLFlBQW9CLEVBQUUsWUFBNkI7SUFDcEcsNkNBQTZDO0lBQzdDLElBQUksWUFBWSxLQUFLLG1CQUFtQixFQUFFO1FBQ3hDLFlBQVksQ0FBQyxZQUFZLEdBQUcsNkJBQW9CLENBQUMsZUFBZSxDQUFDO1FBQ2pFLE9BQU87S0FDUjtJQUVELElBQUksWUFBWSxLQUFLLFVBQVUsSUFBSSxZQUFNLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7UUFDbkgsWUFBWSxDQUFDLFlBQVksR0FBRyw2QkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUN4RSxPQUFPO0tBQ1I7SUFFRCxJQUFJLHdCQUF3QixDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRTtRQUN4RCxZQUFZLENBQUMsWUFBWSxHQUFHLDZCQUFvQixDQUFDLG9CQUFvQixDQUFDO1FBQ3RFLE9BQU87S0FDUjtBQUNILENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxRQUFnQjtJQUNqQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLFlBQW9CLEVBQUUsWUFBNkI7SUFDbkYsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sYUFBYSxHQUFHLFlBQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDO0lBRTdGLElBQUksa0JBQWtCLElBQUksYUFBYSxLQUFLLE1BQU0sRUFBRTtRQUNsRCxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxNQUFNLENBQVksRUFBeUI7SUFDbEQsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjaGVtYSB9IGZyb20gJy4uL2xpYic7XG5pbXBvcnQgeyBQcm9wZXJ0eVNjcnV0aW55VHlwZSwgUmVzb3VyY2VTY3J1dGlueVR5cGUgfSBmcm9tICcuLi9saWIvc2NoZW1hJztcblxuLyoqXG4gKiBBdXRvLWRldGVjdCBjb21tb24gcHJvcGVydGllcyB0byBhcHBseSBzY3J1dGlueSB0byBieSB1c2luZyBoZXVyaXN0aWNzXG4gKlxuICogTWFudWFsbHkgZW5oYW5jaW5nIHNjcnV0aW55IGF0dHJpYnV0ZXMgZm9yIGVhY2ggcHJvcGVydHkgZG9lcyBub3Qgc2NhbGVcbiAqIHdlbGwuIEZvcnR1bmF0ZWx5LCB0aGUgbW9zdCBpbXBvcnRhbnQgb25lcyBmb2xsb3cgYSBjb21tb24gbmFtaW5nIHNjaGVtZSBhbmRcbiAqIHdlIHRhZyBhbGwgb2YgdGhlbSBhdCBvbmNlIGluIHRoaXMgd2F5LlxuICpcbiAqIElmIHRoZSBoZXVyaXN0aWMgc2NoZW1lIGdldHMgaXQgd3JvbmcgaW4gc29tZSBpbmRpdmlkdWFsIGNhc2VzLCB0aG9zZSBjYW4gYmVcbiAqIGZpeGVkIHVzaW5nIHNjaGVtYSBwYXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0U2NydXRpbnlUeXBlcyhzcGVjOiBzY2hlbWEuU3BlY2lmaWNhdGlvbikge1xuICBmb3IgKGNvbnN0IFt0eXBlTmFtZSwgdHlwZVNwZWNdIG9mIE9iamVjdC5lbnRyaWVzKHNwZWMuUmVzb3VyY2VUeXBlcykpIHtcbiAgICBpZiAodHlwZVNwZWMuU2NydXRpbnlUeXBlICE9PSB1bmRlZmluZWQpIHsgY29udGludWU7IH0gLy8gQWxyZWFkeSBhc3NpZ25lZFxuXG4gICAgZGV0ZWN0UmVzb3VyY2VTY3J1dGlueSh0eXBlTmFtZSwgdHlwZVNwZWMpO1xuXG4gICAgLy8gSWYgYSByZXNvdXJjZSBzY3J1dGlueSBpcyBzZXQgYnkgbm93LCB3ZSBkb24ndCBuZWVkIHRvIGxvb2sgYXQgdGhlIHByb3BlcnRpZXMgYW55bW9yZVxuICAgIGlmICh0eXBlU3BlYy5TY3J1dGlueVR5cGUgIT09IHVuZGVmaW5lZCkgeyBjb250aW51ZTsgfVxuXG4gICAgZm9yIChjb25zdCBbcHJvcGVydHlOYW1lLCBwcm9wZXJ0eVNwZWNdIG9mIE9iamVjdC5lbnRyaWVzKHR5cGVTcGVjLlByb3BlcnRpZXMgfHwge30pKSB7XG4gICAgICBpZiAocHJvcGVydHlTcGVjLlNjcnV0aW55VHlwZSAhPT0gdW5kZWZpbmVkKSB7IGNvbnRpbnVlOyB9IC8vIEFscmVhZHkgYXNzaWduZWRcblxuICAgICAgZGV0ZWN0UHJvcGVydHlTY3J1dGlueSh0eXBlTmFtZSwgcHJvcGVydHlOYW1lLCBwcm9wZXJ0eVNwZWMpO1xuXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGV0ZWN0IGFuZCBhc3NpZ24gYSBzY3J1dGlueSB0eXBlIGZvciB0aGUgcmVzb3VyY2VcbiAqL1xuZnVuY3Rpb24gZGV0ZWN0UmVzb3VyY2VTY3J1dGlueSh0eXBlTmFtZTogc3RyaW5nLCB0eXBlU3BlYzogc2NoZW1hLlJlc291cmNlVHlwZSkge1xuICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmVudHJpZXModHlwZVNwZWMuUHJvcGVydGllcyB8fCB7fSk7XG5cbiAgLy8gSWYgdGhpcyByZXNvdXJjZSBpcyBuYW1lZCBsaWtlICpQb2xpY3kgYW5kIGhhcyBhIFBvbGljeURvY3VtZW50IHByb3BlcnR5XG4gIGlmICh0eXBlTmFtZS5lbmRzV2l0aCgnUG9saWN5JykgJiYgcHJvcGVydGllcy5zb21lKGFwcGx5Mihpc1BvbGljeURvY3VtZW50UHJvcGVydHkpKSkge1xuICAgIHR5cGVTcGVjLlNjcnV0aW55VHlwZSA9IGlzSWFtVHlwZSh0eXBlTmFtZSkgPyBSZXNvdXJjZVNjcnV0aW55VHlwZS5JZGVudGl0eVBvbGljeVJlc291cmNlIDogUmVzb3VyY2VTY3J1dGlueVR5cGUuUmVzb3VyY2VQb2xpY3lSZXNvdXJjZTtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlY3QgYW5kIGFzc2lnbiBhIHNjcnV0aW55IHR5cGUgZm9yIHRoZSBwcm9wZXJ0eVxuICovXG5mdW5jdGlvbiBkZXRlY3RQcm9wZXJ0eVNjcnV0aW55KF90eXBlTmFtZTogc3RyaW5nLCBwcm9wZXJ0eU5hbWU6IHN0cmluZywgcHJvcGVydHlTcGVjOiBzY2hlbWEuUHJvcGVydHkpIHtcbiAgLy8gRGV0ZWN0IGZpZWxkcyBuYW1lZCBsaWtlIE1hbmFnZWRQb2xpY3lBcm5zXG4gIGlmIChwcm9wZXJ0eU5hbWUgPT09ICdNYW5hZ2VkUG9saWN5QXJucycpIHtcbiAgICBwcm9wZXJ0eVNwZWMuU2NydXRpbnlUeXBlID0gUHJvcGVydHlTY3J1dGlueVR5cGUuTWFuYWdlZFBvbGljaWVzO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChwcm9wZXJ0eU5hbWUgPT09ICdQb2xpY2llcycgJiYgc2NoZW1hLmlzQ29tcGxleExpc3RQcm9wZXJ0eShwcm9wZXJ0eVNwZWMpICYmIHByb3BlcnR5U3BlYy5JdGVtVHlwZSA9PT0gJ1BvbGljeScpIHtcbiAgICBwcm9wZXJ0eVNwZWMuU2NydXRpbnlUeXBlID0gUHJvcGVydHlTY3J1dGlueVR5cGUuSW5saW5lSWRlbnRpdHlQb2xpY2llcztcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaXNQb2xpY3lEb2N1bWVudFByb3BlcnR5KHByb3BlcnR5TmFtZSwgcHJvcGVydHlTcGVjKSkge1xuICAgIHByb3BlcnR5U3BlYy5TY3J1dGlueVR5cGUgPSBQcm9wZXJ0eVNjcnV0aW55VHlwZS5JbmxpbmVSZXNvdXJjZVBvbGljeTtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNJYW1UeXBlKHR5cGVOYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHR5cGVOYW1lLmluZGV4T2YoJzo6SUFNOjonKSA+IDE7XG59XG5cbmZ1bmN0aW9uIGlzUG9saWN5RG9jdW1lbnRQcm9wZXJ0eShwcm9wZXJ0eU5hbWU6IHN0cmluZywgcHJvcGVydHlTcGVjOiBzY2hlbWEuUHJvcGVydHkpIHtcbiAgY29uc3QgbmFtZUNvbnRhaW5zUG9saWN5ID0gcHJvcGVydHlOYW1lLmluZGV4T2YoJ1BvbGljeScpID4gLTE7XG4gIGNvbnN0IHByaW1pdGl2ZVR5cGUgPSBzY2hlbWEuaXNQcmltaXRpdmVQcm9wZXJ0eShwcm9wZXJ0eVNwZWMpICYmIHByb3BlcnR5U3BlYy5QcmltaXRpdmVUeXBlO1xuXG4gIGlmIChuYW1lQ29udGFpbnNQb2xpY3kgJiYgcHJpbWl0aXZlVHlwZSA9PT0gJ0pzb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIE1ha2UgYSBmdW5jdGlvbiB0aGF0IHRha2VzIDIgYXJndW1lbnRzIHRha2UgYW4gYXJyYXkgb2YgMiBlbGVtZW50cyBpbnN0ZWFkXG4gKlxuICogTWFrZXMgaXQgcG9zc2libGUgdG8gbWFwIGl0IG92ZXIgYW4gYXJyYXkgb2YgYXJyYXlzLiBUeXBlU2NyaXB0IHdvbid0IGFsbG93XG4gKiBtZSB0byBvdmVybG9hZCB0aGlzIHR5cGUgZGVjbGFyYXRpb24gc28gd2UgbmVlZCBhIGRpZmZlcmVudCBmdW5jdGlvbiBmb3JcbiAqIGV2ZXJ5ICMgb2YgYXJndW1lbnRzLlxuICovXG5mdW5jdGlvbiBhcHBseTI8VDEsIFQyLCBSPihmbjogKGExOiBUMSwgYTI6IFQyKSA9PiBSKTogKGFzOiBbVDEsIFQyXSkgPT4gUiB7XG4gIHJldHVybiAoYXMpID0+IGZuLmFwcGx5KGZuLCBhcyk7XG59Il19
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|