@intentius/behold 0.9.0 → 0.10.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.
@@ -7,7 +7,7 @@
7
7
  "build": "chant build src -o manifests/app.yaml --format yaml"
8
8
  },
9
9
  "dependencies": {
10
- "@intentius/chant": "^0.44.6",
11
- "@intentius/chant-lexicon-k8s": "^0.44.6"
10
+ "@intentius/chant": "^0.44.7",
11
+ "@intentius/chant-lexicon-k8s": "^0.44.7"
12
12
  }
13
13
  }
@@ -7,7 +7,7 @@
7
7
  "build": "chant build src -o manifests/app.yaml --format yaml"
8
8
  },
9
9
  "dependencies": {
10
- "@intentius/chant": "^0.44.6",
11
- "@intentius/chant-lexicon-k8s": "^0.44.6"
10
+ "@intentius/chant": "^0.44.7",
11
+ "@intentius/chant-lexicon-k8s": "^0.44.7"
12
12
  }
13
13
  }
@@ -7,7 +7,7 @@
7
7
  "build": "chant build src -o dist/control-plane.yaml --format yaml"
8
8
  },
9
9
  "dependencies": {
10
- "@intentius/chant": "^0.44.6",
11
- "@intentius/chant-lexicon-k8s": "^0.44.6"
10
+ "@intentius/chant": "^0.44.7",
11
+ "@intentius/chant-lexicon-k8s": "^0.44.7"
12
12
  }
13
13
  }
@@ -14,22 +14,22 @@
14
14
  "app-a": {
15
15
  "name": "behold-example-argo-app-a",
16
16
  "dependencies": {
17
- "@intentius/chant": "^0.44.6",
18
- "@intentius/chant-lexicon-k8s": "^0.44.6"
17
+ "@intentius/chant": "^0.44.7",
18
+ "@intentius/chant-lexicon-k8s": "^0.44.7"
19
19
  }
20
20
  },
21
21
  "app-b": {
22
22
  "name": "behold-example-argo-app-b",
23
23
  "dependencies": {
24
- "@intentius/chant": "^0.44.6",
25
- "@intentius/chant-lexicon-k8s": "^0.44.6"
24
+ "@intentius/chant": "^0.44.7",
25
+ "@intentius/chant-lexicon-k8s": "^0.44.7"
26
26
  }
27
27
  },
28
28
  "control-plane": {
29
29
  "name": "behold-example-argo-control-plane",
30
30
  "dependencies": {
31
- "@intentius/chant": "^0.44.6",
32
- "@intentius/chant-lexicon-k8s": "^0.44.6"
31
+ "@intentius/chant": "^0.44.7",
32
+ "@intentius/chant-lexicon-k8s": "^0.44.7"
33
33
  }
34
34
  },
35
35
  "node_modules/@dagrejs/dagre": {
@@ -464,9 +464,9 @@
464
464
  }
465
465
  },
466
466
  "node_modules/@intentius/chant": {
467
- "version": "0.44.6",
468
- "resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.6.tgz",
469
- "integrity": "sha512-VFqPKe2WsSAJoUvfyghVTlIcj+QRNn//JgSHToq6PDDuKPU7F34V/4f+EZpX4MF3gvwVkZc9d6FUwKio6t0uqg==",
467
+ "version": "0.44.7",
468
+ "resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.7.tgz",
469
+ "integrity": "sha512-etCchkfbWFHJ+XnTYVVn9GT4/gZi/O8SVphDXHeuPOfK5VvRxo0unveIUEsuRoHGHgzN9Y+aj0Jk15xhIE7Gzg==",
470
470
  "license": "Apache-2.0",
471
471
  "dependencies": {
472
472
  "@dagrejs/dagre": "^3.0.0",
@@ -482,9 +482,9 @@
482
482
  }
483
483
  },
