@intentius/chant-lexicon-terraform 0.102.0 → 0.104.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 (270) hide show
  1. package/dist/__fixtures__/terragrunt/affected-cases.d.ts +23 -0
  2. package/dist/__fixtures__/terragrunt/affected-cases.d.ts.map +1 -0
  3. package/dist/__fixtures__/terragrunt/record.d.ts +17 -0
  4. package/dist/__fixtures__/terragrunt/record.d.ts.map +1 -0
  5. package/dist/change-set.d.ts +67 -0
  6. package/dist/change-set.d.ts.map +1 -0
  7. package/dist/changed-roots.d.ts +30 -0
  8. package/dist/changed-roots.d.ts.map +1 -0
  9. package/dist/commands.d.ts +26 -0
  10. package/dist/commands.d.ts.map +1 -0
  11. package/dist/components/capability-plugin.d.ts +54 -0
  12. package/dist/components/capability-plugin.d.ts.map +1 -0
  13. package/dist/composites/terraform-pin-rollout-op.d.ts +44 -0
  14. package/dist/composites/terraform-pin-rollout-op.d.ts.map +1 -0
  15. package/dist/hcl/descend.d.ts +1 -1
  16. package/dist/hcl/descend.d.ts.map +1 -1
  17. package/dist/hcl/edges.d.ts +2 -2
  18. package/dist/hcl/edges.d.ts.map +1 -1
  19. package/dist/hcl/parse.d.ts +29 -1
  20. package/dist/hcl/parse.d.ts.map +1 -1
  21. package/dist/hcl/roots.d.ts +1 -1
  22. package/dist/hcl/roots.d.ts.map +1 -1
  23. package/dist/hcl/suppressions.d.ts.map +1 -1
  24. package/dist/index.d.ts +4 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/integrity.json +13 -4
  27. package/dist/lint/audit-catalog.d.ts.map +1 -1
  28. package/dist/lint/post-synth/index.d.ts.map +1 -1
  29. package/dist/lint/post-synth/module-source.d.ts +27 -1
  30. package/dist/lint/post-synth/module-source.d.ts.map +1 -1
  31. package/dist/lint/post-synth/terragrunt.d.ts +37 -0
  32. package/dist/lint/post-synth/terragrunt.d.ts.map +1 -0
  33. package/dist/lint/post-synth/tf002.d.ts +3 -1
  34. package/dist/lint/post-synth/tf002.d.ts.map +1 -1
  35. package/dist/lint/post-synth/tf038.d.ts +22 -0
  36. package/dist/lint/post-synth/tf038.d.ts.map +1 -0
  37. package/dist/lint/post-synth/tf039.d.ts +23 -0
  38. package/dist/lint/post-synth/tf039.d.ts.map +1 -0
  39. package/dist/lint/post-synth/tf040.d.ts +30 -0
  40. package/dist/lint/post-synth/tf040.d.ts.map +1 -0
  41. package/dist/lint/post-synth/tf041.d.ts +20 -0
  42. package/dist/lint/post-synth/tf041.d.ts.map +1 -0
  43. package/dist/lint/post-synth/tf042.d.ts +18 -0
  44. package/dist/lint/post-synth/tf042.d.ts.map +1 -0
  45. package/dist/lint/post-synth/tf043.d.ts +17 -0
  46. package/dist/lint/post-synth/tf043.d.ts.map +1 -0
  47. package/dist/lint/post-synth/tf044.d.ts +17 -0
  48. package/dist/lint/post-synth/tf044.d.ts.map +1 -0
  49. package/dist/lint/post-synth/tf045.d.ts +22 -0
  50. package/dist/lint/post-synth/tf045.d.ts.map +1 -0
  51. package/dist/manifest.json +1 -1
  52. package/dist/okf/index.md +8 -0
  53. package/dist/okf/rules/TF038.md +11 -0
  54. package/dist/okf/rules/TF039.md +11 -0
  55. package/dist/okf/rules/TF040.md +11 -0
  56. package/dist/okf/rules/TF041.md +11 -0
  57. package/dist/okf/rules/TF042.md +11 -0
  58. package/dist/okf/rules/TF043.md +11 -0
  59. package/dist/okf/rules/TF044.md +11 -0
  60. package/dist/okf/rules/TF045.md +11 -0
  61. package/dist/op/activities/index.d.ts +4 -0
  62. package/dist/op/activities/index.d.ts.map +1 -1
  63. package/dist/op/activities/pin-rollout.d.ts +46 -0
  64. package/dist/op/activities/pin-rollout.d.ts.map +1 -0
  65. package/dist/op/activities/terraform.d.ts +24 -50
  66. package/dist/op/activities/terraform.d.ts.map +1 -1
  67. package/dist/op/activity-contracts.d.ts +48 -0
  68. package/dist/op/activity-contracts.d.ts.map +1 -1
  69. package/dist/op/builders.d.ts +9 -0
  70. package/dist/op/builders.d.ts.map +1 -1
  71. package/dist/pin/edit-ts.d.ts +21 -0
  72. package/dist/pin/edit-ts.d.ts.map +1 -0
  73. package/dist/pin/edit.d.ts +52 -0
  74. package/dist/pin/edit.d.ts.map +1 -0
  75. package/dist/pin/forge.d.ts +39 -0
  76. package/dist/pin/forge.d.ts.map +1 -0
  77. package/dist/pin/index.d.ts +22 -0
  78. package/dist/pin/index.d.ts.map +1 -0
  79. package/dist/pin/rollout.d.ts +116 -0
  80. package/dist/pin/rollout.d.ts.map +1 -0
  81. package/dist/pin/scan.d.ts +54 -0
  82. package/dist/pin/scan.d.ts.map +1 -0
  83. package/dist/pin/source.d.ts +93 -0
  84. package/dist/pin/source.d.ts.map +1 -0
  85. package/dist/pin/waves.d.ts +66 -0
  86. package/dist/pin/waves.d.ts.map +1 -0
  87. package/dist/plan-digest.d.ts +59 -0
  88. package/dist/plan-digest.d.ts.map +1 -0
  89. package/dist/plugin.d.ts.map +1 -1
  90. package/dist/rules/module-source.ts +56 -1
  91. package/dist/rules/terragrunt.ts +76 -0
  92. package/dist/rules/tf002.ts +1 -1
  93. package/dist/rules/tf038.ts +71 -0
  94. package/dist/rules/tf039.ts +64 -0
  95. package/dist/rules/tf040.ts +76 -0
  96. package/dist/rules/tf041.ts +56 -0
  97. package/dist/rules/tf042.ts +42 -0
  98. package/dist/rules/tf043.ts +49 -0
  99. package/dist/rules/tf044.ts +51 -0
  100. package/dist/rules/tf045.ts +47 -0
  101. package/dist/terragrunt/affected.d.ts +119 -0
  102. package/dist/terragrunt/affected.d.ts.map +1 -0
  103. package/dist/terragrunt/index.d.ts +11 -0
  104. package/dist/terragrunt/index.d.ts.map +1 -0
  105. package/dist/terragrunt/mocks.d.ts +147 -0
  106. package/dist/terragrunt/mocks.d.ts.map +1 -0
  107. package/dist/terragrunt/run.d.ts +130 -0
  108. package/dist/terragrunt/run.d.ts.map +1 -0
  109. package/dist/terragrunt/units.d.ts +103 -0
  110. package/dist/terragrunt/units.d.ts.map +1 -0
  111. package/dist/terragrunt/wave.d.ts +89 -0
  112. package/dist/terragrunt/wave.d.ts.map +1 -0
  113. package/package.json +12 -2
  114. package/src/__fixtures__/change-set/choudoufu-set-plan.change-set.golden.json +95 -0
  115. package/src/__fixtures__/change-set/choudoufu-set-plan.json +76 -0
  116. package/src/__fixtures__/change-set/choudoufu.part.golden.json +173 -0
  117. package/src/__fixtures__/change-set/choudoufu.plan.json +610 -0
  118. package/src/__fixtures__/change-set/terraform.import-forget.plan.json +81 -0
  119. package/src/__fixtures__/change-set/terraform.part.golden.json +173 -0
  120. package/src/__fixtures__/change-set/terraform.plan.json +589 -0
  121. package/src/__fixtures__/change-set/tofu.part.golden.json +173 -0
  122. package/src/__fixtures__/change-set/tofu.plan.json +588 -0
  123. package/src/__fixtures__/change-set/v1.tf.txt +21 -0
  124. package/src/__fixtures__/change-set/v2-module-app.tf.txt +4 -0
  125. package/src/__fixtures__/change-set/v2.tf.txt +21 -0
  126. package/src/__fixtures__/pin/choudoufu-live-waves-n5.json +83 -0
  127. package/src/__fixtures__/pin/largeset-oci-n5/apply-order.txt +5 -0
  128. package/src/__fixtures__/pin/largeset-oci-n5/estates/e01/estate.chdf.hcl +6 -0
  129. package/src/__fixtures__/pin/largeset-oci-n5/estates/e01/main.tf +33 -0
  130. package/src/__fixtures__/pin/largeset-oci-n5/estates/e02/estate.chdf.hcl +6 -0
  131. package/src/__fixtures__/pin/largeset-oci-n5/estates/e02/main.tf +45 -0
  132. package/src/__fixtures__/pin/largeset-oci-n5/estates/e03/estate.chdf.hcl +6 -0
  133. package/src/__fixtures__/pin/largeset-oci-n5/estates/e03/main.tf +47 -0
  134. package/src/__fixtures__/pin/largeset-oci-n5/estates/e04/estate.chdf.hcl +6 -0
  135. package/src/__fixtures__/pin/largeset-oci-n5/estates/e04/main.tf +31 -0
  136. package/src/__fixtures__/pin/largeset-oci-n5/estates/e05/estate.chdf.hcl +6 -0
  137. package/src/__fixtures__/pin/largeset-oci-n5/estates/e05/main.tf +27 -0
  138. package/src/__fixtures__/pin/largeset-oci-n5/fixture.json +77 -0
  139. package/src/__fixtures__/plan-summary/largeset-n5-bump.json +2071 -0
  140. package/src/__fixtures__/plan-summary/largeset-n5.summary.golden.json +95 -0
  141. package/src/__fixtures__/plan-summary/largeset-n5.summary.golden.md +22 -0
  142. package/src/__fixtures__/plan-summary/largeset-n5.summary.golden.txt +12 -0
  143. package/src/__fixtures__/terragrunt/affected/catalog/units/web/terragrunt.hcl +3 -0
  144. package/src/__fixtures__/terragrunt/affected/gitignore +3 -0
  145. package/src/__fixtures__/terragrunt/affected/live/dev/app/terragrunt.hcl +3 -0
  146. package/src/__fixtures__/terragrunt/affected/live/dev/vpc/terragrunt.hcl +3 -0
  147. package/src/__fixtures__/terragrunt/affected/live/prod/app/terragrunt.hcl +3 -0
  148. package/src/__fixtures__/terragrunt/affected/live/stg/terragrunt.stack.hcl +5 -0
  149. package/src/__fixtures__/terragrunt/affected/modules/app/main.tf +6 -0
  150. package/src/__fixtures__/terragrunt/affected/modules/app/policy.json +1 -0
  151. package/src/__fixtures__/terragrunt/affected/modules/net/main.tf +2 -0
  152. package/src/__fixtures__/terragrunt/affected/modules/thing/main.tf +3 -0
  153. package/src/__fixtures__/terragrunt/affected/root.hcl +5 -0
  154. package/src/__fixtures__/terragrunt/affected-cases.ts +126 -0
  155. package/src/__fixtures__/terragrunt/five-units/catalog/units/thing/terragrunt.hcl +3 -0
  156. package/src/__fixtures__/terragrunt/five-units/live/dev/app/terragrunt.hcl +13 -0
  157. package/src/__fixtures__/terragrunt/five-units/live/dev/db/terragrunt.hcl +8 -0
  158. package/src/__fixtures__/terragrunt/five-units/live/dev/vpc/terragrunt.hcl +3 -0
  159. package/src/__fixtures__/terragrunt/five-units/live/prod/app/terragrunt.hcl +8 -0
  160. package/src/__fixtures__/terragrunt/five-units/live/prod/vpc/terragrunt.hcl +3 -0
  161. package/src/__fixtures__/terragrunt/five-units/modules/thing/main.tf +7 -0
  162. package/src/__fixtures__/terragrunt/five-units/root.hcl +5 -0
  163. package/src/__fixtures__/terragrunt/record.ts +56 -0
  164. package/src/__fixtures__/terragrunt/recorded/affected-find.json +50 -0
  165. package/src/__fixtures__/terragrunt/recorded/failed-plan-report.json +36 -0
  166. package/src/__fixtures__/terragrunt/recorded/find.json +67 -0
  167. package/src/__fixtures__/terragrunt/recorded/version.txt +1 -0
  168. package/src/__fixtures__/terragrunt/recorded/wave-1/apply-report.json +22 -0
  169. package/src/__fixtures__/terragrunt/recorded/wave-1/json/live/dev/vpc/tfplan.json +1 -0
  170. package/src/__fixtures__/terragrunt/recorded/wave-1/json/live/prod/vpc/tfplan.json +1 -0
  171. package/src/__fixtures__/terragrunt/recorded/wave-1/plan-report.json +22 -0
  172. package/src/__fixtures__/terragrunt/recorded/wave-2/json/live/dev/db/tfplan.json +1 -0
  173. package/src/__fixtures__/terragrunt/recorded/wave-2/json/live/prod/app/tfplan.json +1 -0
  174. package/src/__fixtures__/terragrunt/recorded/wave-2/plan-report.json +22 -0
  175. package/src/change-set-combined-run.test.ts +156 -0
  176. package/src/change-set.test.ts +151 -0
  177. package/src/change-set.ts +273 -0
  178. package/src/changed-roots.test.ts +58 -0
  179. package/src/changed-roots.ts +102 -0
  180. package/src/commands.ts +112 -0
  181. package/src/components/capability-plugin.test.ts +91 -0
  182. package/src/components/capability-plugin.ts +131 -0
  183. package/src/components/pr-loop.tofu.test.ts +244 -0
  184. package/src/composites/terraform-pin-rollout-op.test.ts +69 -0
  185. package/src/composites/terraform-pin-rollout-op.ts +60 -0
  186. package/src/hcl/descend.ts +1 -1
  187. package/src/hcl/edges.ts +2 -2
  188. package/src/hcl/parse.test.ts +25 -0
  189. package/src/hcl/parse.ts +91 -6
  190. package/src/hcl/roots.ts +1 -1
  191. package/src/hcl/suppressions.ts +8 -2
  192. package/src/index.ts +18 -0
  193. package/src/lint/audit-catalog.ts +82 -0
  194. package/src/lint/audit.test.ts +3 -1
  195. package/src/lint/post-synth/fixtures/TF038/positive.tf +3 -0
  196. package/src/lint/post-synth/fixtures/TF039/positive.tf +4 -0
  197. package/src/lint/post-synth/fixtures/TF041/negative/terragrunt.hcl +12 -0
  198. package/src/lint/post-synth/fixtures/TF041/positive/terragrunt.hcl +7 -0
  199. package/src/lint/post-synth/fixtures/TF041/positive-apply/terragrunt.hcl +8 -0
  200. package/src/lint/post-synth/fixtures/TF042/negative/terragrunt.hcl +13 -0
  201. package/src/lint/post-synth/fixtures/TF042/positive/terragrunt.hcl +9 -0
  202. package/src/lint/post-synth/fixtures/TF043/negative/terragrunt.hcl +3 -0
  203. package/src/lint/post-synth/fixtures/TF043/negative-other/terragrunt.hcl +3 -0
  204. package/src/lint/post-synth/fixtures/TF043/positive-git/terragrunt.hcl +3 -0
  205. package/src/lint/post-synth/fixtures/TF043/positive-oci/terragrunt.hcl +3 -0
  206. package/src/lint/post-synth/fixtures/TF043/positive-tfr/terragrunt.hcl +3 -0
  207. package/src/lint/post-synth/fixtures/TF044/negative/terragrunt.hcl +9 -0
  208. package/src/lint/post-synth/fixtures/TF044/positive/terragrunt.hcl +7 -0
  209. package/src/lint/post-synth/fixtures/TF044/positive-generate/terragrunt.hcl +9 -0
  210. package/src/lint/post-synth/fixtures/TF045/negative/root.hcl +1 -0
  211. package/src/lint/post-synth/fixtures/TF045/negative/terragrunt.hcl +3 -0
  212. package/src/lint/post-synth/fixtures/TF045/positive/root.hcl +9 -0
  213. package/src/lint/post-synth/fixtures/TF045/positive/terragrunt.hcl +3 -0
  214. package/src/lint/post-synth/fixtures/TF045/unit-only/terragrunt.hcl +3 -0
  215. package/src/lint/post-synth/index.ts +16 -0
  216. package/src/lint/post-synth/module-source.test.ts +42 -1
  217. package/src/lint/post-synth/module-source.ts +56 -1
  218. package/src/lint/post-synth/terragrunt.ts +76 -0
  219. package/src/lint/post-synth/tf002.ts +1 -1
  220. package/src/lint/post-synth/tf038.test.ts +51 -0
  221. package/src/lint/post-synth/tf038.ts +71 -0
  222. package/src/lint/post-synth/tf039.test.ts +40 -0
  223. package/src/lint/post-synth/tf039.ts +64 -0
  224. package/src/lint/post-synth/tf040.test.ts +55 -0
  225. package/src/lint/post-synth/tf040.ts +76 -0
  226. package/src/lint/post-synth/tf041.test.ts +50 -0
  227. package/src/lint/post-synth/tf041.ts +56 -0
  228. package/src/lint/post-synth/tf042.test.ts +19 -0
  229. package/src/lint/post-synth/tf042.ts +42 -0
  230. package/src/lint/post-synth/tf043.test.ts +65 -0
  231. package/src/lint/post-synth/tf043.ts +49 -0
  232. package/src/lint/post-synth/tf044.test.ts +27 -0
  233. package/src/lint/post-synth/tf044.ts +51 -0
  234. package/src/lint/post-synth/tf045.test.ts +30 -0
  235. package/src/lint/post-synth/tf045.ts +47 -0
  236. package/src/op/activities/index.ts +4 -0
  237. package/src/op/activities/pin-rollout.ts +77 -0
  238. package/src/op/activities/terraform.test.ts +13 -0
  239. package/src/op/activities/terraform.ts +46 -86
  240. package/src/op/activity-contracts.test.ts +4 -1
  241. package/src/op/activity-contracts.ts +42 -0
  242. package/src/op/builders.ts +13 -0
  243. package/src/pin/bundle.test.ts +53 -0
  244. package/src/pin/edit-ts.test.ts +39 -0
  245. package/src/pin/edit-ts.ts +77 -0
  246. package/src/pin/edit.test.ts +199 -0
  247. package/src/pin/edit.ts +157 -0
  248. package/src/pin/forge.ts +85 -0
  249. package/src/pin/index.ts +22 -0
  250. package/src/pin/rollout.test.ts +232 -0
  251. package/src/pin/rollout.ts +451 -0
  252. package/src/pin/scan.ts +309 -0
  253. package/src/pin/source.ts +206 -0
  254. package/src/pin/waves.test.ts +101 -0
  255. package/src/pin/waves.ts +125 -0
  256. package/src/plan-digest.ts +99 -0
  257. package/src/plan-summary.test.ts +154 -0
  258. package/src/plugin.ts +25 -2
  259. package/src/terragrunt/affected.acceptance.test.ts +83 -0
  260. package/src/terragrunt/affected.test.ts +177 -0
  261. package/src/terragrunt/affected.ts +348 -0
  262. package/src/terragrunt/index.ts +11 -0
  263. package/src/terragrunt/mocks.acceptance.test.ts +105 -0
  264. package/src/terragrunt/mocks.test.ts +309 -0
  265. package/src/terragrunt/mocks.ts +324 -0
  266. package/src/terragrunt/run.ts +369 -0
  267. package/src/terragrunt/terragrunt.acceptance.test.ts +122 -0
  268. package/src/terragrunt/terragrunt.test.ts +332 -0
  269. package/src/terragrunt/units.ts +235 -0
  270. package/src/terragrunt/wave.ts +181 -0
