tfts 0.2.13 → 0.3.0

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 +2 -0
  11. package/dist/cli/main.d.ts.map +1 -0
  12. package/dist/cli/main.js +85 -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,53 @@
1
+ import { TerraformElement } from "./terraform-element.js";
2
+ export class TerraformBackend extends TerraformElement {
3
+ kind = "backend";
4
+ constructor(scope, id) {
5
+ super(scope, id);
6
+ }
7
+ synthesizeAttributes() {
8
+ return {};
9
+ }
10
+ }
11
+ export class LocalBackend extends TerraformBackend {
12
+ statePath;
13
+ workspaceDir;
14
+ constructor(scope, config) {
15
+ super(scope, "backend");
16
+ this.statePath = config.path;
17
+ this.workspaceDir = config.workspaceDir;
18
+ }
19
+ getRemoteStateDataSource(scope, name, _fromStack) {
20
+ return new DataTerraformRemoteStateLocal(scope, name, {
21
+ path: this.statePath,
22
+ workspaceDir: this.workspaceDir,
23
+ });
24
+ }
25
+ toTerraform() {
26
+ const config = {};
27
+ if (this.statePath !== undefined && this.statePath !== "") {
28
+ config["path"] = this.statePath;
29
+ }
30
+ if (this.workspaceDir !== undefined && this.workspaceDir !== "") {
31
+ config["workspace_dir"] = this.workspaceDir;
32
+ }
33
+ return {
34
+ terraform: {
35
+ backend: {
36
+ local: config,
37
+ },
38
+ },
39
+ };
40
+ }
41
+ synthesizeAttributes() {
42
+ const result = {};
43
+ if (this.statePath !== undefined && this.statePath !== "") {
44
+ result["path"] = this.statePath;
45
+ }
46
+ if (this.workspaceDir !== undefined && this.workspaceDir !== "") {
47
+ result["workspace_dir"] = this.workspaceDir;
48
+ }
49
+ return result;
50
+ }
51
+ }
52
+ import { DataTerraformRemoteStateLocal } from "./terraform-remote-state.js";
53
+ //# sourceMappingURL=terraform-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-backend.js","sourceRoot":"","sources":["../../src/facade/terraform-backend.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,MAAM,OAAgB,gBAAiB,SAAQ,gBAAgB;IACpD,IAAI,GAAgB,SAAS,CAAC;IAEvC,YAAY,KAAgB,EAAE,EAAU;QACtC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,CAAC;IAQS,oBAAoB;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAOD,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAC/B,SAAS,CAAU;IACnB,YAAY,CAAU;IAEvC,YAAY,KAAgB,EAAE,MAA0B;QACtD,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC1C,CAAC;IAEQ,wBAAwB,CAC/B,KAAgB,EAChB,IAAY,EACZ,UAAkB;QAElB,OAAO,IAAI,6BAA6B,CAAC,KAAK,EAAE,IAAI,EAAE;YACpD,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAEQ,WAAW;QAClB,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;YAChE,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,CAAC;QACD,OAAO;YACL,SAAS,EAAE;gBACT,OAAO,EAAE;oBACP,KAAK,EAAE,MAAM;iBACd;aACF;SACF,CAAC;IACJ,CAAC;IAEkB,oBAAoB;QACrC,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE,CAAC;YAChE,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,45 @@
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 { ITerraformIterator, TerraformCount } from "./terraform-iterator.js";
5
+ import type { TerraformProvider } from "./terraform-provider.js";
6
+ import type { ITerraformDependable } from "./terraform-resource.js";
7
+ export type TerraformDataSourceMetaArguments = {
8
+ readonly dependsOn?: ITerraformDependable[];
9
+ readonly count?: number | TerraformCount;
10
+ readonly provider?: TerraformProvider;
11
+ readonly forEach?: ITerraformIterator;
12
+ };
13
+ export type TerraformDataSourceConfig = TerraformDataSourceMetaArguments & {
14
+ readonly terraformResourceType: string;
15
+ readonly terraformGeneratorMetadata?: {
16
+ readonly providerName: string;
17
+ readonly providerVersion?: string;
18
+ };
19
+ };
20
+ export declare class TerraformDataSource extends TerraformElement implements ITerraformDependable {
21
+ readonly kind: ElementKind;
22
+ readonly terraformResourceType: string;
23
+ readonly terraformGeneratorMetadata?: {
24
+ readonly providerName: string;
25
+ readonly providerVersion?: string;
26
+ };
27
+ dependsOn?: string[];
28
+ count?: number | TerraformCount;
29
+ provider?: TerraformProvider;
30
+ forEach?: ITerraformIterator;
31
+ constructor(scope: Construct, id: string, config: TerraformDataSourceConfig);
32
+ interpolationForAttribute(attribute: string): string;
33
+ getStringAttribute(attribute: string): string;
34
+ getNumberAttribute(attribute: string): number;
35
+ getListAttribute(attribute: string): string[];
36
+ getBooleanAttribute(attribute: string): boolean;
37
+ getStringMapAttribute(attribute: string): Record<string, string>;
38
+ getNumberMapAttribute(attribute: string): Record<string, number>;
39
+ getBooleanMapAttribute(attribute: string): Record<string, boolean>;
40
+ getNumberListAttribute(attribute: string): number[];
41
+ protected synthesizeAttributes(): Record<string, unknown>;
42
+ private get terraformMetaArguments();
43
+ toTerraform(): Record<string, unknown>;
44
+ }
45
+ //# sourceMappingURL=terraform-data-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-data-source.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-data-source.ts"],"names":[],"mappings":"AACA,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,kBAAkB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,MAAM,gCAAgC,GAAG;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,gCAAgC,GAAG;IACzE,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,0BAA0B,CAAC,EAAE;QACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KACnC,CAAC;CACH,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,gBAAiB,YAAW,oBAAoB;IACvF,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAiB;IAE3C,SAAgB,qBAAqB,EAAE,MAAM,CAAC;IAC9C,SAAgB,0BAA0B,CAAC,EAAE;QAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KACnC,CAAC;IAEK,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,OAAO,CAAC,EAAE,kBAAkB,CAAC;gBAExB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB;IAc3E,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASpD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI7C,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI7C,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAI7C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/C,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhE,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAInD,SAAS,CAAC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIzD,OAAO,KAAK,sBAAsB,GAejC;IAEQ,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAehD"}
@@ -0,0 +1,85 @@
1
+ import { createToken, ref } from "../core/tokens.js";
2
+ import { TerraformElement } from "./terraform-element.js";
3
+ export class TerraformDataSource extends TerraformElement {
4
+ kind = "data-source";
5
+ terraformResourceType;
6
+ terraformGeneratorMetadata;
7
+ dependsOn;
8
+ count;
9
+ provider;
10
+ forEach;
11
+ constructor(scope, id, config) {
12
+ super(scope, id, `data.${config.terraformResourceType}`);
13
+ this.terraformResourceType = config.terraformResourceType;
14
+ this.terraformGeneratorMetadata = config.terraformGeneratorMetadata;
15
+ if (config.dependsOn !== undefined) {
16
+ this.dependsOn = config.dependsOn.map((d) => d.fqn);
17
+ }
18
+ this.count = config.count;
19
+ this.provider = config.provider;
20
+ this.forEach = config.forEach;
21
+ }
22
+ interpolationForAttribute(attribute) {
23
+ const suffix = this.forEach !== undefined ? ".*" : "";
24
+ const token = ref(`data.${this.terraformResourceType}.${this.friendlyUniqueId}${suffix}`, attribute);
25
+ return createToken(token);
26
+ }
27
+ getStringAttribute(attribute) {
28
+ return this.interpolationForAttribute(attribute);
29
+ }
30
+ getNumberAttribute(attribute) {
31
+ return Number(this.interpolationForAttribute(attribute));
32
+ }
33
+ getListAttribute(attribute) {
34
+ return [this.interpolationForAttribute(attribute)];
35
+ }
36
+ getBooleanAttribute(attribute) {
37
+ return Boolean(this.interpolationForAttribute(attribute));
38
+ }
39
+ getStringMapAttribute(attribute) {
40
+ return { "": this.interpolationForAttribute(attribute) };
41
+ }
42
+ getNumberMapAttribute(attribute) {
43
+ return { "": Number(this.interpolationForAttribute(attribute)) };
44
+ }
45
+ getBooleanMapAttribute(attribute) {
46
+ return { "": Boolean(this.interpolationForAttribute(attribute)) };
47
+ }
48
+ getNumberListAttribute(attribute) {
49
+ return [Number(this.interpolationForAttribute(attribute))];
50
+ }
51
+ synthesizeAttributes() {
52
+ return {};
53
+ }
54
+ get terraformMetaArguments() {
55
+ const result = {};
56
+ if (this.dependsOn !== undefined && this.dependsOn.length > 0) {
57
+ result["depends_on"] = this.dependsOn;
58
+ }
59
+ if (this.count !== undefined) {
60
+ result["count"] = typeof this.count === "number" ? this.count : this.count.toNumber();
61
+ }
62
+ if (this.provider !== undefined) {
63
+ result["provider"] = this.provider.fqn;
64
+ }
65
+ if (this.forEach !== undefined) {
66
+ result["for_each"] = this.forEach._getForEachExpression();
67
+ }
68
+ return result;
69
+ }
70
+ toTerraform() {
71
+ const attributes = {
72
+ ...this.synthesizeAttributes(),
73
+ ...this.terraformMetaArguments,
74
+ ...this.rawOverrides,
75
+ };
76
+ return {
77
+ data: {
78
+ [this.terraformResourceType]: {
79
+ [this.friendlyUniqueId]: attributes,
80
+ },
81
+ },
82
+ };
83
+ }
84
+ }
85
+ //# sourceMappingURL=terraform-data-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-data-source.js","sourceRoot":"","sources":["../../src/facade/terraform-data-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Construct } from "./construct.js";
2
+ export type ElementKind = "stack" | "resource" | "data-source" | "provider" | "backend" | "output" | "variable" | "local" | "module" | "remote-state" | "import";
3
+ export type TerraformElementMetadata = {
4
+ readonly path: string;
5
+ readonly uniqueId: string;
6
+ readonly stackTrace?: string[];
7
+ };
8
+ export declare abstract class TerraformElement extends Construct {
9
+ abstract readonly kind: ElementKind;
10
+ private readonly _overrides;
11
+ private _logicalIdOverride?;
12
+ private readonly _elementType?;
13
+ private _fqnToken?;
14
+ private _friendlyUniqueId?;
15
+ constructor(scope: Construct, id: string, elementType?: string);
16
+ get fqn(): string;
17
+ get rawFqn(): string;
18
+ get friendlyUniqueId(): string;
19
+ private computeLogicalId;
20
+ overrideLogicalId(newLogicalId: string): void;
21
+ resetOverrideLogicalId(): void;
22
+ addOverride(path: string, value: unknown): void;
23
+ protected get rawOverrides(): Record<string, unknown>;
24
+ toTerraform(): Record<string, unknown>;
25
+ toMetadata(): Record<string, unknown>;
26
+ protected get constructNodeMetadata(): TerraformElementMetadata;
27
+ }
28
+ //# sourceMappingURL=terraform-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-element.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-element.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,MAAM,WAAW,GACnB,OAAO,GACP,UAAU,GACV,aAAa,GACb,UAAU,GACV,SAAS,GACT,QAAQ,GACR,UAAU,GACV,OAAO,GACP,QAAQ,GACR,cAAc,GACd,QAAQ,CAAC;AAEb,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAgCF,8BAAsB,gBAAiB,SAAQ,SAAS;IACtD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAEpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAC9D,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAS;gBAEvB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAK9D,IAAI,GAAG,IAAI,MAAM,CAShB;IAED,IAAI,MAAM,IAAI,MAAM,CAKnB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAS7B;IAED,OAAO,CAAC,gBAAgB;IAIxB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAO7C,sBAAsB,IAAI,IAAI;IAO9B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI/C,SAAS,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEpD;IAED,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIrC,SAAS,KAAK,qBAAqB,IAAI,wBAAwB,CAK9D;CACF"}
@@ -0,0 +1,100 @@
1
+ import { generateLogicalId } from "../core/synthesize.js";
2
+ import { createToken, ref } from "../core/tokens.js";
3
+ import { Construct } from "./construct.js";
4
+ function buildNestedObject(overrides) {
5
+ const result = {};
6
+ const nodes = new Map([["", result]]);
7
+ for (const [path, value] of overrides) {
8
+ const parts = path.split(".");
9
+ let currentPath = "";
10
+ let current = result;
11
+ for (const key of parts.slice(0, -1)) {
12
+ const nextPath = currentPath === "" ? key : `${currentPath}.${key}`;
13
+ let next = nodes.get(nextPath);
14
+ if (next === undefined) {
15
+ next = {};
16
+ nodes.set(nextPath, next);
17
+ current[key] = next;
18
+ }
19
+ current = next;
20
+ currentPath = nextPath;
21
+ }
22
+ const lastKey = parts[parts.length - 1];
23
+ if (lastKey !== undefined) {
24
+ current[lastKey] = value;
25
+ }
26
+ }
27
+ return result;
28
+ }
29
+ export class TerraformElement extends Construct {
30
+ _overrides = new Map();
31
+ _logicalIdOverride;
32
+ _elementType;
33
+ _fqnToken;
34
+ _friendlyUniqueId;
35
+ constructor(scope, id, elementType) {
36
+ super(scope, id);
37
+ this._elementType = elementType;
38
+ }
39
+ get fqn() {
40
+ if (this._fqnToken === undefined) {
41
+ if (this._elementType === undefined || this._elementType === "") {
42
+ throw new Error("Element type not set");
43
+ }
44
+ const token = ref(`${this._elementType}.${this.friendlyUniqueId}`, "");
45
+ this._fqnToken = createToken(token);
46
+ }
47
+ return this._fqnToken;
48
+ }
49
+ get rawFqn() {
50
+ if (this._elementType === undefined || this._elementType === "") {
51
+ throw new Error("Element type not set");
52
+ }
53
+ return `${this._elementType}.${this.friendlyUniqueId}`;
54
+ }
55
+ get friendlyUniqueId() {
56
+ if (this._friendlyUniqueId === undefined) {
57
+ if (this._logicalIdOverride !== undefined && this._logicalIdOverride !== "") {
58
+ this._friendlyUniqueId = this._logicalIdOverride;
59
+ }
60
+ else {
61
+ this._friendlyUniqueId = this.computeLogicalId();
62
+ }
63
+ }
64
+ return this._friendlyUniqueId;
65
+ }
66
+ computeLogicalId() {
67
+ return generateLogicalId(this._path);
68
+ }
69
+ overrideLogicalId(newLogicalId) {
70
+ if (this._fqnToken !== undefined) {
71
+ throw new Error("Logical ID cannot be overridden after .fqn has been accessed");
72
+ }
73
+ this._logicalIdOverride = newLogicalId;
74
+ }
75
+ resetOverrideLogicalId() {
76
+ if (this._fqnToken !== undefined) {
77
+ throw new Error("Logical ID cannot be reset after .fqn has been accessed");
78
+ }
79
+ this._logicalIdOverride = undefined;
80
+ }
81
+ addOverride(path, value) {
82
+ this._overrides.set(path, value);
83
+ }
84
+ get rawOverrides() {
85
+ return buildNestedObject(this._overrides);
86
+ }
87
+ toTerraform() {
88
+ return {};
89
+ }
90
+ toMetadata() {
91
+ return {};
92
+ }
93
+ get constructNodeMetadata() {
94
+ return {
95
+ path: this.node.path,
96
+ uniqueId: this.friendlyUniqueId,
97
+ };
98
+ }
99
+ }
100
+ //# sourceMappingURL=terraform-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-element.js","sourceRoot":"","sources":["../../src/facade/terraform-element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ type Expression = string | number | boolean | unknown[] | Record<string, unknown> | IResolvable;
2
+ type IResolvable = {
3
+ resolve(context: unknown): unknown;
4
+ toString(): string;
5
+ };
6
+ export declare class Fn {
7
+ static abs(num: number | string): string;
8
+ static ceil(num: number | string): string;
9
+ static floor(num: number | string): string;
10
+ static log(num: number | string, base: number | string): string;
11
+ static max(numbers: (number | string)[]): string;
12
+ static min(numbers: (number | string)[]): string;
13
+ static parseint(str: string, base: number | string): string;
14
+ static pow(num: number | string, power: number | string): string;
15
+ static signum(num: number | string): string;
16
+ static chomp(str: string): string;
17
+ static endswith(str: string, suffix: string): string;
18
+ static format(format: string, ...args: unknown[]): string;
19
+ static formatlist(format: string, ...args: unknown[]): string;
20
+ static indent(spaces: number | string, str: string): string;
21
+ static join(separator: string, list: unknown[]): string;
22
+ static lower(str: string): string;
23
+ static regex(pattern: string, str: string): string;
24
+ static regexall(pattern: string, str: string): string;
25
+ static replace(str: string, substr: string, replace: string): string;
26
+ static split(separator: string, str: string): string;
27
+ static startswith(str: string, prefix: string): string;
28
+ static strrev(str: string): string;
29
+ static substr(str: string, offset: number | string, length: number | string): string;
30
+ static title(str: string): string;
31
+ static trim(str: string, chars: string): string;
32
+ static trimprefix(str: string, prefix: string): string;
33
+ static trimsuffix(str: string, suffix: string): string;
34
+ static trimspace(str: string): string;
35
+ static upper(str: string): string;
36
+ static alltrue(list: unknown[]): string;
37
+ static anytrue(list: unknown[]): string;
38
+ static chunklist(list: unknown[], size: number | string): string;
39
+ static coalesce(...args: unknown[]): string;
40
+ static coalescelist(...args: unknown[]): string;
41
+ static compact(list: unknown[]): string;
42
+ static concat(...lists: unknown[][]): string;
43
+ static contains(list: unknown[], value: unknown): string;
44
+ static distinct(list: unknown[]): string;
45
+ static element(list: unknown[], index: number | string): string;
46
+ static flatten(list: unknown[]): string;
47
+ static index(list: unknown[], value: unknown): string;
48
+ static keys(map: Record<string, unknown> | string): string;
49
+ static length(value: unknown): string;
50
+ static lengthOf(value: unknown): string;
51
+ static list(...args: unknown[]): string;
52
+ static lookup(map: Record<string, unknown> | string, key: string, defaultValue?: unknown): string;
53
+ static lookupNested(map: Record<string, unknown> | string, path: (string | number)[]): string;
54
+ static map(...args: unknown[]): string;
55
+ static matchkeys(values: unknown[], keys: unknown[], searchset: unknown[]): string;
56
+ static merge(...maps: (Record<string, unknown> | string)[]): string;
57
+ static one(list: unknown[]): string;
58
+ static range(start: number | string, limit?: number | string, step?: number | string): string;
59
+ static reverse(list: unknown[]): string;
60
+ static setintersection(...sets: unknown[][]): string;
61
+ static setproduct(...sets: unknown[][]): string;
62
+ static setsubtract(a: unknown[], b: unknown[]): string;
63
+ static setunion(...sets: unknown[][]): string;
64
+ static slice(list: unknown[], start: number | string, end: number | string): string;
65
+ static sort(list: unknown[]): string;
66
+ static sum(list: unknown[]): string;
67
+ static transpose(map: Record<string, unknown> | string): string;
68
+ static values(map: Record<string, unknown> | string): string;
69
+ static zipmap(keys: unknown[], values: unknown[]): string;
70
+ static base64decode(str: string): string;
71
+ static base64encode(str: string): string;
72
+ static base64gzip(str: string): string;
73
+ static csvdecode(str: string): string;
74
+ static jsondecode(str: string): string;
75
+ static jsonencode(value: unknown): string;
76
+ static textdecodebase64(str: string, encoding: string): string;
77
+ static textencodebase64(str: string, encoding: string): string;
78
+ static urlencode(str: string): string;
79
+ static yamldecode(str: string): string;
80
+ static yamlencode(value: unknown): string;
81
+ static abspath(path: string): string;
82
+ static dirname(path: string): string;
83
+ static pathexpand(path: string): string;
84
+ static basename(path: string): string;
85
+ static file(path: string): string;
86
+ static fileexists(path: string): string;
87
+ static fileset(path: string, pattern: string): string;
88
+ static filebase64(path: string): string;
89
+ static templatefile(path: string, vars: Record<string, unknown> | string): string;
90
+ static formatdate(format: string, timestamp: string): string;
91
+ static plantimestamp(): string;
92
+ static timeadd(timestamp: string, duration: string): string;
93
+ static timecmp(timestampA: string, timestampB: string): string;
94
+ static timestamp(): string;
95
+ static base64sha256(str: string): string;
96
+ static base64sha512(str: string): string;
97
+ static bcrypt(str: string, cost?: number | string): string;
98
+ static filebase64sha256(path: string): string;
99
+ static filebase64sha512(path: string): string;
100
+ static filemd5(path: string): string;
101
+ static filesha1(path: string): string;
102
+ static filesha256(path: string): string;
103
+ static filesha512(path: string): string;
104
+ static md5(str: string): string;
105
+ static rsadecrypt(ciphertext: string, privatekey: string): string;
106
+ static sha1(str: string): string;
107
+ static sha256(str: string): string;
108
+ static sha512(str: string): string;
109
+ static uuid(): string;
110
+ static uuidv5(namespace: string, name: string): string;
111
+ static cidrhost(prefix: string, hostnum: number | string): string;
112
+ static cidrnetmask(prefix: string): string;
113
+ static cidrsubnet(prefix: string, newbits: number | string, netnum: number | string): string;
114
+ static cidrsubnets(prefix: string, ...newbits: (number | string)[]): string;
115
+ static can(expression: unknown): string;
116
+ static nonsensitive(value: unknown): string;
117
+ static sensitive(value: unknown): string;
118
+ static tobool(value: unknown): string;
119
+ static tolist(value: unknown): string;
120
+ static tomap(value: unknown): string;
121
+ static tonumber(value: unknown): string;
122
+ static toset(value: unknown): string;
123
+ static tostring(value: unknown): string;
124
+ static try(...expressions: unknown[]): string;
125
+ static type(value: unknown): string;
126
+ static conditional(condition: Expression, trueValue: Expression, falseValue: Expression): string;
127
+ static rawString(str: string): string;
128
+ static propertyAccess(target: Expression, path: (string | number)[]): string;
129
+ }
130
+ export declare class Op {
131
+ static not(expression: Expression): string;
132
+ static negate(expression: Expression): string;
133
+ static mul(left: Expression, right: Expression): string;
134
+ static div(left: Expression, right: Expression): string;
135
+ static mod(left: Expression, right: Expression): string;
136
+ static add(left: Expression, right: Expression): string;
137
+ static sub(left: Expression, right: Expression): string;
138
+ static gt(left: Expression, right: Expression): string;
139
+ static gte(left: Expression, right: Expression): string;
140
+ static lt(left: Expression, right: Expression): string;
141
+ static lte(left: Expression, right: Expression): string;
142
+ static eq(left: Expression, right: Expression): string;
143
+ static neq(left: Expression, right: Expression): string;
144
+ static and(left: Expression, right: Expression): string;
145
+ static or(left: Expression, right: Expression): string;
146
+ }
147
+ export type { Expression, IResolvable };
148
+ //# sourceMappingURL=terraform-functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terraform-functions.d.ts","sourceRoot":"","sources":["../../src/facade/terraform-functions.ts"],"names":[],"mappings":"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"}