@mutmutco/cli 4.5.173 → 4.5.174

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 (2) hide show
  1. package/dist/main.cjs +31 -9
  2. package/package.json +1 -1
package/dist/main.cjs CHANGED
@@ -19104,10 +19104,10 @@ var rollout_plan_default = {
19104
19104
  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)."
19105
19105
  },
19106
19106
  baseline: {
19107
- version: "4.5.173",
19108
- tag: "v4.5.173",
19109
- commit: "065efddb8d28",
19110
- npm: "@mutmutco/cli@4.5.173"
19107
+ version: "4.5.174",
19108
+ tag: "v4.5.174",
19109
+ commit: "2db083c19203",
19110
+ npm: "@mutmutco/cli@4.5.174"
19111
19111
  },
19112
19112
  exitCriterion: "fleet-n-of-n",
19113
19113
  hubOnlyShortcut: "forbidden",
@@ -19124,14 +19124,14 @@ var rollout_plan_default = {
19124
19124
  repo: "mutmutco/mmi-hub",
19125
19125
  role: "canary",
19126
19126
  schedule: "train",
19127
- v3Target: "v4.5.173"
19127
+ v3Target: "v4.5.174"
19128
19128
  }
19129
19129
  ],
19130
19130
  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.",
19131
19131
  rollback: {
19132
19132
  independent: true,
19133
- mechanism: "npm dist-tag latest -> 4.5.173 and redeploy the Hub Lambda from tag v4.5.173 (065efddb8d28); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
19134
- v3Target: "v4.5.173 (@mutmutco/cli@4.5.173, tag commit 065efddb8d28 \u2014 last known-good release carrying the repo-index v4-only contract)"
19133
+ mechanism: "npm dist-tag latest -> 4.5.174 and redeploy the Hub Lambda from tag v4.5.174 (2db083c19203); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
19134
+ v3Target: "v4.5.174 (@mutmutco/cli@4.5.174, tag commit 2db083c19203 \u2014 last known-good release carrying the repo-index v4-only contract)"
19135
19135
  }
19136
19136
  },
19137
19137
  {
@@ -33210,7 +33210,7 @@ init_hub_auth();
33210
33210
  init_github_client();
33211
33211
 
33212
33212
  // src/project-set.ts
33213
- var UNSET_KEYS = ["projectAdmins", "installer", "oauth", "requiredRuntimeSecrets", "requiredBuildSecrets", "tenantTasks", "secrets", "edgeDomains", "requiredGcpApis", "publishRequired", "publishDir", "releaseChannel", "releaseLanguage", "ci", "requiredChecks", "requiredCheckBranches", "ciExemptReason", "gate", "seedCanary", "notifyOnDeploy", "vercelVersionEnv", "stageAllowlist", "suiteHold", "internalPeers"];
33213
+ var UNSET_KEYS = ["projectAdmins", "installer", "oauth", "requiredRuntimeSecrets", "requiredBuildSecrets", "tenantTasks", "secrets", "edgeDomains", "requiredGcpApis", "publishRequired", "publishDir", "releaseChannel", "releaseLanguage", "ci", "requiredChecks", "requiredCheckBranches", "ciExemptReason", "gate", "seedCanary", "notifyOnDeploy", "vercelVersionEnv", "stageAllowlist", "suiteHold", "internalPeers", "previews"];
33214
33214
  var UNSET_KEY_SET = new Set(UNSET_KEYS);
33215
33215
  var RUNTIME_SECRET_STAGES = ["dev", "rc", "main"];
33216
33216
  var SECRET_CONSUMERS = ["runtime", "build", "lambda", "actions", "agent", "box"];
@@ -33600,6 +33600,24 @@ function parseStageAllowlistVar(raw) {
33600
33600
  }
33601
33601
  return { key: row.key, stages: row.stages };
33602
33602
  }