@@ -0,0 +1,89 @@
1
+ /**
2
+ * One wave of Terragrunt units as one `terragrunt run --all` (#3414): the
3
+ * arguments, the environment, the run report and the change-set parts.
4
+ *
5
+ * A wave names its units with explicit path filters, so it plans and applies
6
+ * exactly those units. `.terragrunt-filters` is not read by a wave run:
7
+ * Terragrunt unions its filters with the ones given on the command line
8
+ * (observed on 1.1.6), so a filters file selecting `live/prod/**` would pull
9
+ * every prod unit into every wave. Discovery reads it; the wave's paths came
10
+ * from discovery.
11
+ *
12
+ * Plan writes `<outDir>/<unit>/tfplan.tfplan` and
13
+ * `<jsonOutDir>/<unit>/tfplan.json`; apply reads the saved plans from the
14
+ * same `outDir` with the same filters.
15
+ *
16
+ * Pure: nothing here spawns or reads files, so terragucci can bundle it. It
17
+ * imports `../change-set` and chant's `change-set` types only.
18
+ */
19
+ import type { ChangeSetPart, ChangeSetPlanner } from "@intentius/chant/change-set";
20
+ export type TerragruntWaveCommand = "plan" | "apply";
21
+ export interface TerragruntWaveArgsInput {
22
+ /** The wave's units, by path relative to where Terragrunt runs. */
23
+ units: readonly string[];
24
+ command: TerragruntWaveCommand;
25
+ /** Where plan writes and apply reads the saved plan files. */
26
+ outDir: string;
27
+ /** Where plan writes each unit's `show -json`. Plan only. */
28
+ jsonOutDir?: string;
29
+ /** Where Terragrunt writes the run report (JSON). */
30
+ reportFile: string;
31
+ /** A destroy wave: plan runs `plan -destroy`, and both pass `--filter-allow-destroy`. */
32
+ destroy?: boolean;
33
+ /** `--parallelism`. Unset, Terragrunt runs every unit of the wave at once. */
34
+ parallelism?: number;
35
+ /** Arguments after `--`, beside the ones the command needs (`-lock-timeout=5m`). */
36
+ extra?: readonly string[];
37
+ }
38
+ /** Arguments to `terragrunt` for one wave. Throws on an empty wave: with no filter, `run --all` runs every unit. */
39
+ export declare function terragruntWaveArgs(input: TerragruntWaveArgsInput): string[];
40
+ /**
41
+ * The environment a wave adds: `TG_TF_PATH` when the project names a binary,
42
+ * nothing otherwise, so Terragrunt's own choice (tofu, then terraform, or a
43
+ * unit's `terraform_binary`) stands.
44
+ */
45
+ export declare function terragruntEnv(binary: string | undefined): Record<string, string>;
46
+ /** One row of a Terragrunt run report (`run/report` JSON). */
47
+ export interface TerragruntReportRow {
48
+ name: string;
49
+ /** `succeeded`, `failed`, `early exit`, `excluded`, as Terragrunt writes them. */
50
+ result: string;
51
+ reason?: string;
52
+ cause?: string;
53
+ cmd?: string;
54
+ started?: string;
55
+ ended?: string;
56
+ }
57
+ /** The rows of a run report, keyed by unit path. Malformed rows are dropped. */
58
+ export declare function parseTerragruntReport(text: string | unknown): Map<string, TerragruntReportRow>;
59
+ /** How one unit of a wave ended. */
60
+ export interface TerragruntUnitResult {
61
+ unit: string;
62
+ /** `succeeded` only when the run report says so; a unit missing from it did not run. */
63
+ status: "succeeded" | "failed";
64
+ /** The report's result, or `not run` when the unit is not in it. */
65
+ result: string;
66
+ /** Why it failed, from the report's reason and cause. */
67
+ error?: string;
68
+ }
69
+ /** Each of the wave's units against the run report. A unit the report leaves out failed: nothing says it ran. */
70
+ export declare function terragruntUnitResults(units: readonly string[], report: Map<string, TerragruntReportRow>): TerragruntUnitResult[];
71
+ export interface TerragruntWavePartsInput {
72
+ units: readonly string[];
73
+ report: Map<string, TerragruntReportRow>;
74
+ /** A unit's `tfplan.json`, parsed, or undefined when plan wrote none. */
75
+ planFor: (unit: string) => unknown;
76
+ /** The binary Terragrunt called. */
77
+ planner: ChangeSetPlanner;
78
+ /** The scope a unit's member carries. Default: its stack, {@link stackOfUnit}. */
79
+ scopeFor?: (unit: string) => string | undefined;
80
+ }
81
+ /**
82
+ * The change-set parts of a planned wave: one member per unit, named by the
83
+ * unit's path. A unit the run report marks succeeded, with a plan JSON, goes
84
+ * through {@link terraformChangeSetPart}; any other is a failed member
85
+ * carrying the report's result, so a unit that never planned cannot read as
86
+ * planned with nothing to do.
87
+ */
88
+ export declare function terragruntWaveParts(input: TerragruntWavePartsInput): ChangeSetPart[];
89
+ //# sourceMappingURL=wave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wave.d.ts","sourceRoot":"","sources":["../../src/terragrunt/wave.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAInF,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED,oHAAoH;AACpH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,MAAM,EAAE,CA4B3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEhF;AAED,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAoB9F;AAED,oCAAoC;AACpC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,iHAAiH;AACjH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,oBAAoB,EAAE,CAQhI;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACzC,yEAAyE;IACzE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,oCAAoC;IACpC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACjD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,aAAa,EAAE,CAsBpF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-terraform",
3
- "version": "0.102.0",
3
+ "version": "0.104.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "src/",
@@ -29,6 +29,16 @@
29
29
  "types": "./dist/op/activity-contracts.d.ts",
