@azure/provisioning-core 1.0.0-beta.1

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 (440) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +40 -0
  4. package/dist/browser/constructs/built-in-resources/resource-group.d.ts +50 -0
  5. package/dist/browser/constructs/built-in-resources/resource-group.d.ts.map +1 -0
  6. package/dist/browser/constructs/built-in-resources/resource-group.js +100 -0
  7. package/dist/browser/constructs/built-in-resources/resource-group.js.map +1 -0
  8. package/dist/browser/constructs/output.d.ts +80 -0
  9. package/dist/browser/constructs/output.d.ts.map +1 -0
  10. package/dist/browser/constructs/output.js +75 -0
  11. package/dist/browser/constructs/output.js.map +1 -0
  12. package/dist/browser/constructs/parameter.d.ts +77 -0
  13. package/dist/browser/constructs/parameter.d.ts.map +1 -0
  14. package/dist/browser/constructs/parameter.js +93 -0
  15. package/dist/browser/constructs/parameter.js.map +1 -0
  16. package/dist/browser/constructs/provisioning-component.d.ts +91 -0
  17. package/dist/browser/constructs/provisioning-component.d.ts.map +1 -0
  18. package/dist/browser/constructs/provisioning-component.js +150 -0
  19. package/dist/browser/constructs/provisioning-component.js.map +1 -0
  20. package/dist/browser/constructs/resource/resource-proxy.d.ts +134 -0
  21. package/dist/browser/constructs/resource/resource-proxy.d.ts.map +1 -0
  22. package/dist/browser/constructs/resource/resource-proxy.js +517 -0
  23. package/dist/browser/constructs/resource/resource-proxy.js.map +1 -0
  24. package/dist/browser/constructs/resource/resource-query.d.ts +23 -0
  25. package/dist/browser/constructs/resource/resource-query.d.ts.map +1 -0
  26. package/dist/browser/constructs/resource/resource-query.js +69 -0
  27. package/dist/browser/constructs/resource/resource-query.js.map +1 -0
  28. package/dist/browser/constructs/resource/resource-registry.d.ts +99 -0
  29. package/dist/browser/constructs/resource/resource-registry.d.ts.map +1 -0
  30. package/dist/browser/constructs/resource/resource-registry.js +51 -0
  31. package/dist/browser/constructs/resource/resource-registry.js.map +1 -0
  32. package/dist/browser/constructs/resource/resource-type-registry.d.ts +46 -0
  33. package/dist/browser/constructs/resource/resource-type-registry.d.ts.map +1 -0
  34. package/dist/browser/constructs/resource/resource-type-registry.js +156 -0
  35. package/dist/browser/constructs/resource/resource-type-registry.js.map +1 -0
  36. package/dist/browser/constructs/resource/resource-utils.d.ts +60 -0
  37. package/dist/browser/constructs/resource/resource-utils.d.ts.map +1 -0
  38. package/dist/browser/constructs/resource/resource-utils.js +75 -0
  39. package/dist/browser/constructs/resource/resource-utils.js.map +1 -0
  40. package/dist/browser/constructs/resource/resource.d.ts +460 -0
  41. package/dist/browser/constructs/resource/resource.d.ts.map +1 -0
  42. package/dist/browser/constructs/resource/resource.js +582 -0
  43. package/dist/browser/constructs/resource/resource.js.map +1 -0
  44. package/dist/browser/constructs/stack.d.ts +110 -0
  45. package/dist/browser/constructs/stack.d.ts.map +1 -0
  46. package/dist/browser/constructs/stack.js +110 -0
  47. package/dist/browser/constructs/stack.js.map +1 -0
  48. package/dist/browser/constructs/variable.d.ts +63 -0
  49. package/dist/browser/constructs/variable.d.ts.map +1 -0
  50. package/dist/browser/constructs/variable.js +74 -0
  51. package/dist/browser/constructs/variable.js.map +1 -0
  52. package/dist/browser/deployment-context/deployment-context.d.ts +27 -0
  53. package/dist/browser/deployment-context/deployment-context.d.ts.map +1 -0
  54. package/dist/browser/deployment-context/deployment-context.js +4 -0
  55. package/dist/browser/deployment-context/deployment-context.js.map +1 -0
  56. package/dist/browser/expression/ast-nodes.d.ts +100 -0
  57. package/dist/browser/expression/ast-nodes.d.ts.map +1 -0
  58. package/dist/browser/expression/ast-nodes.js +125 -0
  59. package/dist/browser/expression/ast-nodes.js.map +1 -0
  60. package/dist/browser/expression/expressions.d.ts +164 -0
  61. package/dist/browser/expression/expressions.d.ts.map +1 -0
  62. package/dist/browser/expression/expressions.js +211 -0
  63. package/dist/browser/expression/expressions.js.map +1 -0
  64. package/dist/browser/fn.d.ts +194 -0
  65. package/dist/browser/fn.d.ts.map +1 -0
  66. package/dist/browser/fn.js +334 -0
  67. package/dist/browser/fn.js.map +1 -0
  68. package/dist/browser/index.d.ts +25 -0
  69. package/dist/browser/index.d.ts.map +1 -0
  70. package/dist/browser/index.js +17 -0
  71. package/dist/browser/index.js.map +1 -0
  72. package/dist/browser/internal.d.ts +13 -0
  73. package/dist/browser/internal.d.ts.map +1 -0
  74. package/dist/browser/internal.js +10 -0
  75. package/dist/browser/internal.js.map +1 -0
  76. package/dist/browser/naming/naming-policy.d.ts +56 -0
  77. package/dist/browser/naming/naming-policy.d.ts.map +1 -0
  78. package/dist/browser/naming/naming-policy.js +97 -0
  79. package/dist/browser/naming/naming-policy.js.map +1 -0
  80. package/dist/browser/naming/naming-rules.d.ts +15 -0
  81. package/dist/browser/naming/naming-rules.d.ts.map +1 -0
  82. package/dist/browser/naming/naming-rules.js +15 -0
  83. package/dist/browser/naming/naming-rules.js.map +1 -0
  84. package/dist/browser/package.json +8 -0
  85. package/dist/browser/serialization/contract/generated/ast.d.ts +508 -0
  86. package/dist/browser/serialization/contract/generated/ast.d.ts.map +1 -0
  87. package/dist/browser/serialization/contract/generated/ast.js +23 -0
  88. package/dist/browser/serialization/contract/generated/ast.js.map +1 -0
  89. package/dist/browser/serialization/contract/index.d.ts +2 -0
  90. package/dist/browser/serialization/contract/index.d.ts.map +1 -0
  91. package/dist/browser/serialization/contract/index.js +4 -0
  92. package/dist/browser/serialization/contract/index.js.map +1 -0
  93. package/dist/browser/serialization/index.d.ts +4 -0
  94. package/dist/browser/serialization/index.d.ts.map +1 -0
  95. package/dist/browser/serialization/index.js +5 -0
  96. package/dist/browser/serialization/index.js.map +1 -0
  97. package/dist/browser/serialization/json/deserialize.d.ts +24 -0
  98. package/dist/browser/serialization/json/deserialize.d.ts.map +1 -0
  99. package/dist/browser/serialization/json/deserialize.js +437 -0
  100. package/dist/browser/serialization/json/deserialize.js.map +1 -0
  101. package/dist/browser/serialization/json/encoding.d.ts +4 -0
  102. package/dist/browser/serialization/json/encoding.d.ts.map +1 -0
  103. package/dist/browser/serialization/json/encoding.js +319 -0
  104. package/dist/browser/serialization/json/encoding.js.map +1 -0
  105. package/dist/browser/serialization/json/expression.d.ts +32 -0
  106. package/dist/browser/serialization/json/expression.d.ts.map +1 -0
  107. package/dist/browser/serialization/json/expression.js +494 -0
  108. package/dist/browser/serialization/json/expression.js.map +1 -0
  109. package/dist/browser/serialization/json/lower.d.ts +41 -0
  110. package/dist/browser/serialization/json/lower.d.ts.map +1 -0
  111. package/dist/browser/serialization/json/lower.js +334 -0
  112. package/dist/browser/serialization/json/lower.js.map +1 -0
  113. package/dist/browser/serialization/json/pluralize-config.d.ts +3 -0
  114. package/dist/browser/serialization/json/pluralize-config.d.ts.map +1 -0
  115. package/dist/browser/serialization/json/pluralize-config.js +7 -0
  116. package/dist/browser/serialization/json/pluralize-config.js.map +1 -0
  117. package/dist/browser/serialization/json/serialize.d.ts +12 -0
  118. package/dist/browser/serialization/json/serialize.d.ts.map +1 -0
  119. package/dist/browser/serialization/json/serialize.js +389 -0
  120. package/dist/browser/serialization/json/serialize.js.map +1 -0
  121. package/dist/browser/serialization/json/util.d.ts +2 -0
  122. package/dist/browser/serialization/json/util.d.ts.map +1 -0
  123. package/dist/browser/serialization/json/util.js +19 -0
  124. package/dist/browser/serialization/json/util.js.map +1 -0
  125. package/dist/browser/serialization/utils.d.ts +3 -0
  126. package/dist/browser/serialization/utils.d.ts.map +1 -0
  127. package/dist/browser/serialization/utils.js +146 -0
  128. package/dist/browser/serialization/utils.js.map +1 -0
  129. package/dist/browser/shape/shape-registry.d.ts +51 -0
  130. package/dist/browser/shape/shape-registry.d.ts.map +1 -0
  131. package/dist/browser/shape/shape-registry.js +41 -0
  132. package/dist/browser/shape/shape-registry.js.map +1 -0
  133. package/dist/browser/shape/shape.d.ts +407 -0
  134. package/dist/browser/shape/shape.d.ts.map +1 -0
  135. package/dist/browser/shape/shape.js +424 -0
  136. package/dist/browser/shape/shape.js.map +1 -0
  137. package/dist/browser/shape/value-encoding.d.ts +121 -0
  138. package/dist/browser/shape/value-encoding.d.ts.map +1 -0
  139. package/dist/browser/shape/value-encoding.js +32 -0
  140. package/dist/browser/shape/value-encoding.js.map +1 -0
  141. package/dist/browser/types.d.ts +9 -0
  142. package/dist/browser/types.d.ts.map +1 -0
  143. package/dist/browser/types.js +4 -0
  144. package/dist/browser/types.js.map +1 -0
  145. package/dist/browser/util.d.ts +33 -0
  146. package/dist/browser/util.d.ts.map +1 -0
  147. package/dist/browser/util.js +74 -0
  148. package/dist/browser/util.js.map +1 -0
  149. package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts +50 -0
  150. package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts.map +1 -0
  151. package/dist/commonjs/constructs/built-in-resources/resource-group.js +114 -0
  152. package/dist/commonjs/constructs/built-in-resources/resource-group.js.map +7 -0
  153. package/dist/commonjs/constructs/output.d.ts +80 -0
  154. package/dist/commonjs/constructs/output.d.ts.map +1 -0
  155. package/dist/commonjs/constructs/output.js +75 -0
  156. package/dist/commonjs/constructs/output.js.map +7 -0
  157. package/dist/commonjs/constructs/parameter.d.ts +77 -0
  158. package/dist/commonjs/constructs/parameter.d.ts.map +1 -0
  159. package/dist/commonjs/constructs/parameter.js +95 -0
  160. package/dist/commonjs/constructs/parameter.js.map +7 -0
  161. package/dist/commonjs/constructs/provisioning-component.d.ts +91 -0
  162. package/dist/commonjs/constructs/provisioning-component.d.ts.map +1 -0
  163. package/dist/commonjs/constructs/provisioning-component.js +130 -0
  164. package/dist/commonjs/constructs/provisioning-component.js.map +7 -0
  165. package/dist/commonjs/constructs/resource/resource-proxy.d.ts +134 -0
  166. package/dist/commonjs/constructs/resource/resource-proxy.d.ts.map +1 -0
  167. package/dist/commonjs/constructs/resource/resource-proxy.js +456 -0
  168. package/dist/commonjs/constructs/resource/resource-proxy.js.map +7 -0
  169. package/dist/commonjs/constructs/resource/resource-query.d.ts +23 -0
  170. package/dist/commonjs/constructs/resource/resource-query.d.ts.map +1 -0
  171. package/dist/commonjs/constructs/resource/resource-query.js +68 -0
  172. package/dist/commonjs/constructs/resource/resource-query.js.map +7 -0
  173. package/dist/commonjs/constructs/resource/resource-registry.d.ts +99 -0
  174. package/dist/commonjs/constructs/resource/resource-registry.d.ts.map +1 -0
  175. package/dist/commonjs/constructs/resource/resource-registry.js +49 -0
  176. package/dist/commonjs/constructs/resource/resource-registry.js.map +7 -0
  177. package/dist/commonjs/constructs/resource/resource-type-registry.d.ts +46 -0
  178. package/dist/commonjs/constructs/resource/resource-type-registry.d.ts.map +1 -0
  179. package/dist/commonjs/constructs/resource/resource-type-registry.js +178 -0
  180. package/dist/commonjs/constructs/resource/resource-type-registry.js.map +7 -0
  181. package/dist/commonjs/constructs/resource/resource-utils.d.ts +60 -0
  182. package/dist/commonjs/constructs/resource/resource-utils.d.ts.map +1 -0
  183. package/dist/commonjs/constructs/resource/resource-utils.js +51 -0
  184. package/dist/commonjs/constructs/resource/resource-utils.js.map +7 -0
  185. package/dist/commonjs/constructs/resource/resource.d.ts +460 -0
  186. package/dist/commonjs/constructs/resource/resource.d.ts.map +1 -0
  187. package/dist/commonjs/constructs/resource/resource.js +455 -0
  188. package/dist/commonjs/constructs/resource/resource.js.map +7 -0
  189. package/dist/commonjs/constructs/stack.d.ts +110 -0
  190. package/dist/commonjs/constructs/stack.d.ts.map +1 -0
  191. package/dist/commonjs/constructs/stack.js +101 -0
  192. package/dist/commonjs/constructs/stack.js.map +7 -0
  193. package/dist/commonjs/constructs/variable.d.ts +63 -0
  194. package/dist/commonjs/constructs/variable.d.ts.map +1 -0
  195. package/dist/commonjs/constructs/variable.js +85 -0
  196. package/dist/commonjs/constructs/variable.js.map +7 -0
  197. package/dist/commonjs/deployment-context/deployment-context.d.ts +27 -0
  198. package/dist/commonjs/deployment-context/deployment-context.d.ts.map +1 -0
  199. package/dist/commonjs/deployment-context/deployment-context.js +16 -0
  200. package/dist/commonjs/deployment-context/deployment-context.js.map +7 -0
  201. package/dist/commonjs/expression/ast-nodes.d.ts +100 -0
  202. package/dist/commonjs/expression/ast-nodes.d.ts.map +1 -0
  203. package/dist/commonjs/expression/ast-nodes.js +152 -0
  204. package/dist/commonjs/expression/ast-nodes.js.map +7 -0
  205. package/dist/commonjs/expression/expressions.d.ts +164 -0
  206. package/dist/commonjs/expression/expressions.d.ts.map +1 -0
  207. package/dist/commonjs/expression/expressions.js +171 -0
  208. package/dist/commonjs/expression/expressions.js.map +7 -0
  209. package/dist/commonjs/fn.d.ts +194 -0
  210. package/dist/commonjs/fn.d.ts.map +1 -0
  211. package/dist/commonjs/fn.js +382 -0
  212. package/dist/commonjs/fn.js.map +7 -0
  213. package/dist/commonjs/index.d.ts +25 -0
  214. package/dist/commonjs/index.d.ts.map +1 -0
  215. package/dist/commonjs/index.js +93 -0
  216. package/dist/commonjs/index.js.map +7 -0
  217. package/dist/commonjs/internal.d.ts +13 -0
  218. package/dist/commonjs/internal.d.ts.map +1 -0
  219. package/dist/commonjs/internal.js +88 -0
  220. package/dist/commonjs/internal.js.map +7 -0
  221. package/dist/commonjs/naming/naming-policy.d.ts +56 -0
  222. package/dist/commonjs/naming/naming-policy.d.ts.map +1 -0
  223. package/dist/commonjs/naming/naming-policy.js +99 -0
  224. package/dist/commonjs/naming/naming-policy.js.map +7 -0
  225. package/dist/commonjs/naming/naming-rules.d.ts +15 -0
  226. package/dist/commonjs/naming/naming-rules.d.ts.map +1 -0
  227. package/dist/commonjs/naming/naming-rules.js +39 -0
  228. package/dist/commonjs/naming/naming-rules.js.map +7 -0
  229. package/dist/commonjs/package.json +8 -0
  230. package/dist/commonjs/serialization/contract/generated/ast.d.ts +508 -0
  231. package/dist/commonjs/serialization/contract/generated/ast.d.ts.map +1 -0
  232. package/dist/commonjs/serialization/contract/generated/ast.js +40 -0
  233. package/dist/commonjs/serialization/contract/generated/ast.js.map +7 -0
  234. package/dist/commonjs/serialization/contract/index.d.ts +2 -0
  235. package/dist/commonjs/serialization/contract/index.d.ts.map +1 -0
  236. package/dist/commonjs/serialization/contract/index.js +22 -0
  237. package/dist/commonjs/serialization/contract/index.js.map +7 -0
  238. package/dist/commonjs/serialization/index.d.ts +4 -0
  239. package/dist/commonjs/serialization/index.d.ts.map +1 -0
  240. package/dist/commonjs/serialization/index.js +31 -0
  241. package/dist/commonjs/serialization/index.js.map +7 -0
  242. package/dist/commonjs/serialization/json/deserialize.d.ts +24 -0
  243. package/dist/commonjs/serialization/json/deserialize.d.ts.map +1 -0
  244. package/dist/commonjs/serialization/json/deserialize.js +385 -0
  245. package/dist/commonjs/serialization/json/deserialize.js.map +7 -0
  246. package/dist/commonjs/serialization/json/encoding.d.ts +4 -0
  247. package/dist/commonjs/serialization/json/encoding.d.ts.map +1 -0
  248. package/dist/commonjs/serialization/json/encoding.js +306 -0
  249. package/dist/commonjs/serialization/json/encoding.js.map +7 -0
  250. package/dist/commonjs/serialization/json/expression.d.ts +32 -0
  251. package/dist/commonjs/serialization/json/expression.d.ts.map +1 -0
  252. package/dist/commonjs/serialization/json/expression.js +509 -0
  253. package/dist/commonjs/serialization/json/expression.js.map +7 -0
  254. package/dist/commonjs/serialization/json/lower.d.ts +41 -0
  255. package/dist/commonjs/serialization/json/lower.d.ts.map +1 -0
  256. package/dist/commonjs/serialization/json/lower.js +272 -0
  257. package/dist/commonjs/serialization/json/lower.js.map +7 -0
  258. package/dist/commonjs/serialization/json/pluralize-config.d.ts +3 -0
  259. package/dist/commonjs/serialization/json/pluralize-config.d.ts.map +1 -0
  260. package/dist/commonjs/serialization/json/pluralize-config.js +37 -0
  261. package/dist/commonjs/serialization/json/pluralize-config.js.map +7 -0
  262. package/dist/commonjs/serialization/json/serialize.d.ts +12 -0
  263. package/dist/commonjs/serialization/json/serialize.d.ts.map +1 -0
  264. package/dist/commonjs/serialization/json/serialize.js +352 -0
  265. package/dist/commonjs/serialization/json/serialize.js.map +7 -0
  266. package/dist/commonjs/serialization/json/util.d.ts +2 -0
  267. package/dist/commonjs/serialization/json/util.d.ts.map +1 -0
  268. package/dist/commonjs/serialization/json/util.js +37 -0
  269. package/dist/commonjs/serialization/json/util.js.map +7 -0
  270. package/dist/commonjs/serialization/utils.d.ts +3 -0
  271. package/dist/commonjs/serialization/utils.d.ts.map +1 -0
  272. package/dist/commonjs/serialization/utils.js +169 -0
  273. package/dist/commonjs/serialization/utils.js.map +7 -0
  274. package/dist/commonjs/shape/shape-registry.d.ts +51 -0
  275. package/dist/commonjs/shape/shape-registry.d.ts.map +1 -0
  276. package/dist/commonjs/shape/shape-registry.js +40 -0
  277. package/dist/commonjs/shape/shape-registry.js.map +7 -0
  278. package/dist/commonjs/shape/shape.d.ts +407 -0
  279. package/dist/commonjs/shape/shape.d.ts.map +1 -0
  280. package/dist/commonjs/shape/shape.js +290 -0
  281. package/dist/commonjs/shape/shape.js.map +7 -0
  282. package/dist/commonjs/shape/value-encoding.d.ts +121 -0
  283. package/dist/commonjs/shape/value-encoding.d.ts.map +1 -0
  284. package/dist/commonjs/shape/value-encoding.js +62 -0
  285. package/dist/commonjs/shape/value-encoding.js.map +7 -0
  286. package/dist/commonjs/tsdoc-metadata.json +11 -0
  287. package/dist/commonjs/types.d.ts +9 -0
  288. package/dist/commonjs/types.d.ts.map +1 -0
  289. package/dist/commonjs/types.js +16 -0
  290. package/dist/commonjs/types.js.map +7 -0
  291. package/dist/commonjs/util.d.ts +33 -0
  292. package/dist/commonjs/util.d.ts.map +1 -0
  293. package/dist/commonjs/util.js +73 -0
  294. package/dist/commonjs/util.js.map +7 -0
  295. package/dist/esm/constructs/built-in-resources/resource-group.d.ts +50 -0
  296. package/dist/esm/constructs/built-in-resources/resource-group.d.ts.map +1 -0
  297. package/dist/esm/constructs/built-in-resources/resource-group.js +100 -0
  298. package/dist/esm/constructs/built-in-resources/resource-group.js.map +1 -0
  299. package/dist/esm/constructs/output.d.ts +80 -0
  300. package/dist/esm/constructs/output.d.ts.map +1 -0
  301. package/dist/esm/constructs/output.js +75 -0
  302. package/dist/esm/constructs/output.js.map +1 -0
  303. package/dist/esm/constructs/parameter.d.ts +77 -0
  304. package/dist/esm/constructs/parameter.d.ts.map +1 -0
  305. package/dist/esm/constructs/parameter.js +93 -0
  306. package/dist/esm/constructs/parameter.js.map +1 -0
  307. package/dist/esm/constructs/provisioning-component.d.ts +91 -0
  308. package/dist/esm/constructs/provisioning-component.d.ts.map +1 -0
  309. package/dist/esm/constructs/provisioning-component.js +150 -0
  310. package/dist/esm/constructs/provisioning-component.js.map +1 -0
  311. package/dist/esm/constructs/resource/resource-proxy.d.ts +134 -0
  312. package/dist/esm/constructs/resource/resource-proxy.d.ts.map +1 -0
  313. package/dist/esm/constructs/resource/resource-proxy.js +517 -0
  314. package/dist/esm/constructs/resource/resource-proxy.js.map +1 -0
  315. package/dist/esm/constructs/resource/resource-query.d.ts +23 -0
  316. package/dist/esm/constructs/resource/resource-query.d.ts.map +1 -0
  317. package/dist/esm/constructs/resource/resource-query.js +69 -0
  318. package/dist/esm/constructs/resource/resource-query.js.map +1 -0
  319. package/dist/esm/constructs/resource/resource-registry.d.ts +99 -0
  320. package/dist/esm/constructs/resource/resource-registry.d.ts.map +1 -0
  321. package/dist/esm/constructs/resource/resource-registry.js +51 -0
  322. package/dist/esm/constructs/resource/resource-registry.js.map +1 -0
  323. package/dist/esm/constructs/resource/resource-type-registry.d.ts +46 -0
  324. package/dist/esm/constructs/resource/resource-type-registry.d.ts.map +1 -0
  325. package/dist/esm/constructs/resource/resource-type-registry.js +156 -0
  326. package/dist/esm/constructs/resource/resource-type-registry.js.map +1 -0
  327. package/dist/esm/constructs/resource/resource-utils.d.ts +60 -0
  328. package/dist/esm/constructs/resource/resource-utils.d.ts.map +1 -0
  329. package/dist/esm/constructs/resource/resource-utils.js +75 -0
  330. package/dist/esm/constructs/resource/resource-utils.js.map +1 -0
  331. package/dist/esm/constructs/resource/resource.d.ts +460 -0
  332. package/dist/esm/constructs/resource/resource.d.ts.map +1 -0
  333. package/dist/esm/constructs/resource/resource.js +582 -0
  334. package/dist/esm/constructs/resource/resource.js.map +1 -0
  335. package/dist/esm/constructs/stack.d.ts +110 -0
  336. package/dist/esm/constructs/stack.d.ts.map +1 -0
  337. package/dist/esm/constructs/stack.js +110 -0
  338. package/dist/esm/constructs/stack.js.map +1 -0
  339. package/dist/esm/constructs/variable.d.ts +63 -0
  340. package/dist/esm/constructs/variable.d.ts.map +1 -0
  341. package/dist/esm/constructs/variable.js +74 -0
  342. package/dist/esm/constructs/variable.js.map +1 -0
  343. package/dist/esm/deployment-context/deployment-context.d.ts +27 -0
  344. package/dist/esm/deployment-context/deployment-context.d.ts.map +1 -0
  345. package/dist/esm/deployment-context/deployment-context.js +4 -0
  346. package/dist/esm/deployment-context/deployment-context.js.map +1 -0
  347. package/dist/esm/expression/ast-nodes.d.ts +100 -0
  348. package/dist/esm/expression/ast-nodes.d.ts.map +1 -0
  349. package/dist/esm/expression/ast-nodes.js +125 -0
  350. package/dist/esm/expression/ast-nodes.js.map +1 -0
  351. package/dist/esm/expression/expressions.d.ts +164 -0
  352. package/dist/esm/expression/expressions.d.ts.map +1 -0
  353. package/dist/esm/expression/expressions.js +211 -0
  354. package/dist/esm/expression/expressions.js.map +1 -0
  355. package/dist/esm/fn.d.ts +194 -0
  356. package/dist/esm/fn.d.ts.map +1 -0
  357. package/dist/esm/fn.js +334 -0
  358. package/dist/esm/fn.js.map +1 -0
  359. package/dist/esm/index.d.ts +25 -0
  360. package/dist/esm/index.d.ts.map +1 -0
  361. package/dist/esm/index.js +17 -0
  362. package/dist/esm/index.js.map +1 -0
  363. package/dist/esm/internal.d.ts +13 -0
  364. package/dist/esm/internal.d.ts.map +1 -0
  365. package/dist/esm/internal.js +10 -0
  366. package/dist/esm/internal.js.map +1 -0
  367. package/dist/esm/naming/naming-policy.d.ts +56 -0
  368. package/dist/esm/naming/naming-policy.d.ts.map +1 -0
  369. package/dist/esm/naming/naming-policy.js +97 -0
  370. package/dist/esm/naming/naming-policy.js.map +1 -0
  371. package/dist/esm/naming/naming-rules.d.ts +15 -0
  372. package/dist/esm/naming/naming-rules.d.ts.map +1 -0
  373. package/dist/esm/naming/naming-rules.js +15 -0
  374. package/dist/esm/naming/naming-rules.js.map +1 -0
  375. package/dist/esm/package.json +8 -0
  376. package/dist/esm/serialization/contract/generated/ast.d.ts +508 -0
  377. package/dist/esm/serialization/contract/generated/ast.d.ts.map +1 -0
  378. package/dist/esm/serialization/contract/generated/ast.js +23 -0
  379. package/dist/esm/serialization/contract/generated/ast.js.map +1 -0
  380. package/dist/esm/serialization/contract/index.d.ts +2 -0
  381. package/dist/esm/serialization/contract/index.d.ts.map +1 -0
  382. package/dist/esm/serialization/contract/index.js +4 -0
  383. package/dist/esm/serialization/contract/index.js.map +1 -0
  384. package/dist/esm/serialization/index.d.ts +4 -0
  385. package/dist/esm/serialization/index.d.ts.map +1 -0
  386. package/dist/esm/serialization/index.js +5 -0
  387. package/dist/esm/serialization/index.js.map +1 -0
  388. package/dist/esm/serialization/json/deserialize.d.ts +24 -0
  389. package/dist/esm/serialization/json/deserialize.d.ts.map +1 -0
  390. package/dist/esm/serialization/json/deserialize.js +437 -0
  391. package/dist/esm/serialization/json/deserialize.js.map +1 -0
  392. package/dist/esm/serialization/json/encoding.d.ts +4 -0
  393. package/dist/esm/serialization/json/encoding.d.ts.map +1 -0
  394. package/dist/esm/serialization/json/encoding.js +319 -0
  395. package/dist/esm/serialization/json/encoding.js.map +1 -0
  396. package/dist/esm/serialization/json/expression.d.ts +32 -0
  397. package/dist/esm/serialization/json/expression.d.ts.map +1 -0
  398. package/dist/esm/serialization/json/expression.js +494 -0
  399. package/dist/esm/serialization/json/expression.js.map +1 -0
  400. package/dist/esm/serialization/json/lower.d.ts +41 -0
  401. package/dist/esm/serialization/json/lower.d.ts.map +1 -0
  402. package/dist/esm/serialization/json/lower.js +334 -0
  403. package/dist/esm/serialization/json/lower.js.map +1 -0
  404. package/dist/esm/serialization/json/pluralize-config.d.ts +3 -0
  405. package/dist/esm/serialization/json/pluralize-config.d.ts.map +1 -0
  406. package/dist/esm/serialization/json/pluralize-config.js +7 -0
  407. package/dist/esm/serialization/json/pluralize-config.js.map +1 -0
  408. package/dist/esm/serialization/json/serialize.d.ts +12 -0
  409. package/dist/esm/serialization/json/serialize.d.ts.map +1 -0
  410. package/dist/esm/serialization/json/serialize.js +389 -0
  411. package/dist/esm/serialization/json/serialize.js.map +1 -0
  412. package/dist/esm/serialization/json/util.d.ts +2 -0
  413. package/dist/esm/serialization/json/util.d.ts.map +1 -0
  414. package/dist/esm/serialization/json/util.js +19 -0
  415. package/dist/esm/serialization/json/util.js.map +1 -0
  416. package/dist/esm/serialization/utils.d.ts +3 -0
  417. package/dist/esm/serialization/utils.d.ts.map +1 -0
  418. package/dist/esm/serialization/utils.js +146 -0
  419. package/dist/esm/serialization/utils.js.map +1 -0
  420. package/dist/esm/shape/shape-registry.d.ts +51 -0
  421. package/dist/esm/shape/shape-registry.d.ts.map +1 -0
  422. package/dist/esm/shape/shape-registry.js +41 -0
  423. package/dist/esm/shape/shape-registry.js.map +1 -0
  424. package/dist/esm/shape/shape.d.ts +407 -0
  425. package/dist/esm/shape/shape.d.ts.map +1 -0
  426. package/dist/esm/shape/shape.js +424 -0
  427. package/dist/esm/shape/shape.js.map +1 -0
  428. package/dist/esm/shape/value-encoding.d.ts +121 -0
  429. package/dist/esm/shape/value-encoding.d.ts.map +1 -0
  430. package/dist/esm/shape/value-encoding.js +32 -0
  431. package/dist/esm/shape/value-encoding.js.map +1 -0
  432. package/dist/esm/types.d.ts +9 -0
  433. package/dist/esm/types.d.ts.map +1 -0
  434. package/dist/esm/types.js +4 -0
  435. package/dist/esm/types.js.map +1 -0
  436. package/dist/esm/util.d.ts +33 -0
  437. package/dist/esm/util.d.ts.map +1 -0
  438. package/dist/esm/util.js +74 -0
  439. package/dist/esm/util.js.map +1 -0
  440. package/package.json +117 -0
