tfts 0.2.13 → 0.3.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 (426) hide show
  1. package/README.md +5 -161
  2. package/dist/cli/config.d.ts +18 -0
  3. package/dist/cli/config.d.ts.map +1 -0
  4. package/dist/cli/config.js +36 -0
  5. package/dist/cli/config.js.map +1 -0
  6. package/dist/cli/get.d.ts +8 -0
  7. package/dist/cli/get.d.ts.map +1 -0
  8. package/dist/cli/get.js +107 -0
  9. package/dist/cli/get.js.map +1 -0
  10. package/dist/cli/main.d.ts +3 -0
  11. package/dist/cli/main.d.ts.map +1 -0
  12. package/dist/cli/main.js +86 -0
  13. package/dist/cli/main.js.map +1 -0
  14. package/dist/cli/synth.d.ts +7 -0
  15. package/dist/cli/synth.d.ts.map +1 -0
  16. package/dist/cli/synth.js +35 -0
  17. package/dist/cli/synth.js.map +1 -0
  18. package/dist/codegen/fetch-schema.d.ts +9 -0
  19. package/dist/codegen/fetch-schema.d.ts.map +1 -0
  20. package/dist/codegen/fetch-schema.js +51 -0
  21. package/dist/codegen/fetch-schema.js.map +1 -0
  22. package/dist/codegen/fetch-schema.spec.d.ts +2 -0
  23. package/dist/codegen/fetch-schema.spec.d.ts.map +1 -0
  24. package/dist/codegen/fetch-schema.spec.js +63 -0
  25. package/dist/codegen/fetch-schema.spec.js.map +1 -0
  26. package/dist/codegen/generator.d.ts +8 -0
  27. package/dist/codegen/generator.d.ts.map +1 -0
  28. package/dist/codegen/generator.js +582 -0
  29. package/dist/codegen/generator.js.map +1 -0
  30. package/dist/codegen/generator.spec.d.ts.map +1 -0
  31. package/dist/codegen/generator.spec.js +387 -0
  32. package/dist/codegen/generator.spec.js.map +1 -0
  33. package/dist/codegen/index.d.ts +5 -0
  34. package/dist/codegen/index.d.ts.map +1 -0
  35. package/dist/codegen/index.js +5 -0
  36. package/dist/codegen/index.js.map +1 -0
  37. package/dist/codegen/schema.d.ts +46 -0
  38. package/dist/codegen/schema.d.ts.map +1 -0
  39. package/dist/codegen/schema.js +64 -0
  40. package/dist/codegen/schema.js.map +1 -0
  41. package/dist/codegen/type-mapper.d.ts +11 -0
  42. package/dist/codegen/type-mapper.d.ts.map +1 -0
  43. package/dist/codegen/type-mapper.js +130 -0
  44. package/dist/codegen/type-mapper.js.map +1 -0
  45. package/dist/core/synthesize.d.ts +2 -0
  46. package/dist/core/synthesize.d.ts.map +1 -0
  47. package/dist/core/synthesize.js +51 -0
  48. package/dist/core/synthesize.js.map +1 -0
  49. package/dist/core/synthesize.spec.d.ts.map +1 -0
  50. package/dist/core/synthesize.spec.js +72 -0
  51. package/dist/core/synthesize.spec.js.map +1 -0
  52. package/dist/core/terraform-json.d.ts +86 -0
  53. package/dist/core/terraform-json.d.ts.map +1 -0
  54. package/dist/core/terraform-json.js.map +1 -0
  55. package/dist/core/tokens.d.ts +46 -0
  56. package/dist/core/tokens.d.ts.map +1 -0
  57. package/dist/core/tokens.js +256 -0
  58. package/dist/core/tokens.js.map +1 -0
  59. package/dist/{src/core → core}/tokens.spec.d.ts.map +1 -1
  60. package/dist/core/tokens.spec.js +140 -0
  61. package/dist/core/tokens.spec.js.map +1 -0
  62. package/dist/core/tree.d.ts +11 -0
  63. package/dist/core/tree.d.ts.map +1 -0
  64. package/dist/core/tree.js +89 -0
  65. package/dist/core/tree.js.map +1 -0
  66. package/dist/{src/core → core}/tree.spec.d.ts.map +1 -1
  67. package/dist/core/tree.spec.js +110 -0
  68. package/dist/core/tree.spec.js.map +1 -0
  69. package/dist/core/types.d.ts +165 -0
  70. package/dist/core/types.d.ts.map +1 -0
  71. package/dist/core/types.js +2 -0
  72. package/dist/core/types.js.map +1 -0
  73. package/dist/core/validate.d.ts +5 -0
  74. package/dist/core/validate.d.ts.map +1 -0
  75. package/dist/core/validate.js +186 -0
  76. package/dist/core/validate.js.map +1 -0
  77. package/dist/core/validate.spec.d.ts.map +1 -0
  78. package/dist/core/validate.spec.js +126 -0
  79. package/dist/core/validate.spec.js.map +1 -0
  80. package/dist/facade/annotations.d.ts +17 -0
  81. package/dist/facade/annotations.d.ts.map +1 -0
  82. package/dist/facade/annotations.js +29 -0
  83. package/dist/facade/annotations.js.map +1 -0
  84. package/dist/facade/app.d.ts +51 -0
  85. package/dist/facade/app.d.ts.map +1 -0
  86. package/dist/facade/app.js +121 -0
  87. package/dist/facade/app.js.map +1 -0
  88. package/dist/facade/aspects.d.ts +13 -0
  89. package/dist/facade/aspects.d.ts.map +1 -0
  90. package/dist/facade/aspects.js +34 -0
  91. package/dist/facade/aspects.js.map +1 -0
  92. package/dist/facade/backends/cloud-backend.d.ts +34 -0
  93. package/dist/facade/backends/cloud-backend.d.ts.map +1 -0
  94. package/dist/facade/backends/cloud-backend.js +84 -0
  95. package/dist/facade/backends/cloud-backend.js.map +1 -0
  96. package/dist/facade/backends/gcs-backend.d.ts +29 -0
  97. package/dist/facade/backends/gcs-backend.d.ts.map +1 -0
  98. package/dist/facade/backends/gcs-backend.js +34 -0
  99. package/dist/facade/backends/gcs-backend.js.map +1 -0
  100. package/dist/facade/backends/index.d.ts +5 -0
  101. package/dist/facade/backends/index.d.ts.map +1 -0
  102. package/dist/facade/backends/index.js +5 -0
  103. package/dist/facade/backends/index.js.map +1 -0
  104. package/dist/facade/backends/remote-backend.d.ts +34 -0
  105. package/dist/facade/backends/remote-backend.d.ts.map +1 -0
  106. package/dist/facade/backends/remote-backend.js +50 -0
  107. package/dist/facade/backends/remote-backend.js.map +1 -0
  108. package/dist/facade/backends/s3-backend.d.ts +97 -0
  109. package/dist/facade/backends/s3-backend.d.ts.map +1 -0
  110. package/dist/facade/backends/s3-backend.js +34 -0
  111. package/dist/facade/backends/s3-backend.js.map +1 -0
  112. package/dist/facade/complex-computed-list.d.ts +117 -0
  113. package/dist/facade/complex-computed-list.d.ts.map +1 -0
  114. package/dist/facade/complex-computed-list.js +370 -0
  115. package/dist/facade/complex-computed-list.js.map +1 -0
  116. package/dist/facade/construct.d.ts +49 -0
  117. package/dist/facade/construct.d.ts.map +1 -0
  118. package/dist/facade/construct.js +129 -0
  119. package/dist/facade/construct.js.map +1 -0
  120. package/dist/facade/importable-resource.d.ts +17 -0
  121. package/dist/facade/importable-resource.d.ts.map +1 -0
  122. package/dist/facade/importable-resource.js +27 -0
  123. package/dist/facade/importable-resource.js.map +1 -0
  124. package/dist/facade/index.d.ts +27 -0
  125. package/dist/facade/index.d.ts.map +1 -0
  126. package/dist/facade/index.js +27 -0
  127. package/dist/facade/index.js.map +1 -0
  128. package/dist/facade/runtime.d.ts +16 -0
  129. package/dist/facade/runtime.d.ts.map +1 -0
  130. package/dist/facade/runtime.js +76 -0
  131. package/dist/facade/runtime.js.map +1 -0
  132. package/dist/facade/stack-registry.d.ts +13 -0
  133. package/dist/facade/stack-registry.d.ts.map +1 -0
  134. package/dist/facade/stack-registry.js +8 -0
  135. package/dist/facade/stack-registry.js.map +1 -0
  136. package/dist/facade/terraform-addressable.d.ts +9 -0
  137. package/dist/facade/terraform-addressable.d.ts.map +1 -0
  138. package/dist/facade/terraform-addressable.js +2 -0
  139. package/dist/facade/terraform-addressable.js.map +1 -0
  140. package/dist/facade/terraform-asset.d.ts +27 -0
  141. package/dist/facade/terraform-asset.d.ts.map +1 -0
  142. package/dist/facade/terraform-asset.js +118 -0
  143. package/dist/facade/terraform-asset.js.map +1 -0
  144. package/dist/facade/terraform-backend.d.ts +23 -0
  145. package/dist/facade/terraform-backend.d.ts.map +1 -0
  146. package/dist/facade/terraform-backend.js +53 -0
  147. package/dist/facade/terraform-backend.js.map +1 -0
  148. package/dist/facade/terraform-data-source.d.ts +45 -0
  149. package/dist/facade/terraform-data-source.d.ts.map +1 -0
  150. package/dist/facade/terraform-data-source.js +85 -0
  151. package/dist/facade/terraform-data-source.js.map +1 -0
  152. package/dist/facade/terraform-element.d.ts +28 -0
  153. package/dist/facade/terraform-element.d.ts.map +1 -0
  154. package/dist/facade/terraform-element.js +100 -0
  155. package/dist/facade/terraform-element.js.map +1 -0
  156. package/dist/facade/terraform-functions.d.ts +148 -0
  157. package/dist/facade/terraform-functions.d.ts.map +1 -0
  158. package/dist/facade/terraform-functions.js +615 -0
  159. package/dist/facade/terraform-functions.js.map +1 -0
  160. package/dist/facade/terraform-functions.spec.d.ts +2 -0
  161. package/dist/facade/terraform-functions.spec.d.ts.map +1 -0
  162. package/dist/facade/terraform-functions.spec.js +282 -0
  163. package/dist/facade/terraform-functions.spec.js.map +1 -0
  164. package/dist/facade/terraform-hcl-module.d.ts +18 -0
  165. package/dist/facade/terraform-hcl-module.d.ts.map +1 -0
  166. package/dist/facade/terraform-hcl-module.js +39 -0
  167. package/dist/facade/terraform-hcl-module.js.map +1 -0
  168. package/dist/facade/terraform-iterator.d.ts +39 -0
  169. package/dist/facade/terraform-iterator.d.ts.map +1 -0
  170. package/dist/facade/terraform-iterator.js +77 -0
  171. package/dist/facade/terraform-iterator.js.map +1 -0
  172. package/dist/facade/terraform-local.d.ts +18 -0
  173. package/dist/facade/terraform-local.d.ts.map +1 -0
  174. package/dist/facade/terraform-local.js +34 -0
  175. package/dist/facade/terraform-local.js.map +1 -0
  176. package/dist/facade/terraform-module.d.ts +35 -0
  177. package/dist/facade/terraform-module.d.ts.map +1 -0
  178. package/dist/facade/terraform-module.js +94 -0
  179. package/dist/facade/terraform-module.js.map +1 -0
  180. package/dist/facade/terraform-output.d.ts +20 -0
  181. package/dist/facade/terraform-output.d.ts.map +1 -0
  182. package/dist/facade/terraform-output.js +38 -0
  183. package/dist/facade/terraform-output.js.map +1 -0
  184. package/dist/facade/terraform-provider.d.ts +27 -0
  185. package/dist/facade/terraform-provider.d.ts.map +1 -0
  186. package/dist/facade/terraform-provider.js +48 -0
  187. package/dist/facade/terraform-provider.js.map +1 -0
  188. package/dist/facade/terraform-remote-state.d.ts +33 -0
  189. package/dist/facade/terraform-remote-state.d.ts.map +1 -0
  190. package/dist/facade/terraform-remote-state.js +62 -0
  191. package/dist/facade/terraform-remote-state.js.map +1 -0
  192. package/dist/facade/terraform-resource.d.ts +64 -0
  193. package/dist/facade/terraform-resource.d.ts.map +1 -0
  194. package/dist/facade/terraform-resource.js +170 -0
  195. package/dist/facade/terraform-resource.js.map +1 -0
  196. package/dist/facade/terraform-stack.d.ts +36 -0
  197. package/dist/facade/terraform-stack.d.ts.map +1 -0
  198. package/dist/facade/terraform-stack.js +161 -0
  199. package/dist/facade/terraform-stack.js.map +1 -0
  200. package/dist/facade/terraform-variable.d.ts +32 -0
  201. package/dist/facade/terraform-variable.d.ts.map +1 -0
  202. package/dist/facade/terraform-variable.js +66 -0
  203. package/dist/facade/terraform-variable.js.map +1 -0
  204. package/dist/facade/tokenization.d.ts +4 -0
  205. package/dist/facade/tokenization.d.ts.map +1 -0
  206. package/dist/facade/tokenization.js +13 -0
  207. package/dist/facade/tokenization.js.map +1 -0
  208. package/dist/facade/util.d.ts +7 -0
  209. package/dist/facade/util.d.ts.map +1 -0
  210. package/dist/facade/util.js +55 -0
  211. package/dist/facade/util.js.map +1 -0
  212. package/dist/facade/util.spec.d.ts +2 -0
  213. package/dist/facade/util.spec.d.ts.map +1 -0
  214. package/dist/facade/util.spec.js +103 -0
  215. package/dist/facade/util.spec.js.map +1 -0
  216. package/dist/index.d.ts +3 -0
  217. package/dist/index.d.ts.map +1 -0
  218. package/dist/index.js +3 -0
  219. package/dist/index.js.map +1 -0
  220. package/dist/index.spec.d.ts +2 -0
  221. package/dist/index.spec.d.ts.map +1 -0
  222. package/dist/index.spec.js +7 -0
  223. package/dist/index.spec.js.map +1 -0
  224. package/dist/integration.spec.d.ts +2 -0
  225. package/dist/integration.spec.d.ts.map +1 -0
  226. package/dist/integration.spec.js +345 -0
  227. package/dist/integration.spec.js.map +1 -0
  228. package/dist/testing/index.d.ts +40 -0
  229. package/dist/testing/index.d.ts.map +1 -0
  230. package/dist/testing/index.js +160 -0
  231. package/dist/testing/index.js.map +1 -0
  232. package/package.json +9 -7
  233. package/dist/bin/tfts.d.ts +0 -3
  234. package/dist/bin/tfts.d.ts.map +0 -1
  235. package/dist/bin/tfts.js +0 -5
  236. package/dist/bin/tfts.js.map +0 -1
  237. package/dist/src/cli/config.d.ts +0 -43
  238. package/dist/src/cli/config.d.ts.map +0 -1
  239. package/dist/src/cli/config.js +0 -63
  240. package/dist/src/cli/config.js.map +0 -1
  241. package/dist/src/cli/diff.d.ts +0 -25
  242. package/dist/src/cli/diff.d.ts.map +0 -1
  243. package/dist/src/cli/diff.js +0 -108
  244. package/dist/src/cli/diff.js.map +0 -1
  245. package/dist/src/cli/get.d.ts +0 -24
  246. package/dist/src/cli/get.d.ts.map +0 -1
  247. package/dist/src/cli/get.js +0 -86
  248. package/dist/src/cli/get.js.map +0 -1
  249. package/dist/src/cli/index.d.ts +0 -2
  250. package/dist/src/cli/index.d.ts.map +0 -1
  251. package/dist/src/cli/index.js +0 -157
  252. package/dist/src/cli/index.js.map +0 -1
  253. package/dist/src/cli/synth.d.ts +0 -32
  254. package/dist/src/cli/synth.d.ts.map +0 -1
  255. package/dist/src/cli/synth.js +0 -55
  256. package/dist/src/cli/synth.js.map +0 -1
  257. package/dist/src/codegen/__tests__/fixtures.d.ts +0 -7
  258. package/dist/src/codegen/__tests__/fixtures.d.ts.map +0 -1
  259. package/dist/src/codegen/__tests__/fixtures.js +0 -202
  260. package/dist/src/codegen/__tests__/fixtures.js.map +0 -1
  261. package/dist/src/codegen/__tests__/generator.spec.d.ts.map +0 -1
  262. package/dist/src/codegen/__tests__/generator.spec.js +0 -382
  263. package/dist/src/codegen/__tests__/generator.spec.js.map +0 -1
  264. package/dist/src/codegen/fn-generator.d.ts +0 -22
  265. package/dist/src/codegen/fn-generator.d.ts.map +0 -1
  266. package/dist/src/codegen/fn-generator.js +0 -203
  267. package/dist/src/codegen/fn-generator.js.map +0 -1
  268. package/dist/src/codegen/generator.d.ts +0 -4
  269. package/dist/src/codegen/generator.d.ts.map +0 -1
  270. package/dist/src/codegen/generator.js +0 -479
  271. package/dist/src/codegen/generator.js.map +0 -1
  272. package/dist/src/codegen/raw-schema.d.ts +0 -38
  273. package/dist/src/codegen/raw-schema.d.ts.map +0 -1
  274. package/dist/src/codegen/raw-schema.js +0 -3
  275. package/dist/src/codegen/raw-schema.js.map +0 -1
  276. package/dist/src/codegen/schema.d.ts +0 -68
  277. package/dist/src/codegen/schema.d.ts.map +0 -1
  278. package/dist/src/codegen/schema.js +0 -71
  279. package/dist/src/codegen/schema.js.map +0 -1
  280. package/dist/src/core/backend.d.ts +0 -5
  281. package/dist/src/core/backend.d.ts.map +0 -1
  282. package/dist/src/core/backend.js +0 -2
  283. package/dist/src/core/backend.js.map +0 -1
  284. package/dist/src/core/construct.d.ts +0 -42
  285. package/dist/src/core/construct.d.ts.map +0 -1
  286. package/dist/src/core/construct.js +0 -2
  287. package/dist/src/core/construct.js.map +0 -1
  288. package/dist/src/core/datasource.d.ts +0 -8
  289. package/dist/src/core/datasource.d.ts.map +0 -1
  290. package/dist/src/core/datasource.js +0 -2
  291. package/dist/src/core/datasource.js.map +0 -1
  292. package/dist/src/core/errors.d.ts +0 -29
  293. package/dist/src/core/errors.d.ts.map +0 -1
  294. package/dist/src/core/errors.js +0 -2
  295. package/dist/src/core/errors.js.map +0 -1
  296. package/dist/src/core/local.d.ts +0 -4
  297. package/dist/src/core/local.d.ts.map +0 -1
  298. package/dist/src/core/local.js +0 -2
  299. package/dist/src/core/local.js.map +0 -1
  300. package/dist/src/core/logical-id.d.ts +0 -3
  301. package/dist/src/core/logical-id.d.ts.map +0 -1
  302. package/dist/src/core/logical-id.js +0 -48
  303. package/dist/src/core/logical-id.js.map +0 -1
  304. package/dist/src/core/output.d.ts +0 -8
  305. package/dist/src/core/output.d.ts.map +0 -1
  306. package/dist/src/core/output.js +0 -2
  307. package/dist/src/core/output.js.map +0 -1
  308. package/dist/src/core/provider.d.ts +0 -7
  309. package/dist/src/core/provider.d.ts.map +0 -1
  310. package/dist/src/core/provider.js +0 -2
  311. package/dist/src/core/provider.js.map +0 -1
  312. package/dist/src/core/resource.d.ts +0 -30
  313. package/dist/src/core/resource.d.ts.map +0 -1
  314. package/dist/src/core/resource.js +0 -2
  315. package/dist/src/core/resource.js.map +0 -1
  316. package/dist/src/core/synthesize.d.ts +0 -78
  317. package/dist/src/core/synthesize.d.ts.map +0 -1
  318. package/dist/src/core/synthesize.js +0 -293
  319. package/dist/src/core/synthesize.js.map +0 -1
  320. package/dist/src/core/synthesize.spec.d.ts.map +0 -1
  321. package/dist/src/core/synthesize.spec.js +0 -506
  322. package/dist/src/core/synthesize.spec.js.map +0 -1
  323. package/dist/src/core/terraform-json.d.ts +0 -36
  324. package/dist/src/core/terraform-json.d.ts.map +0 -1
  325. package/dist/src/core/terraform-json.js.map +0 -1
  326. package/dist/src/core/tokens.d.ts +0 -62
  327. package/dist/src/core/tokens.d.ts.map +0 -1
  328. package/dist/src/core/tokens.js +0 -133
  329. package/dist/src/core/tokens.js.map +0 -1
  330. package/dist/src/core/tokens.spec.js +0 -119
  331. package/dist/src/core/tokens.spec.js.map +0 -1
  332. package/dist/src/core/tree.d.ts +0 -6
  333. package/dist/src/core/tree.d.ts.map +0 -1
  334. package/dist/src/core/tree.js +0 -52
  335. package/dist/src/core/tree.js.map +0 -1
  336. package/dist/src/core/tree.spec.js +0 -138
  337. package/dist/src/core/tree.spec.js.map +0 -1
  338. package/dist/src/core/validate.d.ts +0 -5
  339. package/dist/src/core/validate.d.ts.map +0 -1
  340. package/dist/src/core/validate.js +0 -94
  341. package/dist/src/core/validate.js.map +0 -1
  342. package/dist/src/core/validate.spec.d.ts.map +0 -1
  343. package/dist/src/core/validate.spec.js +0 -69
  344. package/dist/src/core/validate.spec.js.map +0 -1
  345. package/dist/src/core/variable.d.ts +0 -14
  346. package/dist/src/core/variable.d.ts.map +0 -1
  347. package/dist/src/core/variable.js +0 -2
  348. package/dist/src/core/variable.js.map +0 -1
  349. package/dist/src/facade/app.d.ts +0 -23
  350. package/dist/src/facade/app.d.ts.map +0 -1
  351. package/dist/src/facade/app.js +0 -55
  352. package/dist/src/facade/app.js.map +0 -1
  353. package/dist/src/facade/backends/backend.d.ts +0 -7
  354. package/dist/src/facade/backends/backend.d.ts.map +0 -1
  355. package/dist/src/facade/backends/backend.js +0 -15
  356. package/dist/src/facade/backends/backend.js.map +0 -1
  357. package/dist/src/facade/backends/gcs.d.ts +0 -18
  358. package/dist/src/facade/backends/gcs.d.ts.map +0 -1
  359. package/dist/src/facade/backends/gcs.js +0 -28
  360. package/dist/src/facade/backends/gcs.js.map +0 -1
  361. package/dist/src/facade/backends/index.d.ts +0 -6
  362. package/dist/src/facade/backends/index.d.ts.map +0 -1
  363. package/dist/src/facade/backends/index.js +0 -6
  364. package/dist/src/facade/backends/index.js.map +0 -1
  365. package/dist/src/facade/backends/local.d.ts +0 -12
  366. package/dist/src/facade/backends/local.d.ts.map +0 -1
  367. package/dist/src/facade/backends/local.js +0 -16
  368. package/dist/src/facade/backends/local.js.map +0 -1
  369. package/dist/src/facade/backends/remote.d.ts +0 -22
  370. package/dist/src/facade/backends/remote.d.ts.map +0 -1
  371. package/dist/src/facade/backends/remote.js +0 -23
  372. package/dist/src/facade/backends/remote.js.map +0 -1
  373. package/dist/src/facade/backends/s3.d.ts +0 -24
  374. package/dist/src/facade/backends/s3.d.ts.map +0 -1
  375. package/dist/src/facade/backends/s3.js +0 -39
  376. package/dist/src/facade/backends/s3.js.map +0 -1
  377. package/dist/src/facade/construct.d.ts +0 -9
  378. package/dist/src/facade/construct.d.ts.map +0 -1
  379. package/dist/src/facade/construct.js +0 -32
  380. package/dist/src/facade/construct.js.map +0 -1
  381. package/dist/src/facade/datasource.d.ts +0 -19
  382. package/dist/src/facade/datasource.d.ts.map +0 -1
  383. package/dist/src/facade/datasource.js +0 -33
  384. package/dist/src/facade/datasource.js.map +0 -1
  385. package/dist/src/facade/facade.spec.d.ts +0 -2
  386. package/dist/src/facade/facade.spec.d.ts.map +0 -1
  387. package/dist/src/facade/facade.spec.js +0 -434
  388. package/dist/src/facade/facade.spec.js.map +0 -1
  389. package/dist/src/facade/local.d.ts +0 -15
  390. package/dist/src/facade/local.d.ts.map +0 -1
  391. package/dist/src/facade/local.js +0 -27
  392. package/dist/src/facade/local.js.map +0 -1
  393. package/dist/src/facade/output.d.ts +0 -18
  394. package/dist/src/facade/output.d.ts.map +0 -1
  395. package/dist/src/facade/output.js +0 -29
  396. package/dist/src/facade/output.js.map +0 -1
  397. package/dist/src/facade/provider.d.ts +0 -13
  398. package/dist/src/facade/provider.d.ts.map +0 -1
  399. package/dist/src/facade/provider.js +0 -25
  400. package/dist/src/facade/provider.js.map +0 -1
  401. package/dist/src/facade/resource.d.ts +0 -34
  402. package/dist/src/facade/resource.d.ts.map +0 -1
  403. package/dist/src/facade/resource.js +0 -58
  404. package/dist/src/facade/resource.js.map +0 -1
  405. package/dist/src/facade/stack.d.ts +0 -11
  406. package/dist/src/facade/stack.d.ts.map +0 -1
  407. package/dist/src/facade/stack.js +0 -28
  408. package/dist/src/facade/stack.js.map +0 -1
  409. package/dist/src/facade/variable.d.ts +0 -27
  410. package/dist/src/facade/variable.d.ts.map +0 -1
  411. package/dist/src/facade/variable.js +0 -45
  412. package/dist/src/facade/variable.js.map +0 -1
  413. package/dist/src/generated/fn.d.ts +0 -599
  414. package/dist/src/generated/fn.d.ts.map +0 -1
  415. package/dist/src/generated/fn.js +0 -998
  416. package/dist/src/generated/fn.js.map +0 -1
  417. package/dist/src/index.d.ts +0 -35
  418. package/dist/src/index.d.ts.map +0 -1
  419. package/dist/src/index.js +0 -23
  420. package/dist/src/index.js.map +0 -1
  421. /package/dist/{src/codegen/__tests__ → codegen}/generator.spec.d.ts +0 -0
  422. /package/dist/{src/core → core}/synthesize.spec.d.ts +0 -0
  423. /package/dist/{src/core → core}/terraform-json.js +0 -0
  424. /package/dist/{src/core → core}/tokens.spec.d.ts +0 -0
  425. /package/dist/{src/core → core}/tree.spec.d.ts +0 -0
  426. /package/dist/{src/core → core}/validate.spec.d.ts +0 -0
