@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 @@
1
+ {"version":3,"file":"fn.js","sourceRoot":"","sources":["../../src/fn.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n type Expression,\n type ExpressionOrValue,\n createBinaryExpression,\n createFunctionCallExpression,\n createTernaryExpression,\n createUnaryExpression,\n isExpression,\n} from \"./expression/expressions.js\";\n\n// ---------------------------------------------------------------------------\n// Arithmetic operators\n// ---------------------------------------------------------------------------\n/** Adds two numbers as a deploy-time expression. */\nexport function add(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"+\", left, right);\n}\n\n/** Subtracts the right operand from the left at deployment time. */\nexport function sub(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"-\", left, right);\n}\n\n/** Multiplies two numbers at deployment time. */\nexport function mul(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"*\", left, right);\n}\n\n/** Divides the left operand by the right at deployment time. */\nexport function div(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"/\", left, right);\n}\n\n/** Returns the remainder of dividing the left operand by the right. */\nexport function mod(\n left: ExpressionOrValue<number>,\n right: ExpressionOrValue<number>,\n): Expression<number> {\n return createBinaryExpression<number>(\"%\", left, right);\n}\n\n/** Negates a number at deployment time. */\nexport function neg(value: ExpressionOrValue<number>): Expression<number> {\n return createUnaryExpression<number>(\"-\", value);\n}\n\n// ---------------------------------------------------------------------------\n// Comparison operators\n// ---------------------------------------------------------------------------\n\n/** Tests whether two values are equal at deployment time. */\nexport function eq(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\"==\", left, right);\n}\n\n/** Tests whether two values differ at deployment time. */\nexport function neq(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\"!=\", left, right);\n}\n\n/** Tests whether the left value is greater than the right value. */\nexport function gt(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\">\", left, right);\n}\n\n/** Tests whether the left value is less than the right value. */\nexport function lt(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\"<\", left, right);\n}\n\n/** Tests whether the left value is greater than or equal to the right value. */\nexport function gte(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\">=\", left, right);\n}\n\n/** Tests whether the left value is less than or equal to the right value. */\nexport function lte(\n left: ExpressionOrValue<unknown>,\n right: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createBinaryExpression<boolean>(\"<=\", left, right);\n}\n\n// ---------------------------------------------------------------------------\n// Boolean operators\n// ---------------------------------------------------------------------------\n\n/**\n * Logical AND. Accepts 1 … N operands and folds left:\n * `and(a, b, c)` → `(a && b) && c`\n *\n * A single operand is returned as an `Expression<boolean>` (identity).\n */\nexport function and(...conditions: ExpressionOrValue<boolean>[]): Expression<boolean> {\n if (conditions.length === 0) {\n throw new Error(\"and() requires at least one argument\");\n }\n if (conditions.length === 1) {\n const c = conditions[0];\n if (isExpression(c)) return c as Expression<boolean>;\n return createUnaryExpression<boolean>(\"!\", createUnaryExpression<boolean>(\"!\", c));\n }\n let result: ExpressionOrValue<boolean> = conditions[0]!;\n for (let i = 1; i < conditions.length; i++) {\n result = createBinaryExpression<boolean>(\"&&\", result, conditions[i]!);\n }\n return result as Expression<boolean>;\n}\n\n/**\n * Logical OR. Accepts 1 … N operands and folds left:\n * `or(a, b, c)` → `(a || b) || c`\n */\nexport function or(...conditions: ExpressionOrValue<boolean>[]): Expression<boolean> {\n if (conditions.length === 0) {\n throw new Error(\"or() requires at least one argument\");\n }\n if (conditions.length === 1) {\n const c = conditions[0];\n if (isExpression(c)) return c as Expression<boolean>;\n return createUnaryExpression<boolean>(\"!\", createUnaryExpression<boolean>(\"!\", c));\n }\n let result: ExpressionOrValue<boolean> = conditions[0]!;\n for (let i = 1; i < conditions.length; i++) {\n result = createBinaryExpression<boolean>(\"||\", result, conditions[i]!);\n }\n return result as Expression<boolean>;\n}\n\n/** Negates a Boolean value at deployment time. */\nexport function not(value: ExpressionOrValue<boolean>): Expression<boolean> {\n return createUnaryExpression<boolean>(\"!\", value);\n}\n\n// ---------------------------------------------------------------------------\n// Conditional operators\n// ---------------------------------------------------------------------------\n\n/** Selects one of two values based on a deploy-time condition. */\nexport function cond<T>(\n condition: ExpressionOrValue<boolean>,\n trueValue: ExpressionOrValue<T>,\n falseValue: ExpressionOrValue<T>,\n): Expression<T> {\n return createTernaryExpression<T>(condition, trueValue, falseValue);\n}\n\n/** Returns the left value unless it is null, otherwise the right value. */\nexport function coalesce<T>(\n left: ExpressionOrValue<T>,\n right: ExpressionOrValue<T>,\n): Expression<T> {\n return createBinaryExpression<T>(\"??\", left, right);\n}\n\n// ---------------------------------------------------------------------------\n// String functions\n// ---------------------------------------------------------------------------\n\n// Detects the `[TemplateStringsArray, ...values]` shape produced by a\n// tagged-template call. Used by `concat` to support both `concat(\"a\", \"b\")`\n// and `` concat`a${x}b` `` forms.\nfunction isTemplateLiteralArgs(\n args: readonly unknown[],\n): args is [TemplateStringsArray, ...unknown[]] {\n return Array.isArray(args[0]) && \"raw\" in (args[0] as any) && Array.isArray((args[0] as any).raw);\n}\n\n// Interleaves a tagged-template's static `strings` with its dynamic `values`,\n// dropping empty leading/trailing static segments so the resulting array is\n// suitable as `concat()` arguments.\nfunction interleaveTemplateLiteralArgs(\n strings: TemplateStringsArray,\n values: readonly ExpressionOrValue<string>[],\n): ExpressionOrValue<string>[] {\n const result: ExpressionOrValue<string>[] = [];\n for (let i = 0; i < strings.length; i++) {\n const s = strings[i]!;\n if (s !== \"\") {\n result.push(s);\n }\n if (i < values.length) {\n result.push(values[i]!);\n }\n }\n return result;\n}\n\n/** Concatenates strings and expressions in a tagged template. */\nexport function concat(\n strings: TemplateStringsArray,\n ...values: ExpressionOrValue<string>[]\n): Expression<string>;\n/** Concatenates string values and expressions at deployment time. */\nexport function concat(...values: ExpressionOrValue<string>[]): Expression<string>;\nexport function concat(\n ...args: [TemplateStringsArray, ...ExpressionOrValue<string>[]] | ExpressionOrValue<string>[]\n): Expression<string> {\n if (isTemplateLiteralArgs(args)) {\n const [strings, ...values] = args;\n return createFunctionCallExpression<string>(\n \"concat\",\n interleaveTemplateLiteralArgs(strings, values),\n );\n }\n return createFunctionCallExpression<string>(\"concat\", args as ExpressionOrValue<string>[]);\n}\n\n/** Returns the first `count` characters of a string. */\nexport function take(\n value: ExpressionOrValue<string>,\n count: ExpressionOrValue<number>,\n): Expression<string> {\n return createFunctionCallExpression<string>(\"take\", [value, count]);\n}\n\n/** Converts a string to lowercase at deployment time. */\nexport function toLower(value: ExpressionOrValue<string>): Expression<string> {\n return createFunctionCallExpression<string>(\"toLower\", [value]);\n}\n\n/** Converts a string to uppercase at deployment time. */\nexport function toUpper(value: ExpressionOrValue<string>): Expression<string> {\n return createFunctionCallExpression<string>(\"toUpper\", [value]);\n}\n\n/** Returns part of a string, optionally starting at `start` for `count` characters. */\nexport function substring(\n value: ExpressionOrValue<string>,\n start?: ExpressionOrValue<number>,\n count?: ExpressionOrValue<number>,\n): Expression<string> {\n const args: ExpressionOrValue<string | number>[] = [value];\n if (start !== undefined) args.push(start);\n if (count !== undefined) args.push(count);\n return createFunctionCallExpression<string>(\"substring\", args);\n}\n\n/** Replaces occurrences of `oldValue` with `newValue` in a string. */\nexport function replace(\n value: ExpressionOrValue<string>,\n oldValue: ExpressionOrValue<string>,\n newValue: ExpressionOrValue<string>,\n): Expression<string> {\n return createFunctionCallExpression<string>(\"replace\", [value, oldValue, newValue]);\n}\n\n/** Splits a string into an array at each occurrence of `delimiter`. */\nexport function split(\n value: ExpressionOrValue<string>,\n delimiter: ExpressionOrValue<string>,\n): Expression<string[]> {\n return createFunctionCallExpression<string[]>(\"split\", [value, delimiter]);\n}\n\n/** Joins array elements into a string separated by `delimiter`. */\nexport function join(\n values: ExpressionOrValue<unknown[]>,\n delimiter: ExpressionOrValue<string>,\n): Expression<string> {\n return createFunctionCallExpression<string>(\"join\", [values, delimiter]);\n}\n\n/** Removes leading and trailing whitespace from a string. */\nexport function trim(value: ExpressionOrValue<string>): Expression<string> {\n return createFunctionCallExpression<string>(\"trim\", [value]);\n}\n\n/** Tests whether a string begins with `prefix`. */\nexport function startsWith(\n value: ExpressionOrValue<string>,\n prefix: ExpressionOrValue<string>,\n): Expression<boolean> {\n return createFunctionCallExpression<boolean>(\"startsWith\", [value, prefix]);\n}\n\n/** Tests whether a string ends with `suffix`. */\nexport function endsWith(\n value: ExpressionOrValue<string>,\n suffix: ExpressionOrValue<string>,\n): Expression<boolean> {\n return createFunctionCallExpression<boolean>(\"endsWith\", [value, suffix]);\n}\n\n/** Encodes a string as Base64 at deployment time. */\nexport function base64(value: ExpressionOrValue<string>): Expression<string> {\n return createFunctionCallExpression<string>(\"base64\", [value]);\n}\n\n/** Decodes Base64-encoded JSON into a value at deployment time. */\nexport function base64ToJson(value: ExpressionOrValue<string>): Expression<unknown> {\n return createFunctionCallExpression<unknown>(\"base64ToJson\", [value]);\n}\n\n/** Formats a string using indexed placeholders and the supplied values. */\nexport function format(\n formatString: ExpressionOrValue<string>,\n ...values: ExpressionOrValue<unknown>[]\n): Expression<string> {\n return createFunctionCallExpression<string>(\"format\", [formatString, ...values]);\n}\n\n/** Returns the last index of `searchString` within a string. */\nexport function lastIndexOf(\n value: ExpressionOrValue<string>,\n searchString: ExpressionOrValue<string>,\n): Expression<number> {\n return createFunctionCallExpression<number>(\"lastIndexOf\", [value, searchString]);\n}\n\n// ---------------------------------------------------------------------------\n// Unique / ID functions\n// ---------------------------------------------------------------------------\n\n/** Creates a deterministic string from the supplied values. */\nexport function uniqueString(...values: ExpressionOrValue<string>[]): Expression<string> {\n return createFunctionCallExpression<string>(\"uniqueString\", values);\n}\n\n/** Creates a deterministic GUID from the supplied values. */\nexport function guid(...values: ExpressionOrValue<string>[]): Expression<string> {\n return createFunctionCallExpression<string>(\"guid\", values);\n}\n\n/** Constructs a resource ID at the current deployment scope. */\nexport function resourceId(\n type: ExpressionOrValue<string>,\n ...names: ExpressionOrValue<string>[]\n): Expression<string> {\n return createFunctionCallExpression<string>(\"resourceId\", [type, ...names]);\n}\n\n/** Constructs an ID for a subscription-scoped resource. */\nexport function subscriptionResourceId(\n type: ExpressionOrValue<string>,\n ...names: ExpressionOrValue<string>[]\n): Expression<string> {\n return createFunctionCallExpression<string>(\"subscriptionResourceId\", [type, ...names]);\n}\n\n/** Constructs an extension resource ID relative to `baseId`. */\nexport function extensionResourceId(\n baseId: ExpressionOrValue<string>,\n type: ExpressionOrValue<string>,\n ...names: ExpressionOrValue<string>[]\n): Expression<string> {\n return createFunctionCallExpression<string>(\"extensionResourceId\", [baseId, type, ...names]);\n}\n\n// ---------------------------------------------------------------------------\n// Numeric functions\n// ---------------------------------------------------------------------------\n\n/** Converts a value to an integer at deployment time. */\nexport function int(value: ExpressionOrValue<unknown>): Expression<number> {\n return createFunctionCallExpression<number>(\"int\", [value]);\n}\n\n/** Returns the smallest of the supplied numbers. */\nexport function min(...values: ExpressionOrValue<number>[]): Expression<number> {\n return createFunctionCallExpression<number>(\"min\", values);\n}\n\n/** Returns the largest of the supplied numbers. */\nexport function max(...values: ExpressionOrValue<number>[]): Expression<number> {\n return createFunctionCallExpression<number>(\"max\", values);\n}\n\n// ---------------------------------------------------------------------------\n// Array / collection functions\n// ---------------------------------------------------------------------------\n\n/** Returns the length of a string, array, or object at deployment time. */\nexport function length(value: ExpressionOrValue<unknown>): Expression<number> {\n return createFunctionCallExpression<number>(\"length\", [value]);\n}\n\n/** Tests whether a string, array, or object is empty. */\nexport function empty(value: ExpressionOrValue<unknown>): Expression<boolean> {\n return createFunctionCallExpression<boolean>(\"empty\", [value]);\n}\n\n/** Returns the first element of an array. */\nexport function first<T>(arr: ExpressionOrValue<T[]>): Expression<T> {\n return createFunctionCallExpression<T>(\"first\", [arr]);\n}\n\n/** Returns the last element of an array. */\nexport function last<T>(arr: ExpressionOrValue<T[]>): Expression<T> {\n return createFunctionCallExpression<T>(\"last\", [arr]);\n}\n\n/** Tests whether a string, array, or object contains a value or key. */\nexport function contains(\n container: ExpressionOrValue<unknown>,\n value: ExpressionOrValue<unknown>,\n): Expression<boolean> {\n return createFunctionCallExpression<boolean>(\"contains\", [container, value]);\n}\n\n/** Returns the first index of `value` in an array, or -1 if absent. */\nexport function indexOf<T>(\n arr: ExpressionOrValue<T[]>,\n value: ExpressionOrValue<T>,\n): Expression<number> {\n return createFunctionCallExpression<number>(\"indexOf\", [arr, value]);\n}\n\n/** Flattens one level of nested arrays. */\nexport function flatten<T>(arr: ExpressionOrValue<T[][]>): Expression<T[]> {\n return createFunctionCallExpression<T[]>(\"flatten\", [arr]);\n}\n\n/** Returns the intersection of two arrays or objects. */\nexport function intersect<T, U>(\n a: ExpressionOrValue<T>,\n b: ExpressionOrValue<U>,\n): Expression<T & U> {\n return createFunctionCallExpression<T & U>(\"intersection\", [a, b]);\n}\n\n/** Returns the union of two arrays, with elements from either input. */\nexport function union<TElement, UElement>(\n a: ExpressionOrValue<readonly TElement[]>,\n b: ExpressionOrValue<readonly UElement[]>,\n): Expression<(TElement | UElement)[]>;\n/** Returns the union of two objects, with properties from both inputs. */\nexport function union<T extends object, U extends object>(\n a: T extends readonly unknown[] ? never : ExpressionOrValue<T>,\n b: U extends readonly unknown[] ? never : ExpressionOrValue<U>,\n): Expression<T & U>;\nexport function union(\n a: ExpressionOrValue<object>,\n b: ExpressionOrValue<object>,\n): Expression<object> {\n return createFunctionCallExpression<object>(\"union\", [a, b]);\n}\n\n/** Skips the first `count` elements of an array. */\nexport function skip<T>(\n arr: ExpressionOrValue<T[]>,\n count: ExpressionOrValue<number>,\n): Expression<T[]> {\n return createFunctionCallExpression<T[]>(\"skip\", [arr, count]);\n}\n\n/** Returns an array's elements in reverse order. */\nexport function reverse<T>(arr: ExpressionOrValue<T[]>): Expression<T[]> {\n return createFunctionCallExpression<T[]>(\"reverse\", [arr]);\n}\n\n// ---------------------------------------------------------------------------\n// Object functions\n// ---------------------------------------------------------------------------\n\n/** Parses JSON text into a deploy-time value. */\nexport function json(value: ExpressionOrValue<string>): Expression<unknown> {\n return createFunctionCallExpression<unknown>(\"json\", [value]);\n}\n\n/** Returns the property names of an object. */\nexport function objectKeys(obj: ExpressionOrValue<object>): Expression<string[]> {\n return createFunctionCallExpression<string[]>(\"objectKeys\", [obj]);\n}\n\n/** Returns an object's key/value pairs as an array. */\nexport function items(obj: ExpressionOrValue<object>): Expression<unknown[]> {\n return createFunctionCallExpression<unknown[]>(\"items\", [obj]);\n}\n\n// ---------------------------------------------------------------------------\n// Scope functions\n// ---------------------------------------------------------------------------\n\n/**\n * Typed shape of Bicep's `subscription()` runtime function. Only the\n * properties currently surfaced are listed; extend as needed.\n */\nexport interface SubscriptionScope {\n readonly subscriptionId: string;\n readonly tenantId: string;\n}\n\n/**\n * Typed shape of Bicep's `resourceGroup()` runtime function. Only the\n * properties currently surfaced are listed; extend as needed.\n */\nexport interface ResourceGroupScope {\n readonly name: string;\n readonly location: string;\n readonly id: string;\n}\n\n/**\n * Typed shape of Bicep's `tenant()` runtime function. Only the properties\n * currently surfaced are listed; extend as needed.\n */\nexport interface TenantScope {\n readonly tenantId: string;\n readonly id: string;\n}\n\n/**\n * Typed shape of Bicep's `managementGroup()` runtime function. Only the\n * properties currently surfaced are listed; extend as needed.\n */\nexport interface ManagementGroupScope {\n readonly name: string;\n readonly id: string;\n}\n\n/**\n * Bicep `subscription()` / `subscription(subscriptionId)`.\n *\n * - Zero-arg form returns details about the current subscription.\n * - One-arg form returns a scope object for setting `scope:` on a module\n * or extension resource.\n */\nexport function subscription(): Expression<SubscriptionScope>;\nexport function subscription(\n subscriptionId: ExpressionOrValue<string>,\n): Expression<SubscriptionScope>;\nexport function subscription(\n subscriptionId?: ExpressionOrValue<string>,\n): Expression<SubscriptionScope> {\n return createFunctionCallExpression<SubscriptionScope>(\n \"subscription\",\n subscriptionId === undefined ? [] : [subscriptionId],\n );\n}\n\n/**\n * Bicep `resourceGroup()` / `resourceGroup(name)` /\n * `resourceGroup(subscriptionId, name)`.\n *\n * - Zero-arg form returns details about the current resource group.\n * - One- and two-arg forms return a scope object for setting `scope:` on a\n * module or extension resource.\n */\nexport function resourceGroup(): Expression<ResourceGroupScope>;\nexport function resourceGroup(name: ExpressionOrValue<string>): Expression<ResourceGroupScope>;\nexport function resourceGroup(\n subscriptionId: ExpressionOrValue<string>,\n name: ExpressionOrValue<string>,\n): Expression<ResourceGroupScope>;\nexport function resourceGroup(\n ...args: ExpressionOrValue<string>[]\n): Expression<ResourceGroupScope> {\n return createFunctionCallExpression<ResourceGroupScope>(\"resourceGroup\", args);\n}\n\n/**\n * Bicep `tenant()`. Returns details about the current tenant (or a scope\n * object when placed in `scope:`). Takes no arguments.\n */\nexport function tenant(): Expression<TenantScope> {\n return createFunctionCallExpression<TenantScope>(\"tenant\", []);\n}\n\n/**\n * Bicep `managementGroup()` / `managementGroup(identifier)`.\n *\n * - Zero-arg form is only valid in management-group-scope deployments and\n * returns details about the current management group.\n * - One-arg form returns a scope object for setting `scope:` on a module\n * or extension resource.\n */\nexport function managementGroup(): Expression<ManagementGroupScope>;\nexport function managementGroup(\n identifier: ExpressionOrValue<string>,\n): Expression<ManagementGroupScope>;\nexport function managementGroup(\n identifier?: ExpressionOrValue<string>,\n): Expression<ManagementGroupScope> {\n return createFunctionCallExpression<ManagementGroupScope>(\n \"managementGroup\",\n identifier === undefined ? [] : [identifier],\n );\n}\n\n/** Bicep `deployment()`. Returns information about the current deployment. */\nexport function deployment(): Expression<unknown> {\n return createFunctionCallExpression<unknown>(\"deployment\", []);\n}\n\n/** Bicep `environment()`. Returns information about the Azure environment. */\nexport function environment(): Expression<unknown> {\n return createFunctionCallExpression<unknown>(\"environment\", []);\n}\n"]}
@@ -0,0 +1,25 @@
1
+ export type { PrimitiveTypeMap, PrimitiveTypeName, TargetScope, } from "./serialization/contract/index.js";
2
+ export { createOutput, OutputCollection, type OutputMetadata, type OutputOptions, type ScalarOutputType, type OutputType, type OutputValue, type OutputValueFor, } from "./constructs/output.js";
3
+ export { createParameter, ParameterCollection, type InferParamType, type Parameter, type ParameterMetadata, type ParameterOptions, type ParameterValue, } from "./constructs/parameter.js";
4
+ export { createVariable, type ExpressionValue, VariableCollection, type Variable, type VariableMetadata, type VariableOptions, type VariableValue, } from "./constructs/variable.js";
5
+ export { Stack, type StackOptions } from "./constructs/stack.js";
6
+ export { ProvisioningComponent, type ProvisioningComponentConstructor, } from "./constructs/provisioning-component.js";
7
+ export type { DeploymentContext } from "./deployment-context/deployment-context.js";
8
+ export { asDiscriminator, isExpression, type Expression, type ExpressionBrand, type ExpressionOrValue, type ExpressionShape, type ExpressionTag, type InputOf, type InputRecord, } from "./expression/expressions.js";
9
+ export type { ArrayAccessExpressionNode, ArrayAccessIndex, BinaryExpressionNode, BinaryOperator, ExpressionNode, FunctionCallExpressionNode, IdentifierExpressionNode, InstanceFunctionCallExpressionNode, InterpolatedStringExpressionNode, PropertyAccessExpressionNode, SymbolicValueExpressionNode, TernaryExpressionNode, UnaryExpressionNode, UnaryOperator, } from "./expression/ast-nodes.js";
10
+ export * as fn from "./fn.js";
11
+ export { DefaultNamingPolicy, namingRequiredPolicy, type NamingContext, type NamingPolicy, type NamingPolicyOptions, } from "./naming/naming-policy.js";
12
+ export type { ResourceNamingRules, ResourceNamingValidCharacters } from "./naming/naming-rules.js";
13
+ export { type QueryOptions } from "./constructs/resource/resource-query.js";
14
+ export { isResource, isResourceDeclaration, isResourceOf, } from "./constructs/resource/resource-utils.js";
15
+ export { ResourceDeclaration } from "./constructs/resource/resource.js";
16
+ export { deref, type Deref } from "./constructs/resource/resource-proxy.js";
17
+ export { type ScopeExpression, type ExistingResourceProps, type ResourceProps, type ResourceState, type ResourceOptions, } from "./constructs/resource/resource.js";
18
+ export { Resource } from "./constructs/resource/resource.js";
19
+ export type { ResourceCtor } from "./constructs/resource/resource-registry.js";
20
+ export type { FlatVariantPin, FlatVariantSelector, } from "./constructs/resource/resource-type-registry.js";
21
+ export type { AnyShape, ArrayShape, BooleanLiteralShape, BooleanShape, BytesShape, ContainerShape, DateShape, DeferredShape, DiscriminatedModelShape, DiscriminatorNames, EnumShape, FlatModelShape, ModelShape, NullShape, NumberLiteralShape, NumberShape, PropertyShape, RecordShape, StringLiteralShape, StringShape, TerminalValueShape, TupleShape, UnionShape, ValueShape, } from "./shape/shape.js";
22
+ export { INTEGER_SCALAR_NAMES, NUMERIC_SCALAR_NAMES, type BooleanStringEncodingDescriptor, type BooleanValueEncodingDescriptor, type BytesEncodingDescriptor, type BytesValueEncodingDescriptor, type DateTimeTextEncodingDescriptor, type DateValueEncodingDescriptor, type DurationIso8601EncodingDescriptor, type DurationNumericEncodingDescriptor, type IntegerScalarName, type NumberValueEncodingDescriptor, type NumericScalarName, type NumericStringEncodingDescriptor, type PlainDateEncodingDescriptor, type StringValueEncodingDescriptor, type UnixTimestampEncodingDescriptor, type ValueEncodingDescriptor, } from "./shape/value-encoding.js";
23
+ export type { PropertySegment } from "./types.js";
24
+ export { ResourceGroup, type ResourceGroupProps, } from "./constructs/built-in-resources/resource-group.js";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ export { createOutput, OutputCollection, } from "./constructs/output.js";
4
+ export { createParameter, ParameterCollection, } from "./constructs/parameter.js";
5
+ export { createVariable, VariableCollection, } from "./constructs/variable.js";
6
+ export { Stack } from "./constructs/stack.js";
7
+ export { ProvisioningComponent, } from "./constructs/provisioning-component.js";
8
+ export { asDiscriminator, isExpression, } from "./expression/expressions.js";
9
+ export * as fn from "./fn.js";
10
+ export { DefaultNamingPolicy, namingRequiredPolicy, } from "./naming/naming-policy.js";
11
+ export { isResource, isResourceDeclaration, isResourceOf, } from "./constructs/resource/resource-utils.js";
12
+ export { ResourceDeclaration } from "./constructs/resource/resource.js";
13
+ export { deref } from "./constructs/resource/resource-proxy.js";
14
+ export { Resource } from "./constructs/resource/resource.js";
15
+ export { INTEGER_SCALAR_NAMES, NUMERIC_SCALAR_NAMES, } from "./shape/value-encoding.js";
16
+ export { ResourceGroup, } from "./constructs/built-in-resources/resource-group.js";
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAOlC,OAAO,EACL,YAAY,EACZ,gBAAgB,GAOjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,eAAe,EACf,mBAAmB,GAMpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EAEd,kBAAkB,GAKnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,qBAAqB,GAEtB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,eAAe,EACf,YAAY,GAQb,MAAM,6BAA6B,CAAC;AAiBrC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,GAIrB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,YAAY,GACb,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,KAAK,EAAc,MAAM,yCAAyC,CAAC;AAQ5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAgC7D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GAiBrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,aAAa,GAEd,MAAM,mDAAmD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport type {\n PrimitiveTypeMap,\n PrimitiveTypeName,\n TargetScope,\n} from \"./serialization/contract/index.js\";\nexport {\n createOutput,\n OutputCollection,\n type OutputMetadata,\n type OutputOptions,\n type ScalarOutputType,\n type OutputType,\n type OutputValue,\n type OutputValueFor,\n} from \"./constructs/output.js\";\nexport {\n createParameter,\n ParameterCollection,\n type InferParamType,\n type Parameter,\n type ParameterMetadata,\n type ParameterOptions,\n type ParameterValue,\n} from \"./constructs/parameter.js\";\nexport {\n createVariable,\n type ExpressionValue,\n VariableCollection,\n type Variable,\n type VariableMetadata,\n type VariableOptions,\n type VariableValue,\n} from \"./constructs/variable.js\";\nexport { Stack, type StackOptions } from \"./constructs/stack.js\";\nexport {\n ProvisioningComponent,\n type ProvisioningComponentConstructor,\n} from \"./constructs/provisioning-component.js\";\nexport type { DeploymentContext } from \"./deployment-context/deployment-context.js\";\nexport {\n asDiscriminator,\n isExpression,\n type Expression,\n type ExpressionBrand,\n type ExpressionOrValue,\n type ExpressionShape,\n type ExpressionTag,\n type InputOf,\n type InputRecord,\n} from \"./expression/expressions.js\";\nexport type {\n ArrayAccessExpressionNode,\n ArrayAccessIndex,\n BinaryExpressionNode,\n BinaryOperator,\n ExpressionNode,\n FunctionCallExpressionNode,\n IdentifierExpressionNode,\n InstanceFunctionCallExpressionNode,\n InterpolatedStringExpressionNode,\n PropertyAccessExpressionNode,\n SymbolicValueExpressionNode,\n TernaryExpressionNode,\n UnaryExpressionNode,\n UnaryOperator,\n} from \"./expression/ast-nodes.js\";\nexport * as fn from \"./fn.js\";\nexport {\n DefaultNamingPolicy,\n namingRequiredPolicy,\n type NamingContext,\n type NamingPolicy,\n type NamingPolicyOptions,\n} from \"./naming/naming-policy.js\";\nexport type { ResourceNamingRules, ResourceNamingValidCharacters } from \"./naming/naming-rules.js\";\nexport { type QueryOptions } from \"./constructs/resource/resource-query.js\";\nexport {\n isResource,\n isResourceDeclaration,\n isResourceOf,\n} from \"./constructs/resource/resource-utils.js\";\nexport { ResourceDeclaration } from \"./constructs/resource/resource.js\";\nexport { deref, type Deref } from \"./constructs/resource/resource-proxy.js\";\nexport {\n type ScopeExpression,\n type ExistingResourceProps,\n type ResourceProps,\n type ResourceState,\n type ResourceOptions,\n} from \"./constructs/resource/resource.js\";\nexport { Resource } from \"./constructs/resource/resource.js\";\nexport type { ResourceCtor } from \"./constructs/resource/resource-registry.js\";\nexport type {\n FlatVariantPin,\n FlatVariantSelector,\n} from \"./constructs/resource/resource-type-registry.js\";\nexport type {\n AnyShape,\n ArrayShape,\n BooleanLiteralShape,\n BooleanShape,\n BytesShape,\n ContainerShape,\n DateShape,\n DeferredShape,\n DiscriminatedModelShape,\n DiscriminatorNames,\n EnumShape,\n FlatModelShape,\n ModelShape,\n NullShape,\n NumberLiteralShape,\n NumberShape,\n PropertyShape,\n RecordShape,\n StringLiteralShape,\n StringShape,\n TerminalValueShape,\n TupleShape,\n UnionShape,\n ValueShape,\n} from \"./shape/shape.js\";\nexport {\n INTEGER_SCALAR_NAMES,\n NUMERIC_SCALAR_NAMES,\n type BooleanStringEncodingDescriptor,\n type BooleanValueEncodingDescriptor,\n type BytesEncodingDescriptor,\n type BytesValueEncodingDescriptor,\n type DateTimeTextEncodingDescriptor,\n type DateValueEncodingDescriptor,\n type DurationIso8601EncodingDescriptor,\n type DurationNumericEncodingDescriptor,\n type IntegerScalarName,\n type NumberValueEncodingDescriptor,\n type NumericScalarName,\n type NumericStringEncodingDescriptor,\n type PlainDateEncodingDescriptor,\n type StringValueEncodingDescriptor,\n type UnixTimestampEncodingDescriptor,\n type ValueEncodingDescriptor,\n} from \"./shape/value-encoding.js\";\nexport type { PropertySegment } from \"./types.js\";\nexport {\n ResourceGroup,\n type ResourceGroupProps,\n} from \"./constructs/built-in-resources/resource-group.js\";\n"]}
@@ -0,0 +1,13 @@
1
+ export { unwrapExpression, wrapExpression, type InputArray, type InputOf, type InputRecord, type InputTuple, } from "./expression/expressions.js";
2
+ export { serializeExpression, type SerializableValue } from "./serialization/json/expression.js";
3
+ export { sanitizeIdentifier } from "./serialization/json/util.js";
4
+ export { collectDependenciesForDeclaration } from "./serialization/utils.js";
5
+ export type { BinaryOperator, DeclarableBodyNode, DecoratorsNode, ExpressionNode, IdentifierExpression, InfraNode, ModuleDeclarationNode, ObjectValue, OutputDeclarationNode, ParameterDeclarationNode, PrimitiveTypeMap, ResourceDeclarationNode, TargetScope, TypeNode, UnaryOperator, VariableDeclarationNode, } from "./serialization/contract/index.js";
6
+ export { unwrapResourceHandle } from "./constructs/resource/resource-proxy.js";
7
+ export type { ResourceProps, SingletonExistingResourceProps, } from "./constructs/resource/resource.js";
8
+ export type { AnyShape, ArrayShape, BooleanLiteralShape, BooleanShape, BytesShape, ContainerShape, DateShape, DeferredShape, DiscriminatedModelShape, DiscriminatorNames, EnumShape, FlatModelShape, ModelShape, NullShape, NumberLiteralShape, NumberShape, PropertyShape, RecordShape, StringLiteralShape, StringShape, TerminalValueShape, TupleShape, UnionShape, ValueShape, } from "./shape/shape.js";
9
+ export { createAnyShape, createArrayShape, createBooleanLiteralShape, createBooleanShape, createBytesShape, createDateShape, createDeferredShape, createDiscriminatedModelShape, createEnumShape, createFlatModelShape, createNullShape, createNumberLiteralShape, createNumberShape, createRecordShape, createStringLiteralShape, createStringShape, createTupleShape, createUnionShape, } from "./shape/shape.js";
10
+ export type { FlatVariantSelection, FlatVariantSelector, } from "./constructs/resource/resource-type-registry.js";
11
+ export { INTEGER_SCALAR_NAMES, isIntegerScalarName, isNumericScalarName, NUMERIC_SCALAR_NAMES, type BooleanStringEncodingDescriptor, type BooleanValueEncodingDescriptor, type BytesEncodingDescriptor, type BytesValueEncodingDescriptor, type DateTimeTextEncodingDescriptor, type DateValueEncodingDescriptor, type DurationIso8601EncodingDescriptor, type DurationNumericEncodingDescriptor, type IntegerScalarName, type NumberValueEncodingDescriptor, type NumericScalarName, type NumericStringEncodingDescriptor, type PlainDateEncodingDescriptor, type StringValueEncodingDescriptor, type UnixTimestampEncodingDescriptor, type ValueEncodingDescriptor, } from "./shape/value-encoding.js";
12
+ export type { ResourceNamingRules, ResourceNamingValidCharacters } from "./naming/naming-rules.js";
13
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,qBAAqB,EACrB,WAAW,EACX,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACR,aAAa,EACb,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,8BAA8B,GAC/B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EAChC,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,iBAAiB,EACtB,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,10 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ export { unwrapExpression, wrapExpression, } from "./expression/expressions.js";
4
+ export { serializeExpression } from "./serialization/json/expression.js";
5
+ export { sanitizeIdentifier } from "./serialization/json/util.js";
6
+ export { collectDependenciesForDeclaration } from "./serialization/utils.js";
7
+ export { unwrapResourceHandle } from "./constructs/resource/resource-proxy.js";
8
+ export { createAnyShape, createArrayShape, createBooleanLiteralShape, createBooleanShape, createBytesShape, createDateShape, createDeferredShape, createDiscriminatedModelShape, createEnumShape, createFlatModelShape, createNullShape, createNumberLiteralShape, createNumberShape, createRecordShape, createStringLiteralShape, createStringShape, createTupleShape, createUnionShape, } from "./shape/shape.js";
9
+ export { INTEGER_SCALAR_NAMES, isIntegerScalarName, isNumericScalarName, NUMERIC_SCALAR_NAMES, } from "./shape/value-encoding.js";
10
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EACL,gBAAgB,EAChB,cAAc,GAKf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAA0B,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAmB7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AA+B/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GAiBrB,MAAM,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport {\n unwrapExpression,\n wrapExpression,\n type InputArray,\n type InputOf,\n type InputRecord,\n type InputTuple,\n} from \"./expression/expressions.js\";\nexport { serializeExpression, type SerializableValue } from \"./serialization/json/expression.js\";\nexport { sanitizeIdentifier } from \"./serialization/json/util.js\";\nexport { collectDependenciesForDeclaration } from \"./serialization/utils.js\";\nexport type {\n BinaryOperator,\n DeclarableBodyNode,\n DecoratorsNode,\n ExpressionNode,\n IdentifierExpression,\n InfraNode,\n ModuleDeclarationNode,\n ObjectValue,\n OutputDeclarationNode,\n ParameterDeclarationNode,\n PrimitiveTypeMap,\n ResourceDeclarationNode,\n TargetScope,\n TypeNode,\n UnaryOperator,\n VariableDeclarationNode,\n} from \"./serialization/contract/index.js\";\nexport { unwrapResourceHandle } from \"./constructs/resource/resource-proxy.js\";\nexport type {\n ResourceProps,\n SingletonExistingResourceProps,\n} from \"./constructs/resource/resource.js\";\nexport type {\n AnyShape,\n ArrayShape,\n BooleanLiteralShape,\n BooleanShape,\n BytesShape,\n ContainerShape,\n DateShape,\n DeferredShape,\n DiscriminatedModelShape,\n DiscriminatorNames,\n EnumShape,\n FlatModelShape,\n ModelShape,\n NullShape,\n NumberLiteralShape,\n NumberShape,\n PropertyShape,\n RecordShape,\n StringLiteralShape,\n StringShape,\n TerminalValueShape,\n TupleShape,\n UnionShape,\n ValueShape,\n} from \"./shape/shape.js\";\nexport {\n createAnyShape,\n createArrayShape,\n createBooleanLiteralShape,\n createBooleanShape,\n createBytesShape,\n createDateShape,\n createDeferredShape,\n createDiscriminatedModelShape,\n createEnumShape,\n createFlatModelShape,\n createNullShape,\n createNumberLiteralShape,\n createNumberShape,\n createRecordShape,\n createStringLiteralShape,\n createStringShape,\n createTupleShape,\n createUnionShape,\n} from \"./shape/shape.js\";\nexport type {\n FlatVariantSelection,\n FlatVariantSelector,\n} from \"./constructs/resource/resource-type-registry.js\";\nexport {\n INTEGER_SCALAR_NAMES,\n isIntegerScalarName,\n isNumericScalarName,\n NUMERIC_SCALAR_NAMES,\n type BooleanStringEncodingDescriptor,\n type BooleanValueEncodingDescriptor,\n type BytesEncodingDescriptor,\n type BytesValueEncodingDescriptor,\n type DateTimeTextEncodingDescriptor,\n type DateValueEncodingDescriptor,\n type DurationIso8601EncodingDescriptor,\n type DurationNumericEncodingDescriptor,\n type IntegerScalarName,\n type NumberValueEncodingDescriptor,\n type NumericScalarName,\n type NumericStringEncodingDescriptor,\n type PlainDateEncodingDescriptor,\n type StringValueEncodingDescriptor,\n type UnixTimestampEncodingDescriptor,\n type ValueEncodingDescriptor,\n} from \"./shape/value-encoding.js\";\nexport type { ResourceNamingRules, ResourceNamingValidCharacters } from \"./naming/naming-rules.js\";\n"]}
@@ -0,0 +1,56 @@
1
+ import type { ExpressionOrValue } from "../expression/expressions.js";
2
+ import { type ResourceNamingRules } from "./naming-rules.js";
3
+ export interface NamingContext {
4
+ readonly type: string;
5
+ readonly rules: ResourceNamingRules;
6
+ readonly label?: string | undefined;
7
+ }
8
+ /**
9
+ * Strategy for generating Azure resource names when a resource is created
10
+ * without an explicit `name`.
11
+ *
12
+ * Implement this interface to provide a custom naming convention. Two
13
+ * built-in implementations are provided:
14
+ *
15
+ * - {@link DefaultNamingPolicy} — workload-based names with abbreviations,
16
+ * ordinals, and `uniqueString()` for globally-scoped resources.
17
+ * - {@link namingRequiredPolicy} — a singleton that throws if a resource
18
+ * doesn't provide an explicit `name`.
19
+ */
20
+ export interface NamingPolicy {
21
+ generateName(context: NamingContext): ExpressionOrValue<string>;
22
+ }
23
+ export interface NamingPolicyOptions {
24
+ readonly workload: string;
25
+ readonly environment?: string | undefined;
26
+ readonly region?: string | undefined;
27
+ }
28
+ /**
29
+ * Default workload-based naming policy.
30
+ *
31
+ * Generates names by composing the resource type abbreviation, workload,
32
+ * environment, region, label, and an ordinal suffix for repeated types.
33
+ * Global-scope resources get a `uniqueString(subscription().subscriptionId)`
34
+ * suffix to ensure uniqueness.
35
+ */
36
+ export declare class DefaultNamingPolicy implements NamingPolicy {
37
+ #private;
38
+ constructor(options: NamingPolicyOptions);
39
+ generateName(context: NamingContext): ExpressionOrValue<string>;
40
+ }
41
+ /**
42
+ * Naming policy that requires every resource to provide an explicit `name`.
43
+ *
44
+ * Throws an error when asked to generate a name. Use this on a stack to
45
+ * disable auto-naming entirely.
46
+ */
47
+ export declare const namingRequiredPolicy: NamingPolicy;
48
+ /**
49
+ * Resolves the Azure resource name for a resource instance.
50
+ *
51
+ * - If `name` is explicitly provided (string or expression), it is used
52
+ * as-is — the naming policy does not transform it.
53
+ * - Otherwise, the active naming policy generates a name.
54
+ */
55
+ export declare function resolveResourceName(policy: NamingPolicy, name: ExpressionOrValue<string> | undefined, type: string, namingRules: ResourceNamingRules | undefined): ExpressionOrValue<string>;
56
+ //# sourceMappingURL=naming-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-policy.d.ts","sourceRoot":"","sources":["../../../src/naming/naming-policy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAoB,YAAW,YAAY;;gBAI1C,OAAO,EAAE,mBAAmB;IAIxC,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC;CAoDhE;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,YAOlC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS,EAC3C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,mBAAmB,GAAG,SAAS,GAC3C,iBAAiB,CAAC,MAAM,CAAC,CAQ3B"}
@@ -0,0 +1,97 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { concat, subscription, toLower, uniqueString } from "../fn.js";
4
+ import { MOST_RESTRICTIVE } from "./naming-rules.js";
5
+ /**
6
+ * Default workload-based naming policy.
7
+ *
8
+ * Generates names by composing the resource type abbreviation, workload,
9
+ * environment, region, label, and an ordinal suffix for repeated types.
10
+ * Global-scope resources get a `uniqueString(subscription().subscriptionId)`
11
+ * suffix to ensure uniqueness.
12
+ */
13
+ export class DefaultNamingPolicy {
14
+ #options;
15
+ #ordinals = new Map();
16
+ constructor(options) {
17
+ this.#options = options;
18
+ }
19
+ generateName(context) {
20
+ const ordinal = this.#ordinals.get(context.type) ?? 0;
21
+ this.#ordinals.set(context.type, ordinal + 1);
22
+ const rules = context.rules;
23
+ const sep = rules.validCharacters.hyphens ? "-" : "";
24
+ const sanitize = (segment) => {
25
+ let value = segment;
26
+ if (!rules.validCharacters.hyphens)
27
+ value = value.replace(/-/gu, "");
28
+ if (!rules.validCharacters.underscores)
29
+ value = value.replace(/_/gu, "");
30
+ if (!rules.validCharacters.periods)
31
+ value = value.replace(/\./gu, "");
32
+ value = value.replace(/[^A-Za-z0-9._-]/gu, "");
33
+ return rules.validCharacters.uppercase ? value : value.toLowerCase();
34
+ };
35
+ const segments = [];
36
+ if (rules.abbreviation) {
37
+ segments.push(sanitize(rules.abbreviation));
38
+ }
39
+ segments.push(sanitize(this.#options.workload));
40
+ if (this.#options.environment) {
41
+ segments.push(sanitize(this.#options.environment));
42
+ }
43
+ if (this.#options.region) {
44
+ segments.push(sanitize(this.#options.region));
45
+ }
46
+ if (context.label) {
47
+ segments.push(sanitize(context.label));
48
+ }
49
+ const ordinalSuffix = ordinal > 0 ? String(ordinal + 1) : "";
50
+ const base = segments.filter(Boolean).join(sep);
51
+ const truncateWithOrdinal = (available) => {
52
+ const ordinalPrefix = ordinalSuffix ? sep : "";
53
+ const baseLimit = Math.max(0, available - ordinalPrefix.length - ordinalSuffix.length);
54
+ return `${base.slice(0, baseLimit)}${ordinalPrefix}${ordinalSuffix}`;
55
+ };
56
+ if (rules.scope === "global") {
57
+ // Bicep uniqueString() always returns 13 characters. Reserve that suffix
58
+ // and the ordinal before truncating so repeated resources stay unique.
59
+ const uniqueSuffixLength = 13;
60
+ const prefix = truncateWithOrdinal(rules.maxLength - sep.length - uniqueSuffixLength);
61
+ const full = concat(prefix + sep, uniqueString(subscription().subscriptionId));
62
+ return rules.validCharacters.uppercase ? full : toLower(full);
63
+ }
64
+ // Non-global scope: no uniqueString needed, plain string is fine
65
+ const truncated = truncateWithOrdinal(rules.maxLength);
66
+ return rules.validCharacters.uppercase ? truncated : truncated.toLowerCase();
67
+ }
68
+ }
69
+ /**
70
+ * Naming policy that requires every resource to provide an explicit `name`.
71
+ *
72
+ * Throws an error when asked to generate a name. Use this on a stack to
73
+ * disable auto-naming entirely.
74
+ */
75
+ export const namingRequiredPolicy = {
76
+ generateName(context) {
77
+ throw new Error(`Resource of type '${context.type}' requires an explicit 'name' ` +
78
+ `(the stack uses 'namingRequiredPolicy').`);
79
+ },
80
+ };
81
+ /**
82
+ * Resolves the Azure resource name for a resource instance.
83
+ *
84
+ * - If `name` is explicitly provided (string or expression), it is used
85
+ * as-is — the naming policy does not transform it.
86
+ * - Otherwise, the active naming policy generates a name.
87
+ */
88
+ export function resolveResourceName(policy, name, type, namingRules) {
89
+ if (name !== undefined) {
90
+ return name;
91
+ }
92
+ return policy.generateName({
93
+ type,
94
+ rules: namingRules ?? MOST_RESTRICTIVE,
95
+ });
96
+ }
97
+ //# sourceMappingURL=naming-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-policy.js","sourceRoot":"","sources":["../../../src/naming/naming-policy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ExpressionOrValue } from \"../expression/expressions.js\";\nimport { concat, subscription, toLower, uniqueString } from \"../fn.js\";\nimport { MOST_RESTRICTIVE, type ResourceNamingRules } from \"./naming-rules.js\";\n\nexport interface NamingContext {\n readonly type: string;\n readonly rules: ResourceNamingRules;\n readonly label?: string | undefined;\n}\n\n/**\n * Strategy for generating Azure resource names when a resource is created\n * without an explicit `name`.\n *\n * Implement this interface to provide a custom naming convention. Two\n * built-in implementations are provided:\n *\n * - {@link DefaultNamingPolicy} — workload-based names with abbreviations,\n * ordinals, and `uniqueString()` for globally-scoped resources.\n * - {@link namingRequiredPolicy} — a singleton that throws if a resource\n * doesn't provide an explicit `name`.\n */\nexport interface NamingPolicy {\n generateName(context: NamingContext): ExpressionOrValue<string>;\n}\n\nexport interface NamingPolicyOptions {\n readonly workload: string;\n readonly environment?: string | undefined;\n readonly region?: string | undefined;\n}\n\n/**\n * Default workload-based naming policy.\n *\n * Generates names by composing the resource type abbreviation, workload,\n * environment, region, label, and an ordinal suffix for repeated types.\n * Global-scope resources get a `uniqueString(subscription().subscriptionId)`\n * suffix to ensure uniqueness.\n */\nexport class DefaultNamingPolicy implements NamingPolicy {\n readonly #options: NamingPolicyOptions;\n readonly #ordinals = new Map<string, number>();\n\n constructor(options: NamingPolicyOptions) {\n this.#options = options;\n }\n\n generateName(context: NamingContext): ExpressionOrValue<string> {\n const ordinal = this.#ordinals.get(context.type) ?? 0;\n this.#ordinals.set(context.type, ordinal + 1);\n\n const rules = context.rules;\n const sep = rules.validCharacters.hyphens ? \"-\" : \"\";\n\n const sanitize = (segment: string): string => {\n let value = segment;\n if (!rules.validCharacters.hyphens) value = value.replace(/-/gu, \"\");\n if (!rules.validCharacters.underscores) value = value.replace(/_/gu, \"\");\n if (!rules.validCharacters.periods) value = value.replace(/\\./gu, \"\");\n value = value.replace(/[^A-Za-z0-9._-]/gu, \"\");\n return rules.validCharacters.uppercase ? value : value.toLowerCase();\n };\n\n const segments: string[] = [];\n if (rules.abbreviation) {\n segments.push(sanitize(rules.abbreviation));\n }\n segments.push(sanitize(this.#options.workload));\n if (this.#options.environment) {\n segments.push(sanitize(this.#options.environment));\n }\n if (this.#options.region) {\n segments.push(sanitize(this.#options.region));\n }\n if (context.label) {\n segments.push(sanitize(context.label));\n }\n const ordinalSuffix = ordinal > 0 ? String(ordinal + 1) : \"\";\n const base = segments.filter(Boolean).join(sep);\n\n const truncateWithOrdinal = (available: number): string => {\n const ordinalPrefix = ordinalSuffix ? sep : \"\";\n const baseLimit = Math.max(0, available - ordinalPrefix.length - ordinalSuffix.length);\n return `${base.slice(0, baseLimit)}${ordinalPrefix}${ordinalSuffix}`;\n };\n\n if (rules.scope === \"global\") {\n // Bicep uniqueString() always returns 13 characters. Reserve that suffix\n // and the ordinal before truncating so repeated resources stay unique.\n const uniqueSuffixLength = 13;\n const prefix = truncateWithOrdinal(rules.maxLength - sep.length - uniqueSuffixLength);\n const full = concat(prefix + sep, uniqueString(subscription().subscriptionId));\n return rules.validCharacters.uppercase ? full : toLower(full);\n }\n\n // Non-global scope: no uniqueString needed, plain string is fine\n const truncated = truncateWithOrdinal(rules.maxLength);\n return rules.validCharacters.uppercase ? truncated : truncated.toLowerCase();\n }\n}\n\n/**\n * Naming policy that requires every resource to provide an explicit `name`.\n *\n * Throws an error when asked to generate a name. Use this on a stack to\n * disable auto-naming entirely.\n */\nexport const namingRequiredPolicy: NamingPolicy = {\n generateName(context: NamingContext): ExpressionOrValue<string> {\n throw new Error(\n `Resource of type '${context.type}' requires an explicit 'name' ` +\n `(the stack uses 'namingRequiredPolicy').`,\n );\n },\n};\n\n/**\n * Resolves the Azure resource name for a resource instance.\n *\n * - If `name` is explicitly provided (string or expression), it is used\n * as-is — the naming policy does not transform it.\n * - Otherwise, the active naming policy generates a name.\n */\nexport function resolveResourceName(\n policy: NamingPolicy,\n name: ExpressionOrValue<string> | undefined,\n type: string,\n namingRules: ResourceNamingRules | undefined,\n): ExpressionOrValue<string> {\n if (name !== undefined) {\n return name;\n }\n return policy.generateName({\n type,\n rules: namingRules ?? MOST_RESTRICTIVE,\n });\n}\n"]}
@@ -0,0 +1,15 @@
1
+ export interface ResourceNamingValidCharacters {
2
+ readonly uppercase: boolean;
3
+ readonly hyphens: boolean;
4
+ readonly underscores: boolean;
5
+ readonly periods: boolean;
6
+ }
7
+ export interface ResourceNamingRules {
8
+ readonly abbreviation: string;
9
+ readonly minLength: number;
10
+ readonly maxLength: number;
11
+ readonly validCharacters: ResourceNamingValidCharacters;
12
+ readonly scope: "global" | "resourceGroup" | "subscription";
13
+ }
14
+ export declare const MOST_RESTRICTIVE: ResourceNamingRules;
15
+ //# sourceMappingURL=naming-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-rules.d.ts","sourceRoot":"","sources":["../../../src/naming/naming-rules.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,6BAA6B,CAAC;IACxD,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,GAAG,cAAc,CAAC;CAC7D;AAED,eAAO,MAAM,gBAAgB,EAAE,mBAW9B,CAAC"}
@@ -0,0 +1,15 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ export const MOST_RESTRICTIVE = {
4
+ abbreviation: "",
5
+ minLength: 1,
6
+ maxLength: 24,
7
+ validCharacters: {
8
+ uppercase: false,
9
+ hyphens: false,
10
+ underscores: false,
11
+ periods: false,
12
+ },
13
+ scope: "global",
14
+ };
15
+ //# sourceMappingURL=naming-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-rules.js","sourceRoot":"","sources":["../../../src/naming/naming-rules.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAiBlC,MAAM,CAAC,MAAM,gBAAgB,GAAwB;IACnD,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,EAAE;IACb,eAAe,EAAE;QACf,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,KAAK;KACf;IACD,KAAK,EAAE,QAAQ;CAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport interface ResourceNamingValidCharacters {\n readonly uppercase: boolean;\n readonly hyphens: boolean;\n readonly underscores: boolean;\n readonly periods: boolean;\n}\n\nexport interface ResourceNamingRules {\n readonly abbreviation: string;\n readonly minLength: number;\n readonly maxLength: number;\n readonly validCharacters: ResourceNamingValidCharacters;\n readonly scope: \"global\" | \"resourceGroup\" | \"subscription\";\n}\n\nexport const MOST_RESTRICTIVE: ResourceNamingRules = {\n abbreviation: \"\",\n minLength: 1,\n maxLength: 24,\n validCharacters: {\n uppercase: false,\n hyphens: false,\n underscores: false,\n periods: false,\n },\n scope: \"global\",\n};\n"]}
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@azure/provisioning-core",
3
+ "version": "1.0.0-beta.1",
4
+ "type": "module",
5
+ "exports": {
6
+ "./package.json": "./package.json"
7
+ }
8
+ }