@@ -0,0 +1,110 @@
1
+ import { ProvisioningComponent } from "./provisioning-component.js";
2
+ import type { ExpressionOrValue } from "../expression/expressions.js";
3
+ import type { NamingPolicy } from "../naming/naming-policy.js";
4
+ import { OutputCollection } from "./output.js";
5
+ import { ParameterCollection } from "./parameter.js";
6
+ import { VariableCollection } from "./variable.js";
7
+ import { type QueryOptions } from "./resource/resource-query.js";
8
+ import { type Loop, type LoopedResource, type Resource, type ResourceOptions } from "./resource/resource.js";
9
+ import type { ResourceCtor } from "./resource/resource-registry.js";
10
+ import type { TargetScope } from "../serialization/contract/index.js";
11
+ export interface StackOptions {
12
+ readonly targetScope?: TargetScope | undefined;
13
+ readonly location?: ExpressionOrValue<string> | undefined;
14
+ readonly tags?: Record<string, ExpressionOrValue<string>> | undefined;
15
+ readonly namingPolicy?: NamingPolicy | undefined;
16
+ }
17
+ /**
18
+ * A Stack defines a deployment unit.
19
+ *
20
+ * @remarks
21
+ * Each stack produces one or more Bicep files — resources at different
22
+ * scopes (subscription vs. resource group) are split into separate files
23
+ * linked by module references.
24
+ *
25
+ * Resources register themselves by passing the stack (or a child component)
26
+ * as their first constructor argument. `Stack.add()` is available as a
27
+ * convenience for creating child components with the stack as parent.
28
+ *
29
+ * The `targetScope` option controls the Bicep target scope. Default is
30
+ * `"subscription"`, which requires explicit `ResourceGroup` instances.
31
+ * Set `"resourceGroup"` to deploy resources directly into an existing
32
+ * resource group.
33
+ *
34
+ * Every stack registers itself in `Stack.roots` for collection by tools
35
+ * like the playground and CLI.
36
+ *
37
+ * @example
38
+ * ```typescript snippet:ignore
39
+ * import { Stack, ResourceGroup } from "@azure/provisioning-core";
40
+ * import { KeyVault } from "@azure/provisioning-keyvault";
41
+ *
42
+ * const stack = new Stack("my-app");
43
+ * const rg = new ResourceGroup(stack, { name: "rg-my-app", location: "eastus" });
44
+ * const vault = new KeyVault(rg, {
45
+ * name: "kv-my-app",
46
+ * properties: {
47
+ * tenantId: "11111111-1111-1111-1111-111111111111",
48
+ * sku: { family: "A", name: "standard" },
49
+ * },
50
+ * });
51
+ * ```
52
+ */
53
+ export declare class Stack extends ProvisioningComponent {
54
+ #private;
55
+ readonly name: string;
56
+ readonly targetScope: TargetScope;
57
+ readonly parameters: ParameterCollection;
58
+ readonly variables: VariableCollection;
59
+ readonly outputs: OutputCollection;
60
+ /** All root stacks created since the last call to `Stack.clearRoots()`. */
61
+ static get roots(): readonly Stack[];
62
+ /**
63
+ * Returns all root stacks and clears the registry. Useful for collecting
64
+ * all stacks after executing user code (e.g. in the playground or CLI).
65
+ */
66
+ static clearRoots(): Stack[];
67
+ /** Create a root stack. */
68
+ constructor(name: string, options?: StackOptions);
69
+ /**
70
+ * The scalar resources in this stack. With no `type`, returns
71
+ * every scalar resource; pass a resource class to filter and narrow to
72
+ * that subclass. Returns a plain array — use native `.filter` / `.find` /
73
+ * `.map` for anything further.
74
+ *
75
+ * By default walks the whole tree; pass `{ recursive: false }` to consider
76
+ * only the stack's direct children.
77
+ */
78
+ getResources(options?: QueryOptions): Resource[];
79
+ getResources<T extends Resource>(type: ResourceCtor<T>, options?: QueryOptions): T[];
80
+ /**
81
+ * Find the **first** scalar resource of `type` whose literal name equals
82
+ * `name`, or `undefined` if none matches.
83
+ *
84
+ * @remarks
85
+ * Returns the first match in tree order. ARM names are unique only *per
86
+ * resource type within a scope*, so a stack MAY legitimately contain more
87
+ * than one resource of the same `type` and `name` (e.g. across different
88
+ * resource groups) — this returns whichever is found first. Use
89
+ * `getResources(type)` and filter yourself if you need all matches.
90
+ *
91
+ * Only scalar resources are searched, and names that do not resolve to a
92
+ * string literal are never matched. Pass `{ recursive: false }` to search
93
+ * only the stack's direct children.
94
+ */
95
+ getResource<T extends Resource>(type: ResourceCtor<T>, name: string, options?: QueryOptions): T | undefined;
96
+ /**
97
+ * Create a child under this stack (with the stack as its parent context),
98
+ * as a convenience for `new Ctor(stack, ...args)`.
99
+ *
100
+ * Constructs a single child instance and returns it.
101
+ */
102
+ add<T extends new (context: ProvisioningComponent, ...args: any[]) => ProvisioningComponent>(ctor: T, ...args: ConstructorParameters<T> extends [any, ...infer Rest] ? Rest : never): InstanceType<T>;
103
+ }
104
+ /** @internal */
105
+ export declare function getLoopedResources(stack: Stack, options?: QueryOptions): LoopedResource<Resource>[];
106
+ /** @internal */
107
+ export declare function getLoopedResources<T extends Resource>(stack: Stack, type: ResourceCtor<T>, options?: QueryOptions): LoopedResource<T>[];
108
+ /** @internal */
109
+ export declare function addLoopedResource<T extends Resource, P>(stack: Stack, ctor: new (context: Stack, props: P, options?: ResourceOptions) => T, loop: Loop<unknown>, ...rest: undefined extends P ? [props?: P, options?: ResourceOptions] : [props: P, options?: ResourceOptions]): LoopedResource<T>;
110
+ //# sourceMappingURL=stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../src/constructs/stack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
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 stack_exports = {};
19
+ __export(stack_exports, {
20
+ Stack: () => Stack,
21
+ addLoopedResource: () => addLoopedResource,
22
+ getLoopedResources: () => getLoopedResources
23
+ });
24
+ module.exports = __toCommonJS(stack_exports);
25
+ var import_provisioning_component = require("./provisioning-component.js");
26
+ var import_naming_policy = require("../naming/naming-policy.js");
27
+ var import_output = require("./output.js");
28
+ var import_parameter = require("./parameter.js");
29
+ var import_variable = require("./variable.js");
30
+ var import_resource_query = require("./resource/resource-query.js");
31
+ var import_resource = require("./resource/resource.js");
32
+ class Stack extends import_provisioning_component.ProvisioningComponent {
33
+ name;
34
+ targetScope;
35
+ parameters = new import_parameter.ParameterCollection();
36
+ variables = new import_variable.VariableCollection();
37
+ outputs = new import_output.OutputCollection();
38
+ // --- Static root stack registry ---
39
+ static #roots = [];
40
+ /** All root stacks created since the last call to `Stack.clearRoots()`. */
41
+ static get roots() {
42
+ return Stack.#roots;
43
+ }
44
+ /**
45
+ * Returns all root stacks and clears the registry. Useful for collecting
46
+ * all stacks after executing user code (e.g. in the playground or CLI).
47
+ */
48
+ static clearRoots() {
49
+ return Stack.#roots.splice(0, Stack.#roots.length);
50
+ }
51
+ /** Create a root stack. */
52
+ constructor(name, options) {
53
+ super();
54
+ const opts = options ?? {};
55
+ this.name = name;
56
+ this.targetScope = opts.targetScope ?? "subscription";
57
+ Stack.#roots.push(this);
58
+ this._localDeploymentContext = {
59
+ location: opts.location,
60
+ tags: opts.tags,
61
+ namingPolicy: opts.namingPolicy ?? new import_naming_policy.DefaultNamingPolicy({ workload: name })
62
+ };
63
+ }
64
+ getResources(typeOrOptions, maybeOptions) {
65
+ return (0, import_resource_query.getResources)(this, typeOrOptions, maybeOptions);
66
+ }
67
+ /**
68
+ * Find the **first** scalar resource of `type` whose literal name equals
69
+ * `name`, or `undefined` if none matches.
70
+ *
71
+ * @remarks
72
+ * Returns the first match in tree order. ARM names are unique only *per
73
+ * resource type within a scope*, so a stack MAY legitimately contain more
74
+ * than one resource of the same `type` and `name` (e.g. across different
75
+ * resource groups) — this returns whichever is found first. Use
76
+ * `getResources(type)` and filter yourself if you need all matches.
77
+ *
78
+ * Only scalar resources are searched, and names that do not resolve to a
79
+ * string literal are never matched. Pass `{ recursive: false }` to search
80
+ * only the stack's direct children.
81
+ */
82
+ getResource(type, name, options) {
83
+ return (0, import_resource_query.getResource)(this, type, name, options);
84
+ }
85
+ add(ctor, ...rest) {
86
+ return new ctor(this.self, ...rest);
87
+ }
88
+ }
89
+ function getLoopedResources(stack, typeOrOptions, maybeOptions) {
90
+ return (0, import_resource_query.getLoopedResources)(stack, typeOrOptions, maybeOptions);
91
+ }
92
+ function addLoopedResource(stack, ctor, loop, ...rest) {
93
+ return (0, import_resource.createLoopedResource)(ctor, loop, stack.self, ...rest);
94
+ }
95
+ // Annotate the CommonJS export names for ESM import in node:
96
+ 0 && (module.exports = {
97
+ Stack,
98
+ addLoopedResource,
99
+ getLoopedResources
100
+ });
101
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/constructs/stack.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { ProvisioningComponent } from \"./provisioning-component.js\";\nimport type { ExpressionOrValue } from \"../expression/expressions.js\";\nimport type { NamingPolicy } from \"../naming/naming-policy.js\";\nimport { DefaultNamingPolicy } from \"../naming/naming-policy.js\";\nimport { OutputCollection } from \"./output.js\";\nimport { ParameterCollection } from \"./parameter.js\";\nimport { VariableCollection } from \"./variable.js\";\nimport {\n getLoopedResources as runGetLoopedResources,\n getResources as runGetResources,\n getResource as runGetResource,\n type QueryOptions,\n} from \"./resource/resource-query.js\";\nimport {\n createLoopedResource,\n type Loop,\n type LoopedResource,\n type Resource,\n type ResourceOptions,\n} from \"./resource/resource.js\";\nimport type { ResourceCtor } from \"./resource/resource-registry.js\";\nimport type { TargetScope } from \"../serialization/contract/index.js\";\n\n// ---------------------------------------------------------------------------\n// Stack \u2014 class-based API for creating stacks\n// ---------------------------------------------------------------------------\n\nexport interface StackOptions {\n readonly targetScope?: TargetScope | undefined;\n readonly location?: ExpressionOrValue<string> | undefined;\n readonly tags?: Record<string, ExpressionOrValue<string>> | undefined;\n readonly namingPolicy?: NamingPolicy | undefined;\n}\n\n/**\n * A Stack defines a deployment unit.\n *\n * @remarks\n * Each stack produces one or more Bicep files \u2014 resources at different\n * scopes (subscription vs. resource group) are split into separate files\n * linked by module references.\n *\n * Resources register themselves by passing the stack (or a child component)\n * as their first constructor argument. `Stack.add()` is available as a\n * convenience for creating child components with the stack as parent.\n *\n * The `targetScope` option controls the Bicep target scope. Default is\n * `\"subscription\"`, which requires explicit `ResourceGroup` instances.\n * Set `\"resourceGroup\"` to deploy resources directly into an existing\n * resource group.\n *\n * Every stack registers itself in `Stack.roots` for collection by tools\n * like the playground and CLI.\n *\n * @example\n * ```typescript snippet:ignore\n * import { Stack, ResourceGroup } from \"@azure/provisioning-core\";\n * import { KeyVault } from \"@azure/provisioning-keyvault\";\n *\n * const stack = new Stack(\"my-app\");\n * const rg = new ResourceGroup(stack, { name: \"rg-my-app\", location: \"eastus\" });\n * const vault = new KeyVault(rg, {\n * name: \"kv-my-app\",\n * properties: {\n * tenantId: \"11111111-1111-1111-1111-111111111111\",\n * sku: { family: \"A\", name: \"standard\" },\n * },\n * });\n * ```\n */\nexport class Stack extends ProvisioningComponent {\n readonly name: string;\n readonly targetScope: TargetScope;\n readonly parameters: ParameterCollection = new ParameterCollection();\n readonly variables: VariableCollection = new VariableCollection();\n readonly outputs: OutputCollection = new OutputCollection();\n\n // --- Static root stack registry ---\n\n static #roots: Stack[] = [];\n\n /** All root stacks created since the last call to `Stack.clearRoots()`. */\n static get roots(): readonly Stack[] {\n return Stack.#roots;\n }\n\n /**\n * Returns all root stacks and clears the registry. Useful for collecting\n * all stacks after executing user code (e.g. in the playground or CLI).\n */\n static clearRoots(): Stack[] {\n return Stack.#roots.splice(0, Stack.#roots.length);\n }\n\n /** Create a root stack. */\n constructor(name: string, options?: StackOptions) {\n super();\n const opts = options ?? {};\n this.name = name;\n this.targetScope = opts.targetScope ?? \"subscription\";\n Stack.#roots.push(this);\n this._localDeploymentContext = {\n location: opts.location,\n tags: opts.tags,\n namingPolicy: opts.namingPolicy ?? new DefaultNamingPolicy({ workload: name }),\n };\n }\n\n // --- Query ---\n // Query the resources in this stack. Exposed on `Stack` (not `ProvisioningComponent`)\n // because \"all resources in the stack\" is unambiguous, whereas\n // `resource.getResources()` \u2014 which excludes the resource itself \u2014\n // would be confusing. For multiple stacks, use\n // `stacks.flatMap(s => s.getResources(...))`.\n\n /**\n * The scalar resources in this stack. With no `type`, returns\n * every scalar resource; pass a resource class to filter and narrow to\n * that subclass. Returns a plain array \u2014 use native `.filter` / `.find` /\n * `.map` for anything further.\n *\n * By default walks the whole tree; pass `{ recursive: false }` to consider\n * only the stack's direct children.\n */\n getResources(options?: QueryOptions): Resource[];\n getResources<T extends Resource>(type: ResourceCtor<T>, options?: QueryOptions): T[];\n getResources(\n typeOrOptions?: ResourceCtor<Resource> | QueryOptions,\n maybeOptions?: QueryOptions,\n ): Resource[] {\n return runGetResources(this, typeOrOptions as never, maybeOptions);\n }\n\n /**\n * Find the **first** scalar resource of `type` whose literal name equals\n * `name`, or `undefined` if none matches.\n *\n * @remarks\n * Returns the first match in tree order. ARM names are unique only *per\n * resource type within a scope*, so a stack MAY legitimately contain more\n * than one resource of the same `type` and `name` (e.g. across different\n * resource groups) \u2014 this returns whichever is found first. Use\n * `getResources(type)` and filter yourself if you need all matches.\n *\n * Only scalar resources are searched, and names that do not resolve to a\n * string literal are never matched. Pass `{ recursive: false }` to search\n * only the stack's direct children.\n */\n getResource<T extends Resource>(\n type: ResourceCtor<T>,\n name: string,\n options?: QueryOptions,\n ): T | undefined {\n return runGetResource(this, type, name, options);\n }\n\n /**\n * Create a child under this stack (with the stack as its parent context),\n * as a convenience for `new Ctor(stack, ...args)`.\n *\n * Constructs a single child instance and returns it.\n */\n add<T extends new (context: ProvisioningComponent, ...args: any[]) => ProvisioningComponent>(\n ctor: T,\n ...args: ConstructorParameters<T> extends [any, ...infer Rest] ? Rest : never\n ): InstanceType<T>;\n add(\n ctor: new (context: ProvisioningComponent, ...args: any[]) => ProvisioningComponent,\n ...rest: any[]\n ): ProvisioningComponent {\n return new ctor(this.self, ...rest);\n }\n}\n\n/** @internal */\nexport function getLoopedResources(\n stack: Stack,\n options?: QueryOptions,\n): LoopedResource<Resource>[];\n/** @internal */\nexport function getLoopedResources<T extends Resource>(\n stack: Stack,\n type: ResourceCtor<T>,\n options?: QueryOptions,\n): LoopedResource<T>[];\nexport function getLoopedResources(\n stack: Stack,\n typeOrOptions?: ResourceCtor<Resource> | QueryOptions,\n maybeOptions?: QueryOptions,\n): LoopedResource<Resource>[] {\n return runGetLoopedResources(stack, typeOrOptions as never, maybeOptions);\n}\n\n/** @internal */\nexport function addLoopedResource<T extends Resource, P>(\n stack: Stack,\n ctor: new (context: Stack, props: P, options?: ResourceOptions) => T,\n loop: Loop<unknown>,\n ...rest: undefined extends P\n ? [props?: P, options?: ResourceOptions]\n : [props: P, options?: ResourceOptions]\n): LoopedResource<T> {\n return createLoopedResource(ctor, loop, stack.self, ...rest);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oCAAsC;AAGtC,2BAAoC;AACpC,oBAAiC;AACjC,uBAAoC;AACpC,sBAAmC;AACnC,4BAKO;AACP,sBAMO;AAmDA,MAAM,cAAc,oDAAsB;AAAA,EACtC;AAAA,EACA;AAAA,EACA,aAAkC,IAAI,qCAAoB;AAAA,EAC1D,YAAgC,IAAI,mCAAmB;AAAA,EACvD,UAA4B,IAAI,+BAAiB;AAAA;AAAA,EAI1D,OAAO,SAAkB,CAAC;AAAA;AAAA,EAG1B,WAAW,QAA0B;AACnC,WAAO,MAAM;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,aAAsB;AAC3B,WAAO,MAAM,OAAO,OAAO,GAAG,MAAM,OAAO,MAAM;AAAA,EACnD;AAAA;AAAA,EAGA,YAAY,MAAc,SAAwB;AAChD,UAAM;AACN,UAAM,OAAO,WAAW,CAAC;AACzB,SAAK,OAAO;AACZ,SAAK,cAAc,KAAK,eAAe;AACvC,UAAM,OAAO,KAAK,IAAI;AACtB,SAAK,0BAA0B;AAAA,MAC7B,UAAU,KAAK;AAAA,MACf,MAAM,KAAK;AAAA,MACX,cAAc,KAAK,gBAAgB,IAAI,yCAAoB,EAAE,UAAU,KAAK,CAAC;AAAA,IAC/E;AAAA,EACF;AAAA,EAoBA,aACE,eACA,cACY;AACZ,eAAO,sBAAAA,cAAgB,MAAM,eAAwB,YAAY;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,YACE,MACA,MACA,SACe;AACf,eAAO,sBAAAC,aAAe,MAAM,MAAM,MAAM,OAAO;AAAA,EACjD;AAAA,EAYA,IACE,SACG,MACoB;AACvB,WAAO,IAAI,KAAK,KAAK,MAAM,GAAG,IAAI;AAAA,EACpC;AACF;AAaO,SAAS,mBACd,OACA,eACA,cAC4B;AAC5B,aAAO,sBAAAC,oBAAsB,OAAO,eAAwB,YAAY;AAC1E;AAGO,SAAS,kBACd,OACA,MACA,SACG,MAGgB;AACnB,aAAO,sCAAqB,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI;AAC7D;",
6
+ "names": ["runGetResources", "runGetResource", "runGetLoopedResources"]
7
+ }
@@ -0,0 +1,63 @@
1
+ import type { Expression, InputOf } from "../expression/expressions.js";
2
+ import type { Stack } from "./stack.js";
3
+ export type ExpressionValue<T> = T extends Expression<infer U> ? U : T;
4
+ /**
5
+ * A value accepted as a deployment variable's value: any JSON literal
6
+ * (scalar, `null`, array, object — recursively), an `Expression`, or a
7
+ * resource view (`InputOf<unknown>`). The literal members are required so
8
+ * plain object/array literals are accepted (a bare `InputOf<unknown>` is a
9
+ * weak type and would reject them).
10
+ */
11
+ export type VariableValue = string | number | boolean | null | readonly VariableValue[] | {
12
+ readonly [key: string]: VariableValue;
13
+ } | InputOf<unknown>;
14
+ export type VariableOptions = {
15
+ readonly description?: string | undefined;
16
+ readonly export?: boolean | undefined;
17
+ };
18
+ /**
19
+ * Pure declaration data for a deployment variable. Stored on the stack
20
+ * (paired with the returned expression handle in {@link VariableEntry});
21
+ * read by the serializer at emit time. Not part of the value-level handle.
22
+ */
23
+ export interface VariableMetadata extends VariableOptions {
24
+ readonly name: string;
25
+ readonly value: VariableValue;
26
+ }
27
+ export type Variable<TValue extends VariableValue = VariableValue> = Expression<ExpressionValue<TValue>>;
28
+ /**
29
+ * Authoring-time collection of a stack's deployment variables. Backed by an
30
+ * ordered private array; supports add/get/delete/iteration. Look variables up
31
+ * by name via {@link VariableCollection.get}.
32
+ */
33
+ export declare class VariableCollection {
34
+ #private;
35
+ /** Add a variable; returns its expression handle. Throws on duplicate name. */
36
+ add<TValue extends VariableValue = VariableValue>(name: string, value: TValue, options?: VariableOptions): Variable<TValue>;
37
+ /** The expression handle for a variable, or `undefined`. */
38
+ get(name: string): Variable | undefined;
39
+ /** The declaration metadata for a variable, or `undefined`. */
40
+ getMetadata(name: string): VariableMetadata | undefined;
41
+ /** All variable handles, in insertion order. */
42
+ list(): readonly Variable[];
43
+ /** All declaration metadata, in insertion order. */
44
+ listMetadata(): readonly VariableMetadata[];
45
+ has(name: string): boolean;
46
+ /** Remove a variable by name. Returns whether one was removed. */
47
+ delete(name: string): boolean;
48
+ get size(): number;
49
+ [Symbol.iterator](): IterableIterator<Variable>;
50
+ }
51
+ /**
52
+ * A computed value evaluated at deploy time, compiled to a Bicep `var` declaration.
53
+ *
54
+ * @example
55
+ * ```typescript snippet:ignore
56
+ * import { Stack, createVariable } from "@azure/provisioning-core";
57
+ *
58
+ * const stack = new Stack("my-app");
59
+ * const suffix = createVariable(stack, "suffix", "prod");
60
+ * ```
61
+ */
62
+ export declare function createVariable<TValue extends VariableValue = VariableValue>(stack: Stack, name: string, value: TValue, options?: VariableOptions): Variable<TValue>;
63
+ //# sourceMappingURL=variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../../src/constructs/variable.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,aAAa,EAAE,GACxB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,GACzC,OAAO,CAAC,OAAO,CAAC,CAAC;AAErB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC/B;AAOD,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,IAAI,UAAU,CAC7E,eAAe,CAAC,MAAM,CAAC,CACxB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,kBAAkB;;IAG7B,+EAA+E;IAC/E,GAAG,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,EAC9C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,eAAe,GACxB,QAAQ,CAAC,MAAM,CAAC;IAYnB,4DAA4D;IAC5D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIvC,+DAA+D;IAC/D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIvD,gDAAgD;IAChD,IAAI,IAAI,SAAS,QAAQ,EAAE;IAI3B,oDAAoD;IACpD,YAAY,IAAI,SAAS,gBAAgB,EAAE;IAI3C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,kEAAkE;IAClE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAO7B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC;CAOhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,EACzE,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,eAAe,GACxB,QAAQ,CAAC,MAAM,CAAC,CAElB"}
@@ -0,0 +1,85 @@
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 variable_exports = {};
19
+ __export(variable_exports, {
20
+ VariableCollection: () => VariableCollection,
21
+ createVariable: () => createVariable
22
+ });
23
+ module.exports = __toCommonJS(variable_exports);
24
+ var import_expressions = require("../expression/expressions.js");
25
+ var import_ast_nodes = require("../expression/ast-nodes.js");
26
+ var import_util = require("../util.js");
27
+ class VariableCollection {
28
+ #entries = [];
29
+ /** Add a variable; returns its expression handle. Throws on duplicate name. */
30
+ add(name, value, options) {
31
+ (0, import_util.assertBicepIdentifier)(name, "Deployment variable");
32
+ if (this.has(name)) {
33
+ throw new Error(`Duplicate deployment variable name: ${name}`);
34
+ }
35
+ const variable = (0, import_expressions.wrapExpression)(
36
+ (0, import_ast_nodes.symbolicValueExpressionNode)(name)
37
+ );
38
+ this.#entries.push({ metadata: { name, value, ...options }, variable });
39
+ return variable;
40
+ }
41
+ /** The expression handle for a variable, or `undefined`. */
42
+ get(name) {
43
+ return this.#find(name)?.variable;
44
+ }
45
+ /** The declaration metadata for a variable, or `undefined`. */
46
+ getMetadata(name) {
47
+ return this.#find(name)?.metadata;
48
+ }
49
+ /** All variable handles, in insertion order. */
50
+ list() {
51
+ return this.#entries.map((e) => e.variable);
52
+ }
53
+ /** All declaration metadata, in insertion order. */
54
+ listMetadata() {
55
+ return this.#entries.map((e) => e.metadata);
56
+ }
57
+ has(name) {
58
+ return this.#find(name) !== void 0;
59
+ }
60
+ /** Remove a variable by name. Returns whether one was removed. */
61
+ delete(name) {
62
+ const i = this.#entries.findIndex((e) => e.metadata.name === name);
63
+ if (i === -1) return false;
64
+ this.#entries.splice(i, 1);
65
+ return true;
66
+ }
67
+ get size() {
68
+ return this.#entries.length;
69
+ }
70
+ [Symbol.iterator]() {
71
+ return this.#entries.map((e) => e.variable)[Symbol.iterator]();
72
+ }
73
+ #find(name) {
74
+ return this.#entries.find((e) => e.metadata.name === name);
75
+ }
76
+ }
77
+ function createVariable(stack, name, value, options) {
78
+ return stack.variables.add(name, value, options);
79
+ }
80
+ // Annotate the CommonJS export names for ESM import in node:
81
+ 0 && (module.exports = {
82
+ VariableCollection,
83
+ createVariable
84
+ });
85
+ //# sourceMappingURL=variable.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/constructs/variable.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Expression, InputOf } from \"../expression/expressions.js\";\nimport { wrapExpression } from \"../expression/expressions.js\";\nimport { symbolicValueExpressionNode } from \"../expression/ast-nodes.js\";\nimport type { Stack } from \"./stack.js\";\nimport { assertBicepIdentifier } from \"../util.js\";\n\nexport type ExpressionValue<T> = T extends Expression<infer U> ? U : T;\n\n/**\n * A value accepted as a deployment variable's value: any JSON literal\n * (scalar, `null`, array, object \u2014 recursively), an `Expression`, or a\n * resource view (`InputOf<unknown>`). The literal members are required so\n * plain object/array literals are accepted (a bare `InputOf<unknown>` is a\n * weak type and would reject them).\n */\nexport type VariableValue =\n | string\n | number\n | boolean\n | null\n | readonly VariableValue[]\n | { readonly [key: string]: VariableValue }\n | InputOf<unknown>;\n\nexport type VariableOptions = {\n readonly description?: string | undefined;\n readonly export?: boolean | undefined;\n};\n\n/**\n * Pure declaration data for a deployment variable. Stored on the stack\n * (paired with the returned expression handle in {@link VariableEntry});\n * read by the serializer at emit time. Not part of the value-level handle.\n */\nexport interface VariableMetadata extends VariableOptions {\n readonly name: string;\n readonly value: VariableValue;\n}\n\ninterface VariableEntry {\n readonly metadata: VariableMetadata;\n readonly variable: Expression<unknown>;\n}\n\nexport type Variable<TValue extends VariableValue = VariableValue> = Expression<\n ExpressionValue<TValue>\n>;\n\n/**\n * Authoring-time collection of a stack's deployment variables. Backed by an\n * ordered private array; supports add/get/delete/iteration. Look variables up\n * by name via {@link VariableCollection.get}.\n */\nexport class VariableCollection {\n #entries: VariableEntry[] = [];\n\n /** Add a variable; returns its expression handle. Throws on duplicate name. */\n add<TValue extends VariableValue = VariableValue>(\n name: string,\n value: TValue,\n options?: VariableOptions,\n ): Variable<TValue> {\n assertBicepIdentifier(name, \"Deployment variable\");\n if (this.has(name)) {\n throw new Error(`Duplicate deployment variable name: ${name}`);\n }\n const variable = wrapExpression<ExpressionValue<TValue>>(\n symbolicValueExpressionNode<ExpressionValue<TValue>, string>(name),\n );\n this.#entries.push({ metadata: { name, value, ...options }, variable });\n return variable;\n }\n\n /** The expression handle for a variable, or `undefined`. */\n get(name: string): Variable | undefined {\n return this.#find(name)?.variable;\n }\n\n /** The declaration metadata for a variable, or `undefined`. */\n getMetadata(name: string): VariableMetadata | undefined {\n return this.#find(name)?.metadata;\n }\n\n /** All variable handles, in insertion order. */\n list(): readonly Variable[] {\n return this.#entries.map((e) => e.variable);\n }\n\n /** All declaration metadata, in insertion order. */\n listMetadata(): readonly VariableMetadata[] {\n return this.#entries.map((e) => e.metadata);\n }\n\n has(name: string): boolean {\n return this.#find(name) !== undefined;\n }\n\n /** Remove a variable by name. Returns whether one was removed. */\n delete(name: string): boolean {\n const i = this.#entries.findIndex((e) => e.metadata.name === name);\n if (i === -1) return false;\n this.#entries.splice(i, 1);\n return true;\n }\n\n get size(): number {\n return this.#entries.length;\n }\n\n [Symbol.iterator](): IterableIterator<Variable> {\n return this.#entries.map((e) => e.variable)[Symbol.iterator]();\n }\n\n #find(name: string): VariableEntry | undefined {\n return this.#entries.find((e) => e.metadata.name === name);\n }\n}\n\n/**\n * A computed value evaluated at deploy time, compiled to a Bicep `var` declaration.\n *\n * @example\n * ```typescript snippet:ignore\n * import { Stack, createVariable } from \"@azure/provisioning-core\";\n *\n * const stack = new Stack(\"my-app\");\n * const suffix = createVariable(stack, \"suffix\", \"prod\");\n * ```\n */\nexport function createVariable<TValue extends VariableValue = VariableValue>(\n stack: Stack,\n name: string,\n value: TValue,\n options?: VariableOptions,\n): Variable<TValue> {\n return stack.variables.add(name, value, options);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,yBAA+B;AAC/B,uBAA4C;AAE5C,kBAAsC;AAiD/B,MAAM,mBAAmB;AAAA,EAC9B,WAA4B,CAAC;AAAA;AAAA,EAG7B,IACE,MACA,OACA,SACkB;AAClB,2CAAsB,MAAM,qBAAqB;AACjD,QAAI,KAAK,IAAI,IAAI,GAAG;AAClB,YAAM,IAAI,MAAM,uCAAuC,IAAI,EAAE;AAAA,IAC/D;AACA,UAAM,eAAW;AAAA,UACf,8CAA6D,IAAI;AAAA,IACnE;AACA,SAAK,SAAS,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AACtE,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,IAAI,MAAoC;AACtC,WAAO,KAAK,MAAM,IAAI,GAAG;AAAA,EAC3B;AAAA;AAAA,EAGA,YAAY,MAA4C;AACtD,WAAO,KAAK,MAAM,IAAI,GAAG;AAAA,EAC3B;AAAA;AAAA,EAGA,OAA4B;AAC1B,WAAO,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ;AAAA,EAC5C;AAAA;AAAA,EAGA,eAA4C;AAC1C,WAAO,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ;AAAA,EAC5C;AAAA,EAEA,IAAI,MAAuB;AACzB,WAAO,KAAK,MAAM,IAAI,MAAM;AAAA,EAC9B;AAAA;AAAA,EAGA,OAAO,MAAuB;AAC5B,UAAM,IAAI,KAAK,SAAS,UAAU,CAAC,MAAM,EAAE,SAAS,SAAS,IAAI;AACjE,QAAI,MAAM,GAAI,QAAO;AACrB,SAAK,SAAS,OAAO,GAAG,CAAC;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,OAAe;AACjB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAgC;AAC9C,WAAO,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,QAAQ,EAAE;AAAA,EAC/D;AAAA,EAEA,MAAM,MAAyC;AAC7C,WAAO,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE,SAAS,SAAS,IAAI;AAAA,EAC3D;AACF;AAaO,SAAS,eACd,OACA,MACA,OACA,SACkB;AAClB,SAAO,MAAM,UAAU,IAAI,MAAM,OAAO,OAAO;AACjD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,27 @@
1
+ import type { ExpressionOrValue } from "../expression/expressions.js";
2
+ import type { NamingPolicy } from "../naming/naming-policy.js";
3
+ /**
4
+ * Inherited environment that flows down the component tree.
5
+ *
6
+ * @remarks
7
+ * Each node may attach a local contribution via `ProvisioningComponent._localDeploymentContext`
8
+ * (today, only `Stack` and `ResourceGroup` do). When a `Resource` reads the
9
+ * effective context, the framework walks ancestors and resolves each field:
10
+ *
11
+ * - `location`: nearest ancestor with a value wins.
12
+ * - `namingPolicy`: nearest ancestor with a value wins.
13
+ * - `tags`: flat-merged across **all** ancestors; innermost wins on key conflict.
14
+ *
15
+ * Per-resource Bicep `scope:` is not part of this — a resource's deployment
16
+ * scope is determined by which file or module it lands in, which in turn is
17
+ * determined by the ProvisioningComponent tree (the nearest `ResourceGroup`/`Stack` ancestor).
18
+ *
19
+ * The same interface describes both a node's local contribution and the
20
+ * fully-resolved view returned by `ProvisioningComponent.deploymentContext`.
21
+ */
22
+ export interface DeploymentContext {
23
+ readonly location?: ExpressionOrValue<string> | undefined;
24
+ readonly tags?: Record<string, ExpressionOrValue<string>> | undefined;
25
+ readonly namingPolicy?: NamingPolicy | undefined;
26
+ }
27
+ //# sourceMappingURL=deployment-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-context.d.ts","sourceRoot":"","sources":["../../../src/deployment-context/deployment-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAClD"}
@@ -0,0 +1,16 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var deployment_context_exports = {};
15
+ module.exports = __toCommonJS(deployment_context_exports);
16
+ //# sourceMappingURL=deployment-context.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/deployment-context/deployment-context.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ExpressionOrValue } from \"../expression/expressions.js\";\nimport type { NamingPolicy } from \"../naming/naming-policy.js\";\n\n/**\n * Inherited environment that flows down the component tree.\n *\n * @remarks\n * Each node may attach a local contribution via `ProvisioningComponent._localDeploymentContext`\n * (today, only `Stack` and `ResourceGroup` do). When a `Resource` reads the\n * effective context, the framework walks ancestors and resolves each field:\n *\n * - `location`: nearest ancestor with a value wins.\n * - `namingPolicy`: nearest ancestor with a value wins.\n * - `tags`: flat-merged across **all** ancestors; innermost wins on key conflict.\n *\n * Per-resource Bicep `scope:` is not part of this \u2014 a resource's deployment\n * scope is determined by which file or module it lands in, which in turn is\n * determined by the ProvisioningComponent tree (the nearest `ResourceGroup`/`Stack` ancestor).\n *\n * The same interface describes both a node's local contribution and the\n * fully-resolved view returned by `ProvisioningComponent.deploymentContext`.\n */\nexport interface DeploymentContext {\n readonly location?: ExpressionOrValue<string> | undefined;\n readonly tags?: Record<string, ExpressionOrValue<string>> | undefined;\n readonly namingPolicy?: NamingPolicy | undefined;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,100 @@
1
+ import type { Resource } from "../constructs/resource/resource.js";
2
+ import type { BinaryOperator, UnaryOperator } from "../serialization/contract/index.js";
3
+ import type { PropertySegment } from "../types.js";
4
+ export type { BinaryOperator, UnaryOperator };
5
+ export interface FunctionCallExpressionNode<_TValue = unknown, TOperator extends string = string> {
6
+ readonly kind: "fn-call";
7
+ readonly operator: TOperator;
8
+ readonly args: readonly unknown[];
9
+ }
10
+ export interface SymbolicValueExpressionNode<_TValue = unknown, TPath extends string = string> {
11
+ readonly kind: "symbolic-value";
12
+ readonly path: TPath;
13
+ }
14
+ export interface IdentifierExpressionNode<_TValue = unknown> {
15
+ readonly kind: "identifier";
16
+ readonly id: string | Resource;
17
+ }
18
+ export interface PropertyAccessExpressionNode<_TValue = unknown> {
19
+ readonly kind: "property-access";
20
+ readonly base: ExpressionNode;
21
+ readonly property: string;
22
+ readonly nullish: boolean;
23
+ /**
24
+ * Optional ARM wire-path segments. When present, the serialization
25
+ * lowering pass rewrites this single access into a chain that walks
26
+ * these segments (handling renames + `@flattenProperty` hoisting).
27
+ * Untyped / hand-built expressions leave this `undefined` and pass
28
+ * through unchanged.
29
+ */
30
+ readonly armPath?: readonly string[] | undefined;
31
+ }
32
+ export interface ArrayAccessExpressionNode<_TValue = unknown> {
33
+ readonly kind: "array-access";
34
+ readonly base: ExpressionNode;
35
+ /**
36
+ * The index into the array. A literal `number`/`string` lowers to an
37
+ * integer/string array-access (or a property-access for identifier-like
38
+ * strings) at serialize time. Any {@link ExpressionNode} is serialized
39
+ * recursively into the wire array-access's `index` slot — e.g. a looped
40
+ * `.at(loop.index)` stores the unwrapped `symbolic-value` node (emitting
41
+ * `sym[i]`), and a computed offset stores a `binary` / `fn-call` node
42
+ * (`sym[i + 1]`). `Expression<T>` proxies are always unwrapped to their
43
+ * raw node before landing here, per the "state holds normalized raw
44
+ * nodes" invariant — so a proxy is never stored directly.
45
+ */
46
+ readonly index: ArrayAccessIndex;
47
+ readonly nullish: boolean;
48
+ readonly fromEnd: boolean;
49
+ }
50
+ export interface BinaryExpressionNode<_TValue = unknown> {
51
+ readonly kind: "binary";
52
+ readonly operator: BinaryOperator;
53
+ readonly left: unknown;
54
+ readonly right: unknown;
55
+ }
56
+ export interface UnaryExpressionNode<_TValue = unknown> {
57
+ readonly kind: "unary";
58
+ readonly operator: UnaryOperator;
59
+ readonly argument: unknown;
60
+ }
61
+ export interface TernaryExpressionNode<_TValue = unknown> {
62
+ readonly kind: "ternary";
63
+ readonly condition: unknown;
64
+ readonly trueValue: unknown;
65
+ readonly falseValue: unknown;
66
+ }
67
+ export interface InstanceFunctionCallExpressionNode<_TValue = unknown> {
68
+ readonly kind: "instance-function-call";
69
+ readonly base: ExpressionNode;
70
+ readonly name: string;
71
+ readonly args: readonly unknown[];
72
+ }
73
+ export interface InterpolatedStringExpressionNode<_TValue = unknown> {
74
+ readonly kind: "interpolated-string";
75
+ readonly segments: readonly unknown[];
76
+ }
77
+ export type ExpressionNode<T = unknown> = FunctionCallExpressionNode<T> | SymbolicValueExpressionNode<T> | IdentifierExpressionNode<T> | PropertyAccessExpressionNode<T> | ArrayAccessExpressionNode<T> | BinaryExpressionNode<T> | UnaryExpressionNode<T> | TernaryExpressionNode<T> | InstanceFunctionCallExpressionNode<T> | InterpolatedStringExpressionNode<T>;
78
+ /**
79
+ * The index stored on an {@link ArrayAccessExpressionNode}: a literal
80
+ * `number` or `string`, or a raw {@link ExpressionNode} evaluated at
81
+ * serialize time (e.g. a loop's `symbolic-value` index, or a `binary` /
82
+ * `fn-call` node for a computed offset). `Expression<T>` proxies are
83
+ * unwrapped to their raw node before being stored, so the proxy type is
84
+ * intentionally absent here.
85
+ */
86
+ export type ArrayAccessIndex = number | string | ExpressionNode;
87
+ /** Tests whether a value structurally matches a raw expression AST node. */
88
+ export declare function isExpressionNode(value: unknown): value is ExpressionNode;
89
+ export declare function functionCallExpressionNode<TValue = unknown, TOperator extends string = string>(operator: TOperator, args: readonly unknown[]): FunctionCallExpressionNode<TValue, TOperator>;
90
+ export declare function symbolicValueExpressionNode<TValue = unknown, TPath extends string = string>(path: TPath): SymbolicValueExpressionNode<TValue, TPath>;
91
+ export declare function identifierExpressionNode<TValue = unknown>(identifier: string | Resource): IdentifierExpressionNode<TValue>;
92
+ export declare function propertyAccessExpressionNode<TValue = unknown>(base: ExpressionNode, property: string, options?: Partial<Pick<PropertyAccessExpressionNode, "armPath" | "nullish">>): PropertyAccessExpressionNode<TValue>;
93
+ export declare function arrayAccessExpressionNode<TValue = unknown>(base: ExpressionNode, index: ArrayAccessIndex, options?: Partial<Pick<ArrayAccessExpressionNode, "nullish" | "fromEnd">>): ArrayAccessExpressionNode<TValue>;
94
+ export declare function binaryExpressionNode<TValue = unknown>(operator: BinaryOperator, left: unknown, right: unknown): BinaryExpressionNode<TValue>;
95
+ export declare function unaryExpressionNode<TValue = unknown>(operator: UnaryOperator, argument: unknown): UnaryExpressionNode<TValue>;
96
+ export declare function ternaryExpressionNode<TValue = unknown>(condition: unknown, trueValue: unknown, falseValue: unknown): TernaryExpressionNode<TValue>;
97
+ export declare function instanceFunctionCallExpressionNode<TValue = unknown>(base: ExpressionNode, name: string, args: readonly unknown[]): InstanceFunctionCallExpressionNode<TValue>;
98
+ export declare function interpolatedStringExpressionNode<TValue = unknown>(segments: readonly unknown[]): InterpolatedStringExpressionNode<TValue>;
99
+ export declare function accessExpressionNode(base: ExpressionNode, member: PropertySegment, options?: Partial<Pick<PropertyAccessExpressionNode, "armPath" | "nullish">>): PropertyAccessExpressionNode | ArrayAccessExpressionNode;
100
+ //# sourceMappingURL=ast-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-nodes.d.ts","sourceRoot":"","sources":["../../../src/expression/ast-nodes.ts"],"names":[],"mappings":"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"}