@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,852 @@
|
|
1
|
+
import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from "./scope"
|
2
|
+
import {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from "./code"
|
3
|
+
import {Scope, varKinds} from "./scope"
|
4
|
+
|
5
|
+
export {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from "./code"
|
6
|
+
export {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from "./scope"
|
7
|
+
|
8
|
+
// type for expressions that can be safely inserted in code without quotes
|
9
|
+
export type SafeExpr = Code | number | boolean | null
|
10
|
+
|
11
|
+
// type that is either Code of function that adds code to CodeGen instance using its methods
|
12
|
+
export type Block = Code | (() => void)
|
13
|
+
|
14
|
+
export const operators = {
|
15
|
+
GT: new _Code(">"),
|
16
|
+
GTE: new _Code(">="),
|
17
|
+
LT: new _Code("<"),
|
18
|
+
LTE: new _Code("<="),
|
19
|
+
EQ: new _Code("==="),
|
20
|
+
NEQ: new _Code("!=="),
|
21
|
+
NOT: new _Code("!"),
|
22
|
+
OR: new _Code("||"),
|
23
|
+
AND: new _Code("&&"),
|
24
|
+
ADD: new _Code("+"),
|
25
|
+
}
|
26
|
+
|
27
|
+
abstract class Node {
|
28
|
+
abstract readonly names: UsedNames
|
29
|
+
|
30
|
+
optimizeNodes(): this | ChildNode | ChildNode[] | undefined {
|
31
|
+
return this
|
32
|
+
}
|
33
|
+
|
34
|
+
optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {
|
35
|
+
return this
|
36
|
+
}
|
37
|
+
|
38
|
+
// get count(): number {
|
39
|
+
// return 1
|
40
|
+
// }
|
41
|
+
}
|
42
|
+
|
43
|
+
class Def extends Node {
|
44
|
+
constructor(
|
45
|
+
private readonly varKind: Name,
|
46
|
+
private readonly name: Name,
|
47
|
+
private rhs?: SafeExpr
|
48
|
+
) {
|
49
|
+
super()
|
50
|
+
}
|
51
|
+
|
52
|
+
render({es5, _n}: CGOptions): string {
|
53
|
+
const varKind = es5 ? varKinds.var : this.varKind
|
54
|
+
const rhs = this.rhs === undefined ? "" : ` = ${this.rhs}`
|
55
|
+
return `${varKind} ${this.name}${rhs};` + _n
|
56
|
+
}
|
57
|
+
|
58
|
+
optimizeNames(names: UsedNames, constants: Constants): this | undefined {
|
59
|
+
if (!names[this.name.str]) return
|
60
|
+
if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)
|
61
|
+
return this
|
62
|
+
}
|
63
|
+
|
64
|
+
get names(): UsedNames {
|
65
|
+
return this.rhs instanceof _CodeOrName ? this.rhs.names : {}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
class Assign extends Node {
|
70
|
+
constructor(
|
71
|
+
readonly lhs: Code,
|
72
|
+
public rhs: SafeExpr,
|
73
|
+
private readonly sideEffects?: boolean
|
74
|
+
) {
|
75
|
+
super()
|
76
|
+
}
|
77
|
+
|
78
|
+
render({_n}: CGOptions): string {
|
79
|
+
return `${this.lhs} = ${this.rhs};` + _n
|
80
|
+
}
|
81
|
+
|
82
|
+
optimizeNames(names: UsedNames, constants: Constants): this | undefined {
|
83
|
+
if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return
|
84
|
+
this.rhs = optimizeExpr(this.rhs, names, constants)
|
85
|
+
return this
|
86
|
+
}
|
87
|
+
|
88
|
+
get names(): UsedNames {
|
89
|
+
const names = this.lhs instanceof Name ? {} : {...this.lhs.names}
|
90
|
+
return addExprNames(names, this.rhs)
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
class AssignOp extends Assign {
|
95
|
+
constructor(
|
96
|
+
lhs: Code,
|
97
|
+
private readonly op: Code,
|
98
|
+
rhs: SafeExpr,
|
99
|
+
sideEffects?: boolean
|
100
|
+
) {
|
101
|
+
super(lhs, rhs, sideEffects)
|
102
|
+
}
|
103
|
+
|
104
|
+
render({_n}: CGOptions): string {
|
105
|
+
return `${this.lhs} ${this.op}= ${this.rhs};` + _n
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
class Label extends Node {
|
110
|
+
readonly names: UsedNames = {}
|
111
|
+
constructor(readonly label: Name) {
|
112
|
+
super()
|
113
|
+
}
|
114
|
+
|
115
|
+
render({_n}: CGOptions): string {
|
116
|
+
return `${this.label}:` + _n
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
class Break extends Node {
|
121
|
+
readonly names: UsedNames = {}
|
122
|
+
constructor(readonly label?: Code) {
|
123
|
+
super()
|
124
|
+
}
|
125
|
+
|
126
|
+
render({_n}: CGOptions): string {
|
127
|
+
const label = this.label ? ` ${this.label}` : ""
|
128
|
+
return `break${label};` + _n
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
class Throw extends Node {
|
133
|
+
constructor(readonly error: Code) {
|
134
|
+
super()
|
135
|
+
}
|
136
|
+
|
137
|
+
render({_n}: CGOptions): string {
|
138
|
+
return `throw ${this.error};` + _n
|
139
|
+
}
|
140
|
+
|
141
|
+
get names(): UsedNames {
|
142
|
+
return this.error.names
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
class AnyCode extends Node {
|
147
|
+
constructor(private code: SafeExpr) {
|
148
|
+
super()
|
149
|
+
}
|
150
|
+
|
151
|
+
render({_n}: CGOptions): string {
|
152
|
+
return `${this.code};` + _n
|
153
|
+
}
|
154
|
+
|
155
|
+
optimizeNodes(): this | undefined {
|
156
|
+
return `${this.code}` ? this : undefined
|
157
|
+
}
|
158
|
+
|
159
|
+
optimizeNames(names: UsedNames, constants: Constants): this {
|
160
|
+
this.code = optimizeExpr(this.code, names, constants)
|
161
|
+
return this
|
162
|
+
}
|
163
|
+
|
164
|
+
get names(): UsedNames {
|
165
|
+
return this.code instanceof _CodeOrName ? this.code.names : {}
|
166
|
+
}
|
167
|
+
}
|
168
|
+
|
169
|
+
abstract class ParentNode extends Node {
|
170
|
+
constructor(readonly nodes: ChildNode[] = []) {
|
171
|
+
super()
|
172
|
+
}
|
173
|
+
|
174
|
+
render(opts: CGOptions): string {
|
175
|
+
return this.nodes.reduce((code, n) => code + n.render(opts), "")
|
176
|
+
}
|
177
|
+
|
178
|
+
optimizeNodes(): this | ChildNode | ChildNode[] | undefined {
|
179
|
+
const {nodes} = this
|
180
|
+
let i = nodes.length
|
181
|
+
while (i--) {
|
182
|
+
const n = nodes[i].optimizeNodes()
|
183
|
+
if (Array.isArray(n)) nodes.splice(i, 1, ...n)
|
184
|
+
else if (n) nodes[i] = n
|
185
|
+
else nodes.splice(i, 1)
|
186
|
+
}
|
187
|
+
return nodes.length > 0 ? this : undefined
|
188
|
+
}
|
189
|
+
|
190
|
+
optimizeNames(names: UsedNames, constants: Constants): this | undefined {
|
191
|
+
const {nodes} = this
|
192
|
+
let i = nodes.length
|
193
|
+
while (i--) {
|
194
|
+
// iterating backwards improves 1-pass optimization
|
195
|
+
const n = nodes[i]
|
196
|
+
if (n.optimizeNames(names, constants)) continue
|
197
|
+
subtractNames(names, n.names)
|
198
|
+
nodes.splice(i, 1)
|
199
|
+
}
|
200
|
+
return nodes.length > 0 ? this : undefined
|
201
|
+
}
|
202
|
+
|
203
|
+
get names(): UsedNames {
|
204
|
+
return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})
|
205
|
+
}
|
206
|
+
|
207
|
+
// get count(): number {
|
208
|
+
// return this.nodes.reduce((c, n) => c + n.count, 1)
|
209
|
+
// }
|
210
|
+
}
|
211
|
+
|
212
|
+
abstract class BlockNode extends ParentNode {
|
213
|
+
render(opts: CGOptions): string {
|
214
|
+
return "{" + opts._n + super.render(opts) + "}" + opts._n
|
215
|
+
}
|
216
|
+
}
|
217
|
+
|
218
|
+
class Root extends ParentNode {}
|
219
|
+
|
220
|
+
class Else extends BlockNode {
|
221
|
+
static readonly kind = "else"
|
222
|
+
}
|
223
|
+
|
224
|
+
class If extends BlockNode {
|
225
|
+
static readonly kind = "if"
|
226
|
+
else?: If | Else
|
227
|
+
constructor(
|
228
|
+
private condition: Code | boolean,
|
229
|
+
nodes?: ChildNode[]
|
230
|
+
) {
|
231
|
+
super(nodes)
|
232
|
+
}
|
233
|
+
|
234
|
+
render(opts: CGOptions): string {
|
235
|
+
let code = `if(${this.condition})` + super.render(opts)
|
236
|
+
if (this.else) code += "else " + this.else.render(opts)
|
237
|
+
return code
|
238
|
+
}
|
239
|
+
|
240
|
+
optimizeNodes(): If | ChildNode[] | undefined {
|
241
|
+
super.optimizeNodes()
|
242
|
+
const cond = this.condition
|
243
|
+
if (cond === true) return this.nodes // else is ignored here
|
244
|
+
let e = this.else
|
245
|
+
if (e) {
|
246
|
+
const ns = e.optimizeNodes()
|
247
|
+
e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)
|
248
|
+
}
|
249
|
+
if (e) {
|
250
|
+
if (cond === false) return e instanceof If ? e : e.nodes
|
251
|
+
if (this.nodes.length) return this
|
252
|
+
return new If(not(cond), e instanceof If ? [e] : e.nodes)
|
253
|
+
}
|
254
|
+
if (cond === false || !this.nodes.length) return undefined
|
255
|
+
return this
|
256
|
+
}
|
257
|
+
|
258
|
+
optimizeNames(names: UsedNames, constants: Constants): this | undefined {
|
259
|
+
this.else = this.else?.optimizeNames(names, constants)
|
260
|
+
if (!(super.optimizeNames(names, constants) || this.else)) return
|
261
|
+
this.condition = optimizeExpr(this.condition, names, constants)
|
262
|
+
return this
|
263
|
+
}
|
264
|
+
|
265
|
+
get names(): UsedNames {
|
266
|
+
const names = super.names
|
267
|
+
addExprNames(names, this.condition)
|
268
|
+
if (this.else) addNames(names, this.else.names)
|
269
|
+
return names
|
270
|
+
}
|
271
|
+
|
272
|
+
// get count(): number {
|
273
|
+
// return super.count + (this.else?.count || 0)
|
274
|
+
// }
|
275
|
+
}
|
276
|
+
|
277
|
+
abstract class For extends BlockNode {
|
278
|
+
static readonly kind = "for"
|
279
|
+
}
|
280
|
+
|
281
|
+
class ForLoop extends For {
|
282
|
+
constructor(private iteration: Code) {
|
283
|
+
super()
|
284
|
+
}
|
285
|
+
|
286
|
+
render(opts: CGOptions): string {
|
287
|
+
return `for(${this.iteration})` + super.render(opts)
|
288
|
+
}
|
289
|
+
|
290
|
+
optimizeNames(names: UsedNames, constants: Constants): this | undefined {
|
291
|
+
if (!super.optimizeNames(names, constants)) return
|
292
|
+
this.iteration = optimizeExpr(this.iteration, names, constants)
|
293
|
+
return this
|
294
|
+
}
|
295
|
+
|
296
|
+
get names(): UsedNames {
|
297
|
+
return addNames(super.names, this.iteration.names)
|
298
|
+
}
|
299
|
+
}
|
300
|
+
|
301
|
+
class ForRange extends For {
|
302
|
+
constructor(
|
303
|
+
private readonly varKind: Name,
|
304
|
+
private readonly name: Name,
|
305
|
+
private readonly from: SafeExpr,
|
306
|
+
private readonly to: SafeExpr
|
307
|
+
) {
|
308
|
+
super()
|
309
|
+
}
|
310
|
+
|
311
|
+
render(opts: CGOptions): string {
|
312
|
+
const varKind = opts.es5 ? varKinds.var : this.varKind
|
313
|
+
const {name, from, to} = this
|
314
|
+
return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)
|
315
|
+
}
|
316
|
+
|
317
|
+
get names(): UsedNames {
|
318
|
+
const names = addExprNames(super.names, this.from)
|
319
|
+
return addExprNames(names, this.to)
|
320
|
+
}
|
321
|
+
}
|
322
|
+
|
323
|
+
class ForIter extends For {
|
324
|
+
constructor(
|
325
|
+
private readonly loop: "of" | "in",
|
326
|
+
private readonly varKind: Name,
|
327
|
+
private readonly name: Name,
|
328
|
+
private iterable: Code
|
329
|
+
) {
|
330
|
+
super()
|
331
|
+
}
|
332
|
+
|
333
|
+
render(opts: CGOptions): string {
|
334
|
+
return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)
|
335
|
+
}
|
336
|
+
|
337
|
+
optimizeNames(names: UsedNames, constants: Constants): this | undefined {
|
338
|
+
if (!super.optimizeNames(names, constants)) return
|
339
|
+
this.iterable = optimizeExpr(this.iterable, names, constants)
|
340
|
+
return this
|
341
|
+
}
|
342
|
+
|
343
|
+
get names(): UsedNames {
|
344
|
+
return addNames(super.names, this.iterable.names)
|
345
|
+
}
|
346
|
+
}
|
347
|
+
|
348
|
+
class Func extends BlockNode {
|
349
|
+
static readonly kind = "func"
|
350
|
+
constructor(
|
351
|
+
public name: Name,
|
352
|
+
public args: Code,
|
353
|
+
public async?: boolean
|
354
|
+
) {
|
355
|
+
super()
|
356
|
+
}
|
357
|
+
|
358
|
+
render(opts: CGOptions): string {
|
359
|
+
const _async = this.async ? "async " : ""
|
360
|
+
return `${_async}function ${this.name}(${this.args})` + super.render(opts)
|
361
|
+
}
|
362
|
+
}
|
363
|
+
|
364
|
+
class Return extends ParentNode {
|
365
|
+
static readonly kind = "return"
|
366
|
+
|
367
|
+
render(opts: CGOptions): string {
|
368
|
+
return "return " + super.render(opts)
|
369
|
+
}
|
370
|
+
}
|
371
|
+
|
372
|
+
class Try extends BlockNode {
|
373
|
+
catch?: Catch
|
374
|
+
finally?: Finally
|
375
|
+
|
376
|
+
render(opts: CGOptions): string {
|
377
|
+
let code = "try" + super.render(opts)
|
378
|
+
if (this.catch) code += this.catch.render(opts)
|
379
|
+
if (this.finally) code += this.finally.render(opts)
|
380
|
+
return code
|
381
|
+
}
|
382
|
+
|
383
|
+
optimizeNodes(): this {
|
384
|
+
super.optimizeNodes()
|
385
|
+
this.catch?.optimizeNodes() as Catch | undefined
|
386
|
+
this.finally?.optimizeNodes() as Finally | undefined
|
387
|
+
return this
|
388
|
+
}
|
389
|
+
|
390
|
+
optimizeNames(names: UsedNames, constants: Constants): this {
|
391
|
+
super.optimizeNames(names, constants)
|
392
|
+
this.catch?.optimizeNames(names, constants)
|
393
|
+
this.finally?.optimizeNames(names, constants)
|
394
|
+
return this
|
395
|
+
}
|
396
|
+
|
397
|
+
get names(): UsedNames {
|
398
|
+
const names = super.names
|
399
|
+
if (this.catch) addNames(names, this.catch.names)
|
400
|
+
if (this.finally) addNames(names, this.finally.names)
|
401
|
+
return names
|
402
|
+
}
|
403
|
+
|
404
|
+
// get count(): number {
|
405
|
+
// return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)
|
406
|
+
// }
|
407
|
+
}
|
408
|
+
|
409
|
+
class Catch extends BlockNode {
|
410
|
+
static readonly kind = "catch"
|
411
|
+
constructor(readonly error: Name) {
|
412
|
+
super()
|
413
|
+
}
|
414
|
+
|
415
|
+
render(opts: CGOptions): string {
|
416
|
+
return `catch(${this.error})` + super.render(opts)
|
417
|
+
}
|
418
|
+
}
|
419
|
+
|
420
|
+
class Finally extends BlockNode {
|
421
|
+
static readonly kind = "finally"
|
422
|
+
render(opts: CGOptions): string {
|
423
|
+
return "finally" + super.render(opts)
|
424
|
+
}
|
425
|
+
}
|
426
|
+
|
427
|
+
type StartBlockNode = If | For | Func | Return | Try
|
428
|
+
|
429
|
+
type LeafNode = Def | Assign | Label | Break | Throw | AnyCode
|
430
|
+
|
431
|
+
type ChildNode = StartBlockNode | LeafNode
|
432
|
+
|
433
|
+
type EndBlockNodeType =
|
434
|
+
| typeof If
|
435
|
+
| typeof Else
|
436
|
+
| typeof For
|
437
|
+
| typeof Func
|
438
|
+
| typeof Return
|
439
|
+
| typeof Catch
|
440
|
+
| typeof Finally
|
441
|
+
|
442
|
+
type Constants = Record<string, SafeExpr | undefined>
|
443
|
+
|
444
|
+
export interface CodeGenOptions {
|
445
|
+
es5?: boolean
|
446
|
+
lines?: boolean
|
447
|
+
ownProperties?: boolean
|
448
|
+
}
|
449
|
+
|
450
|
+
interface CGOptions extends CodeGenOptions {
|
451
|
+
_n: "\n" | ""
|
452
|
+
}
|
453
|
+
|
454
|
+
export class CodeGen {
|
455
|
+
readonly _scope: Scope
|
456
|
+
readonly _extScope: ValueScope
|
457
|
+
readonly _values: ScopeValueSets = {}
|
458
|
+
private readonly _nodes: ParentNode[]
|
459
|
+
private readonly _blockStarts: number[] = []
|
460
|
+
private readonly _constants: Constants = {}
|
461
|
+
private readonly opts: CGOptions
|
462
|
+
|
463
|
+
constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {
|
464
|
+
this.opts = {...opts, _n: opts.lines ? "\n" : ""}
|
465
|
+
this._extScope = extScope
|
466
|
+
this._scope = new Scope({parent: extScope})
|
467
|
+
this._nodes = [new Root()]
|
468
|
+
}
|
469
|
+
|
470
|
+
toString(): string {
|
471
|
+
return this._root.render(this.opts)
|
472
|
+
}
|
473
|
+
|
474
|
+
// returns unique name in the internal scope
|
475
|
+
name(prefix: string): Name {
|
476
|
+
return this._scope.name(prefix)
|
477
|
+
}
|
478
|
+
|
479
|
+
// reserves unique name in the external scope
|
480
|
+
scopeName(prefix: string): ValueScopeName {
|
481
|
+
return this._extScope.name(prefix)
|
482
|
+
}
|
483
|
+
|
484
|
+
// reserves unique name in the external scope and assigns value to it
|
485
|
+
scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {
|
486
|
+
const name = this._extScope.value(prefixOrName, value)
|
487
|
+
const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())
|
488
|
+
vs.add(name)
|
489
|
+
return name
|
490
|
+
}
|
491
|
+
|
492
|
+
getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {
|
493
|
+
return this._extScope.getValue(prefix, keyOrRef)
|
494
|
+
}
|
495
|
+
|
496
|
+
// return code that assigns values in the external scope to the names that are used internally
|
497
|
+
// (same names that were returned by gen.scopeName or gen.scopeValue)
|
498
|
+
scopeRefs(scopeName: Name): Code {
|
499
|
+
return this._extScope.scopeRefs(scopeName, this._values)
|
500
|
+
}
|
501
|
+
|
502
|
+
scopeCode(): Code {
|
503
|
+
return this._extScope.scopeCode(this._values)
|
504
|
+
}
|
505
|
+
|
506
|
+
private _def(
|
507
|
+
varKind: Name,
|
508
|
+
nameOrPrefix: Name | string,
|
509
|
+
rhs?: SafeExpr,
|
510
|
+
constant?: boolean
|
511
|
+
): Name {
|
512
|
+
const name = this._scope.toName(nameOrPrefix)
|
513
|
+
if (rhs !== undefined && constant) this._constants[name.str] = rhs
|
514
|
+
this._leafNode(new Def(varKind, name, rhs))
|
515
|
+
return name
|
516
|
+
}
|
517
|
+
|
518
|
+
// `const` declaration (`var` in es5 mode)
|
519
|
+
const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {
|
520
|
+
return this._def(varKinds.const, nameOrPrefix, rhs, _constant)
|
521
|
+
}
|
522
|
+
|
523
|
+
// `let` declaration with optional assignment (`var` in es5 mode)
|
524
|
+
let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {
|
525
|
+
return this._def(varKinds.let, nameOrPrefix, rhs, _constant)
|
526
|
+
}
|
527
|
+
|
528
|
+
// `var` declaration with optional assignment
|
529
|
+
var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {
|
530
|
+
return this._def(varKinds.var, nameOrPrefix, rhs, _constant)
|
531
|
+
}
|
532
|
+
|
533
|
+
// assignment code
|
534
|
+
assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {
|
535
|
+
return this._leafNode(new Assign(lhs, rhs, sideEffects))
|
536
|
+
}
|
537
|
+
|
538
|
+
// `+=` code
|
539
|
+
add(lhs: Code, rhs: SafeExpr): CodeGen {
|
540
|
+
return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))
|
541
|
+
}
|
542
|
+
|
543
|
+
// appends passed SafeExpr to code or executes Block
|
544
|
+
code(c: Block | SafeExpr): CodeGen {
|
545
|
+
if (typeof c == "function") c()
|
546
|
+
else if (c !== nil) this._leafNode(new AnyCode(c))
|
547
|
+
return this
|
548
|
+
}
|
549
|
+
|
550
|
+
// returns code for object literal for the passed argument list of key-value pairs
|
551
|
+
object(...keyValues: [Name | string, SafeExpr | string][]): _Code {
|
552
|
+
const code: CodeItem[] = ["{"]
|
553
|
+
for (const [key, value] of keyValues) {
|
554
|
+
if (code.length > 1) code.push(",")
|
555
|
+
code.push(key)
|
556
|
+
if (key !== value || this.opts.es5) {
|
557
|
+
code.push(":")
|
558
|
+
addCodeArg(code, value)
|
559
|
+
}
|
560
|
+
}
|
561
|
+
code.push("}")
|
562
|
+
return new _Code(code)
|
563
|
+
}
|
564
|
+
|
565
|
+
// `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)
|
566
|
+
if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {
|
567
|
+
this._blockNode(new If(condition))
|
568
|
+
|
569
|
+
if (thenBody && elseBody) {
|
570
|
+
this.code(thenBody).else().code(elseBody).endIf()
|
571
|
+
} else if (thenBody) {
|
572
|
+
this.code(thenBody).endIf()
|
573
|
+
} else if (elseBody) {
|
574
|
+
throw new Error('CodeGen: "else" body without "then" body')
|
575
|
+
}
|
576
|
+
return this
|
577
|
+
}
|
578
|
+
|
579
|
+
// `else if` clause - invalid without `if` or after `else` clauses
|
580
|
+
elseIf(condition: Code | boolean): CodeGen {
|
581
|
+
return this._elseNode(new If(condition))
|
582
|
+
}
|
583
|
+
|
584
|
+
// `else` clause - only valid after `if` or `else if` clauses
|
585
|
+
else(): CodeGen {
|
586
|
+
return this._elseNode(new Else())
|
587
|
+
}
|
588
|
+
|
589
|
+
// end `if` statement (needed if gen.if was used only with condition)
|
590
|
+
endIf(): CodeGen {
|
591
|
+
return this._endBlockNode(If, Else)
|
592
|
+
}
|
593
|
+
|
594
|
+
private _for(node: For, forBody?: Block): CodeGen {
|
595
|
+
this._blockNode(node)
|
596
|
+
if (forBody) this.code(forBody).endFor()
|
597
|
+
return this
|
598
|
+
}
|
599
|
+
|
600
|
+
// a generic `for` clause (or statement if `forBody` is passed)
|
601
|
+
for(iteration: Code, forBody?: Block): CodeGen {
|
602
|
+
return this._for(new ForLoop(iteration), forBody)
|
603
|
+
}
|
604
|
+
|
605
|
+
// `for` statement for a range of values
|
606
|
+
forRange(
|
607
|
+
nameOrPrefix: Name | string,
|
608
|
+
from: SafeExpr,
|
609
|
+
to: SafeExpr,
|
610
|
+
forBody: (index: Name) => void,
|
611
|
+
varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let
|
612
|
+
): CodeGen {
|
613
|
+
const name = this._scope.toName(nameOrPrefix)
|
614
|
+
return this._for(new ForRange(varKind, name, from, to), () => forBody(name))
|
615
|
+
}
|
616
|
+
|
617
|
+
// `for-of` statement (in es5 mode replace with a normal for loop)
|
618
|
+
forOf(
|
619
|
+
nameOrPrefix: Name | string,
|
620
|
+
iterable: Code,
|
621
|
+
forBody: (item: Name) => void,
|
622
|
+
varKind: Code = varKinds.const
|
623
|
+
): CodeGen {
|
624
|
+
const name = this._scope.toName(nameOrPrefix)
|
625
|
+
if (this.opts.es5) {
|
626
|
+
const arr = iterable instanceof Name ? iterable : this.var("_arr", iterable)
|
627
|
+
return this.forRange("_i", 0, _`${arr}.length`, (i) => {
|
628
|
+
this.var(name, _`${arr}[${i}]`)
|
629
|
+
forBody(name)
|
630
|
+
})
|
631
|
+
}
|
632
|
+
return this._for(new ForIter("of", varKind, name, iterable), () => forBody(name))
|
633
|
+
}
|
634
|
+
|
635
|
+
// `for-in` statement.
|
636
|
+
// With option `ownProperties` replaced with a `for-of` loop for object keys
|
637
|
+
forIn(
|
638
|
+
nameOrPrefix: Name | string,
|
639
|
+
obj: Code,
|
640
|
+
forBody: (item: Name) => void,
|
641
|
+
varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const
|
642
|
+
): CodeGen {
|
643
|
+
if (this.opts.ownProperties) {
|
644
|
+
return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)
|
645
|
+
}
|
646
|
+
const name = this._scope.toName(nameOrPrefix)
|
647
|
+
return this._for(new ForIter("in", varKind, name, obj), () => forBody(name))
|
648
|
+
}
|
649
|
+
|
650
|
+
// end `for` loop
|
651
|
+
endFor(): CodeGen {
|
652
|
+
return this._endBlockNode(For)
|
653
|
+
}
|
654
|
+
|
655
|
+
// `label` statement
|
656
|
+
label(label: Name): CodeGen {
|
657
|
+
return this._leafNode(new Label(label))
|
658
|
+
}
|
659
|
+
|
660
|
+
// `break` statement
|
661
|
+
break(label?: Code): CodeGen {
|
662
|
+
return this._leafNode(new Break(label))
|
663
|
+
}
|
664
|
+
|
665
|
+
// `return` statement
|
666
|
+
return(value: Block | SafeExpr): CodeGen {
|
667
|
+
const node = new Return()
|
668
|
+
this._blockNode(node)
|
669
|
+
this.code(value)
|
670
|
+
if (node.nodes.length !== 1) throw new Error('CodeGen: "return" should have one node')
|
671
|
+
return this._endBlockNode(Return)
|
672
|
+
}
|
673
|
+
|
674
|
+
// `try` statement
|
675
|
+
try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {
|
676
|
+
if (!catchCode && !finallyCode) throw new Error('CodeGen: "try" without "catch" and "finally"')
|
677
|
+
const node = new Try()
|
678
|
+
this._blockNode(node)
|
679
|
+
this.code(tryBody)
|
680
|
+
if (catchCode) {
|
681
|
+
const error = this.name("e")
|
682
|
+
this._currNode = node.catch = new Catch(error)
|
683
|
+
catchCode(error)
|
684
|
+
}
|
685
|
+
if (finallyCode) {
|
686
|
+
this._currNode = node.finally = new Finally()
|
687
|
+
this.code(finallyCode)
|
688
|
+
}
|
689
|
+
return this._endBlockNode(Catch, Finally)
|
690
|
+
}
|
691
|
+
|
692
|
+
// `throw` statement
|
693
|
+
throw(error: Code): CodeGen {
|
694
|
+
return this._leafNode(new Throw(error))
|
695
|
+
}
|
696
|
+
|
697
|
+
// start self-balancing block
|
698
|
+
block(body?: Block, nodeCount?: number): CodeGen {
|
699
|
+
this._blockStarts.push(this._nodes.length)
|
700
|
+
if (body) this.code(body).endBlock(nodeCount)
|
701
|
+
return this
|
702
|
+
}
|
703
|
+
|
704
|
+
// end the current self-balancing block
|
705
|
+
endBlock(nodeCount?: number): CodeGen {
|
706
|
+
const len = this._blockStarts.pop()
|
707
|
+
if (len === undefined) throw new Error("CodeGen: not in self-balancing block")
|
708
|
+
const toClose = this._nodes.length - len
|
709
|
+
if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {
|
710
|
+
throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)
|
711
|
+
}
|
712
|
+
this._nodes.length = len
|
713
|
+
return this
|
714
|
+
}
|
715
|
+
|
716
|
+
// `function` heading (or definition if funcBody is passed)
|
717
|
+
func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {
|
718
|
+
this._blockNode(new Func(name, args, async))
|
719
|
+
if (funcBody) this.code(funcBody).endFunc()
|
720
|
+
return this
|
721
|
+
}
|
722
|
+
|
723
|
+
// end function definition
|
724
|
+
endFunc(): CodeGen {
|
725
|
+
return this._endBlockNode(Func)
|
726
|
+
}
|
727
|
+
|
728
|
+
optimize(n = 1): void {
|
729
|
+
while (n-- > 0) {
|
730
|
+
this._root.optimizeNodes()
|
731
|
+
this._root.optimizeNames(this._root.names, this._constants)
|
732
|
+
}
|
733
|
+
}
|
734
|
+
|
735
|
+
private _leafNode(node: LeafNode): CodeGen {
|
736
|
+
this._currNode.nodes.push(node)
|
737
|
+
return this
|
738
|
+
}
|
739
|
+
|
740
|
+
private _blockNode(node: StartBlockNode): void {
|
741
|
+
this._currNode.nodes.push(node)
|
742
|
+
this._nodes.push(node)
|
743
|
+
}
|
744
|
+
|
745
|
+
private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {
|
746
|
+
const n = this._currNode
|
747
|
+
if (n instanceof N1 || (N2 && n instanceof N2)) {
|
748
|
+
this._nodes.pop()
|
749
|
+
return this
|
750
|
+
}
|
751
|
+
throw new Error(`CodeGen: not in block "${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}"`)
|
752
|
+
}
|
753
|
+
|
754
|
+
private _elseNode(node: If | Else): CodeGen {
|
755
|
+
const n = this._currNode
|
756
|
+
if (!(n instanceof If)) {
|
757
|
+
throw new Error('CodeGen: "else" without "if"')
|
758
|
+
}
|
759
|
+
this._currNode = n.else = node
|
760
|
+
return this
|
761
|
+
}
|
762
|
+
|
763
|
+
private get _root(): Root {
|
764
|
+
return this._nodes[0] as Root
|
765
|
+
}
|
766
|
+
|
767
|
+
private get _currNode(): ParentNode {
|
768
|
+
const ns = this._nodes
|
769
|
+
return ns[ns.length - 1]
|
770
|
+
}
|
771
|
+
|
772
|
+
private set _currNode(node: ParentNode) {
|
773
|
+
const ns = this._nodes
|
774
|
+
ns[ns.length - 1] = node
|
775
|
+
}
|
776
|
+
|
777
|
+
// get nodeCount(): number {
|
778
|
+
// return this._root.count
|
779
|
+
// }
|
780
|
+
}
|
781
|
+
|
782
|
+
function addNames(names: UsedNames, from: UsedNames): UsedNames {
|
783
|
+
for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)
|
784
|
+
return names
|
785
|
+
}
|
786
|
+
|
787
|
+
function addExprNames(names: UsedNames, from: SafeExpr): UsedNames {
|
788
|
+
return from instanceof _CodeOrName ? addNames(names, from.names) : names
|
789
|
+
}
|
790
|
+
|
791
|
+
function optimizeExpr<T extends SafeExpr | Code>(expr: T, names: UsedNames, constants: Constants): T
|
792
|
+
function optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {
|
793
|
+
if (expr instanceof Name) return replaceName(expr)
|
794
|
+
if (!canOptimize(expr)) return expr
|
795
|
+
return new _Code(
|
796
|
+
expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {
|
797
|
+
if (c instanceof Name) c = replaceName(c)
|
798
|
+
if (c instanceof _Code) items.push(...c._items)
|
799
|
+
else items.push(c)
|
800
|
+
return items
|
801
|
+
}, [])
|
802
|
+
)
|
803
|
+
|
804
|
+
function replaceName(n: Name): SafeExpr {
|
805
|
+
const c = constants[n.str]
|
806
|
+
if (c === undefined || names[n.str] !== 1) return n
|
807
|
+
delete names[n.str]
|
808
|
+
return c
|
809
|
+
}
|
810
|
+
|
811
|
+
function canOptimize(e: SafeExpr): e is _Code {
|
812
|
+
return (
|
813
|
+
e instanceof _Code &&
|
814
|
+
e._items.some(
|
815
|
+
(c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined
|
816
|
+
)
|
817
|
+
)
|
818
|
+
}
|
819
|
+
}
|
820
|
+
|
821
|
+
function subtractNames(names: UsedNames, from: UsedNames): void {
|
822
|
+
for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)
|
823
|
+
}
|
824
|
+
|
825
|
+
export function not<T extends Code | SafeExpr>(x: T): T
|
826
|
+
export function not(x: Code | SafeExpr): Code | SafeExpr {
|
827
|
+
return typeof x == "boolean" || typeof x == "number" || x === null ? !x : _`!${par(x)}`
|
828
|
+
}
|
829
|
+
|
830
|
+
const andCode = mappend(operators.AND)
|
831
|
+
|
832
|
+
// boolean AND (&&) expression with the passed arguments
|
833
|
+
export function and(...args: Code[]): Code {
|
834
|
+
return args.reduce(andCode)
|
835
|
+
}
|
836
|
+
|
837
|
+
const orCode = mappend(operators.OR)
|
838
|
+
|
839
|
+
// boolean OR (||) expression with the passed arguments
|
840
|
+
export function or(...args: Code[]): Code {
|
841
|
+
return args.reduce(orCode)
|
842
|
+
}
|
843
|
+
|
844
|
+
type MAppend = (x: Code, y: Code) => Code
|
845
|
+
|
846
|
+
function mappend(op: Code): MAppend {
|
847
|
+
return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)
|
848
|
+
}
|
849
|
+
|
850
|
+
function par(x: Code): Code {
|
851
|
+
return x instanceof Name ? x : _`(${x})`
|
852
|
+
}
|