@azure/provisioning-core 0.1.0-alpha.20261026.1 → 1.0.0-beta.2
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/CHANGELOG.md +13 -0
- package/LICENSE +3 -3
- package/README.md +61 -90
- package/dist/browser/constructs/built-in-resources/resource-group.d.ts.map +1 -0
- package/dist/{constructs → browser/constructs}/built-in-resources/resource-group.js +1 -2
- package/dist/browser/constructs/built-in-resources/resource-group.js.map +1 -0
- package/dist/browser/constructs/output.d.ts.map +1 -0
- package/dist/{constructs → browser/constructs}/output.js +1 -2
- package/dist/browser/constructs/output.js.map +1 -0
- package/dist/{constructs → browser/constructs}/parameter.d.ts.map +1 -1
- package/dist/browser/constructs/parameter.js.map +1 -0
- package/dist/browser/constructs/provisioning-component.d.ts.map +1 -0
- package/dist/browser/constructs/provisioning-component.js.map +1 -0
- package/dist/browser/constructs/resource/resource-proxy.d.ts.map +1 -0
- package/dist/{constructs → browser/constructs}/resource/resource-proxy.js +7 -13
- package/dist/browser/constructs/resource/resource-proxy.js.map +1 -0
- package/dist/browser/constructs/resource/resource-query.d.ts.map +1 -0
- package/dist/{constructs → browser/constructs}/resource/resource-query.js +2 -4
- package/dist/browser/constructs/resource/resource-query.js.map +1 -0
- package/dist/browser/constructs/resource/resource-registry.d.ts.map +1 -0
- package/dist/{constructs → browser/constructs}/resource/resource-registry.js +1 -1
- package/dist/browser/constructs/resource/resource-registry.js.map +1 -0
- package/dist/browser/constructs/resource/resource-relationships.d.ts.map +1 -0
- package/dist/{constructs → browser/constructs}/resource/resource-relationships.js +3 -6
- package/dist/browser/constructs/resource/resource-relationships.js.map +1 -0
- package/dist/browser/constructs/resource/resource-type-registry.d.ts.map +1 -0
- package/dist/browser/constructs/resource/resource-type-registry.js.map +1 -0
- package/dist/browser/constructs/resource/resource-utils.d.ts.map +1 -0
- package/dist/{constructs → browser/constructs}/resource/resource-utils.js +1 -3
- package/dist/browser/constructs/resource/resource-utils.js.map +1 -0
- package/dist/browser/constructs/resource/resource.d.ts.map +1 -0
- package/dist/{constructs → browser/constructs}/resource/resource.js +8 -12
- package/dist/browser/constructs/resource/resource.js.map +1 -0
- package/dist/browser/constructs/stack.d.ts.map +1 -0
- package/dist/browser/constructs/stack.js.map +1 -0
- package/dist/browser/constructs/variable.d.ts.map +1 -0
- package/dist/browser/constructs/variable.js.map +1 -0
- package/dist/browser/deployment-context/deployment-context.d.ts.map +1 -0
- package/dist/browser/deployment-context/deployment-context.js.map +1 -0
- package/dist/browser/expression/ast-nodes.d.ts.map +1 -0
- package/dist/{expression → browser/expression}/ast-nodes.js +2 -4
- package/dist/browser/expression/ast-nodes.js.map +1 -0
- package/dist/browser/expression/expressions.d.ts.map +1 -0
- package/dist/{expression → browser/expression}/expressions.js +1 -1
- package/dist/browser/expression/expressions.js.map +1 -0
- package/dist/browser/expression/utils.d.ts.map +1 -0
- package/dist/browser/expression/utils.js.map +1 -0
- package/dist/browser/fn.d.ts.map +1 -0
- package/dist/{fn.js → browser/fn.js} +6 -25
- package/dist/browser/fn.js.map +1 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/{index.js → browser/index.js} +0 -2
- package/dist/browser/index.js.map +1 -0
- package/dist/{internal.d.ts → browser/internal.d.ts} +1 -1
- package/dist/browser/internal.d.ts.map +1 -0
- package/dist/{internal.js → browser/internal.js} +1 -1
- package/dist/browser/internal.js.map +1 -0
- package/dist/browser/naming/name-validation.d.ts.map +1 -0
- package/dist/{naming → browser/naming}/name-validation.js +1 -1
- package/dist/browser/naming/name-validation.js.map +1 -0
- package/dist/browser/naming/naming-policy.d.ts.map +1 -0
- package/dist/{naming → browser/naming}/naming-policy.js +3 -5
- package/dist/browser/naming/naming-policy.js.map +1 -0
- package/dist/browser/naming/naming-rules.d.ts.map +1 -0
- package/dist/browser/naming/naming-rules.js.map +1 -0
- package/dist/browser/package.json +8 -0
- package/dist/browser/serialization/arm-object-conversion.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/arm-object-conversion.js +9 -18
- package/dist/browser/serialization/arm-object-conversion.js.map +1 -0
- package/dist/browser/serialization/ast/declaration-builder.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/ast/declaration-builder.js +5 -12
- package/dist/browser/serialization/ast/declaration-builder.js.map +1 -0
- package/dist/browser/serialization/ast/declaration-dependencies.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/ast/declaration-dependencies.js +1 -2
- package/dist/browser/serialization/ast/declaration-dependencies.js.map +1 -0
- package/dist/browser/serialization/ast/expression-builder.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/ast/expression-builder.js +2 -4
- package/dist/browser/serialization/ast/expression-builder.js.map +1 -0
- package/dist/browser/serialization/ast/expression-restorer.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/ast/expression-restorer.js +11 -4
- package/dist/browser/serialization/ast/expression-restorer.js.map +1 -0
- package/dist/browser/serialization/ast/expression-rewriter.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/ast/expression-rewriter.js +12 -34
- package/dist/browser/serialization/ast/expression-rewriter.js.map +1 -0
- package/dist/browser/serialization/ast/expression-walker.d.ts.map +1 -0
- package/dist/browser/serialization/ast/expression-walker.js.map +1 -0
- package/dist/{serialization → browser/serialization}/ast/generated/ast.d.ts.map +1 -1
- package/dist/browser/serialization/ast/generated/ast.js.map +1 -0
- package/dist/browser/serialization/ast/index.d.ts.map +1 -0
- package/dist/browser/serialization/ast/index.js.map +1 -0
- package/dist/browser/serialization/ast/resource-utils.d.ts.map +1 -0
- package/dist/browser/serialization/ast/resource-utils.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/authored-context.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/authored-context.js +1 -2
- package/dist/browser/serialization/bicep/file-layout/authored-context.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/bicep-namer.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/bicep-namer.js +11 -20
- package/dist/browser/serialization/bicep/file-layout/bicep-namer.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/build-bicep-files.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/build-bicep-files.js +7 -20
- package/dist/browser/serialization/bicep/file-layout/build-bicep-files.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/deployment-planning.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/deployment-planning.js +2 -3
- package/dist/browser/serialization/bicep/file-layout/deployment-planning.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/deployment-resource-utils.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/deployment-resource-utils.js +5 -9
- package/dist/browser/serialization/bicep/file-layout/deployment-resource-utils.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/file-dependencies.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/file-dependencies.js +2 -7
- package/dist/browser/serialization/bicep/file-layout/file-dependencies.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/file-paths.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/file-paths.js +1 -3
- package/dist/browser/serialization/bicep/file-layout/file-paths.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/file-preparation.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/file-preparation.js +8 -16
- package/dist/browser/serialization/bicep/file-layout/file-preparation.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/reference-wiring.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/file-layout/reference-wiring.js +4 -7
- package/dist/browser/serialization/bicep/file-layout/reference-wiring.js.map +1 -0
- package/dist/browser/serialization/bicep/index.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/index.js.map +1 -0
- package/dist/browser/serialization/bicep/render.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/bicep/render.js +18 -34
- package/dist/browser/serialization/bicep/render.js.map +1 -0
- package/dist/browser/serialization/encoding.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/encoding.js +2 -6
- package/dist/browser/serialization/encoding.js.map +1 -0
- package/dist/browser/serialization/identifiers.d.ts.map +1 -0
- package/dist/browser/serialization/identifiers.js.map +1 -0
- package/dist/browser/serialization/index.d.ts.map +1 -0
- package/dist/browser/serialization/index.js.map +1 -0
- package/dist/browser/serialization/json/deserialize.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/json/deserialize.js +23 -64
- package/dist/browser/serialization/json/deserialize.js.map +1 -0
- package/dist/browser/serialization/json/serialize.d.ts.map +1 -0
- package/dist/{serialization → browser/serialization}/json/serialize.js +1 -3
- package/dist/browser/serialization/json/serialize.js.map +1 -0
- package/dist/browser/serialization/pluralize-config.d.ts.map +1 -0
- package/dist/browser/serialization/pluralize-config.js.map +1 -0
- package/dist/browser/serialization/symbol-map.d.ts.map +1 -0
- package/dist/browser/serialization/symbol-map.js.map +1 -0
- package/dist/browser/shape/shape-registry.d.ts.map +1 -0
- package/dist/browser/shape/shape-registry.js.map +1 -0
- package/dist/browser/shape/shape.d.ts.map +1 -0
- package/dist/{shape → browser/shape}/shape.js +6 -7
- package/dist/browser/shape/shape.js.map +1 -0
- package/dist/browser/shape/value-encoding.d.ts.map +1 -0
- package/dist/browser/shape/value-encoding.js.map +1 -0
- package/dist/browser/types.d.ts.map +1 -0
- package/dist/browser/types.js.map +1 -0
- package/dist/{util.d.ts → browser/util.d.ts} +1 -1
- package/dist/browser/util.d.ts.map +1 -0
- package/dist/{util.js → browser/util.js} +1 -5
- package/dist/browser/util.js.map +1 -0
- package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts +56 -0
- package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts.map +1 -0
- package/dist/commonjs/constructs/built-in-resources/resource-group.js +135 -0
- package/dist/commonjs/constructs/built-in-resources/resource-group.js.map +7 -0
- package/dist/commonjs/constructs/output.d.ts +80 -0
- package/dist/commonjs/constructs/output.d.ts.map +1 -0
- package/dist/commonjs/constructs/output.js +75 -0
- package/dist/commonjs/constructs/output.js.map +7 -0
- package/dist/commonjs/constructs/parameter.d.ts +77 -0
- package/dist/commonjs/constructs/parameter.d.ts.map +1 -0
- package/dist/commonjs/constructs/parameter.js +95 -0
- package/dist/commonjs/constructs/parameter.js.map +7 -0
- package/dist/commonjs/constructs/provisioning-component.d.ts +91 -0
- package/dist/commonjs/constructs/provisioning-component.d.ts.map +1 -0
- package/dist/commonjs/constructs/provisioning-component.js +130 -0
- package/dist/commonjs/constructs/provisioning-component.js.map +7 -0
- package/dist/commonjs/constructs/resource/resource-proxy.d.ts +134 -0
- package/dist/commonjs/constructs/resource/resource-proxy.d.ts.map +1 -0
- package/dist/commonjs/constructs/resource/resource-proxy.js +456 -0
- package/dist/commonjs/constructs/resource/resource-proxy.js.map +7 -0
- package/dist/commonjs/constructs/resource/resource-query.d.ts +25 -0
- package/dist/commonjs/constructs/resource/resource-query.d.ts.map +1 -0
- package/dist/commonjs/constructs/resource/resource-query.js +79 -0
- package/dist/commonjs/constructs/resource/resource-query.js.map +7 -0
- package/dist/commonjs/constructs/resource/resource-registry.d.ts +99 -0
- package/dist/commonjs/constructs/resource/resource-registry.d.ts.map +1 -0
- package/dist/commonjs/constructs/resource/resource-registry.js +49 -0
- package/dist/commonjs/constructs/resource/resource-registry.js.map +7 -0
- package/dist/commonjs/constructs/resource/resource-relationships.d.ts +9 -0
- package/dist/commonjs/constructs/resource/resource-relationships.d.ts.map +1 -0
- package/dist/commonjs/constructs/resource/resource-relationships.js +59 -0
- package/dist/commonjs/constructs/resource/resource-relationships.js.map +7 -0
- package/dist/commonjs/constructs/resource/resource-type-registry.d.ts +46 -0
- package/dist/commonjs/constructs/resource/resource-type-registry.d.ts.map +1 -0
- package/dist/commonjs/constructs/resource/resource-type-registry.js +178 -0
- package/dist/commonjs/constructs/resource/resource-type-registry.js.map +7 -0
- package/dist/commonjs/constructs/resource/resource-utils.d.ts +60 -0
- package/dist/commonjs/constructs/resource/resource-utils.d.ts.map +1 -0
- package/dist/commonjs/constructs/resource/resource-utils.js +51 -0
- package/dist/commonjs/constructs/resource/resource-utils.js.map +7 -0
- package/dist/commonjs/constructs/resource/resource.d.ts +454 -0
- package/dist/commonjs/constructs/resource/resource.d.ts.map +1 -0
- package/dist/commonjs/constructs/resource/resource.js +477 -0
- package/dist/commonjs/constructs/resource/resource.js.map +7 -0
- package/dist/commonjs/constructs/stack.d.ts +96 -0
- package/dist/commonjs/constructs/stack.d.ts.map +1 -0
- package/dist/commonjs/constructs/stack.js +101 -0
- package/dist/commonjs/constructs/stack.js.map +7 -0
- package/dist/commonjs/constructs/variable.d.ts +63 -0
- package/dist/commonjs/constructs/variable.d.ts.map +1 -0
- package/dist/commonjs/constructs/variable.js +85 -0
- package/dist/commonjs/constructs/variable.js.map +7 -0
- package/dist/commonjs/deployment-context/deployment-context.d.ts +27 -0
- package/dist/commonjs/deployment-context/deployment-context.d.ts.map +1 -0
- package/dist/commonjs/deployment-context/deployment-context.js +16 -0
- package/dist/commonjs/deployment-context/deployment-context.js.map +7 -0
- package/dist/commonjs/expression/ast-nodes.d.ts +100 -0
- package/dist/commonjs/expression/ast-nodes.d.ts.map +1 -0
- package/dist/commonjs/expression/ast-nodes.js +152 -0
- package/dist/commonjs/expression/ast-nodes.js.map +7 -0
- package/dist/commonjs/expression/expressions.d.ts +157 -0
- package/dist/commonjs/expression/expressions.d.ts.map +1 -0
- package/dist/commonjs/expression/expressions.js +171 -0
- package/dist/commonjs/expression/expressions.js.map +7 -0
- package/dist/commonjs/expression/utils.d.ts +5 -0
- package/dist/commonjs/expression/utils.d.ts.map +1 -0
- package/dist/commonjs/expression/utils.js +43 -0
- package/dist/commonjs/expression/utils.js.map +7 -0
- package/dist/commonjs/fn.d.ts +194 -0
- package/dist/commonjs/fn.d.ts.map +1 -0
- package/dist/commonjs/fn.js +382 -0
- package/dist/commonjs/fn.js.map +7 -0
- package/dist/commonjs/index.d.ts +25 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +93 -0
- package/dist/commonjs/index.js.map +7 -0
- package/dist/commonjs/internal.d.ts +10 -0
- package/dist/commonjs/internal.d.ts.map +1 -0
- package/dist/commonjs/internal.js +82 -0
- package/dist/commonjs/internal.js.map +7 -0
- package/dist/commonjs/naming/name-validation.d.ts +15 -0
- package/dist/commonjs/naming/name-validation.d.ts.map +1 -0
- package/dist/commonjs/naming/name-validation.js +74 -0
- package/dist/commonjs/naming/name-validation.js.map +7 -0
- package/dist/commonjs/naming/naming-policy.d.ts +56 -0
- package/dist/commonjs/naming/naming-policy.d.ts.map +1 -0
- package/dist/commonjs/naming/naming-policy.js +209 -0
- package/dist/commonjs/naming/naming-policy.js.map +7 -0
- package/dist/commonjs/naming/naming-rules.d.ts +16 -0
- package/dist/commonjs/naming/naming-rules.d.ts.map +1 -0
- package/dist/commonjs/naming/naming-rules.js +32 -0
- package/dist/commonjs/naming/naming-rules.js.map +7 -0
- package/dist/commonjs/package.json +8 -0
- package/dist/commonjs/serialization/arm-object-conversion.d.ts +41 -0
- package/dist/commonjs/serialization/arm-object-conversion.d.ts.map +1 -0
- package/dist/commonjs/serialization/arm-object-conversion.js +272 -0
- package/dist/commonjs/serialization/arm-object-conversion.js.map +7 -0
- package/dist/commonjs/serialization/ast/declaration-builder.d.ts +10 -0
- package/dist/commonjs/serialization/ast/declaration-builder.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/declaration-builder.js +274 -0
- package/dist/commonjs/serialization/ast/declaration-builder.js.map +7 -0
- package/dist/commonjs/serialization/ast/declaration-dependencies.d.ts +18 -0
- package/dist/commonjs/serialization/ast/declaration-dependencies.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/declaration-dependencies.js +109 -0
- package/dist/commonjs/serialization/ast/declaration-dependencies.js.map +7 -0
- package/dist/commonjs/serialization/ast/expression-builder.d.ts +14 -0
- package/dist/commonjs/serialization/ast/expression-builder.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/expression-builder.js +316 -0
- package/dist/commonjs/serialization/ast/expression-builder.js.map +7 -0
- package/dist/commonjs/serialization/ast/expression-restorer.d.ts +8 -0
- package/dist/commonjs/serialization/ast/expression-restorer.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/expression-restorer.js +193 -0
- package/dist/commonjs/serialization/ast/expression-restorer.js.map +7 -0
- package/dist/commonjs/serialization/ast/expression-rewriter.d.ts +29 -0
- package/dist/commonjs/serialization/ast/expression-rewriter.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/expression-rewriter.js +270 -0
- package/dist/commonjs/serialization/ast/expression-rewriter.js.map +7 -0
- package/dist/commonjs/serialization/ast/expression-walker.d.ts +16 -0
- package/dist/commonjs/serialization/ast/expression-walker.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/expression-walker.js +165 -0
- package/dist/commonjs/serialization/ast/expression-walker.js.map +7 -0
- package/dist/commonjs/serialization/ast/generated/ast.d.ts +508 -0
- package/dist/commonjs/serialization/ast/generated/ast.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/generated/ast.js +40 -0
- package/dist/commonjs/serialization/ast/generated/ast.js.map +7 -0
- package/dist/commonjs/serialization/ast/index.d.ts +7 -0
- package/dist/commonjs/serialization/ast/index.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/index.js +22 -0
- package/dist/commonjs/serialization/ast/index.js.map +7 -0
- package/dist/commonjs/serialization/ast/resource-utils.d.ts +10 -0
- package/dist/commonjs/serialization/ast/resource-utils.d.ts.map +1 -0
- package/dist/commonjs/serialization/ast/resource-utils.js +71 -0
- package/dist/commonjs/serialization/ast/resource-utils.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/authored-context.d.ts +12 -0
- package/dist/commonjs/serialization/bicep/file-layout/authored-context.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/authored-context.js +74 -0
- package/dist/commonjs/serialization/bicep/file-layout/authored-context.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/bicep-namer.d.ts +11 -0
- package/dist/commonjs/serialization/bicep/file-layout/bicep-namer.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/bicep-namer.js +130 -0
- package/dist/commonjs/serialization/bicep/file-layout/bicep-namer.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/build-bicep-files.d.ts +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/build-bicep-files.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/build-bicep-files.js +71 -0
- package/dist/commonjs/serialization/bicep/file-layout/build-bicep-files.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/deployment-planning.d.ts +19 -0
- package/dist/commonjs/serialization/bicep/file-layout/deployment-planning.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/deployment-planning.js +80 -0
- package/dist/commonjs/serialization/bicep/file-layout/deployment-planning.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/deployment-resource-utils.d.ts +8 -0
- package/dist/commonjs/serialization/bicep/file-layout/deployment-resource-utils.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/deployment-resource-utils.js +91 -0
- package/dist/commonjs/serialization/bicep/file-layout/deployment-resource-utils.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-dependencies.d.ts +4 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-dependencies.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-dependencies.js +57 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-dependencies.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-paths.d.ts +3 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-paths.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-paths.js +70 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-paths.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-preparation.d.ts +34 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-preparation.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-preparation.js +190 -0
- package/dist/commonjs/serialization/bicep/file-layout/file-preparation.js.map +7 -0
- package/dist/commonjs/serialization/bicep/file-layout/reference-wiring.d.ts +3 -0
- package/dist/commonjs/serialization/bicep/file-layout/reference-wiring.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/file-layout/reference-wiring.js +241 -0
- package/dist/commonjs/serialization/bicep/file-layout/reference-wiring.js.map +7 -0
- package/dist/commonjs/serialization/bicep/index.d.ts +2 -0
- package/dist/commonjs/serialization/bicep/index.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/index.js +28 -0
- package/dist/commonjs/serialization/bicep/index.js.map +7 -0
- package/dist/commonjs/serialization/bicep/render.d.ts +11 -0
- package/dist/commonjs/serialization/bicep/render.d.ts.map +1 -0
- package/dist/commonjs/serialization/bicep/render.js +312 -0
- package/dist/commonjs/serialization/bicep/render.js.map +7 -0
- package/dist/commonjs/serialization/encoding.d.ts +4 -0
- package/dist/commonjs/serialization/encoding.d.ts.map +1 -0
- package/dist/commonjs/serialization/encoding.js +296 -0
- package/dist/commonjs/serialization/encoding.js.map +7 -0
- package/dist/commonjs/serialization/identifiers.d.ts +2 -0
- package/dist/commonjs/serialization/identifiers.d.ts.map +1 -0
- package/dist/commonjs/serialization/identifiers.js +37 -0
- package/dist/commonjs/serialization/identifiers.js.map +7 -0
- package/dist/commonjs/serialization/index.d.ts +4 -0
- package/dist/commonjs/serialization/index.d.ts.map +1 -0
- package/dist/commonjs/serialization/index.js +31 -0
- package/dist/commonjs/serialization/index.js.map +7 -0
- package/dist/commonjs/serialization/json/deserialize.d.ts +24 -0
- package/dist/commonjs/serialization/json/deserialize.d.ts.map +1 -0
- package/dist/commonjs/serialization/json/deserialize.js +456 -0
- package/dist/commonjs/serialization/json/deserialize.js.map +7 -0
- package/dist/commonjs/serialization/json/serialize.d.ts +12 -0
- package/dist/commonjs/serialization/json/serialize.d.ts.map +1 -0
- package/dist/commonjs/serialization/json/serialize.js +50 -0
- package/dist/commonjs/serialization/json/serialize.js.map +7 -0
- package/dist/commonjs/serialization/pluralize-config.d.ts +3 -0
- package/dist/commonjs/serialization/pluralize-config.d.ts.map +1 -0
- package/dist/commonjs/serialization/pluralize-config.js +37 -0
- package/dist/commonjs/serialization/pluralize-config.js.map +7 -0
- package/dist/commonjs/serialization/symbol-map.d.ts +10 -0
- package/dist/commonjs/serialization/symbol-map.d.ts.map +1 -0
- package/dist/commonjs/serialization/symbol-map.js +72 -0
- package/dist/commonjs/serialization/symbol-map.js.map +7 -0
- package/dist/commonjs/shape/shape-registry.d.ts +51 -0
- package/dist/commonjs/shape/shape-registry.d.ts.map +1 -0
- package/dist/commonjs/shape/shape-registry.js +40 -0
- package/dist/commonjs/shape/shape-registry.js.map +7 -0
- package/dist/commonjs/shape/shape.d.ts +407 -0
- package/dist/commonjs/shape/shape.d.ts.map +1 -0
- package/dist/commonjs/shape/shape.js +290 -0
- package/dist/commonjs/shape/shape.js.map +7 -0
- package/dist/commonjs/shape/value-encoding.d.ts +121 -0
- package/dist/commonjs/shape/value-encoding.d.ts.map +1 -0
- package/dist/commonjs/shape/value-encoding.js +62 -0
- package/dist/commonjs/shape/value-encoding.js.map +7 -0
- package/dist/commonjs/tsdoc-metadata.json +11 -0
- package/dist/commonjs/types.d.ts +9 -0
- package/dist/commonjs/types.d.ts.map +1 -0
- package/dist/commonjs/types.js +16 -0
- package/dist/commonjs/types.js.map +7 -0
- package/dist/commonjs/util.d.ts +33 -0
- package/dist/commonjs/util.d.ts.map +1 -0
- package/dist/commonjs/util.js +73 -0
- package/dist/commonjs/util.js.map +7 -0
- package/dist/esm/constructs/built-in-resources/resource-group.d.ts +56 -0
- package/dist/esm/constructs/built-in-resources/resource-group.d.ts.map +1 -0
- package/dist/esm/constructs/built-in-resources/resource-group.js +120 -0
- package/dist/esm/constructs/built-in-resources/resource-group.js.map +1 -0
- package/dist/esm/constructs/output.d.ts +80 -0
- package/dist/esm/constructs/output.d.ts.map +1 -0
- package/dist/esm/constructs/output.js +75 -0
- package/dist/esm/constructs/output.js.map +1 -0
- package/dist/esm/constructs/parameter.d.ts +77 -0
- package/dist/esm/constructs/parameter.d.ts.map +1 -0
- package/dist/esm/constructs/parameter.js +93 -0
- package/dist/esm/constructs/parameter.js.map +1 -0
- package/dist/esm/constructs/provisioning-component.d.ts +91 -0
- package/dist/esm/constructs/provisioning-component.d.ts.map +1 -0
- package/dist/esm/constructs/provisioning-component.js +150 -0
- package/dist/esm/constructs/provisioning-component.js.map +1 -0
- package/dist/esm/constructs/resource/resource-proxy.d.ts +134 -0
- package/dist/esm/constructs/resource/resource-proxy.d.ts.map +1 -0
- package/dist/esm/constructs/resource/resource-proxy.js +517 -0
- package/dist/esm/constructs/resource/resource-proxy.js.map +1 -0
- package/dist/esm/constructs/resource/resource-query.d.ts +25 -0
- package/dist/esm/constructs/resource/resource-query.d.ts.map +1 -0
- package/dist/esm/constructs/resource/resource-query.js +79 -0
- package/dist/esm/constructs/resource/resource-query.js.map +1 -0
- package/dist/esm/constructs/resource/resource-registry.d.ts +99 -0
- package/dist/esm/constructs/resource/resource-registry.d.ts.map +1 -0
- package/dist/esm/constructs/resource/resource-registry.js +51 -0
- package/dist/esm/constructs/resource/resource-registry.js.map +1 -0
- package/dist/esm/constructs/resource/resource-relationships.d.ts +9 -0
- package/dist/esm/constructs/resource/resource-relationships.d.ts.map +1 -0
- package/dist/esm/constructs/resource/resource-relationships.js +35 -0
- package/dist/esm/constructs/resource/resource-relationships.js.map +1 -0
- package/dist/esm/constructs/resource/resource-type-registry.d.ts +46 -0
- package/dist/esm/constructs/resource/resource-type-registry.d.ts.map +1 -0
- package/dist/esm/constructs/resource/resource-type-registry.js +156 -0
- package/dist/esm/constructs/resource/resource-type-registry.js.map +1 -0
- package/dist/esm/constructs/resource/resource-utils.d.ts +60 -0
- package/dist/esm/constructs/resource/resource-utils.d.ts.map +1 -0
- package/dist/esm/constructs/resource/resource-utils.js +75 -0
- package/dist/esm/constructs/resource/resource-utils.js.map +1 -0
- package/dist/esm/constructs/resource/resource.d.ts +454 -0
- package/dist/esm/constructs/resource/resource.d.ts.map +1 -0
- package/dist/esm/constructs/resource/resource.js +624 -0
- package/dist/esm/constructs/resource/resource.js.map +1 -0
- package/dist/esm/constructs/stack.d.ts +96 -0
- package/dist/esm/constructs/stack.d.ts.map +1 -0
- package/dist/esm/constructs/stack.js +96 -0
- package/dist/esm/constructs/stack.js.map +1 -0
- package/dist/esm/constructs/variable.d.ts +63 -0
- package/dist/esm/constructs/variable.d.ts.map +1 -0
- package/dist/esm/constructs/variable.js +74 -0
- package/dist/esm/constructs/variable.js.map +1 -0
- package/dist/esm/deployment-context/deployment-context.d.ts +27 -0
- package/dist/esm/deployment-context/deployment-context.d.ts.map +1 -0
- package/dist/esm/deployment-context/deployment-context.js +4 -0
- package/dist/esm/deployment-context/deployment-context.js.map +1 -0
- package/dist/esm/expression/ast-nodes.d.ts +100 -0
- package/dist/esm/expression/ast-nodes.d.ts.map +1 -0
- package/dist/esm/expression/ast-nodes.js +125 -0
- package/dist/esm/expression/ast-nodes.js.map +1 -0
- package/dist/esm/expression/expressions.d.ts +157 -0
- package/dist/esm/expression/expressions.d.ts.map +1 -0
- package/dist/esm/expression/expressions.js +204 -0
- package/dist/esm/expression/expressions.js.map +1 -0
- package/dist/esm/expression/utils.d.ts +5 -0
- package/dist/esm/expression/utils.d.ts.map +1 -0
- package/dist/esm/expression/utils.js +25 -0
- package/dist/esm/expression/utils.js.map +1 -0
- package/dist/esm/fn.d.ts +194 -0
- package/dist/esm/fn.d.ts.map +1 -0
- package/dist/esm/fn.js +334 -0
- package/dist/esm/fn.js.map +1 -0
- package/dist/esm/index.d.ts +25 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal.d.ts +10 -0
- package/dist/esm/internal.d.ts.map +1 -0
- package/dist/esm/internal.js +8 -0
- package/dist/esm/internal.js.map +1 -0
- package/dist/esm/naming/name-validation.d.ts +15 -0
- package/dist/esm/naming/name-validation.d.ts.map +1 -0
- package/dist/esm/naming/name-validation.js +82 -0
- package/dist/esm/naming/name-validation.js.map +1 -0
- package/dist/esm/naming/naming-policy.d.ts +56 -0
- package/dist/esm/naming/naming-policy.d.ts.map +1 -0
- package/dist/esm/naming/naming-policy.js +230 -0
- package/dist/esm/naming/naming-policy.js.map +1 -0
- package/dist/esm/naming/naming-rules.d.ts +16 -0
- package/dist/esm/naming/naming-rules.d.ts.map +1 -0
- package/dist/esm/naming/naming-rules.js +8 -0
- package/dist/esm/naming/naming-rules.js.map +1 -0
- package/dist/esm/package.json +8 -0
- package/dist/esm/serialization/arm-object-conversion.d.ts +41 -0
- package/dist/esm/serialization/arm-object-conversion.d.ts.map +1 -0
- package/dist/esm/serialization/arm-object-conversion.js +334 -0
- package/dist/esm/serialization/arm-object-conversion.js.map +1 -0
- package/dist/esm/serialization/ast/declaration-builder.d.ts +10 -0
- package/dist/esm/serialization/ast/declaration-builder.d.ts.map +1 -0
- package/dist/esm/serialization/ast/declaration-builder.js +265 -0
- package/dist/esm/serialization/ast/declaration-builder.js.map +1 -0
- package/dist/esm/serialization/ast/declaration-dependencies.d.ts +18 -0
- package/dist/esm/serialization/ast/declaration-dependencies.d.ts.map +1 -0
- package/dist/esm/serialization/ast/declaration-dependencies.js +96 -0
- package/dist/esm/serialization/ast/declaration-dependencies.js.map +1 -0
- package/dist/esm/serialization/ast/expression-builder.d.ts +14 -0
- package/dist/esm/serialization/ast/expression-builder.d.ts.map +1 -0
- package/dist/esm/serialization/ast/expression-builder.js +313 -0
- package/dist/esm/serialization/ast/expression-builder.js.map +1 -0
- package/dist/esm/serialization/ast/expression-restorer.d.ts +8 -0
- package/dist/esm/serialization/ast/expression-restorer.d.ts.map +1 -0
- package/dist/esm/serialization/ast/expression-restorer.js +162 -0
- package/dist/esm/serialization/ast/expression-restorer.js.map +1 -0
- package/dist/esm/serialization/ast/expression-rewriter.d.ts +29 -0
- package/dist/esm/serialization/ast/expression-rewriter.d.ts.map +1 -0
- package/dist/esm/serialization/ast/expression-rewriter.js +257 -0
- package/dist/esm/serialization/ast/expression-rewriter.js.map +1 -0
- package/dist/esm/serialization/ast/expression-walker.d.ts +16 -0
- package/dist/esm/serialization/ast/expression-walker.d.ts.map +1 -0
- package/dist/esm/serialization/ast/expression-walker.js +154 -0
- package/dist/esm/serialization/ast/expression-walker.js.map +1 -0
- package/dist/esm/serialization/ast/generated/ast.d.ts +508 -0
- package/dist/esm/serialization/ast/generated/ast.d.ts.map +1 -0
- package/dist/esm/serialization/ast/generated/ast.js +23 -0
- package/dist/esm/serialization/ast/generated/ast.js.map +1 -0
- package/dist/esm/serialization/ast/index.d.ts +7 -0
- package/dist/esm/serialization/ast/index.d.ts.map +1 -0
- package/dist/esm/serialization/ast/index.js +4 -0
- package/dist/esm/serialization/ast/index.js.map +1 -0
- package/dist/esm/serialization/ast/resource-utils.d.ts +10 -0
- package/dist/esm/serialization/ast/resource-utils.d.ts.map +1 -0
- package/dist/esm/serialization/ast/resource-utils.js +52 -0
- package/dist/esm/serialization/ast/resource-utils.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/authored-context.d.ts +12 -0
- package/dist/esm/serialization/bicep/file-layout/authored-context.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/authored-context.js +57 -0
- package/dist/esm/serialization/bicep/file-layout/authored-context.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/bicep-namer.d.ts +11 -0
- package/dist/esm/serialization/bicep/file-layout/bicep-namer.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/bicep-namer.js +100 -0
- package/dist/esm/serialization/bicep/file-layout/bicep-namer.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/build-bicep-files.d.ts +7 -0
- package/dist/esm/serialization/bicep/file-layout/build-bicep-files.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/build-bicep-files.js +46 -0
- package/dist/esm/serialization/bicep/file-layout/build-bicep-files.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/deployment-planning.d.ts +19 -0
- package/dist/esm/serialization/bicep/file-layout/deployment-planning.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/deployment-planning.js +68 -0
- package/dist/esm/serialization/bicep/file-layout/deployment-planning.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/deployment-resource-utils.d.ts +8 -0
- package/dist/esm/serialization/bicep/file-layout/deployment-resource-utils.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/deployment-resource-utils.js +67 -0
- package/dist/esm/serialization/bicep/file-layout/deployment-resource-utils.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/file-dependencies.d.ts +4 -0
- package/dist/esm/serialization/bicep/file-layout/file-dependencies.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/file-dependencies.js +32 -0
- package/dist/esm/serialization/bicep/file-layout/file-dependencies.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/file-paths.d.ts +3 -0
- package/dist/esm/serialization/bicep/file-layout/file-paths.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/file-paths.js +46 -0
- package/dist/esm/serialization/bicep/file-layout/file-paths.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/file-preparation.d.ts +34 -0
- package/dist/esm/serialization/bicep/file-layout/file-preparation.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/file-preparation.js +140 -0
- package/dist/esm/serialization/bicep/file-layout/file-preparation.js.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/reference-wiring.d.ts +3 -0
- package/dist/esm/serialization/bicep/file-layout/reference-wiring.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/file-layout/reference-wiring.js +225 -0
- package/dist/esm/serialization/bicep/file-layout/reference-wiring.js.map +1 -0
- package/dist/esm/serialization/bicep/index.d.ts +2 -0
- package/dist/esm/serialization/bicep/index.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/index.js +4 -0
- package/dist/esm/serialization/bicep/index.js.map +1 -0
- package/dist/esm/serialization/bicep/render.d.ts +11 -0
- package/dist/esm/serialization/bicep/render.d.ts.map +1 -0
- package/dist/esm/serialization/bicep/render.js +293 -0
- package/dist/esm/serialization/bicep/render.js.map +1 -0
- package/dist/esm/serialization/encoding.d.ts +4 -0
- package/dist/esm/serialization/encoding.d.ts.map +1 -0
- package/dist/esm/serialization/encoding.js +309 -0
- package/dist/esm/serialization/encoding.js.map +1 -0
- package/dist/esm/serialization/identifiers.d.ts +2 -0
- package/dist/esm/serialization/identifiers.d.ts.map +1 -0
- package/dist/esm/serialization/identifiers.js +19 -0
- package/dist/esm/serialization/identifiers.js.map +1 -0
- package/dist/esm/serialization/index.d.ts +4 -0
- package/dist/esm/serialization/index.d.ts.map +1 -0
- package/dist/esm/serialization/index.js +5 -0
- package/dist/esm/serialization/index.js.map +1 -0
- package/dist/esm/serialization/json/deserialize.d.ts +24 -0
- package/dist/esm/serialization/json/deserialize.d.ts.map +1 -0
- package/dist/esm/serialization/json/deserialize.js +529 -0
- package/dist/esm/serialization/json/deserialize.js.map +1 -0
- package/dist/esm/serialization/json/serialize.d.ts +12 -0
- package/dist/esm/serialization/json/serialize.d.ts.map +1 -0
- package/dist/esm/serialization/json/serialize.js +34 -0
- package/dist/esm/serialization/json/serialize.js.map +1 -0
- package/dist/esm/serialization/pluralize-config.d.ts +3 -0
- package/dist/esm/serialization/pluralize-config.d.ts.map +1 -0
- package/dist/esm/serialization/pluralize-config.js +7 -0
- package/dist/esm/serialization/pluralize-config.js.map +1 -0
- package/dist/esm/serialization/symbol-map.d.ts +10 -0
- package/dist/esm/serialization/symbol-map.d.ts.map +1 -0
- package/dist/esm/serialization/symbol-map.js +40 -0
- package/dist/esm/serialization/symbol-map.js.map +1 -0
- package/dist/esm/shape/shape-registry.d.ts +51 -0
- package/dist/esm/shape/shape-registry.d.ts.map +1 -0
- package/dist/esm/shape/shape-registry.js +41 -0
- package/dist/esm/shape/shape-registry.js.map +1 -0
- package/dist/esm/shape/shape.d.ts +407 -0
- package/dist/esm/shape/shape.d.ts.map +1 -0
- package/dist/esm/shape/shape.js +424 -0
- package/dist/esm/shape/shape.js.map +1 -0
- package/dist/esm/shape/value-encoding.d.ts +121 -0
- package/dist/esm/shape/value-encoding.d.ts.map +1 -0
- package/dist/esm/shape/value-encoding.js +32 -0
- package/dist/esm/shape/value-encoding.js.map +1 -0
- package/dist/esm/types.d.ts +9 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +4 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/util.d.ts +33 -0
- package/dist/esm/util.d.ts.map +1 -0
- package/dist/esm/util.js +74 -0
- package/dist/esm/util.js.map +1 -0
- package/package.json +92 -27
- package/dist/constructs/built-in-resources/resource-group.d.ts.map +0 -1
- package/dist/constructs/built-in-resources/resource-group.js.map +0 -1
- package/dist/constructs/output.d.ts.map +0 -1
- package/dist/constructs/output.js.map +0 -1
- package/dist/constructs/parameter.js.map +0 -1
- package/dist/constructs/provisioning-component.d.ts.map +0 -1
- package/dist/constructs/provisioning-component.js.map +0 -1
- package/dist/constructs/resource/resource-proxy.d.ts.map +0 -1
- package/dist/constructs/resource/resource-proxy.js.map +0 -1
- package/dist/constructs/resource/resource-query.d.ts.map +0 -1
- package/dist/constructs/resource/resource-query.js.map +0 -1
- package/dist/constructs/resource/resource-registry.d.ts.map +0 -1
- package/dist/constructs/resource/resource-registry.js.map +0 -1
- package/dist/constructs/resource/resource-relationships.d.ts.map +0 -1
- package/dist/constructs/resource/resource-relationships.js.map +0 -1
- package/dist/constructs/resource/resource-type-registry.d.ts.map +0 -1
- package/dist/constructs/resource/resource-type-registry.js.map +0 -1
- package/dist/constructs/resource/resource-utils.d.ts.map +0 -1
- package/dist/constructs/resource/resource-utils.js.map +0 -1
- package/dist/constructs/resource/resource.d.ts.map +0 -1
- package/dist/constructs/resource/resource.js.map +0 -1
- package/dist/constructs/stack.d.ts.map +0 -1
- package/dist/constructs/stack.js.map +0 -1
- package/dist/constructs/variable.d.ts.map +0 -1
- package/dist/constructs/variable.js.map +0 -1
- package/dist/deployment-context/deployment-context.d.ts.map +0 -1
- package/dist/deployment-context/deployment-context.js.map +0 -1
- package/dist/expression/ast-nodes.d.ts.map +0 -1
- package/dist/expression/ast-nodes.js.map +0 -1
- package/dist/expression/expressions.d.ts.map +0 -1
- package/dist/expression/expressions.js.map +0 -1
- package/dist/expression/utils.d.ts.map +0 -1
- package/dist/expression/utils.js.map +0 -1
- package/dist/fn.d.ts.map +0 -1
- package/dist/fn.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal-loop.d.ts +0 -14
- package/dist/internal-loop.d.ts.map +0 -1
- package/dist/internal-loop.js +0 -16
- package/dist/internal-loop.js.map +0 -1
- package/dist/internal.d.ts.map +0 -1
- package/dist/internal.js.map +0 -1
- package/dist/naming/name-validation.d.ts.map +0 -1
- package/dist/naming/name-validation.js.map +0 -1
- package/dist/naming/naming-policy.d.ts.map +0 -1
- package/dist/naming/naming-policy.js.map +0 -1
- package/dist/naming/naming-rules.d.ts.map +0 -1
- package/dist/naming/naming-rules.js.map +0 -1
- package/dist/serialization/arm-object-conversion.d.ts.map +0 -1
- package/dist/serialization/arm-object-conversion.js.map +0 -1
- package/dist/serialization/ast/declaration-builder.d.ts.map +0 -1
- package/dist/serialization/ast/declaration-builder.js.map +0 -1
- package/dist/serialization/ast/declaration-dependencies.d.ts.map +0 -1
- package/dist/serialization/ast/declaration-dependencies.js.map +0 -1
- package/dist/serialization/ast/expression-builder.d.ts.map +0 -1
- package/dist/serialization/ast/expression-builder.js.map +0 -1
- package/dist/serialization/ast/expression-restorer.d.ts.map +0 -1
- package/dist/serialization/ast/expression-restorer.js.map +0 -1
- package/dist/serialization/ast/expression-rewriter.d.ts.map +0 -1
- package/dist/serialization/ast/expression-rewriter.js.map +0 -1
- package/dist/serialization/ast/expression-walker.d.ts.map +0 -1
- package/dist/serialization/ast/expression-walker.js.map +0 -1
- package/dist/serialization/ast/generated/ast.js.map +0 -1
- package/dist/serialization/ast/index.d.ts.map +0 -1
- package/dist/serialization/ast/index.js.map +0 -1
- package/dist/serialization/ast/resource-utils.d.ts.map +0 -1
- package/dist/serialization/ast/resource-utils.js.map +0 -1
- package/dist/serialization/bicep/file-layout/authored-context.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/authored-context.js.map +0 -1
- package/dist/serialization/bicep/file-layout/bicep-namer.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/bicep-namer.js.map +0 -1
- package/dist/serialization/bicep/file-layout/build-bicep-files.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/build-bicep-files.js.map +0 -1
- package/dist/serialization/bicep/file-layout/deployment-planning.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/deployment-planning.js.map +0 -1
- package/dist/serialization/bicep/file-layout/deployment-resource-utils.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/deployment-resource-utils.js.map +0 -1
- package/dist/serialization/bicep/file-layout/file-dependencies.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/file-dependencies.js.map +0 -1
- package/dist/serialization/bicep/file-layout/file-paths.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/file-paths.js.map +0 -1
- package/dist/serialization/bicep/file-layout/file-preparation.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/file-preparation.js.map +0 -1
- package/dist/serialization/bicep/file-layout/reference-wiring.d.ts.map +0 -1
- package/dist/serialization/bicep/file-layout/reference-wiring.js.map +0 -1
- package/dist/serialization/bicep/index.d.ts.map +0 -1
- package/dist/serialization/bicep/index.js.map +0 -1
- package/dist/serialization/bicep/render.d.ts.map +0 -1
- package/dist/serialization/bicep/render.js.map +0 -1
- package/dist/serialization/encoding.d.ts.map +0 -1
- package/dist/serialization/encoding.js.map +0 -1
- package/dist/serialization/identifiers.d.ts.map +0 -1
- package/dist/serialization/identifiers.js.map +0 -1
- package/dist/serialization/index.d.ts.map +0 -1
- package/dist/serialization/index.js.map +0 -1
- package/dist/serialization/json/deserialize.d.ts.map +0 -1
- package/dist/serialization/json/deserialize.js.map +0 -1
- package/dist/serialization/json/serialize.d.ts.map +0 -1
- package/dist/serialization/json/serialize.js.map +0 -1
- package/dist/serialization/pluralize-config.d.ts.map +0 -1
- package/dist/serialization/pluralize-config.js.map +0 -1
- package/dist/serialization/symbol-map.d.ts.map +0 -1
- package/dist/serialization/symbol-map.js.map +0 -1
- package/dist/shape/shape-registry.d.ts.map +0 -1
- package/dist/shape/shape-registry.js.map +0 -1
- package/dist/shape/shape.d.ts.map +0 -1
- package/dist/shape/shape.js.map +0 -1
- package/dist/shape/value-encoding.d.ts.map +0 -1
- package/dist/shape/value-encoding.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js.map +0 -1
- /package/dist/{constructs → browser/constructs}/built-in-resources/resource-group.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/output.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/parameter.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/parameter.js +0 -0
- /package/dist/{constructs → browser/constructs}/provisioning-component.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/provisioning-component.js +0 -0
- /package/dist/{constructs → browser/constructs}/resource/resource-proxy.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/resource/resource-query.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/resource/resource-registry.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/resource/resource-relationships.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/resource/resource-type-registry.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/resource/resource-type-registry.js +0 -0
- /package/dist/{constructs → browser/constructs}/resource/resource-utils.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/resource/resource.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/stack.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/stack.js +0 -0
- /package/dist/{constructs → browser/constructs}/variable.d.ts +0 -0
- /package/dist/{constructs → browser/constructs}/variable.js +0 -0
- /package/dist/{deployment-context → browser/deployment-context}/deployment-context.d.ts +0 -0
- /package/dist/{deployment-context → browser/deployment-context}/deployment-context.js +0 -0
- /package/dist/{expression → browser/expression}/ast-nodes.d.ts +0 -0
- /package/dist/{expression → browser/expression}/expressions.d.ts +0 -0
- /package/dist/{expression → browser/expression}/utils.d.ts +0 -0
- /package/dist/{expression → browser/expression}/utils.js +0 -0
- /package/dist/{fn.d.ts → browser/fn.d.ts} +0 -0
- /package/dist/{index.d.ts → browser/index.d.ts} +0 -0
- /package/dist/{naming → browser/naming}/name-validation.d.ts +0 -0
- /package/dist/{naming → browser/naming}/naming-policy.d.ts +0 -0
- /package/dist/{naming → browser/naming}/naming-rules.d.ts +0 -0
- /package/dist/{naming → browser/naming}/naming-rules.js +0 -0
- /package/dist/{serialization → browser/serialization}/arm-object-conversion.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/declaration-builder.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/declaration-dependencies.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/expression-builder.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/expression-restorer.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/expression-rewriter.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/expression-walker.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/expression-walker.js +0 -0
- /package/dist/{serialization → browser/serialization}/ast/generated/ast.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/generated/ast.js +0 -0
- /package/dist/{serialization → browser/serialization}/ast/index.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/index.js +0 -0
- /package/dist/{serialization → browser/serialization}/ast/resource-utils.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/ast/resource-utils.js +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/authored-context.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/bicep-namer.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/build-bicep-files.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/deployment-planning.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/deployment-resource-utils.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/file-dependencies.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/file-paths.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/file-preparation.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/file-layout/reference-wiring.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/index.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/index.js +0 -0
- /package/dist/{serialization → browser/serialization}/bicep/render.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/encoding.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/identifiers.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/identifiers.js +0 -0
- /package/dist/{serialization → browser/serialization}/index.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/index.js +0 -0
- /package/dist/{serialization → browser/serialization}/json/deserialize.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/json/serialize.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/pluralize-config.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/pluralize-config.js +0 -0
- /package/dist/{serialization → browser/serialization}/symbol-map.d.ts +0 -0
- /package/dist/{serialization → browser/serialization}/symbol-map.js +0 -0
- /package/dist/{shape → browser/shape}/shape-registry.d.ts +0 -0
- /package/dist/{shape → browser/shape}/shape-registry.js +0 -0
- /package/dist/{shape → browser/shape}/shape.d.ts +0 -0
- /package/dist/{shape → browser/shape}/value-encoding.d.ts +0 -0
- /package/dist/{shape → browser/shape}/value-encoding.js +0 -0
- /package/dist/{types.d.ts → browser/types.d.ts} +0 -0
- /package/dist/{types.js → browser/types.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../src/fn.ts"],"names":[],"mappings":"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"}
|
|
@@ -122,9 +122,7 @@ export function coalesce(left, right) {
|
|
|
122
122
|
// tagged-template call. Used by `concat` to support both `concat("a", "b")`
|
|
123
123
|
// and `` concat`a${x}b` `` forms.
|
|
124
124
|
function isTemplateLiteralArgs(args) {
|
|
125
|
-
return
|
|
126
|
-
"raw" in args[0] &&
|
|
127
|
-
Array.isArray(args[0].raw));
|
|
125
|
+
return Array.isArray(args[0]) && "raw" in args[0] && Array.isArray(args[0].raw);
|
|
128
126
|
}
|
|
129
127
|
// Interleaves a tagged-template's static `strings` with its dynamic `values`,
|
|
130
128
|
// dropping empty leading/trailing static segments so the resulting array is
|
|
@@ -172,11 +170,7 @@ export function substring(value, start, count) {
|
|
|
172
170
|
}
|
|
173
171
|
/** Replaces occurrences of `oldValue` with `newValue` in a string. */
|
|
174
172
|
export function replace(value, oldValue, newValue) {
|
|
175
|
-
return createFunctionCallExpression("replace", [
|
|
176
|
-
value,
|
|
177
|
-
oldValue,
|
|
178
|
-
newValue,
|
|
179
|
-
]);
|
|
173
|
+
return createFunctionCallExpression("replace", [value, oldValue, newValue]);
|
|
180
174
|
}
|
|
181
175
|
/** Splits a string into an array at each occurrence of `delimiter`. */
|
|
182
176
|
export function split(value, delimiter) {
|
|
@@ -208,17 +202,11 @@ export function base64ToJson(value) {
|
|
|
208
202
|
}
|
|
209
203
|
/** Formats a string using indexed placeholders and the supplied values. */
|
|
210
204
|
export function format(formatString, ...values) {
|
|
211
|
-
return createFunctionCallExpression("format", [
|
|
212
|
-
formatString,
|
|
213
|
-
...values,
|
|
214
|
-
]);
|
|
205
|
+
return createFunctionCallExpression("format", [formatString, ...values]);
|
|
215
206
|
}
|
|
216
207
|
/** Returns the last index of `searchString` within a string. */
|
|
217
208
|
export function lastIndexOf(value, searchString) {
|
|
218
|
-
return createFunctionCallExpression("lastIndexOf", [
|
|
219
|
-
value,
|
|
220
|
-
searchString,
|
|
221
|
-
]);
|
|
209
|
+
return createFunctionCallExpression("lastIndexOf", [value, searchString]);
|
|
222
210
|
}
|
|
223
211
|
// ---------------------------------------------------------------------------
|
|
224
212
|
// Unique / ID functions
|
|
@@ -237,18 +225,11 @@ export function resourceId(type, ...names) {
|
|
|
237
225
|
}
|
|
238
226
|
/** Constructs an ID for a subscription-scoped resource. */
|
|
239
227
|
export function subscriptionResourceId(type, ...names) {
|
|
240
|
-
return createFunctionCallExpression("subscriptionResourceId", [
|
|
241
|
-
type,
|
|
242
|
-
...names,
|
|
243
|
-
]);
|
|
228
|
+
return createFunctionCallExpression("subscriptionResourceId", [type, ...names]);
|
|
244
229
|
}
|
|
245
230
|
/** Constructs an extension resource ID relative to `baseId`. */
|
|
246
231
|
export function extensionResourceId(baseId, type, ...names) {
|
|
247
|
-
return createFunctionCallExpression("extensionResourceId", [
|
|
248
|
-
baseId,
|
|
249
|
-
type,
|
|
250
|
-
...names,
|
|
251
|
-
]);
|
|
232
|
+
return createFunctionCallExpression("extensionResourceId", [baseId, type, ...names]);
|
|
252
233
|
}
|
|
253
234
|
// ---------------------------------------------------------------------------
|
|
254
235
|
// Numeric functions
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fn.js","sourceRoot":"","sources":["../../src/fn.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAGL,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,GACb,MAAM,6BAA6B,CAAC;AAErC,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAC9E,oDAAoD;AACpD,MAAM,UAAU,GAAG,CACjB,IAA+B,EAC/B,KAAgC;IAEhC,OAAO,sBAAsB,CAAS,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,GAAG,CACjB,IAA+B,EAC/B,KAAgC;IAEhC,OAAO,sBAAsB,CAAS,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,GAAG,CACjB,IAA+B,EAC/B,KAAgC;IAEhC,OAAO,sBAAsB,CAAS,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,GAAG,CACjB,IAA+B,EAC/B,KAAgC;IAEhC,OAAO,sBAAsB,CAAS,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,GAAG,CACjB,IAA+B,EAC/B,KAAgC;IAEhC,OAAO,sBAAsB,CAAS,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,GAAG,CAAC,KAAgC;IAClD,OAAO,qBAAqB,CAAS,GAAG,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E,6DAA6D;AAC7D,MAAM,UAAU,EAAE,CAChB,IAAgC,EAChC,KAAiC;IAEjC,OAAO,sBAAsB,CAAU,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,GAAG,CACjB,IAAgC,EAChC,KAAiC;IAEjC,OAAO,sBAAsB,CAAU,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,EAAE,CAChB,IAAgC,EAChC,KAAiC;IAEjC,OAAO,sBAAsB,CAAU,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,EAAE,CAChB,IAAgC,EAChC,KAAiC;IAEjC,OAAO,sBAAsB,CAAU,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,GAAG,CACjB,IAAgC,EAChC,KAAiC;IAEjC,OAAO,sBAAsB,CAAU,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,GAAG,CACjB,IAAgC,EAChC,KAAiC;IAEjC,OAAO,sBAAsB,CAAU,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,GAAG,UAAwC;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,YAAY,CAAC,CAAC,CAAC;YAAE,OAAO,CAAwB,CAAC;QACrD,OAAO,qBAAqB,CAAU,GAAG,EAAE,qBAAqB,CAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,GAA+B,UAAU,CAAC,CAAC,CAAE,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,sBAAsB,CAAU,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAA6B,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,UAAwC;IAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,YAAY,CAAC,CAAC,CAAC;YAAE,OAAO,CAAwB,CAAC;QACrD,OAAO,qBAAqB,CAAU,GAAG,EAAE,qBAAqB,CAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,GAA+B,UAAU,CAAC,CAAC,CAAE,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,sBAAsB,CAAU,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAA6B,CAAC;AACvC,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,GAAG,CAAC,KAAiC;IACnD,OAAO,qBAAqB,CAAU,GAAG,EAAE,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,kEAAkE;AAClE,MAAM,UAAU,IAAI,CAClB,SAAqC,EACrC,SAA+B,EAC/B,UAAgC;IAEhC,OAAO,uBAAuB,CAAI,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACtE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,QAAQ,CACtB,IAA0B,EAC1B,KAA2B;IAE3B,OAAO,sBAAsB,CAAI,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,sEAAsE;AACtE,4EAA4E;AAC5E,kCAAkC;AAClC,SAAS,qBAAqB,CAC5B,IAAwB;IAExB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAK,IAAI,CAAC,CAAC,CAAS,IAAI,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,CAAC,CAAS,CAAC,GAAG,CAAC,CAAC;AACpG,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,oCAAoC;AACpC,SAAS,6BAA6B,CACpC,OAA6B,EAC7B,MAA4C;IAE5C,MAAM,MAAM,GAAgC,EAAE,CAAC;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AASD,MAAM,UAAU,MAAM,CACpB,GAAG,IAA0F;IAE7F,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QAClC,OAAO,4BAA4B,CACjC,QAAQ,EACR,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAC/C,CAAC;IACJ,CAAC;IACD,OAAO,4BAA4B,CAAS,QAAQ,EAAE,IAAmC,CAAC,CAAC;AAC7F,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,IAAI,CAClB,KAAgC,EAChC,KAAgC;IAEhC,OAAO,4BAA4B,CAAS,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,OAAO,CAAC,KAAgC;IACtD,OAAO,4BAA4B,CAAS,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,OAAO,CAAC,KAAgC;IACtD,OAAO,4BAA4B,CAAS,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,SAAS,CACvB,KAAgC,EAChC,KAAiC,EACjC,KAAiC;IAEjC,MAAM,IAAI,GAAyC,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,4BAA4B,CAAS,WAAW,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,OAAO,CACrB,KAAgC,EAChC,QAAmC,EACnC,QAAmC;IAEnC,OAAO,4BAA4B,CAAS,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,KAAK,CACnB,KAAgC,EAChC,SAAoC;IAEpC,OAAO,4BAA4B,CAAW,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,IAAI,CAClB,MAAoC,EACpC,SAAoC;IAEpC,OAAO,4BAA4B,CAAS,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,IAAI,CAAC,KAAgC;IACnD,OAAO,4BAA4B,CAAS,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,UAAU,CACxB,KAAgC,EAChC,MAAiC;IAEjC,OAAO,4BAA4B,CAAU,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,QAAQ,CACtB,KAAgC,EAChC,MAAiC;IAEjC,OAAO,4BAA4B,CAAU,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAAC,KAAgC;IACrD,OAAO,4BAA4B,CAAS,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,YAAY,CAAC,KAAgC;IAC3D,OAAO,4BAA4B,CAAU,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,MAAM,CACpB,YAAuC,EACvC,GAAG,MAAoC;IAEvC,OAAO,4BAA4B,CAAS,QAAQ,EAAE,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,WAAW,CACzB,KAAgC,EAChC,YAAuC;IAEvC,OAAO,4BAA4B,CAAS,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAAC,GAAG,MAAmC;IACjE,OAAO,4BAA4B,CAAS,cAAc,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,IAAI,CAAC,GAAG,MAAmC;IACzD,OAAO,4BAA4B,CAAS,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU,CACxB,IAA+B,EAC/B,GAAG,KAAkC;IAErC,OAAO,4BAA4B,CAAS,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,sBAAsB,CACpC,IAA+B,EAC/B,GAAG,KAAkC;IAErC,OAAO,4BAA4B,CAAS,wBAAwB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,mBAAmB,CACjC,MAAiC,EACjC,IAA+B,EAC/B,GAAG,KAAkC;IAErC,OAAO,4BAA4B,CAAS,qBAAqB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,yDAAyD;AACzD,MAAM,UAAU,GAAG,CAAC,KAAiC;IACnD,OAAO,4BAA4B,CAAS,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,GAAG,CAAC,GAAG,MAAmC;IACxD,OAAO,4BAA4B,CAAS,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,GAAG,CAAC,GAAG,MAAmC;IACxD,OAAO,4BAA4B,CAAS,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E,2EAA2E;AAC3E,MAAM,UAAU,MAAM,CAAC,KAAiC;IACtD,OAAO,4BAA4B,CAAS,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,KAAK,CAAC,KAAiC;IACrD,OAAO,4BAA4B,CAAU,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,KAAK,CAAI,GAA2B;IAClD,OAAO,4BAA4B,CAAI,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,IAAI,CAAI,GAA2B;IACjD,OAAO,4BAA4B,CAAI,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,QAAQ,CACtB,SAAqC,EACrC,KAAiC;IAEjC,OAAO,4BAA4B,CAAU,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,OAAO,CACrB,GAA2B,EAC3B,KAA2B;IAE3B,OAAO,4BAA4B,CAAS,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,OAAO,CAAI,GAA6B;IACtD,OAAO,4BAA4B,CAAM,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,SAAS,CACvB,CAAuB,EACvB,CAAuB;IAEvB,OAAO,4BAA4B,CAAQ,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAYD,MAAM,UAAU,KAAK,CACnB,CAA4B,EAC5B,CAA4B;IAE5B,OAAO,4BAA4B,CAAS,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,IAAI,CAClB,GAA2B,EAC3B,KAAgC;IAEhC,OAAO,4BAA4B,CAAM,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,OAAO,CAAI,GAA2B;IACpD,OAAO,4BAA4B,CAAM,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,iDAAiD;AACjD,MAAM,UAAU,IAAI,CAAC,KAAgC;IACnD,OAAO,4BAA4B,CAAU,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,UAAU,CAAC,GAA8B;IACvD,OAAO,4BAA4B,CAAW,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,KAAK,CAAC,GAA8B;IAClD,OAAO,4BAA4B,CAAY,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC;AAsDD,MAAM,UAAU,YAAY,CAC1B,cAA0C;IAE1C,OAAO,4BAA4B,CACjC,cAAc,EACd,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CACrD,CAAC;AACJ,CAAC;AAgBD,MAAM,UAAU,aAAa,CAC3B,GAAG,IAAiC;IAEpC,OAAO,4BAA4B,CAAqB,eAAe,EAAE,IAAI,CAAC,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,4BAA4B,CAAc,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC;AAcD,MAAM,UAAU,eAAe,CAC7B,UAAsC;IAEtC,OAAO,4BAA4B,CACjC,iBAAiB,EACjB,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU;IACxB,OAAO,4BAA4B,CAAU,YAAY,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,WAAW;IACzB,OAAO,4BAA4B,CAAU,aAAa,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n type Expression,\n type ExpressionOrValue,\n createBinaryExpression,\n createFunctionCallExpression,\n createTernaryExpression,\n createUnaryExpression,\n isExpression,\n} from \"./expression/expressions.js\";\n\n// ---------------------------------------------------------------------------\n// Arithmetic operators\n// ---------------------------------------------------------------------------\n/** Adds two numbers as a deploy-time expression. */\nexport function add(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"+\", left, right);\n}\n\n/** Subtracts the right operand from the left at deployment time. */\nexport function sub(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"-\", left, right);\n}\n\n/** Multiplies two numbers at deployment time. */\nexport function mul(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"*\", left, right);\n}\n\n/** Divides the left operand by the right at deployment time. */\nexport function div(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"/\", left, right);\n}\n\n/** Returns the remainder of dividing the left operand by the right. */\nexport function mod(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"%\", left, right);\n}\n\n/** Negates a number at deployment time. */\nexport function neg(value: ExpressionOrValue<number>): Expression<number> {\n return createUnaryExpression<number>(\"-\", value);\n}\n\n// ---------------------------------------------------------------------------\n// Comparison operators\n// ---------------------------------------------------------------------------\n\n/** Tests whether two values are equal at deployment time. */\nexport function eq(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\"==\", left, right);\n}\n\n/** Tests whether two values differ at deployment time. */\nexport function neq(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\"!=\", left, right);\n}\n\n/** Tests whether the left value is greater than the right value. */\nexport function gt(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\">\", left, right);\n}\n\n/** Tests whether the left value is less than the right value. */\nexport function lt(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\"<\", left, right);\n}\n\n/** Tests whether the left value is greater than or equal to the right value. */\nexport function gte(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\">=\", left, right);\n}\n\n/** Tests whether the left value is less than or equal to the right value. */\nexport function lte(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\"<=\", left, right);\n}\n\n// ---------------------------------------------------------------------------\n// Boolean operators\n// ---------------------------------------------------------------------------\n\n/**\n * Logical AND. Accepts 1 … N operands and folds left:\n * `and(a, b, c)` → `(a && b) && c`\n *\n * A single operand is returned as an `Expression<boolean>` (identity).\n */\nexport function and(...conditions: ExpressionOrValue<boolean>[]): Expression<boolean> {\n if (conditions.length === 0) {\n throw new Error(\"and() requires at least one argument\");\n }\n if (conditions.length === 1) {\n const c = conditions[0];\n if (isExpression(c)) return c as Expression<boolean>;\n return createUnaryExpression<boolean>(\"!\", createUnaryExpression<boolean>(\"!\", c));\n }\n let result: ExpressionOrValue<boolean> = conditions[0]!;\n for (let i = 1; i < conditions.length; i++) {\n result = createBinaryExpression<boolean>(\"&&\", result, conditions[i]!);\n }\n return result as Expression<boolean>;\n}\n\n/**\n * Logical OR. Accepts 1 … N operands and folds left:\n * `or(a, b, c)` → `(a || b) || c`\n */\nexport function or(...conditions: ExpressionOrValue<boolean>[]): Expression<boolean> {\n if (conditions.length === 0) {\n throw new Error(\"or() requires at least one argument\");\n }\n if (conditions.length === 1) {\n const c = conditions[0];\n if (isExpression(c)) return c as Expression<boolean>;\n return createUnaryExpression<boolean>(\"!\", createUnaryExpression<boolean>(\"!\", c));\n }\n let result: ExpressionOrValue<boolean> = conditions[0]!;\n for (let i = 1; i < conditions.length; i++) {\n result = createBinaryExpression<boolean>(\"||\", result, conditions[i]!);\n }\n return result as Expression<boolean>;\n}\n\n/** Negates a Boolean value at deployment time. */\nexport function not(value: ExpressionOrValue<boolean>): Expression<boolean> {\n return createUnaryExpression<boolean>(\"!\", value);\n}\n\n// ---------------------------------------------------------------------------\n// Conditional operators\n// ---------------------------------------------------------------------------\n\n/** Selects one of two values based on a deploy-time condition. */\nexport function cond<T>(\n condition: ExpressionOrValue<boolean>,\n trueValue: ExpressionOrValue<T>,\n falseValue: ExpressionOrValue<T>,\n): Expression<T> {\n return createTernaryExpression<T>(condition, trueValue, falseValue);\n}\n\n/** Returns the left value unless it is null, otherwise the right value. */\nexport function coalesce<T>(\n left: ExpressionOrValue<T>,\n right: ExpressionOrValue<T>,\n): Expression<T> {\n return createBinaryExpression<T>(\"??\", left, right);\n}\n\n// ---------------------------------------------------------------------------\n// String functions\n// ---------------------------------------------------------------------------\n\n// Detects the `[TemplateStringsArray, ...values]` shape produced by a\n// tagged-template call. Used by `concat` to support both `concat(\"a\", \"b\")`\n// and `` concat`a${x}b` `` forms.\nfunction isTemplateLiteralArgs(\n args: readonly unknown[],\n): args is [TemplateStringsArray, ...unknown[]] {\n return Array.isArray(args[0]) && \"raw\" in (args[0] as any) && Array.isArray((args[0] as any).raw);\n}\n\n// Interleaves a tagged-template's static `strings` with its dynamic `values`,\n// dropping empty leading/trailing static segments so the resulting array is\n// suitable as `concat()` arguments.\nfunction interleaveTemplateLiteralArgs(\n strings: TemplateStringsArray,\n values: readonly ExpressionOrValue<string>[],\n): ExpressionOrValue<string>[] {\n const result: ExpressionOrValue<string>[] = [];\n for (let i = 0; i < strings.length; i++) {\n const s = strings[i]!;\n if (s !== \"\") {\n result.push(s);\n }\n if (i < values.length) {\n result.push(values[i]!);\n }\n }\n return result;\n}\n\n/** Concatenates strings and expressions in a tagged template. */\nexport function concat(\n strings: TemplateStringsArray,\n ...values: ExpressionOrValue<string>[]\n): Expression<string>;\n/** Concatenates string values and expressions at deployment time. */\nexport function concat(...values: ExpressionOrValue<string>[]): Expression<string>;\nexport function concat(\n ...args: [TemplateStringsArray, ...ExpressionOrValue<string>[]] | ExpressionOrValue<string>[]\n): Expression<string> {\n if (isTemplateLiteralArgs(args)) {\n const [strings, ...values] = args;\n return createFunctionCallExpression<string>(\n \"concat\",\n interleaveTemplateLiteralArgs(strings, values),\n );\n }\n return createFunctionCallExpression<string>(\"concat\", args as ExpressionOrValue<string>[]);\n}\n\n/** Returns the first `count` characters of a string. */\nexport function take(\n value: ExpressionOrValue<string>,\n count: ExpressionOrValue<number>,\n): Expression<string> {\n return createFunctionCallExpression<string>(\"take\", [value, count]);\n}\n\n/** Converts a string to lowercase at deployment time. */\nexport function toLower(value: ExpressionOrValue<string>): Expression<string> {\n return createFunctionCallExpression<string>(\"toLower\", [value]);\n}\n\n/** Converts a string to uppercase at deployment time. */\nexport function toUpper(value: ExpressionOrValue<string>): Expression<string> {\n return createFunctionCallExpression<string>(\"toUpper\", [value]);\n}\n\n/** Returns part of a string, optionally starting at `start` for `count` characters. */\nexport function substring(\n value: ExpressionOrValue<string>,\n start?: ExpressionOrValue<number>,\n count?: ExpressionOrValue<number>,\n): Expression<string> {\n const args: ExpressionOrValue<string | number>[] = [value];\n if (start !== undefined) args.push(start);\n if (count !== undefined) args.push(count);\n return createFunctionCallExpression<string>(\"substring\", args);\n}\n\n/** Replaces occurrences of `oldValue` with `newValue` in a string. */\nexport function replace(\n value: ExpressionOrValue<string>,\n oldValue: ExpressionOrValue<string>,\n newValue: ExpressionOrValue<string>,\n): Expression<string> {\n return createFunctionCallExpression<string>(\"replace\", [value, oldValue, newValue]);\n}\n\n/** Splits a string into an array at each occurrence of `delimiter`. */\nexport function split(\n value: ExpressionOrValue<string>,\n delimiter: ExpressionOrValue<string>,\n): Expression<string[]> {\n return createFunctionCallExpression<string[]>(\"split\", [value, delimiter]);\n}\n\n/** Joins array elements into a string separated by `delimiter`. */\nexport function join(\n values: ExpressionOrValue<unknown[]>,\n delimiter: ExpressionOrValue<string>,\n): Expression<string> {\n return createFunctionCallExpression<string>(\"join\", [values, delimiter]);\n}\n\n/** Removes leading and trailing whitespace from a string. */\nexport function trim(value: ExpressionOrValue<string>): Expression<string> {\n return createFunctionCallExpression<string>(\"trim\", [value]);\n}\n\n/** Tests whether a string begins with `prefix`. */\nexport function startsWith(\n value: ExpressionOrValue<string>,\n prefix: ExpressionOrValue<string>,\n): Expression<boolean> {\n return createFunctionCallExpression<boolean>(\"startsWith\", [value, prefix]);\n}\n\n/** Tests whether a string ends with `suffix`. */\nexport function endsWith(\n value: ExpressionOrValue<string>,\n suffix: ExpressionOrValue<string>,\n): Expression<boolean> {\n return createFunctionCallExpression<boolean>(\"endsWith\", [value, suffix]);\n}\n\n/** Encodes a string as Base64 at deployment time. */\nexport function base64(value: ExpressionOrValue<string>): Expression<string> {\n return createFunctionCallExpression<string>(\"base64\", [value]);\n}\n\n/** Decodes Base64-encoded JSON into a value at deployment time. */\nexport function base64ToJson(value: ExpressionOrValue<string>): Expression<unknown> {\n return createFunctionCallExpression<unknown>(\"base64ToJson\", [value]);\n}\n\n/** Formats a string using indexed placeholders and the supplied values. */\nexport function format(\n formatString: ExpressionOrValue<string>,\n ...values: ExpressionOrValue<unknown>[]\n): Expression<string> {\n return createFunctionCallExpression<string>(\"format\", [formatString, ...values]);\n}\n\n/** Returns the last index of `searchString` within a string. */\nexport function lastIndexOf(\n value: ExpressionOrValue<string>,\n searchString: ExpressionOrValue<string>,\n): Expression<number> {\n return createFunctionCallExpression<number>(\"lastIndexOf\", [value, searchString]);\n}\n\n// ---------------------------------------------------------------------------\n// Unique / ID functions\n// ---------------------------------------------------------------------------\n\n/** Creates a deterministic string from the supplied values. */\nexport function uniqueString(...values: ExpressionOrValue<string>[]): Expression<string> {\n return createFunctionCallExpression<string>(\"uniqueString\", values);\n}\n\n/** Creates a deterministic GUID from the supplied values. */\nexport function guid(...values: ExpressionOrValue<string>[]): Expression<string> {\n return createFunctionCallExpression<string>(\"guid\", values);\n}\n\n/** Constructs a resource ID at the current deployment scope. */\nexport function resourceId(\n type: ExpressionOrValue<string>,\n ...names: ExpressionOrValue<string>[]\n): Expression<string> {\n return createFunctionCallExpression<string>(\"resourceId\", [type, ...names]);\n}\n\n/** Constructs an ID for a subscription-scoped resource. */\nexport function subscriptionResourceId(\n type: ExpressionOrValue<string>,\n ...names: ExpressionOrValue<string>[]\n): Expression<string> {\n return createFunctionCallExpression<string>(\"subscriptionResourceId\", [type, ...names]);\n}\n\n/** Constructs an extension resource ID relative to `baseId`. */\nexport function extensionResourceId(\n baseId: ExpressionOrValue<string>,\n type: ExpressionOrValue<string>,\n ...names: ExpressionOrValue<string>[]\n): Expression<string> {\n return createFunctionCallExpression<string>(\"extensionResourceId\", [baseId, type, ...names]);\n}\n\n// ---------------------------------------------------------------------------\n// Numeric functions\n// ---------------------------------------------------------------------------\n\n/** Converts a value to an integer at deployment time. */\nexport function int(value: ExpressionOrValue<unknown>): Expression<number> {\n return createFunctionCallExpression<number>(\"int\", [value]);\n}\n\n/** Returns the smallest of the supplied numbers. */\nexport function min(...values: ExpressionOrValue<number>[]): Expression<number> {\n return createFunctionCallExpression<number>(\"min\", values);\n}\n\n/** Returns the largest of the supplied numbers. */\nexport function max(...values: ExpressionOrValue<number>[]): Expression<number> {\n return createFunctionCallExpression<number>(\"max\", values);\n}\n\n// ---------------------------------------------------------------------------\n// Array / collection functions\n// ---------------------------------------------------------------------------\n\n/** Returns the length of a string, array, or object at deployment time. */\nexport function length(value: ExpressionOrValue<unknown>): Expression<number> {\n return createFunctionCallExpression<number>(\"length\", [value]);\n}\n\n/** Tests whether a string, array, or object is empty. */\nexport function empty(value: ExpressionOrValue<unknown>): Expression<boolean> {\n return createFunctionCallExpression<boolean>(\"empty\", [value]);\n}\n\n/** Returns the first element of an array. */\nexport function first<T>(arr: ExpressionOrValue<T[]>): Expression<T> {\n return createFunctionCallExpression<T>(\"first\", [arr]);\n}\n\n/** Returns the last element of an array. */\nexport function last<T>(arr: ExpressionOrValue<T[]>): Expression<T> {\n return createFunctionCallExpression<T>(\"last\", [arr]);\n}\n\n/** Tests whether a string, array, or object contains a value or key. */\nexport function contains(\n container: ExpressionOrValue<unknown>,\n value: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createFunctionCallExpression<boolean>(\"contains\", [container, value]);\n}\n\n/** Returns the first index of `value` in an array, or -1 if absent. */\nexport function indexOf<T>(\n arr: ExpressionOrValue<T[]>,\n value: ExpressionOrValue<T>,\n): Expression<number> {\n return createFunctionCallExpression<number>(\"indexOf\", [arr, value]);\n}\n\n/** Flattens one level of nested arrays. */\nexport function flatten<T>(arr: ExpressionOrValue<T[][]>): Expression<T[]> {\n return createFunctionCallExpression<T[]>(\"flatten\", [arr]);\n}\n\n/** Returns the intersection of two arrays or objects. */\nexport function intersect<T, U>(\n a: ExpressionOrValue<T>,\n b: ExpressionOrValue<U>,\n): Expression<T & U> {\n return createFunctionCallExpression<T & U>(\"intersection\", [a, b]);\n}\n\n/** Returns the union of two arrays, with elements from either input. */\nexport function union<TElement, UElement>(\n a: ExpressionOrValue<readonly TElement[]>,\n b: ExpressionOrValue<readonly UElement[]>,\n): Expression<(TElement | UElement)[]>;\n/** Returns the union of two objects, with properties from both inputs. */\nexport function union<T extends object, U extends object>(\n a: T extends readonly unknown[] ? never : ExpressionOrValue<T>,\n b: U extends readonly unknown[] ? never : ExpressionOrValue<U>,\n): Expression<T & U>;\nexport function union(\n a: ExpressionOrValue<object>,\n b: ExpressionOrValue<object>,\n): Expression<object> {\n return createFunctionCallExpression<object>(\"union\", [a, b]);\n}\n\n/** Skips the first `count` elements of an array. */\nexport function skip<T>(\n arr: ExpressionOrValue<T[]>,\n count: ExpressionOrValue<number>,\n): Expression<T[]> {\n return createFunctionCallExpression<T[]>(\"skip\", [arr, count]);\n}\n\n/** Returns an array's elements in reverse order. */\nexport function reverse<T>(arr: ExpressionOrValue<T[]>): Expression<T[]> {\n return createFunctionCallExpression<T[]>(\"reverse\", [arr]);\n}\n\n// ---------------------------------------------------------------------------\n// Object functions\n// ---------------------------------------------------------------------------\n\n/** Parses JSON text into a deploy-time value. */\nexport function json(value: ExpressionOrValue<string>): Expression<unknown> {\n return createFunctionCallExpression<unknown>(\"json\", [value]);\n}\n\n/** Returns the property names of an object. */\nexport function objectKeys(obj: ExpressionOrValue<object>): Expression<string[]> {\n return createFunctionCallExpression<string[]>(\"objectKeys\", [obj]);\n}\n\n/** Returns an object's key/value pairs as an array. */\nexport function items(obj: ExpressionOrValue<object>): Expression<unknown[]> {\n return createFunctionCallExpression<unknown[]>(\"items\", [obj]);\n}\n\n// ---------------------------------------------------------------------------\n// Scope functions\n// ---------------------------------------------------------------------------\n\n/**\n * Typed shape of Bicep's `subscription()` runtime function. Only the\n * properties currently surfaced are listed; extend as needed.\n */\nexport interface SubscriptionScope {\n readonly subscriptionId: string;\n readonly tenantId: string;\n}\n\n/**\n * Typed shape of Bicep's `resourceGroup()` runtime function. Only the\n * properties currently surfaced are listed; extend as needed.\n */\nexport interface ResourceGroupScope {\n readonly name: string;\n readonly location: string;\n readonly id: string;\n}\n\n/**\n * Typed shape of Bicep's `tenant()` runtime function. Only the properties\n * currently surfaced are listed; extend as needed.\n */\nexport interface TenantScope {\n readonly tenantId: string;\n readonly id: string;\n}\n\n/**\n * Typed shape of Bicep's `managementGroup()` runtime function. Only the\n * properties currently surfaced are listed; extend as needed.\n */\nexport interface ManagementGroupScope {\n readonly name: string;\n readonly id: string;\n}\n\n/**\n * Bicep `subscription()` / `subscription(subscriptionId)`.\n *\n * - Zero-arg form returns details about the current subscription.\n * - One-arg form returns a scope object for setting `scope:` on a module\n * or extension resource.\n */\nexport function subscription(): Expression<SubscriptionScope>;\nexport function subscription(\n subscriptionId: ExpressionOrValue<string>,\n): Expression<SubscriptionScope>;\nexport function subscription(\n subscriptionId?: ExpressionOrValue<string>,\n): Expression<SubscriptionScope> {\n return createFunctionCallExpression<SubscriptionScope>(\n \"subscription\",\n subscriptionId === undefined ? [] : [subscriptionId],\n );\n}\n\n/**\n * Bicep `resourceGroup()` / `resourceGroup(name)` /\n * `resourceGroup(subscriptionId, name)`.\n *\n * - Zero-arg form returns details about the current resource group.\n * - One- and two-arg forms return a scope object for setting `scope:` on a\n * module or extension resource.\n */\nexport function resourceGroup(): Expression<ResourceGroupScope>;\nexport function resourceGroup(name: ExpressionOrValue<string>): Expression<ResourceGroupScope>;\nexport function resourceGroup(\n subscriptionId: ExpressionOrValue<string>,\n name: ExpressionOrValue<string>,\n): Expression<ResourceGroupScope>;\nexport function resourceGroup(\n ...args: ExpressionOrValue<string>[]\n): Expression<ResourceGroupScope> {\n return createFunctionCallExpression<ResourceGroupScope>(\"resourceGroup\", args);\n}\n\n/**\n * Bicep `tenant()`. Returns details about the current tenant (or a scope\n * object when placed in `scope:`). Takes no arguments.\n */\nexport function tenant(): Expression<TenantScope> {\n return createFunctionCallExpression<TenantScope>(\"tenant\", []);\n}\n\n/**\n * Bicep `managementGroup()` / `managementGroup(identifier)`.\n *\n * - Zero-arg form is only valid in management-group-scope deployments and\n * returns details about the current management group.\n * - One-arg form returns a scope object for setting `scope:` on a module\n * or extension resource.\n */\nexport function managementGroup(): Expression<ManagementGroupScope>;\nexport function managementGroup(\n identifier: ExpressionOrValue<string>,\n): Expression<ManagementGroupScope>;\nexport function managementGroup(\n identifier?: ExpressionOrValue<string>,\n): Expression<ManagementGroupScope> {\n return createFunctionCallExpression<ManagementGroupScope>(\n \"managementGroup\",\n identifier === undefined ? [] : [identifier],\n );\n}\n\n/** Bicep `deployment()`. Returns information about the current deployment. */\nexport function deployment(): Expression<unknown> {\n return createFunctionCallExpression<unknown>(\"deployment\", []);\n}\n\n/** Bicep `environment()`. Returns information about the Azure environment. */\nexport function environment(): Expression<unknown> {\n return createFunctionCallExpression<unknown>(\"environment\", []);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,9 @@ export { ProvisioningComponent, } from "./constructs/provisioning-component.js";
|
|
|
8
8
|
export { asDiscriminator, isExpression, } from "./expression/expressions.js";
|
|
9
9
|
export * as fn from "./fn.js";
|
|
10
10
|
export { DefaultNamingPolicy, namingRequiredPolicy, } from "./naming/naming-policy.js";
|
|
11
|
-
export {} from "./constructs/resource/resource-query.js";
|
|
12
11
|
export { isResource, isResourceDeclaration, isResourceOf, } from "./constructs/resource/resource-utils.js";
|
|
13
12
|
export { ResourceDeclaration } from "./constructs/resource/resource.js";
|
|
14
13
|
export { deref } from "./constructs/resource/resource-proxy.js";
|
|
15
|
-
export {} from "./constructs/resource/resource.js";
|
|
16
14
|
export { Resource } from "./constructs/resource/resource.js";
|
|
17
15
|
export { INTEGER_SCALAR_NAMES, NUMERIC_SCALAR_NAMES, } from "./shape/value-encoding.js";
|
|
18
16
|
export { ResourceGroup, } from "./constructs/built-in-resources/resource-group.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAOlC,OAAO,EACL,YAAY,EACZ,gBAAgB,GAOjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,mBAAmB,GAKpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EAEd,kBAAkB,GAKnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,qBAAqB,GAEtB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,eAAe,EACf,YAAY,GAQb,MAAM,6BAA6B,CAAC;AAiBrC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GAIrB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,YAAY,GACb,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,KAAK,EAAc,MAAM,yCAAyC,CAAC;AAQ5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAgC7D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAgBrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,aAAa,GAEd,MAAM,mDAAmD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport type {\n PrimitiveTypeMap,\n PrimitiveTypeName,\n TargetScope,\n} from \"./serialization/ast/index.js\";\nexport {\n createOutput,\n OutputCollection,\n type OutputMetadata,\n type OutputOptions,\n type ScalarOutputType,\n type OutputType,\n type OutputValue,\n type OutputValueFor,\n} from \"./constructs/output.js\";\nexport {\n createParameter,\n ParameterCollection,\n type InferParamType,\n type Parameter,\n type ParameterMetadata,\n type ParameterOptions,\n} from \"./constructs/parameter.js\";\nexport {\n createVariable,\n type ExpressionValue,\n VariableCollection,\n type Variable,\n type VariableMetadata,\n type VariableOptions,\n type VariableValue,\n} from \"./constructs/variable.js\";\nexport { Stack, type StackOptions } from \"./constructs/stack.js\";\nexport {\n ProvisioningComponent,\n type ProvisioningComponentConstructor,\n} from \"./constructs/provisioning-component.js\";\nexport type { DeploymentContext } from \"./deployment-context/deployment-context.js\";\nexport {\n asDiscriminator,\n isExpression,\n type Expression,\n type ExpressionBrand,\n type ExpressionOrValue,\n type ExpressionShape,\n type ExpressionTag,\n type InputOf,\n type InputRecord,\n} from \"./expression/expressions.js\";\nexport type {\n ArrayAccessExpressionNode,\n ArrayAccessIndex,\n BinaryExpressionNode,\n BinaryOperator,\n ExpressionNode,\n FunctionCallExpressionNode,\n IdentifierExpressionNode,\n InstanceFunctionCallExpressionNode,\n InterpolatedStringExpressionNode,\n PropertyAccessExpressionNode,\n SymbolicValueExpressionNode,\n TernaryExpressionNode,\n UnaryExpressionNode,\n UnaryOperator,\n} from \"./expression/ast-nodes.js\";\nexport * as fn from \"./fn.js\";\nexport {\n DefaultNamingPolicy,\n namingRequiredPolicy,\n type NamingContext,\n type NamingPolicy,\n type NamingPolicyOptions,\n} from \"./naming/naming-policy.js\";\nexport type { ResourceNamingRules } from \"./naming/naming-rules.js\";\nexport { type QueryOptions } from \"./constructs/resource/resource-query.js\";\nexport {\n isResource,\n isResourceDeclaration,\n isResourceOf,\n} from \"./constructs/resource/resource-utils.js\";\nexport { ResourceDeclaration } from \"./constructs/resource/resource.js\";\nexport { deref, type Deref } from \"./constructs/resource/resource-proxy.js\";\nexport {\n type ScopeExpression,\n type ExistingResourceProps,\n type ResourceProps,\n type ResourceState,\n type ResourceOptions,\n} from \"./constructs/resource/resource.js\";\nexport { Resource } from \"./constructs/resource/resource.js\";\nexport type { ResourceCtor } from \"./constructs/resource/resource-registry.js\";\nexport type {\n FlatVariantPin,\n FlatVariantSelector,\n} from \"./constructs/resource/resource-type-registry.js\";\nexport type {\n AnyShape,\n ArrayShape,\n BooleanLiteralShape,\n BooleanShape,\n BytesShape,\n ContainerShape,\n DateShape,\n DeferredShape,\n DiscriminatedModelShape,\n DiscriminatorNames,\n EnumShape,\n FlatModelShape,\n ModelShape,\n NullShape,\n NumberLiteralShape,\n NumberShape,\n PropertyShape,\n RecordShape,\n StringLiteralShape,\n StringShape,\n TerminalValueShape,\n TupleShape,\n UnionShape,\n ValueShape,\n} from \"./shape/shape.js\";\nexport {\n INTEGER_SCALAR_NAMES,\n NUMERIC_SCALAR_NAMES,\n type BooleanStringEncodingDescriptor,\n type BooleanValueEncodingDescriptor,\n type BytesEncodingDescriptor,\n type BytesValueEncodingDescriptor,\n type DateTimeTextEncodingDescriptor,\n type DateValueEncodingDescriptor,\n type DurationIso8601EncodingDescriptor,\n type DurationNumericEncodingDescriptor,\n type IntegerScalarName,\n type NumberValueEncodingDescriptor,\n type NumericScalarName,\n type NumericStringEncodingDescriptor,\n type PlainDateEncodingDescriptor,\n type StringValueEncodingDescriptor,\n type UnixTimestampEncodingDescriptor,\n} from \"./shape/value-encoding.js\";\nexport type { PropertySegment } from \"./types.js\";\nexport {\n ResourceGroup,\n type ResourceGroupProps,\n} from \"./constructs/built-in-resources/resource-group.js\";\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { renderBicepFiles, type RenderedBicepFile
|
|
1
|
+
export { renderBicepFiles, type RenderedBicepFile } from "./serialization/bicep/index.js";
|
|
2
2
|
export { unwrapExpression, wrapExpression, type InputArray, type InputOf, type InputRecord, type InputTuple, } from "./expression/expressions.js";
|
|
3
3
|
export { unwrapResourceHandle } from "./constructs/resource/resource-proxy.js";
|
|
4
4
|
export type { ResourceProps, SingletonExistingResourceProps, } from "./constructs/resource/resource.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAE1F,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,8BAA8B,GAC/B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,iBAAiB,EACtB,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
export { renderBicepFiles
|
|
3
|
+
export { renderBicepFiles } from "./serialization/bicep/index.js";
|
|
4
4
|
export { unwrapExpression, wrapExpression, } from "./expression/expressions.js";
|
|
5
5
|
export { unwrapResourceHandle } from "./constructs/resource/resource-proxy.js";
|
|
6
6
|
export { createAnyShape, createArrayShape, createBooleanLiteralShape, createBooleanShape, createBytesShape, createDateShape, createDeferredShape, createDiscriminatedModelShape, createEnumShape, createFlatModelShape, createNullShape, createNumberLiteralShape, createNumberShape, createRecordShape, createStringLiteralShape, createStringShape, createTupleShape, createUnionShape, } from "./shape/shape.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,gCAAgC,CAAC;AAE1F,OAAO,EACL,gBAAgB,EAChB,cAAc,GAKf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AA+B/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GAiBrB,MAAM,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { renderBicepFiles, type RenderedBicepFile } from \"./serialization/bicep/index.js\";\n\nexport {\n unwrapExpression,\n wrapExpression,\n type InputArray,\n type InputOf,\n type InputRecord,\n type InputTuple,\n} from \"./expression/expressions.js\";\nexport { unwrapResourceHandle } from \"./constructs/resource/resource-proxy.js\";\nexport type {\n ResourceProps,\n SingletonExistingResourceProps,\n} from \"./constructs/resource/resource.js\";\nexport type {\n AnyShape,\n ArrayShape,\n BooleanLiteralShape,\n BooleanShape,\n BytesShape,\n ContainerShape,\n DateShape,\n DeferredShape,\n DiscriminatedModelShape,\n DiscriminatorNames,\n EnumShape,\n FlatModelShape,\n ModelShape,\n NullShape,\n NumberLiteralShape,\n NumberShape,\n PropertyShape,\n RecordShape,\n StringLiteralShape,\n StringShape,\n TerminalValueShape,\n TupleShape,\n UnionShape,\n ValueShape,\n} from \"./shape/shape.js\";\nexport {\n createAnyShape,\n createArrayShape,\n createBooleanLiteralShape,\n createBooleanShape,\n createBytesShape,\n createDateShape,\n createDeferredShape,\n createDiscriminatedModelShape,\n createEnumShape,\n createFlatModelShape,\n createNullShape,\n createNumberLiteralShape,\n createNumberShape,\n createRecordShape,\n createStringLiteralShape,\n createStringShape,\n createTupleShape,\n createUnionShape,\n} from \"./shape/shape.js\";\nexport type {\n FlatVariantSelection,\n FlatVariantSelector,\n} from \"./constructs/resource/resource-type-registry.js\";\nexport {\n INTEGER_SCALAR_NAMES,\n isIntegerScalarName,\n isNumericScalarName,\n NUMERIC_SCALAR_NAMES,\n type BooleanStringEncodingDescriptor,\n type BooleanValueEncodingDescriptor,\n type BytesEncodingDescriptor,\n type BytesValueEncodingDescriptor,\n type DateTimeTextEncodingDescriptor,\n type DateValueEncodingDescriptor,\n type DurationIso8601EncodingDescriptor,\n type DurationNumericEncodingDescriptor,\n type IntegerScalarName,\n type NumberValueEncodingDescriptor,\n type NumericScalarName,\n type NumericStringEncodingDescriptor,\n type PlainDateEncodingDescriptor,\n type StringValueEncodingDescriptor,\n type UnixTimestampEncodingDescriptor,\n type ValueEncodingDescriptor,\n} from \"./shape/value-encoding.js\";\nexport type { ResourceNamingRules } from \"./naming/naming-rules.js\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-validation.d.ts","sourceRoot":"","sources":["../../../src/naming/name-validation.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AA0DD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,mBAAmB,GAAG,SAAS,EACtC,OAAO,GAAE,6BAAkC,GAC1C,IAAI,CASN"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { isExpressionNode } from "../expression/ast-nodes.js";
|
|
14
14
|
import { isExpression, unwrapExpression } from "../expression/expressions.js";
|
|
15
|
-
import { DEFAULT_NAMING_RULES
|
|
15
|
+
import { DEFAULT_NAMING_RULES } from "./naming-rules.js";
|
|
16
16
|
/**
|
|
17
17
|
* Checks a literal string name against the unified resource rules.
|
|
18
18
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"name-validation.js","sourceRoot":"","sources":["../../../src/naming/name-validation.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Shared resource-name checks for authoring and automatic naming.\n *\n * Literal names are checked against TypeSpec-defined length bounds and a regular\n * expression. Deployment-time expressions are preserved without inspection:\n * their final value is not available during authoring, and partial validation\n * cannot establish whether the deployed name will be valid.\n *\n * These checks neither rewrite explicit names nor check Azure name availability.\n */\n\nimport { isExpressionNode } from \"../expression/ast-nodes.js\";\nimport { isExpression, unwrapExpression } from \"../expression/expressions.js\";\nimport { DEFAULT_NAMING_RULES, type ResourceNamingRules } from \"./naming-rules.js\";\n\nexport interface ResourceNameValidationOptions {\n readonly generated?: boolean;\n}\n\n/**\n * Checks a literal string name against the unified resource rules.\n *\n * The pattern retains its JavaScript matching semantics, including missing\n * anchors, and the pattern and length bounds must pass. Terminal resource\n * constraints apply only to the final slash-separated segment. ARM name\n * structure is left to Bicep and Azure Resource Manager.\n *\n * Safe integer identifiers and deployment-time expressions are preserved without\n * applying string constraints.\n *\n * @returns Literal-name violations; empty for an accepted value.\n * @throws If naming metadata has invalid length bounds, or if\n * a pattern cannot be compiled as a JavaScript regex.\n */\nfunction getResourceNameIssues(value: unknown, rules: ResourceNamingRules): readonly string[] {\n for (const bound of [rules.minLength, rules.maxLength]) {\n if (bound !== undefined && (!Number.isSafeInteger(bound) || bound < 0)) {\n throw new Error(\"Resource naming length bounds must be non-negative safe integers.\");\n }\n }\n if (\n rules.minLength !== undefined &&\n rules.maxLength !== undefined &&\n rules.minLength > rules.maxLength\n ) {\n throw new Error(\"Resource naming minimum length exceeds its maximum length.\");\n }\n const node = isExpression(value) ? unwrapExpression(value) : value;\n if (isExpressionNode(node)) return [];\n if (typeof value === \"number\" && Number.isSafeInteger(value)) {\n return [];\n }\n if (typeof value !== \"string\") {\n return [\"Name must be a string, a safe integer, or an expression.\"];\n }\n\n const literal = value.split(\"/\").at(-1)!;\n const issues: string[] = [];\n if (rules.minLength !== undefined && literal.length < rules.minLength) {\n issues.push(\n `Name must contain at least ${rules.minLength} characters (received ${literal.length}).`,\n );\n }\n if (rules.maxLength !== undefined && literal.length > rules.maxLength) {\n issues.push(\n `Name must contain at most ${rules.maxLength} characters (received ${literal.length}).`,\n );\n }\n const pattern = rules.pattern;\n if (pattern !== undefined && !new RegExp(pattern.regex).test(literal)) {\n issues.push(pattern.message ?? `Name must match ${pattern.regex}.`);\n }\n return issues;\n}\n\n/**\n * Applies throwing validation at resource construction, name assignment,\n * restoration, and naming-policy output boundaries.\n *\n * The resource type identifies the failing declaration in the error. When\n * rules are absent, the default convention only checks the input shape.\n *\n * @throws For invalid literal names or invalid metadata.\n */\nexport function assertValidResourceName(\n value: unknown,\n type: string,\n rules: ResourceNamingRules | undefined,\n options: ResourceNameValidationOptions = {},\n): void {\n const issues = getResourceNameIssues(value, rules ?? DEFAULT_NAMING_RULES);\n const generated = options.generated ?? false;\n if (issues.length > 0) {\n throw new Error(\n `${generated ? \"Cannot generate a compliant name\" : \"Invalid name\"} for '${type}': ` +\n `${issues.join(\" \")}${generated ? \" Provide an explicit name or a compatible naming policy.\" : \"\"}`,\n );\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming-policy.d.ts","sourceRoot":"","sources":["../../../src/naming/naming-policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGnF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,wEAAwE;IACxE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAoB,YAAW,YAAY;;gBAK1C,OAAO,EAAE,mBAAmB;IAIxC,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC;CA0GhE;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,YAOlC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,mBAAmB,GAAG,SAAS,EAC5C,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,iBAAiB,CAAC,MAAM,CAAC,CAW3B"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { RegExpParser } from "@eslint-community/regexpp";
|
|
4
4
|
import { isExpression, unwrapExpression } from "../expression/expressions.js";
|
|
5
5
|
import { concat, subscription, toLower, uniqueString } from "../fn.js";
|
|
6
|
-
import { DEFAULT_NAMING_RULES
|
|
6
|
+
import { DEFAULT_NAMING_RULES } from "./naming-rules.js";
|
|
7
7
|
import { assertValidResourceName } from "./name-validation.js";
|
|
8
8
|
/**
|
|
9
9
|
* Default workload-based naming policy.
|
|
@@ -37,7 +37,7 @@ export class DefaultNamingPolicy {
|
|
|
37
37
|
}
|
|
38
38
|
const sanitize = (segment) => {
|
|
39
39
|
return [...segment]
|
|
40
|
-
.map((character) => alphabet.includes(character) ? character : character.toLowerCase())
|
|
40
|
+
.map((character) => (alphabet.includes(character) ? character : character.toLowerCase()))
|
|
41
41
|
.filter((character) => alphabet.includes(character))
|
|
42
42
|
.join("");
|
|
43
43
|
};
|
|
@@ -222,9 +222,7 @@ function getNamingAlphabet(rules, boundary) {
|
|
|
222
222
|
return alphabet.replace(/[A-Z._-]/g, "");
|
|
223
223
|
const ordered = boundary === "end" ? [...tokens].reverse() : tokens;
|
|
224
224
|
const firstRequired = ordered.findIndex((token) => token.min > 0);
|
|
225
|
-
const candidates = boundary === undefined || firstRequired < 0
|
|
226
|
-
? ordered
|
|
227
|
-
: ordered.slice(0, firstRequired + 1);
|
|
225
|
+
const candidates = boundary === undefined || firstRequired < 0 ? ordered : ordered.slice(0, firstRequired + 1);
|
|
228
226
|
return [...alphabet]
|
|
229
227
|
.filter((character) => candidates.some((token) => token.characters.test(character)))
|
|
230
228
|
.join("");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming-policy.js","sourceRoot":"","sources":["../../../src/naming/naming-policy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { RegExpParser } from \"@eslint-community/regexpp\";\nimport type { ExpressionOrValue } from \"../expression/expressions.js\";\nimport { isExpression, unwrapExpression } from \"../expression/expressions.js\";\nimport { concat, subscription, toLower, uniqueString } from \"../fn.js\";\nimport { DEFAULT_NAMING_RULES, type ResourceNamingRules } from \"./naming-rules.js\";\nimport { assertValidResourceName } from \"./name-validation.js\";\n\nexport interface NamingContext {\n readonly type: string;\n readonly rules: ResourceNamingRules;\n /** Required name segments relative to the actual declaration parent. */\n readonly nameSegments?: number | undefined;\n readonly label?: string | undefined;\n}\n\n/**\n * Strategy for generating Azure resource names when a resource is created\n * without an explicit `name`.\n *\n * Implement this interface to provide a custom naming convention. Two\n * built-in implementations are provided:\n *\n * - {@link DefaultNamingPolicy} — workload-based names with abbreviations,\n * ordinals, and `uniqueString()` for globally-scoped resources.\n * - {@link namingRequiredPolicy} — a singleton that throws if a resource\n * doesn't provide an explicit `name`.\n */\nexport interface NamingPolicy {\n /** Produces a candidate; resource construction validates the returned name. */\n generateName(context: NamingContext): ExpressionOrValue<string>;\n}\n\nexport interface NamingPolicyOptions {\n readonly workload: string;\n readonly environment?: string | undefined;\n readonly region?: string | undefined;\n}\n\n/**\n * Default workload-based naming policy.\n *\n * Generates names by composing the resource type abbreviation, workload,\n * environment, region, label, and an ordinal suffix for repeated types.\n * Global-scope resources get a `uniqueString(subscription().subscriptionId)`\n * suffix to reduce name collisions; Azure name availability is not checked.\n */\nexport class DefaultNamingPolicy implements NamingPolicy {\n readonly #options: NamingPolicyOptions;\n readonly #ordinals = new Map<string, number>();\n readonly #names = new Map<string, Set<string>>();\n\n constructor(options: NamingPolicyOptions) {\n this.#options = options;\n }\n\n generateName(context: NamingContext): ExpressionOrValue<string> {\n const rules = context.rules;\n const nameSegments = context.nameSegments ?? rules.nameSegments ?? 1;\n if (!Number.isSafeInteger(nameSegments) || nameSegments < 1) {\n throw new Error(\"Resource naming segment count must be a positive safe integer.\");\n }\n if (nameSegments > 1) {\n throw new Error(\n `Resource '${context.type}' requires an explicit ${nameSegments}-segment name including its undeclared ancestors.`,\n );\n }\n const ordinal = this.#ordinals.get(context.type) ?? 0;\n const alphabet = getNamingAlphabet(rules);\n const sep = rules.separator ?? (alphabet.includes(\"-\") ? \"-\" : \"\");\n if ([...sep].some((character) => !alphabet.includes(character))) {\n throw new Error(\n `Cannot generate a compliant name for '${context.type}': separator '${sep}' is incompatible with its naming rules.`,\n );\n }\n const sanitize = (segment: string): string => {\n return [...segment]\n .map((character) => (alphabet.includes(character) ? character : character.toLowerCase()))\n .filter((character) => alphabet.includes(character))\n .join(\"\");\n };\n\n const segments: string[] = [];\n if (rules.abbreviation) {\n segments.push(sanitize(rules.abbreviation));\n }\n segments.push(sanitize(this.#options.workload));\n if (this.#options.environment) {\n segments.push(sanitize(this.#options.environment));\n }\n if (this.#options.region) {\n segments.push(sanitize(this.#options.region));\n }\n if (context.label) {\n segments.push(sanitize(context.label));\n }\n const ordinalSuffix = ordinal > 0 ? String(ordinal + 1) : \"\";\n let base = segments.filter(Boolean).join(sep);\n const startingAlphabet = getNamingAlphabet(rules, \"start\");\n const endingAlphabet = getNamingAlphabet(rules, \"end\");\n const padding = startingAlphabet[0];\n if (padding === undefined || endingAlphabet.length === 0) {\n throw new Error(\n `Cannot generate a compliant name for '${context.type}': no supported generation alphabet. Provide an explicit name.`,\n );\n }\n if (base.length > 0 && !startingAlphabet.includes(base[0]!)) {\n base = padding + base;\n }\n // This is a convention budget when TypeSpec supplies no maximum, not a\n // constraint imposed on explicit names.\n const maxLength = rules.maxLength ?? Math.max(24, rules.minLength ?? 0);\n const minLength = rules.minLength ?? 1;\n\n const truncateWithOrdinal = (available: number): string => {\n const ordinalPrefix = ordinalSuffix ? sep : \"\";\n const baseLimit = available - ordinalPrefix.length - ordinalSuffix.length;\n if (baseLimit < 1) {\n throw new Error(\n `Cannot generate a compliant name for '${context.type}': maximum length ${maxLength} cannot accommodate the required suffixes. Provide an explicit name.`,\n );\n }\n return `${base.slice(0, baseLimit)}${ordinalPrefix}${ordinalSuffix}`;\n };\n\n let name: ExpressionOrValue<string>;\n if (rules.scope === \"global\") {\n // Bicep uniqueString() always returns 13 characters. Reserve that suffix\n // and the ordinal before truncating so repeated resources stay unique.\n const uniqueSuffixLength = 13;\n const prefixBudget = maxLength - sep.length - uniqueSuffixLength;\n base = base.padEnd(Math.max(1, minLength - sep.length - uniqueSuffixLength), padding);\n let prefix = truncateWithOrdinal(prefixBudget);\n if (sep && prefix.endsWith(sep)) {\n prefix = prefix.slice(0, -sep.length).padEnd(1, padding);\n }\n prefix = prefix.padEnd(Math.max(1, minLength - sep.length - uniqueSuffixLength), padding);\n name = concat(prefix + sep, uniqueString(subscription().subscriptionId));\n if (!alphabet.includes(\"A\")) name = toLower(name);\n } else {\n base = base.padEnd(minLength, padding);\n let truncated = truncateWithOrdinal(maxLength);\n if (!endingAlphabet.includes(truncated.at(-1)!)) {\n truncated = truncated.slice(0, -1) + endingAlphabet[0]!;\n }\n name = truncated;\n }\n\n const key = JSON.stringify(name, (_key, value: unknown) =>\n isExpression(value) ? unwrapExpression(value) : value,\n );\n const names = this.#names.get(context.type) ?? new Set<string>();\n if (names.has(key)) {\n throw new Error(\n `Cannot generate a distinct name for '${context.type}' within its naming rules. Provide an explicit name.`,\n );\n }\n names.add(key);\n this.#names.set(context.type, names);\n this.#ordinals.set(context.type, ordinal + 1);\n return name;\n }\n}\n\n/**\n * Naming policy that requires every resource to provide an explicit `name`.\n *\n * Throws an error when asked to generate a name. Use this on a stack to\n * disable auto-naming entirely.\n */\nexport const namingRequiredPolicy: NamingPolicy = {\n generateName(context: NamingContext): ExpressionOrValue<string> {\n throw new Error(\n `Resource of type '${context.type}' requires an explicit 'name' ` +\n `(the stack uses 'namingRequiredPolicy').`,\n );\n },\n};\n\n/**\n * Generates and validates a name at the resource construction boundary.\n * Explicit constructor names are validated before declaration registration.\n */\nexport function generateResourceName(\n policy: NamingPolicy,\n type: string,\n namingRules: ResourceNamingRules | undefined,\n nameSegments: number | undefined,\n): ExpressionOrValue<string> {\n const rules = namingRules ?? DEFAULT_NAMING_RULES;\n const generated = policy.generateName({\n type,\n rules,\n nameSegments: nameSegments ?? rules.nameSegments,\n });\n assertValidResourceName(generated, type, rules, {\n generated: true,\n });\n return generated;\n}\n\n/** A candidate character atom and its minimum repetition count. */\ninterface PatternToken {\n readonly characters: RegExp;\n readonly min: number;\n}\n\nconst NAME_ALPHABET = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._\";\nconst patternParser = new RegExpParser();\n\n/**\n * Selects generation tokens from a parsed regex AST. Shapes outside the\n * workload-based convention remain usable for literal-name validation.\n */\nfunction getPatternTokens(regex: string): readonly PatternToken[] | undefined {\n const pattern = patternParser.parsePattern(regex);\n if (pattern.alternatives.length !== 1) return undefined;\n const elements = pattern.alternatives[0]!.elements;\n const start = elements[0];\n const end = elements.at(-1);\n if (start?.type !== \"Assertion\" || start.kind !== \"start\") return undefined;\n const anchored = end?.type === \"Assertion\" && end.kind === \"end\";\n const body = elements.slice(1, anchored ? -1 : undefined);\n const [head, tail] = body;\n // Prefer the separator-free sublanguage of repeated hyphen-separated classes.\n if (\n body.length === 2 &&\n head?.type === \"Quantifier\" &&\n head.min === 1 &&\n head.max === Infinity &&\n head.element.type === \"CharacterClass\" &&\n tail?.type === \"Quantifier\" &&\n tail.min === 0 &&\n tail.max === Infinity &&\n (tail.element.type === \"Group\" || tail.element.type === \"CapturingGroup\") &&\n tail.element.alternatives.length === 1\n ) {\n const repeated = tail.element.alternatives[0]!.elements;\n const [separator, part] = repeated;\n if (\n repeated.length === 2 &&\n separator?.type === \"Character\" &&\n separator.value === 45 &&\n part?.type === \"Quantifier\" &&\n part.min === 1 &&\n part.max === Infinity &&\n part.element.raw === head.element.raw\n ) {\n return [\n { characters: new RegExp(`^(?:${head.element.raw})$`), min: 1 },\n ...(anchored ? [] : [{ characters: /^.$/, min: 0 }]),\n ];\n }\n }\n if (!anchored) return undefined;\n const tokens: PatternToken[] = [];\n for (const element of body) {\n if (element.type === \"Quantifier\" && element.max === 0) continue;\n const atom = element.type === \"Quantifier\" ? element.element : element;\n if (\n atom.type !== \"Character\" &&\n atom.type !== \"CharacterClass\" &&\n atom.type !== \"CharacterSet\"\n ) {\n return undefined;\n }\n tokens.push({\n characters: new RegExp(`^(?:${atom.raw})$`),\n min: element.type === \"Quantifier\" ? element.min : 1,\n });\n if (tokens.length > 128) return undefined;\n }\n return tokens;\n}\n\n/**\n * Selects candidate characters for sanitization, padding, and boundary repair.\n * Candidates are not a validity guarantee; the complete name is still checked.\n */\nfunction getNamingAlphabet(rules: ResourceNamingRules, boundary?: \"start\" | \"end\"): string {\n const alphabet =\n rules.pattern !== undefined\n ? NAME_ALPHABET\n : \"abcdefghijklmnopqrstuvwxyz0123456789\" + (rules.separator ?? \"\");\n if (rules.pattern === undefined || rules.pattern.regex === \"\") {\n return alphabet;\n }\n const tokens = getPatternTokens(rules.pattern.regex);\n if (tokens === undefined) return alphabet.replace(/[A-Z._-]/g, \"\");\n const ordered = boundary === \"end\" ? [...tokens].reverse() : tokens;\n const firstRequired = ordered.findIndex((token) => token.min > 0);\n const candidates =\n boundary === undefined || firstRequired < 0 ? ordered : ordered.slice(0, firstRequired + 1);\n return [...alphabet]\n .filter((character) => candidates.some((token) => token.characters.test(character)))\n .join(\"\");\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming-rules.d.ts","sourceRoot":"","sources":["../../../src/naming/naming-rules.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAG,cAAc,GAAG,QAAQ,CAAC;CACxE;AAED,eAAO,MAAM,oBAAoB,EAAE,mBAIlC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming-rules.js","sourceRoot":"","sources":["../../../src/naming/naming-rules.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAiBlC,MAAM,CAAC,MAAM,oBAAoB,GAAwB;IACvD,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,QAAQ;CAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport interface ResourceNamingRules {\n readonly abbreviation: string;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly pattern?: {\n readonly regex: string;\n readonly message?: string;\n };\n /** Default relative name segments in the generated resource hierarchy. */\n readonly nameSegments?: number;\n readonly separator?: string;\n /** Name uniqueness domain, not deployment scope. */\n readonly scope: \"global\" | \"resourceGroup\" | \"subscription\" | \"parent\";\n}\n\nexport const DEFAULT_NAMING_RULES: ResourceNamingRules = {\n abbreviation: \"\",\n separator: \"\",\n scope: \"global\",\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arm-object-conversion.d.ts","sourceRoot":"","sources":["../../../src/serialization/arm-object-conversion.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,UAAU,EAGhB,MAAM,mBAAmB,CAAC;AAwB3B;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,OAAO,CAAC,MAAM,CAAiB,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BzB;AAmJD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,OAAO,CAAC,MAAM,CAAiB,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8CzB"}
|
|
@@ -106,10 +106,7 @@ function lowerValue(value, shape, visited, path) {
|
|
|
106
106
|
case "tuple":
|
|
107
107
|
if (!Array.isArray(value))
|
|
108
108
|
return value;
|
|
109
|
-
return value.map((item, index) => lowerValue(item, shape.values[index], visited, [
|
|
110
|
-
...path,
|
|
111
|
-
String(index),
|
|
112
|
-
]));
|
|
109
|
+
return value.map((item, index) => lowerValue(item, shape.values[index], visited, [...path, String(index)]));
|
|
113
110
|
default:
|
|
114
111
|
return assertNeverValueShape(shape);
|
|
115
112
|
}
|
|
@@ -125,9 +122,7 @@ function assignPath(target, path, value) {
|
|
|
125
122
|
let cursor = target;
|
|
126
123
|
for (let i = 0; i < path.length - 1; i++) {
|
|
127
124
|
const seg = path[i];
|
|
128
|
-
const existing = Object.prototype.hasOwnProperty.call(cursor, seg)
|
|
129
|
-
? cursor[seg]
|
|
130
|
-
: undefined;
|
|
125
|
+
const existing = Object.prototype.hasOwnProperty.call(cursor, seg) ? cursor[seg] : undefined;
|
|
131
126
|
if (existing === undefined) {
|
|
132
127
|
const next = Object.create(null);
|
|
133
128
|
defineOwn(cursor, seg, next);
|
|
@@ -159,15 +154,16 @@ function deepMerge(a, b, prefix) {
|
|
|
159
154
|
for (const [key, value] of Object.entries(a))
|
|
160
155
|
defineOwn(out, key, value);
|
|
161
156
|
for (const [k, v] of Object.entries(b)) {
|
|
162
|
-
const existing = Object.prototype.hasOwnProperty.call(out, k)
|
|
163
|
-
? out[k]
|
|
164
|
-
: undefined;
|
|
157
|
+
const existing = Object.prototype.hasOwnProperty.call(out, k) ? out[k] : undefined;
|
|
165
158
|
if (existing === undefined) {
|
|
166
159
|
defineOwn(out, k, v);
|
|
167
160
|
continue;
|
|
168
161
|
}
|
|
169
162
|
if (isPlainObject(existing) && isPlainObject(v)) {
|
|
170
|
-
defineOwn(out, k, deepMerge(existing, v, [
|
|
163
|
+
defineOwn(out, k, deepMerge(existing, v, [
|
|
164
|
+
...prefix,
|
|
165
|
+
k,
|
|
166
|
+
]));
|
|
171
167
|
continue;
|
|
172
168
|
}
|
|
173
169
|
throw new Error(`ARM path collision at "${[...prefix, k].join(".")}": cannot merge ${typeof existing} with ${typeof v}.`);
|
|
@@ -284,10 +280,7 @@ function raiseValue(value, shape, visited, path) {
|
|
|
284
280
|
case "tuple":
|
|
285
281
|
if (!Array.isArray(value))
|
|
286
282
|
return value;
|
|
287
|
-
return value.map((item, index) => raiseValue(item, shape.values[index], visited, [
|
|
288
|
-
...path,
|
|
289
|
-
String(index),
|
|
290
|
-
]));
|
|
283
|
+
return value.map((item, index) => raiseValue(item, shape.values[index], visited, [...path, String(index)]));
|
|
291
284
|
default:
|
|
292
285
|
return assertNeverValueShape(shape);
|
|
293
286
|
}
|
|
@@ -305,9 +298,7 @@ function extractPath(obj, path) {
|
|
|
305
298
|
let cursor = obj;
|
|
306
299
|
for (let i = 0; i < path.length - 1; i++) {
|
|
307
300
|
const seg = path[i];
|
|
308
|
-
const next = Object.prototype.hasOwnProperty.call(cursor, seg)
|
|
309
|
-
? cursor[seg]
|
|
310
|
-
: undefined;
|
|
301
|
+
const next = Object.prototype.hasOwnProperty.call(cursor, seg) ? cursor[seg] : undefined;
|
|
311
302
|
if (!isPlainObject(next))
|
|
312
303
|
return MISSING;
|
|
313
304
|
cursor = next;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arm-object-conversion.js","sourceRoot":"","sources":["../../../src/serialization/arm-object-conversion.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Client/ARM object conversion.\n *\n * convertToArmObject maps JS property names to ARM paths, restores flattened\n * nesting, and encodes terminal values using the supplied model shape.\n * convertFromArmObject performs the inverse conversion for deserialization.\n * Both follow nested model, array, and record shapes and preserve unknown\n * keys. Property-access expression lowering lives in the AST expression builder.\n */\n\nimport {\n isTerminalValueShape,\n type ModelShape,\n type ValueShape,\n resolveModelShape,\n} from \"../shape/shape.js\";\nimport { isExpression } from \"../expression/expressions.js\";\nimport { isExpressionNode } from \"../expression/ast-nodes.js\";\nimport { decodeWireValue, encodeWireValue } from \"./encoding.js\";\n\nconst MISSING = Symbol(\"missing\");\n\nfunction assertNeverValueShape(shape: never): never {\n throw new Error(`Unhandled value shape: ${String(shape)}`);\n}\n\n// ---------------------------------------------------------------------------\n// Client object to ARM object\n// ---------------------------------------------------------------------------\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\") return false;\n // Expression proxies are opaque values (despite a null prototype) — they\n // must not be treated as cloneable plain objects.\n if (isExpression(value)) return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\n/**\n * Recursively convert a client object into its ARM wire shape. Keys\n * not present in `shape.byJsName` pass through unchanged. Multi-\n * segment ARM paths (from `@flattenProperty`) re-nest objects; nested\n * models, arrays-of-models and records-of-models recurse via\n * `target`. Empty ARM paths fall back to the JS property name.\n *\n * Collisions where two JS-side keys map to overlapping ARM paths merge\n * when both sides are compatible objects; non-object / object collisions\n * throw.\n */\nexport function convertToArmObject(\n state: Record<string, unknown>,\n shape: ModelShape,\n visited: WeakSet<object> = new WeakSet(),\n): Record<string, unknown> {\n if (visited.has(state)) {\n throw new Error(\"Cycle detected while lowering ARM state.\");\n }\n visited.add(state);\n try {\n const out: Record<string, unknown> = Object.create(null);\n // Select the variant once, from the state we're about to lower —\n // every key below is looked up against that one concrete shape.\n const flat = resolveModelShape(shape, state, \"js\");\n\n for (const [jsKey, rawValue] of Object.entries(state)) {\n const propShape = flat?.byJsName[jsKey];\n const path = propShape?.armPath.length ? propShape.armPath : [jsKey];\n const loweredValue = lowerValue(rawValue, propShape?.value, visited, path);\n\n if (!propShape) {\n // Passthrough: key not in shape (e.g. CDK-internal, or emitter\n // didn't include it).\n assignPath(out, [jsKey], loweredValue);\n continue;\n }\n\n assignPath(out, path, loweredValue);\n }\n\n return out;\n } finally {\n visited.delete(state);\n }\n}\n\nfunction lowerValue(\n value: unknown,\n shape: ValueShape | undefined,\n visited: WeakSet<object>,\n path: readonly string[],\n): unknown {\n if (value === null || value === undefined) return value;\n if (isExpression(value) || isExpressionNode(value)) return value;\n\n if (!shape) {\n return value;\n }\n\n if (isTerminalValueShape(shape)) {\n if (\"encoding\" in shape && shape.encoding) {\n return encodeWireValue(value, shape.encoding, path);\n }\n return value;\n }\n\n switch (shape.kind) {\n case \"deferred\":\n if (!isPlainObject(value)) return value;\n // `convertToArmObject` resolves the variant itself, per property, using\n // `value` as the discriminator source.\n return convertToArmObject(value, shape.value(), visited);\n case \"array\":\n if (!Array.isArray(value)) return value;\n return value.map((item, index) =>\n lowerValue(item, shape.element, visited, [...path, String(index)]),\n );\n case \"record\": {\n if (!isPlainObject(value)) return value;\n const out: Record<string, unknown> = Object.create(null);\n for (const [k, v] of Object.entries(value)) {\n defineOwn(out, k, lowerValue(v, shape.value, visited, [...path, k]));\n }\n return out;\n }\n case \"tuple\":\n if (!Array.isArray(value)) return value;\n return value.map((item, index) =>\n lowerValue(item, shape.values[index], visited, [...path, String(index)]),\n );\n default:\n return assertNeverValueShape(shape);\n }\n}\n\n/**\n * Write `value` into `target` at the given ARM path, deep-merging with\n * existing object values. Throws on non-object/object or\n * object/non-object collisions.\n */\nfunction assignPath(\n target: Record<string, unknown>,\n path: readonly string[],\n value: unknown,\n): void {\n if (path.length === 0) return;\n\n let cursor = target;\n for (let i = 0; i < path.length - 1; i++) {\n const seg = path[i]!;\n const existing = Object.prototype.hasOwnProperty.call(cursor, seg) ? cursor[seg] : undefined;\n if (existing === undefined) {\n const next: Record<string, unknown> = Object.create(null);\n defineOwn(cursor, seg, next);\n cursor = next;\n } else if (isPlainObject(existing)) {\n cursor = existing;\n } else {\n throw new Error(\n `ARM path collision at \"${path.slice(0, i + 1).join(\".\")}\": expected object, got ${typeof existing}.`,\n );\n }\n }\n\n const leafKey = path[path.length - 1]!;\n const existingLeaf = Object.prototype.hasOwnProperty.call(cursor, leafKey)\n ? cursor[leafKey]\n : undefined;\n if (existingLeaf === undefined) {\n defineOwn(cursor, leafKey, value);\n return;\n }\n\n if (isPlainObject(existingLeaf) && isPlainObject(value)) {\n defineOwn(\n cursor,\n leafKey,\n deepMerge(existingLeaf as Record<string, unknown>, value as Record<string, unknown>, path),\n );\n return;\n }\n\n throw new Error(\n `ARM path collision at \"${path.join(\".\")}\": cannot merge ${typeof existingLeaf} with ${typeof value}.`,\n );\n}\n\nfunction deepMerge(\n a: Record<string, unknown>,\n b: Record<string, unknown>,\n prefix: readonly string[],\n): Record<string, unknown> {\n const out: Record<string, unknown> = Object.create(null);\n for (const [key, value] of Object.entries(a)) defineOwn(out, key, value);\n for (const [k, v] of Object.entries(b)) {\n const existing = Object.prototype.hasOwnProperty.call(out, k) ? out[k] : undefined;\n if (existing === undefined) {\n defineOwn(out, k, v);\n continue;\n }\n if (isPlainObject(existing) && isPlainObject(v)) {\n defineOwn(\n out,\n k,\n deepMerge(existing as Record<string, unknown>, v as Record<string, unknown>, [\n ...prefix,\n k,\n ]),\n );\n continue;\n }\n throw new Error(\n `ARM path collision at \"${[...prefix, k].join(\".\")}\": cannot merge ${typeof existing} with ${typeof v}.`,\n );\n }\n return out;\n}\n\nfunction defineOwn(target: Record<string, unknown>, key: string, value: unknown): void {\n Object.defineProperty(target, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n}\n\n// ---------------------------------------------------------------------------\n// ARM object to client object\n// ---------------------------------------------------------------------------\n\n/**\n * Inverse of `convertToArmObject`: walks an ARM object and maps\n * values at each property entry's `armPath` back onto the flat\n * `jsName` key. Recurses into nested model / array / record values via\n * `target`. Empty ARM paths fall back to the JS property name.\n *\n * ARM-shape keys that consumed a nested object entirely (single-segment\n * paths carrying a model `target`) pop that segment from the source\n * so leftovers at intermediate nodes don't silently leak into the\n * output. For multi-segment paths (`@flattenProperty`), only the leaf\n * is extracted; intermediate shared objects may survive as their own\n * top-level entries if the shape also declares a jsName for them.\n *\n * Keys present in the state but not consumed by any property entry\n * pass through unchanged (preserving the \"unknown key\" escape hatch\n * documented in `convertToArmObject`).\n */\nexport function convertFromArmObject(\n state: Record<string, unknown>,\n shape: ModelShape,\n visited: WeakSet<object> = new WeakSet(),\n): Record<string, unknown> {\n if (visited.has(state)) {\n throw new Error(\"Cycle detected while raising ARM state.\");\n }\n visited.add(state);\n try {\n // Wire-shaped input, so the variant is selected against ARM keys.\n const flat = resolveModelShape(shape, state, \"arm\");\n if (!flat) return structuredCloneLike(state, new WeakSet());\n\n // Clone into a mutable working copy so we can prune consumed paths.\n const working: Record<string, unknown> = structuredCloneLike(state, new WeakSet());\n const out: Record<string, unknown> = Object.create(null);\n const consumedTopLevel = new Set<string>();\n\n for (const [jsName, propShape] of Object.entries(flat.byJsName)) {\n const path = propShape.armPath.length > 0 ? propShape.armPath : [jsName];\n const extracted = extractPath(working, path);\n if (extracted === MISSING) continue;\n\n const raised = raiseValue(extracted, propShape.value, visited, path);\n defineOwn(out, jsName, raised);\n\n consumedTopLevel.add(path[0]!);\n }\n\n // Passthrough: anything left in `working` that wasn't consumed by a\n // shape-driven extraction and doesn't collide with an already-\n // placed jsName.\n for (const [k, v] of Object.entries(working)) {\n if (consumedTopLevel.has(k)) {\n // Top-level segment was touched by at least one armPath. If\n // residue remains (e.g. sibling properties the shape didn't\n // cover), surface it under the original ARM key so it's not\n // silently dropped.\n if (isPlainObject(v) && Object.keys(v).length === 0) continue;\n if (v === undefined) continue;\n }\n if (Object.prototype.hasOwnProperty.call(out, k)) continue;\n defineOwn(out, k, v);\n }\n\n return out;\n } finally {\n visited.delete(state);\n }\n}\n\nfunction raiseValue(\n value: unknown,\n shape: ValueShape | undefined,\n visited: WeakSet<object>,\n path: readonly string[],\n): unknown {\n if (value === null || value === undefined) return value;\n if (isExpression(value) || isExpressionNode(value)) return value;\n if (!shape) return value;\n\n if (isTerminalValueShape(shape)) {\n if (\"encoding\" in shape && shape.encoding) {\n return decodeWireValue(value, shape.encoding, path);\n }\n return value;\n }\n\n switch (shape.kind) {\n case \"deferred\":\n if (!isPlainObject(value)) return value;\n // `convertFromArmObject` selects the variant itself, against ARM keys.\n return convertFromArmObject(value, shape.value(), visited);\n case \"array\":\n if (!Array.isArray(value)) return value;\n return value.map((item, index) =>\n raiseValue(item, shape.element, visited, [...path, String(index)]),\n );\n case \"record\": {\n if (!isPlainObject(value)) return value;\n const out: Record<string, unknown> = Object.create(null);\n for (const [k, v] of Object.entries(value)) {\n defineOwn(out, k, raiseValue(v, shape.value, visited, [...path, k]));\n }\n return out;\n }\n case \"tuple\":\n if (!Array.isArray(value)) return value;\n return value.map((item, index) =>\n raiseValue(item, shape.values[index], visited, [...path, String(index)]),\n );\n default:\n return assertNeverValueShape(shape);\n }\n}\n\n/**\n * Walk `obj` along `path`, returning the leaf value and pruning it\n * from the tree. Empty intermediate objects are left in place (caller\n * decides how to treat residue).\n *\n * Returns `MISSING` when any segment is absent or not a plain object.\n */\nfunction extractPath(obj: Record<string, unknown>, path: readonly string[]): unknown {\n if (path.length === 0) return obj;\n\n let cursor: Record<string, unknown> = obj;\n for (let i = 0; i < path.length - 1; i++) {\n const seg = path[i]!;\n const next = Object.prototype.hasOwnProperty.call(cursor, seg) ? cursor[seg] : undefined;\n if (!isPlainObject(next)) return MISSING;\n cursor = next;\n }\n\n const leafKey = path[path.length - 1]!;\n if (!Object.prototype.hasOwnProperty.call(cursor, leafKey)) return MISSING;\n const value = cursor[leafKey];\n delete cursor[leafKey];\n return value;\n}\n\n/**\n * Shallow-clone recursively enough to avoid mutating caller state.\n * We only copy plain objects; arrays and other values are shared\n * (raiseValue handles arrays via `.map` so mutation is contained).\n */\nfunction structuredCloneLike(\n value: Record<string, unknown>,\n seen: WeakSet<object>,\n): Record<string, unknown> {\n if (seen.has(value)) {\n // Preserve the cycle for downstream detection in convertFromArmObject.\n return value;\n }\n seen.add(value);\n const out: Record<string, unknown> = Object.create(null);\n for (const [k, v] of Object.entries(value)) {\n defineOwn(\n out,\n k,\n isExpression(v) || isExpressionNode(v)\n ? v\n : isPlainObject(v)\n ? structuredCloneLike(v, seen)\n : v,\n );\n }\n return out;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declaration-builder.d.ts","sourceRoot":"","sources":["../../../../src/serialization/ast/declaration-builder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,EAAY,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAU3F,OAAO,KAAK,EAIV,SAAS,EACT,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAyJ7D,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAE,oBAAoB,GAC9B,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAsDnC;AA0CD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,SAAS,CAiBtD;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,SAAS,CAarD;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,oBAAoB,GAC9B,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,SAAS,CAyBnD;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,mBAAmB,EAAE,EACzC,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC,CAYvE"}
|
|
@@ -5,7 +5,7 @@ import { definedProps } from "../../util.js";
|
|
|
5
5
|
import { getShape } from "../../shape/shape-registry.js";
|
|
6
6
|
import { isExpression } from "../../expression/expressions.js";
|
|
7
7
|
import { isExpressionNode } from "../../expression/ast-nodes.js";
|
|
8
|
-
import { isResource, isLoopedResource
|
|
8
|
+
import { isResource, isLoopedResource } from "../../constructs/resource/resource-utils.js";
|
|
9
9
|
import { getArmParent, getResourceGroupAncestor, getResourceScope, } from "../../constructs/resource/resource-relationships.js";
|
|
10
10
|
import { convertToArmObject } from "../arm-object-conversion.js";
|
|
11
11
|
import { buildExpressionProperties, buildExpression, } from "./expression-builder.js";
|
|
@@ -105,24 +105,19 @@ function buildResourceProperties(resource, symbolMap) {
|
|
|
105
105
|
// registered for `(type, apiVersion)`. The registry resolves
|
|
106
106
|
// discriminated variants from the instance state. No-op when no
|
|
107
107
|
// shape is registered for this resource type.
|
|
108
|
-
const descriptor = typeof rawResource.type === "string" &&
|
|
109
|
-
typeof rawResource.apiVersion === "string"
|
|
108
|
+
const descriptor = typeof rawResource.type === "string" && typeof rawResource.apiVersion === "string"
|
|
110
109
|
? getShape(rawResource.type, rawResource.apiVersion, rawResource)
|
|
111
110
|
: undefined;
|
|
112
111
|
const userProps = {};
|
|
113
112
|
for (const [key, value] of Object.entries(rawResource)) {
|
|
114
113
|
if (rawResource.existing)
|
|
115
114
|
continue;
|
|
116
|
-
if (value === undefined ||
|
|
117
|
-
RESOURCE_RESERVED_KEYS.has(key) ||
|
|
118
|
-
hasNestedResourceHandle(value)) {
|
|
115
|
+
if (value === undefined || RESOURCE_RESERVED_KEYS.has(key) || hasNestedResourceHandle(value)) {
|
|
119
116
|
continue;
|
|
120
117
|
}
|
|
121
118
|
userProps[key] = value;
|
|
122
119
|
}
|
|
123
|
-
const loweredUserProps = descriptor
|
|
124
|
-
? convertToArmObject(userProps, descriptor)
|
|
125
|
-
: userProps;
|
|
120
|
+
const loweredUserProps = descriptor ? convertToArmObject(userProps, descriptor) : userProps;
|
|
126
121
|
for (const key of Object.keys(loweredUserProps).sort()) {
|
|
127
122
|
properties[key] = buildExpression(loweredUserProps[key], symbolMap);
|
|
128
123
|
}
|
|
@@ -156,9 +151,7 @@ export function buildResourceDeclaration(resource, symbolMap) {
|
|
|
156
151
|
wireValue = {
|
|
157
152
|
kind: "for-expression",
|
|
158
153
|
itemVariable: loopCtx.itemVariable,
|
|
159
|
-
...(loopCtx.indexVariable !== undefined
|
|
160
|
-
? { indexVariable: loopCtx.indexVariable }
|
|
161
|
-
: {}),
|
|
154
|
+
...(loopCtx.indexVariable !== undefined ? { indexVariable: loopCtx.indexVariable } : {}),
|
|
162
155
|
collection: buildExpression(loopCtx.collection, symbolMap),
|
|
163
156
|
body: wireValue,
|
|
164
157
|
};
|