执行外部命令来自配置/变量
src/main.mjs:61
const r = spawnSync(process.execPath, [dshBinPath(), ...rest], {写入本地文件
src/main.mjs:78
appendFileSync(join(app.getPath('userData'), 'dsh-desktop.log'), `${new Date().toISOString()} ${line}\n`);读取本地文件
src/main.mjs:264
const icon = readFile(join(app.getAppPath(), 'assets', 'icon.png')).then((data) => data.toString('base64'));写入本地文件
src/main.mjs:330
await writeFile(filePath, body);写入本地文件
src/main.mjs:384
void writeFile(capturePath, image.toPNG()).then(() => {读取本地文件
src/main.mjs:724
const data = await readFile(join(wwwDir, pathname));读取本地文件
scripts/apply-official-patches.mjs:41
source = readFileSync(patch.target, 'utf8');写入本地文件
scripts/apply-official-patches.mjs:60
writeFileSync(patch.target, source, 'utf8');读取本地文件
src/boot.mjs:72
const DESKTOP_PATCHES = parseYaml(readFileSync(DESKTOP_PATCH_PATH, 'utf8'));读取本地文件
src/boot.mjs:123
const pkg = JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8'));读取本地文件
src/boot.mjs:147
manifest = JSON.parse(readFileSync(join(profileDir, 'package.json'), 'utf8'));写入本地文件
src/boot.mjs:167
writeFileSync(join(profileDir, 'package.json'), `${JSON.stringify(manifest, null, 2)}\n`, 'utf8');读取本地文件
src/boot.mjs:180
manifest = JSON.parse(readFileSync(join(profileDir, 'package.json'), 'utf8'));读取本地文件
src/boot.mjs:196
const after = JSON.parse(readFileSync(join(profileDir, 'package.json'), 'utf8'));读取本地文件
src/boot.mjs:213
if (existsSync(join(vendorDir, 'node_modules', '.modules.yaml'))) return;写入本地文件
src/boot.mjs:246
writeFileSync(join(bootProfile.dir, PROFILE_ROOT_FILENAME), PROFILE_ROOT_CONFIG);读取本地文件
src/site.mjs:38
const s = statSync(source);读取本地文件
src/site.mjs:40
const d = statSync(dest);写入本地文件
src/site.mjs:45
mkdirSync(dirname(dest), { recursive: true });写入本地文件
src/site.mjs:46
copyFileSync(source, dest);读取本地文件
src/site.mjs:73
let html = readFileSync(distIndex, 'utf8');写入本地文件
src/site.mjs:88
writeFileSync(join(wwwDir, 'index.html'), html, 'utf8');读取本地文件
src/home.mjs:24
const parsed = JSON.parse(readFileSync(configPath(userData), 'utf8'));写入本地文件
src/home.mjs:32
mkdirSync(userData, { recursive: true });写入本地文件
src/home.mjs:33
writeFileSync(configPath(userData), `${JSON.stringify({ home }, null, 2)}\n`, 'utf8');执行外部命令固定命令
src/home.mjs:44
execFile(执行外部命令来自配置/变量
src/npm-runner.mjs:34
child = spawn(process.execPath, [npmCliPath(), ...args], {写入本地文件
src/dsh-runner.mjs:36
mkdirSync(dir, { recursive: true });写入本地文件
src/dsh-runner.mjs:37
writeFileSync(join(dir, 'pnpm.cmd'), `@echo off\r\n"${process.execPath}" "${pnpmPath()}" %*\r\n`, 'utf8');执行外部命令来自配置/变量
src/dsh-runner.mjs:72
child = spawn(process.execPath, [pnpmPath(), ...args], {读取本地文件
src/dsh-runner.mjs:136
return JSON.parse(readFileSync(join(profileDir, 'package.json'), 'utf8'));写入本地文件
src/dsh-runner.mjs:143
writeFileSync(join(profileDir, 'package.json'), `${JSON.stringify(manifest, null, 2)}\n`, 'utf8');读取本地文件
src/dsh-runner.mjs:152
const pkg = JSON.parse(readFileSync(join(bundleDir(profileDir, packageName), 'package.json'), 'utf8'));读取本地文件
src/dsh-overlay.mjs:34
const parsed = JSON.parse(readFileSync(overlayAnchor(userData), 'utf8'));读取本地文件
src/dsh-overlay.mjs:43
const parsed = JSON.parse(readFileSync(INSTALL_ANCHOR, 'utf8'));删除本地文件递归
src/dsh-overlay.mjs:63
rmSync(staging, { recursive: true, force: true });写入本地文件
src/dsh-overlay.mjs:64
mkdirSync(staging, { recursive: true });读取本地文件
src/dsh-overlay.mjs:71
if (!existsSync(stagingAnchor)) {删除本地文件递归
src/dsh-overlay.mjs:73
rmSync(staging, { recursive: true, force: true });删除本地文件递归
src/dsh-overlay.mjs:77
rmSync(backup, { recursive: true, force: true });读取本地文件
src/dsh-overlay.mjs:78
if (existsSync(overlay)) renameSync(overlay, backup);写入本地文件
src/dsh-overlay.mjs:78
if (existsSync(overlay)) renameSync(overlay, backup);写入本地文件
src/dsh-overlay.mjs:79
renameSync(staging, overlay);删除本地文件递归
src/dsh-overlay.mjs:85
rmSync(overlay, { recursive: true, force: true });读取密钥环境变量
plugins/desktop-balance/lib/index.js:33
const envKey = process.env.DEEPSEEK_API_KEY;读取本地文件
plugins/desktop-balance/lib/index.js:36
const text = readFileSync(join(resolveDshHome(), '.credentials.yaml'), 'utf8');发起网络请求
plugins/desktop-balance/lib/index.js:103
const response = await fetch(BALANCE_ENDPOINT, {读取本地文件
plugins/desktop-file-changes/lib/index.js:143
return readFileSync(target, 'utf8');写入本地文件
plugins/desktop-file-changes/lib/index.js:158
writeFileSync(op.path, current.slice(0, at) + op.oldText + current.slice(at + op.newText.length), 'utf8');写入本地文件
plugins/desktop-file-changes/lib/index.js:166
writeFileSync(op.path, current.slice(0, at) + current.slice(at + op.newText.length), 'utf8');写入本地文件
plugins/desktop-file-changes/lib/index.js:173
writeFileSync(op.path, previous, 'utf8');删除本地文件
plugins/desktop-file-changes/lib/index.js:179
unlinkSync(op.path);读取本地文件
plugins/desktop-file-changes/lib/index.js:252
if (existsSync(viewTarget)) {读取本地文件
plugins/desktop-file-changes/lib/index.js:253
record.viewed.set(norm(viewTarget), readFileSync(viewTarget, 'utf8'));写入剪贴板
plugins/desktop-marketplace/lib/client.js:421
void navigator.clipboard.writeText(text).then(() => { done = true; onDone && onDone(); }, () => {});读取本地文件
plugins/desktop-marketplace/lib/index.js:37
const onDisk = JSON.parse(readFileSync(cachePath(), 'utf8'));发起网络请求
plugins/desktop-marketplace/lib/index.js:48
const response = await fetch(CATALOG_URL, { signal: AbortSignal.timeout(15_000) });写入本地文件
plugins/desktop-marketplace/lib/index.js:55
writeFileSync(cachePath(), JSON.stringify(data), 'utf8');发起网络请求
plugins/desktop-marketplace/lib/index.js:70
const response = await fetch(url, { signal: AbortSignal.timeout(15_000) });请求外部主机registry.npmjs.org
plugins/desktop-marketplace/lib/index.js:132
const response = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}`, {发起网络请求
plugins/desktop-marketplace/lib/index.js:132
const response = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}`, {请求外部主机raw.githubusercontent.com
plugins/desktop-marketplace/lib/index.js:177
response = await fetch(`https://raw.githubusercontent.com/${fullName}/${branch}/${path}`, {发起网络请求
plugins/desktop-marketplace/lib/index.js:177
response = await fetch(`https://raw.githubusercontent.com/${fullName}/${branch}/${path}`, {请求外部主机api.github.com
plugins/desktop-marketplace/lib/index.js:185
response = await fetch(`https://api.github.com/repos/${fullName}/contents/${path}?ref=${encodeURIComponent(branch)}`, {发起网络请求
plugins/desktop-marketplace/lib/index.js:185
response = await fetch(`https://api.github.com/repos/${fullName}/contents/${path}?ref=${encodeURIComponent(branch)}`, {请求外部主机api.github.com
plugins/desktop-marketplace/lib/index.js:246
const response = await fetch(`https://api.github.com/repos/${fullName}/contents/${dir}?ref=${encodeURIComponent(branch)}`, {发起网络请求
plugins/desktop-marketplace/lib/index.js:246
const response = await fetch(`https://api.github.com/repos/${fullName}/contents/${dir}?ref=${encodeURIComponent(branch)}`, {请求外部主机registry.npmjs.org
plugins/desktop-marketplace/lib/index.js:439
const response = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}`, { signal: AbortSignal.timeout(10_000) });读取本地文件
plugins/desktop-marketplace/lib/index.js:472
const manifest = JSON.parse(readFileSync(join(ui.profileDir, 'package.json'), 'utf8'));读取本地文件
plugins/dsh-better-sidebar/lib/index.js:172
level = await opendir(path);读取本地文件
plugins/dsh-better-sidebar/lib/index.js:399
const info = await stat(path);读取本地文件
plugins/dsh-better-sidebar/lib/index.js:402
const etag = `"${shortHash(await readFile(path))}"`;读取本地文件
plugins/dsh-better-sidebar/lib/index.js:452
const body = await readFile(join(chunkDir, `client-${name}.js`));执行外部命令固定命令
plugins/dsh-better-sidebar/lib/index.js:544
const child = spawn("git", full, {写入本地文件
plugins/dsh-better-sidebar/lib/index.js:768
for (const helper of candidates) if (existsSync(helper)) chmodSync(helper, 493);读取本地文件
plugins/dsh-better-sidebar/lib/index.js:768
for (const helper of candidates) if (existsSync(helper)) chmodSync(helper, 493);读取本地文件
plugins/dsh-better-sidebar/lib/index.js:2088
const info = await stat(path).catch((error) => {写入本地文件
plugins/dsh-better-sidebar/lib/index.js:2160
await mkdir(dirname(path), { recursive: true });写入本地文件
plugins/dsh-better-sidebar/lib/index.js:2161
await writeFile(tmp, content, "utf8");写入本地文件
plugins/dsh-better-sidebar/lib/index.js:2162
await rename(tmp, path);删除本地文件
plugins/dsh-better-sidebar/lib/index.js:2164
await rm(tmp, { force: true }).catch(() => {});发起网络请求
plugins/dsh-better-sidebar/lib/index.js:2277
let response = await fetch(parsed, {发起网络请求
plugins/dsh-better-sidebar/lib/index.js:2282
if (response.status === 405 || response.status === 501) response = await fetch(parsed, {读取密钥环境变量
scripts/build-catalog.mjs:22
...(process.env.GITHUB_TOKEN ? { Authorization: `Bearer ${process.env.GITHUB_TOKEN}` } : {}),发起网络请求
scripts/build-catalog.mjs:29
const response = await fetch(url, { headers, signal: AbortSignal.timeout(20_000) });写入本地文件
scripts/build-catalog.mjs:95
mkdirSync(dirname(OUT), { recursive: true });写入本地文件
scripts/build-catalog.mjs:96
writeFileSync(OUT, `${JSON.stringify(catalog, null, 1)}\n`, 'utf8');读取密钥环境变量
scripts/fetch-dsh-docs.mjs:14
if (process.env.DSH_GITHUB_TOKEN) return process.env.DSH_GITHUB_TOKEN;执行外部命令固定命令
scripts/fetch-dsh-docs.mjs:16
const out = spawnSync('git', ['credential', 'fill'], { input: 'host=github.com\nprotocol=https\n', encoding: 'utf8' });请求外部主机api.github.com
scripts/fetch-dsh-docs.mjs:36
const r = await fetch(`https://api.github.com/repos/${REPO}/contents/${path}`, { headers, signal: AbortSignal.timeout(25000) });发起网络请求
scripts/fetch-dsh-docs.mjs:36
const r = await fetch(`https://api.github.com/repos/${REPO}/contents/${path}`, { headers, signal: AbortSignal.timeout(25000) });请求外部主机api.github.com
scripts/fetch-dsh-docs.mjs:49
const r = await fetch(`https://api.github.com/repos/${REPO}/contents/${path}`, { headers: h, signal: AbortSignal.timeout(25000) });发起网络请求
scripts/fetch-dsh-docs.mjs:49
const r = await fetch(`https://api.github.com/repos/${REPO}/contents/${path}`, { headers: h, signal: AbortSignal.timeout(25000) });写入本地文件
scripts/fetch-dsh-docs.mjs:77
mkdirSync(dirname(outPath), { recursive: true });写入本地文件
scripts/fetch-dsh-docs.mjs:78
writeFileSync(outPath, text, 'utf8');读取本地文件
scripts/inspect-log.mjs:9
const compressed = readFileSync(file);读取本地文件
scripts/rasterize.mjs:25
let svg = readFileSync(svgPath, 'utf8');写入本地文件
scripts/rasterize.mjs:41
writeFileSync(outPath, image.toPNG());读取本地文件
scripts/repair-log.mjs:29
const compressed = readFileSync(file);写入本地文件
scripts/repair-log.mjs:105
copyFileSync(file, `${file}.bak`);写入本地文件
scripts/repair-log.mjs:106
writeFileSync(file, recompressed);写入本地文件
scripts/repair-log.mjs:109
writeFileSync(`${file}.repaired`, recompressed);