484
484
  "node_modules/@intentius/chant-k8s-client": {
485
- "version": "0.44.6",
486
- "resolved": "https://registry.npmjs.org/@intentius/chant-k8s-client/-/chant-k8s-client-0.44.6.tgz",
487
- "integrity": "sha512-Do3zY0Bd2nIITDDrXYePwdOBdnNf59xn5J1aJA6gsg3dzXxR3dZ25YBAh+SQxKbRPuXIbu9rKd5lodaM8ZQDng==",
485
+ "version": "0.44.7",
486
+ "resolved": "https://registry.npmjs.org/@intentius/chant-k8s-client/-/chant-k8s-client-0.44.7.tgz",
487
+ "integrity": "sha512-G9VVki/qHZ+hbKrxDDnVVhfeZWoHgozLA7tjcY/lsa/fDIwI0xMJnAN/DJNcQLBpRscXm3y3Ki/PNQ9SxshmLA==",
488
488
  "license": "Apache-2.0",
489
489
  "optional": true,
490
490
  "dependencies": {
@@ -492,19 +492,19 @@
492
492
  }
493
493
  },
494
494
  "node_modules/@intentius/chant-lexicon-k8s": {
495
- "version": "0.44.6",
496
- "resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-k8s/-/chant-lexicon-k8s-0.44.6.tgz",
497
- "integrity": "sha512-JP2Lo4fFV7FPbSTHapKuDgpvrsm3dbNBT9pMW9NQB2MoE/ZkMGf3z3/wsPnygLdjbYq29abVYmw7DzPqBmA1tw==",
495
+ "version": "0.44.7",
496
+ "resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-k8s/-/chant-lexicon-k8s-0.44.7.tgz",
497
+ "integrity": "sha512-h8QXOYoxjsAeA1w8koLQlZqOuSQcvWpEHKmwlf0AKPgwuVRiapwJI+UtuoBwL/AOrBKDh6Z5pW3zbo6vDltGvA==",
498
498
  "license": "Apache-2.0",
499
499
  "dependencies": {
500
500
  "@types/js-yaml": "^4.0.9",
501
501
  "js-yaml": "^4.1.1"
502
502
  },
503
503
  "optionalDependencies": {
504
- "@intentius/chant-k8s-client": "^0.44.6"
504
+ "@intentius/chant-k8s-client": "^0.44.7"
505
505
  },
506
506
  "peerDependencies": {
507
- "@intentius/chant": "^0.44.6",
507
+ "@intentius/chant": "^0.44.7",
508
508
  "typescript": "^5.9.3",
509
509
  "zod": "^4.3.6"
510
510
  }
@@ -1071,9 +1071,9 @@
1071
1071
  }
1072
1072
  },
