@sanity/cli 5.11.1-canary.2 → 5.12.0-next.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/lib/_chunks-cjs/cli.js +88 -24
- package/lib/_chunks-cjs/cli.js.map +1 -1
- package/package.json +8 -7
package/lib/_chunks-cjs/cli.js
CHANGED
|
@@ -18,7 +18,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
18
18
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
19
19
|
mod
|
|
20
20
|
));
|
|
21
|
-
var os = require("node:os"), chalk = require("chalk"), loadEnv = require("./loadEnv.js"), require$$0$5 = require("path"), require$$1$2 = require("module"), require$$0$4 = require("fs"), semver = require("semver"), telemetry = require("@sanity/telemetry"), runtimeCli = require("@sanity/runtime-cli"), utils$3 = require("@sanity/runtime-cli/utils"), childProcess = require("node:child_process"), fs$1 = require("node:fs"), path$3 = require("node:path"), fs = require("node:fs/promises"), util$3 = require("node:util"), require$$0$6 = require("os"), getLatestVersion = require("get-latest-version"), pkgDir = require("pkg-dir"), client$1 = require("@sanity/client"), require$$0$7 = require("constants"), require$$0$8 = require("stream"), require$$0$9 = require("util"), require$$0$a = require("assert"), require$$0$b = require("events"), require$$3$1 = require("crypto"), require$$1$3 = require("child_process"), getCliConfig = require("./getCliConfig.js"), require$$0$c = require("fs/promises"), require$$0$d = require("buffer"), journeyConfig = require("./journeyConfig.js"), Stream = require("node:stream"), promises$1 = require("node:stream/promises"), templateValidator = require("@sanity/template-validator"), require$$2$1 = require("string_decoder"), require$$0$e = require("zlib"), require$$7$1 = require("process"), http = require("node:http"), jsoncParser = require("jsonc-parser"), traverse = require("@babel/traverse"), node_url = require("node:url"), node_events = require("node:events"), node_string_decoder = require("node:string_decoder"), process$2 = require("node:process"), require$$2$2 = require("readline"), require$$0$f = require("tty");
|
|
21
|
+
var os = require("node:os"), chalk = require("chalk"), loadEnv = require("./loadEnv.js"), require$$0$5 = require("path"), require$$1$2 = require("module"), require$$0$4 = require("fs"), semver = require("semver"), telemetry = require("@sanity/telemetry"), runtimeCli = require("@sanity/runtime-cli"), utils$3 = require("@sanity/runtime-cli/utils"), childProcess = require("node:child_process"), fs$1 = require("node:fs"), path$3 = require("node:path"), fs = require("node:fs/promises"), util$3 = require("node:util"), require$$0$6 = require("os"), getLatestVersion = require("get-latest-version"), pkgDir = require("pkg-dir"), client$1 = require("@sanity/client"), require$$0$7 = require("constants"), require$$0$8 = require("stream"), require$$0$9 = require("util"), require$$0$a = require("assert"), require$$0$b = require("events"), require$$3$1 = require("crypto"), require$$1$3 = require("child_process"), getCliConfig = require("./getCliConfig.js"), require$$0$c = require("fs/promises"), require$$0$d = require("buffer"), journeyConfig = require("./journeyConfig.js"), Stream = require("node:stream"), promises$1 = require("node:stream/promises"), templateValidator = require("@sanity/template-validator"), require$$2$1 = require("string_decoder"), require$$0$e = require("zlib"), require$$7$1 = require("process"), http = require("node:http"), jsoncParser = require("jsonc-parser"), smolToml = require("smol-toml"), traverse = require("@babel/traverse"), node_url = require("node:url"), node_events = require("node:events"), node_string_decoder = require("node:string_decoder"), process$2 = require("node:process"), require$$2$2 = require("readline"), require$$0$f = require("tty");
|
|
22
22
|
function _interopDefaultCompat(e) {
|
|
23
23
|
return e && typeof e == "object" && "default" in e ? e : { default: e };
|
|
24
24
|
}
|
|
@@ -23751,14 +23751,16 @@ const MCP_SERVER_URL = "https://mcp.sanity.io", NO_EDITORS_DETECTED_MESSAGE = `C
|
|
|
23751
23751
|
headers: { Authorization: `Bearer ${token2}` }
|
|
23752
23752
|
}), homeDir = os__default.default.homedir(), EDITOR_CONFIGS = {
|
|
23753
23753
|
Cursor: {
|
|
23754
|
+
buildServerConfig: defaultHttpConfig,
|
|
23754
23755
|
configKey: "mcpServers",
|
|
23755
23756
|
detect: async () => {
|
|
23756
23757
|
const cursorDir = path__default.default.join(homeDir, ".cursor");
|
|
23757
23758
|
return fs$1.existsSync(cursorDir) ? path__default.default.join(cursorDir, "mcp.json") : null;
|
|
23758
23759
|
},
|
|
23759
|
-
|
|
23760
|
+
format: "jsonc"
|
|
23760
23761
|
},
|
|
23761
23762
|
"VS Code": {
|
|
23763
|
+
buildServerConfig: defaultHttpConfig,
|
|
23762
23764
|
configKey: "servers",
|
|
23763
23765
|
detect: async () => {
|
|
23764
23766
|
let configDir = null;
|
|
@@ -23774,9 +23776,10 @@ const MCP_SERVER_URL = "https://mcp.sanity.io", NO_EDITORS_DETECTED_MESSAGE = `C
|
|
|
23774
23776
|
}
|
|
23775
23777
|
return configDir && fs$1.existsSync(configDir) ? path__default.default.join(configDir, "mcp.json") : null;
|
|
23776
23778
|
},
|
|
23777
|
-
|
|
23779
|
+
format: "jsonc"
|
|
23778
23780
|
},
|
|
23779
23781
|
"VS Code Insiders": {
|
|
23782
|
+
buildServerConfig: defaultHttpConfig,
|
|
23780
23783
|
configKey: "servers",
|
|
23781
23784
|
detect: async () => {
|
|
23782
23785
|
let configDir = null;
|
|
@@ -23792,9 +23795,10 @@ const MCP_SERVER_URL = "https://mcp.sanity.io", NO_EDITORS_DETECTED_MESSAGE = `C
|
|
|
23792
23795
|
}
|
|
23793
23796
|
return configDir && fs$1.existsSync(configDir) ? path__default.default.join(configDir, "mcp.json") : null;
|
|
23794
23797
|
},
|
|
23795
|
-
|
|
23798
|
+
format: "jsonc"
|
|
23796
23799
|
},
|
|
23797
23800
|
"Claude Code": {
|
|
23801
|
+
buildServerConfig: defaultHttpConfig,
|
|
23798
23802
|
configKey: "mcpServers",
|
|
23799
23803
|
detect: async () => {
|
|
23800
23804
|
try {
|
|
@@ -23803,21 +23807,69 @@ const MCP_SERVER_URL = "https://mcp.sanity.io", NO_EDITORS_DETECTED_MESSAGE = `C
|
|
|
23803
23807
|
return null;
|
|
23804
23808
|
}
|
|
23805
23809
|
},
|
|
23806
|
-
|
|
23810
|
+
format: "jsonc"
|
|
23807
23811
|
},
|
|
23808
|
-
|
|
23809
|
-
|
|
23812
|
+
"Codex CLI": {
|
|
23813
|
+
buildServerConfig: (token2) => ({
|
|
23814
|
+
type: "http",
|
|
23815
|
+
url: MCP_SERVER_URL,
|
|
23816
|
+
// eslint-disable-next-line camelcase
|
|
23817
|
+
http_headers: { Authorization: `Bearer ${token2}` }
|
|
23818
|
+
}),
|
|
23819
|
+
configKey: "mcp_servers",
|
|
23810
23820
|
detect: async () => {
|
|
23811
|
-
|
|
23812
|
-
|
|
23821
|
+
try {
|
|
23822
|
+
await execa("codex", ["--version"], { stdio: "pipe", timeout: 5e3 });
|
|
23823
|
+
const codexHome = process.env.CODEX_HOME || path__default.default.join(homeDir, ".codex");
|
|
23824
|
+
return path__default.default.join(codexHome, "config.toml");
|
|
23825
|
+
} catch {
|
|
23826
|
+
return null;
|
|
23827
|
+
}
|
|
23813
23828
|
},
|
|
23829
|
+
format: "toml"
|
|
23830
|
+
},
|
|
23831
|
+
"Gemini CLI": {
|
|
23832
|
+
buildServerConfig: defaultHttpConfig,
|
|
23833
|
+
configKey: "mcpServers",
|
|
23834
|
+
detect: async () => {
|
|
23835
|
+
const geminiDir = path__default.default.join(homeDir, ".gemini");
|
|
23836
|
+
return fs$1.existsSync(geminiDir) ? path__default.default.join(geminiDir, "settings.json") : null;
|
|
23837
|
+
},
|
|
23838
|
+
format: "jsonc"
|
|
23839
|
+
},
|
|
23840
|
+
"GitHub Copilot CLI": {
|
|
23841
|
+
buildServerConfig: (token2) => ({
|
|
23842
|
+
type: "http",
|
|
23843
|
+
url: MCP_SERVER_URL,
|
|
23844
|
+
headers: { Authorization: `Bearer ${token2}` },
|
|
23845
|
+
tools: ["*"]
|
|
23846
|
+
}),
|
|
23847
|
+
configKey: "mcpServers",
|
|
23848
|
+
detect: async () => {
|
|
23849
|
+
const copilotDir = process.platform === "linux" && process.env.XDG_CONFIG_HOME ? path__default.default.join(process.env.XDG_CONFIG_HOME, "copilot") : path__default.default.join(homeDir, ".copilot");
|
|
23850
|
+
return fs$1.existsSync(copilotDir) ? path__default.default.join(copilotDir, "mcp-config.json") : null;
|
|
23851
|
+
},
|
|
23852
|
+
format: "jsonc"
|
|
23853
|
+
},
|
|
23854
|
+
Zed: {
|
|
23814
23855
|
buildServerConfig: (token2) => ({
|
|
23815
23856
|
url: MCP_SERVER_URL,
|
|
23816
23857
|
headers: { Authorization: `Bearer ${token2}` },
|
|
23817
23858
|
settings: {}
|
|
23818
|
-
})
|
|
23859
|
+
}),
|
|
23860
|
+
configKey: "context_servers",
|
|
23861
|
+
detect: async () => {
|
|
23862
|
+
let configDir = null;
|
|
23863
|
+
return process.platform === "win32" ? process.env.APPDATA && (configDir = path__default.default.join(process.env.APPDATA, "Zed")) : configDir = path__default.default.join(homeDir, ".config/zed"), configDir && fs$1.existsSync(configDir) ? path__default.default.join(configDir, "settings.json") : null;
|
|
23864
|
+
},
|
|
23865
|
+
format: "jsonc"
|
|
23819
23866
|
},
|
|
23820
23867
|
OpenCode: {
|
|
23868
|
+
buildServerConfig: (token2) => ({
|
|
23869
|
+
type: "remote",
|
|
23870
|
+
url: MCP_SERVER_URL,
|
|
23871
|
+
headers: { Authorization: `Bearer ${token2}` }
|
|
23872
|
+
}),
|
|
23821
23873
|
configKey: "mcp",
|
|
23822
23874
|
detect: async () => {
|
|
23823
23875
|
try {
|
|
@@ -23826,25 +23878,28 @@ const MCP_SERVER_URL = "https://mcp.sanity.io", NO_EDITORS_DETECTED_MESSAGE = `C
|
|
|
23826
23878
|
return null;
|
|
23827
23879
|
}
|
|
23828
23880
|
},
|
|
23829
|
-
|
|
23830
|
-
type: "remote",
|
|
23831
|
-
url: MCP_SERVER_URL,
|
|
23832
|
-
headers: { Authorization: `Bearer ${token2}` }
|
|
23833
|
-
})
|
|
23881
|
+
format: "jsonc"
|
|
23834
23882
|
}
|
|
23835
23883
|
};
|
|
23836
|
-
function parseConfig(content) {
|
|
23884
|
+
function parseConfig(content, format) {
|
|
23837
23885
|
if (content.trim() === "")
|
|
23838
23886
|
return {};
|
|
23887
|
+
if (format === "toml")
|
|
23888
|
+
try {
|
|
23889
|
+
const parsed2 = smolToml.parse(content);
|
|
23890
|
+
return typeof parsed2 != "object" || parsed2 === null || Array.isArray(parsed2) ? null : parsed2;
|
|
23891
|
+
} catch {
|
|
23892
|
+
return null;
|
|
23893
|
+
}
|
|
23839
23894
|
const errors = [], parsed = jsoncParser.parse(content, errors, { allowTrailingComma: !0 });
|
|
23840
23895
|
return errors.length > 0 || typeof parsed != "object" || parsed === null || Array.isArray(parsed) ? null : parsed;
|
|
23841
23896
|
}
|
|
23842
23897
|
async function checkEditorConfig(name, configPath) {
|
|
23843
|
-
const { configKey } = EDITOR_CONFIGS[name];
|
|
23898
|
+
const { configKey, format } = EDITOR_CONFIGS[name];
|
|
23844
23899
|
if (!fs$1.existsSync(configPath))
|
|
23845
23900
|
return { name, configPath, configured: !1 };
|
|
23846
23901
|
try {
|
|
23847
|
-
const content = await fs__default.default.readFile(configPath, "utf-8"), config2 = parseConfig(content);
|
|
23902
|
+
const content = await fs__default.default.readFile(configPath, "utf-8"), config2 = parseConfig(content, format);
|
|
23848
23903
|
if (config2 === null)
|
|
23849
23904
|
return getCliConfig.debug("Skipping %s: could not parse %s", name, configPath), null;
|
|
23850
23905
|
const configured = !!config2[configKey]?.Sanity;
|
|
@@ -23898,16 +23953,25 @@ async function createMCPToken(apiClient) {
|
|
|
23898
23953
|
})).token;
|
|
23899
23954
|
}
|
|
23900
23955
|
async function writeMCPConfig(editor2, token2) {
|
|
23901
|
-
const configPath = editor2.configPath, { configKey, buildServerConfig } = EDITOR_CONFIGS[editor2.name];
|
|
23902
|
-
let content = "{}";
|
|
23956
|
+
const configPath = editor2.configPath, { configKey, buildServerConfig, format } = EDITOR_CONFIGS[editor2.name], serverConfig = buildServerConfig(token2);
|
|
23957
|
+
let content = format === "toml" ? "" : "{}";
|
|
23903
23958
|
if (fs$1.existsSync(configPath)) {
|
|
23904
23959
|
const fileContent = await fs__default.default.readFile(configPath, "utf-8");
|
|
23905
23960
|
fileContent.trim() && (content = fileContent);
|
|
23906
23961
|
}
|
|
23907
|
-
|
|
23908
|
-
|
|
23909
|
-
|
|
23910
|
-
|
|
23962
|
+
if (format === "toml") {
|
|
23963
|
+
const tomlConfig = content.trim() ? smolToml.parse(content) : {}, existingServers = tomlConfig[configKey];
|
|
23964
|
+
tomlConfig[configKey] = {
|
|
23965
|
+
...existingServers && typeof existingServers == "object" ? existingServers : {},
|
|
23966
|
+
Sanity: serverConfig
|
|
23967
|
+
}, content = smolToml.stringify(tomlConfig);
|
|
23968
|
+
} else {
|
|
23969
|
+
const edits = jsoncParser.modify(content, [configKey, "Sanity"], serverConfig, {
|
|
23970
|
+
formattingOptions: { tabSize: 2, insertSpaces: !0 }
|
|
23971
|
+
});
|
|
23972
|
+
content = jsoncParser.applyEdits(content, edits);
|
|
23973
|
+
}
|
|
23974
|
+
await fs__default.default.mkdir(path__default.default.dirname(configPath), { recursive: !0 }), await fs__default.default.writeFile(configPath, content, "utf-8");
|
|
23911
23975
|
}
|
|
23912
23976
|
async function setupMCP(context, options2) {
|
|
23913
23977
|
const { output, prompt: prompt2 } = context;
|