@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.
Files changed (571) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +49 -10
  3. package/dist/browser/constructs/built-in-resources/resource-group.d.ts +7 -1
  4. package/dist/browser/constructs/built-in-resources/resource-group.d.ts.map +1 -1
  5. package/dist/browser/constructs/built-in-resources/resource-group.js +26 -6
  6. package/dist/browser/constructs/built-in-resources/resource-group.js.map +1 -1
  7. package/dist/browser/constructs/output.d.ts +1 -1
  8. package/dist/browser/constructs/output.d.ts.map +1 -1
  9. package/dist/browser/constructs/output.js.map +1 -1
  10. package/dist/browser/constructs/parameter.d.ts +1 -1
  11. package/dist/browser/constructs/parameter.d.ts.map +1 -1
  12. package/dist/browser/constructs/parameter.js.map +1 -1
  13. package/dist/browser/constructs/resource/resource-query.d.ts +3 -1
  14. package/dist/browser/constructs/resource/resource-query.d.ts.map +1 -1
  15. package/dist/browser/constructs/resource/resource-query.js +10 -0
  16. package/dist/browser/constructs/resource/resource-query.js.map +1 -1
  17. package/dist/browser/constructs/resource/resource-relationships.d.ts +9 -0
  18. package/dist/browser/constructs/resource/resource-relationships.d.ts.map +1 -0
  19. package/dist/browser/constructs/resource/resource-relationships.js +35 -0
  20. package/dist/browser/constructs/resource/resource-relationships.js.map +1 -0
  21. package/dist/browser/constructs/resource/resource.d.ts +11 -17
  22. package/dist/browser/constructs/resource/resource.d.ts.map +1 -1
  23. package/dist/browser/constructs/resource/resource.js +70 -28
  24. package/dist/browser/constructs/resource/resource.js.map +1 -1
  25. package/dist/browser/constructs/stack.d.ts +2 -16
  26. package/dist/browser/constructs/stack.d.ts.map +1 -1
  27. package/dist/browser/constructs/stack.js +1 -15
  28. package/dist/browser/constructs/stack.js.map +1 -1
  29. package/dist/browser/expression/ast-nodes.d.ts +1 -1
  30. package/dist/browser/expression/ast-nodes.d.ts.map +1 -1
  31. package/dist/browser/expression/ast-nodes.js.map +1 -1
  32. package/dist/browser/expression/expressions.d.ts +2 -9
  33. package/dist/browser/expression/expressions.d.ts.map +1 -1
  34. package/dist/browser/expression/expressions.js +2 -9
  35. package/dist/browser/expression/expressions.js.map +1 -1
  36. package/dist/browser/expression/utils.d.ts +5 -0
  37. package/dist/browser/expression/utils.d.ts.map +1 -0
  38. package/dist/browser/expression/utils.js +25 -0
  39. package/dist/browser/expression/utils.js.map +1 -0
  40. package/dist/browser/index.d.ts +4 -4
  41. package/dist/browser/index.d.ts.map +1 -1
  42. package/dist/browser/index.js.map +1 -1
  43. package/dist/browser/internal.d.ts +2 -5
  44. package/dist/browser/internal.d.ts.map +1 -1
  45. package/dist/browser/internal.js +1 -3
  46. package/dist/browser/internal.js.map +1 -1
  47. package/dist/browser/naming/name-validation.d.ts +15 -0
  48. package/dist/browser/naming/name-validation.d.ts.map +1 -0
  49. package/dist/browser/naming/name-validation.js +82 -0
  50. package/dist/browser/naming/name-validation.js.map +1 -0
  51. package/dist/browser/naming/naming-policy.d.ts +7 -7
  52. package/dist/browser/naming/naming-policy.d.ts.map +1 -1
  53. package/dist/browser/naming/naming-policy.js +166 -33
  54. package/dist/browser/naming/naming-policy.js.map +1 -1
  55. package/dist/browser/naming/naming-rules.d.ts +12 -11
  56. package/dist/browser/naming/naming-rules.d.ts.map +1 -1
  57. package/dist/browser/naming/naming-rules.js +2 -9
  58. package/dist/browser/naming/naming-rules.js.map +1 -1
  59. package/dist/browser/package.json +1 -1
  60. package/dist/{esm/serialization/json/lower.d.ts → browser/serialization/arm-object-conversion.d.ts} +11 -11
  61. package/dist/browser/serialization/arm-object-conversion.d.ts.map +1 -0
  62. package/dist/{esm/serialization/json/lower.js → browser/serialization/arm-object-conversion.js} +20 -20
  63. package/dist/browser/serialization/arm-object-conversion.js.map +1 -0
  64. package/dist/browser/serialization/ast/declaration-builder.d.ts +10 -0
  65. package/dist/browser/serialization/ast/declaration-builder.d.ts.map +1 -0
  66. package/dist/browser/serialization/ast/declaration-builder.js +265 -0
  67. package/dist/browser/serialization/ast/declaration-builder.js.map +1 -0
  68. package/dist/browser/serialization/ast/declaration-dependencies.d.ts +18 -0
  69. package/dist/browser/serialization/ast/declaration-dependencies.d.ts.map +1 -0
  70. package/dist/browser/serialization/ast/declaration-dependencies.js +96 -0
  71. package/dist/browser/serialization/ast/declaration-dependencies.js.map +1 -0
  72. package/dist/browser/serialization/ast/expression-builder.d.ts +14 -0
  73. package/dist/browser/serialization/ast/expression-builder.d.ts.map +1 -0
  74. package/dist/browser/serialization/ast/expression-builder.js +313 -0
  75. package/dist/browser/serialization/ast/expression-builder.js.map +1 -0
  76. package/dist/browser/serialization/ast/expression-restorer.d.ts +8 -0
  77. package/dist/browser/serialization/ast/expression-restorer.d.ts.map +1 -0
  78. package/dist/browser/serialization/ast/expression-restorer.js +162 -0
  79. package/dist/browser/serialization/ast/expression-restorer.js.map +1 -0
  80. package/dist/browser/serialization/ast/expression-rewriter.d.ts +29 -0
  81. package/dist/browser/serialization/ast/expression-rewriter.d.ts.map +1 -0
  82. package/dist/browser/serialization/ast/expression-rewriter.js +257 -0
  83. package/dist/browser/serialization/ast/expression-rewriter.js.map +1 -0
  84. package/dist/browser/serialization/ast/expression-walker.d.ts +16 -0
  85. package/dist/browser/serialization/ast/expression-walker.d.ts.map +1 -0
  86. package/dist/browser/serialization/ast/expression-walker.js +154 -0
  87. package/dist/browser/serialization/ast/expression-walker.js.map +1 -0
  88. package/dist/browser/serialization/ast/generated/ast.d.ts.map +1 -0
  89. package/dist/browser/serialization/ast/generated/ast.js.map +1 -0
  90. package/dist/browser/serialization/ast/index.d.ts +7 -0
  91. package/dist/browser/serialization/ast/index.d.ts.map +1 -0
  92. package/dist/browser/serialization/ast/index.js.map +1 -0
  93. package/dist/browser/serialization/ast/resource-utils.d.ts +10 -0
  94. package/dist/browser/serialization/ast/resource-utils.d.ts.map +1 -0
  95. package/dist/browser/serialization/ast/resource-utils.js +52 -0
  96. package/dist/browser/serialization/ast/resource-utils.js.map +1 -0
  97. package/dist/browser/serialization/bicep/file-layout/authored-context.d.ts +12 -0
  98. package/dist/browser/serialization/bicep/file-layout/authored-context.d.ts.map +1 -0
  99. package/dist/browser/serialization/bicep/file-layout/authored-context.js +57 -0
  100. package/dist/browser/serialization/bicep/file-layout/authored-context.js.map +1 -0
  101. package/dist/browser/serialization/bicep/file-layout/bicep-namer.d.ts +11 -0
  102. package/dist/browser/serialization/bicep/file-layout/bicep-namer.d.ts.map +1 -0
  103. package/dist/browser/serialization/bicep/file-layout/bicep-namer.js +100 -0
  104. package/dist/browser/serialization/bicep/file-layout/bicep-namer.js.map +1 -0
  105. package/dist/browser/serialization/bicep/file-layout/build-bicep-files.d.ts +7 -0
  106. package/dist/browser/serialization/bicep/file-layout/build-bicep-files.d.ts.map +1 -0
  107. package/dist/browser/serialization/bicep/file-layout/build-bicep-files.js +46 -0
  108. package/dist/browser/serialization/bicep/file-layout/build-bicep-files.js.map +1 -0
  109. package/dist/browser/serialization/bicep/file-layout/deployment-planning.d.ts +19 -0
  110. package/dist/browser/serialization/bicep/file-layout/deployment-planning.d.ts.map +1 -0
  111. package/dist/browser/serialization/bicep/file-layout/deployment-planning.js +68 -0
  112. package/dist/browser/serialization/bicep/file-layout/deployment-planning.js.map +1 -0
  113. package/dist/browser/serialization/bicep/file-layout/deployment-resource-utils.d.ts +8 -0
  114. package/dist/browser/serialization/bicep/file-layout/deployment-resource-utils.d.ts.map +1 -0
  115. package/dist/browser/serialization/bicep/file-layout/deployment-resource-utils.js +67 -0
  116. package/dist/browser/serialization/bicep/file-layout/deployment-resource-utils.js.map +1 -0
  117. package/dist/browser/serialization/bicep/file-layout/file-dependencies.d.ts +4 -0
  118. package/dist/browser/serialization/bicep/file-layout/file-dependencies.d.ts.map +1 -0
  119. package/dist/browser/serialization/bicep/file-layout/file-dependencies.js +32 -0
  120. package/dist/browser/serialization/bicep/file-layout/file-dependencies.js.map +1 -0
  121. package/dist/browser/serialization/bicep/file-layout/file-paths.d.ts +3 -0
  122. package/dist/browser/serialization/bicep/file-layout/file-paths.d.ts.map +1 -0
  123. package/dist/browser/serialization/bicep/file-layout/file-paths.js +46 -0
  124. package/dist/browser/serialization/bicep/file-layout/file-paths.js.map +1 -0
  125. package/dist/browser/serialization/bicep/file-layout/file-preparation.d.ts +34 -0
  126. package/dist/browser/serialization/bicep/file-layout/file-preparation.d.ts.map +1 -0
  127. package/dist/browser/serialization/bicep/file-layout/file-preparation.js +140 -0
  128. package/dist/browser/serialization/bicep/file-layout/file-preparation.js.map +1 -0
  129. package/dist/browser/serialization/bicep/file-layout/reference-wiring.d.ts +3 -0
  130. package/dist/browser/serialization/bicep/file-layout/reference-wiring.d.ts.map +1 -0
  131. package/dist/browser/serialization/bicep/file-layout/reference-wiring.js +225 -0
  132. package/dist/browser/serialization/bicep/file-layout/reference-wiring.js.map +1 -0
  133. package/dist/browser/serialization/bicep/index.d.ts +2 -0
  134. package/dist/browser/serialization/bicep/index.d.ts.map +1 -0
  135. package/dist/browser/serialization/bicep/index.js +4 -0
  136. package/dist/browser/serialization/bicep/index.js.map +1 -0
  137. package/dist/browser/serialization/bicep/render.d.ts +11 -0
  138. package/dist/browser/serialization/bicep/render.d.ts.map +1 -0
  139. package/dist/browser/serialization/bicep/render.js +293 -0
  140. package/dist/browser/serialization/bicep/render.js.map +1 -0
  141. package/dist/browser/serialization/{json/encoding.d.ts → encoding.d.ts} +1 -1
  142. package/dist/browser/serialization/encoding.d.ts.map +1 -0
  143. package/dist/browser/serialization/{json/encoding.js → encoding.js} +2 -12
  144. package/dist/browser/serialization/encoding.js.map +1 -0
  145. package/dist/browser/serialization/{json/util.d.ts → identifiers.d.ts} +1 -1
  146. package/dist/browser/serialization/identifiers.d.ts.map +1 -0
  147. package/dist/browser/serialization/{json/util.js → identifiers.js} +1 -1
  148. package/dist/browser/serialization/identifiers.js.map +1 -0
  149. package/dist/browser/serialization/index.d.ts +1 -1
  150. package/dist/browser/serialization/index.d.ts.map +1 -1
  151. package/dist/browser/serialization/index.js.map +1 -1
  152. package/dist/browser/serialization/json/deserialize.d.ts.map +1 -1
  153. package/dist/browser/serialization/json/deserialize.js +131 -39
  154. package/dist/browser/serialization/json/deserialize.js.map +1 -1
  155. package/dist/browser/serialization/json/serialize.d.ts +1 -1
  156. package/dist/browser/serialization/json/serialize.d.ts.map +1 -1
  157. package/dist/browser/serialization/json/serialize.js +5 -360
  158. package/dist/browser/serialization/json/serialize.js.map +1 -1
  159. package/dist/browser/serialization/pluralize-config.d.ts.map +1 -0
  160. package/dist/browser/serialization/pluralize-config.js.map +1 -0
  161. package/dist/browser/serialization/symbol-map.d.ts +10 -0
  162. package/dist/browser/serialization/symbol-map.d.ts.map +1 -0
  163. package/dist/browser/serialization/symbol-map.js +40 -0
  164. package/dist/browser/serialization/symbol-map.js.map +1 -0
  165. package/dist/browser/shape/shape.d.ts +4 -4
  166. package/dist/browser/shape/shape.js +2 -2
  167. package/dist/browser/shape/shape.js.map +1 -1
  168. package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts +7 -1
  169. package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts.map +1 -1
  170. package/dist/commonjs/constructs/built-in-resources/resource-group.js +27 -6
  171. package/dist/commonjs/constructs/built-in-resources/resource-group.js.map +2 -2
  172. package/dist/commonjs/constructs/output.d.ts +1 -1
  173. package/dist/commonjs/constructs/output.d.ts.map +1 -1
  174. package/dist/commonjs/constructs/output.js.map +1 -1
  175. package/dist/commonjs/constructs/parameter.d.ts +1 -1
  176. package/dist/commonjs/constructs/parameter.d.ts.map +1 -1
  177. package/dist/commonjs/constructs/parameter.js.map +1 -1
  178. package/dist/commonjs/constructs/resource/resource-query.d.ts +3 -1
  179. package/dist/commonjs/constructs/resource/resource-query.d.ts.map +1 -1
  180. package/dist/commonjs/constructs/resource/resource-query.js +11 -0
  181. package/dist/commonjs/constructs/resource/resource-query.js.map +2 -2
  182. package/dist/commonjs/constructs/resource/resource-relationships.d.ts +9 -0
  183. package/dist/commonjs/constructs/resource/resource-relationships.d.ts.map +1 -0
  184. package/dist/commonjs/constructs/resource/resource-relationships.js +59 -0
  185. package/dist/commonjs/constructs/resource/resource-relationships.js.map +7 -0
  186. package/dist/commonjs/constructs/resource/resource.d.ts +11 -17
  187. package/dist/commonjs/constructs/resource/resource.d.ts.map +1 -1
  188. package/dist/commonjs/constructs/resource/resource.js +57 -35
  189. package/dist/commonjs/constructs/resource/resource.js.map +2 -2
  190. package/dist/commonjs/constructs/stack.d.ts +2 -16
  191. package/dist/commonjs/constructs/stack.d.ts.map +1 -1
  192. package/dist/commonjs/constructs/stack.js.map +2 -2
  193. package/dist/commonjs/expression/ast-nodes.d.ts +1 -1
  194. package/dist/commonjs/expression/ast-nodes.d.ts.map +1 -1
  195. package/dist/commonjs/expression/ast-nodes.js.map +1 -1
  196. package/dist/commonjs/expression/expressions.d.ts +2 -9
  197. package/dist/commonjs/expression/expressions.d.ts.map +1 -1
  198. package/dist/commonjs/expression/expressions.js.map +2 -2
  199. package/dist/commonjs/expression/utils.d.ts +5 -0
  200. package/dist/commonjs/expression/utils.d.ts.map +1 -0
  201. package/dist/commonjs/expression/utils.js +43 -0
  202. package/dist/commonjs/expression/utils.js.map +7 -0
  203. package/dist/commonjs/index.d.ts +4 -4
  204. package/dist/commonjs/index.d.ts.map +1 -1
  205. package/dist/commonjs/index.js.map +2 -2
  206. package/dist/commonjs/internal.d.ts +2 -5
  207. package/dist/commonjs/internal.d.ts.map +1 -1
  208. package/dist/commonjs/internal.js +3 -9
  209. package/dist/commonjs/internal.js.map +2 -2
  210. package/dist/commonjs/naming/name-validation.d.ts +15 -0
  211. package/dist/commonjs/naming/name-validation.d.ts.map +1 -0
  212. package/dist/commonjs/naming/name-validation.js +74 -0
  213. package/dist/commonjs/naming/name-validation.js.map +7 -0
  214. package/dist/commonjs/naming/naming-policy.d.ts +7 -7
  215. package/dist/commonjs/naming/naming-policy.d.ts.map +1 -1
  216. package/dist/commonjs/naming/naming-policy.js +136 -26
  217. package/dist/commonjs/naming/naming-policy.js.map +2 -2
  218. package/dist/commonjs/naming/naming-rules.d.ts +12 -11
  219. package/dist/commonjs/naming/naming-rules.d.ts.map +1 -1
  220. package/dist/commonjs/naming/naming-rules.js +4 -11
  221. package/dist/commonjs/naming/naming-rules.js.map +2 -2
  222. package/dist/commonjs/package.json +1 -1
  223. package/dist/{browser/serialization/json/lower.d.ts → commonjs/serialization/arm-object-conversion.d.ts} +11 -11
  224. package/dist/commonjs/serialization/arm-object-conversion.d.ts.map +1 -0
  225. package/dist/commonjs/serialization/{json/lower.js → arm-object-conversion.js} +15 -15
  226. package/dist/commonjs/serialization/arm-object-conversion.js.map +7 -0
  227. package/dist/commonjs/serialization/ast/declaration-builder.d.ts +10 -0
  228. package/dist/commonjs/serialization/ast/declaration-builder.d.ts.map +1 -0
  229. package/dist/commonjs/serialization/ast/declaration-builder.js +274 -0
  230. package/dist/commonjs/serialization/ast/declaration-builder.js.map +7 -0
  231. package/dist/commonjs/serialization/ast/declaration-dependencies.d.ts +18 -0
  232. package/dist/commonjs/serialization/ast/declaration-dependencies.d.ts.map +1 -0
  233. package/dist/commonjs/serialization/ast/declaration-dependencies.js +109 -0
  234. package/dist/commonjs/serialization/ast/declaration-dependencies.js.map +7 -0
  235. package/dist/commonjs/serialization/ast/expression-builder.d.ts +14 -0
  236. package/dist/commonjs/serialization/ast/expression-builder.d.ts.map +1 -0
  237. package/dist/commonjs/serialization/ast/expression-builder.js +316 -0
  238. package/dist/commonjs/serialization/ast/expression-builder.js.map +7 -0
  239. package/dist/commonjs/serialization/ast/expression-restorer.d.ts +8 -0
  240. package/dist/commonjs/serialization/ast/expression-restorer.d.ts.map +1 -0
  241. package/dist/commonjs/serialization/ast/expression-restorer.js +193 -0
  242. package/dist/commonjs/serialization/ast/expression-restorer.js.map +7 -0
  243. package/dist/commonjs/serialization/ast/expression-rewriter.d.ts +29 -0
  244. package/dist/commonjs/serialization/ast/expression-rewriter.d.ts.map +1 -0
  245. package/dist/commonjs/serialization/ast/expression-rewriter.js +270 -0
  246. package/dist/commonjs/serialization/ast/expression-rewriter.js.map +7 -0
  247. package/dist/commonjs/serialization/ast/expression-walker.d.ts +16 -0
  248. package/dist/commonjs/serialization/ast/expression-walker.d.ts.map +1 -0
  249. package/dist/commonjs/serialization/ast/expression-walker.js +165 -0
  250. package/dist/commonjs/serialization/ast/expression-walker.js.map +7 -0
  251. package/dist/commonjs/serialization/ast/generated/ast.d.ts.map +1 -0
  252. package/dist/commonjs/serialization/{contract → ast}/generated/ast.js.map +1 -1
  253. package/dist/commonjs/serialization/ast/index.d.ts +7 -0
  254. package/dist/commonjs/serialization/ast/index.d.ts.map +1 -0
  255. package/dist/commonjs/serialization/{contract → ast}/index.js +3 -3
  256. package/dist/commonjs/serialization/ast/index.js.map +7 -0
  257. package/dist/commonjs/serialization/ast/resource-utils.d.ts +10 -0
  258. package/dist/commonjs/serialization/ast/resource-utils.d.ts.map +1 -0
  259. package/dist/commonjs/serialization/ast/resource-utils.js +71 -0
  260. package/dist/commonjs/serialization/ast/resource-utils.js.map +7 -0
  261. package/dist/commonjs/serialization/bicep/file-layout/authored-context.d.ts +12 -0
  262. package/dist/commonjs/serialization/bicep/file-layout/authored-context.d.ts.map +1 -0
  263. package/dist/commonjs/serialization/bicep/file-layout/authored-context.js +74 -0
  264. package/dist/commonjs/serialization/bicep/file-layout/authored-context.js.map +7 -0
  265. package/dist/commonjs/serialization/bicep/file-layout/bicep-namer.d.ts +11 -0
  266. package/dist/commonjs/serialization/bicep/file-layout/bicep-namer.d.ts.map +1 -0
  267. package/dist/commonjs/serialization/bicep/file-layout/bicep-namer.js +130 -0
  268. package/dist/commonjs/serialization/bicep/file-layout/bicep-namer.js.map +7 -0
  269. package/dist/commonjs/serialization/bicep/file-layout/build-bicep-files.d.ts +7 -0
  270. package/dist/commonjs/serialization/bicep/file-layout/build-bicep-files.d.ts.map +1 -0
  271. package/dist/commonjs/serialization/bicep/file-layout/build-bicep-files.js +71 -0
  272. package/dist/commonjs/serialization/bicep/file-layout/build-bicep-files.js.map +7 -0
  273. package/dist/commonjs/serialization/bicep/file-layout/deployment-planning.d.ts +19 -0
  274. package/dist/commonjs/serialization/bicep/file-layout/deployment-planning.d.ts.map +1 -0
  275. package/dist/commonjs/serialization/bicep/file-layout/deployment-planning.js +80 -0
  276. package/dist/commonjs/serialization/bicep/file-layout/deployment-planning.js.map +7 -0
  277. package/dist/commonjs/serialization/bicep/file-layout/deployment-resource-utils.d.ts +8 -0
  278. package/dist/commonjs/serialization/bicep/file-layout/deployment-resource-utils.d.ts.map +1 -0
  279. package/dist/commonjs/serialization/bicep/file-layout/deployment-resource-utils.js +91 -0
  280. package/dist/commonjs/serialization/bicep/file-layout/deployment-resource-utils.js.map +7 -0
  281. package/dist/commonjs/serialization/bicep/file-layout/file-dependencies.d.ts +4 -0
  282. package/dist/commonjs/serialization/bicep/file-layout/file-dependencies.d.ts.map +1 -0
  283. package/dist/commonjs/serialization/bicep/file-layout/file-dependencies.js +57 -0
  284. package/dist/commonjs/serialization/bicep/file-layout/file-dependencies.js.map +7 -0
  285. package/dist/commonjs/serialization/bicep/file-layout/file-paths.d.ts +3 -0
  286. package/dist/commonjs/serialization/bicep/file-layout/file-paths.d.ts.map +1 -0
  287. package/dist/commonjs/serialization/bicep/file-layout/file-paths.js +70 -0
  288. package/dist/commonjs/serialization/bicep/file-layout/file-paths.js.map +7 -0
  289. package/dist/commonjs/serialization/bicep/file-layout/file-preparation.d.ts +34 -0
  290. package/dist/commonjs/serialization/bicep/file-layout/file-preparation.d.ts.map +1 -0
  291. package/dist/commonjs/serialization/bicep/file-layout/file-preparation.js +190 -0
  292. package/dist/commonjs/serialization/bicep/file-layout/file-preparation.js.map +7 -0
  293. package/dist/commonjs/serialization/bicep/file-layout/reference-wiring.d.ts +3 -0
  294. package/dist/commonjs/serialization/bicep/file-layout/reference-wiring.d.ts.map +1 -0
  295. package/dist/commonjs/serialization/bicep/file-layout/reference-wiring.js +241 -0
  296. package/dist/commonjs/serialization/bicep/file-layout/reference-wiring.js.map +7 -0
  297. package/dist/commonjs/serialization/bicep/index.d.ts +2 -0
  298. package/dist/commonjs/serialization/bicep/index.d.ts.map +1 -0
  299. package/dist/commonjs/serialization/bicep/index.js +28 -0
  300. package/dist/commonjs/serialization/bicep/index.js.map +7 -0
  301. package/dist/commonjs/serialization/bicep/render.d.ts +11 -0
  302. package/dist/commonjs/serialization/bicep/render.d.ts.map +1 -0
  303. package/dist/commonjs/serialization/bicep/render.js +312 -0
  304. package/dist/commonjs/serialization/bicep/render.js.map +7 -0
  305. package/dist/commonjs/serialization/{json/encoding.d.ts → encoding.d.ts} +1 -1
  306. package/dist/commonjs/serialization/encoding.d.ts.map +1 -0
  307. package/dist/commonjs/serialization/{json/encoding.js → encoding.js} +2 -12
  308. package/dist/commonjs/serialization/encoding.js.map +7 -0
  309. package/dist/commonjs/serialization/{json/util.d.ts → identifiers.d.ts} +1 -1
  310. package/dist/commonjs/serialization/identifiers.d.ts.map +1 -0
  311. package/dist/commonjs/serialization/{json/util.js → identifiers.js} +4 -4
  312. package/dist/commonjs/serialization/{json/util.js.map → identifiers.js.map} +1 -1
  313. package/dist/commonjs/serialization/index.d.ts +1 -1
  314. package/dist/commonjs/serialization/index.d.ts.map +1 -1
  315. package/dist/commonjs/serialization/index.js.map +1 -1
  316. package/dist/commonjs/serialization/json/deserialize.d.ts.map +1 -1
  317. package/dist/commonjs/serialization/json/deserialize.js +115 -44
  318. package/dist/commonjs/serialization/json/deserialize.js.map +2 -2
  319. package/dist/commonjs/serialization/json/serialize.d.ts +1 -1
  320. package/dist/commonjs/serialization/json/serialize.d.ts.map +1 -1
  321. package/dist/commonjs/serialization/json/serialize.js +6 -308
  322. package/dist/commonjs/serialization/json/serialize.js.map +3 -3
  323. package/dist/commonjs/serialization/pluralize-config.d.ts.map +1 -0
  324. package/dist/commonjs/serialization/{json/pluralize-config.js.map → pluralize-config.js.map} +1 -1
  325. package/dist/commonjs/serialization/symbol-map.d.ts +10 -0
  326. package/dist/commonjs/serialization/symbol-map.d.ts.map +1 -0
  327. package/dist/commonjs/serialization/symbol-map.js +72 -0
  328. package/dist/commonjs/serialization/symbol-map.js.map +7 -0
  329. package/dist/commonjs/shape/shape.d.ts +4 -4
  330. package/dist/commonjs/shape/shape.js.map +1 -1
  331. package/dist/commonjs/tsdoc-metadata.json +1 -1
  332. package/dist/esm/constructs/built-in-resources/resource-group.d.ts +7 -1
  333. package/dist/esm/constructs/built-in-resources/resource-group.d.ts.map +1 -1
  334. package/dist/esm/constructs/built-in-resources/resource-group.js +26 -6
  335. package/dist/esm/constructs/built-in-resources/resource-group.js.map +1 -1
  336. package/dist/esm/constructs/output.d.ts +1 -1
  337. package/dist/esm/constructs/output.d.ts.map +1 -1
  338. package/dist/esm/constructs/output.js.map +1 -1
  339. package/dist/esm/constructs/parameter.d.ts +1 -1
  340. package/dist/esm/constructs/parameter.d.ts.map +1 -1
  341. package/dist/esm/constructs/parameter.js.map +1 -1
  342. package/dist/esm/constructs/resource/resource-query.d.ts +3 -1
  343. package/dist/esm/constructs/resource/resource-query.d.ts.map +1 -1
  344. package/dist/esm/constructs/resource/resource-query.js +10 -0
  345. package/dist/esm/constructs/resource/resource-query.js.map +1 -1
  346. package/dist/esm/constructs/resource/resource-relationships.d.ts +9 -0
  347. package/dist/esm/constructs/resource/resource-relationships.d.ts.map +1 -0
  348. package/dist/esm/constructs/resource/resource-relationships.js +35 -0
  349. package/dist/esm/constructs/resource/resource-relationships.js.map +1 -0
  350. package/dist/esm/constructs/resource/resource.d.ts +11 -17
  351. package/dist/esm/constructs/resource/resource.d.ts.map +1 -1
  352. package/dist/esm/constructs/resource/resource.js +70 -28
  353. package/dist/esm/constructs/resource/resource.js.map +1 -1
  354. package/dist/esm/constructs/stack.d.ts +2 -16
  355. package/dist/esm/constructs/stack.d.ts.map +1 -1
  356. package/dist/esm/constructs/stack.js +1 -15
  357. package/dist/esm/constructs/stack.js.map +1 -1
  358. package/dist/esm/expression/ast-nodes.d.ts +1 -1
  359. package/dist/esm/expression/ast-nodes.d.ts.map +1 -1
  360. package/dist/esm/expression/ast-nodes.js.map +1 -1
  361. package/dist/esm/expression/expressions.d.ts +2 -9
  362. package/dist/esm/expression/expressions.d.ts.map +1 -1
  363. package/dist/esm/expression/expressions.js +2 -9
  364. package/dist/esm/expression/expressions.js.map +1 -1
  365. package/dist/esm/expression/utils.d.ts +5 -0
  366. package/dist/esm/expression/utils.d.ts.map +1 -0
  367. package/dist/esm/expression/utils.js +25 -0
  368. package/dist/esm/expression/utils.js.map +1 -0
  369. package/dist/esm/index.d.ts +4 -4
  370. package/dist/esm/index.d.ts.map +1 -1
  371. package/dist/esm/index.js.map +1 -1
  372. package/dist/esm/internal.d.ts +2 -5
  373. package/dist/esm/internal.d.ts.map +1 -1
  374. package/dist/esm/internal.js +1 -3
  375. package/dist/esm/internal.js.map +1 -1
  376. package/dist/esm/naming/name-validation.d.ts +15 -0
  377. package/dist/esm/naming/name-validation.d.ts.map +1 -0
  378. package/dist/esm/naming/name-validation.js +82 -0
  379. package/dist/esm/naming/name-validation.js.map +1 -0
  380. package/dist/esm/naming/naming-policy.d.ts +7 -7
  381. package/dist/esm/naming/naming-policy.d.ts.map +1 -1
  382. package/dist/esm/naming/naming-policy.js +166 -33
  383. package/dist/esm/naming/naming-policy.js.map +1 -1
  384. package/dist/esm/naming/naming-rules.d.ts +12 -11
  385. package/dist/esm/naming/naming-rules.d.ts.map +1 -1
  386. package/dist/esm/naming/naming-rules.js +2 -9
  387. package/dist/esm/naming/naming-rules.js.map +1 -1
  388. package/dist/esm/package.json +1 -1
  389. package/dist/{commonjs/serialization/json/lower.d.ts → esm/serialization/arm-object-conversion.d.ts} +11 -11
  390. package/dist/esm/serialization/arm-object-conversion.d.ts.map +1 -0
  391. package/dist/{browser/serialization/json/lower.js → esm/serialization/arm-object-conversion.js} +20 -20
  392. package/dist/esm/serialization/arm-object-conversion.js.map +1 -0
  393. package/dist/esm/serialization/ast/declaration-builder.d.ts +10 -0
  394. package/dist/esm/serialization/ast/declaration-builder.d.ts.map +1 -0
  395. package/dist/esm/serialization/ast/declaration-builder.js +265 -0
  396. package/dist/esm/serialization/ast/declaration-builder.js.map +1 -0
  397. package/dist/esm/serialization/ast/declaration-dependencies.d.ts +18 -0
  398. package/dist/esm/serialization/ast/declaration-dependencies.d.ts.map +1 -0
  399. package/dist/esm/serialization/ast/declaration-dependencies.js +96 -0
  400. package/dist/esm/serialization/ast/declaration-dependencies.js.map +1 -0
  401. package/dist/esm/serialization/ast/expression-builder.d.ts +14 -0
  402. package/dist/esm/serialization/ast/expression-builder.d.ts.map +1 -0
  403. package/dist/esm/serialization/ast/expression-builder.js +313 -0
  404. package/dist/esm/serialization/ast/expression-builder.js.map +1 -0
  405. package/dist/esm/serialization/ast/expression-restorer.d.ts +8 -0
  406. package/dist/esm/serialization/ast/expression-restorer.d.ts.map +1 -0
  407. package/dist/esm/serialization/ast/expression-restorer.js +162 -0
  408. package/dist/esm/serialization/ast/expression-restorer.js.map +1 -0
  409. package/dist/esm/serialization/ast/expression-rewriter.d.ts +29 -0
  410. package/dist/esm/serialization/ast/expression-rewriter.d.ts.map +1 -0
  411. package/dist/esm/serialization/ast/expression-rewriter.js +257 -0
  412. package/dist/esm/serialization/ast/expression-rewriter.js.map +1 -0
  413. package/dist/esm/serialization/ast/expression-walker.d.ts +16 -0
  414. package/dist/esm/serialization/ast/expression-walker.d.ts.map +1 -0
  415. package/dist/esm/serialization/ast/expression-walker.js +154 -0
  416. package/dist/esm/serialization/ast/expression-walker.js.map +1 -0
  417. package/dist/esm/serialization/ast/generated/ast.d.ts.map +1 -0
  418. package/dist/esm/serialization/ast/generated/ast.js.map +1 -0
  419. package/dist/esm/serialization/ast/index.d.ts +7 -0
  420. package/dist/esm/serialization/ast/index.d.ts.map +1 -0
  421. package/dist/esm/serialization/ast/index.js.map +1 -0
  422. package/dist/esm/serialization/ast/resource-utils.d.ts +10 -0
  423. package/dist/esm/serialization/ast/resource-utils.d.ts.map +1 -0
  424. package/dist/esm/serialization/ast/resource-utils.js +52 -0
  425. package/dist/esm/serialization/ast/resource-utils.js.map +1 -0
  426. package/dist/esm/serialization/bicep/file-layout/authored-context.d.ts +12 -0
  427. package/dist/esm/serialization/bicep/file-layout/authored-context.d.ts.map +1 -0
  428. package/dist/esm/serialization/bicep/file-layout/authored-context.js +57 -0
  429. package/dist/esm/serialization/bicep/file-layout/authored-context.js.map +1 -0
  430. package/dist/esm/serialization/bicep/file-layout/bicep-namer.d.ts +11 -0
  431. package/dist/esm/serialization/bicep/file-layout/bicep-namer.d.ts.map +1 -0
  432. package/dist/esm/serialization/bicep/file-layout/bicep-namer.js +100 -0
  433. package/dist/esm/serialization/bicep/file-layout/bicep-namer.js.map +1 -0
  434. package/dist/esm/serialization/bicep/file-layout/build-bicep-files.d.ts +7 -0
  435. package/dist/esm/serialization/bicep/file-layout/build-bicep-files.d.ts.map +1 -0
  436. package/dist/esm/serialization/bicep/file-layout/build-bicep-files.js +46 -0
  437. package/dist/esm/serialization/bicep/file-layout/build-bicep-files.js.map +1 -0
  438. package/dist/esm/serialization/bicep/file-layout/deployment-planning.d.ts +19 -0
  439. package/dist/esm/serialization/bicep/file-layout/deployment-planning.d.ts.map +1 -0
  440. package/dist/esm/serialization/bicep/file-layout/deployment-planning.js +68 -0
  441. package/dist/esm/serialization/bicep/file-layout/deployment-planning.js.map +1 -0
  442. package/dist/esm/serialization/bicep/file-layout/deployment-resource-utils.d.ts +8 -0
  443. package/dist/esm/serialization/bicep/file-layout/deployment-resource-utils.d.ts.map +1 -0
  444. package/dist/esm/serialization/bicep/file-layout/deployment-resource-utils.js +67 -0
  445. package/dist/esm/serialization/bicep/file-layout/deployment-resource-utils.js.map +1 -0
  446. package/dist/esm/serialization/bicep/file-layout/file-dependencies.d.ts +4 -0
  447. package/dist/esm/serialization/bicep/file-layout/file-dependencies.d.ts.map +1 -0
  448. package/dist/esm/serialization/bicep/file-layout/file-dependencies.js +32 -0
  449. package/dist/esm/serialization/bicep/file-layout/file-dependencies.js.map +1 -0
  450. package/dist/esm/serialization/bicep/file-layout/file-paths.d.ts +3 -0
  451. package/dist/esm/serialization/bicep/file-layout/file-paths.d.ts.map +1 -0
  452. package/dist/esm/serialization/bicep/file-layout/file-paths.js +46 -0
  453. package/dist/esm/serialization/bicep/file-layout/file-paths.js.map +1 -0
  454. package/dist/esm/serialization/bicep/file-layout/file-preparation.d.ts +34 -0
  455. package/dist/esm/serialization/bicep/file-layout/file-preparation.d.ts.map +1 -0
  456. package/dist/esm/serialization/bicep/file-layout/file-preparation.js +140 -0
  457. package/dist/esm/serialization/bicep/file-layout/file-preparation.js.map +1 -0
  458. package/dist/esm/serialization/bicep/file-layout/reference-wiring.d.ts +3 -0
  459. package/dist/esm/serialization/bicep/file-layout/reference-wiring.d.ts.map +1 -0
  460. package/dist/esm/serialization/bicep/file-layout/reference-wiring.js +225 -0
  461. package/dist/esm/serialization/bicep/file-layout/reference-wiring.js.map +1 -0
  462. package/dist/esm/serialization/bicep/index.d.ts +2 -0
  463. package/dist/esm/serialization/bicep/index.d.ts.map +1 -0
  464. package/dist/esm/serialization/bicep/index.js +4 -0
  465. package/dist/esm/serialization/bicep/index.js.map +1 -0
  466. package/dist/esm/serialization/bicep/render.d.ts +11 -0
  467. package/dist/esm/serialization/bicep/render.d.ts.map +1 -0
  468. package/dist/esm/serialization/bicep/render.js +293 -0
  469. package/dist/esm/serialization/bicep/render.js.map +1 -0
  470. package/dist/esm/serialization/{json/encoding.d.ts → encoding.d.ts} +1 -1
  471. package/dist/esm/serialization/encoding.d.ts.map +1 -0
  472. package/dist/esm/serialization/{json/encoding.js → encoding.js} +2 -12
  473. package/dist/esm/serialization/encoding.js.map +1 -0
  474. package/dist/esm/serialization/{json/util.d.ts → identifiers.d.ts} +1 -1
  475. package/dist/esm/serialization/identifiers.d.ts.map +1 -0
  476. package/dist/esm/serialization/{json/util.js → identifiers.js} +1 -1
  477. package/dist/esm/serialization/identifiers.js.map +1 -0
  478. package/dist/esm/serialization/index.d.ts +1 -1
  479. package/dist/esm/serialization/index.d.ts.map +1 -1
  480. package/dist/esm/serialization/index.js.map +1 -1
  481. package/dist/esm/serialization/json/deserialize.d.ts.map +1 -1
  482. package/dist/esm/serialization/json/deserialize.js +131 -39
  483. package/dist/esm/serialization/json/deserialize.js.map +1 -1
  484. package/dist/esm/serialization/json/serialize.d.ts +1 -1
  485. package/dist/esm/serialization/json/serialize.d.ts.map +1 -1
  486. package/dist/esm/serialization/json/serialize.js +5 -360
  487. package/dist/esm/serialization/json/serialize.js.map +1 -1
  488. package/dist/esm/serialization/pluralize-config.d.ts.map +1 -0
  489. package/dist/esm/serialization/pluralize-config.js.map +1 -0
  490. package/dist/esm/serialization/symbol-map.d.ts +10 -0
  491. package/dist/esm/serialization/symbol-map.d.ts.map +1 -0
  492. package/dist/esm/serialization/symbol-map.js +40 -0
  493. package/dist/esm/serialization/symbol-map.js.map +1 -0
  494. package/dist/esm/shape/shape.d.ts +4 -4
  495. package/dist/esm/shape/shape.js +2 -2
  496. package/dist/esm/shape/shape.js.map +1 -1
  497. package/package.json +3 -2
  498. package/dist/browser/serialization/contract/generated/ast.d.ts.map +0 -1
  499. package/dist/browser/serialization/contract/generated/ast.js.map +0 -1
  500. package/dist/browser/serialization/contract/index.d.ts +0 -2
  501. package/dist/browser/serialization/contract/index.d.ts.map +0 -1
  502. package/dist/browser/serialization/contract/index.js.map +0 -1
  503. package/dist/browser/serialization/json/encoding.d.ts.map +0 -1
  504. package/dist/browser/serialization/json/encoding.js.map +0 -1
  505. package/dist/browser/serialization/json/expression.d.ts +0 -32
  506. package/dist/browser/serialization/json/expression.d.ts.map +0 -1
  507. package/dist/browser/serialization/json/expression.js +0 -494
  508. package/dist/browser/serialization/json/expression.js.map +0 -1
  509. package/dist/browser/serialization/json/lower.d.ts.map +0 -1
  510. package/dist/browser/serialization/json/lower.js.map +0 -1
  511. package/dist/browser/serialization/json/pluralize-config.d.ts.map +0 -1
  512. package/dist/browser/serialization/json/pluralize-config.js.map +0 -1
  513. package/dist/browser/serialization/json/util.d.ts.map +0 -1
  514. package/dist/browser/serialization/json/util.js.map +0 -1
  515. package/dist/browser/serialization/utils.d.ts +0 -3
  516. package/dist/browser/serialization/utils.d.ts.map +0 -1
  517. package/dist/browser/serialization/utils.js +0 -146
  518. package/dist/browser/serialization/utils.js.map +0 -1
  519. package/dist/commonjs/serialization/contract/generated/ast.d.ts.map +0 -1
  520. package/dist/commonjs/serialization/contract/index.d.ts +0 -2
  521. package/dist/commonjs/serialization/contract/index.d.ts.map +0 -1
  522. package/dist/commonjs/serialization/contract/index.js.map +0 -7
  523. package/dist/commonjs/serialization/json/encoding.d.ts.map +0 -1
  524. package/dist/commonjs/serialization/json/encoding.js.map +0 -7
  525. package/dist/commonjs/serialization/json/expression.d.ts +0 -32
  526. package/dist/commonjs/serialization/json/expression.d.ts.map +0 -1
  527. package/dist/commonjs/serialization/json/expression.js +0 -509
  528. package/dist/commonjs/serialization/json/expression.js.map +0 -7
  529. package/dist/commonjs/serialization/json/lower.d.ts.map +0 -1
  530. package/dist/commonjs/serialization/json/lower.js.map +0 -7
  531. package/dist/commonjs/serialization/json/pluralize-config.d.ts.map +0 -1
  532. package/dist/commonjs/serialization/json/util.d.ts.map +0 -1
  533. package/dist/commonjs/serialization/utils.d.ts +0 -3
  534. package/dist/commonjs/serialization/utils.d.ts.map +0 -1
  535. package/dist/commonjs/serialization/utils.js +0 -169
  536. package/dist/commonjs/serialization/utils.js.map +0 -7
  537. package/dist/esm/serialization/contract/generated/ast.d.ts.map +0 -1
  538. package/dist/esm/serialization/contract/generated/ast.js.map +0 -1
  539. package/dist/esm/serialization/contract/index.d.ts +0 -2
  540. package/dist/esm/serialization/contract/index.d.ts.map +0 -1
  541. package/dist/esm/serialization/contract/index.js.map +0 -1
  542. package/dist/esm/serialization/json/encoding.d.ts.map +0 -1
  543. package/dist/esm/serialization/json/encoding.js.map +0 -1
  544. package/dist/esm/serialization/json/expression.d.ts +0 -32
  545. package/dist/esm/serialization/json/expression.d.ts.map +0 -1
  546. package/dist/esm/serialization/json/expression.js +0 -494
  547. package/dist/esm/serialization/json/expression.js.map +0 -1
  548. package/dist/esm/serialization/json/lower.d.ts.map +0 -1
  549. package/dist/esm/serialization/json/lower.js.map +0 -1
  550. package/dist/esm/serialization/json/pluralize-config.d.ts.map +0 -1
  551. package/dist/esm/serialization/json/pluralize-config.js.map +0 -1
  552. package/dist/esm/serialization/json/util.d.ts.map +0 -1
  553. package/dist/esm/serialization/json/util.js.map +0 -1
  554. package/dist/esm/serialization/utils.d.ts +0 -3
  555. package/dist/esm/serialization/utils.d.ts.map +0 -1
  556. package/dist/esm/serialization/utils.js +0 -146
  557. package/dist/esm/serialization/utils.js.map +0 -1
  558. /package/dist/browser/serialization/{contract → ast}/generated/ast.d.ts +0 -0
  559. /package/dist/browser/serialization/{contract → ast}/generated/ast.js +0 -0
  560. /package/dist/browser/serialization/{contract → ast}/index.js +0 -0
  561. /package/dist/browser/serialization/{json/pluralize-config.d.ts → pluralize-config.d.ts} +0 -0
  562. /package/dist/browser/serialization/{json/pluralize-config.js → pluralize-config.js} +0 -0
  563. /package/dist/commonjs/serialization/{contract → ast}/generated/ast.d.ts +0 -0
  564. /package/dist/commonjs/serialization/{contract → ast}/generated/ast.js +0 -0
  565. /package/dist/commonjs/serialization/{json/pluralize-config.d.ts → pluralize-config.d.ts} +0 -0
  566. /package/dist/commonjs/serialization/{json/pluralize-config.js → pluralize-config.js} +0 -0
  567. /package/dist/esm/serialization/{contract → ast}/generated/ast.d.ts +0 -0
  568. /package/dist/esm/serialization/{contract → ast}/generated/ast.js +0 -0
  569. /package/dist/esm/serialization/{contract → ast}/index.js +0 -0
  570. /package/dist/esm/serialization/{json/pluralize-config.d.ts → pluralize-config.d.ts} +0 -0
  571. /package/dist/esm/serialization/{json/pluralize-config.js → pluralize-config.js} +0 -0
