@m8t-stack/cli 0.2.94 → 0.2.96
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/dist/cli.js +22 -3
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1487,7 +1487,7 @@ function installFoundryDnsShim() {
|
|
|
1487
1487
|
}
|
|
1488
1488
|
|
|
1489
1489
|
// src/lib/package-version.ts
|
|
1490
|
-
var CLI_VERSION = "0.2.
|
|
1490
|
+
var CLI_VERSION = "0.2.96";
|
|
1491
1491
|
|
|
1492
1492
|
// src/lib/render-error.ts
|
|
1493
1493
|
init_errors();
|
|
@@ -21005,9 +21005,12 @@ function parseAssignSubscriptionRoles(v) {
|
|
|
21005
21005
|
hint: "Use one of: true, false."
|
|
21006
21006
|
});
|
|
21007
21007
|
}
|
|
21008
|
+
function normalizeAzureLocation(location) {
|
|
21009
|
+
return location.trim().toLowerCase().replace(/\s+/g, "");
|
|
21010
|
+
}
|
|
21008
21011
|
function buildBicepParams(p) {
|
|
21009
21012
|
const params = [
|
|
21010
|
-
`location=${p.location}`,
|
|
21013
|
+
`location=${normalizeAzureLocation(p.location)}`,
|
|
21011
21014
|
`suffix=${p.suffix}`,
|
|
21012
21015
|
`imageRef=${p.imageRef}`,
|
|
21013
21016
|
`tenantId=${p.tenantId}`,
|
|
@@ -24948,6 +24951,16 @@ var KNOWN_NOISE = [
|
|
|
24948
24951
|
{ resourceType: "Microsoft.App/containerApps", pathPattern: /(^|\.)configuration\.secrets$/, reason: "shared relay secret is regenerated on every deployment \u2014 owned elsewhere" },
|
|
24949
24952
|
{ resourceType: "Microsoft.App/containerApps", pathPattern: /(^|\.)configuration\.secrets\[\d+\]\.value$/, reason: "shared relay secret is regenerated on every deployment \u2014 owned elsewhere" }
|
|
24950
24953
|
];
|
|
24954
|
+
var PROBE_LEAF = /\.probes\[\d+\]\./;
|
|
24955
|
+
var PROBE_TYPE_LEAF = /\.probes\[\d+\]\.type$/;
|
|
24956
|
+
function isProbeReordering(leaves) {
|
|
24957
|
+
const types = leaves.filter((l) => PROBE_TYPE_LEAF.test(l.path));
|
|
24958
|
+
if (types.length === 0) return false;
|
|
24959
|
+
const before = types.map((l) => l.before).filter((v) => typeof v === "string").sort();
|
|
24960
|
+
const after = types.map((l) => l.after).filter((v) => typeof v === "string").sort();
|
|
24961
|
+
if (before.length !== types.length || after.length !== types.length) return false;
|
|
24962
|
+
return before.every((v, i) => v === after[i]);
|
|
24963
|
+
}
|
|
24951
24964
|
var shortName = (resourceId) => resourceId.startsWith("[") ? "(role assignment)" : resourceId.split("/").pop() ?? resourceId;
|
|
24952
24965
|
function isArmExpression(v) {
|
|
24953
24966
|
return typeof v === "string" && /^\[.*\b(reference|format|guid|subscriptionResourceId|extensionResourceId)\(/.test(v) && v.endsWith("]");
|
|
@@ -24978,8 +24991,14 @@ function classifyWhatIf(changes) {
|
|
|
24978
24991
|
}
|
|
24979
24992
|
const resourceType = deriveResourceType(c.resourceId);
|
|
24980
24993
|
const resourceName = shortName(c.resourceId);
|
|
24981
|
-
|
|
24994
|
+
const leaves = flattenDelta(c.delta ?? []);
|
|
24995
|
+
const probesReordered = isProbeReordering(leaves);
|
|
24996
|
+
for (const leaf of leaves) {
|
|
24982
24997
|
const base = { resourceType, resourceName, path: leaf.path, before: leaf.before, after: leaf.after };
|
|
24998
|
+
if (probesReordered && PROBE_LEAF.test(leaf.path)) {
|
|
24999
|
+
noise.push({ ...base, reason: "probe array reordered by the RP; same probe set \u2014 no apply can reconcile it" });
|
|
25000
|
+
continue;
|
|
25001
|
+
}
|
|
24983
25002
|
if (leaf.propertyChangeType === "NoEffect") {
|
|
24984
25003
|
noise.push({ ...base, reason: "NoEffect (no-op)" });
|
|
24985
25004
|
continue;
|