@azure/provisioning-core 1.0.0-beta.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 +6 -0
- package/README.md +49 -10
- package/dist/browser/constructs/built-in-resources/resource-group.d.ts +7 -1
- package/dist/browser/constructs/built-in-resources/resource-group.d.ts.map +1 -1
- package/dist/browser/constructs/built-in-resources/resource-group.js +26 -6
- package/dist/browser/constructs/built-in-resources/resource-group.js.map +1 -1
- package/dist/browser/constructs/output.d.ts +1 -1
- package/dist/browser/constructs/output.d.ts.map +1 -1
- package/dist/browser/constructs/output.js.map +1 -1
- package/dist/browser/constructs/parameter.d.ts +1 -1
- package/dist/browser/constructs/parameter.d.ts.map +1 -1
- package/dist/browser/constructs/parameter.js.map +1 -1
- package/dist/browser/constructs/resource/resource-query.d.ts +3 -1
- package/dist/browser/constructs/resource/resource-query.d.ts.map +1 -1
- package/dist/browser/constructs/resource/resource-query.js +10 -0
- package/dist/browser/constructs/resource/resource-query.js.map +1 -1
- package/dist/browser/constructs/resource/resource-relationships.d.ts +9 -0
- package/dist/browser/constructs/resource/resource-relationships.d.ts.map +1 -0
- package/dist/browser/constructs/resource/resource-relationships.js +35 -0
- package/dist/browser/constructs/resource/resource-relationships.js.map +1 -0
- package/dist/browser/constructs/resource/resource.d.ts +11 -17
- package/dist/browser/constructs/resource/resource.d.ts.map +1 -1
- package/dist/browser/constructs/resource/resource.js +70 -28
- package/dist/browser/constructs/resource/resource.js.map +1 -1
- package/dist/browser/constructs/stack.d.ts +2 -16
- package/dist/browser/constructs/stack.d.ts.map +1 -1
- package/dist/browser/constructs/stack.js +1 -15
- package/dist/browser/constructs/stack.js.map +1 -1
- package/dist/browser/expression/ast-nodes.d.ts +1 -1
- package/dist/browser/expression/ast-nodes.d.ts.map +1 -1
- package/dist/browser/expression/ast-nodes.js.map +1 -1
- package/dist/browser/expression/expressions.d.ts +2 -9
- package/dist/browser/expression/expressions.d.ts.map +1 -1
- package/dist/browser/expression/expressions.js +2 -9
- package/dist/browser/expression/expressions.js.map +1 -1
- package/dist/browser/expression/utils.d.ts +5 -0
- package/dist/browser/expression/utils.d.ts.map +1 -0
- package/dist/browser/expression/utils.js +25 -0
- package/dist/browser/expression/utils.js.map +1 -0
- package/dist/browser/index.d.ts +4 -4
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/internal.d.ts +2 -5
- package/dist/browser/internal.d.ts.map +1 -1
- package/dist/browser/internal.js +1 -3
- package/dist/browser/internal.js.map +1 -1
- package/dist/browser/naming/name-validation.d.ts +15 -0
- package/dist/browser/naming/name-validation.d.ts.map +1 -0
- package/dist/browser/naming/name-validation.js +82 -0
- package/dist/browser/naming/name-validation.js.map +1 -0
- package/dist/browser/naming/naming-policy.d.ts +7 -7
- package/dist/browser/naming/naming-policy.d.ts.map +1 -1
- package/dist/browser/naming/naming-policy.js +166 -33
- package/dist/browser/naming/naming-policy.js.map +1 -1
- package/dist/browser/naming/naming-rules.d.ts +12 -11
- package/dist/browser/naming/naming-rules.d.ts.map +1 -1
- package/dist/browser/naming/naming-rules.js +2 -9
- package/dist/browser/naming/naming-rules.js.map +1 -1
- package/dist/browser/package.json +1 -1
- package/dist/{esm/serialization/json/lower.d.ts → browser/serialization/arm-object-conversion.d.ts} +11 -11
- package/dist/browser/serialization/arm-object-conversion.d.ts.map +1 -0
- package/dist/{esm/serialization/json/lower.js → browser/serialization/arm-object-conversion.js} +20 -20
- package/dist/browser/serialization/arm-object-conversion.js.map +1 -0
- package/dist/browser/serialization/ast/declaration-builder.d.ts +10 -0
- package/dist/browser/serialization/ast/declaration-builder.d.ts.map +1 -0
- package/dist/browser/serialization/ast/declaration-builder.js +265 -0
- package/dist/browser/serialization/ast/declaration-builder.js.map +1 -0
- package/dist/browser/serialization/ast/declaration-dependencies.d.ts +18 -0
- package/dist/browser/serialization/ast/declaration-dependencies.d.ts.map +1 -0
- package/dist/browser/serialization/ast/declaration-dependencies.js +96 -0
- package/dist/browser/serialization/ast/declaration-dependencies.js.map +1 -0
- package/dist/browser/serialization/ast/expression-builder.d.ts +14 -0
- package/dist/browser/serialization/ast/expression-builder.d.ts.map +1 -0
- package/dist/browser/serialization/ast/expression-builder.js +313 -0
- package/dist/browser/serialization/ast/expression-builder.js.map +1 -0
- package/dist/browser/serialization/ast/expression-restorer.d.ts +8 -0
- package/dist/browser/serialization/ast/expression-restorer.d.ts.map +1 -0
- package/dist/browser/serialization/ast/expression-restorer.js +162 -0
- package/dist/browser/serialization/ast/expression-restorer.js.map +1 -0
- package/dist/browser/serialization/ast/expression-rewriter.d.ts +29 -0
- package/dist/browser/serialization/ast/expression-rewriter.d.ts.map +1 -0
- package/dist/browser/serialization/ast/expression-rewriter.js +257 -0
- package/dist/browser/serialization/ast/expression-rewriter.js.map +1 -0
- package/dist/browser/serialization/ast/expression-walker.d.ts +16 -0
- package/dist/browser/serialization/ast/expression-walker.d.ts.map +1 -0
- package/dist/browser/serialization/ast/expression-walker.js +154 -0
- package/dist/browser/serialization/ast/expression-walker.js.map +1 -0
- package/dist/browser/serialization/ast/generated/ast.d.ts.map +1 -0
- package/dist/browser/serialization/ast/generated/ast.js.map +1 -0
- package/dist/browser/serialization/ast/index.d.ts +7 -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 +10 -0
- package/dist/browser/serialization/ast/resource-utils.d.ts.map +1 -0
- package/dist/browser/serialization/ast/resource-utils.js +52 -0
- package/dist/browser/serialization/ast/resource-utils.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/authored-context.d.ts +12 -0
- package/dist/browser/serialization/bicep/file-layout/authored-context.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/authored-context.js +57 -0
- package/dist/browser/serialization/bicep/file-layout/authored-context.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/bicep-namer.d.ts +11 -0
- package/dist/browser/serialization/bicep/file-layout/bicep-namer.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/bicep-namer.js +100 -0
- 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 +7 -0
- package/dist/browser/serialization/bicep/file-layout/build-bicep-files.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/build-bicep-files.js +46 -0
- 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 +19 -0
- package/dist/browser/serialization/bicep/file-layout/deployment-planning.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/deployment-planning.js +68 -0
- 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 +8 -0
- package/dist/browser/serialization/bicep/file-layout/deployment-resource-utils.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/deployment-resource-utils.js +67 -0
- 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 +4 -0
- package/dist/browser/serialization/bicep/file-layout/file-dependencies.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/file-dependencies.js +32 -0
- package/dist/browser/serialization/bicep/file-layout/file-dependencies.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/file-paths.d.ts +3 -0
- package/dist/browser/serialization/bicep/file-layout/file-paths.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/file-paths.js +46 -0
- package/dist/browser/serialization/bicep/file-layout/file-paths.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/file-preparation.d.ts +34 -0
- package/dist/browser/serialization/bicep/file-layout/file-preparation.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/file-preparation.js +140 -0
- package/dist/browser/serialization/bicep/file-layout/file-preparation.js.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/reference-wiring.d.ts +3 -0
- package/dist/browser/serialization/bicep/file-layout/reference-wiring.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/file-layout/reference-wiring.js +225 -0
- package/dist/browser/serialization/bicep/file-layout/reference-wiring.js.map +1 -0
- package/dist/browser/serialization/bicep/index.d.ts +2 -0
- package/dist/browser/serialization/bicep/index.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/index.js +4 -0
- package/dist/browser/serialization/bicep/index.js.map +1 -0
- package/dist/browser/serialization/bicep/render.d.ts +11 -0
- package/dist/browser/serialization/bicep/render.d.ts.map +1 -0
- package/dist/browser/serialization/bicep/render.js +293 -0
- package/dist/browser/serialization/bicep/render.js.map +1 -0
- package/dist/browser/serialization/{json/encoding.d.ts → encoding.d.ts} +1 -1
- package/dist/browser/serialization/encoding.d.ts.map +1 -0
- package/dist/browser/serialization/{json/encoding.js → encoding.js} +2 -12
- package/dist/browser/serialization/encoding.js.map +1 -0
- package/dist/browser/serialization/{json/util.d.ts → identifiers.d.ts} +1 -1
- package/dist/browser/serialization/identifiers.d.ts.map +1 -0
- package/dist/browser/serialization/{json/util.js → identifiers.js} +1 -1
- package/dist/browser/serialization/identifiers.js.map +1 -0
- package/dist/browser/serialization/index.d.ts +1 -1
- package/dist/browser/serialization/index.d.ts.map +1 -1
- package/dist/browser/serialization/index.js.map +1 -1
- package/dist/browser/serialization/json/deserialize.d.ts.map +1 -1
- package/dist/browser/serialization/json/deserialize.js +131 -39
- package/dist/browser/serialization/json/deserialize.js.map +1 -1
- package/dist/browser/serialization/json/serialize.d.ts +1 -1
- package/dist/browser/serialization/json/serialize.d.ts.map +1 -1
- package/dist/browser/serialization/json/serialize.js +5 -360
- package/dist/browser/serialization/json/serialize.js.map +1 -1
- 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 +10 -0
- package/dist/browser/serialization/symbol-map.d.ts.map +1 -0
- package/dist/browser/serialization/symbol-map.js +40 -0
- package/dist/browser/serialization/symbol-map.js.map +1 -0
- package/dist/browser/shape/shape.d.ts +4 -4
- package/dist/browser/shape/shape.js +2 -2
- package/dist/browser/shape/shape.js.map +1 -1
- package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts +7 -1
- package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts.map +1 -1
- package/dist/commonjs/constructs/built-in-resources/resource-group.js +27 -6
- package/dist/commonjs/constructs/built-in-resources/resource-group.js.map +2 -2
- package/dist/commonjs/constructs/output.d.ts +1 -1
- package/dist/commonjs/constructs/output.d.ts.map +1 -1
- package/dist/commonjs/constructs/output.js.map +1 -1
- package/dist/commonjs/constructs/parameter.d.ts +1 -1
- package/dist/commonjs/constructs/parameter.d.ts.map +1 -1
- package/dist/commonjs/constructs/parameter.js.map +1 -1
- package/dist/commonjs/constructs/resource/resource-query.d.ts +3 -1
- package/dist/commonjs/constructs/resource/resource-query.d.ts.map +1 -1
- package/dist/commonjs/constructs/resource/resource-query.js +11 -0
- package/dist/commonjs/constructs/resource/resource-query.js.map +2 -2
- 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.d.ts +11 -17
- package/dist/commonjs/constructs/resource/resource.d.ts.map +1 -1
- package/dist/commonjs/constructs/resource/resource.js +57 -35
- package/dist/commonjs/constructs/resource/resource.js.map +2 -2
- package/dist/commonjs/constructs/stack.d.ts +2 -16
- package/dist/commonjs/constructs/stack.d.ts.map +1 -1
- package/dist/commonjs/constructs/stack.js.map +2 -2
- package/dist/commonjs/expression/ast-nodes.d.ts +1 -1
- package/dist/commonjs/expression/ast-nodes.d.ts.map +1 -1
- package/dist/commonjs/expression/ast-nodes.js.map +1 -1
- package/dist/commonjs/expression/expressions.d.ts +2 -9
- package/dist/commonjs/expression/expressions.d.ts.map +1 -1
- package/dist/commonjs/expression/expressions.js.map +2 -2
- 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/index.d.ts +4 -4
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js.map +2 -2
- package/dist/commonjs/internal.d.ts +2 -5
- package/dist/commonjs/internal.d.ts.map +1 -1
- package/dist/commonjs/internal.js +3 -9
- package/dist/commonjs/internal.js.map +2 -2
- 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 +7 -7
- package/dist/commonjs/naming/naming-policy.d.ts.map +1 -1
- package/dist/commonjs/naming/naming-policy.js +136 -26
- package/dist/commonjs/naming/naming-policy.js.map +2 -2
- package/dist/commonjs/naming/naming-rules.d.ts +12 -11
- package/dist/commonjs/naming/naming-rules.d.ts.map +1 -1
- package/dist/commonjs/naming/naming-rules.js +4 -11
- package/dist/commonjs/naming/naming-rules.js.map +2 -2
- package/dist/commonjs/package.json +1 -1
- package/dist/{browser/serialization/json/lower.d.ts → commonjs/serialization/arm-object-conversion.d.ts} +11 -11
- package/dist/commonjs/serialization/arm-object-conversion.d.ts.map +1 -0
- package/dist/commonjs/serialization/{json/lower.js → arm-object-conversion.js} +15 -15
- 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.map +1 -0
- package/dist/commonjs/serialization/{contract → ast}/generated/ast.js.map +1 -1
- 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/{contract → ast}/index.js +3 -3
- 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/{json/encoding.d.ts → encoding.d.ts} +1 -1
- package/dist/commonjs/serialization/encoding.d.ts.map +1 -0
- package/dist/commonjs/serialization/{json/encoding.js → encoding.js} +2 -12
- package/dist/commonjs/serialization/encoding.js.map +7 -0
- package/dist/commonjs/serialization/{json/util.d.ts → identifiers.d.ts} +1 -1
- package/dist/commonjs/serialization/identifiers.d.ts.map +1 -0
- package/dist/commonjs/serialization/{json/util.js → identifiers.js} +4 -4
- package/dist/commonjs/serialization/{json/util.js.map → identifiers.js.map} +1 -1
- package/dist/commonjs/serialization/index.d.ts +1 -1
- package/dist/commonjs/serialization/index.d.ts.map +1 -1
- package/dist/commonjs/serialization/index.js.map +1 -1
- package/dist/commonjs/serialization/json/deserialize.d.ts.map +1 -1
- package/dist/commonjs/serialization/json/deserialize.js +115 -44
- package/dist/commonjs/serialization/json/deserialize.js.map +2 -2
- package/dist/commonjs/serialization/json/serialize.d.ts +1 -1
- package/dist/commonjs/serialization/json/serialize.d.ts.map +1 -1
- package/dist/commonjs/serialization/json/serialize.js +6 -308
- package/dist/commonjs/serialization/json/serialize.js.map +3 -3
- package/dist/commonjs/serialization/pluralize-config.d.ts.map +1 -0
- package/dist/commonjs/serialization/{json/pluralize-config.js.map → pluralize-config.js.map} +1 -1
- 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.d.ts +4 -4
- package/dist/commonjs/shape/shape.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/esm/constructs/built-in-resources/resource-group.d.ts +7 -1
- package/dist/esm/constructs/built-in-resources/resource-group.d.ts.map +1 -1
- package/dist/esm/constructs/built-in-resources/resource-group.js +26 -6
- package/dist/esm/constructs/built-in-resources/resource-group.js.map +1 -1
- package/dist/esm/constructs/output.d.ts +1 -1
- package/dist/esm/constructs/output.d.ts.map +1 -1
- package/dist/esm/constructs/output.js.map +1 -1
- package/dist/esm/constructs/parameter.d.ts +1 -1
- package/dist/esm/constructs/parameter.d.ts.map +1 -1
- package/dist/esm/constructs/parameter.js.map +1 -1
- package/dist/esm/constructs/resource/resource-query.d.ts +3 -1
- package/dist/esm/constructs/resource/resource-query.d.ts.map +1 -1
- package/dist/esm/constructs/resource/resource-query.js +10 -0
- package/dist/esm/constructs/resource/resource-query.js.map +1 -1
- 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.d.ts +11 -17
- package/dist/esm/constructs/resource/resource.d.ts.map +1 -1
- package/dist/esm/constructs/resource/resource.js +70 -28
- package/dist/esm/constructs/resource/resource.js.map +1 -1
- package/dist/esm/constructs/stack.d.ts +2 -16
- package/dist/esm/constructs/stack.d.ts.map +1 -1
- package/dist/esm/constructs/stack.js +1 -15
- package/dist/esm/constructs/stack.js.map +1 -1
- package/dist/esm/expression/ast-nodes.d.ts +1 -1
- package/dist/esm/expression/ast-nodes.d.ts.map +1 -1
- package/dist/esm/expression/ast-nodes.js.map +1 -1
- package/dist/esm/expression/expressions.d.ts +2 -9
- package/dist/esm/expression/expressions.d.ts.map +1 -1
- package/dist/esm/expression/expressions.js +2 -9
- package/dist/esm/expression/expressions.js.map +1 -1
- 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/index.d.ts +4 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal.d.ts +2 -5
- package/dist/esm/internal.d.ts.map +1 -1
- package/dist/esm/internal.js +1 -3
- package/dist/esm/internal.js.map +1 -1
- 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 +7 -7
- package/dist/esm/naming/naming-policy.d.ts.map +1 -1
- package/dist/esm/naming/naming-policy.js +166 -33
- package/dist/esm/naming/naming-policy.js.map +1 -1
- package/dist/esm/naming/naming-rules.d.ts +12 -11
- package/dist/esm/naming/naming-rules.d.ts.map +1 -1
- package/dist/esm/naming/naming-rules.js +2 -9
- package/dist/esm/naming/naming-rules.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/{commonjs/serialization/json/lower.d.ts → esm/serialization/arm-object-conversion.d.ts} +11 -11
- package/dist/esm/serialization/arm-object-conversion.d.ts.map +1 -0
- package/dist/{browser/serialization/json/lower.js → esm/serialization/arm-object-conversion.js} +20 -20
- 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.map +1 -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.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/{json/encoding.d.ts → encoding.d.ts} +1 -1
- package/dist/esm/serialization/encoding.d.ts.map +1 -0
- package/dist/esm/serialization/{json/encoding.js → encoding.js} +2 -12
- package/dist/esm/serialization/encoding.js.map +1 -0
- package/dist/esm/serialization/{json/util.d.ts → identifiers.d.ts} +1 -1
- package/dist/esm/serialization/identifiers.d.ts.map +1 -0
- package/dist/esm/serialization/{json/util.js → identifiers.js} +1 -1
- package/dist/esm/serialization/identifiers.js.map +1 -0
- package/dist/esm/serialization/index.d.ts +1 -1
- package/dist/esm/serialization/index.d.ts.map +1 -1
- package/dist/esm/serialization/index.js.map +1 -1
- package/dist/esm/serialization/json/deserialize.d.ts.map +1 -1
- package/dist/esm/serialization/json/deserialize.js +131 -39
- package/dist/esm/serialization/json/deserialize.js.map +1 -1
- package/dist/esm/serialization/json/serialize.d.ts +1 -1
- package/dist/esm/serialization/json/serialize.d.ts.map +1 -1
- package/dist/esm/serialization/json/serialize.js +5 -360
- package/dist/esm/serialization/json/serialize.js.map +1 -1
- package/dist/esm/serialization/pluralize-config.d.ts.map +1 -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.d.ts +4 -4
- package/dist/esm/shape/shape.js +2 -2
- package/dist/esm/shape/shape.js.map +1 -1
- package/package.json +3 -2
- package/dist/browser/serialization/contract/generated/ast.d.ts.map +0 -1
- package/dist/browser/serialization/contract/generated/ast.js.map +0 -1
- package/dist/browser/serialization/contract/index.d.ts +0 -2
- package/dist/browser/serialization/contract/index.d.ts.map +0 -1
- package/dist/browser/serialization/contract/index.js.map +0 -1
- package/dist/browser/serialization/json/encoding.d.ts.map +0 -1
- package/dist/browser/serialization/json/encoding.js.map +0 -1
- package/dist/browser/serialization/json/expression.d.ts +0 -32
- package/dist/browser/serialization/json/expression.d.ts.map +0 -1
- package/dist/browser/serialization/json/expression.js +0 -494
- package/dist/browser/serialization/json/expression.js.map +0 -1
- package/dist/browser/serialization/json/lower.d.ts.map +0 -1
- package/dist/browser/serialization/json/lower.js.map +0 -1
- package/dist/browser/serialization/json/pluralize-config.d.ts.map +0 -1
- package/dist/browser/serialization/json/pluralize-config.js.map +0 -1
- package/dist/browser/serialization/json/util.d.ts.map +0 -1
- package/dist/browser/serialization/json/util.js.map +0 -1
- package/dist/browser/serialization/utils.d.ts +0 -3
- package/dist/browser/serialization/utils.d.ts.map +0 -1
- package/dist/browser/serialization/utils.js +0 -146
- package/dist/browser/serialization/utils.js.map +0 -1
- package/dist/commonjs/serialization/contract/generated/ast.d.ts.map +0 -1
- package/dist/commonjs/serialization/contract/index.d.ts +0 -2
- package/dist/commonjs/serialization/contract/index.d.ts.map +0 -1
- package/dist/commonjs/serialization/contract/index.js.map +0 -7
- package/dist/commonjs/serialization/json/encoding.d.ts.map +0 -1
- package/dist/commonjs/serialization/json/encoding.js.map +0 -7
- package/dist/commonjs/serialization/json/expression.d.ts +0 -32
- package/dist/commonjs/serialization/json/expression.d.ts.map +0 -1
- package/dist/commonjs/serialization/json/expression.js +0 -509
- package/dist/commonjs/serialization/json/expression.js.map +0 -7
- package/dist/commonjs/serialization/json/lower.d.ts.map +0 -1
- package/dist/commonjs/serialization/json/lower.js.map +0 -7
- package/dist/commonjs/serialization/json/pluralize-config.d.ts.map +0 -1
- package/dist/commonjs/serialization/json/util.d.ts.map +0 -1
- package/dist/commonjs/serialization/utils.d.ts +0 -3
- package/dist/commonjs/serialization/utils.d.ts.map +0 -1
- package/dist/commonjs/serialization/utils.js +0 -169
- package/dist/commonjs/serialization/utils.js.map +0 -7
- package/dist/esm/serialization/contract/generated/ast.d.ts.map +0 -1
- package/dist/esm/serialization/contract/generated/ast.js.map +0 -1
- package/dist/esm/serialization/contract/index.d.ts +0 -2
- package/dist/esm/serialization/contract/index.d.ts.map +0 -1
- package/dist/esm/serialization/contract/index.js.map +0 -1
- package/dist/esm/serialization/json/encoding.d.ts.map +0 -1
- package/dist/esm/serialization/json/encoding.js.map +0 -1
- package/dist/esm/serialization/json/expression.d.ts +0 -32
- package/dist/esm/serialization/json/expression.d.ts.map +0 -1
- package/dist/esm/serialization/json/expression.js +0 -494
- package/dist/esm/serialization/json/expression.js.map +0 -1
- package/dist/esm/serialization/json/lower.d.ts.map +0 -1
- package/dist/esm/serialization/json/lower.js.map +0 -1
- package/dist/esm/serialization/json/pluralize-config.d.ts.map +0 -1
- package/dist/esm/serialization/json/pluralize-config.js.map +0 -1
- package/dist/esm/serialization/json/util.d.ts.map +0 -1
- package/dist/esm/serialization/json/util.js.map +0 -1
- package/dist/esm/serialization/utils.d.ts +0 -3
- package/dist/esm/serialization/utils.d.ts.map +0 -1
- package/dist/esm/serialization/utils.js +0 -146
- package/dist/esm/serialization/utils.js.map +0 -1
- /package/dist/browser/serialization/{contract → ast}/generated/ast.d.ts +0 -0
- /package/dist/browser/serialization/{contract → ast}/generated/ast.js +0 -0
- /package/dist/browser/serialization/{contract → ast}/index.js +0 -0
- /package/dist/browser/serialization/{json/pluralize-config.d.ts → pluralize-config.d.ts} +0 -0
- /package/dist/browser/serialization/{json/pluralize-config.js → pluralize-config.js} +0 -0
- /package/dist/commonjs/serialization/{contract → ast}/generated/ast.d.ts +0 -0
- /package/dist/commonjs/serialization/{contract → ast}/generated/ast.js +0 -0
- /package/dist/commonjs/serialization/{json/pluralize-config.d.ts → pluralize-config.d.ts} +0 -0
- /package/dist/commonjs/serialization/{json/pluralize-config.js → pluralize-config.js} +0 -0
- /package/dist/esm/serialization/{contract → ast}/generated/ast.d.ts +0 -0
- /package/dist/esm/serialization/{contract → ast}/generated/ast.js +0 -0
- /package/dist/esm/serialization/{contract → ast}/index.js +0 -0
- /package/dist/esm/serialization/{json/pluralize-config.d.ts → pluralize-config.d.ts} +0 -0
- /package/dist/esm/serialization/{json/pluralize-config.js → pluralize-config.js} +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var deployment_resource_utils_exports = {};
|
|
19
|
+
__export(deployment_resource_utils_exports, {
|
|
20
|
+
getTargetScope: () => getTargetScope,
|
|
21
|
+
groupArmResourcesByRoot: () => groupArmResourcesByRoot,
|
|
22
|
+
hasArmParent: () => hasArmParent,
|
|
23
|
+
normalizeExtensionScopes: () => normalizeExtensionScopes
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(deployment_resource_utils_exports);
|
|
26
|
+
var import_resource_group = require("../../../constructs/built-in-resources/resource-group.js");
|
|
27
|
+
var import_resource_utils = require("../../ast/resource-utils.js");
|
|
28
|
+
var import_utils = require("../../../expression/utils.js");
|
|
29
|
+
function groupArmResourcesByRoot(resources, authoredContexts) {
|
|
30
|
+
const armRootByResource = /* @__PURE__ */ new Map();
|
|
31
|
+
function getArmTreeRoot(name) {
|
|
32
|
+
const cached = armRootByResource.get(name);
|
|
33
|
+
if (cached !== void 0) return cached;
|
|
34
|
+
const parent = authoredContexts.get(name).authoredParent;
|
|
35
|
+
const root = parent === void 0 || resources.get(parent).type === import_resource_group.ResourceGroup.resourceType ? name : getArmTreeRoot(parent);
|
|
36
|
+
armRootByResource.set(name, root);
|
|
37
|
+
return root;
|
|
38
|
+
}
|
|
39
|
+
const armResourcesByRoot = /* @__PURE__ */ new Map();
|
|
40
|
+
for (const name of resources.keys()) {
|
|
41
|
+
const root = getArmTreeRoot(name);
|
|
42
|
+
const treeResources = armResourcesByRoot.get(root) ?? /* @__PURE__ */ new Set();
|
|
43
|
+
treeResources.add(name);
|
|
44
|
+
armResourcesByRoot.set(root, treeResources);
|
|
45
|
+
}
|
|
46
|
+
return armResourcesByRoot;
|
|
47
|
+
}
|
|
48
|
+
function hasArmParent(name, resources, authoredContexts) {
|
|
49
|
+
const parent = authoredContexts.get(name).authoredParent;
|
|
50
|
+
return parent !== void 0 && resources.get(parent).type !== import_resource_group.ResourceGroup.resourceType;
|
|
51
|
+
}
|
|
52
|
+
function getTargetScope(scope, fallback) {
|
|
53
|
+
if (scope === void 0) return fallback;
|
|
54
|
+
if (scope.kind !== "function-call" || typeof scope.target !== "string") {
|
|
55
|
+
throw new Error("Unsupported authored deployment scope expression.");
|
|
56
|
+
}
|
|
57
|
+
const target = (0, import_utils.getScopeFunctionTarget)(scope);
|
|
58
|
+
if (target !== void 0) {
|
|
59
|
+
return target;
|
|
60
|
+
}
|
|
61
|
+
throw new Error(`Unsupported deployment scope function "${scope.target}".`);
|
|
62
|
+
}
|
|
63
|
+
function normalizeExtensionScopes(stackAst) {
|
|
64
|
+
for (const [name, resource] of stackAst.resources) {
|
|
65
|
+
const armParentIdentifier = (0, import_resource_utils.getResourceArmParentIdentifier)(resource);
|
|
66
|
+
const armParent = armParentIdentifier === void 0 ? void 0 : stackAst.resources.get(armParentIdentifier);
|
|
67
|
+
if (armParentIdentifier !== void 0 && armParent === void 0) {
|
|
68
|
+
throw new Error(`Missing ARM parent "${armParentIdentifier}" for resource "${name}".`);
|
|
69
|
+
}
|
|
70
|
+
if (armParent !== void 0 && !resource.type.toLowerCase().startsWith(`${armParent.type.toLowerCase()}/`)) {
|
|
71
|
+
stackAst.resources.set(name, {
|
|
72
|
+
...resource,
|
|
73
|
+
value: (0, import_resource_utils.updateResourceBody)(resource.value, (body) => {
|
|
74
|
+
const { parent: target, ...rest } = body.value;
|
|
75
|
+
if (target === void 0) {
|
|
76
|
+
throw new Error(`Missing extension target for "${name}".`);
|
|
77
|
+
}
|
|
78
|
+
return { ...body, value: { scope: target, ...rest } };
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
85
|
+
0 && (module.exports = {
|
|
86
|
+
getTargetScope,
|
|
87
|
+
groupArmResourcesByRoot,
|
|
88
|
+
hasArmParent,
|
|
89
|
+
normalizeExtensionScopes
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=deployment-resource-utils.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/serialization/bicep/file-layout/deployment-resource-utils.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ResourceGroup } from \"../../../constructs/built-in-resources/resource-group.js\";\nimport type { ExpressionNode, ResourceDeclarationNode, TargetScope } from \"../../ast/index.js\";\nimport { getResourceArmParentIdentifier, updateResourceBody } from \"../../ast/resource-utils.js\";\nimport { getScopeFunctionTarget } from \"../../../expression/utils.js\";\nimport type { AuthoredResourceContext } from \"./authored-context.js\";\nimport type { BicepAst } from \"./file-preparation.js\";\n\nexport function groupArmResourcesByRoot(\n resources: ReadonlyMap<string, ResourceDeclarationNode>,\n authoredContexts: ReadonlyMap<string, AuthoredResourceContext>,\n): Map<string, Set<string>> {\n const armRootByResource = new Map<string, string>();\n function getArmTreeRoot(name: string): string {\n const cached = armRootByResource.get(name);\n if (cached !== undefined) return cached;\n const parent = authoredContexts.get(name)!.authoredParent;\n const root =\n parent === undefined || resources.get(parent)!.type === ResourceGroup.resourceType\n ? name\n : getArmTreeRoot(parent);\n armRootByResource.set(name, root);\n return root;\n }\n\n const armResourcesByRoot = new Map<string, Set<string>>();\n for (const name of resources.keys()) {\n const root = getArmTreeRoot(name);\n const treeResources = armResourcesByRoot.get(root) ?? new Set<string>();\n treeResources.add(name);\n armResourcesByRoot.set(root, treeResources);\n }\n return armResourcesByRoot;\n}\n\nexport function hasArmParent(\n name: string,\n resources: ReadonlyMap<string, ResourceDeclarationNode>,\n authoredContexts: ReadonlyMap<string, AuthoredResourceContext>,\n): boolean {\n const parent = authoredContexts.get(name)!.authoredParent;\n return parent !== undefined && resources.get(parent)!.type !== ResourceGroup.resourceType;\n}\n\nexport function getTargetScope(\n scope: ExpressionNode | undefined,\n fallback: TargetScope,\n): TargetScope {\n if (scope === undefined) return fallback;\n if (scope.kind !== \"function-call\" || typeof scope.target !== \"string\") {\n throw new Error(\"Unsupported authored deployment scope expression.\");\n }\n const target = getScopeFunctionTarget(scope);\n if (target !== undefined) {\n return target;\n }\n throw new Error(`Unsupported deployment scope function \"${scope.target}\".`);\n}\n\nexport function normalizeExtensionScopes(stackAst: BicepAst): void {\n // JSON builders preserve ARM parent metadata; Bicep uses scope for extensions.\n for (const [name, resource] of stackAst.resources) {\n const armParentIdentifier = getResourceArmParentIdentifier(resource);\n const armParent =\n armParentIdentifier === undefined ? undefined : stackAst.resources.get(armParentIdentifier);\n if (armParentIdentifier !== undefined && armParent === undefined) {\n throw new Error(`Missing ARM parent \"${armParentIdentifier}\" for resource \"${name}\".`);\n }\n if (\n armParent !== undefined &&\n !resource.type.toLowerCase().startsWith(`${armParent.type.toLowerCase()}/`)\n ) {\n stackAst.resources.set(name, {\n ...resource,\n value: updateResourceBody(resource.value, (body) => {\n const { parent: target, ...rest } = body.value;\n if (target === undefined) {\n throw new Error(`Missing extension target for \"${name}\".`);\n }\n return { ...body, value: { scope: target, ...rest } };\n }),\n });\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,4BAA8B;AAE9B,4BAAmE;AACnE,mBAAuC;AAIhC,SAAS,wBACd,WACA,kBAC0B;AAC1B,QAAM,oBAAoB,oBAAI,IAAoB;AAClD,WAAS,eAAe,MAAsB;AAC5C,UAAM,SAAS,kBAAkB,IAAI,IAAI;AACzC,QAAI,WAAW,OAAW,QAAO;AACjC,UAAM,SAAS,iBAAiB,IAAI,IAAI,EAAG;AAC3C,UAAM,OACJ,WAAW,UAAa,UAAU,IAAI,MAAM,EAAG,SAAS,oCAAc,eAClE,OACA,eAAe,MAAM;AAC3B,sBAAkB,IAAI,MAAM,IAAI;AAChC,WAAO;AAAA,EACT;AAEA,QAAM,qBAAqB,oBAAI,IAAyB;AACxD,aAAW,QAAQ,UAAU,KAAK,GAAG;AACnC,UAAM,OAAO,eAAe,IAAI;AAChC,UAAM,gBAAgB,mBAAmB,IAAI,IAAI,KAAK,oBAAI,IAAY;AACtE,kBAAc,IAAI,IAAI;AACtB,uBAAmB,IAAI,MAAM,aAAa;AAAA,EAC5C;AACA,SAAO;AACT;AAEO,SAAS,aACd,MACA,WACA,kBACS;AACT,QAAM,SAAS,iBAAiB,IAAI,IAAI,EAAG;AAC3C,SAAO,WAAW,UAAa,UAAU,IAAI,MAAM,EAAG,SAAS,oCAAc;AAC/E;AAEO,SAAS,eACd,OACA,UACa;AACb,MAAI,UAAU,OAAW,QAAO;AAChC,MAAI,MAAM,SAAS,mBAAmB,OAAO,MAAM,WAAW,UAAU;AACtE,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AACA,QAAM,aAAS,qCAAuB,KAAK;AAC3C,MAAI,WAAW,QAAW;AACxB,WAAO;AAAA,EACT;AACA,QAAM,IAAI,MAAM,0CAA0C,MAAM,MAAM,IAAI;AAC5E;AAEO,SAAS,yBAAyB,UAA0B;AAEjE,aAAW,CAAC,MAAM,QAAQ,KAAK,SAAS,WAAW;AACjD,UAAM,0BAAsB,sDAA+B,QAAQ;AACnE,UAAM,YACJ,wBAAwB,SAAY,SAAY,SAAS,UAAU,IAAI,mBAAmB;AAC5F,QAAI,wBAAwB,UAAa,cAAc,QAAW;AAChE,YAAM,IAAI,MAAM,uBAAuB,mBAAmB,mBAAmB,IAAI,IAAI;AAAA,IACvF;AACA,QACE,cAAc,UACd,CAAC,SAAS,KAAK,YAAY,EAAE,WAAW,GAAG,UAAU,KAAK,YAAY,CAAC,GAAG,GAC1E;AACA,eAAS,UAAU,IAAI,MAAM;AAAA,QAC3B,GAAG;AAAA,QACH,WAAO,0CAAmB,SAAS,OAAO,CAAC,SAAS;AAClD,gBAAM,EAAE,QAAQ,QAAQ,GAAG,KAAK,IAAI,KAAK;AACzC,cAAI,WAAW,QAAW;AACxB,kBAAM,IAAI,MAAM,iCAAiC,IAAI,IAAI;AAAA,UAC3D;AACA,iBAAO,EAAE,GAAG,MAAM,OAAO,EAAE,OAAO,QAAQ,GAAG,KAAK,EAAE;AAAA,QACtD,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResourceDeclarationNode } from "../../ast/index.js";
|
|
2
|
+
import type { BicepAst } from "./file-preparation.js";
|
|
3
|
+
export declare function resolveFileDependencies(ast: BicepAst, stackAst: BicepAst, lookups: ReadonlyMap<string, ResourceDeclarationNode>): void;
|
|
4
|
+
//# sourceMappingURL=file-dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-dependencies.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/file-dependencies.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,GACpD,IAAI,CA4BN"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var file_dependencies_exports = {};
|
|
19
|
+
__export(file_dependencies_exports, {
|
|
20
|
+
resolveFileDependencies: () => resolveFileDependencies
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(file_dependencies_exports);
|
|
23
|
+
var import_declaration_dependencies = require("../../ast/declaration-dependencies.js");
|
|
24
|
+
function resolveFileDependencies(ast, stackAst, lookups) {
|
|
25
|
+
const declarations = new Map([
|
|
26
|
+
...stackAst.variables,
|
|
27
|
+
...stackAst.parameters,
|
|
28
|
+
...lookups,
|
|
29
|
+
...ast.resources
|
|
30
|
+
]);
|
|
31
|
+
const references = (0, import_declaration_dependencies.collectDependenciesForDeclaration)(
|
|
32
|
+
[...ast.resources.values(), ...ast.outputs.values(), ...ast.modules.values()],
|
|
33
|
+
{ recursive: true, declarations }
|
|
34
|
+
);
|
|
35
|
+
const selectedResources = new Map([...lookups, ...ast.resources]);
|
|
36
|
+
const includedResources = new Set(ast.resources.keys());
|
|
37
|
+
ast.resources.clear();
|
|
38
|
+
for (const name of stackAst.resources.keys()) {
|
|
39
|
+
const resource = selectedResources.get(name);
|
|
40
|
+
if (resource !== void 0 && (includedResources.has(name) || references.has(name))) {
|
|
41
|
+
ast.resources.set(name, resource);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
ast.variables.clear();
|
|
45
|
+
for (const [name, variable] of stackAst.variables) {
|
|
46
|
+
if (references.has(name)) ast.variables.set(name, variable);
|
|
47
|
+
}
|
|
48
|
+
ast.parameters.clear();
|
|
49
|
+
for (const [name, parameter] of stackAst.parameters) {
|
|
50
|
+
if (references.has(name)) ast.parameters.set(name, parameter);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
55
|
+
resolveFileDependencies
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=file-dependencies.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/serialization/bicep/file-layout/file-dependencies.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { collectDependenciesForDeclaration } from \"../../ast/declaration-dependencies.js\";\nimport type { DeclarationNode, ResourceDeclarationNode } from \"../../ast/index.js\";\nimport type { BicepAst } from \"./file-preparation.js\";\n\nexport function resolveFileDependencies(\n ast: BicepAst,\n stackAst: BicepAst,\n lookups: ReadonlyMap<string, ResourceDeclarationNode>,\n): void {\n const declarations = new Map<string, DeclarationNode>([\n ...stackAst.variables,\n ...stackAst.parameters,\n ...lookups,\n ...ast.resources,\n ]);\n const references = collectDependenciesForDeclaration(\n [...ast.resources.values(), ...ast.outputs.values(), ...ast.modules.values()],\n { recursive: true, declarations },\n );\n const selectedResources = new Map([...lookups, ...ast.resources]);\n const includedResources = new Set(ast.resources.keys());\n ast.resources.clear();\n for (const name of stackAst.resources.keys()) {\n const resource = selectedResources.get(name);\n if (resource !== undefined && (includedResources.has(name) || references.has(name))) {\n ast.resources.set(name, resource);\n }\n }\n ast.variables.clear();\n for (const [name, variable] of stackAst.variables) {\n if (references.has(name)) ast.variables.set(name, variable);\n }\n ast.parameters.clear();\n for (const [name, parameter] of stackAst.parameters) {\n if (references.has(name)) ast.parameters.set(name, parameter);\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,sCAAkD;AAI3C,SAAS,wBACd,KACA,UACA,SACM;AACN,QAAM,eAAe,IAAI,IAA6B;AAAA,IACpD,GAAG,SAAS;AAAA,IACZ,GAAG,SAAS;AAAA,IACZ,GAAG;AAAA,IACH,GAAG,IAAI;AAAA,EACT,CAAC;AACD,QAAM,iBAAa;AAAA,IACjB,CAAC,GAAG,IAAI,UAAU,OAAO,GAAG,GAAG,IAAI,QAAQ,OAAO,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC;AAAA,IAC5E,EAAE,WAAW,MAAM,aAAa;AAAA,EAClC;AACA,QAAM,oBAAoB,IAAI,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,SAAS,CAAC;AAChE,QAAM,oBAAoB,IAAI,IAAI,IAAI,UAAU,KAAK,CAAC;AACtD,MAAI,UAAU,MAAM;AACpB,aAAW,QAAQ,SAAS,UAAU,KAAK,GAAG;AAC5C,UAAM,WAAW,kBAAkB,IAAI,IAAI;AAC3C,QAAI,aAAa,WAAc,kBAAkB,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,IAAI;AACnF,UAAI,UAAU,IAAI,MAAM,QAAQ;AAAA,IAClC;AAAA,EACF;AACA,MAAI,UAAU,MAAM;AACpB,aAAW,CAAC,MAAM,QAAQ,KAAK,SAAS,WAAW;AACjD,QAAI,WAAW,IAAI,IAAI,EAAG,KAAI,UAAU,IAAI,MAAM,QAAQ;AAAA,EAC5D;AACA,MAAI,WAAW,MAAM;AACrB,aAAW,CAAC,MAAM,SAAS,KAAK,SAAS,YAAY;AACnD,QAAI,WAAW,IAAI,IAAI,EAAG,KAAI,WAAW,IAAI,MAAM,SAAS;AAAA,EAC9D;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-paths.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/file-paths.ts"],"names":[],"mappings":"AAsBA,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAmBnE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var file_paths_exports = {};
|
|
19
|
+
__export(file_paths_exports, {
|
|
20
|
+
joinFilePath: () => joinFilePath,
|
|
21
|
+
relativeImportPath: () => relativeImportPath
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(file_paths_exports);
|
|
24
|
+
function parseFilePath(path) {
|
|
25
|
+
const normalized = path.replace(/\\/g, "/");
|
|
26
|
+
const root = normalized.match(/^(?:[A-Za-z]:)?\//)?.[0] ?? "";
|
|
27
|
+
const segments = [];
|
|
28
|
+
for (const segment of normalized.slice(root.length).split("/")) {
|
|
29
|
+
if (segment === "" || segment === ".") continue;
|
|
30
|
+
if (segment === "..") {
|
|
31
|
+
if (segments.length > 0 && segments.at(-1) !== "..") {
|
|
32
|
+
segments.pop();
|
|
33
|
+
} else if (root === "") {
|
|
34
|
+
segments.push(segment);
|
|
35
|
+
}
|
|
36
|
+
} else {
|
|
37
|
+
segments.push(segment);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return { root, segments };
|
|
41
|
+
}
|
|
42
|
+
function joinFilePath(directory, fileName) {
|
|
43
|
+
const { root, segments } = parseFilePath(
|
|
44
|
+
directory === "" ? fileName : `${directory}/${fileName}`
|
|
45
|
+
);
|
|
46
|
+
return root + segments.join("/");
|
|
47
|
+
}
|
|
48
|
+
function relativeImportPath(from, to) {
|
|
49
|
+
const source = parseFilePath(from);
|
|
50
|
+
const target = parseFilePath(to);
|
|
51
|
+
if (source.root !== target.root) {
|
|
52
|
+
throw new Error(`Cannot reference file "${to}" from "${from}" across different path roots.`);
|
|
53
|
+
}
|
|
54
|
+
source.segments.pop();
|
|
55
|
+
let commonSegments = 0;
|
|
56
|
+
while (commonSegments < source.segments.length && source.segments[commonSegments] === target.segments[commonSegments]) {
|
|
57
|
+
commonSegments++;
|
|
58
|
+
}
|
|
59
|
+
const relative = [
|
|
60
|
+
...source.segments.slice(commonSegments).map(() => ".."),
|
|
61
|
+
...target.segments.slice(commonSegments)
|
|
62
|
+
].join("/");
|
|
63
|
+
return relative === ".." || relative.startsWith("../") ? relative : `./${relative}`;
|
|
64
|
+
}
|
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
+
0 && (module.exports = {
|
|
67
|
+
joinFilePath,
|
|
68
|
+
relativeImportPath
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=file-paths.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/serialization/bicep/file-layout/file-paths.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nfunction parseFilePath(path: string): { root: string; segments: string[] } {\n const normalized = path.replace(/\\\\/g, \"/\");\n const root = normalized.match(/^(?:[A-Za-z]:)?\\//)?.[0] ?? \"\";\n const segments: string[] = [];\n for (const segment of normalized.slice(root.length).split(\"/\")) {\n if (segment === \"\" || segment === \".\") continue;\n if (segment === \"..\") {\n if (segments.length > 0 && segments.at(-1) !== \"..\") {\n segments.pop();\n } else if (root === \"\") {\n segments.push(segment);\n }\n } else {\n segments.push(segment);\n }\n }\n return { root, segments };\n}\n\nexport function joinFilePath(directory: string, fileName: string): string {\n const { root, segments } = parseFilePath(\n directory === \"\" ? fileName : `${directory}/${fileName}`,\n );\n return root + segments.join(\"/\");\n}\n\nexport function relativeImportPath(from: string, to: string): string {\n const source = parseFilePath(from);\n const target = parseFilePath(to);\n if (source.root !== target.root) {\n throw new Error(`Cannot reference file \"${to}\" from \"${from}\" across different path roots.`);\n }\n source.segments.pop();\n let commonSegments = 0;\n while (\n commonSegments < source.segments.length &&\n source.segments[commonSegments] === target.segments[commonSegments]\n ) {\n commonSegments++;\n }\n const relative = [\n ...source.segments.slice(commonSegments).map(() => \"..\"),\n ...target.segments.slice(commonSegments),\n ].join(\"/\");\n return relative === \"..\" || relative.startsWith(\"../\") ? relative : `./${relative}`;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,SAAS,cAAc,MAAoD;AACzE,QAAM,aAAa,KAAK,QAAQ,OAAO,GAAG;AAC1C,QAAM,OAAO,WAAW,MAAM,mBAAmB,IAAI,CAAC,KAAK;AAC3D,QAAM,WAAqB,CAAC;AAC5B,aAAW,WAAW,WAAW,MAAM,KAAK,MAAM,EAAE,MAAM,GAAG,GAAG;AAC9D,QAAI,YAAY,MAAM,YAAY,IAAK;AACvC,QAAI,YAAY,MAAM;AACpB,UAAI,SAAS,SAAS,KAAK,SAAS,GAAG,EAAE,MAAM,MAAM;AACnD,iBAAS,IAAI;AAAA,MACf,WAAW,SAAS,IAAI;AACtB,iBAAS,KAAK,OAAO;AAAA,MACvB;AAAA,IACF,OAAO;AACL,eAAS,KAAK,OAAO;AAAA,IACvB;AAAA,EACF;AACA,SAAO,EAAE,MAAM,SAAS;AAC1B;AAEO,SAAS,aAAa,WAAmB,UAA0B;AACxE,QAAM,EAAE,MAAM,SAAS,IAAI;AAAA,IACzB,cAAc,KAAK,WAAW,GAAG,SAAS,IAAI,QAAQ;AAAA,EACxD;AACA,SAAO,OAAO,SAAS,KAAK,GAAG;AACjC;AAEO,SAAS,mBAAmB,MAAc,IAAoB;AACnE,QAAM,SAAS,cAAc,IAAI;AACjC,QAAM,SAAS,cAAc,EAAE;AAC/B,MAAI,OAAO,SAAS,OAAO,MAAM;AAC/B,UAAM,IAAI,MAAM,0BAA0B,EAAE,WAAW,IAAI,gCAAgC;AAAA,EAC7F;AACA,SAAO,SAAS,IAAI;AACpB,MAAI,iBAAiB;AACrB,SACE,iBAAiB,OAAO,SAAS,UACjC,OAAO,SAAS,cAAc,MAAM,OAAO,SAAS,cAAc,GAClE;AACA;AAAA,EACF;AACA,QAAM,WAAW;AAAA,IACf,GAAG,OAAO,SAAS,MAAM,cAAc,EAAE,IAAI,MAAM,IAAI;AAAA,IACvD,GAAG,OAAO,SAAS,MAAM,cAAc;AAAA,EACzC,EAAE,KAAK,GAAG;AACV,SAAO,aAAa,QAAQ,SAAS,WAAW,KAAK,IAAI,WAAW,KAAK,QAAQ;AACnF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ExpressionNode, type ModuleDeclarationNode, type OutputDeclarationNode, type ParameterDeclarationNode, type ResourceDeclarationNode, type TargetScope, type VariableDeclarationNode } from "../../ast/index.js";
|
|
2
|
+
import type { AuthoredResourceContext } from "./authored-context.js";
|
|
3
|
+
import { BicepNamer } from "./bicep-namer.js";
|
|
4
|
+
import type { DeploymentLayout } from "./deployment-planning.js";
|
|
5
|
+
export interface BicepAst {
|
|
6
|
+
readonly targetScope: TargetScope;
|
|
7
|
+
readonly resources: Map<string, ResourceDeclarationNode>;
|
|
8
|
+
readonly parameters: Map<string, ParameterDeclarationNode>;
|
|
9
|
+
readonly variables: Map<string, VariableDeclarationNode>;
|
|
10
|
+
readonly outputs: Map<string, OutputDeclarationNode>;
|
|
11
|
+
readonly modules: Map<string, ModuleDeclarationNode>;
|
|
12
|
+
}
|
|
13
|
+
export interface PreparedBicepFile {
|
|
14
|
+
readonly fileName: string;
|
|
15
|
+
readonly targetScope: TargetScope;
|
|
16
|
+
readonly ast: BicepAst;
|
|
17
|
+
}
|
|
18
|
+
export interface PreparedModule {
|
|
19
|
+
readonly file: PreparedBicepFile;
|
|
20
|
+
readonly assignedResources: ReadonlySet<string>;
|
|
21
|
+
readonly moduleScope: ExpressionNode | undefined;
|
|
22
|
+
readonly moduleName: string;
|
|
23
|
+
readonly namer: BicepNamer;
|
|
24
|
+
readonly outputNames: Map<string, string>;
|
|
25
|
+
}
|
|
26
|
+
export interface PreparedDeploymentFiles {
|
|
27
|
+
readonly stackAst: BicepAst;
|
|
28
|
+
readonly entry: PreparedBicepFile;
|
|
29
|
+
readonly entryAssignedResources: ReadonlySet<string>;
|
|
30
|
+
readonly modules: readonly PreparedModule[];
|
|
31
|
+
readonly entryExistingResourceCandidates: ReadonlyMap<string, ResourceDeclarationNode>;
|
|
32
|
+
}
|
|
33
|
+
export declare function prepareDeploymentFiles(stackName: string, stackAst: BicepAst, authoredContexts: ReadonlyMap<string, AuthoredResourceContext>, layout: DeploymentLayout, stackNamer: BicepNamer): PreparedDeploymentFiles;
|
|
34
|
+
//# sourceMappingURL=file-preparation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-preparation.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/file-preparation.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAsB,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIrF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACzD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC3D,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAClC,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,+BAA+B,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACxF;AA4FD,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,EAC9D,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,UAAU,GACrB,uBAAuB,CAmHzB"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var file_preparation_exports = {};
|
|
19
|
+
__export(file_preparation_exports, {
|
|
20
|
+
prepareDeploymentFiles: () => prepareDeploymentFiles
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(file_preparation_exports);
|
|
23
|
+
var import_resource_utils = require("../../ast/resource-utils.js");
|
|
24
|
+
var import_deployment_resource_utils = require("./deployment-resource-utils.js");
|
|
25
|
+
var import_bicep_namer = require("./bicep-namer.js");
|
|
26
|
+
var import_file_dependencies = require("./file-dependencies.js");
|
|
27
|
+
var import_file_paths = require("./file-paths.js");
|
|
28
|
+
function createFile(fileName, targetScope, selectedResources, stackAst, includeOutputs) {
|
|
29
|
+
const ast = {
|
|
30
|
+
targetScope,
|
|
31
|
+
resources: /* @__PURE__ */ new Map(),
|
|
32
|
+
parameters: /* @__PURE__ */ new Map(),
|
|
33
|
+
variables: /* @__PURE__ */ new Map(),
|
|
34
|
+
modules: /* @__PURE__ */ new Map(),
|
|
35
|
+
outputs: new Map(includeOutputs ? stackAst.outputs : [])
|
|
36
|
+
};
|
|
37
|
+
for (const [name, resource] of stackAst.resources) {
|
|
38
|
+
if (selectedResources.has(name)) ast.resources.set(name, resource);
|
|
39
|
+
}
|
|
40
|
+
return { fileName, targetScope, ast };
|
|
41
|
+
}
|
|
42
|
+
function resourceFileName(stackName, name) {
|
|
43
|
+
return (0, import_file_paths.joinFilePath)(stackName, `${name}.bicep`);
|
|
44
|
+
}
|
|
45
|
+
function getExistingResourceCandidatesForPlan(plan, stackAst, authoredContexts, layout) {
|
|
46
|
+
const {
|
|
47
|
+
entryPlan,
|
|
48
|
+
pureExistingResources,
|
|
49
|
+
existingResourceToAuthoredResourceGroup,
|
|
50
|
+
existingResourcesWithExplicitScope
|
|
51
|
+
} = layout;
|
|
52
|
+
const result = /* @__PURE__ */ new Map();
|
|
53
|
+
for (const [name, resource] of stackAst.resources) {
|
|
54
|
+
if (!pureExistingResources.has(name)) continue;
|
|
55
|
+
if (plan !== entryPlan) {
|
|
56
|
+
let passThroughExplicitScope = false;
|
|
57
|
+
for (let ancestor = name; ancestor !== void 0; ancestor = authoredContexts.get(ancestor).authoredParent) {
|
|
58
|
+
if (authoredContexts.get(ancestor).scopeOrigin === "pass-through-explicit") {
|
|
59
|
+
passThroughExplicitScope = true;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (passThroughExplicitScope) continue;
|
|
64
|
+
}
|
|
65
|
+
if (plan !== entryPlan && (existingResourceToAuthoredResourceGroup.get(name) !== plan.authoredResourceGroup || plan.boundary !== void 0 && authoredContexts.get(plan.boundary).scopeOrigin === "existing-explicit" || plan.authoredResourceGroup === void 0 && plan.moduleScope !== void 0 || existingResourcesWithExplicitScope.has(name) && plan.authoredResourceGroup !== void 0 && authoredContexts.get(plan.authoredResourceGroup).scopeOrigin === "existing-explicit")) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
let node = resource;
|
|
69
|
+
if (plan !== entryPlan && !existingResourcesWithExplicitScope.has(name) && !(0, import_deployment_resource_utils.hasArmParent)(name, stackAst.resources, authoredContexts)) {
|
|
70
|
+
node = (0, import_resource_utils.removeResourceScope)(node);
|
|
71
|
+
}
|
|
72
|
+
result.set(name, node);
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
function prepareDeploymentFiles(stackName, stackAst, authoredContexts, layout, stackNamer) {
|
|
77
|
+
const { entryPlan, deployments, pureExistingResources } = layout;
|
|
78
|
+
const entryResources = entryPlan.resources;
|
|
79
|
+
(0, import_deployment_resource_utils.normalizeExtensionScopes)(stackAst);
|
|
80
|
+
if (deployments.length === 0) {
|
|
81
|
+
const selectedResources = entryResources.size === 0 ? pureExistingResources : entryResources;
|
|
82
|
+
const entry2 = createFile(
|
|
83
|
+
`${stackName}.bicep`,
|
|
84
|
+
stackAst.targetScope,
|
|
85
|
+
selectedResources,
|
|
86
|
+
stackAst,
|
|
87
|
+
true
|
|
88
|
+
);
|
|
89
|
+
const entryExistingResourceCandidates2 = getExistingResourceCandidatesForPlan(
|
|
90
|
+
entryPlan,
|
|
91
|
+
stackAst,
|
|
92
|
+
authoredContexts,
|
|
93
|
+
layout
|
|
94
|
+
);
|
|
95
|
+
(0, import_file_dependencies.resolveFileDependencies)(entry2.ast, stackAst, entryExistingResourceCandidates2);
|
|
96
|
+
return {
|
|
97
|
+
stackAst,
|
|
98
|
+
entry: entry2,
|
|
99
|
+
entryAssignedResources: new Set(entryResources),
|
|
100
|
+
modules: [],
|
|
101
|
+
entryExistingResourceCandidates: entryExistingResourceCandidates2
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (entryResources.size === 0 && deployments.every(
|
|
105
|
+
(plan) => plan.moduleScope === void 0 && plan.targetScope === stackAst.targetScope
|
|
106
|
+
)) {
|
|
107
|
+
const firstTree = deployments[0];
|
|
108
|
+
const mergedResources = new Set(deployments.flatMap((plan) => [...plan.resources]));
|
|
109
|
+
const entry2 = createFile(
|
|
110
|
+
resourceFileName(stackName, firstTree.boundary),
|
|
111
|
+
stackAst.targetScope,
|
|
112
|
+
mergedResources,
|
|
113
|
+
stackAst,
|
|
114
|
+
true
|
|
115
|
+
);
|
|
116
|
+
const entryExistingResourceCandidates2 = getExistingResourceCandidatesForPlan(
|
|
117
|
+
firstTree,
|
|
118
|
+
stackAst,
|
|
119
|
+
authoredContexts,
|
|
120
|
+
layout
|
|
121
|
+
);
|
|
122
|
+
(0, import_file_dependencies.resolveFileDependencies)(entry2.ast, stackAst, entryExistingResourceCandidates2);
|
|
123
|
+
return {
|
|
124
|
+
stackAst,
|
|
125
|
+
entry: entry2,
|
|
126
|
+
entryAssignedResources: mergedResources,
|
|
127
|
+
modules: [],
|
|
128
|
+
entryExistingResourceCandidates: entryExistingResourceCandidates2
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const modules = deployments.map((plan) => {
|
|
132
|
+
const boundaryIdentifier = plan.boundary;
|
|
133
|
+
const file = createFile(
|
|
134
|
+
resourceFileName(stackName, boundaryIdentifier),
|
|
135
|
+
plan.targetScope,
|
|
136
|
+
plan.resources,
|
|
137
|
+
stackAst,
|
|
138
|
+
false
|
|
139
|
+
);
|
|
140
|
+
for (const name of plan.resources) {
|
|
141
|
+
if (authoredContexts.get(name).scopeOrigin === "pass-through-explicit") {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (name !== plan.boundary && (0, import_deployment_resource_utils.hasArmParent)(name, stackAst.resources, authoredContexts)) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const node = file.ast.resources.get(name);
|
|
148
|
+
file.ast.resources.set(name, (0, import_resource_utils.removeResourceScope)(node));
|
|
149
|
+
}
|
|
150
|
+
(0, import_file_dependencies.resolveFileDependencies)(
|
|
151
|
+
file.ast,
|
|
152
|
+
stackAst,
|
|
153
|
+
getExistingResourceCandidatesForPlan(plan, stackAst, authoredContexts, layout)
|
|
154
|
+
);
|
|
155
|
+
return {
|
|
156
|
+
file,
|
|
157
|
+
assignedResources: new Set(plan.resources),
|
|
158
|
+
moduleScope: plan.moduleScope,
|
|
159
|
+
moduleName: stackNamer.moduleName(boundaryIdentifier, file.fileName),
|
|
160
|
+
namer: new import_bicep_namer.BicepNamer(file.ast),
|
|
161
|
+
outputNames: /* @__PURE__ */ new Map()
|
|
162
|
+
};
|
|
163
|
+
});
|
|
164
|
+
const entry = createFile(
|
|
165
|
+
`${stackName}.bicep`,
|
|
166
|
+
stackAst.targetScope,
|
|
167
|
+
entryResources,
|
|
168
|
+
stackAst,
|
|
169
|
+
true
|
|
170
|
+
);
|
|
171
|
+
const entryExistingResourceCandidates = getExistingResourceCandidatesForPlan(
|
|
172
|
+
entryPlan,
|
|
173
|
+
stackAst,
|
|
174
|
+
authoredContexts,
|
|
175
|
+
layout
|
|
176
|
+
);
|
|
177
|
+
(0, import_file_dependencies.resolveFileDependencies)(entry.ast, stackAst, entryExistingResourceCandidates);
|
|
178
|
+
return {
|
|
179
|
+
stackAst,
|
|
180
|
+
entry,
|
|
181
|
+
entryAssignedResources: new Set(entryResources),
|
|
182
|
+
modules,
|
|
183
|
+
entryExistingResourceCandidates
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
187
|
+
0 && (module.exports = {
|
|
188
|
+
prepareDeploymentFiles
|
|
189
|
+
});
|
|
190
|
+
//# sourceMappingURL=file-preparation.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/serialization/bicep/file-layout/file-preparation.ts"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n type ExpressionNode,\n type ModuleDeclarationNode,\n type OutputDeclarationNode,\n type ParameterDeclarationNode,\n type ResourceDeclarationNode,\n type TargetScope,\n type VariableDeclarationNode,\n} from \"../../ast/index.js\";\nimport { removeResourceScope } from \"../../ast/resource-utils.js\";\nimport type { AuthoredResourceContext } from \"./authored-context.js\";\nimport { hasArmParent, normalizeExtensionScopes } from \"./deployment-resource-utils.js\";\nimport { BicepNamer } from \"./bicep-namer.js\";\nimport type { DeploymentFilePlan, DeploymentLayout } from \"./deployment-planning.js\";\nimport { resolveFileDependencies } from \"./file-dependencies.js\";\nimport { joinFilePath } from \"./file-paths.js\";\n\nexport interface BicepAst {\n readonly targetScope: TargetScope;\n readonly resources: Map<string, ResourceDeclarationNode>;\n readonly parameters: Map<string, ParameterDeclarationNode>;\n readonly variables: Map<string, VariableDeclarationNode>;\n readonly outputs: Map<string, OutputDeclarationNode>;\n readonly modules: Map<string, ModuleDeclarationNode>;\n}\n\nexport interface PreparedBicepFile {\n readonly fileName: string;\n readonly targetScope: TargetScope;\n readonly ast: BicepAst;\n}\n\nexport interface PreparedModule {\n readonly file: PreparedBicepFile;\n readonly assignedResources: ReadonlySet<string>;\n readonly moduleScope: ExpressionNode | undefined;\n readonly moduleName: string;\n readonly namer: BicepNamer;\n readonly outputNames: Map<string, string>;\n}\n\nexport interface PreparedDeploymentFiles {\n readonly stackAst: BicepAst;\n readonly entry: PreparedBicepFile;\n readonly entryAssignedResources: ReadonlySet<string>;\n readonly modules: readonly PreparedModule[];\n readonly entryExistingResourceCandidates: ReadonlyMap<string, ResourceDeclarationNode>;\n}\n\nfunction createFile(\n fileName: string,\n targetScope: TargetScope,\n selectedResources: ReadonlySet<string>,\n stackAst: BicepAst,\n includeOutputs: boolean,\n): PreparedBicepFile {\n const ast: BicepAst = {\n targetScope,\n resources: new Map(),\n parameters: new Map(),\n variables: new Map(),\n modules: new Map(),\n outputs: new Map(includeOutputs ? stackAst.outputs : []),\n };\n for (const [name, resource] of stackAst.resources) {\n if (selectedResources.has(name)) ast.resources.set(name, resource);\n }\n return { fileName, targetScope, ast };\n}\n\nfunction resourceFileName(stackName: string, name: string): string {\n return joinFilePath(stackName, `${name}.bicep`);\n}\n\n/**\n * Candidate rules:\n * - Only pure existing resources, without deployment-file ownership.\n * - Entry: all pure existing resources.\n * - Other files: same authored RG or inherited Stack scope, with no explicit root scope.\n * - Do not copy existing references with explicit scope (own or inherited) into\n * modules for explicitly scoped authored RGs; relative scope expressions may change meaning.\n *\n * Dependency selection includes only the candidates actually needed.\n */\nfunction getExistingResourceCandidatesForPlan(\n plan: DeploymentFilePlan,\n stackAst: BicepAst,\n authoredContexts: ReadonlyMap<string, AuthoredResourceContext>,\n layout: DeploymentLayout,\n): Map<string, ResourceDeclarationNode> {\n const {\n entryPlan,\n pureExistingResources,\n existingResourceToAuthoredResourceGroup,\n existingResourcesWithExplicitScope,\n } = layout;\n const result = new Map<string, ResourceDeclarationNode>();\n for (const [name, resource] of stackAst.resources) {\n if (!pureExistingResources.has(name)) continue;\n if (plan !== entryPlan) {\n let passThroughExplicitScope = false;\n for (\n let ancestor: string | undefined = name;\n ancestor !== undefined;\n ancestor = authoredContexts.get(ancestor)!.authoredParent\n ) {\n if (authoredContexts.get(ancestor)!.scopeOrigin === \"pass-through-explicit\") {\n passThroughExplicitScope = true;\n break;\n }\n }\n if (passThroughExplicitScope) continue;\n }\n // Do not relocate relative lookups across authored deployment boundaries.\n if (\n plan !== entryPlan &&\n (existingResourceToAuthoredResourceGroup.get(name) !== plan.authoredResourceGroup ||\n (plan.boundary !== undefined &&\n authoredContexts.get(plan.boundary)!.scopeOrigin === \"existing-explicit\") ||\n (plan.authoredResourceGroup === undefined && plan.moduleScope !== undefined) ||\n (existingResourcesWithExplicitScope.has(name) &&\n plan.authoredResourceGroup !== undefined &&\n authoredContexts.get(plan.authoredResourceGroup)!.scopeOrigin === \"existing-explicit\"))\n ) {\n continue;\n }\n let node = resource;\n if (\n plan !== entryPlan &&\n !existingResourcesWithExplicitScope.has(name) &&\n !hasArmParent(name, stackAst.resources, authoredContexts)\n ) {\n node = removeResourceScope(node);\n }\n result.set(name, node);\n }\n return result;\n}\n\nexport function prepareDeploymentFiles(\n stackName: string,\n stackAst: BicepAst,\n authoredContexts: ReadonlyMap<string, AuthoredResourceContext>,\n layout: DeploymentLayout,\n stackNamer: BicepNamer,\n): PreparedDeploymentFiles {\n const { entryPlan, deployments, pureExistingResources } = layout;\n const entryResources = entryPlan.resources;\n normalizeExtensionScopes(stackAst);\n\n if (deployments.length === 0) {\n const selectedResources = entryResources.size === 0 ? pureExistingResources : entryResources;\n const entry = createFile(\n `${stackName}.bicep`,\n stackAst.targetScope,\n selectedResources,\n stackAst,\n true,\n );\n const entryExistingResourceCandidates = getExistingResourceCandidatesForPlan(\n entryPlan,\n stackAst,\n authoredContexts,\n layout,\n );\n resolveFileDependencies(entry.ast, stackAst, entryExistingResourceCandidates);\n return {\n stackAst,\n entry,\n entryAssignedResources: new Set(entryResources),\n modules: [],\n entryExistingResourceCandidates,\n };\n }\n\n if (\n entryResources.size === 0 &&\n deployments.every(\n (plan) => plan.moduleScope === undefined && plan.targetScope === stackAst.targetScope,\n )\n ) {\n const firstTree = deployments[0]!;\n const mergedResources = new Set(deployments.flatMap((plan) => [...plan.resources]));\n const entry = createFile(\n resourceFileName(stackName, firstTree.boundary!),\n stackAst.targetScope,\n mergedResources,\n stackAst,\n true,\n );\n const entryExistingResourceCandidates = getExistingResourceCandidatesForPlan(\n firstTree,\n stackAst,\n authoredContexts,\n layout,\n );\n resolveFileDependencies(entry.ast, stackAst, entryExistingResourceCandidates);\n return {\n stackAst,\n entry,\n entryAssignedResources: mergedResources,\n modules: [],\n entryExistingResourceCandidates,\n };\n }\n\n const modules = deployments.map((plan): PreparedModule => {\n const boundaryIdentifier = plan.boundary!;\n const file = createFile(\n resourceFileName(stackName, boundaryIdentifier),\n plan.targetScope,\n plan.resources,\n stackAst,\n false,\n );\n for (const name of plan.resources) {\n if (authoredContexts.get(name)!.scopeOrigin === \"pass-through-explicit\") {\n continue;\n }\n if (name !== plan.boundary && hasArmParent(name, stackAst.resources, authoredContexts)) {\n continue;\n }\n const node = file.ast.resources.get(name)!;\n file.ast.resources.set(name, removeResourceScope(node));\n }\n resolveFileDependencies(\n file.ast,\n stackAst,\n getExistingResourceCandidatesForPlan(plan, stackAst, authoredContexts, layout),\n );\n return {\n file,\n assignedResources: new Set(plan.resources),\n moduleScope: plan.moduleScope,\n moduleName: stackNamer.moduleName(boundaryIdentifier, file.fileName),\n namer: new BicepNamer(file.ast),\n outputNames: new Map<string, string>(),\n };\n });\n const entry = createFile(\n `${stackName}.bicep`,\n stackAst.targetScope,\n entryResources,\n stackAst,\n true,\n );\n const entryExistingResourceCandidates = getExistingResourceCandidatesForPlan(\n entryPlan,\n stackAst,\n authoredContexts,\n layout,\n );\n resolveFileDependencies(entry.ast, stackAst, entryExistingResourceCandidates);\n return {\n stackAst,\n entry,\n entryAssignedResources: new Set(entryResources),\n modules,\n entryExistingResourceCandidates,\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,4BAAoC;AAEpC,uCAAuD;AACvD,yBAA2B;AAE3B,+BAAwC;AACxC,wBAA6B;AAkC7B,SAAS,WACP,UACA,aACA,mBACA,UACA,gBACmB;AACnB,QAAM,MAAgB;AAAA,IACpB;AAAA,IACA,WAAW,oBAAI,IAAI;AAAA,IACnB,YAAY,oBAAI,IAAI;AAAA,IACpB,WAAW,oBAAI,IAAI;AAAA,IACnB,SAAS,oBAAI,IAAI;AAAA,IACjB,SAAS,IAAI,IAAI,iBAAiB,SAAS,UAAU,CAAC,CAAC;AAAA,EACzD;AACA,aAAW,CAAC,MAAM,QAAQ,KAAK,SAAS,WAAW;AACjD,QAAI,kBAAkB,IAAI,IAAI,EAAG,KAAI,UAAU,IAAI,MAAM,QAAQ;AAAA,EACnE;AACA,SAAO,EAAE,UAAU,aAAa,IAAI;AACtC;AAEA,SAAS,iBAAiB,WAAmB,MAAsB;AACjE,aAAO,gCAAa,WAAW,GAAG,IAAI,QAAQ;AAChD;AAYA,SAAS,qCACP,MACA,UACA,kBACA,QACsC;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,SAAS,oBAAI,IAAqC;AACxD,aAAW,CAAC,MAAM,QAAQ,KAAK,SAAS,WAAW;AACjD,QAAI,CAAC,sBAAsB,IAAI,IAAI,EAAG;AACtC,QAAI,SAAS,WAAW;AACtB,UAAI,2BAA2B;AAC/B,eACM,WAA+B,MACnC,aAAa,QACb,WAAW,iBAAiB,IAAI,QAAQ,EAAG,gBAC3C;AACA,YAAI,iBAAiB,IAAI,QAAQ,EAAG,gBAAgB,yBAAyB;AAC3E,qCAA2B;AAC3B;AAAA,QACF;AAAA,MACF;AACA,UAAI,yBAA0B;AAAA,IAChC;AAEA,QACE,SAAS,cACR,wCAAwC,IAAI,IAAI,MAAM,KAAK,yBACzD,KAAK,aAAa,UACjB,iBAAiB,IAAI,KAAK,QAAQ,EAAG,gBAAgB,uBACtD,KAAK,0BAA0B,UAAa,KAAK,gBAAgB,UACjE,mCAAmC,IAAI,IAAI,KAC1C,KAAK,0BAA0B,UAC/B,iBAAiB,IAAI,KAAK,qBAAqB,EAAG,gBAAgB,sBACtE;AACA;AAAA,IACF;AACA,QAAI,OAAO;AACX,QACE,SAAS,aACT,CAAC,mCAAmC,IAAI,IAAI,KAC5C,KAAC,+CAAa,MAAM,SAAS,WAAW,gBAAgB,GACxD;AACA,iBAAO,2CAAoB,IAAI;AAAA,IACjC;AACA,WAAO,IAAI,MAAM,IAAI;AAAA,EACvB;AACA,SAAO;AACT;AAEO,SAAS,uBACd,WACA,UACA,kBACA,QACA,YACyB;AACzB,QAAM,EAAE,WAAW,aAAa,sBAAsB,IAAI;AAC1D,QAAM,iBAAiB,UAAU;AACjC,iEAAyB,QAAQ;AAEjC,MAAI,YAAY,WAAW,GAAG;AAC5B,UAAM,oBAAoB,eAAe,SAAS,IAAI,wBAAwB;AAC9E,UAAMA,SAAQ;AAAA,MACZ,GAAG,SAAS;AAAA,MACZ,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAMC,mCAAkC;AAAA,MACtC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,0DAAwBD,OAAM,KAAK,UAAUC,gCAA+B;AAC5E,WAAO;AAAA,MACL;AAAA,MACA,OAAAD;AAAA,MACA,wBAAwB,IAAI,IAAI,cAAc;AAAA,MAC9C,SAAS,CAAC;AAAA,MACV,iCAAAC;AAAA,IACF;AAAA,EACF;AAEA,MACE,eAAe,SAAS,KACxB,YAAY;AAAA,IACV,CAAC,SAAS,KAAK,gBAAgB,UAAa,KAAK,gBAAgB,SAAS;AAAA,EAC5E,GACA;AACA,UAAM,YAAY,YAAY,CAAC;AAC/B,UAAM,kBAAkB,IAAI,IAAI,YAAY,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;AAClF,UAAMD,SAAQ;AAAA,MACZ,iBAAiB,WAAW,UAAU,QAAS;AAAA,MAC/C,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,UAAMC,mCAAkC;AAAA,MACtC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,0DAAwBD,OAAM,KAAK,UAAUC,gCAA+B;AAC5E,WAAO;AAAA,MACL;AAAA,MACA,OAAAD;AAAA,MACA,wBAAwB;AAAA,MACxB,SAAS,CAAC;AAAA,MACV,iCAAAC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,UAAU,YAAY,IAAI,CAAC,SAAyB;AACxD,UAAM,qBAAqB,KAAK;AAChC,UAAM,OAAO;AAAA,MACX,iBAAiB,WAAW,kBAAkB;AAAA,MAC9C,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF;AACA,eAAW,QAAQ,KAAK,WAAW;AACjC,UAAI,iBAAiB,IAAI,IAAI,EAAG,gBAAgB,yBAAyB;AACvE;AAAA,MACF;AACA,UAAI,SAAS,KAAK,gBAAY,+CAAa,MAAM,SAAS,WAAW,gBAAgB,GAAG;AACtF;AAAA,MACF;AACA,YAAM,OAAO,KAAK,IAAI,UAAU,IAAI,IAAI;AACxC,WAAK,IAAI,UAAU,IAAI,UAAM,2CAAoB,IAAI,CAAC;AAAA,IACxD;AACA;AAAA,MACE,KAAK;AAAA,MACL;AAAA,MACA,qCAAqC,MAAM,UAAU,kBAAkB,MAAM;AAAA,IAC/E;AACA,WAAO;AAAA,MACL;AAAA,MACA,mBAAmB,IAAI,IAAI,KAAK,SAAS;AAAA,MACzC,aAAa,KAAK;AAAA,MAClB,YAAY,WAAW,WAAW,oBAAoB,KAAK,QAAQ;AAAA,MACnE,OAAO,IAAI,8BAAW,KAAK,GAAG;AAAA,MAC9B,aAAa,oBAAI,IAAoB;AAAA,IACvC;AAAA,EACF,CAAC;AACD,QAAM,QAAQ;AAAA,IACZ,GAAG,SAAS;AAAA,IACZ,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,kCAAkC;AAAA,IACtC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,wDAAwB,MAAM,KAAK,UAAU,+BAA+B;AAC5E,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,wBAAwB,IAAI,IAAI,cAAc;AAAA,IAC9C;AAAA,IACA;AAAA,EACF;AACF;",
|
|
6
|
+
"names": ["entry", "entryExistingResourceCandidates"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-wiring.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/reference-wiring.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAY,uBAAuB,EAAkB,MAAM,uBAAuB,CAAC;AAyD/F,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAoL9F"}
|