@mutmutco/cli 4.5.1 → 4.5.2
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/main.cjs +14 -10
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -15998,10 +15998,10 @@ var rollout_plan_default = {
|
|
|
15998
15998
|
note: "The v4.0.0 stamp happens at cut time (D6e #4463); until then the candidate is the origin/development head artifacts (built cli/dist + npm pack), identity proven by dist content hash (D6a)."
|
|
15999
15999
|
},
|
|
16000
16000
|
baseline: {
|
|
16001
|
-
version: "4.5.
|
|
16002
|
-
tag: "v4.5.
|
|
16003
|
-
commit: "
|
|
16004
|
-
npm: "@mutmutco/cli@4.5.
|
|
16001
|
+
version: "4.5.2",
|
|
16002
|
+
tag: "v4.5.2",
|
|
16003
|
+
commit: "32bfbb00fcb9",
|
|
16004
|
+
npm: "@mutmutco/cli@4.5.2"
|
|
16005
16005
|
},
|
|
16006
16006
|
exitCriterion: "fleet-n-of-n",
|
|
16007
16007
|
hubOnlyShortcut: "forbidden",
|
|
@@ -16018,14 +16018,14 @@ var rollout_plan_default = {
|
|
|
16018
16018
|
repo: "mutmutco/mmi-hub",
|
|
16019
16019
|
role: "canary",
|
|
16020
16020
|
schedule: "train",
|
|
16021
|
-
v3Target: "v4.5.
|
|
16021
|
+
v3Target: "v4.5.2"
|
|
16022
16022
|
}
|
|
16023
16023
|
],
|
|
16024
16024
|
rollbackTrigger: "Any red inside the post-contract soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a pre-v4 client admitted instead of receiving actionable HTTP 426, or npm consumer install/doctor failure on the v4-only dist.",
|
|
16025
16025
|
rollback: {
|
|
16026
16026
|
independent: true,
|
|
16027
|
-
mechanism: "npm dist-tag latest -> 4.5.
|
|
16028
|
-
v3Target: "v4.5.
|
|
16027
|
+
mechanism: "npm dist-tag latest -> 4.5.2 and redeploy the Hub Lambda from tag v4.5.2 (32bfbb00fcb9); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
16028
|
+
v3Target: "v4.5.2 (@mutmutco/cli@4.5.2, tag commit 32bfbb00fcb9 \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
16029
16029
|
}
|
|
16030
16030
|
},
|
|
16031
16031
|
{
|
|
@@ -18814,19 +18814,20 @@ function expectedInstallerLogin(family, division) {
|
|
|
18814
18814
|
return String(division ?? "").trim().toLowerCase() === "mmi" ? "github" : "google";
|
|
18815
18815
|
}
|
|
18816
18816
|
function installerVersionUrl(installer) {
|
|
18817
|
+
if (typeof installer.gate === "string" && installer.gate) return `${installer.gate.replace(/\/+$/, "")}/release/version`;
|
|
18817
18818
|
return `https://${INSTALLER_FAMILY_HOSTS[installer.family]}/${installer.product}/release/version`;
|
|
18818
18819
|
}
|
|
18819
18820
|
function installerDeclarationError(value, division) {
|
|
18820
18821
|
if (value === void 0 || value === null) return null;
|
|
18821
18822
|
if (typeof value !== "object" || Array.isArray(value)) {
|
|
18822
|
-
return "installer must be an object {product, family, login?}";
|
|
18823
|
+
return "installer must be an object {product, family, login?, gate?}";
|
|
18823
18824
|
}
|
|
18824
18825
|
const record = (
|
|
18825
18826
|
/** @type {Record<string, unknown>} */
|
|
18826
18827
|
value
|
|
18827
18828
|
);
|
|
18828
18829
|
for (const key of Object.keys(record)) {
|
|
18829
|
-
if (!["product", "family", "login"].includes(key)) return `installer.${key} is not a field \u2014 expected product, family and optionally login`;
|
|
18830
|
+
if (!["product", "family", "login", "gate"].includes(key)) return `installer.${key} is not a field \u2014 expected product, family and optionally login and gate`;
|
|
18830
18831
|
}
|
|
18831
18832
|
if (typeof record.product !== "string" || !PRODUCT_RE.test(record.product)) {
|
|
18832
18833
|
return "installer.product must be a lowercase kebab name (e.g. mm-strategy) \u2014 it is the /<product> path on the family host";
|
|
@@ -18837,6 +18838,9 @@ function installerDeclarationError(value, division) {
|
|
|
18837
18838
|
)) {
|
|
18838
18839
|
return `installer.family must be one of: ${INSTALLER_FAMILIES.join(", ")} (jerv \u2192 ${INSTALLER_FAMILY_HOSTS.jerv}, mmi \u2192 ${INSTALLER_FAMILY_HOSTS.mmi})`;
|
|
18839
18840
|
}
|
|
18841
|
+
if (record.gate !== void 0 && (typeof record.gate !== "string" || !/^https:\/\/[a-z0-9.-]+\.[a-z]{2,}(\/[A-Za-z0-9._\/-]*)?$/.test(record.gate))) {
|
|
18842
|
+
return "installer.gate must be the https origin of the product's own sign-in server (e.g. https://strategy.mutmut.work)";
|
|
18843
|
+
}
|
|
18840
18844
|
if (record.login !== void 0 && !INSTALLER_LOGINS.includes(
|
|
18841
18845
|
/** @type {string} */
|
|
18842
18846
|
record.login
|
|
@@ -31346,7 +31350,7 @@ var SETTABLE_VAR_HINTS = {
|
|
|
31346
31350
|
consumesDesignSystem: '"fofu"',
|
|
31347
31351
|
runtimeVaultOnly: "true|false",
|
|
31348
31352
|
seedCanary: "true|false",
|
|
31349
|
-
installer: "JSON {product,family:jerv|mmi,login?:github|google} \u2014 the repo ships a one-line installer on get.jerv.ai or get.mutmut.work",
|
|
31353
|
+
installer: "JSON {product,family:jerv|mmi,login?:github|google,gate?:https origin of its own sign-in server} \u2014 the repo ships a one-line installer on get.jerv.ai or get.mutmut.work",
|
|
31350
31354
|
repos: 'JSON array, e.g. ["mutmutco/mm-foo"]',
|
|
31351
31355
|
oauth: "JSON {subdomains,domains,callbackPath,extraCallbackPaths}",
|
|
31352
31356
|
requiredGcpApis: "comma-string",
|
package/package.json
CHANGED