@@ -0,0 +1,129 @@
1
+ export class Node {
2
+ _construct;
3
+ _children = new Map();
4
+ _metadata = [];
5
+ _validations = [];
6
+ _context = {};
7
+ constructor(construct) {
8
+ this._construct = construct;
9
+ }
10
+ get id() {
11
+ return this._construct._id;
12
+ }
13
+ get path() {
14
+ return this._construct._path.join("/");
15
+ }
16
+ get scope() {
17
+ return this._construct._scope;
18
+ }
19
+ get scopes() {
20
+ const result = [];
21
+ let current = this._construct;
22
+ while (current !== undefined) {
23
+ result.unshift(current);
24
+ current = current._scope;
25
+ }
26
+ return result;
27
+ }
28
+ get children() {
29
+ return Array.from(this._children.values());
30
+ }
31
+ get metadata() {
32
+ return this._metadata.map((m) => ({ ...m }));
33
+ }
34
+ addChild(child) {
35
+ if (this._children.has(child._id)) {
36
+ throw new Error(`There is already a construct with id '${child._id}' in ${this.path}`);
37
+ }
38
+ this._children.set(child._id, child);
39
+ }
40
+ tryFindChild(id) {
41
+ return this._children.get(id);
42
+ }
43
+ findChild(id) {
44
+ const child = this.tryFindChild(id);
45
+ if (child === undefined) {
46
+ throw new Error(`No construct with id '${id}' found in ${this.path}`);
47
+ }
48
+ return child;
49
+ }
50
+ findAll(order = ConstructOrder.PREORDER) {
51
+ const result = [];
52
+ const visit = (construct) => {
53
+ if (order === ConstructOrder.PREORDER) {
54
+ result.push(construct);
55
+ }
56
+ for (const child of construct.node.children) {
57
+ visit(child);
58
+ }
59
+ if (order === ConstructOrder.POSTORDER) {
60
+ result.push(construct);
61
+ }
62
+ };
63
+ visit(this._construct);
64
+ return result;
65
+ }
66
+ setContext(key, value) {
67
+ this._context[key] = value;
68
+ }
69
+ tryGetContext(key) {
70
+ if (Object.prototype.hasOwnProperty.call(this._context, key)) {
71
+ return this._context[key];
72
+ }
73
+ return this.scope?.node.tryGetContext(key);
74
+ }
75
+ getContext(key) {
76
+ const value = this.tryGetContext(key);
77
+ if (value === undefined) {
78
+ throw new Error(`Context key '${key}' not found`);
79
+ }
80
+ return value;
81
+ }
82
+ addMetadata(type, data) {
83
+ this._metadata.push({ type, data });
84
+ }
85
+ addValidation(validation) {
86
+ this._validations.push(validation);
87
+ }
88
+ validate() {
89
+ const errors = [];
90
+ for (const validation of this._validations) {
91
+ errors.push(...validation.validate());
92
+ }
93
+ return errors;
94
+ }
95
+ }
96
+ export var ConstructOrder;
97
+ (function (ConstructOrder) {
98
+ ConstructOrder["PREORDER"] = "preorder";
99
+ ConstructOrder["POSTORDER"] = "postorder";
100
+ })(ConstructOrder || (ConstructOrder = {}));
101
+ export class Construct {
102
+ _id;
103
+ _path;
104
+ _scope;
105
+ node;
106
+ constructor(scope, id) {
107
+ const sanitizedId = id.replace(/\//g, "--");
108
+ this._id = sanitizedId;
109
+ this._scope = scope;
110
+ if (scope !== undefined) {
111
+ const scopePath = scope._path ?? [];
112
+ this._path = [...scopePath, sanitizedId];
113
+ if (scope._path !== undefined) {
114
+ scope.node.addChild(this);
115
+ }
116
+ }
117
+ else {
118
+ this._path = sanitizedId !== "" ? [sanitizedId] : [];
119
+ }
120
+ this.node = new Node(this);
121
+ }
122
+ toString() {
123
+ return this.node.path;
124
+ }
125
+ }
126
+ export function dependable(target) {
127
+ return target.fqn;
128
+ }
129
+ //# sourceMappingURL=construct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"construct.js","sourceRoot":"","sources":["../../src/facade/construct.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Construct } from "./construct.js";
2
+ import type { ElementKind } from "./terraform-element.js";
3
+ import { TerraformElement } from "./terraform-element.js";
4
+ import type { TerraformProvider } from "./terraform-provider.js";
5
+ export type IImportableConfig = {
6
+ terraformResourceType: string;
7
+ importId: string;
8
+ provider?: TerraformProvider;
9
+ };
10
+ export declare class ImportableResource extends TerraformElement {
11
+ readonly kind: ElementKind;
12
+ private readonly config;
13
+ constructor(scope: Construct, name: string, config: IImportableConfig);
14
+ toTerraform(): Record<string, unknown>;
15
+ toMetadata(): Record<string, unknown>;
16
+ }
17
+ //# sourceMappingURL=importable-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importable-resource.d.ts","sourceRoot":"","sources":["../../src/facade/importable-resource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAY;IAEtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;gBAE/B,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;IAK5D,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAatC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAK/C"}
@@ -0,0 +1,27 @@
1
+ import { TerraformElement } from "./terraform-element.js";
2
+ export class ImportableResource extends TerraformElement {
3
+ kind = "import";
4
+ config;
5
+ constructor(scope, name, config) {
6
+ super(scope, name, config.terraformResourceType);
7
+ this.config = config;
8
+ }
9
+ toTerraform() {
10
+ const expectedResourceAddress = `${this.config.terraformResourceType}.${this.friendlyUniqueId}`;
11
+ return {
12
+ import: [
13
+ {
14
+ to: expectedResourceAddress,
15
+ id: this.config.importId,
16
+ provider: this.config.provider?.fqn,
17
+ },
18
+ ],
19
+ };
20
+ }
21
+ toMetadata() {
22
+ return {
23
+ importsGeneratingConfiguration: [this.friendlyUniqueId],
24
+ };
25
+ }
26
+ }
27
+ //# sourceMappingURL=importable-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importable-resource.js","sourceRoot":"","sources":["../../src/facade/importable-resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IAC7C,IAAI,GAAgB,QAAQ,CAAC;IAErB,MAAM,CAAoB;IAE3C,YAAY,KAAgB,EAAE,IAAY,EAAE,MAAyB;QACnE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEQ,WAAW;QAClB,MAAM,uBAAuB,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChG,OAAO;YACL,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,uBAAuB;oBAC3B,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBACxB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG;iBACpC;aACF;SACF,CAAC;IACJ,CAAC;IAEQ,UAAU;QACjB,OAAO;YACL,8BAA8B,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACxD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ export * from "./annotations.js";
2
+ export * from "./app.js";
3
+ export * from "./aspects.js";
4
+ export * from "./backends/index.js";
5
+ export * from "./complex-computed-list.js";
6
+ export * from "./construct.js";
7
+ export * from "./importable-resource.js";
8
+ export * from "./runtime.js";
9
+ export * from "./terraform-addressable.js";
10
+ export * from "./terraform-asset.js";
11
+ export * from "./terraform-backend.js";
12
+ export * from "./terraform-data-source.js";
13
+ export * from "./terraform-element.js";
14
+ export * from "./terraform-functions.js";
15
+ export * from "./terraform-hcl-module.js";
16
+ export * from "./terraform-iterator.js";
17
+ export * from "./terraform-local.js";
18
+ export * from "./terraform-module.js";
19
+ export * from "./terraform-output.js";
20
+ export * from "./terraform-provider.js";
21
+ export * from "./terraform-remote-state.js";
22
+ export * from "./terraform-resource.js";
23
+ export * from "./terraform-stack.js";
24
+ export * from "./terraform-variable.js";
25
+ export * from "./tokenization.js";
26
+ export * from "./util.js";
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/facade/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,27 @@
1
+ export * from "./annotations.js";
2
+ export * from "./app.js";
3
+ export * from "./aspects.js";
4
+ export * from "./backends/index.js";
5
+ export * from "./complex-computed-list.js";
6
+ export * from "./construct.js";
7
+ export * from "./importable-resource.js";
8
+ export * from "./runtime.js";
9
+ export * from "./terraform-addressable.js";
10
+ export * from "./terraform-asset.js";
11
+ export * from "./terraform-backend.js";
12
+ export * from "./terraform-data-source.js";
13
+ export * from "./terraform-element.js";
14
+ export * from "./terraform-functions.js";
15
+ export * from "./terraform-hcl-module.js";
16
+ export * from "./terraform-iterator.js";
17
+ export * from "./terraform-local.js";
18
+ export * from "./terraform-module.js";
19
+ export * from "./terraform-output.js";
20
+ export * from "./terraform-provider.js";
21
+ export * from "./terraform-remote-state.js";
22
+ export * from "./terraform-resource.js";
23
+ export * from "./terraform-stack.js";
24
+ export * from "./terraform-variable.js";
25
+ export * from "./tokenization.js";
26
+ export * from "./util.js";
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/facade/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ export type Mapper = (x: unknown) => unknown;
2
+ export declare const stringToTerraform: Mapper;
3
+ export declare const booleanToTerraform: Mapper;
4
+ export declare const anyToTerraform: Mapper;
5
+ export declare const numberToTerraform: Mapper;
6
+ export declare const stringToHclTerraform: Mapper;
7
+ export declare const booleanToHclTerraform: Mapper;
8
+ export declare const anyToHclTerraform: Mapper;
9
+ export declare const numberToHclTerraform: Mapper;
10
+ export declare function listMapper(elementMapper: Mapper, _isBlockType?: boolean): Mapper;
11
+ export declare function listMapperHcl(elementMapper: Mapper, _isBlockType?: boolean): Mapper;
12
+ export declare function hashMapper(elementMapper: Mapper): Mapper;
13
+ export declare function hashMapperHcl(elementMapper: Mapper): Mapper;
14
+ export declare function canInspect(x: unknown): boolean;
15
+ export declare function isComplexElement(_x: unknown): boolean;
16
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/facade/runtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;AAM7C,eAAO,MAAM,iBAAiB,EAAE,MAAiB,CAAC;AAClD,eAAO,MAAM,kBAAkB,EAAE,MAAiB,CAAC;AACnD,eAAO,MAAM,cAAc,EAAE,MAAiB,CAAC;AAC/C,eAAO,MAAM,iBAAiB,EAAE,MAAiB,CAAC;AAElD,eAAO,MAAM,oBAAoB,EAAE,MAAiB,CAAC;AACrD,eAAO,MAAM,qBAAqB,EAAE,MAAiB,CAAC;AACtD,eAAO,MAAM,iBAAiB,EAAE,MAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,EAAE,MAAiB,CAAC;AAErD,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAUhF;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAUnF;AAED,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAiBxD;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAE9C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAErD"}
@@ -0,0 +1,76 @@
1
+ function identity(x) {
2
+ return x;
3
+ }
4
+ export const stringToTerraform = identity;
5
+ export const booleanToTerraform = identity;
6
+ export const anyToTerraform = identity;
7
+ export const numberToTerraform = identity;
8
+ export const stringToHclTerraform = identity;
9
+ export const booleanToHclTerraform = identity;
10
+ export const anyToHclTerraform = identity;
11
+ export const numberToHclTerraform = identity;
12
+ export function listMapper(elementMapper, _isBlockType) {
13
+ return (x) => {
14
+ if (!canInspect(x)) {
15
+ return x;
16
+ }
17
+ if (!Array.isArray(x)) {
18
+ return x;
19
+ }
20
+ return x.map(elementMapper);
21
+ };
22
+ }
23
+ export function listMapperHcl(elementMapper, _isBlockType) {
24
+ return (x) => {
25
+ if (!canInspect(x)) {
26
+ return x;
27
+ }
28
+ if (!Array.isArray(x)) {
29
+ return x;
30
+ }
31
+ return x.map(elementMapper);
32
+ };
33
+ }
34
+ export function hashMapper(elementMapper) {
35
+ return (x) => {
36
+ if (!canInspect(x)) {
37
+ return x;
38
+ }
39
+ if (typeof x === "string") {
40
+ return x;
41
+ }
42
+ if (typeof x !== "object" || x === null) {
43
+ return x;
44
+ }
45
+ const ret = {};
46
+ for (const key of Object.keys(x)) {
47
+ ret[key] = elementMapper(x[key]);
48
+ }
49
+ return ret;
50
+ };
51
+ }
52
+ export function hashMapperHcl(elementMapper) {
53
+ return (x) => {
54
+ if (!canInspect(x)) {
55
+ return x;
56
+ }
57
+ if (typeof x === "string") {
58
+ return x;
59
+ }
60
+ if (typeof x !== "object" || x === null) {
61
+ return x;
62
+ }
63
+ const ret = {};
64
+ for (const key of Object.keys(x)) {
65
+ ret[key] = elementMapper(x[key]);
66
+ }
67
+ return ret;
68
+ };
69
+ }
70
+ export function canInspect(x) {
71
+ return x !== null && x !== undefined;
72
+ }
73
+ export function isComplexElement(_x) {
74
+ return false;
75
+ }
76
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/facade/runtime.ts"],"names":[],"mappings":"AAEA,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAW,QAAQ,CAAC;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAW,QAAQ,CAAC;AACnD,MAAM,CAAC,MAAM,cAAc,GAAW,QAAQ,CAAC;AAC/C,MAAM,CAAC,MAAM,iBAAiB,GAAW,QAAQ,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAW,QAAQ,CAAC;AACrD,MAAM,CAAC,MAAM,qBAAqB,GAAW,QAAQ,CAAC;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAW,QAAQ,CAAC;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAW,QAAQ,CAAC;AAErD,MAAM,UAAU,UAAU,CAAC,aAAqB,EAAE,YAAsB;IACtE,OAAO,CAAC,CAAU,EAAW,EAAE;QAC7B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAqB,EAAE,YAAsB;IACzE,OAAO,CAAC,CAAU,EAAW,EAAE;QAC7B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,aAAqB;IAC9C,OAAO,CAAC,CAAU,EAAW,EAAE;QAC7B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAE,CAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,aAAqB;IACjD,OAAO,CAAC,CAAU,EAAW,EAAE;QAC7B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAE,CAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAU;IACnC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAW;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { TerraformElement } from "./terraform-element.js";
2
+ export type StackLike = TerraformElement & {
3
+ prepareStack(): void;
4
+ synthesize(): void;
5
+ addDependency(dependency: StackLike): void;
6
+ registerOutgoingCrossStackReference(identifier: string): string;
7
+ registerIncomingCrossStackReference(fromStack: StackLike): {
8
+ getString(output: string): string;
9
+ };
10
+ };
11
+ export declare function registerStack(element: object, stack: StackLike): void;
12
+ export declare function getStack(element: object): StackLike | undefined;
13
+ //# sourceMappingURL=stack-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-registry.d.ts","sourceRoot":"","sources":["../../src/facade/stack-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG;IACzC,YAAY,IAAI,IAAI,CAAC;IACrB,UAAU,IAAI,IAAI,CAAC;IACnB,aAAa,CAAC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3C,mCAAmC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAChE,mCAAmC,CAAC,SAAS,EAAE,SAAS,GAAG;QACzD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;KACnC,CAAC;CACH,CAAC;AAIF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAErE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE/D"}
@@ -0,0 +1,8 @@
1
+ const stackRegistry = new WeakMap();
2
+ export function registerStack(element, stack) {
3
+ stackRegistry.set(element, stack);
4
+ }
5
+ export function getStack(element) {
6
+ return stackRegistry.get(element);
7
+ }
8
+ //# sourceMappingURL=stack-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-registry.js","sourceRoot":"","sources":["../../src/facade/stack-registry.ts"],"names":[],"mappings":"AAYA,MAAM,aAAa,GAAG,IAAI,OAAO,EAAqB,CAAC;AAEvD,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAgB;IAC7D,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { IResolvable } from "../core/tokens.js";
2
+ export type ITerraformDependable = {
3
+ readonly fqn: string;
4
+ readonly rawFqn: string;
5
+ };
6
+ export type IInterpolatingParent = {
7
+ interpolationForAttribute(terraformAttribute: string): IResolvable;
8
+ };
9
+ //# sourceMappingURL=terraform-addressable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-addressable.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-addressable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,yBAAyB,CAAC,kBAAkB,EAAE,MAAM,GAAG,WAAW,CAAC;CACpE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terraform-addressable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-addressable.js","sourceRoot":"","sources":["../../src/facade/terraform-addressable.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { Construct } from "./construct.js";
2
+ export declare enum AssetType {
3
+ FILE = 0,
4
+ DIRECTORY = 1,
5
+ ARCHIVE = 2
6
+ }
7
+ export type TerraformAssetConfig = {
8
+ readonly path: string;
9
+ readonly type?: AssetType;
10
+ readonly assetHash?: string;
11
+ };
12
+ export declare class TerraformAsset extends Construct {
13
+ private _stack;
14
+ private _sourcePath;
15
+ readonly assetHash: string;
16
+ readonly type: AssetType;
17
+ constructor(scope: Construct, id: string, config: TerraformAssetConfig);
18
+ private get namedFolder();
19
+ get path(): string;
20
+ get fileName(): string;
21
+ get sourcePath(): string;
22
+ private computeHash;
23
+ private hashDirectory;
24
+ copyToOutputDir(outputDir: string): void;
25
+ private copyDirectory;
26
+ }
27
+ //# sourceMappingURL=terraform-asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-asset.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-asset.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM3C,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,SAAS,IAAI;IACb,OAAO,IAAI;CACZ;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,qBAAa,cAAe,SAAQ,SAAS;IAC3C,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAEb,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB;IA2BtE,OAAO,KAAK,WAAW,GAEtB;IAED,IAAI,IAAI,IAAI,MAAM,CAMjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAYrB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,aAAa;IAcrB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAkBxC,OAAO,CAAC,aAAa;CAatB"}
@@ -0,0 +1,118 @@
1
+ import { createHash } from "node:crypto";
2
+ import { copyFileSync, mkdirSync, readdirSync, readFileSync, statSync } from "node:fs";
3
+ import { basename, dirname, isAbsolute, join, posix, resolve } from "node:path";
4
+ import { Construct } from "./construct.js";
5
+ import { TerraformStack } from "./terraform-stack.js";
6
+ const ASSETS_DIRECTORY = "assets";
7
+ const ARCHIVE_NAME = "archive.zip";
8
+ export var AssetType;
9
+ (function (AssetType) {
10
+ AssetType[AssetType["FILE"] = 0] = "FILE";
11
+ AssetType[AssetType["DIRECTORY"] = 1] = "DIRECTORY";
12
+ AssetType[AssetType["ARCHIVE"] = 2] = "ARCHIVE";
13
+ })(AssetType || (AssetType = {}));
14
+ export class TerraformAsset extends Construct {
15
+ _stack;
16
+ _sourcePath;
17
+ assetHash;
18
+ type;
19
+ constructor(scope, id, config) {
20
+ super(scope, id);
21
+ this._stack = TerraformStack.of(this);
22
+ if (isAbsolute(config.path)) {
23
+ this._sourcePath = config.path;
24
+ }
25
+ else {
26
+ const cwd = process.cwd();
27
+ this._sourcePath = resolve(cwd, config.path);
28
+ }
29
+ const stat = statSync(this._sourcePath);
30
+ const inferredType = stat.isFile() ? AssetType.FILE : AssetType.DIRECTORY;
31
+ this.type = config.type ?? inferredType;
32
+ if (stat.isFile() && this.type !== AssetType.FILE) {
33
+ throw new Error(`Asset ${id} is a file but type is set to directory`);
34
+ }
35
+ if (!stat.isFile() && this.type === AssetType.FILE) {
36
+ throw new Error(`Asset ${id} is a directory but type is set to file`);
37
+ }
38
+ this.assetHash = config.assetHash ?? this.computeHash(this._sourcePath);
39
+ }
40
+ get namedFolder() {
41
+ return posix.join(ASSETS_DIRECTORY, this._stack.getLogicalId(this));
42
+ }
43
+ get path() {
44
+ return posix.join(this.namedFolder, this.assetHash, this.type === AssetType.DIRECTORY ? "" : this.fileName);
45
+ }
46
+ get fileName() {
47
+ switch (this.type) {
48
+ case AssetType.ARCHIVE:
49
+ return ARCHIVE_NAME;
50
+ case AssetType.FILE:
51
+ case AssetType.DIRECTORY:
52
+ return basename(this._sourcePath);
53
+ default: {
54
+ const exhaustiveCheck = this.type;
55
+ throw new Error(`Unexpected asset type: ${exhaustiveCheck}`);
56
+ }
57
+ }
58
+ }
59
+ get sourcePath() {
60
+ return this._sourcePath;
61
+ }
62
+ computeHash(filePath) {
63
+ const hash = createHash("sha256");
64
+ const stat = statSync(filePath);
65
+ if (stat.isFile()) {
66
+ const content = readFileSync(filePath);
67
+ hash.update(content);
68
+ }
69
+ else {
70
+ this.hashDirectory(filePath, hash);
71
+ }
72
+ return hash.digest("hex").slice(0, 16);
73
+ }
74
+ hashDirectory(dirPath, hash) {
75
+ const entries = readdirSync(dirPath, { withFileTypes: true });
76
+ for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
77
+ const fullPath = join(dirPath, entry.name);
78
+ hash.update(entry.name);
79
+ if (entry.isFile()) {
80
+ const content = readFileSync(fullPath);
81
+ hash.update(content);
82
+ }
83
+ else if (entry.isDirectory()) {
84
+ this.hashDirectory(fullPath, hash);
85
+ }
86
+ }
87
+ }
88
+ copyToOutputDir(outputDir) {
89
+ const targetPath = join(outputDir, this.path);
90
+ const targetDir = this.type === AssetType.DIRECTORY ? targetPath : dirname(targetPath);
91
+ mkdirSync(targetDir, { recursive: true });
92
+ switch (this.type) {
93
+ case AssetType.FILE:
94
+ copyFileSync(this._sourcePath, targetPath);
95
+ break;
96
+ case AssetType.DIRECTORY:
97
+ this.copyDirectory(this._sourcePath, targetPath);
98
+ break;
99
+ case AssetType.ARCHIVE:
100
+ throw new Error("Archive type requires additional implementation");
101
+ }
102
+ }
103
+ copyDirectory(src, dest) {
104
+ mkdirSync(dest, { recursive: true });
105
+ const entries = readdirSync(src, { withFileTypes: true });
106
+ for (const entry of entries) {
107
+ const srcPath = join(src, entry.name);
108
+ const destPath = join(dest, entry.name);
109
+ if (entry.isDirectory()) {
110
+ this.copyDirectory(srcPath, destPath);
111
+ }
112
+ else {
113
+ copyFileSync(srcPath, destPath);
114
+ }
115
+ }
116
+ }
117
+ }
118
+ //# sourceMappingURL=terraform-asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-asset.js","sourceRoot":"","sources":["../../src/facade/terraform-asset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { Construct } from "./construct.js";
2
+ import type { ElementKind } from "./terraform-element.js";
3
+ import { TerraformElement } from "./terraform-element.js";
4
+ import type { TerraformRemoteState } from "./terraform-remote-state.js";
5
+ export declare abstract class TerraformBackend extends TerraformElement {
6
+ readonly kind: ElementKind;
7
+ constructor(scope: Construct, id: string);
8
+ abstract getRemoteStateDataSource(scope: Construct, name: string, fromStack: string): TerraformRemoteState;
9
+ protected synthesizeAttributes(): Record<string, unknown>;
10
+ }
11
+ export type LocalBackendConfig = {
12
+ readonly path?: string;
13
+ readonly workspaceDir?: string;
14
+ };
15
+ export declare class LocalBackend extends TerraformBackend {
16
+ private readonly statePath?;
17
+ private readonly workspaceDir?;
18
+ constructor(scope: Construct, config: LocalBackendConfig);
19
+ getRemoteStateDataSource(scope: Construct, name: string, _fromStack: string): TerraformRemoteState;
20
+ toTerraform(): Record<string, unknown>;
21
+ protected synthesizeAttributes(): Record<string, unknown>;
22
+ }
23
+ //# sourceMappingURL=terraform-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-backend.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,8BAAsB,gBAAiB,SAAQ,gBAAgB;IAC7D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;gBAE3B,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM;IAIxC,QAAQ,CAAC,wBAAwB,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,oBAAoB;IAEvB,SAAS,CAAC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG1D;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;gBAE3B,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB;IAM/C,wBAAwB,CAC/B,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,oBAAoB;IAOd,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAiB5B,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUnE"}