@@ -0,0 +1,10 @@
1
+ import type { DeclarableBodyNode, ObjectValue, ResourceDeclarationNode } from "./index.js";
2
+ /** Transforms a resource's object body while preserving conditions and loops. */
3
+ export declare function updateResourceBody(body: DeclarableBodyNode, transform: (value: ObjectValue) => ObjectValue): DeclarableBodyNode;
4
+ /** Gets the object body beneath a resource's condition and loop wrappers. */
5
+ export declare function getResourceBody(body: DeclarableBodyNode): ObjectValue;
6
+ /** Removes the scope field without changing other resource declaration data. */
7
+ export declare function removeResourceScope(resource: ResourceDeclarationNode): ResourceDeclarationNode;
8
+ /** Gets the parent declaration identifier, including indexed parent accesses. */
9
+ export declare function getResourceArmParentIdentifier(resource: ResourceDeclarationNode): string | undefined;
10
+ //# sourceMappingURL=resource-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-utils.d.ts","sourceRoot":"","sources":["../../../../src/serialization/ast/resource-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE3F,iFAAiF;AACjF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,WAAW,GAC7C,kBAAkB,CAgBpB;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,WAAW,CAUrE;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,uBAAuB,CAQ9F;AAED,iFAAiF;AACjF,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,uBAAuB,GAChC,MAAM,GAAG,SAAS,CAQpB"}
@@ -0,0 +1,71 @@
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 resource_utils_exports = {};
19
+ __export(resource_utils_exports, {
20
+ getResourceArmParentIdentifier: () => getResourceArmParentIdentifier,
21
+ getResourceBody: () => getResourceBody,
22
+ removeResourceScope: () => removeResourceScope,
23
+ updateResourceBody: () => updateResourceBody
24
+ });
25
+ module.exports = __toCommonJS(resource_utils_exports);
26
+ function updateResourceBody(body, transform) {
27
+ switch (body.kind) {
28
+ case "object":
29
+ return transform(body);
30
+ case "if-condition":
31
+ case "for-expression": {
32
+ if (body.body.kind !== "object" && body.body.kind !== "if-condition" && body.body.kind !== "for-expression") {
33
+ throw new Error(`Invalid resource body "${body.body.kind}".`);
34
+ }
35
+ return { ...body, body: updateResourceBody(body.body, transform) };
36
+ }
37
+ }
38
+ }
39
+ function getResourceBody(body) {
40
+ if (body.kind === "object") return body;
41
+ if (body.body.kind !== "object" && body.body.kind !== "if-condition" && body.body.kind !== "for-expression") {
42
+ throw new Error(`Invalid resource body "${body.body.kind}".`);
43
+ }
44
+ return getResourceBody(body.body);
45
+ }
46
+ function removeResourceScope(resource) {
47
+ return {
48
+ ...resource,
49
+ value: updateResourceBody(resource.value, (body) => {
50
+ const { scope: _scope, ...rest } = body.value;
51
+ return { ...body, value: rest };
52
+ })
53
+ };
54
+ }
55
+ function getResourceArmParentIdentifier(resource) {
56
+ const parent = getResourceBody(resource.value).value.parent;
57
+ if (parent === void 0) return void 0;
58
+ if (parent.kind === "identifier") return parent.id;
59
+ if (parent.kind === "array-access" && parent.base.kind === "identifier") {
60
+ return parent.base.id;
61
+ }
62
+ throw new Error(`Unsupported ARM parent expression for "${resource.bicepIdentifier}".`);
63
+ }
64
+ // Annotate the CommonJS export names for ESM import in node:
65
+ 0 && (module.exports = {
66
+ getResourceArmParentIdentifier,
67
+ getResourceBody,
68
+ removeResourceScope,
69
+ updateResourceBody
70
+ });
71
+ //# sourceMappingURL=resource-utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/serialization/ast/resource-utils.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { DeclarableBodyNode, ObjectValue, ResourceDeclarationNode } from \"./index.js\";\n\n/** Transforms a resource's object body while preserving conditions and loops. */\nexport function updateResourceBody(\n body: DeclarableBodyNode,\n transform: (value: ObjectValue) => ObjectValue,\n): DeclarableBodyNode {\n switch (body.kind) {\n case \"object\":\n return transform(body);\n case \"if-condition\":\n case \"for-expression\": {\n if (\n body.body.kind !== \"object\" &&\n body.body.kind !== \"if-condition\" &&\n body.body.kind !== \"for-expression\"\n ) {\n throw new Error(`Invalid resource body \"${body.body.kind}\".`);\n }\n return { ...body, body: updateResourceBody(body.body, transform) };\n }\n }\n}\n\n/** Gets the object body beneath a resource's condition and loop wrappers. */\nexport function getResourceBody(body: DeclarableBodyNode): ObjectValue {\n if (body.kind === \"object\") return body;\n if (\n body.body.kind !== \"object\" &&\n body.body.kind !== \"if-condition\" &&\n body.body.kind !== \"for-expression\"\n ) {\n throw new Error(`Invalid resource body \"${body.body.kind}\".`);\n }\n return getResourceBody(body.body);\n}\n\n/** Removes the scope field without changing other resource declaration data. */\nexport function removeResourceScope(resource: ResourceDeclarationNode): ResourceDeclarationNode {\n return {\n ...resource,\n value: updateResourceBody(resource.value, (body) => {\n const { scope: _scope, ...rest } = body.value;\n return { ...body, value: rest };\n }),\n };\n}\n\n/** Gets the parent declaration identifier, including indexed parent accesses. */\nexport function getResourceArmParentIdentifier(\n resource: ResourceDeclarationNode,\n): string | undefined {\n const parent = getResourceBody(resource.value).value.parent;\n if (parent === undefined) return undefined;\n if (parent.kind === \"identifier\") return parent.id;\n if (parent.kind === \"array-access\" && parent.base.kind === \"identifier\") {\n return parent.base.id;\n }\n throw new Error(`Unsupported ARM parent expression for \"${resource.bicepIdentifier}\".`);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,SAAS,mBACd,MACA,WACoB;AACpB,UAAQ,KAAK,MAAM;AAAA,IACjB,KAAK;AACH,aAAO,UAAU,IAAI;AAAA,IACvB,KAAK;AAAA,IACL,KAAK,kBAAkB;AACrB,UACE,KAAK,KAAK,SAAS,YACnB,KAAK,KAAK,SAAS,kBACnB,KAAK,KAAK,SAAS,kBACnB;AACA,cAAM,IAAI,MAAM,0BAA0B,KAAK,KAAK,IAAI,IAAI;AAAA,MAC9D;AACA,aAAO,EAAE,GAAG,MAAM,MAAM,mBAAmB,KAAK,MAAM,SAAS,EAAE;AAAA,IACnE;AAAA,EACF;AACF;AAGO,SAAS,gBAAgB,MAAuC;AACrE,MAAI,KAAK,SAAS,SAAU,QAAO;AACnC,MACE,KAAK,KAAK,SAAS,YACnB,KAAK,KAAK,SAAS,kBACnB,KAAK,KAAK,SAAS,kBACnB;AACA,UAAM,IAAI,MAAM,0BAA0B,KAAK,KAAK,IAAI,IAAI;AAAA,EAC9D;AACA,SAAO,gBAAgB,KAAK,IAAI;AAClC;AAGO,SAAS,oBAAoB,UAA4D;AAC9F,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO,mBAAmB,SAAS,OAAO,CAAC,SAAS;AAClD,YAAM,EAAE,OAAO,QAAQ,GAAG,KAAK,IAAI,KAAK;AACxC,aAAO,EAAE,GAAG,MAAM,OAAO,KAAK;AAAA,IAChC,CAAC;AAAA,EACH;AACF;AAGO,SAAS,+BACd,UACoB;AACpB,QAAM,SAAS,gBAAgB,SAAS,KAAK,EAAE,MAAM;AACrD,MAAI,WAAW,OAAW,QAAO;AACjC,MAAI,OAAO,SAAS,aAAc,QAAO,OAAO;AAChD,MAAI,OAAO,SAAS,kBAAkB,OAAO,KAAK,SAAS,cAAc;AACvE,WAAO,OAAO,KAAK;AAAA,EACrB;AACA,QAAM,IAAI,MAAM,0CAA0C,SAAS,eAAe,IAAI;AACxF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,12 @@
1
+ import type { Stack } from "../../../constructs/stack.js";
2
+ import type { ResourceDeclaration } from "../../../constructs/resource/resource.js";
3
+ import type { DeclarationSymbolMap } from "../../symbol-map.js";
4
+ export interface AuthoredResourceContext {
5
+ /** Nearest authored resource ancestor, including resource groups. */
6
+ readonly authoredParent: string | undefined;
7
+ /** Existing-explicit lookups affect placement; pass-through-explicit scopes only affect emitted bodies. */
8
+ readonly scopeOrigin: "existing-explicit" | "pass-through-explicit" | "resourceGroup" | "none";
9
+ }
10
+ export declare function validateResourceAncestry(stack: Stack, resources: readonly ResourceDeclaration[]): void;
11
+ export declare function collectAuthoredResourceContexts(resources: readonly ResourceDeclaration[], symbols: DeclarationSymbolMap): ReadonlyMap<string, AuthoredResourceContext>;
12
+ //# sourceMappingURL=authored-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-context.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/authored-context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAMpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,MAAM,WAAW,uBAAuB;IACtC,qEAAqE;IACrE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,2GAA2G;IAC3G,QAAQ,CAAC,WAAW,EAAE,mBAAmB,GAAG,uBAAuB,GAAG,eAAe,GAAG,MAAM,CAAC;CAChG;AAWD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,mBAAmB,EAAE,GACxC,IAAI,CAcN;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,SAAS,mBAAmB,EAAE,EACzC,OAAO,EAAE,oBAAoB,GAC5B,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CA4B9C"}
@@ -0,0 +1,74 @@
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 authored_context_exports = {};
19
+ __export(authored_context_exports, {
20
+ collectAuthoredResourceContexts: () => collectAuthoredResourceContexts,
21
+ validateResourceAncestry: () => validateResourceAncestry
22
+ });
23
+ module.exports = __toCommonJS(authored_context_exports);
24
+ var import_resource_utils = require("../../../constructs/resource/resource-utils.js");
25
+ var import_resource_relationships = require("../../../constructs/resource/resource-relationships.js");
26
+ var import_utils = require("../../../expression/utils.js");
27
+ function usesPassThroughExplicitScope(resource) {
28
+ const scope = (0, import_resource_relationships.getResourceScope)(resource);
29
+ return scope !== void 0 && (resource.existing !== true || (0, import_utils.getScopeFunctionTarget)(scope) === void 0);
30
+ }
31
+ function validateResourceAncestry(stack, resources) {
32
+ const resourceSet = new Set(resources);
33
+ for (const resource of resources) {
34
+ const ancestors = /* @__PURE__ */ new Set([resource.self]);
35
+ for (let parent = resource.parent; parent !== void 0; parent = parent.parent) {
36
+ if (ancestors.has(parent.self)) {
37
+ throw new Error(`Cyclic resource attachment in Stack "${stack.name}".`);
38
+ }
39
+ ancestors.add(parent.self);
40
+ if ((0, import_resource_utils.isResourceDeclaration)(parent) && !resourceSet.has(parent.self)) {
41
+ throw new Error(`Resource "${resource.type}" has a parent outside Stack "${stack.name}".`);
42
+ }
43
+ }
44
+ }
45
+ }
46
+ function collectAuthoredResourceContexts(resources, symbols) {
47
+ const resourceContexts = /* @__PURE__ */ new Map();
48
+ for (const resource of resources) {
49
+ const identifier = symbols.get(resource);
50
+ if (identifier === void 0) {
51
+ throw new Error(`Missing symbol for resource type "${resource.type}".`);
52
+ }
53
+ let authoredParent;
54
+ for (let parent = resource.parent; parent !== void 0; parent = parent.parent) {
55
+ if (!(0, import_resource_utils.isResourceDeclaration)(parent)) continue;
56
+ authoredParent = symbols.get(parent.self);
57
+ if (authoredParent === void 0) {
58
+ throw new Error(`Missing authored parent symbol for resource "${identifier}".`);
59
+ }
60
+ break;
61
+ }
62
+ resourceContexts.set(identifier, {
63
+ authoredParent,
64
+ scopeOrigin: usesPassThroughExplicitScope(resource) ? "pass-through-explicit" : (0, import_resource_relationships.getResourceScope)(resource) !== void 0 ? "existing-explicit" : (0, import_resource_relationships.getArmParent)(resource) === void 0 && (0, import_resource_relationships.getResourceGroupAncestor)(resource) !== void 0 ? "resourceGroup" : "none"
65
+ });
66
+ }
67
+ return resourceContexts;
68
+ }
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ collectAuthoredResourceContexts,
72
+ validateResourceAncestry
73
+ });
74
+ //# sourceMappingURL=authored-context.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/serialization/bicep/file-layout/authored-context.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isResourceDeclaration } from \"../../../constructs/resource/resource-utils.js\";\nimport type { Stack } from \"../../../constructs/stack.js\";\nimport type { ProvisioningComponent } from \"../../../constructs/provisioning-component.js\";\nimport type { ResourceDeclaration } from \"../../../constructs/resource/resource.js\";\nimport {\n getArmParent,\n getResourceGroupAncestor,\n getResourceScope,\n} from \"../../../constructs/resource/resource-relationships.js\";\nimport type { DeclarationSymbolMap } from \"../../symbol-map.js\";\nimport { getScopeFunctionTarget } from \"../../../expression/utils.js\";\n\nexport interface AuthoredResourceContext {\n /** Nearest authored resource ancestor, including resource groups. */\n readonly authoredParent: string | undefined;\n /** Existing-explicit lookups affect placement; pass-through-explicit scopes only affect emitted bodies. */\n readonly scopeOrigin: \"existing-explicit\" | \"pass-through-explicit\" | \"resourceGroup\" | \"none\";\n}\n\n/** Distinguishes pass-through declaration data from supported existing lookups. */\nfunction usesPassThroughExplicitScope(resource: ResourceDeclaration): boolean {\n const scope = getResourceScope(resource);\n return (\n scope !== undefined &&\n (resource.existing !== true || getScopeFunctionTarget(scope) === undefined)\n );\n}\n\nexport function validateResourceAncestry(\n stack: Stack,\n resources: readonly ResourceDeclaration[],\n): void {\n const resourceSet = new Set(resources);\n for (const resource of resources) {\n const ancestors = new Set<ProvisioningComponent>([resource.self]);\n for (let parent = resource.parent; parent !== undefined; parent = parent.parent) {\n if (ancestors.has(parent.self)) {\n throw new Error(`Cyclic resource attachment in Stack \"${stack.name}\".`);\n }\n ancestors.add(parent.self);\n if (isResourceDeclaration(parent) && !resourceSet.has(parent.self)) {\n throw new Error(`Resource \"${resource.type}\" has a parent outside Stack \"${stack.name}\".`);\n }\n }\n }\n}\n\nexport function collectAuthoredResourceContexts(\n resources: readonly ResourceDeclaration[],\n symbols: DeclarationSymbolMap,\n): ReadonlyMap<string, AuthoredResourceContext> {\n const resourceContexts = new Map<string, AuthoredResourceContext>();\n for (const resource of resources) {\n const identifier = symbols.get(resource);\n if (identifier === undefined) {\n throw new Error(`Missing symbol for resource type \"${resource.type}\".`);\n }\n let authoredParent: string | undefined;\n for (let parent = resource.parent; parent !== undefined; parent = parent.parent) {\n if (!isResourceDeclaration(parent)) continue;\n authoredParent = symbols.get(parent.self);\n if (authoredParent === undefined) {\n throw new Error(`Missing authored parent symbol for resource \"${identifier}\".`);\n }\n break;\n }\n resourceContexts.set(identifier, {\n authoredParent,\n scopeOrigin: usesPassThroughExplicitScope(resource)\n ? \"pass-through-explicit\"\n : getResourceScope(resource) !== undefined\n ? \"existing-explicit\"\n : getArmParent(resource) === undefined && getResourceGroupAncestor(resource) !== undefined\n ? \"resourceGroup\"\n : \"none\",\n });\n }\n return resourceContexts;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,4BAAsC;AAItC,oCAIO;AAEP,mBAAuC;AAUvC,SAAS,6BAA6B,UAAwC;AAC5E,QAAM,YAAQ,gDAAiB,QAAQ;AACvC,SACE,UAAU,WACT,SAAS,aAAa,YAAQ,qCAAuB,KAAK,MAAM;AAErE;AAEO,SAAS,yBACd,OACA,WACM;AACN,QAAM,cAAc,IAAI,IAAI,SAAS;AACrC,aAAW,YAAY,WAAW;AAChC,UAAM,YAAY,oBAAI,IAA2B,CAAC,SAAS,IAAI,CAAC;AAChE,aAAS,SAAS,SAAS,QAAQ,WAAW,QAAW,SAAS,OAAO,QAAQ;AAC/E,UAAI,UAAU,IAAI,OAAO,IAAI,GAAG;AAC9B,cAAM,IAAI,MAAM,wCAAwC,MAAM,IAAI,IAAI;AAAA,MACxE;AACA,gBAAU,IAAI,OAAO,IAAI;AACzB,cAAI,6CAAsB,MAAM,KAAK,CAAC,YAAY,IAAI,OAAO,IAAI,GAAG;AAClE,cAAM,IAAI,MAAM,aAAa,SAAS,IAAI,iCAAiC,MAAM,IAAI,IAAI;AAAA,MAC3F;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,gCACd,WACA,SAC8C;AAC9C,QAAM,mBAAmB,oBAAI,IAAqC;AAClE,aAAW,YAAY,WAAW;AAChC,UAAM,aAAa,QAAQ,IAAI,QAAQ;AACvC,QAAI,eAAe,QAAW;AAC5B,YAAM,IAAI,MAAM,qCAAqC,SAAS,IAAI,IAAI;AAAA,IACxE;AACA,QAAI;AACJ,aAAS,SAAS,SAAS,QAAQ,WAAW,QAAW,SAAS,OAAO,QAAQ;AAC/E,UAAI,KAAC,6CAAsB,MAAM,EAAG;AACpC,uBAAiB,QAAQ,IAAI,OAAO,IAAI;AACxC,UAAI,mBAAmB,QAAW;AAChC,cAAM,IAAI,MAAM,gDAAgD,UAAU,IAAI;AAAA,MAChF;AACA;AAAA,IACF;AACA,qBAAiB,IAAI,YAAY;AAAA,MAC/B;AAAA,MACA,aAAa,6BAA6B,QAAQ,IAC9C,8BACA,gDAAiB,QAAQ,MAAM,SAC7B,0BACA,4CAAa,QAAQ,MAAM,cAAa,wDAAyB,QAAQ,MAAM,SAC7E,kBACA;AAAA,IACV,CAAC;AAAA,EACH;AACA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,11 @@
1
+ import type { ExpressionReference } from "../../ast/expression-rewriter.js";
2
+ import type { BicepAst } from "./file-preparation.js";
3
+ export declare const RESOURCE_NAME_OVERRIDES: ReadonlyMap<string, string>;
4
+ export declare class BicepNamer {
5
+ #private;
6
+ constructor(ast: BicepAst);
7
+ moduleName(rootIdentifier: string, fileName: string): string;
8
+ parameterName(reference: ExpressionReference): string;
9
+ outputName(reference: ExpressionReference, preferredName?: string): string;
10
+ }
11
+ //# sourceMappingURL=bicep-namer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bicep-namer.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/bicep-namer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAW9D,CAAC;AAuBH,qBAAa,UAAU;;gBAIT,GAAG,EAAE,QAAQ;IAczB,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQ5D,aAAa,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM;IAIrD,UAAU,CACR,SAAS,EAAE,mBAAmB,EAC9B,aAAa,GAAE,MAAqC,GACnD,MAAM;CAGV"}
@@ -0,0 +1,130 @@
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 bicep_namer_exports = {};
19
+ __export(bicep_namer_exports, {
20
+ BicepNamer: () => BicepNamer,
21
+ RESOURCE_NAME_OVERRIDES: () => RESOURCE_NAME_OVERRIDES
22
+ });
23
+ module.exports = __toCommonJS(bicep_namer_exports);
24
+ var import_identifiers = require("../../identifiers.js");
25
+ var import_expression_walker = require("../../ast/expression-walker.js");
26
+ const RESOURCE_NAME_OVERRIDES = /* @__PURE__ */ new Map([
27
+ ["resourceGroup", "rg"],
28
+ ["subscription", "subscriptionResource"],
29
+ ["managementGroup", "managementGroupResource"],
30
+ ["tenant", "tenantResource"],
31
+ ["deployment", "deploymentResource"],
32
+ ["environment", "environmentResource"],
33
+ ["reference", "referenceResource"],
34
+ ["guid", "guidResource"],
35
+ ["format", "formatResource"],
36
+ ["range", "rangeResource"]
37
+ ]);
38
+ function collectLoopBindings(ast) {
39
+ const loopBindings = /* @__PURE__ */ new Set();
40
+ for (const declaration of [
41
+ ...ast.resources.values(),
42
+ ...ast.parameters.values(),
43
+ ...ast.variables.values(),
44
+ ...ast.outputs.values(),
45
+ ...ast.modules.values()
46
+ ]) {
47
+ (0, import_expression_walker.walkDeclarationExpressions)(declaration, (node) => {
48
+ if (node.kind === "for-expression") {
49
+ loopBindings.add(node.itemVariable);
50
+ if (node.indexVariable !== void 0) {
51
+ loopBindings.add(node.indexVariable);
52
+ }
53
+ }
54
+ });
55
+ }
56
+ return loopBindings;
57
+ }
58
+ class BicepNamer {
59
+ #usedNames;
60
+ #usedOutputNames = /* @__PURE__ */ new Set();
61
+ constructor(ast) {
62
+ this.#usedNames = new Set(
63
+ [...RESOURCE_NAME_OVERRIDES.keys(), ...collectLoopBindings(ast)].map(
64
+ (name) => name.toLowerCase()
65
+ )
66
+ );
67
+ for (const declarations of [ast.parameters, ast.variables, ast.resources, ast.modules]) {
68
+ for (const declaration of declarations.values()) {
69
+ this.#usedNames.add(declaration.bicepIdentifier.toLowerCase());
70
+ }
71
+ }
72
+ for (const name of ast.outputs.keys()) this.#usedOutputNames.add(name.toLowerCase());
73
+ }
74
+ moduleName(rootIdentifier, fileName) {
75
+ return createUniqueName(
76
+ `${rootIdentifier}Module`,
77
+ (0, import_identifiers.sanitizeIdentifier)(fileName.replace(/\.bicep$/u, ""), "file"),
78
+ this.#usedNames
79
+ );
80
+ }
81
+ parameterName(reference) {
82
+ return createUniqueName(buildRefParamName(reference), reference.identifier, this.#usedNames);
83
+ }
84
+ outputName(reference, preferredName = buildRefParamName(reference)) {
85
+ return createUniqueName(preferredName, reference.identifier, this.#usedOutputNames);
86
+ }
87
+ }
88
+ function buildRefParamName(reference) {
89
+ const segments = reference.path.map((segment) => {
90
+ if (typeof segment === "number") return String(segment);
91
+ const name = (0, import_identifiers.sanitizeIdentifier)(segment);
92
+ return name.charAt(0).toUpperCase() + name.slice(1);
93
+ });
94
+ let modifiers = "";
95
+ let current = reference.expression;
96
+ let depth = 0;
97
+ while (current.kind === "property-access" || current.kind === "array-access") {
98
+ if (current.nullish) modifiers += `Safe${depth}`;
99
+ if (current.kind === "array-access" && current.fromEnd) {
100
+ modifiers += `FromEnd${depth}`;
101
+ }
102
+ current = current.base;
103
+ depth++;
104
+ }
105
+ return reference.identifier + segments.join("") + modifiers;
106
+ }
107
+ function createUniqueName(name, alias, usedNames) {
108
+ if (!usedNames.has(name.toLowerCase())) {
109
+ usedNames.add(name.toLowerCase());
110
+ return name;
111
+ }
112
+ const stem = `${alias}${name.charAt(0).toUpperCase()}${name.slice(1)}`;
113
+ if (!usedNames.has(stem.toLowerCase())) {
114
+ usedNames.add(stem.toLowerCase());
115
+ return stem;
116
+ }
117
+ let counter = 2;
118
+ while (usedNames.has(`${stem}${counter}`.toLowerCase())) {
119
+ counter += 1;
120
+ }
121
+ const uniqueName = `${stem}${counter}`;
122
+ usedNames.add(uniqueName.toLowerCase());
123
+ return uniqueName;
124
+ }
125
+ // Annotate the CommonJS export names for ESM import in node:
126
+ 0 && (module.exports = {
127
+ BicepNamer,
128
+ RESOURCE_NAME_OVERRIDES
129
+ });
130
+ //# sourceMappingURL=bicep-namer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/serialization/bicep/file-layout/bicep-namer.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { sanitizeIdentifier } from \"../../identifiers.js\";\nimport { walkDeclarationExpressions } from \"../../ast/expression-walker.js\";\nimport type { ExpressionReference } from \"../../ast/expression-rewriter.js\";\nimport type { BicepAst } from \"./file-preparation.js\";\n\n// Deliberately limited to built-in names likely to collide with resource symbols.\nexport const RESOURCE_NAME_OVERRIDES: ReadonlyMap<string, string> = new Map([\n [\"resourceGroup\", \"rg\"],\n [\"subscription\", \"subscriptionResource\"],\n [\"managementGroup\", \"managementGroupResource\"],\n [\"tenant\", \"tenantResource\"],\n [\"deployment\", \"deploymentResource\"],\n [\"environment\", \"environmentResource\"],\n [\"reference\", \"referenceResource\"],\n [\"guid\", \"guidResource\"],\n [\"format\", \"formatResource\"],\n [\"range\", \"rangeResource\"],\n]);\n\nfunction collectLoopBindings(ast: BicepAst): ReadonlySet<string> {\n const loopBindings = new Set<string>();\n for (const declaration of [\n ...ast.resources.values(),\n ...ast.parameters.values(),\n ...ast.variables.values(),\n ...ast.outputs.values(),\n ...ast.modules.values(),\n ]) {\n walkDeclarationExpressions(declaration, (node) => {\n if (node.kind === \"for-expression\") {\n loopBindings.add(node.itemVariable);\n if (node.indexVariable !== undefined) {\n loopBindings.add(node.indexVariable);\n }\n }\n });\n }\n return loopBindings;\n}\n\nexport class BicepNamer {\n readonly #usedNames: Set<string>;\n readonly #usedOutputNames = new Set<string>();\n\n constructor(ast: BicepAst) {\n this.#usedNames = new Set(\n [...RESOURCE_NAME_OVERRIDES.keys(), ...collectLoopBindings(ast)].map((name) =>\n name.toLowerCase(),\n ),\n );\n for (const declarations of [ast.parameters, ast.variables, ast.resources, ast.modules]) {\n for (const declaration of declarations.values()) {\n this.#usedNames.add(declaration.bicepIdentifier.toLowerCase());\n }\n }\n for (const name of ast.outputs.keys()) this.#usedOutputNames.add(name.toLowerCase());\n }\n\n moduleName(rootIdentifier: string, fileName: string): string {\n return createUniqueName(\n `${rootIdentifier}Module`,\n sanitizeIdentifier(fileName.replace(/\\.bicep$/u, \"\"), \"file\"),\n this.#usedNames,\n );\n }\n\n parameterName(reference: ExpressionReference): string {\n return createUniqueName(buildRefParamName(reference), reference.identifier, this.#usedNames);\n }\n\n outputName(\n reference: ExpressionReference,\n preferredName: string = buildRefParamName(reference),\n ): string {\n return createUniqueName(preferredName, reference.identifier, this.#usedOutputNames);\n }\n}\n\nfunction buildRefParamName(reference: ExpressionReference): string {\n const segments = reference.path.map((segment) => {\n if (typeof segment === \"number\") return String(segment);\n const name = sanitizeIdentifier(segment);\n return name.charAt(0).toUpperCase() + name.slice(1);\n });\n let modifiers = \"\";\n let current = reference.expression;\n let depth = 0;\n while (current.kind === \"property-access\" || current.kind === \"array-access\") {\n if (current.nullish) modifiers += `Safe${depth}`;\n if (current.kind === \"array-access\" && current.fromEnd) {\n modifiers += `FromEnd${depth}`;\n }\n current = current.base;\n depth++;\n }\n return reference.identifier + segments.join(\"\") + modifiers;\n}\n\nfunction createUniqueName(name: string, alias: string, usedNames: Set<string>): string {\n if (!usedNames.has(name.toLowerCase())) {\n usedNames.add(name.toLowerCase());\n return name;\n }\n\n const stem = `${alias}${name.charAt(0).toUpperCase()}${name.slice(1)}`;\n\n if (!usedNames.has(stem.toLowerCase())) {\n usedNames.add(stem.toLowerCase());\n return stem;\n }\n\n let counter = 2;\n while (usedNames.has(`${stem}${counter}`.toLowerCase())) {\n counter += 1;\n }\n\n const uniqueName = `${stem}${counter}`;\n\n usedNames.add(uniqueName.toLowerCase());\n return uniqueName;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,yBAAmC;AACnC,+BAA2C;AAKpC,MAAM,0BAAuD,oBAAI,IAAI;AAAA,EAC1E,CAAC,iBAAiB,IAAI;AAAA,EACtB,CAAC,gBAAgB,sBAAsB;AAAA,EACvC,CAAC,mBAAmB,yBAAyB;AAAA,EAC7C,CAAC,UAAU,gBAAgB;AAAA,EAC3B,CAAC,cAAc,oBAAoB;AAAA,EACnC,CAAC,eAAe,qBAAqB;AAAA,EACrC,CAAC,aAAa,mBAAmB;AAAA,EACjC,CAAC,QAAQ,cAAc;AAAA,EACvB,CAAC,UAAU,gBAAgB;AAAA,EAC3B,CAAC,SAAS,eAAe;AAC3B,CAAC;AAED,SAAS,oBAAoB,KAAoC;AAC/D,QAAM,eAAe,oBAAI,IAAY;AACrC,aAAW,eAAe;AAAA,IACxB,GAAG,IAAI,UAAU,OAAO;AAAA,IACxB,GAAG,IAAI,WAAW,OAAO;AAAA,IACzB,GAAG,IAAI,UAAU,OAAO;AAAA,IACxB,GAAG,IAAI,QAAQ,OAAO;AAAA,IACtB,GAAG,IAAI,QAAQ,OAAO;AAAA,EACxB,GAAG;AACD,6DAA2B,aAAa,CAAC,SAAS;AAChD,UAAI,KAAK,SAAS,kBAAkB;AAClC,qBAAa,IAAI,KAAK,YAAY;AAClC,YAAI,KAAK,kBAAkB,QAAW;AACpC,uBAAa,IAAI,KAAK,aAAa;AAAA,QACrC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAEO,MAAM,WAAW;AAAA,EACb;AAAA,EACA,mBAAmB,oBAAI,IAAY;AAAA,EAE5C,YAAY,KAAe;AACzB,SAAK,aAAa,IAAI;AAAA,MACpB,CAAC,GAAG,wBAAwB,KAAK,GAAG,GAAG,oBAAoB,GAAG,CAAC,EAAE;AAAA,QAAI,CAAC,SACpE,KAAK,YAAY;AAAA,MACnB;AAAA,IACF;AACA,eAAW,gBAAgB,CAAC,IAAI,YAAY,IAAI,WAAW,IAAI,WAAW,IAAI,OAAO,GAAG;AACtF,iBAAW,eAAe,aAAa,OAAO,GAAG;AAC/C,aAAK,WAAW,IAAI,YAAY,gBAAgB,YAAY,CAAC;AAAA,MAC/D;AAAA,IACF;AACA,eAAW,QAAQ,IAAI,QAAQ,KAAK,EAAG,MAAK,iBAAiB,IAAI,KAAK,YAAY,CAAC;AAAA,EACrF;AAAA,EAEA,WAAW,gBAAwB,UAA0B;AAC3D,WAAO;AAAA,MACL,GAAG,cAAc;AAAA,UACjB,uCAAmB,SAAS,QAAQ,aAAa,EAAE,GAAG,MAAM;AAAA,MAC5D,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EAEA,cAAc,WAAwC;AACpD,WAAO,iBAAiB,kBAAkB,SAAS,GAAG,UAAU,YAAY,KAAK,UAAU;AAAA,EAC7F;AAAA,EAEA,WACE,WACA,gBAAwB,kBAAkB,SAAS,GAC3C;AACR,WAAO,iBAAiB,eAAe,UAAU,YAAY,KAAK,gBAAgB;AAAA,EACpF;AACF;AAEA,SAAS,kBAAkB,WAAwC;AACjE,QAAM,WAAW,UAAU,KAAK,IAAI,CAAC,YAAY;AAC/C,QAAI,OAAO,YAAY,SAAU,QAAO,OAAO,OAAO;AACtD,UAAM,WAAO,uCAAmB,OAAO;AACvC,WAAO,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC;AAAA,EACpD,CAAC;AACD,MAAI,YAAY;AAChB,MAAI,UAAU,UAAU;AACxB,MAAI,QAAQ;AACZ,SAAO,QAAQ,SAAS,qBAAqB,QAAQ,SAAS,gBAAgB;AAC5E,QAAI,QAAQ,QAAS,cAAa,OAAO,KAAK;AAC9C,QAAI,QAAQ,SAAS,kBAAkB,QAAQ,SAAS;AACtD,mBAAa,UAAU,KAAK;AAAA,IAC9B;AACA,cAAU,QAAQ;AAClB;AAAA,EACF;AACA,SAAO,UAAU,aAAa,SAAS,KAAK,EAAE,IAAI;AACpD;AAEA,SAAS,iBAAiB,MAAc,OAAe,WAAgC;AACrF,MAAI,CAAC,UAAU,IAAI,KAAK,YAAY,CAAC,GAAG;AACtC,cAAU,IAAI,KAAK,YAAY,CAAC;AAChC,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,GAAG,KAAK,GAAG,KAAK,OAAO,CAAC,EAAE,YAAY,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;AAEpE,MAAI,CAAC,UAAU,IAAI,KAAK,YAAY,CAAC,GAAG;AACtC,cAAU,IAAI,KAAK,YAAY,CAAC;AAChC,WAAO;AAAA,EACT;AAEA,MAAI,UAAU;AACd,SAAO,UAAU,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,YAAY,CAAC,GAAG;AACvD,eAAW;AAAA,EACb;AAEA,QAAM,aAAa,GAAG,IAAI,GAAG,OAAO;AAEpC,YAAU,IAAI,WAAW,YAAY,CAAC;AACtC,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import type { Stack } from "../../../constructs/stack.js";
2
+ import type { InfraNode } from "../../ast/index.js";
3
+ import { type PreparedBicepFile } from "./file-preparation.js";
4
+ export declare function toInfraNode(file: PreparedBicepFile): InfraNode;
5
+ /** Builds enriched declaration ASTs, then plans and wires deployment files. */
6
+ export declare function buildBicepFiles(stack: Stack): readonly InfraNode[];
7
+ //# sourceMappingURL=build-bicep-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-bicep-files.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/build-bicep-files.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAI1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAG/B,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAW9D;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,SAAS,EAAE,CAqBlE"}
@@ -0,0 +1,71 @@
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 build_bicep_files_exports = {};
19
+ __export(build_bicep_files_exports, {
20
+ buildBicepFiles: () => buildBicepFiles,
21
+ toInfraNode: () => toInfraNode
22
+ });
23
+ module.exports = __toCommonJS(build_bicep_files_exports);
24
+ var import_resource_query = require("../../../constructs/resource/resource-query.js");
25
+ var import_declaration_builder = require("../../ast/declaration-builder.js");
26
+ var import_symbol_map = require("../../symbol-map.js");
27
+ var import_authored_context = require("./authored-context.js");
28
+ var import_deployment_planning = require("./deployment-planning.js");
29
+ var import_bicep_namer = require("./bicep-namer.js");
30
+ var import_file_preparation = require("./file-preparation.js");
31
+ var import_reference_wiring = require("./reference-wiring.js");
32
+ function toInfraNode(file) {
33
+ const { ast } = file;
34
+ return {
35
+ fileName: file.fileName,
36
+ targetScope: file.targetScope,
37
+ ...ast.resources.size === 0 ? {} : { resources: Object.fromEntries(ast.resources) },
38
+ ...ast.parameters.size === 0 ? {} : { parameters: Object.fromEntries(ast.parameters) },
39
+ ...ast.variables.size === 0 ? {} : { variables: Object.fromEntries(ast.variables) },
40
+ ...ast.outputs.size === 0 ? {} : { outputs: Object.fromEntries(ast.outputs) },
41
+ ...ast.modules.size === 0 ? {} : { modules: Object.fromEntries(ast.modules) }
42
+ };
43
+ }
44
+ function buildBicepFiles(stack) {
45
+ const resources = (0, import_resource_query.collectResourceDeclarations)(stack);
46
+ (0, import_authored_context.validateResourceAncestry)(stack, resources);
47
+ const symbols = (0, import_symbol_map.createSymbolMap)(resources, stack, import_bicep_namer.RESOURCE_NAME_OVERRIDES);
48
+ const declarations = (0, import_declaration_builder.buildStackDeclarations)(stack, resources, symbols);
49
+ const stackAst = {
50
+ targetScope: stack.targetScope,
51
+ resources: new Map(Object.entries(declarations.resources ?? {})),
52
+ parameters: new Map(Object.entries(declarations.parameters ?? {})),
53
+ variables: new Map(Object.entries(declarations.variables ?? {})),
54
+ outputs: new Map(Object.entries(declarations.outputs ?? {})),
55
+ modules: /* @__PURE__ */ new Map()
56
+ };
57
+ const namer = new import_bicep_namer.BicepNamer(stackAst);
58
+ const resourceContexts = (0, import_authored_context.collectAuthoredResourceContexts)(resources, symbols);
59
+ const layout = (0, import_deployment_planning.planDeploymentFiles)(stackAst, resourceContexts);
60
+ const prepared = (0, import_file_preparation.prepareDeploymentFiles)(stack.name, stackAst, resourceContexts, layout, namer);
61
+ if (prepared.modules.length > 0) {
62
+ (0, import_reference_wiring.wireDeploymentFiles)(stack.name, prepared);
63
+ }
64
+ return [toInfraNode(prepared.entry), ...prepared.modules.map(({ file }) => toInfraNode(file))];
65
+ }
66
+ // Annotate the CommonJS export names for ESM import in node:
67
+ 0 && (module.exports = {
68
+ buildBicepFiles,
69
+ toInfraNode
70
+ });
71
+ //# sourceMappingURL=build-bicep-files.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/serialization/bicep/file-layout/build-bicep-files.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Stack } from \"../../../constructs/stack.js\";\nimport { collectResourceDeclarations } from \"../../../constructs/resource/resource-query.js\";\nimport { buildStackDeclarations } from \"../../ast/declaration-builder.js\";\nimport { createSymbolMap } from \"../../symbol-map.js\";\nimport type { InfraNode } from \"../../ast/index.js\";\nimport { collectAuthoredResourceContexts, validateResourceAncestry } from \"./authored-context.js\";\nimport { planDeploymentFiles } from \"./deployment-planning.js\";\nimport { BicepNamer, RESOURCE_NAME_OVERRIDES } from \"./bicep-namer.js\";\nimport {\n prepareDeploymentFiles,\n type BicepAst,\n type PreparedBicepFile,\n} from \"./file-preparation.js\";\nimport { wireDeploymentFiles } from \"./reference-wiring.js\";\n\nexport function toInfraNode(file: PreparedBicepFile): InfraNode {\n const { ast } = file;\n return {\n fileName: file.fileName,\n targetScope: file.targetScope,\n ...(ast.resources.size === 0 ? {} : { resources: Object.fromEntries(ast.resources) }),\n ...(ast.parameters.size === 0 ? {} : { parameters: Object.fromEntries(ast.parameters) }),\n ...(ast.variables.size === 0 ? {} : { variables: Object.fromEntries(ast.variables) }),\n ...(ast.outputs.size === 0 ? {} : { outputs: Object.fromEntries(ast.outputs) }),\n ...(ast.modules.size === 0 ? {} : { modules: Object.fromEntries(ast.modules) }),\n };\n}\n\n/** Builds enriched declaration ASTs, then plans and wires deployment files. */\nexport function buildBicepFiles(stack: Stack): readonly InfraNode[] {\n const resources = collectResourceDeclarations(stack);\n validateResourceAncestry(stack, resources);\n const symbols = createSymbolMap(resources, stack, RESOURCE_NAME_OVERRIDES);\n const declarations = buildStackDeclarations(stack, resources, symbols);\n const stackAst: BicepAst = {\n targetScope: stack.targetScope,\n resources: new Map(Object.entries(declarations.resources ?? {})),\n parameters: new Map(Object.entries(declarations.parameters ?? {})),\n variables: new Map(Object.entries(declarations.variables ?? {})),\n outputs: new Map(Object.entries(declarations.outputs ?? {})),\n modules: new Map(),\n };\n const namer = new BicepNamer(stackAst);\n const resourceContexts = collectAuthoredResourceContexts(resources, symbols);\n const layout = planDeploymentFiles(stackAst, resourceContexts);\n const prepared = prepareDeploymentFiles(stack.name, stackAst, resourceContexts, layout, namer);\n if (prepared.modules.length > 0) {\n wireDeploymentFiles(stack.name, prepared);\n }\n return [toInfraNode(prepared.entry), ...prepared.modules.map(({ file }) => toInfraNode(file))];\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,4BAA4C;AAC5C,iCAAuC;AACvC,wBAAgC;AAEhC,8BAA0E;AAC1E,iCAAoC;AACpC,yBAAoD;AACpD,8BAIO;AACP,8BAAoC;AAE7B,SAAS,YAAY,MAAoC;AAC9D,QAAM,EAAE,IAAI,IAAI;AAChB,SAAO;AAAA,IACL,UAAU,KAAK;AAAA,IACf,aAAa,KAAK;AAAA,IAClB,GAAI,IAAI,UAAU,SAAS,IAAI,CAAC,IAAI,EAAE,WAAW,OAAO,YAAY,IAAI,SAAS,EAAE;AAAA,IACnF,GAAI,IAAI,WAAW,SAAS,IAAI,CAAC,IAAI,EAAE,YAAY,OAAO,YAAY,IAAI,UAAU,EAAE;AAAA,IACtF,GAAI,IAAI,UAAU,SAAS,IAAI,CAAC,IAAI,EAAE,WAAW,OAAO,YAAY,IAAI,SAAS,EAAE;AAAA,IACnF,GAAI,IAAI,QAAQ,SAAS,IAAI,CAAC,IAAI,EAAE,SAAS,OAAO,YAAY,IAAI,OAAO,EAAE;AAAA,IAC7E,GAAI,IAAI,QAAQ,SAAS,IAAI,CAAC,IAAI,EAAE,SAAS,OAAO,YAAY,IAAI,OAAO,EAAE;AAAA,EAC/E;AACF;AAGO,SAAS,gBAAgB,OAAoC;AAClE,QAAM,gBAAY,mDAA4B,KAAK;AACnD,wDAAyB,OAAO,SAAS;AACzC,QAAM,cAAU,mCAAgB,WAAW,OAAO,0CAAuB;AACzE,QAAM,mBAAe,mDAAuB,OAAO,WAAW,OAAO;AACrE,QAAM,WAAqB;AAAA,IACzB,aAAa,MAAM;AAAA,IACnB,WAAW,IAAI,IAAI,OAAO,QAAQ,aAAa,aAAa,CAAC,CAAC,CAAC;AAAA,IAC/D,YAAY,IAAI,IAAI,OAAO,QAAQ,aAAa,cAAc,CAAC,CAAC,CAAC;AAAA,IACjE,WAAW,IAAI,IAAI,OAAO,QAAQ,aAAa,aAAa,CAAC,CAAC,CAAC;AAAA,IAC/D,SAAS,IAAI,IAAI,OAAO,QAAQ,aAAa,WAAW,CAAC,CAAC,CAAC;AAAA,IAC3D,SAAS,oBAAI,IAAI;AAAA,EACnB;AACA,QAAM,QAAQ,IAAI,8BAAW,QAAQ;AACrC,QAAM,uBAAmB,yDAAgC,WAAW,OAAO;AAC3E,QAAM,aAAS,gDAAoB,UAAU,gBAAgB;AAC7D,QAAM,eAAW,gDAAuB,MAAM,MAAM,UAAU,kBAAkB,QAAQ,KAAK;AAC7F,MAAI,SAAS,QAAQ,SAAS,GAAG;AAC/B,qDAAoB,MAAM,MAAM,QAAQ;AAAA,EAC1C;AACA,SAAO,CAAC,YAAY,SAAS,KAAK,GAAG,GAAG,SAAS,QAAQ,IAAI,CAAC,EAAE,KAAK,MAAM,YAAY,IAAI,CAAC,CAAC;AAC/F;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ import type { ExpressionNode, TargetScope } from "../../ast/index.js";
2
+ import type { AuthoredResourceContext } from "./authored-context.js";
3
+ import type { BicepAst } from "./file-preparation.js";
4
+ export interface DeploymentFilePlan {
5
+ readonly boundary: string | undefined;
6
+ readonly resources: Set<string>;
7
+ readonly authoredResourceGroup: string | undefined;
8
+ readonly moduleScope: ExpressionNode | undefined;
9
+ readonly targetScope: TargetScope;
10
+ }
11
+ export interface DeploymentLayout {
12
+ readonly entryPlan: DeploymentFilePlan;
13
+ readonly deployments: readonly DeploymentFilePlan[];
14
+ readonly pureExistingResources: ReadonlySet<string>;
15
+ readonly existingResourceToAuthoredResourceGroup: ReadonlyMap<string, string | undefined>;
16
+ readonly existingResourcesWithExplicitScope: ReadonlySet<string>;
17
+ }
18
+ export declare function planDeploymentFiles(stackAst: BicepAst, authoredContexts: ReadonlyMap<string, AuthoredResourceContext>): DeploymentLayout;
19
+ //# sourceMappingURL=deployment-planning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-planning.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/deployment-planning.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,uCAAuC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1F,QAAQ,CAAC,kCAAkC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClE;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAC7D,gBAAgB,CAmElB"}
@@ -0,0 +1,80 @@
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_planning_exports = {};
19
+ __export(deployment_planning_exports, {
20
+ planDeploymentFiles: () => planDeploymentFiles
21
+ });
22
+ module.exports = __toCommonJS(deployment_planning_exports);
23
+ var import_resource_group = require("../../../constructs/built-in-resources/resource-group.js");
24
+ var import_resource_utils = require("../../ast/resource-utils.js");
25
+ var import_deployment_resource_utils = require("./deployment-resource-utils.js");
26
+ function planDeploymentFiles(stackAst, authoredContexts) {
27
+ const entryPlan = {
28
+ boundary: void 0,
29
+ resources: /* @__PURE__ */ new Set(),
30
+ authoredResourceGroup: void 0,
31
+ moduleScope: void 0,
32
+ targetScope: stackAst.targetScope
33
+ };
34
+ const armResourcesByRoot = (0, import_deployment_resource_utils.groupArmResourcesByRoot)(stackAst.resources, authoredContexts);
35
+ const deployments = [];
36
+ const pureExistingResources = /* @__PURE__ */ new Set();
37
+ const existingResourceToAuthoredResourceGroup = /* @__PURE__ */ new Map();
38
+ const existingResourcesWithExplicitScope = /* @__PURE__ */ new Set();
39
+ for (const [root, treeResources] of armResourcesByRoot) {
40
+ const resource = stackAst.resources.get(root);
41
+ const rootContext = authoredContexts.get(root);
42
+ const authoredResourceGroup = rootContext.authoredParent;
43
+ const moduleScope = rootContext.scopeOrigin === "pass-through-explicit" ? authoredResourceGroup === void 0 ? void 0 : { kind: "identifier", id: authoredResourceGroup } : (0, import_resource_utils.getResourceBody)(resource.value).value.scope;
44
+ if (resource.type === import_resource_group.ResourceGroup.resourceType || stackAst.targetScope === "subscription" && moduleScope === void 0) {
45
+ for (const name of treeResources) entryPlan.resources.add(name);
46
+ } else if ([...treeResources].every((name) => stackAst.resources.get(name).existing)) {
47
+ for (const name of treeResources) {
48
+ pureExistingResources.add(name);
49
+ existingResourceToAuthoredResourceGroup.set(name, authoredResourceGroup);
50
+ for (let ancestor = name; ancestor !== void 0 && ancestor !== authoredResourceGroup; ancestor = authoredContexts.get(ancestor).authoredParent) {
51
+ const origin = authoredContexts.get(ancestor).scopeOrigin;
52
+ if (origin === "existing-explicit" || origin === "pass-through-explicit") {
53
+ existingResourcesWithExplicitScope.add(name);
54
+ break;
55
+ }
56
+ }
57
+ }
58
+ } else {
59
+ deployments.push({
60
+ boundary: root,
61
+ resources: treeResources,
62
+ authoredResourceGroup,
63
+ moduleScope,
64
+ targetScope: rootContext.scopeOrigin === "resourceGroup" || rootContext.scopeOrigin === "pass-through-explicit" && authoredResourceGroup !== void 0 ? "resourceGroup" : (0, import_deployment_resource_utils.getTargetScope)(moduleScope, stackAst.targetScope)
65
+ });
66
+ }
67
+ }
68
+ return {
69
+ entryPlan,
70
+ deployments,
71
+ pureExistingResources,
72
+ existingResourceToAuthoredResourceGroup,
73
+ existingResourcesWithExplicitScope
74
+ };
75
+ }
76
+ // Annotate the CommonJS export names for ESM import in node:
77
+ 0 && (module.exports = {
78
+ planDeploymentFiles
79
+ });
80
+ //# sourceMappingURL=deployment-planning.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/serialization/bicep/file-layout/deployment-planning.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, TargetScope } from \"../../ast/index.js\";\nimport { getResourceBody } from \"../../ast/resource-utils.js\";\nimport type { AuthoredResourceContext } from \"./authored-context.js\";\nimport { groupArmResourcesByRoot, getTargetScope } from \"./deployment-resource-utils.js\";\nimport type { BicepAst } from \"./file-preparation.js\";\n\nexport interface DeploymentFilePlan {\n readonly boundary: string | undefined;\n readonly resources: Set<string>;\n readonly authoredResourceGroup: string | undefined;\n readonly moduleScope: ExpressionNode | undefined;\n readonly targetScope: TargetScope;\n}\n\nexport interface DeploymentLayout {\n readonly entryPlan: DeploymentFilePlan;\n readonly deployments: readonly DeploymentFilePlan[];\n readonly pureExistingResources: ReadonlySet<string>;\n readonly existingResourceToAuthoredResourceGroup: ReadonlyMap<string, string | undefined>;\n readonly existingResourcesWithExplicitScope: ReadonlySet<string>;\n}\n\nexport function planDeploymentFiles(\n stackAst: BicepAst,\n authoredContexts: ReadonlyMap<string, AuthoredResourceContext>,\n): DeploymentLayout {\n const entryPlan: DeploymentFilePlan = {\n boundary: undefined,\n resources: new Set(),\n authoredResourceGroup: undefined,\n moduleScope: undefined,\n targetScope: stackAst.targetScope,\n };\n const armResourcesByRoot = groupArmResourcesByRoot(stackAst.resources, authoredContexts);\n\n const deployments: DeploymentFilePlan[] = [];\n const pureExistingResources = new Set<string>();\n const existingResourceToAuthoredResourceGroup = new Map<string, string | undefined>();\n const existingResourcesWithExplicitScope = new Set<string>();\n for (const [root, treeResources] of armResourcesByRoot) {\n const resource = stackAst.resources.get(root)!;\n const rootContext = authoredContexts.get(root)!;\n const authoredResourceGroup = rootContext.authoredParent;\n const moduleScope =\n rootContext.scopeOrigin === \"pass-through-explicit\"\n ? authoredResourceGroup === undefined\n ? undefined\n : { kind: \"identifier\" as const, id: authoredResourceGroup }\n : getResourceBody(resource.value).value.scope;\n if (\n resource.type === ResourceGroup.resourceType ||\n (stackAst.targetScope === \"subscription\" && moduleScope === undefined)\n ) {\n for (const name of treeResources) entryPlan.resources.add(name);\n } else if ([...treeResources].every((name) => stackAst.resources.get(name)!.existing)) {\n for (const name of treeResources) {\n pureExistingResources.add(name);\n existingResourceToAuthoredResourceGroup.set(name, authoredResourceGroup);\n for (\n let ancestor: string | undefined = name;\n ancestor !== undefined && ancestor !== authoredResourceGroup;\n ancestor = authoredContexts.get(ancestor)!.authoredParent\n ) {\n const origin = authoredContexts.get(ancestor)!.scopeOrigin;\n if (origin === \"existing-explicit\" || origin === \"pass-through-explicit\") {\n existingResourcesWithExplicitScope.add(name);\n break;\n }\n }\n }\n } else {\n deployments.push({\n boundary: root,\n resources: treeResources,\n authoredResourceGroup,\n moduleScope,\n targetScope:\n rootContext.scopeOrigin === \"resourceGroup\" ||\n (rootContext.scopeOrigin === \"pass-through-explicit\" &&\n authoredResourceGroup !== undefined)\n ? \"resourceGroup\"\n : getTargetScope(moduleScope, stackAst.targetScope),\n });\n }\n }\n return {\n entryPlan,\n deployments,\n pureExistingResources,\n existingResourceToAuthoredResourceGroup,\n existingResourcesWithExplicitScope,\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,4BAA8B;AAE9B,4BAAgC;AAEhC,uCAAwD;AAmBjD,SAAS,oBACd,UACA,kBACkB;AAClB,QAAM,YAAgC;AAAA,IACpC,UAAU;AAAA,IACV,WAAW,oBAAI,IAAI;AAAA,IACnB,uBAAuB;AAAA,IACvB,aAAa;AAAA,IACb,aAAa,SAAS;AAAA,EACxB;AACA,QAAM,yBAAqB,0DAAwB,SAAS,WAAW,gBAAgB;AAEvF,QAAM,cAAoC,CAAC;AAC3C,QAAM,wBAAwB,oBAAI,IAAY;AAC9C,QAAM,0CAA0C,oBAAI,IAAgC;AACpF,QAAM,qCAAqC,oBAAI,IAAY;AAC3D,aAAW,CAAC,MAAM,aAAa,KAAK,oBAAoB;AACtD,UAAM,WAAW,SAAS,UAAU,IAAI,IAAI;AAC5C,UAAM,cAAc,iBAAiB,IAAI,IAAI;AAC7C,UAAM,wBAAwB,YAAY;AAC1C,UAAM,cACJ,YAAY,gBAAgB,0BACxB,0BAA0B,SACxB,SACA,EAAE,MAAM,cAAuB,IAAI,sBAAsB,QAC3D,uCAAgB,SAAS,KAAK,EAAE,MAAM;AAC5C,QACE,SAAS,SAAS,oCAAc,gBAC/B,SAAS,gBAAgB,kBAAkB,gBAAgB,QAC5D;AACA,iBAAW,QAAQ,cAAe,WAAU,UAAU,IAAI,IAAI;AAAA,IAChE,WAAW,CAAC,GAAG,aAAa,EAAE,MAAM,CAAC,SAAS,SAAS,UAAU,IAAI,IAAI,EAAG,QAAQ,GAAG;AACrF,iBAAW,QAAQ,eAAe;AAChC,8BAAsB,IAAI,IAAI;AAC9B,gDAAwC,IAAI,MAAM,qBAAqB;AACvE,iBACM,WAA+B,MACnC,aAAa,UAAa,aAAa,uBACvC,WAAW,iBAAiB,IAAI,QAAQ,EAAG,gBAC3C;AACA,gBAAM,SAAS,iBAAiB,IAAI,QAAQ,EAAG;AAC/C,cAAI,WAAW,uBAAuB,WAAW,yBAAyB;AACxE,+CAAmC,IAAI,IAAI;AAC3C;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,OAAO;AACL,kBAAY,KAAK;AAAA,QACf,UAAU;AAAA,QACV,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA,aACE,YAAY,gBAAgB,mBAC3B,YAAY,gBAAgB,2BAC3B,0BAA0B,SACxB,sBACA,iDAAe,aAAa,SAAS,WAAW;AAAA,MACxD,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ import type { ExpressionNode, ResourceDeclarationNode, TargetScope } from "../../ast/index.js";
2
+ import type { AuthoredResourceContext } from "./authored-context.js";
3
+ import type { BicepAst } from "./file-preparation.js";
4
+ export declare function groupArmResourcesByRoot(resources: ReadonlyMap<string, ResourceDeclarationNode>, authoredContexts: ReadonlyMap<string, AuthoredResourceContext>): Map<string, Set<string>>;
5
+ export declare function hasArmParent(name: string, resources: ReadonlyMap<string, ResourceDeclarationNode>, authoredContexts: ReadonlyMap<string, AuthoredResourceContext>): boolean;
6
+ export declare function getTargetScope(scope: ExpressionNode | undefined, fallback: TargetScope): TargetScope;
7
+ export declare function normalizeExtensionScopes(stackAst: BicepAst): void;
8
+ //# sourceMappingURL=deployment-resource-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-resource-utils.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/bicep/file-layout/deployment-resource-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,EACvD,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAC7D,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAsB1B;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,EACvD,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAC7D,OAAO,CAGT;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,cAAc,GAAG,SAAS,EACjC,QAAQ,EAAE,WAAW,GACpB,WAAW,CAUb;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAyBjE"}