33603
+ function parsePreviewsVar(raw) {
33604
+ let parsed;
33605
+ try {
33606
+ parsed = JSON.parse(raw);
33607
+ } catch {
33608
+ throw new Error('org project set: previews must be JSON, e.g. {"seed":"deploy/preview-seed.sh"}');
33609
+ }
33610
+ const shape = "org project set: previews must be { seed, secrets? } \u2014 seed a repo-relative script path (no leading / or ..) and secrets a non-empty array (max 40) of env key names";
33611
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error(shape);
33612
+ const row = parsed;
33613
+ const unknown = Object.keys(row).filter((key) => key !== "seed" && key !== "secrets");
33614
+ if (unknown.length > 0) throw new Error(`org project set: previews has unknown field(s): ${unknown.join(", ")}`);
33615
+ const { seed, secrets } = row;
33616
+ if (typeof seed !== "string" || !/^[A-Za-z0-9][A-Za-z0-9._/-]{0,199}$/.test(seed) || seed.includes("..")) throw new Error(shape);
33617
+ if (secrets === void 0) return { seed };
33618
+ if (!Array.isArray(secrets) || secrets.length === 0 || secrets.length > 40 || !secrets.every((k) => typeof k === "string" && /^[A-Z_][A-Z0-9_]*$/.test(k))) throw new Error(shape);
33619
+ return { seed, secrets };
33620
+ }
33603
33621
  function parseCiExemptReasonVar(raw) {
33604
33622
  const trimmed = raw.trim();
33605
33623
  if (!trimmed) throw new Error("org project set: ciExemptReason must be a non-empty reason (or use --unset ciExemptReason to clear it)");
@@ -33754,7 +33772,8 @@ var SETTABLE_VAR_KEYS = [
33754
33772
  "installer",
33755
33773
  "notifyOnDeploy",
33756
33774
  "vercelVersionEnv",
33757
- "stageAllowlist"
33775
+ "stageAllowlist",
33776
+ "previews"
33758
33777
  ];
33759
33778
  var SETTABLE_VAR_KEY_SET = new Set(SETTABLE_VAR_KEYS);
33760
33779
  var SETTABLE_VAR_HINTS = {
@@ -33786,6 +33805,7 @@ var SETTABLE_VAR_HINTS = {
33786
33805
  notifyOnDeploy: 'JSON stage array, e.g. ["dev"] \u2014 successful tenant-deploy sends <stage>-deployed to the project repo (#7358)',
33787
33806
  vercelVersionEnv: "JSON {project,key,team?} \u2014 train sets this Vercel env to the release tag before the main/rc push (#7362)",
33788
33807
  stageAllowlist: "JSON {key,stages[]} \u2014 `org access sync` writes the developer/admin company-email allowlist to <stage>/<key> for each listed stage (#7678)",
33808
+ previews: "JSON {seed,secrets?} \u2014 per-PR preview contract; absent means previews off; clear with --unset previews (#8405)",
33789
33809
  ciExemptReason: "non-empty string \u2014 declares this deployable repo has no CI surface (#4265)",
33790
33810
  gate: "JSON {runtime,cmd,affectedCmd,workdir,cacheDepPath,pyVersion}"
33791
33811
  };
@@ -33981,6 +34001,8 @@ function buildProjectSetPatch(input) {
33981
34001
  patch[key] = parseVercelVersionEnvVar(raw);
33982
34002
  } else if (key === "stageAllowlist") {
33983
34003
  patch[key] = parseStageAllowlistVar(raw);
34004
+ } else if (key === "previews") {
34005
+ patch[key] = parsePreviewsVar(raw);
33984
34006
  } else if (key === "ciExemptReason") {
33985
34007
  patch[key] = parseCiExemptReasonVar(raw);
33986
34008
  } else if (key === "gate") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "4.5.173",
3
+ "version": "4.5.174",
4
4
  "description": "MMI Future CLI — the org dev toolbox and shared cross-IDE engine for every registry-declared MMI coding surface.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",