@btc-embedded/cdk-extensions 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +5 -3
- package/CHANGELOG.md +19 -0
- package/lib/constructs/SecureRestApi.js +1 -1
- package/lib/extensions/ApiGatewayExtension.js +1 -1
- package/lib/extensions/ApplicationLoadBalancerExtension.js +1 -1
- package/lib/extensions/CloudMapExtension.js +1 -1
- package/lib/extensions/DocumentDbAccessExtension.js +1 -1
- package/lib/extensions/DomainEventMessagingExtension.js +1 -1
- package/lib/extensions/ExtraContainerExtension.js +1 -1
- package/lib/extensions/LogExtension.js +1 -1
- package/lib/extensions/ModifyContainerDefinitionExtension.js +1 -1
- package/lib/extensions/ModifyTaskDefinitionExtension.js +1 -1
- package/lib/extensions/OpenTelemetryExtension.js +1 -1
- package/lib/extensions/PostgresDbAccessExtension.js +1 -1
- package/lib/extensions/SharedVolumeExtension.js +1 -1
- package/lib/extensions/TcpKeepAliveExtension.js +1 -1
- package/lib/platform/ApiGateway.js +1 -1
- package/lib/platform/ApplicationLoadBalancer.js +1 -1
- package/lib/platform/DefaultUserPoolClients.js +1 -1
- package/lib/platform/DocumentDB.js +1 -1
- package/lib/platform/PrivateDnsNamespace.js +1 -1
- package/lib/platform/Vpc.js +1 -1
- package/lib/utils/configFileParsing.d.ts +25 -0
- package/lib/utils/configFileParsing.js +51 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +2 -1
- package/node_modules/yaml/LICENSE +13 -0
- package/node_modules/yaml/README.md +188 -0
- package/node_modules/yaml/bin.mjs +11 -0
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/node_modules/yaml/browser/dist/compose/compose-node.js +102 -0
- package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/node_modules/yaml/browser/dist/compose/composer.js +217 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +223 -0
- package/node_modules/yaml/browser/dist/compose/resolve-props.js +148 -0
- package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +27 -0
- package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/node_modules/yaml/browser/dist/doc/anchors.js +72 -0
- package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/node_modules/yaml/browser/dist/doc/createNode.js +89 -0
- package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/node_modules/yaml/browser/dist/errors.js +57 -0
- package/node_modules/yaml/browser/dist/index.js +17 -0
- package/node_modules/yaml/browser/dist/log.js +11 -0
- package/node_modules/yaml/browser/dist/nodes/Alias.js +101 -0
- package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +62 -0
- package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/node_modules/yaml/browser/dist/parse/lexer.js +717 -0
- package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/node_modules/yaml/browser/dist/parse/parser.js +954 -0
- package/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +57 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +64 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +143 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +24 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyString.js +337 -0
- package/node_modules/yaml/browser/dist/util.js +11 -0
- package/node_modules/yaml/browser/dist/visit.js +233 -0
- package/node_modules/yaml/browser/index.js +5 -0
- package/node_modules/yaml/browser/package.json +3 -0
- package/node_modules/yaml/dist/cli.d.ts +8 -0
- package/node_modules/yaml/dist/cli.mjs +199 -0
- package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/node_modules/yaml/dist/compose/compose-node.js +105 -0
- package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/node_modules/yaml/dist/compose/composer.js +222 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +225 -0
- package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/node_modules/yaml/dist/compose/resolve-props.js +150 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +29 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/node_modules/yaml/dist/doc/Document.js +337 -0
- package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/node_modules/yaml/dist/doc/anchors.js +77 -0
- package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/node_modules/yaml/dist/doc/createNode.js +91 -0
- package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/node_modules/yaml/dist/doc/directives.js +178 -0
- package/node_modules/yaml/dist/errors.d.ts +21 -0
- package/node_modules/yaml/dist/errors.js +62 -0
- package/node_modules/yaml/dist/index.d.ts +25 -0
- package/node_modules/yaml/dist/index.js +50 -0
- package/node_modules/yaml/dist/log.d.ts +3 -0
- package/node_modules/yaml/dist/log.js +19 -0
- package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/Alias.js +103 -0
- package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/node_modules/yaml/dist/nodes/Scalar.d.ts +43 -0
- package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.js +64 -0
- package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/node_modules/yaml/dist/nodes/toJS.d.ts +27 -0
- package/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/node_modules/yaml/dist/options.d.ts +344 -0
- package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/node_modules/yaml/dist/parse/cst.js +112 -0
- package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/node_modules/yaml/dist/parse/lexer.js +719 -0
- package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/node_modules/yaml/dist/parse/parser.js +959 -0
- package/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/node_modules/yaml/dist/public-api.js +107 -0
- package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/node_modules/yaml/dist/schema/tags.js +99 -0
- package/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +69 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +68 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.js +145 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +26 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/node_modules/yaml/dist/stringify/stringifyString.js +339 -0
- package/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/node_modules/yaml/dist/test-events.js +134 -0
- package/node_modules/yaml/dist/util.d.ts +16 -0
- package/node_modules/yaml/dist/util.js +28 -0
- package/node_modules/yaml/dist/visit.d.ts +102 -0
- package/node_modules/yaml/dist/visit.js +236 -0
- package/node_modules/yaml/package.json +96 -0
- package/node_modules/yaml/util.js +2 -0
- package/node_modules/zod/LICENSE +21 -0
- package/node_modules/zod/README.md +3074 -0
- package/node_modules/zod/index.d.ts +2 -0
- package/node_modules/zod/lib/ZodError.d.ts +164 -0
- package/node_modules/zod/lib/ZodError.js +137 -0
- package/node_modules/zod/lib/__tests__/Mocker.d.ts +17 -0
- package/node_modules/zod/lib/__tests__/Mocker.js +57 -0
- package/node_modules/zod/lib/benchmarks/datetime.d.ts +5 -0
- package/node_modules/zod/lib/benchmarks/datetime.js +54 -0
- package/node_modules/zod/lib/benchmarks/discriminatedUnion.d.ts +5 -0
- package/node_modules/zod/lib/benchmarks/discriminatedUnion.js +79 -0
- package/node_modules/zod/lib/benchmarks/index.d.ts +1 -0
- package/node_modules/zod/lib/benchmarks/index.js +59 -0
- package/node_modules/zod/lib/benchmarks/ipv4.d.ts +5 -0
- package/node_modules/zod/lib/benchmarks/ipv4.js +54 -0
- package/node_modules/zod/lib/benchmarks/object.d.ts +5 -0
- package/node_modules/zod/lib/benchmarks/object.js +70 -0
- package/node_modules/zod/lib/benchmarks/primitives.d.ts +5 -0
- package/node_modules/zod/lib/benchmarks/primitives.js +170 -0
- package/node_modules/zod/lib/benchmarks/realworld.d.ts +5 -0
- package/node_modules/zod/lib/benchmarks/realworld.js +56 -0
- package/node_modules/zod/lib/benchmarks/string.d.ts +5 -0
- package/node_modules/zod/lib/benchmarks/string.js +55 -0
- package/node_modules/zod/lib/benchmarks/union.d.ts +5 -0
- package/node_modules/zod/lib/benchmarks/union.js +79 -0
- package/node_modules/zod/lib/errors.d.ts +5 -0
- package/node_modules/zod/lib/errors.js +17 -0
- package/node_modules/zod/lib/external.d.ts +6 -0
- package/node_modules/zod/lib/external.js +22 -0
- package/node_modules/zod/lib/helpers/enumUtil.d.ts +8 -0
- package/node_modules/zod/lib/helpers/enumUtil.js +2 -0
- package/node_modules/zod/lib/helpers/errorUtil.d.ts +9 -0
- package/node_modules/zod/lib/helpers/errorUtil.js +8 -0
- package/node_modules/zod/lib/helpers/parseUtil.d.ts +78 -0
- package/node_modules/zod/lib/helpers/parseUtil.js +125 -0
- package/node_modules/zod/lib/helpers/partialUtil.d.ts +8 -0
- package/node_modules/zod/lib/helpers/partialUtil.js +2 -0
- package/node_modules/zod/lib/helpers/typeAliases.d.ts +2 -0
- package/node_modules/zod/lib/helpers/typeAliases.js +2 -0
- package/node_modules/zod/lib/helpers/util.d.ts +82 -0
- package/node_modules/zod/lib/helpers/util.js +142 -0
- package/node_modules/zod/lib/index.d.ts +4 -0
- package/node_modules/zod/lib/index.js +33 -0
- package/node_modules/zod/lib/index.mjs +4405 -0
- package/node_modules/zod/lib/index.umd.js +4520 -0
- package/node_modules/zod/lib/locales/en.d.ts +3 -0
- package/node_modules/zod/lib/locales/en.js +129 -0
- package/node_modules/zod/lib/standard-schema.d.ts +102 -0
- package/node_modules/zod/lib/standard-schema.js +2 -0
- package/node_modules/zod/lib/types.d.ts +1062 -0
- package/node_modules/zod/lib/types.js +3846 -0
- package/node_modules/zod/package.json +122 -0
- package/package.json +7 -3
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
const BREAK = Symbol('break visit');
|
|
2
|
+
const SKIP = Symbol('skip children');
|
|
3
|
+
const REMOVE = Symbol('remove item');
|
|
4
|
+
/**
|
|
5
|
+
* Apply a visitor to a CST document or item.
|
|
6
|
+
*
|
|
7
|
+
* Walks through the tree (depth-first) starting from the root, calling a
|
|
8
|
+
* `visitor` function with two arguments when entering each item:
|
|
9
|
+
* - `item`: The current item, which included the following members:
|
|
10
|
+
* - `start: SourceToken[]` – Source tokens before the key or value,
|
|
11
|
+
* possibly including its anchor or tag.
|
|
12
|
+
* - `key?: Token | null` – Set for pair values. May then be `null`, if
|
|
13
|
+
* the key before the `:` separator is empty.
|
|
14
|
+
* - `sep?: SourceToken[]` – Source tokens between the key and the value,
|
|
15
|
+
* which should include the `:` map value indicator if `value` is set.
|
|
16
|
+
* - `value?: Token` – The value of a sequence item, or of a map pair.
|
|
17
|
+
* - `path`: The steps from the root to the current node, as an array of
|
|
18
|
+
* `['key' | 'value', number]` tuples.
|
|
19
|
+
*
|
|
20
|
+
* The return value of the visitor may be used to control the traversal:
|
|
21
|
+
* - `undefined` (default): Do nothing and continue
|
|
22
|
+
* - `visit.SKIP`: Do not visit the children of this token, continue with
|
|
23
|
+
* next sibling
|
|
24
|
+
* - `visit.BREAK`: Terminate traversal completely
|
|
25
|
+
* - `visit.REMOVE`: Remove the current item, then continue with the next one
|
|
26
|
+
* - `number`: Set the index of the next step. This is useful especially if
|
|
27
|
+
* the index of the current token has changed.
|
|
28
|
+
* - `function`: Define the next visitor for this item. After the original
|
|
29
|
+
* visitor is called on item entry, next visitors are called after handling
|
|
30
|
+
* a non-empty `key` and when exiting the item.
|
|
31
|
+
*/
|
|
32
|
+
function visit(cst, visitor) {
|
|
33
|
+
if ('type' in cst && cst.type === 'document')
|
|
34
|
+
cst = { start: cst.start, value: cst.value };
|
|
35
|
+
_visit(Object.freeze([]), cst, visitor);
|
|
36
|
+
}
|
|
37
|
+
// Without the `as symbol` casts, TS declares these in the `visit`
|
|
38
|
+
// namespace using `var`, but then complains about that because
|
|
39
|
+
// `unique symbol` must be `const`.
|
|
40
|
+
/** Terminate visit traversal completely */
|
|
41
|
+
visit.BREAK = BREAK;
|
|
42
|
+
/** Do not visit the children of the current item */
|
|
43
|
+
visit.SKIP = SKIP;
|
|
44
|
+
/** Remove the current item */
|
|
45
|
+
visit.REMOVE = REMOVE;
|
|
46
|
+
/** Find the item at `path` from `cst` as the root */
|
|
47
|
+
visit.itemAtPath = (cst, path) => {
|
|
48
|
+
let item = cst;
|
|
49
|
+
for (const [field, index] of path) {
|
|
50
|
+
const tok = item?.[field];
|
|
51
|
+
if (tok && 'items' in tok) {
|
|
52
|
+
item = tok.items[index];
|
|
53
|
+
}
|
|
54
|
+
else
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return item;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Get the immediate parent collection of the item at `path` from `cst` as the root.
|
|
61
|
+
*
|
|
62
|
+
* Throws an error if the collection is not found, which should never happen if the item itself exists.
|
|
63
|
+
*/
|
|
64
|
+
visit.parentCollection = (cst, path) => {
|
|
65
|
+
const parent = visit.itemAtPath(cst, path.slice(0, -1));
|
|
66
|
+
const field = path[path.length - 1][0];
|
|
67
|
+
const coll = parent?.[field];
|
|
68
|
+
if (coll && 'items' in coll)
|
|
69
|
+
return coll;
|
|
70
|
+
throw new Error('Parent collection not found');
|
|
71
|
+
};
|
|
72
|
+
function _visit(path, item, visitor) {
|
|
73
|
+
let ctrl = visitor(item, path);
|
|
74
|
+
if (typeof ctrl === 'symbol')
|
|
75
|
+
return ctrl;
|
|
76
|
+
for (const field of ['key', 'value']) {
|
|
77
|
+
const token = item[field];
|
|
78
|
+
if (token && 'items' in token) {
|
|
79
|
+
for (let i = 0; i < token.items.length; ++i) {
|
|
80
|
+
const ci = _visit(Object.freeze(path.concat([[field, i]])), token.items[i], visitor);
|
|
81
|
+
if (typeof ci === 'number')
|
|
82
|
+
i = ci - 1;
|
|
83
|
+
else if (ci === BREAK)
|
|
84
|
+
return BREAK;
|
|
85
|
+
else if (ci === REMOVE) {
|
|
86
|
+
token.items.splice(i, 1);
|
|
87
|
+
i -= 1;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (typeof ctrl === 'function' && field === 'key')
|
|
91
|
+
ctrl = ctrl(item, path);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return typeof ctrl === 'function' ? ctrl(item, path) : ctrl;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export { visit };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export { createScalarToken, resolveAsScalar, setScalarValue } from './cst-scalar.js';
|
|
2
|
+
export { stringify } from './cst-stringify.js';
|
|
3
|
+
export { visit } from './cst-visit.js';
|
|
4
|
+
|
|
5
|
+
/** The byte order mark */
|
|
6
|
+
const BOM = '\u{FEFF}';
|
|
7
|
+
/** Start of doc-mode */
|
|
8
|
+
const DOCUMENT = '\x02'; // C0: Start of Text
|
|
9
|
+
/** Unexpected end of flow-mode */
|
|
10
|
+
const FLOW_END = '\x18'; // C0: Cancel
|
|
11
|
+
/** Next token is a scalar value */
|
|
12
|
+
const SCALAR = '\x1f'; // C0: Unit Separator
|
|
13
|
+
/** @returns `true` if `token` is a flow or block collection */
|
|
14
|
+
const isCollection = (token) => !!token && 'items' in token;
|
|
15
|
+
/** @returns `true` if `token` is a flow or block scalar; not an alias */
|
|
16
|
+
const isScalar = (token) => !!token &&
|
|
17
|
+
(token.type === 'scalar' ||
|
|
18
|
+
token.type === 'single-quoted-scalar' ||
|
|
19
|
+
token.type === 'double-quoted-scalar' ||
|
|
20
|
+
token.type === 'block-scalar');
|
|
21
|
+
/* istanbul ignore next */
|
|
22
|
+
/** Get a printable representation of a lexer token */
|
|
23
|
+
function prettyToken(token) {
|
|
24
|
+
switch (token) {
|
|
25
|
+
case BOM:
|
|
26
|
+
return '<BOM>';
|
|
27
|
+
case DOCUMENT:
|
|
28
|
+
return '<DOC>';
|
|
29
|
+
case FLOW_END:
|
|
30
|
+
return '<FLOW_END>';
|
|
31
|
+
case SCALAR:
|
|
32
|
+
return '<SCALAR>';
|
|
33
|
+
default:
|
|
34
|
+
return JSON.stringify(token);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** Identify the type of a lexer token. May return `null` for unknown tokens. */
|
|
38
|
+
function tokenType(source) {
|
|
39
|
+
switch (source) {
|
|
40
|
+
case BOM:
|
|
41
|
+
return 'byte-order-mark';
|
|
42
|
+
case DOCUMENT:
|
|
43
|
+
return 'doc-mode';
|
|
44
|
+
case FLOW_END:
|
|
45
|
+
return 'flow-error-end';
|
|
46
|
+
case SCALAR:
|
|
47
|
+
return 'scalar';
|
|
48
|
+
case '---':
|
|
49
|
+
return 'doc-start';
|
|
50
|
+
case '...':
|
|
51
|
+
return 'doc-end';
|
|
52
|
+
case '':
|
|
53
|
+
case '\n':
|
|
54
|
+
case '\r\n':
|
|
55
|
+
return 'newline';
|
|
56
|
+
case '-':
|
|
57
|
+
return 'seq-item-ind';
|
|
58
|
+
case '?':
|
|
59
|
+
return 'explicit-key-ind';
|
|
60
|
+
case ':':
|
|
61
|
+
return 'map-value-ind';
|
|
62
|
+
case '{':
|
|
63
|
+
return 'flow-map-start';
|
|
64
|
+
case '}':
|
|
65
|
+
return 'flow-map-end';
|
|
66
|
+
case '[':
|
|
67
|
+
return 'flow-seq-start';
|
|
68
|
+
case ']':
|
|
69
|
+
return 'flow-seq-end';
|
|
70
|
+
case ',':
|
|
71
|
+
return 'comma';
|
|
72
|
+
}
|
|
73
|
+
switch (source[0]) {
|
|
74
|
+
case ' ':
|
|
75
|
+
case '\t':
|
|
76
|
+
return 'space';
|
|
77
|
+
case '#':
|
|
78
|
+
return 'comment';
|
|
79
|
+
case '%':
|
|
80
|
+
return 'directive-line';
|
|
81
|
+
case '*':
|
|
82
|
+
return 'alias';
|
|
83
|
+
case '&':
|
|
84
|
+
return 'anchor';
|
|
85
|
+
case '!':
|
|
86
|
+
return 'tag';
|
|
87
|
+
case "'":
|
|
88
|
+
return 'single-quoted-scalar';
|
|
89
|
+
case '"':
|
|
90
|
+
return 'double-quoted-scalar';
|
|
91
|
+
case '|':
|
|
92
|
+
case '>':
|
|
93
|
+
return 'block-scalar-header';
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export { BOM, DOCUMENT, FLOW_END, SCALAR, isCollection, isScalar, prettyToken, tokenType };
|