@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,319 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ import { isExpressionNode } from "../../expression/ast-nodes.js";
4
+ import { isExpression } from "../../expression/expressions.js";
5
+ export function encodeWireValue(value, encoding, path = []) {
6
+ if (value === null || value === undefined)
7
+ return value;
8
+ if (isExpression(value) || isExpressionNode(value))
9
+ return value;
10
+ switch (encoding.kind) {
11
+ case "date-time-text":
12
+ return encodeDateTimeText(value, encoding, path);
13
+ case "unix-timestamp":
14
+ return encodeUnixTimestamp(value, encoding, path);
15
+ case "duration-iso8601":
16
+ return requireIsoDuration(value, path);
17
+ case "duration-numeric":
18
+ return requireInteger(value, encoding.wire.scalar, path);
19
+ case "bytes":
20
+ return encodeBytes(value, encoding, path);
21
+ case "plain-date":
22
+ return encoding.clientMode === "wire"
23
+ ? requirePlainDate(value, path)
24
+ : encodePlainDate(value, path);
25
+ case "numeric-string":
26
+ return requireNumericString(value, encoding, path);
27
+ case "boolean-string":
28
+ if (encoding.clientMode === "wire") {
29
+ return requireBooleanString(value, path);
30
+ }
31
+ if (typeof value !== "boolean") {
32
+ fail(path, `Expected a boolean, got ${describe(value)}.`);
33
+ }
34
+ return String(value);
35
+ }
36
+ }
37
+ export function decodeWireValue(value, encoding, path = []) {
38
+ if (value === null || value === undefined)
39
+ return value;
40
+ if (isExpression(value) || isExpressionNode(value))
41
+ return value;
42
+ switch (encoding.kind) {
43
+ case "date-time-text":
44
+ return decodeDateTimeText(value, encoding, path);
45
+ case "unix-timestamp": {
46
+ const seconds = requireInteger(value, encoding.wire.scalar, path);
47
+ if (encoding.clientMode === "wire")
48
+ return seconds;
49
+ const date = new Date(seconds * 1000);
50
+ if (Number.isNaN(date.getTime())) {
51
+ fail(path, "Unix timestamp is outside the JavaScript Date range.");
52
+ }
53
+ return date;
54
+ }
55
+ case "duration-iso8601":
56
+ return requireIsoDuration(value, path);
57
+ case "duration-numeric":
58
+ return requireInteger(value, encoding.wire.scalar, path);
59
+ case "bytes":
60
+ return decodeBytes(value, encoding, path);
61
+ case "plain-date": {
62
+ const date = requirePlainDate(value, path);
63
+ return encoding.clientMode === "wire" ? date : new Date(`${date}T00:00:00.000Z`);
64
+ }
65
+ case "numeric-string":
66
+ return requireNumericString(value, encoding, path);
67
+ case "boolean-string": {
68
+ const booleanText = requireBooleanString(value, path);
69
+ return encoding.clientMode === "wire" ? booleanText : booleanText.toLowerCase() === "true";
70
+ }
71
+ }
72
+ }
73
+ function encodeDateTimeText(value, encoding, path) {
74
+ if (encoding.clientMode === "wire") {
75
+ if (encoding.source === "offsetDateTime") {
76
+ const clientText = requireDateString(value, "rfc3339", path);
77
+ if (encoding.format === "rfc7231") {
78
+ requireWholeSecondDateTime(clientText, path);
79
+ return new Date(clientText).toUTCString();
80
+ }
81
+ return clientText;
82
+ }
83
+ return requireDateString(value, encoding.format, path);
84
+ }
85
+ const date = requireDate(value, path);
86
+ if (encoding.format === "rfc7231") {
87
+ if (date.getUTCMilliseconds() !== 0) {
88
+ fail(path, "RFC7231 conversion would lose millisecond precision.");
89
+ }
90
+ return date.toUTCString();
91
+ }
92
+ return date.toISOString();
93
+ }
94
+ function decodeDateTimeText(value, encoding, path) {
95
+ const text = requireDateString(value, encoding.format, path);
96
+ if (encoding.source === "offsetDateTime") {
97
+ return encoding.format === "rfc7231" ? new Date(text).toISOString() : text;
98
+ }
99
+ if (encoding.clientMode === "wire")
100
+ return text;
101
+ return new Date(text);
102
+ }
103
+ function encodeUnixTimestamp(value, encoding, path) {
104
+ if (encoding.clientMode === "wire") {
105
+ return requireInteger(value, encoding.wire.scalar, path);
106
+ }
107
+ const date = requireDate(value, path);
108
+ if (date.getTime() % 1000 !== 0) {
109
+ fail(path, "Unix timestamp conversion would lose millisecond precision.");
110
+ }
111
+ return requireInteger(date.getTime() / 1000, encoding.wire.scalar, path);
112
+ }
113
+ function encodeBytes(value, encoding, path) {
114
+ if (encoding.clientMode === "wire") {
115
+ return requireBase64(value, encoding.format, path);
116
+ }
117
+ if (!(value instanceof Uint8Array)) {
118
+ fail(path, `Expected Uint8Array, got ${describe(value)}.`);
119
+ }
120
+ const base64 = uint8ArrayToBase64(value);
121
+ return encoding.format === "base64url" ? base64ToBase64Url(base64) : base64;
122
+ }
123
+ function decodeBytes(value, encoding, path) {
124
+ const text = requireBase64(value, encoding.format, path);
125
+ if (encoding.clientMode === "wire")
126
+ return text;
127
+ const base64 = encoding.format === "base64url" ? base64UrlToBase64(text) : text;
128
+ return base64ToUint8Array(base64);
129
+ }
130
+ function requireDate(value, path) {
131
+ if (!(value instanceof Date) || Number.isNaN(value.getTime())) {
132
+ fail(path, `Expected a valid Date, got ${describe(value)}.`);
133
+ }
134
+ return value;
135
+ }
136
+ function encodePlainDate(value, path) {
137
+ const date = requireDate(value, path);
138
+ if (date.getUTCHours() !== 0 ||
139
+ date.getUTCMinutes() !== 0 ||
140
+ date.getUTCSeconds() !== 0 ||
141
+ date.getUTCMilliseconds() !== 0) {
142
+ fail(path, "Plain-date conversion requires UTC midnight.");
143
+ }
144
+ return date.toISOString().slice(0, 10);
145
+ }
146
+ function requireWholeSecondDateTime(value, path) {
147
+ const fraction = /\.(\d+)(?:Z|[+-]\d{2}:\d{2})$/.exec(value)?.[1];
148
+ if (fraction !== undefined && /[1-9]/.test(fraction)) {
149
+ fail(path, "RFC7231 conversion would lose subsecond precision.");
150
+ }
151
+ }
152
+ function requireDateString(value, format, path) {
153
+ const isValid = format === "rfc3339"
154
+ ? isValidRfc3339(String(value))
155
+ : /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} GMT$/.test(String(value)) &&
156
+ !Number.isNaN(Date.parse(String(value))) &&
157
+ new Date(String(value)).toUTCString() === value;
158
+ if (typeof value !== "string" || !isValid) {
159
+ fail(path, `Expected a valid ${format} date string, got ${describe(value)}.`);
160
+ }
161
+ return value;
162
+ }
163
+ const ISO_DURATION = /^-?P(?=\d|T\d)(?:(?:\d+(?:\.\d+)?Y)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?W)?(?:\d+(?:\.\d+)?D)?)(?:T(?:\d+(?:\.\d+)?H)?(?:\d+(?:\.\d+)?M)?(?:\d+(?:\.\d+)?S)?)?$/;
164
+ function requireIsoDuration(value, path) {
165
+ if (typeof value !== "string" || !ISO_DURATION.test(value)) {
166
+ fail(path, `Expected an ISO8601 day/time duration, got ${describe(value)}.`);
167
+ }
168
+ return value;
169
+ }
170
+ function requirePlainDate(value, path) {
171
+ if (typeof value !== "string" ||
172
+ !/^\d{4}-\d{2}-\d{2}$/.test(value) ||
173
+ Number.isNaN(Date.parse(`${value}T00:00:00.000Z`)) ||
174
+ new Date(`${value}T00:00:00.000Z`).toISOString().slice(0, 10) !== value) {
175
+ fail(path, `Expected a YYYY-MM-DD date, got ${describe(value)}.`);
176
+ }
177
+ return value;
178
+ }
179
+ function requireInteger(value, scalar, path) {
180
+ if (typeof value !== "number" ||
181
+ !Number.isSafeInteger(value) ||
182
+ !inIntegerRange(BigInt(value), scalar)) {
183
+ fail(path, `Expected a safe ${scalar} value, got ${describe(value)}.`);
184
+ }
185
+ return value;
186
+ }
187
+ const CANONICAL_NUMBER = /^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;
188
+ function requireNumericString(value, encoding, path) {
189
+ const pattern = encoding.source === "integer" ? /^-?(?:0|[1-9]\d*)$/ : CANONICAL_NUMBER;
190
+ if (typeof value !== "string" || !pattern.test(value)) {
191
+ fail(path, `Expected a canonical numeric string, got ${describe(value)}.`);
192
+ }
193
+ if (encoding.source === "integer"
194
+ ? !inIntegerRange(BigInt(value), encoding.sourceScalar)
195
+ : !inNumericRange(value, encoding.sourceScalar)) {
196
+ fail(path, `Numeric string is outside '${encoding.sourceScalar}' range.`);
197
+ }
198
+ return value;
199
+ }
200
+ function inNumericRange(value, scalar) {
201
+ if (scalar === "numeric" || scalar === "decimal")
202
+ return true;
203
+ if (scalar === "decimal128") {
204
+ const match = /^(-?)(\d+)(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/.exec(value);
205
+ if (!match)
206
+ return false;
207
+ const integer = match[2];
208
+ const fraction = match[3] ?? "";
209
+ const significant = `${integer}${fraction}`.replace(/^0+/u, "");
210
+ if (significant.length === 0)
211
+ return true;
212
+ if (significant.length > 34)
213
+ return false;
214
+ const exponent = Number(match[4] ?? 0);
215
+ const adjustedExponent = exponent + integer.length - 1;
216
+ return adjustedExponent >= -6176 && adjustedExponent <= 6144;
217
+ }
218
+ const number = Number(value);
219
+ if (!Number.isFinite(number))
220
+ return false;
221
+ if (scalar === "float32") {
222
+ return Math.abs(number) <= 3.4028234663852886e38;
223
+ }
224
+ return true;
225
+ }
226
+ const INTEGER_RANGES = {
227
+ safeint: [BigInt(Number.MIN_SAFE_INTEGER), BigInt(Number.MAX_SAFE_INTEGER)],
228
+ int8: [-128n, 127n],
229
+ uint8: [0n, 255n],
230
+ int16: [-32768n, 32767n],
231
+ uint16: [0n, 65535n],
232
+ int32: [-2147483648n, 2147483647n],
233
+ uint32: [0n, 4294967295n],
234
+ int64: [-9223372036854775808n, 9223372036854775807n],
235
+ uint64: [0n, 18446744073709551615n],
236
+ };
237
+ function inIntegerRange(value, scalar) {
238
+ const range = INTEGER_RANGES[scalar];
239
+ return range ? value >= range[0] && value <= range[1] : true;
240
+ }
241
+ function requireBooleanString(value, path) {
242
+ if (value !== "true" && value !== "false") {
243
+ fail(path, `Expected 'true' or 'false', got ${describe(value)}.`);
244
+ }
245
+ return value;
246
+ }
247
+ function isValidRfc3339(value) {
248
+ const match = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(?:Z|[+-](\d{2}):(\d{2}))$/.exec(value);
249
+ if (!match)
250
+ return false;
251
+ const year = Number(match[1]);
252
+ const month = Number(match[2]);
253
+ const day = Number(match[3]);
254
+ if (month < 1 ||
255
+ month > 12 ||
256
+ day < 1 ||
257
+ day > new Date(Date.UTC(year, month, 0)).getUTCDate() ||
258
+ Number(match[4]) > 23 ||
259
+ Number(match[5]) > 59 ||
260
+ Number(match[6]) > 59 ||
261
+ Number(match[7] ?? 0) > 23 ||
262
+ Number(match[8] ?? 0) > 59) {
263
+ return false;
264
+ }
265
+ return !Number.isNaN(Date.parse(value));
266
+ }
267
+ function requireBase64(value, format, path) {
268
+ if (typeof value !== "string") {
269
+ fail(path, `Expected a ${format} string, got ${describe(value)}.`);
270
+ }
271
+ const pattern = format === "base64"
272
+ ? /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/
273
+ : /^[A-Za-z0-9_-]*$/;
274
+ if (!pattern.test(value)) {
275
+ fail(path, `Expected a valid ${format} string.`);
276
+ }
277
+ if (format === "base64url" && value.length % 4 === 1) {
278
+ fail(path, "Expected a valid base64url string length.");
279
+ }
280
+ const base64 = format === "base64url" ? base64UrlToBase64(value) : value;
281
+ const canonical = format === "base64url"
282
+ ? base64ToBase64Url(uint8ArrayToBase64(base64ToUint8Array(base64)))
283
+ : uint8ArrayToBase64(base64ToUint8Array(base64));
284
+ if (canonical !== value) {
285
+ fail(path, `Expected a canonical ${format} string.`);
286
+ }
287
+ return value;
288
+ }
289
+ function uint8ArrayToBase64(value) {
290
+ const chunks = [];
291
+ const chunkSize = 0x8000;
292
+ for (let offset = 0; offset < value.length; offset += chunkSize) {
293
+ chunks.push(String.fromCharCode(...value.subarray(offset, offset + chunkSize)));
294
+ }
295
+ return btoa(chunks.join(""));
296
+ }
297
+ function base64ToUint8Array(value) {
298
+ const binary = atob(value);
299
+ return Uint8Array.from(binary, (character) => character.charCodeAt(0));
300
+ }
301
+ function base64ToBase64Url(base64) {
302
+ return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
303
+ }
304
+ function base64UrlToBase64(base64url) {
305
+ const padded = base64url + "=".repeat((4 - (base64url.length % 4)) % 4);
306
+ return padded.replace(/-/g, "+").replace(/_/g, "/");
307
+ }
308
+ function describe(value) {
309
+ if (value instanceof Date)
310
+ return "Date";
311
+ if (value instanceof Uint8Array)
312
+ return "Uint8Array";
313
+ return value === null ? "null" : typeof value;
314
+ }
315
+ function fail(path, message) {
316
+ const location = path.length > 0 ? path.join(".") : "<value>";
317
+ throw new TypeError(`Invalid encoded value at '${location}': ${message}`);
318
+ }
319
+ //# sourceMappingURL=encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../../../src/serialization/json/encoding.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { isExpressionNode } from \"../../expression/ast-nodes.js\";\nimport { isExpression } from \"../../expression/expressions.js\";\nimport type {\n BytesEncodingDescriptor,\n DateTimeTextEncodingDescriptor,\n IntegerScalarName,\n NumericScalarName,\n NumericStringEncodingDescriptor,\n UnixTimestampEncodingDescriptor,\n ValueEncodingDescriptor,\n} from \"../../shape/value-encoding.js\";\n\nexport function encodeWireValue(\n value: unknown,\n encoding: ValueEncodingDescriptor,\n path: readonly string[] = [],\n): unknown {\n if (value === null || value === undefined) return value;\n if (isExpression(value) || isExpressionNode(value)) return value;\n\n switch (encoding.kind) {\n case \"date-time-text\":\n return encodeDateTimeText(value, encoding, path);\n case \"unix-timestamp\":\n return encodeUnixTimestamp(value, encoding, path);\n case \"duration-iso8601\":\n return requireIsoDuration(value, path);\n case \"duration-numeric\":\n return requireInteger(value, encoding.wire.scalar, path);\n case \"bytes\":\n return encodeBytes(value, encoding, path);\n case \"plain-date\":\n return encoding.clientMode === \"wire\"\n ? requirePlainDate(value, path)\n : encodePlainDate(value, path);\n case \"numeric-string\":\n return requireNumericString(value, encoding, path);\n case \"boolean-string\":\n if (encoding.clientMode === \"wire\") {\n return requireBooleanString(value, path);\n }\n if (typeof value !== \"boolean\") {\n fail(path, `Expected a boolean, got ${describe(value)}.`);\n }\n return String(value);\n }\n}\n\nexport function decodeWireValue(\n value: unknown,\n encoding: ValueEncodingDescriptor,\n path: readonly string[] = [],\n): unknown {\n if (value === null || value === undefined) return value;\n if (isExpression(value) || isExpressionNode(value)) return value;\n\n switch (encoding.kind) {\n case \"date-time-text\":\n return decodeDateTimeText(value, encoding, path);\n case \"unix-timestamp\": {\n const seconds = requireInteger(value, encoding.wire.scalar, path);\n if (encoding.clientMode === \"wire\") return seconds;\n const date = new Date(seconds * 1000);\n if (Number.isNaN(date.getTime())) {\n fail(path, \"Unix timestamp is outside the JavaScript Date range.\");\n }\n return date;\n }\n case \"duration-iso8601\":\n return requireIsoDuration(value, path);\n case \"duration-numeric\":\n return requireInteger(value, encoding.wire.scalar, path);\n case \"bytes\":\n return decodeBytes(value, encoding, path);\n case \"plain-date\": {\n const date = requirePlainDate(value, path);\n return encoding.clientMode === \"wire\" ? date : new Date(`${date}T00:00:00.000Z`);\n }\n case \"numeric-string\":\n return requireNumericString(value, encoding, path);\n case \"boolean-string\": {\n const booleanText = requireBooleanString(value, path);\n return encoding.clientMode === \"wire\" ? booleanText : booleanText.toLowerCase() === \"true\";\n }\n }\n}\n\nfunction encodeDateTimeText(\n value: unknown,\n encoding: DateTimeTextEncodingDescriptor,\n path: readonly string[],\n): string {\n if (encoding.clientMode === \"wire\") {\n if (encoding.source === \"offsetDateTime\") {\n const clientText = requireDateString(value, \"rfc3339\", path);\n if (encoding.format === \"rfc7231\") {\n requireWholeSecondDateTime(clientText, path);\n return new Date(clientText).toUTCString();\n }\n return clientText;\n }\n return requireDateString(value, encoding.format, path);\n }\n const date = requireDate(value, path);\n if (encoding.format === \"rfc7231\") {\n if (date.getUTCMilliseconds() !== 0) {\n fail(path, \"RFC7231 conversion would lose millisecond precision.\");\n }\n return date.toUTCString();\n }\n return date.toISOString();\n}\n\nfunction decodeDateTimeText(\n value: unknown,\n encoding: DateTimeTextEncodingDescriptor,\n path: readonly string[],\n): unknown {\n const text = requireDateString(value, encoding.format, path);\n if (encoding.source === \"offsetDateTime\") {\n return encoding.format === \"rfc7231\" ? new Date(text).toISOString() : text;\n }\n if (encoding.clientMode === \"wire\") return text;\n return new Date(text);\n}\n\nfunction encodeUnixTimestamp(\n value: unknown,\n encoding: UnixTimestampEncodingDescriptor,\n path: readonly string[],\n): number {\n if (encoding.clientMode === \"wire\") {\n return requireInteger(value, encoding.wire.scalar, path);\n }\n const date = requireDate(value, path);\n if (date.getTime() % 1000 !== 0) {\n fail(path, \"Unix timestamp conversion would lose millisecond precision.\");\n }\n return requireInteger(date.getTime() / 1000, encoding.wire.scalar, path);\n}\n\nfunction encodeBytes(\n value: unknown,\n encoding: BytesEncodingDescriptor,\n path: readonly string[],\n): string {\n if (encoding.clientMode === \"wire\") {\n return requireBase64(value, encoding.format, path);\n }\n if (!(value instanceof Uint8Array)) {\n fail(path, `Expected Uint8Array, got ${describe(value)}.`);\n }\n const base64 = uint8ArrayToBase64(value);\n return encoding.format === \"base64url\" ? base64ToBase64Url(base64) : base64;\n}\n\nfunction decodeBytes(\n value: unknown,\n encoding: BytesEncodingDescriptor,\n path: readonly string[],\n): unknown {\n const text = requireBase64(value, encoding.format, path);\n if (encoding.clientMode === \"wire\") return text;\n const base64 = encoding.format === \"base64url\" ? base64UrlToBase64(text) : text;\n return base64ToUint8Array(base64);\n}\n\nfunction requireDate(value: unknown, path: readonly string[]): Date {\n if (!(value instanceof Date) || Number.isNaN(value.getTime())) {\n fail(path, `Expected a valid Date, got ${describe(value)}.`);\n }\n return value;\n}\n\nfunction encodePlainDate(value: unknown, path: readonly string[]): string {\n const date = requireDate(value, path);\n if (\n date.getUTCHours() !== 0 ||\n date.getUTCMinutes() !== 0 ||\n date.getUTCSeconds() !== 0 ||\n date.getUTCMilliseconds() !== 0\n ) {\n fail(path, \"Plain-date conversion requires UTC midnight.\");\n }\n return date.toISOString().slice(0, 10);\n}\n\nfunction requireWholeSecondDateTime(value: string, path: readonly string[]): void {\n const fraction = /\\.(\\d+)(?:Z|[+-]\\d{2}:\\d{2})$/.exec(value)?.[1];\n if (fraction !== undefined && /[1-9]/.test(fraction)) {\n fail(path, \"RFC7231 conversion would lose subsecond precision.\");\n }\n}\n\nfunction requireDateString(\n value: unknown,\n format: \"rfc3339\" | \"rfc7231\",\n path: readonly string[],\n): string {\n const isValid =\n format === \"rfc3339\"\n ? isValidRfc3339(String(value))\n : /^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), \\d{2} (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d{4} \\d{2}:\\d{2}:\\d{2} GMT$/.test(\n String(value),\n ) &&\n !Number.isNaN(Date.parse(String(value))) &&\n new Date(String(value)).toUTCString() === value;\n if (typeof value !== \"string\" || !isValid) {\n fail(path, `Expected a valid ${format} date string, got ${describe(value)}.`);\n }\n return value;\n}\n\nconst ISO_DURATION =\n /^-?P(?=\\d|T\\d)(?:(?:\\d+(?:\\.\\d+)?Y)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?W)?(?:\\d+(?:\\.\\d+)?D)?)(?:T(?:\\d+(?:\\.\\d+)?H)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?S)?)?$/;\n\nfunction requireIsoDuration(value: unknown, path: readonly string[]): string {\n if (typeof value !== \"string\" || !ISO_DURATION.test(value)) {\n fail(path, `Expected an ISO8601 day/time duration, got ${describe(value)}.`);\n }\n\n return value;\n}\n\nfunction requirePlainDate(value: unknown, path: readonly string[]): string {\n if (\n typeof value !== \"string\" ||\n !/^\\d{4}-\\d{2}-\\d{2}$/.test(value) ||\n Number.isNaN(Date.parse(`${value}T00:00:00.000Z`)) ||\n new Date(`${value}T00:00:00.000Z`).toISOString().slice(0, 10) !== value\n ) {\n fail(path, `Expected a YYYY-MM-DD date, got ${describe(value)}.`);\n }\n return value;\n}\n\nfunction requireInteger(\n value: unknown,\n scalar: IntegerScalarName,\n path: readonly string[],\n): number {\n if (\n typeof value !== \"number\" ||\n !Number.isSafeInteger(value) ||\n !inIntegerRange(BigInt(value), scalar)\n ) {\n fail(path, `Expected a safe ${scalar} value, got ${describe(value)}.`);\n }\n return value;\n}\n\nconst CANONICAL_NUMBER = /^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/;\n\nfunction requireNumericString(\n value: unknown,\n encoding: NumericStringEncodingDescriptor,\n path: readonly string[],\n): string {\n const pattern = encoding.source === \"integer\" ? /^-?(?:0|[1-9]\\d*)$/ : CANONICAL_NUMBER;\n if (typeof value !== \"string\" || !pattern.test(value)) {\n fail(path, `Expected a canonical numeric string, got ${describe(value)}.`);\n }\n if (\n encoding.source === \"integer\"\n ? !inIntegerRange(BigInt(value), encoding.sourceScalar)\n : !inNumericRange(value, encoding.sourceScalar)\n ) {\n fail(path, `Numeric string is outside '${encoding.sourceScalar}' range.`);\n }\n return value;\n}\n\nfunction inNumericRange(value: string, scalar: NumericScalarName): boolean {\n if (scalar === \"numeric\" || scalar === \"decimal\") return true;\n if (scalar === \"decimal128\") {\n const match = /^(-?)(\\d+)(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/.exec(value);\n if (!match) return false;\n const integer = match[2]!;\n const fraction = match[3] ?? \"\";\n const significant = `${integer}${fraction}`.replace(/^0+/u, \"\");\n if (significant.length === 0) return true;\n if (significant.length > 34) return false;\n const exponent = Number(match[4] ?? 0);\n const adjustedExponent = exponent + integer.length - 1;\n return adjustedExponent >= -6176 && adjustedExponent <= 6144;\n }\n\n const number = Number(value);\n if (!Number.isFinite(number)) return false;\n if (scalar === \"float32\") {\n return Math.abs(number) <= 3.4028234663852886e38;\n }\n return true;\n}\n\nconst INTEGER_RANGES: Partial<Record<NumericScalarName, readonly [bigint, bigint]>> = {\n safeint: [BigInt(Number.MIN_SAFE_INTEGER), BigInt(Number.MAX_SAFE_INTEGER)],\n int8: [-128n, 127n],\n uint8: [0n, 255n],\n int16: [-32768n, 32767n],\n uint16: [0n, 65535n],\n int32: [-2147483648n, 2147483647n],\n uint32: [0n, 4294967295n],\n int64: [-9223372036854775808n, 9223372036854775807n],\n uint64: [0n, 18446744073709551615n],\n};\n\nfunction inIntegerRange(value: bigint, scalar: NumericScalarName): boolean {\n const range = INTEGER_RANGES[scalar];\n return range ? value >= range[0] && value <= range[1] : true;\n}\n\nfunction requireBooleanString(value: unknown, path: readonly string[]): string {\n if (value !== \"true\" && value !== \"false\") {\n fail(path, `Expected 'true' or 'false', got ${describe(value)}.`);\n }\n return value;\n}\n\nfunction isValidRfc3339(value: string): boolean {\n const match =\n /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.\\d+)?(?:Z|[+-](\\d{2}):(\\d{2}))$/.exec(\n value,\n );\n if (!match) return false;\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n if (\n month < 1 ||\n month > 12 ||\n day < 1 ||\n day > new Date(Date.UTC(year, month, 0)).getUTCDate() ||\n Number(match[4]) > 23 ||\n Number(match[5]) > 59 ||\n Number(match[6]) > 59 ||\n Number(match[7] ?? 0) > 23 ||\n Number(match[8] ?? 0) > 59\n ) {\n return false;\n }\n return !Number.isNaN(Date.parse(value));\n}\n\nfunction requireBase64(\n value: unknown,\n format: \"base64\" | \"base64url\",\n path: readonly string[],\n): string {\n if (typeof value !== \"string\") {\n fail(path, `Expected a ${format} string, got ${describe(value)}.`);\n }\n const pattern =\n format === \"base64\"\n ? /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/\n : /^[A-Za-z0-9_-]*$/;\n if (!pattern.test(value)) {\n fail(path, `Expected a valid ${format} string.`);\n }\n if (format === \"base64url\" && value.length % 4 === 1) {\n fail(path, \"Expected a valid base64url string length.\");\n }\n const base64 = format === \"base64url\" ? base64UrlToBase64(value) : value;\n const canonical =\n format === \"base64url\"\n ? base64ToBase64Url(uint8ArrayToBase64(base64ToUint8Array(base64)))\n : uint8ArrayToBase64(base64ToUint8Array(base64));\n if (canonical !== value) {\n fail(path, `Expected a canonical ${format} string.`);\n }\n return value;\n}\n\nfunction uint8ArrayToBase64(value: Uint8Array): string {\n const chunks: string[] = [];\n const chunkSize = 0x8000;\n for (let offset = 0; offset < value.length; offset += chunkSize) {\n chunks.push(String.fromCharCode(...value.subarray(offset, offset + chunkSize)));\n }\n return btoa(chunks.join(\"\"));\n}\n\nfunction base64ToUint8Array(value: string): Uint8Array {\n const binary = atob(value);\n return Uint8Array.from(binary, (character) => character.charCodeAt(0));\n}\n\nfunction base64ToBase64Url(base64: string): string {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\n\nfunction base64UrlToBase64(base64url: string): string {\n const padded = base64url + \"=\".repeat((4 - (base64url.length % 4)) % 4);\n return padded.replace(/-/g, \"+\").replace(/_/g, \"/\");\n}\n\nfunction describe(value: unknown): string {\n if (value instanceof Date) return \"Date\";\n if (value instanceof Uint8Array) return \"Uint8Array\";\n return value === null ? \"null\" : typeof value;\n}\n\nfunction fail(path: readonly string[], message: string): never {\n const location = path.length > 0 ? path.join(\".\") : \"<value>\";\n throw new TypeError(`Invalid encoded value at '${location}': ${message}`);\n}\n"]}
@@ -0,0 +1,32 @@
1
+ import { type ExpressionNode as CoreExpressionNode } from "../../expression/ast-nodes.js";
2
+ import { type Expression } from "../../expression/expressions.js";
3
+ import { type LoopedResource, type Resource, type ResourceDeclaration } from "../../constructs/resource/resource.js";
4
+ import type { ExpressionNode } from "../contract/index.js";
5
+ import type { ParameterMetadata } from "../../constructs/parameter.js";
6
+ import type { VariableMetadata } from "../../constructs/variable.js";
7
+ export type SerializableValue = CoreExpressionNode | Expression<unknown> | string | number | boolean | null | readonly SerializableValue[] | {
8
+ readonly [key: string]: SerializableValue | undefined;
9
+ };
10
+ export type SerializationSymbolMap = Map<ResourceDeclaration | CoreExpressionNode | ParameterMetadata | VariableMetadata, string>;
11
+ type SymbolValue = Expression<unknown> | Resource | LoopedResource<Resource>;
12
+ export type DeserializationSymbolMap = Map<string, SymbolValue>;
13
+ /**
14
+ * Expands armPath stamps along a core property-access chain, replacing each
15
+ * stamped property with its ARM path relative to the lowered base. Empty
16
+ * paths fall back to the original property name. Generated accesses carry
17
+ * no stamps; unchanged nodes retain their identity.
18
+ *
19
+ * Recursion stops at non-property-access nodes and leaves their children
20
+ * untouched. serializeExpression traverses those children and invokes this
21
+ * helper as it reaches them; this is not a whole-expression lowering pass.
22
+ */
23
+ export declare function lowerArmPropertyAccessChain(node: CoreExpressionNode): CoreExpressionNode;
24
+ export declare function serializeDefinedObjectEntries(value: {
25
+ readonly [key: string]: SerializableValue | undefined;
26
+ }, symbolMap: SerializationSymbolMap): Record<string, ExpressionNode>;
27
+ export declare function serializeExpression(value: SerializableValue, symbolMap?: SerializationSymbolMap): ExpressionNode;
28
+ export declare function requireResourceHandle(targetIdentifier: string, symbols: DeserializationSymbolMap, resourceIdentifier: string, field: "parent" | "scope" | "dependsOn"): Resource | LoopedResource<Resource>;
29
+ export declare function deserializeDependsOnExpression(node: ExpressionNode, symbols: DeserializationSymbolMap, resourceIdentifier: string): readonly ResourceDeclaration[];
30
+ export declare function deserializeExpression(node: ExpressionNode, symbols: DeserializationSymbolMap): unknown;
31
+ export {};
32
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../../../src/serialization/json/expression.ts"],"names":[],"mappings":"AAGA,OAAO,EAWL,KAAK,cAAc,IAAI,kBAAkB,EAK1C,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAGV,cAAc,EAKf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,UAAU,CAAC,OAAO,CAAC,GACnB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,iBAAiB,EAAE,GAC5B;IACE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACvD,CAAC;AAEN,MAAM,MAAM,sBAAsB,GAAG,GAAG,CACtC,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,gBAAgB,EAC/E,MAAM,CACP,CAAC;AAEF,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC7E,MAAM,MAAM,wBAAwB,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAMhE;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAiBxF;AA4FD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAA;CAAE,EAChE,SAAS,EAAE,sBAAsB,GAChC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAMhC;AA4GD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,EACxB,SAAS,GAAE,sBAAkC,GAC5C,cAAc,CA8HhB;AAMD,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,wBAAwB,EACjC,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,GACtC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAerC;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,wBAAwB,EACjC,kBAAkB,EAAE,MAAM,GACzB,SAAS,mBAAmB,EAAE,CAehC;AAMD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CA4MT"}