1073
1073
  "node_modules/ip-address": {
1074
- "version": "10.4.0",
1075
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz",
1076
- "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==",
1074
+ "version": "10.5.0",
1075
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz",
1076
+ "integrity": "sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==",
1077
1077
  "license": "MIT",
1078
1078
  "optional": true,
1079
1079
  "engines": {
@@ -49,7 +49,7 @@ end of the walkthrough has somewhere to land.
49
49
 
50
50
  ## Bands
51
51
 
52
- Real output, from `chant carve advise` at chant 0.44.6. Reproduce it with:
52
+ Real output, from `chant carve advise` at chant 0.44.7. Reproduce it with:
53
53
 
54
54
  ```sh
55
55
  npm install -D @cdktf/hcl2json # once, anywhere on your PATH resolution
@@ -60,35 +60,45 @@ chant carve advise --from example-carve/legacy-tf \
60
60
  | score | address | band | why | role in the script |
61
61
  |---|---|---|---|---|
62
62
  | 100 | `aws_cloudwatch_log_group.worker` | clean leaf | clean 1:1 native map, no boundary edges | the free first move: named, not carved |
63
- | 88 | `aws_s3_bucket.assets` | clean leaf | 1 inbound | **the star** — the resource we carve on camera |
63
+ | 84 | `aws_s3_bucket.assets` | clean leaf | 1 inbound, 1 output | **the star** — the resource we carve on camera |
64
64
  | 71 | `module.cdn` | carvable w/ edits | 1 outbound, tier 2, data present | one module, so module scoring appears |
65
65
  | 69 | `aws_iam_role.api` | carvable w/ edits | 1 inbound, 1 outbound, tier 2 | what an inbound edge costs |
66
66
  | 69 | `aws_vpc_endpoint.ssm` | carvable w/ edits | 4 outbound, tier 2 | outbound edges are cheap, but they add up |
67
- | 65 | `aws_lambda_function.api` | carvable w/ edits | 5 outbound, tier 2 | the honest yellow: next month, not today |
68
- | 46 | `aws_subnet.private_a` | leave in Terraform | 3 inbound, 2 outbound, data present | |
69
- | 46 | `aws_subnet.private_b` | leave in Terraform | 3 inbound, 2 outbound, data present | |
67
+ | 61 | `aws_lambda_function.api` | carvable w/ edits | 1 output, 5 outbound, tier 2 | the honest yellow: next month, not today |
70
68
  | 43 | `aws_security_group.lambda` | leave in Terraform | 2 inbound, 2 outbound, tier 2, data present | |
71
- | 36 | `aws_vpc.main` | leave in Terraform | 5 inbound, 1 outbound | the grey anchor: this stays, and that's fine |
69
+ | 42 | `aws_subnet.private_a` | leave in Terraform | 3 inbound, 1 output, 2 outbound, data present | |
70
+ | 42 | `aws_subnet.private_b` | leave in Terraform | 3 inbound, 1 output, 2 outbound, data present | |
71
+ | 32 | `aws_vpc.main` | leave in Terraform | 5 inbound, 1 output, 1 outbound | the grey anchor: this stays, and that's fine |
72
72
  | 0 | `aws_network_acl.private` | leave in Terraform | no known native mapping | |
73
73
  | 0 | `random_pet.suffix` | leave in Terraform | no known native mapping | the long tail, stated plainly |
74
74
 
75
75
  Bands: 80-100 carve now, 50-79 carve with boundary edits, 0-49 leave in Terraform.
76
76
 
77
- The scoring model is `100 - 12*inbound - 4*outbound - 15*(tier-1) - 10*dynamic
78
- - 3*(instances-1)`, clamped, with unmapped types pinned at 0. Every number
77
+ The scoring model is `100 - 12*inbound - 4*outbound - 4*outputs - 15*(tier-1) -
78
+ 10*dynamic - 3*(instances-1)`, clamped, with unmapped types pinned at 0. The
79
+ `outputs` term is chant#1638 (chant 0.44.7): an `output` block that reads a
80
+ resource is a boundary edge too now, `bridge: "tf-output-rewrite"`, because
81
+ carving that resource means rewriting the output the same way carving a
82
+ resource with an inbound reference means adding a data source. Every number
79
83
  above is that arithmetic on the edges in `legacy-tf/`, which is why the estate
80
84
  is shaped the way it is:
81
85
 
82
- - The bucket has exactly one inbound edge, `aws_lambda_function.api`'s
83
- `ASSETS_BUCKET` environment variable. One edge, one patch, 88.
86
+ - The bucket has one inbound edge `aws_lambda_function.api`'s
87
+ `ASSETS_BUCKET` environment variable and, since `outputs.tf`'s
88
+ `assets_bucket` reads it too, one output edge. Two edges, two rewrites, 84.
89
+ `assets_bucket` is deliberate: a downstream consumer of this state reads the
90
+ bucket name today, so the carve has a second thing to bridge, not just the
91
+ lambda's env var.
84
92
  - `aws_s3_bucket_versioning.assets` and `aws_s3_bucket_public_access_block.assets`
85
93
  share the bucket's name, so they fold into its carve set. They are not ranked
86
94
  separately and their edges to the bucket are not counted against it.
87
- - Five resources point at the VPC. Carving it would mean patching all five at
88
- once, and 36 says so.
95
+ - Five resources point at the VPC, and its existing `vpc_id` output reads it
96
+ too. Carving it would mean patching all five survivors and rewriting the
97
+ output, and 32 says so.
89
98
  - The subnets and the security group each read a data source, which costs 10.
90
- That is what pushes them under the line rather than sitting awkwardly in the
91
- middle band next to the star.
99
+ The subnets also feed `private_subnet_ids`, an existing output, which costs
100
+ 4 more apiece and drops them under the security group's 43 — the one place
101
+ the outputs term reorders the table, not just re-scores it.
92
102
 
93
103
  No resource uses `count` or `for_each`, so the instance-count penalty is zero
94
104
  and `--state` produces byte-identical scores to a `.tf`-only parse. The bands do
@@ -109,14 +119,20 @@ chant carve advise --from example-carve/legacy-tf \
109
119
 
110
120
  from the repository root, so the `from` field stays a relative path.
111
121
 
112
- `app/` pins chant ^0.44.6 and that floor is load-bearing, not housekeeping: the
113
- advisor only publishes a top-level `version: 1` and per-resource `boundary` edge
114
- lists from 0.44.6 (chant#1636). Run the same command on 0.44.4 and every score
115
- is identical but no resource carries a `boundary` field at all, so the Pick step
116
- falls back to naming inbound/outbound COUNTS instead of highlighting the one
117
- `aws_lambda_function.api` edge the carve severs. The committed report above is
118
- byte-identical to what 0.44.6 regenerates, which is why the demo's fallback path
119
- and its fresh-run path show the same picture.
122
+ `app/` pins chant ^0.44.7 and that floor is load-bearing, not housekeeping, in
123
+ two layers. The advisor only publishes a top-level `version: 1` and
124
+ per-resource `boundary` edge lists from 0.44.6 (chant#1636) run the same
125
+ command on 0.44.4 and every score is identical but no resource carries a
126
+ `boundary` field at all, so the Pick step falls back to naming inbound/outbound
127
+ COUNTS instead of naming the edges the carve severs. 0.44.7 adds a second
128
+ layer on top: `output` blocks read as boundary edges (chant#1638), so the
129
+ bucket scores 84 instead of 88 and the report's `patchOnCarve` list names
130
+ `output.assets_bucket` alongside `aws_lambda_function.api`; and `carve emit`'s
131
+ fold is applied, not just reported (chant#1637), so the emitted bucket actually
132
+ carries `VersioningConfiguration` and `PublicAccessBlockConfiguration` instead
133
+ of leaving them in an "unmapped attributes" comment. The committed report above
134
+ is byte-identical to what 0.44.7 regenerates, which is why the demo's fallback
135
+ path and its fresh-run path show the same picture.
120
136
 
121
137
  ## The six beats
122
138
 
@@ -124,20 +140,21 @@ These are the six steps on the panel's Carve tab. behold runs beats 4 and 5
124
140
  itself, into `app/carveout/` in the copy; beat 6 is copy buttons, on purpose.
125
141
 
126
142
  1. **The green star.** The estate view, banded. Two resources are green; the
127
- 100 is a log group nobody will miss, so the eye lands on the 88 next to it.
128
- 2. **The arithmetic.** Open `aws_s3_bucket.assets`: 100 minus 12 for one
129
- inbound edge. The score is not a vibe, it is a subtraction, and the inspect
130
- pane shows the terms.
131
- 3. **The cut edge.** Highlight the one dependency the carve severs:
132
- `aws_lambda_function.api` reads the bucket name. One line of Terraform.
143
+ 100 is a log group nobody will miss, so the eye lands on the 84 next to it.
144
+ 2. **The arithmetic.** Open `aws_s3_bucket.assets`: 100 minus 12 for the
145
+ inbound edge, minus 4 more for the output block that reads it. The score is
146
+ not a vibe, it is a subtraction, and the inspect pane shows the terms.
147
+ 3. **The cut edge.** Highlight the two dependencies the carve severs:
148
+ `aws_lambda_function.api` reads the bucket name, and the `assets_bucket`
149
+ output reads it too. Two one-line rewrites, not one.
133
150
  4. **Emit.** `carve emit --from legacy-tf --state legacy-tf/terraform.tfstate
134
151
  --select aws_s3_bucket.assets` adopts the bucket from state into typed chant
135
- source, folds both sub-resources into the carve set, and writes a boundary
136
- report. Nothing is applied, nothing is destroyed, and `chant lint` on the
137
- result exits clean.
152
+ source, folds both sub-resources into the carve set AS native props
153
+ (chant#1637's fold, applied), and writes a boundary report. Nothing is
154
+ applied, nothing is destroyed, and `chant lint` on the result exits clean.
138
155
  5. **The bridge.** One `data "aws_s3_bucket" "assets"` block in the surviving
139
- Terraform, and `aws_lambda_function.api` reads from that instead. The
140
- surviving plan is whole again.
156
+ Terraform; `aws_lambda_function.api` and the `assets_bucket` output both
157
+ read from that instead. The surviving plan is whole again.
141
158
  6. **The handoff.** Two commands: `terraform state rm aws_s3_bucket.assets`,
142
159
  then chant takes the observe position. `terraform plan` shows no destroy.
143
160
 
@@ -153,14 +170,21 @@ no AWS account and no network. The only dependency beyond this directory is
153
170
  `@cdktf/hcl2json`, which chant lazy-loads and names in its error if absent. This
154
171
  tier guarantees the first thirty seconds of the video.
155
172
 
156
- **`--live` is the full video.** Boot a scratch Floci, arm
157
- `legacy-tf/floci-override.tf.disabled` (see its header), and `terraform apply`
158
- the estate into it, so the state is one terraform really wrote. Then the observe
159
- beats become footage rather than caption: after Emit, `chant lifecycle diff
160
- --live` reads the bucket out of Floci, clean, while Terraform still owns it; the
161
- handoff runs a real `terraform plan` showing no destroy; and behold's overlay
162
- flips the bucket green afterwards. The line it exists for is "Terraform forgot
163
- it, chant adopted it, and it never blinked."
173
+ **`--live` is the full video.** `behold demo carve --live` boots a scratch
174
+ Floci (`behold-carve-floci`, its own port, deleted on exit), arms
175
+ `legacy-tf/floci-override.tf.disabled` (see its header) into the demo copy, and
176
+ `terraform apply -target`s the starred resources into it so the tfstate the
177
+ advisor reads is one terraform really wrote. At Handoff the stepper gains a
178
+ read-only **terraform plan** button: before `state rm` it shows a no-op, after
179
+ it the carved bucket is simply gone from Terraform's world `0 to destroy`.
180
+ The line the tier exists for is "Terraform forgot it, chant adopted it, and it
181
+ never blinked."
182
+
183
+ One beat stays caption rather than footage for now: `chant lifecycle diff
184
+ --live` reading the bucket clean while Terraform still owns it. chant's AWS
185
+ observe is CFN-stack-scoped by logical id, so a Terraform-owned resource reads
186
+ confirmed-missing regardless of its existence — chant#1647 tracks the
187
+ physical-identity read path that unlocks it.
164
188
 
165
189
  The live tier needs `docker` and `terraform` on PATH, boots its own throwaway
166
190
  Floci and deletes it after, and never touches an existing `floci*` container.
@@ -169,22 +193,32 @@ walkthrough actually carves, are covered (chant's `just carve-emit-e2e` is the
169
193
  prior art). The VPC, lambda and CloudFront blocks are scenery for the advisor's
170
194
  grey band, so expect `-target` rather than one apply of the whole estate.
171
195
 
172
- ## Known rough edge in emit
196
+ ## Why build still fails
173
197
 
174
198
  `carve emit --state --select aws_s3_bucket.assets` reports "Folded in:
175
- `aws_s3_bucket_public_access_block.assets`, `aws_s3_bucket_versioning.assets`"
176
- and then emits a `Bucket` carrying neither. Only `bucket` and `tags` are in the
177
- AWS carve-out table's field map for `aws_s3_bucket`; versioning, public-access
178
- block and the state's server-side encryption block come out in the "unmapped
179
- Terraform attributes" comment instead. `chant lint` on the emitted project
180
- passes with warnings, but `chant build` fails on two AWS policy rules
181
- (`PublicAccessBlockConfiguration` missing, no TLS-deny bucket policy) even
182
- though the Terraform declared the first of those.
183
-
184
- Verified against chant 0.44.6. The walkthrough's Emit beat shows `lint`, not
185
- `build`, until the fold is applied as well as reported the step's "why lint
186
- and not build?" note says the same thing on screen, so nobody reads a lint pass
187
- as a build pass. That is chant#1637.
199
+ `aws_s3_bucket_public_access_block.assets`, `aws_s3_bucket_versioning.assets`",
200
+ and as of chant 0.44.7 (chant#1637, chant PR #1640) the emitted `Bucket`
201
+ actually carries both: `VersioningConfiguration` and
202
+ `PublicAccessBlockConfiguration` come out as native props, not an "unmapped
203
+ Terraform attributes" comment. That used to be the rough edge here — a fold
204
+ that was reported but not applied, so `chant build` failed two AWS policy
205
+ rules on source the advisor called clean. It is fixed now.
206
+
207
+ `chant lint` on the emitted project passes with warnings. `chant build` still
208
+ fails, but on one rule: WAW042, no bucket policy denying non-TLS requests.
209
+ That is not a carve-tooling gapgrep `legacy-tf/` for
210
+ `aws_s3_bucket_policy` and there isn't one. The Terraform never declared a
211
+ TLS-deny policy for this bucket, in any form; chant's post-synth checks
212
+ noticed the moment the resource had a native representation to check. Nothing
213
+ here would show up scanning the `.tf` by eye, because there is nothing to
214
+ find — only an absence.
215
+
216
+ Verified against chant 0.44.7. The walkthrough's Emit beat still shows `lint`,
217
+ not `build` — the step's "why lint and not build?" note says why on screen —
218
+ but the reason changed: `build` doesn't fail because the fold is incomplete
219
+ anymore, it fails because the estate really does have a policy gap. "chant
220
+ found a policy gap Terraform never noticed" is the honest line to close the
221
+ video on.
188
222
 
189
223
  ## Values
190
224
 
@@ -6,8 +6,8 @@
6
6
  "": {
7
7
  "name": "behold-example-carve-app",
8
8
  "dependencies": {
9
- "@intentius/chant": "^0.44.6",
10
- "@intentius/chant-lexicon-aws": "^0.44.6"
9
+ "@intentius/chant": "^0.44.7",
10
+ "@intentius/chant-lexicon-aws": "^0.44.7"
11
11
  }
12
12
  },
13
13
  "node_modules/@dagrejs/dagre": {
@@ -442,9 +442,9 @@
442
442
  }
443
443
  },
444
444
  "node_modules/@intentius/chant": {
445
- "version": "0.44.6",
446
- "resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.6.tgz",
447
- "integrity": "sha512-VFqPKe2WsSAJoUvfyghVTlIcj+QRNn//JgSHToq6PDDuKPU7F34V/4f+EZpX4MF3gvwVkZc9d6FUwKio6t0uqg==",
445
+ "version": "0.44.7",
446
+ "resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.7.tgz",
447
+ "integrity": "sha512-etCchkfbWFHJ+XnTYVVn9GT4/gZi/O8SVphDXHeuPOfK5VvRxo0unveIUEsuRoHGHgzN9Y+aj0Jk15xhIE7Gzg==",
448
448
  "license": "Apache-2.0",
449
449
  "dependencies": {
450
450
  "@dagrejs/dagre": "^3.0.0",
@@ -460,16 +460,16 @@
460
460
  }
461
461
  },
462
462
  "node_modules/@intentius/chant-lexicon-aws": {
463
- "version": "0.44.6",
464
- "resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-aws/-/chant-lexicon-aws-0.44.6.tgz",
465
- "integrity": "sha512-2qGwWFCRLkT9MD5YFnhnZOGDCqPZg9la4MM8szlX8QxFFoQjAulJ8e+vjeCGbWoB8nbSIQ9kJOX8Yn46Pm37iQ==",
463
+ "version": "0.44.7",
464
+ "resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-aws/-/chant-lexicon-aws-0.44.7.tgz",
465
+ "integrity": "sha512-tlwcUv0zN5rTupRdJHdcYSsKbodiVjYaBAwG/omK4hYPtys3dZMjLVOt8bszBeTKp+h8boIEjhwpgQKpDAGmcQ==",
466
466
  "license": "Apache-2.0",
467
467
  "dependencies": {
468
468
  "fflate": "^0.8.2",
469
469
  "js-yaml": "^4.1.0"
470
470
  },
471
471
  "peerDependencies": {
472
- "@intentius/chant": "^0.44.6",
472
+ "@intentius/chant": "^0.44.7",
473
473
  "typescript": "^5.9.3"
474
474
  }
475
475
  },
@@ -7,7 +7,7 @@
7
7
  "build": "./node_modules/.bin/chant build src --lexicon aws -o template.json"
8
8
  },
9
9
  "dependencies": {
10
- "@intentius/chant": "^0.44.6",
11
- "@intentius/chant-lexicon-aws": "^0.44.6"
10
+ "@intentius/chant": "^0.44.7",
11
+ "@intentius/chant-lexicon-aws": "^0.44.7"
12
12
  }
13
13
  }