30
30
  "default": "./src/op/activity-contracts.ts"
31
31
  },
32
+ "./pin": {
33
+ "development": "./src/pin/index.ts",
34
+ "types": "./dist/pin/index.d.ts",
35
+ "default": "./src/pin/index.ts"
36
+ },
37
+ "./terragrunt": {
38
+ "development": "./src/terragrunt/index.ts",
39
+ "types": "./dist/terragrunt/index.d.ts",
40
+ "default": "./src/terragrunt/index.ts"
41
+ },
32
42
  "./lint/post-synth": {
33
43
  "development": "./src/lint/post-synth/index.ts",
34
44
  "types": "./dist/lint/post-synth/index.d.ts",
@@ -57,7 +67,7 @@
57
67
  "access": "public"
58
68
  },
59
69
  "peerDependencies": {
60
- "@intentius/chant": "^0.102.0",
70
+ "@intentius/chant": "^0.104.0",
61
71
  "typescript": "^5.9.3",
62
72
  "zod": "^4.3.6"
63
73
  },
@@ -0,0 +1,95 @@
1
+ {
2
+ "$schema": "https://intentius.io/chant/schemas/workspace/change-set/v1/change-set.schema.json",
3
+ "contract": 1,
4
+ "digest": "jcs1-sha256:5724486f4166eb1db89bba1d5807aaf1dc592726af2ecaf47da782e8d246cafb",
5
+ "members": [
6
+ {
7
+ "member": "estates/e01",
8
+ "lexicon": "terraform",
9
+ "planner": "choudoufu",
10
+ "scope": "est-e01",
11
+ "status": "planned",
12
+ "planDigest": "jcs1-sha256:31049a9763b3c11a83416e1f5cde08b23d9ce14caff09ad6aa5770dab95dfaf1",
13
+ "nativeDigest": "sha256:bbe048fb0f7df99fcd65f00351d8b3c3be9b8a2a25a99a706b1c16d81277bb97",
14
+ "holes": []
15
+ },
16
+ {
17
+ "member": "estates/e02",
18
+ "lexicon": "terraform",
19
+ "planner": "choudoufu",
20
+ "scope": "est-e02",
21
+ "status": "planned",
22
+ "planDigest": "jcs1-sha256:5aaf171a0523f7ee14ee9b144c170ac7aea0820080d17708fcc6aa6d0467496b",
23
+ "nativeDigest": "sha256:be83b6c9faebeaf63391a7f45dafa02f87f58a01de31f9a0649b1898218b2127",
24
+ "holes": []
25
+ },
26
+ {
27
+ "member": "estates/e03",
28
+ "lexicon": "terraform",
29
+ "planner": "choudoufu",
30
+ "scope": "est-e03",
31
+ "status": "failed",
32
+ "error": "e03 broke at init on purpose",
33
+ "planDigest": null,
34
+ "nativeDigest": "sha256:b1f431ac6f4c9c24d0744f4cecb7581149918ece30e4ad22f4c3982c62c90874",
35
+ "holes": []
36
+ }
37
+ ],
38
+ "entries": [
39
+ {
40
+ "member": "estates/e01",
41
+ "lexicon": "terraform",
42
+ "planner": "choudoufu",
43
+ "address": "terraform_data.x",
44
+ "type": "terraform_data",
45
+ "name": "x",
46
+ "action": "create",
47
+ "scope": "est-e01",
48
+ "attributes": []
49
+ },
50
+ {
51
+ "member": "estates/e02",
52
+ "lexicon": "terraform",
53
+ "planner": "choudoufu",
54
+ "address": "terraform_data.x",
55
+ "type": "terraform_data",
56
+ "name": "x",
57
+ "action": "no-op",
58
+ "scope": "est-e02",
59
+ "attributes": []
60
+ }
61
+ ],
62
+ "summary": {
63
+ "members": 3,
64
+ "entries": 2,
65
+ "actions": {
66
+ "create": 1,
67
+ "update": 0,
68
+ "replace": 0,
69
+ "delete": 0,
70
+ "read": 0,
71
+ "no-op": 1,
72
+ "forget": 0
73
+ },
74
+ "types": {
75
+ "terraform_data": {
76
+ "create": 1,
77
+ "no-op": 1
78
+ }
79
+ },
80
+ "byMember": {
81
+ "estates/e01": {
82
+ "create": 1
83
+ },
84
+ "estates/e02": {
85
+ "no-op": 1
86
+ }
87
+ },
88
+ "deletes": [],
89
+ "replacements": [],
90
+ "failed": [
91
+ "estates/e03"
92
+ ],
93
+ "holes": 0
94
+ }
95
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "format_version": "1",
3
+ "roots": [
4
+ {
5
+ "root": "estates/e01",
6
+ "estate": "est-e01",
7
+ "status": "planned",
8
+ "error": "",
9
+ "changes": true,
10
+ "plan_file": "out/estates/e01.tfplan",
11
+ "log_file": "out/estates/e01.log",
12
+ "duration_ms": 0,
13
+ "plan": {
14
+ "format_version": "1.2",
15
+ "resource_changes": [
16
+ {
17
+ "address": "terraform_data.x",
18
+ "change": {
19
+ "actions": [
20
+ "create"
21
+ ]
22
+ }
23
+ }
24
+ ]
25
+ },
26
+ "digest": "sha256:bbe048fb0f7df99fcd65f00351d8b3c3be9b8a2a25a99a706b1c16d81277bb97"
27
+ },
28
+ {
29
+ "root": "estates/e02",
30
+ "estate": "est-e02",
31
+ "status": "planned",
32
+ "error": "",
33
+ "changes": false,
34
+ "plan_file": "out/estates/e02.tfplan",
35
+ "log_file": "out/estates/e02.log",
36
+ "duration_ms": 0,
37
+ "plan": {
38
+ "format_version": "1.2",
39
+ "resource_changes": [
40
+ {
41
+ "address": "terraform_data.x",
42
+ "change": {
43
+ "actions": [
44
+ "no-op"
45
+ ]
46
+ }
47
+ }
48
+ ]
49
+ },
50
+ "digest": "sha256:be83b6c9faebeaf63391a7f45dafa02f87f58a01de31f9a0649b1898218b2127"
51
+ },
52
+ {
53
+ "root": "estates/e03",
54
+ "estate": "est-e03",
55
+ "status": "failed",
56
+ "error": "e03 broke at init on purpose",
57
+ "stage": "init",
58
+ "changes": false,
59
+ "plan_file": "",
60
+ "log_file": "out/estates/e03.log",
61
+ "duration_ms": 0,
62
+ "plan": null,
63
+ "digest": "sha256:b1f431ac6f4c9c24d0744f4cecb7581149918ece30e4ad22f4c3982c62c90874"
64
+ }
65
+ ],
66
+ "summary": {
67
+ "roots": 3,
68
+ "planned": 2,
69
+ "changed": 1,
70
+ "failed": 1
71
+ },
72
+ "digest": "sha256:2c4f5f352d4bef19ffcae056b5e40fff77042ec608ca19060bf8b2d5701e5222",
73
+ "exit_code": 4,
74
+ "plugin_cache_dir": "/shared/plugin-cache",
75
+ "parallel_estates": 2
76
+ }
@@ -0,0 +1,173 @@
1
+ {
2
+ "member": {
3
+ "member": "estate",
4
+ "lexicon": "terraform",
5
+ "planner": "choudoufu",
6
+ "status": "planned",
7
+ "planDigest": "jcs1-sha256:afd5c2a2f6754c832948f404ff9fb435ef3ffbb46de62a3e5f13970dcaaf4494",
8
+ "holes": []
9
+ },
10
+ "entries": [
11
+ {
12
+ "member": "estate",
13
+ "lexicon": "terraform",
14
+ "planner": "choudoufu",
15
+ "address": "terraform_data.config",
16
+ "type": "terraform_data",
17
+ "name": "config",
18
+ "action": "update",
19
+ "disruption": "in-place",
20
+ "attributes": [
21
+ {
22
+ "path": "input",
23
+ "before": {
24
+ "size": "small",
25
+ "tags": {
26
+ "team": "core"
27
+ }
28
+ },
29
+ "after": {
30
+ "size": "large",
31
+ "tags": {
32
+ "team": "core"
33
+ }
34
+ }
35
+ },
36
+ {
37
+ "path": "output",
38
+ "before": {
39
+ "size": "small",
40
+ "tags": {
41
+ "team": "core"
42
+ }
43
+ },
44
+ "unknown": true
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "member": "estate",
50
+ "lexicon": "terraform",
51
+ "planner": "choudoufu",
52
+ "address": "terraform_data.keep",
53
+ "type": "terraform_data",
54
+ "name": "keep",
55
+ "action": "no-op",
56
+ "attributes": []
57
+ },
58
+ {
59
+ "member": "estate",
60
+ "lexicon": "terraform",
61
+ "planner": "choudoufu",
62
+ "address": "terraform_data.old",
63
+ "type": "terraform_data",
64
+ "name": "old",
65
+ "action": "delete",
66
+ "disruption": "destroy",
67
+ "attributes": []
68
+ },
69
+ {
70
+ "member": "estate",
71
+ "lexicon": "terraform",
72
+ "planner": "choudoufu",
73
+ "address": "terraform_data.secret",
74
+ "type": "terraform_data",
75
+ "name": "secret",
76
+ "action": "update",
77
+ "disruption": "in-place",
78
+ "attributes": [
79
+ {
80
+ "path": "input",
81
+ "sensitive": true
82
+ },
83
+ {
84
+ "path": "output",
85
+ "before": "s3cr3t-1",
86
+ "unknown": true
87
+ }
88
+ ]
89
+ },
90
+ {
91
+ "member": "estate",
92
+ "lexicon": "terraform",
93
+ "planner": "choudoufu",
94
+ "address": "terraform_data.worker",
95
+ "type": "terraform_data",
96
+ "name": "worker",
97
+ "action": "replace",
98
+ "disruption": "destroy",
99
+ "attributes": [
100
+ {
101
+ "path": "id",
102
+ "before": "a3dad13f-ce42-3fd7-e1a5-ce79d5c3ae0e",
103
+ "unknown": true
104
+ },
105
+ {
106
+ "path": "output",
107
+ "before": "v1",
108
+ "unknown": true
109
+ },
110
+ {
111
+ "path": "triggers_replace",
112
+ "before": [
113
+ "build-1"
114
+ ],
115
+ "after": [
116
+ "build-2"
117
+ ],
118
+ "forcesReplacement": true
119
+ }
120
+ ]
121
+ },
122
+ {
123
+ "member": "estate",
124
+ "lexicon": "terraform",
125
+ "planner": "choudoufu",
126
+ "address": "module.app.terraform_data.instance[0]",
127
+ "type": "terraform_data",
128
+ "name": "instance",
129
+ "index": 0,
130
+ "module": "module.app",
131
+ "action": "create",
132
+ "attributes": [
133
+ {
134
+ "path": "id",
135
+ "unknown": true
136
+ },
137
+ {
138
+ "path": "input",
139
+ "after": "app-0"
140
+ },
141
+ {
142
+ "path": "output",
143
+ "unknown": true
144
+ }
145
+ ]
146
+ },
147
+ {
148
+ "member": "estate",
149
+ "lexicon": "terraform",
150
+ "planner": "choudoufu",
151
+ "address": "module.app.terraform_data.instance[1]",
152
+ "type": "terraform_data",
153
+ "name": "instance",
154
+ "index": 1,
155
+ "module": "module.app",
156
+ "action": "create",
157
+ "attributes": [
158
+ {
159
+ "path": "id",
160
+ "unknown": true
161
+ },
162
+ {
163
+ "path": "input",
164
+ "after": "app-1"
165
+ },
166
+ {
167
+ "path": "output",
168
+ "unknown": true
169
+ }
170
+ ]
171
+ }
172
+ ]
173
+ }