@intentius/behold 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/cli.js +32 -22
- package/example-argo-estate/app-a/package.json +2 -2
- package/example-argo-estate/app-b/package.json +2 -2
- package/example-argo-estate/control-plane/package.json +2 -2
- package/example-argo-estate/package-lock.json +20 -20
- package/example-carve/README.md +74 -47
- package/example-carve/app/package-lock.json +9 -9
- package/example-carve/app/package.json +2 -2
- package/example-carve/carve-report.json +140 -50
- package/example-carve/legacy-tf/outputs.tf +9 -4
- package/example-flux-estate/app-a/package.json +2 -2
- package/example-flux-estate/app-b/package.json +2 -2
- package/example-flux-estate/control-plane/package.json +2 -2
- package/example-flux-estate/package-lock.json +20 -20
- package/example-k8s/package-lock.json +21 -21
- package/example-k8s/package.json +3 -3
- package/example-writes/package-lock.json +14 -14
- package/example-writes/package.json +3 -3
- package/package.json +1 -1
- package/web/carve-steps.js +12 -1
- package/web/carve-steps.test.js +15 -0
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
"": {
|
|
7
7
|
"name": "behold-example-k8s",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@intentius/chant": "^0.44.
|
|
10
|
-
"@intentius/chant-lexicon-k8s": "^0.44.
|
|
11
|
-
"@intentius/chant-lexicon-temporal": "^0.44.
|
|
9
|
+
"@intentius/chant": "^0.44.7",
|
|
10
|
+
"@intentius/chant-lexicon-k8s": "^0.44.7",
|
|
11
|
+
"@intentius/chant-lexicon-temporal": "^0.44.7"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"node_modules/@dagrejs/dagre": {
|
|
@@ -443,9 +443,9 @@
|
|
|
443
443
|
}
|
|
444
444
|
},
|
|
445
445
|
"node_modules/@intentius/chant": {
|
|
446
|
-
"version": "0.44.
|
|
447
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.
|
|
448
|
-
"integrity": "sha512-
|
|
446
|
+
"version": "0.44.7",
|
|
447
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.7.tgz",
|
|
448
|
+
"integrity": "sha512-etCchkfbWFHJ+XnTYVVn9GT4/gZi/O8SVphDXHeuPOfK5VvRxo0unveIUEsuRoHGHgzN9Y+aj0Jk15xhIE7Gzg==",
|
|
449
449
|
"license": "Apache-2.0",
|
|
450
450
|
"dependencies": {
|
|
451
451
|
"@dagrejs/dagre": "^3.0.0",
|
|
@@ -461,9 +461,9 @@
|
|
|
461
461
|
}
|
|
462
462
|
},
|
|
463
463
|
"node_modules/@intentius/chant-k8s-client": {
|
|
464
|
-
"version": "0.44.
|
|
465
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-k8s-client/-/chant-k8s-client-0.44.
|
|
466
|
-
"integrity": "sha512-
|
|
464
|
+
"version": "0.44.7",
|
|
465
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-k8s-client/-/chant-k8s-client-0.44.7.tgz",
|
|
466
|
+
"integrity": "sha512-G9VVki/qHZ+hbKrxDDnVVhfeZWoHgozLA7tjcY/lsa/fDIwI0xMJnAN/DJNcQLBpRscXm3y3Ki/PNQ9SxshmLA==",
|
|
467
467
|
"license": "Apache-2.0",
|
|
468
468
|
"optional": true,
|
|
469
469
|
"dependencies": {
|
|
@@ -471,34 +471,34 @@
|
|
|
471
471
|
}
|
|
472
472
|
},
|
|
473
473
|
"node_modules/@intentius/chant-lexicon-k8s": {
|
|
474
|
-
"version": "0.44.
|
|
475
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-k8s/-/chant-lexicon-k8s-0.44.
|
|
476
|
-
"integrity": "sha512-
|
|
474
|
+
"version": "0.44.7",
|
|
475
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-k8s/-/chant-lexicon-k8s-0.44.7.tgz",
|
|
476
|
+
"integrity": "sha512-h8QXOYoxjsAeA1w8koLQlZqOuSQcvWpEHKmwlf0AKPgwuVRiapwJI+UtuoBwL/AOrBKDh6Z5pW3zbo6vDltGvA==",
|
|
477
477
|
"license": "Apache-2.0",
|
|
478
478
|
"dependencies": {
|
|
479
479
|
"@types/js-yaml": "^4.0.9",
|
|
480
480
|
"js-yaml": "^4.1.1"
|
|
481
481
|
},
|
|
482
482
|
"optionalDependencies": {
|
|
483
|
-
"@intentius/chant-k8s-client": "^0.44.
|
|
483
|
+
"@intentius/chant-k8s-client": "^0.44.7"
|
|
484
484
|
},
|
|
485
485
|
"peerDependencies": {
|
|
486
|
-
"@intentius/chant": "^0.44.
|
|
486
|
+
"@intentius/chant": "^0.44.7",
|
|
487
487
|
"typescript": "^5.9.3",
|
|
488
488
|
"zod": "^4.3.6"
|
|
489
489
|
}
|
|
490
490
|
},
|
|
491
491
|
"node_modules/@intentius/chant-lexicon-temporal": {
|
|
492
|
-
"version": "0.44.
|
|
493
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-temporal/-/chant-lexicon-temporal-0.44.
|
|
494
|
-
"integrity": "sha512-
|
|
492
|
+
"version": "0.44.7",
|
|
493
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-temporal/-/chant-lexicon-temporal-0.44.7.tgz",
|
|
494
|
+
"integrity": "sha512-tA7DaXGG9dsHwbMO7SNQhdVnpgsdTtZNyRexS9MdVgS4xuWHIV9N76oISEd2hK76vwPXBD/d/e+2OT6amlse1A==",
|
|
495
495
|
"license": "Apache-2.0",
|
|
496
496
|
"dependencies": {
|
|
497
497
|
"@temporalio/common": "^1.17.2",
|
|
498
498
|
"js-yaml": "^4.1.1"
|
|
499
499
|
},
|
|
500
500
|
"peerDependencies": {
|
|
501
|
-
"@intentius/chant": "^0.44.
|
|
501
|
+
"@intentius/chant": "^0.44.7",
|
|
502
502
|
"typescript": "^5.9.3",
|
|
503
503
|
"zod": "^4.3.6"
|
|
504
504
|
}
|
|
@@ -1145,9 +1145,9 @@
|
|
|
1145
1145
|
}
|
|
1146
1146
|
},
|
|
1147
1147
|
"node_modules/ip-address": {
|
|
1148
|
-
"version": "10.
|
|
1149
|
-
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.
|
|
1150
|
-
"integrity": "sha512-
|
|
1148
|
+
"version": "10.5.0",
|
|
1149
|
+
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz",
|
|
1150
|
+
"integrity": "sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==",
|
|
1151
1151
|
"license": "MIT",
|
|
1152
1152
|
"optional": true,
|
|
1153
1153
|
"engines": {
|
package/example-k8s/package.json
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"build": "./node_modules/.bin/chant build src --lexicon k8s -o app.yaml"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@intentius/chant": "^0.44.
|
|
11
|
-
"@intentius/chant-lexicon-k8s": "^0.44.
|
|
12
|
-
"@intentius/chant-lexicon-temporal": "^0.44.
|
|
10
|
+
"@intentius/chant": "^0.44.7",
|
|
11
|
+
"@intentius/chant-lexicon-k8s": "^0.44.7",
|
|
12
|
+
"@intentius/chant-lexicon-temporal": "^0.44.7"
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
"": {
|
|
7
7
|
"name": "behold-example-writes",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@intentius/chant": "^0.44.
|
|
10
|
-
"@intentius/chant-lexicon-aws": "^0.44.
|
|
11
|
-
"@intentius/chant-lexicon-temporal": "^0.44.
|
|
9
|
+
"@intentius/chant": "^0.44.7",
|
|
10
|
+
"@intentius/chant-lexicon-aws": "^0.44.7",
|
|
11
|
+
"@intentius/chant-lexicon-temporal": "^0.44.7"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"node_modules/@dagrejs/dagre": {
|
|
@@ -443,9 +443,9 @@
|
|
|
443
443
|
}
|
|
444
444
|
},
|
|
445
445
|
"node_modules/@intentius/chant": {
|
|
446
|
-
"version": "0.44.
|
|
447
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.
|
|
448
|
-
"integrity": "sha512-
|
|
446
|
+
"version": "0.44.7",
|
|
447
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant/-/chant-0.44.7.tgz",
|
|
448
|
+
"integrity": "sha512-etCchkfbWFHJ+XnTYVVn9GT4/gZi/O8SVphDXHeuPOfK5VvRxo0unveIUEsuRoHGHgzN9Y+aj0Jk15xhIE7Gzg==",
|
|
449
449
|
"license": "Apache-2.0",
|
|
450
450
|
"dependencies": {
|
|
451
451
|
"@dagrejs/dagre": "^3.0.0",
|
|
@@ -461,30 +461,30 @@
|
|
|
461
461
|
}
|
|
462
462
|
},
|
|
463
463
|
"node_modules/@intentius/chant-lexicon-aws": {
|
|
464
|
-
"version": "0.44.
|
|
465
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-aws/-/chant-lexicon-aws-0.44.
|
|
466
|
-
"integrity": "sha512-
|
|
464
|
+
"version": "0.44.7",
|
|
465
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-aws/-/chant-lexicon-aws-0.44.7.tgz",
|
|
466
|
+
"integrity": "sha512-tlwcUv0zN5rTupRdJHdcYSsKbodiVjYaBAwG/omK4hYPtys3dZMjLVOt8bszBeTKp+h8boIEjhwpgQKpDAGmcQ==",
|
|
467
467
|
"license": "Apache-2.0",
|
|
468
468
|
"dependencies": {
|
|
469
469
|
"fflate": "^0.8.2",
|
|
470
470
|
"js-yaml": "^4.1.0"
|
|
471
471
|
},
|
|
472
472
|
"peerDependencies": {
|
|
473
|
-
"@intentius/chant": "^0.44.
|
|
473
|
+
"@intentius/chant": "^0.44.7",
|
|
474
474
|
"typescript": "^5.9.3"
|
|
475
475
|
}
|
|
476
476
|
},
|
|
477
477
|
"node_modules/@intentius/chant-lexicon-temporal": {
|
|
478
|
-
"version": "0.44.
|
|
479
|
-
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-temporal/-/chant-lexicon-temporal-0.44.
|
|
480
|
-
"integrity": "sha512-
|
|
478
|
+
"version": "0.44.7",
|
|
479
|
+
"resolved": "https://registry.npmjs.org/@intentius/chant-lexicon-temporal/-/chant-lexicon-temporal-0.44.7.tgz",
|
|
480
|
+
"integrity": "sha512-tA7DaXGG9dsHwbMO7SNQhdVnpgsdTtZNyRexS9MdVgS4xuWHIV9N76oISEd2hK76vwPXBD/d/e+2OT6amlse1A==",
|
|
481
481
|
"license": "Apache-2.0",
|
|
482
482
|
"dependencies": {
|
|
483
483
|
"@temporalio/common": "^1.17.2",
|
|
484
484
|
"js-yaml": "^4.1.1"
|
|
485
485
|
},
|
|
486
486
|
"peerDependencies": {
|
|
487
|
-
"@intentius/chant": "^0.44.
|
|
487
|
+
"@intentius/chant": "^0.44.7",
|
|
488
488
|
"typescript": "^5.9.3",
|
|
489
489
|
"zod": "^4.3.6"
|
|
490
490
|
}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"build": "./node_modules/.bin/chant build src --lexicon aws -o template.json"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@intentius/chant": "^0.44.
|
|
11
|
-
"@intentius/chant-lexicon-aws": "^0.44.
|
|
12
|
-
"@intentius/chant-lexicon-temporal": "^0.44.
|
|
10
|
+
"@intentius/chant": "^0.44.7",
|
|
11
|
+
"@intentius/chant-lexicon-aws": "^0.44.7",
|
|
12
|
+
"@intentius/chant-lexicon-temporal": "^0.44.7"
|
|
13
13
|
}
|
|
14
14
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentius/behold",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "behold — a live control plane on chant. See your whole estate (every substrate in one graph), coloured by drift; act through delegated, gated Ops.",
|
|
6
6
|
"bin": {
|
package/web/carve-steps.js
CHANGED
|
@@ -140,7 +140,18 @@ export function edgeLine(e) {
|
|
|
140
140
|
? `${e.survivor} reads ${attrs || "this resource"}`
|
|
141
141
|
: `this resource reads ${attrs || "something"} from ${e.survivor}`;
|
|
142
142
|
const where = via ? ` (in its ${via})` : "";
|
|
143
|
-
|
|
143
|
+
// Three bridge shapes chant hands back, not two: a survivor's own reference
|
|
144
|
+
// becomes a data source (`tf-data-source`) or a deploy-time input
|
|
145
|
+
// (`deferred-input`); an `output` block reading the carved resource becomes
|
|
146
|
+
// a one-line rewrite instead (`tf-output-rewrite`, chant#1638) — it is
|
|
147
|
+
// neither of the other two, and defaulting it to "data source" would name
|
|
148
|
+
// the wrong fix for a line that was never a data block to begin with.
|
|
149
|
+
const fix =
|
|
150
|
+
e.bridge === "deferred-input"
|
|
151
|
+
? "becomes a deploy-time input"
|
|
152
|
+
: e.bridge === "tf-output-rewrite"
|
|
153
|
+
? "becomes a one-line output rewrite"
|
|
154
|
+
: "becomes a Terraform data source";
|
|
144
155
|
const when = e.required === "at-apply" ? ", deferred until apply" : e.required === "immediately" ? ", needed immediately" : "";
|
|
145
156
|
return `${dir} — ${head}${where} → ${fix}${when}`;
|
|
146
157
|
}
|
package/web/carve-steps.test.js
CHANGED
|
@@ -149,6 +149,21 @@ describe("edgeLine", () => {
|
|
|
149
149
|
expect(edgeLine({ direction: "outbound", survivor: "vpc", carved: "sg", attrs: ["id"] })).toContain("from vpc");
|
|
150
150
|
expect(edgeLine({ direction: "outbound", survivor: "vpc", carved: "sg", bridge: "deferred-input" })).toContain("deploy-time input");
|
|
151
151
|
});
|
|
152
|
+
|
|
153
|
+
it("names an output block's fix as a rewrite, not a data source (chant#1638)", () => {
|
|
154
|
+
const line = edgeLine({
|
|
155
|
+
direction: "inbound",
|
|
156
|
+
survivor: "output.assets_bucket",
|
|
157
|
+
carved: "aws_s3_bucket.assets",
|
|
158
|
+
attrs: ["bucket"],
|
|
159
|
+
via: ["value"],
|
|
160
|
+
bridge: "tf-output-rewrite",
|
|
161
|
+
required: "immediately",
|
|
162
|
+
});
|
|
163
|
+
expect(line).toContain("output.assets_bucket reads bucket");
|
|
164
|
+
expect(line).toContain("output rewrite");
|
|
165
|
+
expect(line).not.toContain("data source");
|
|
166
|
+
});
|
|
152
167
|
});
|
|
153
168
|
|
|
154
169
|
describe("pickFacts / carveable", () => {
|