zixulu 1.40.3 → 1.40.4

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/index.js CHANGED
@@ -37,17 +37,16 @@ var import_vite = require("./utils/vite");
37
37
  var import_commander = require("commander");
38
38
  var import_path = require("path");
39
39
  var import_actionWithBackup = require("./utils/actionWithBackup");
40
- var import_addNextScript = require("./utils/addNextScript");
40
+ var import_addStartScript = require("./utils/addStartScript");
41
41
  var import_createBrowserlistrc = require("./utils/createBrowserlistrc");
42
42
  var import_getCommitMessage = require("./utils/getCommitMessage");
43
+ var import_getHeaders = require("./utils/getHeaders");
43
44
  var import_readPackageJsonSync = require("./utils/readPackageJsonSync");
44
45
  var import_removeTailwindCssPreset = require("./utils/removeTailwindCssPreset");
45
46
  var import_replaceAssets = require("./utils/replaceAssets");
46
47
  var import_setGlobal = require("./utils/setGlobal");
47
48
  var import_upgradeRsbuild = require("./utils/upgradeRsbuild");
48
49
  var import_upgradeWorkspaceDependceny = require("./utils/upgradeWorkspaceDependceny");
49
- var import_addExpressScript = require("./utils/addExpressScript");
50
- var import_getHeaders = require("./utils/getHeaders");
51
50
  var program = new import_commander.Command();
52
51
  var pkg = (0, import_readPackageJsonSync.readPackageJsonSync)((0, import_path.resolve)(__dirname, "../"));
53
52
  program.name("格数科技").version(pkg.version);
@@ -95,13 +94,12 @@ program.command("replace-alias").alias("ra").description("替换路径别名").a
95
94
  program.command("pnpm").description("设置 pnpm 配置").action(import_pnpm.pnpm);
96
95
  program.command("rollup").description("rollup 打包").action(import_rollup.rollup);
97
96
  program.command("browserlistrc").alias("blr").description("添加 browserlistrc 配置").action(import_createBrowserlistrc.createBrowserlistrc);
98
- program.command("asset").description("替换文件中的资源地址").argument("dir", "静态文件夹路径").option("-b, --base <base>", "资源地址 BaseUrl").option("-p, --proxy", "是否使用代理").action((dir, { proxy, base }) => (0, import_replaceAssets.replaceAssets)({ base, dir, proxy }));
97
+ program.command("asset").description("替换文件中的资源地址").argument("input", "静态文件夹路径").option("-b, --base <base>", "资源地址 BaseUrl").option("-o, --output <output>", "输出文件夹").option("-p, --proxy", "是否使用代理").action((input, { proxy, base, output }) => (0, import_replaceAssets.replaceAssets)({ base, input, proxy, output }));
99
98
  program.command("upgrade-rsbuild").alias("ur").description("升级 rsbuild").option("-r, --registry <registry>", "npm 源地址,可以是 npm、taobao、tencent 或者自定义地址").option("-p, --proxy", "是否使用代理").action(async (options) => {
100
99
  (0, import_setGlobal.setGlobal)(options);
101
100
  await (0, import_actionWithBackup.actionWithBackup)(() => (0, import_upgradeRsbuild.upgradeRsbuild)())();
102
101
  });
103
- program.command("add-express-script").alias("aes").option("-p, --port <port>", "端口地址").option("-c, --core <core>", "实例数").option("-l, --localhost", "是否只开启本地监听").option("-pem, --pemPath <pemPath>", "证书目录").description("添加 express 启动脚本").action((0, import_actionWithBackup.actionWithBackup)(import_addExpressScript.addExpressScript));
104
- program.command("add-next-script").alias("ans").option("-p, --port <port>", "端口地址").option("-c, --core <core>", "实例数").option("-l, --localhost", "是否只开启本地监听").option("-pem, --pemPath <pemPath>", "证书目录").description("添加 next 启动脚本").action((0, import_actionWithBackup.actionWithBackup)(import_addNextScript.addNextScript));
102
+ program.command("add-start-script").alias("ass").argument("type", "启动脚本类型:express、next").option("-p, --port <port>", "端口地址").option("-c, --core <core>", "实例数").option("-h, --hostname <hostname>", "主机名").option("-pem, --pemPath <pemPath>", "证书目录").description("添加 express 启动脚本").action(async (type, { port, core, pemPath }) => (0, import_actionWithBackup.actionWithBackup)(import_addStartScript.addStartScript)({ type, port, core, pemPath }));
105
103
  program.command("removeTailwindCssPreflight").alias("rtp").description("删除 tailwindcss 的 preflight.css 中的 img 和 video 样式").action((0, import_actionWithBackup.actionWithBackup)(() => (0, import_removeTailwindCssPreset.removeTailwindCssPreflight)()));
106
104
  program.command("headers").description("将浏览器中直接复制的 headers 转换为对象").action(import_getHeaders.getHeaders);
107
105
  program.parse();
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\r\n\r\nimport { CommitType } from \"@constant/index\"\r\nimport { addAntd } from \"@utils/addAntd\"\r\nimport { addGitignore } from \"@utils/addGitignore\"\r\nimport { addFolderPathAlias, replacePathAlias } from \"@utils/addPathAlias\"\r\nimport { addPrettier } from \"@utils/addPrettier\"\r\nimport { addPrisma } from \"@utils/addPrisma\"\r\nimport { arrowToFunction } from \"@utils/arrowToFunction\"\r\nimport { betaVersion } from \"@utils/betaVersion\"\r\nimport { checkType } from \"@utils/checkType\"\r\nimport { code2Snippet } from \"@utils/code2Snippet\"\r\nimport { downloadLatestSoftware } from \"@utils/downloadLatestSoftware\"\r\nimport { downloadNpm } from \"@utils/downloadNpm\"\r\nimport { generatePrisma } from \"@utils/generatePrisma\"\r\nimport { initProject } from \"@utils/initProject\"\r\nimport { interfaceToType } from \"@utils/interfaceToType\"\r\nimport { killProcessByPort } from \"@utils/killProcessByPort\"\r\nimport { next } from \"@utils/next\"\r\nimport { pnpm } from \"@utils/pnpm\"\r\nimport { reinstall } from \"@utils/reinstall\"\r\nimport { removeComment } from \"@utils/removeComment\"\r\nimport { removeESLint } from \"@utils/removeESLint\"\r\nimport { removeFileOrFolderFromGit } from \"@utils/removeFileOrFolderFromGit\"\r\nimport { rollup } from \"@utils/rollup\"\r\nimport { rsbuild } from \"@utils/rsbuild\"\r\nimport { setFatherConfig } from \"@utils/setFatherConfig\"\r\nimport { setGitProxy } from \"@utils/setGitProxy\"\r\nimport { setRegistry } from \"@utils/setRegistry\"\r\nimport { setShellProxy } from \"@utils/setShellProxy\"\r\nimport { sortPackageJson } from \"@utils/sortPackageJson\"\r\nimport { syncVscode } from \"@utils/syncVscode\"\r\nimport { tailwind } from \"@utils/tailwind\"\r\nimport { upgradeDependency } from \"@utils/upgradeDependency\"\r\nimport { vite } from \"@utils/vite\"\r\nimport { Command } from \"commander\"\r\nimport { resolve } from \"path\"\r\nimport { actionWithBackup } from \"./utils/actionWithBackup\"\r\nimport { addNextScript } from \"./utils/addNextScript\"\r\nimport { createBrowserlistrc } from \"./utils/createBrowserlistrc\"\r\nimport { getCommitMessage } from \"./utils/getCommitMessage\"\r\nimport { readPackageJsonSync } from \"./utils/readPackageJsonSync\"\r\nimport { removeTailwindCssPreflight } from \"./utils/removeTailwindCssPreset\"\r\nimport { replaceAssets } from \"./utils/replaceAssets\"\r\nimport { setGlobal } from \"./utils/setGlobal\"\r\nimport { upgradeRsbuild } from \"./utils/upgradeRsbuild\"\r\nimport { upgradeWorkspaceDependceny } from \"./utils/upgradeWorkspaceDependceny\"\r\nimport { addExpressScript } from \"./utils/addExpressScript\"\r\nimport { getHeaders } from \"./utils/getHeaders\"\r\n\r\nconst program = new Command()\r\n\r\nconst pkg = readPackageJsonSync(resolve(__dirname, \"../\"))\r\n\r\nprogram.name(\"格数科技\").version(pkg.version)\r\n\r\nprogram\r\n .command(\"eslint\")\r\n .description(\"删除 ESLint 相关配置\")\r\n .action(actionWithBackup(removeESLint, getCommitMessage(CommitType.feature, \"删除 ESLint 相关配置\")))\r\n\r\nprogram\r\n .command(\"prettier\")\r\n .description(\"添加 prettier 配置\")\r\n .action(actionWithBackup(addPrettier, getCommitMessage(CommitType.feature, \"添加 prettier 配置文件\")))\r\n\r\nprogram\r\n .command(\"vite\")\r\n .description(\"初始化 vite 配置\")\r\n .action(actionWithBackup(vite, getCommitMessage(CommitType.feature, \"初始化 vite 配置\")))\r\n\r\nprogram\r\n .command(\"rsbuild\")\r\n .description(\"初始化 rsbuild 配置\")\r\n .action(actionWithBackup(rsbuild, getCommitMessage(CommitType.feature, \"初始化 rsbuild 配置\")))\r\n\r\nprogram\r\n .command(\"next\")\r\n .description(\"初始化 next 配置\")\r\n .action(actionWithBackup(next, getCommitMessage(CommitType.feature, \"初始化 next 配置\")))\r\n\r\nprogram\r\n .command(\"tailwind\")\r\n .description(\"添加 tailwind 配置\")\r\n .action(actionWithBackup(tailwind, getCommitMessage(CommitType.feature, \"添加 tailwind 配置\")))\r\n\r\nprogram\r\n .command(\"remove-comment\")\r\n .description(\"删除文件注释\")\r\n .argument(\"path\", \"文件路径\")\r\n .action(actionWithBackup(removeComment, getCommitMessage(CommitType.feature, \"删除文件注释\")))\r\n\r\nprogram\r\n .command(\"father\")\r\n .alias(\"fs\")\r\n .description(\"初始化 father 项目配置\")\r\n .action(actionWithBackup(setFatherConfig, getCommitMessage(CommitType.feature, \"初始化 father 项目配置\")))\r\n\r\nprogram\r\n .command(\"upgrade-dependency\")\r\n .alias(\"ud\")\r\n .description(\"升级项目依赖\")\r\n .option(\"-r, --registry <registry>\", \"npm 源地址,可以是 npm、taobao、tencent 或者自定义地址\")\r\n .option(\"-p, --proxy\", \"是否使用代理\")\r\n .action(async optios => {\r\n setGlobal(optios)\r\n await actionWithBackup(() => upgradeDependency())()\r\n })\r\n\r\nprogram\r\n .command(\"upgrade-workspace-dependency\")\r\n .alias(\"uwd\")\r\n .description(\"升级工作区项目依赖\")\r\n .option(\"-r, --registry <registry>\", \"npm 源地址,可以是 npm、taobao、tencent 或者自定义地址\")\r\n .option(\"-p, --proxy\", \"是否使用代理\")\r\n .argument(\"[dir]\", \"项目目录\", \"packages\")\r\n .action(async (dir, options) => {\r\n setGlobal(options)\r\n await upgradeWorkspaceDependceny(dir)\r\n })\r\n\r\nprogram.command(\"registry\").description(\"设置 npm registry\").action(setRegistry)\r\n\r\nprogram\r\n .command(\"sort-package-json\")\r\n .alias(\"spj\")\r\n .description(\"对 package.json 中的依赖进行排序\")\r\n .action(actionWithBackup(sortPackageJson, getCommitMessage(CommitType.feature, \"对 package.json 中的依赖进行排序\")))\r\n\r\nprogram\r\n .command(\"arrow-to-function\")\r\n .alias(\"a2f\")\r\n .description(\"将箭头函数组件转换为函数组件\")\r\n .action(actionWithBackup(arrowToFunction, getCommitMessage(CommitType.feature, \"将箭头函数组件转换为函数组件\")))\r\n\r\nprogram\r\n .command(\"interface-to-type\")\r\n .alias(\"i2t\")\r\n .description(\"将 interface 转换为 type\")\r\n .action(actionWithBackup(interfaceToType, getCommitMessage(CommitType.feature, \"将 interface 转换为 type\")))\r\n\r\nprogram\r\n .command(\"gitignore\")\r\n .description(\"添加 .gitignore 配置\")\r\n .action(actionWithBackup(addGitignore, getCommitMessage(CommitType.feature, \"添加 .gitignore 配置\")))\r\n\r\nprogram.command(\"git-proxy\").alias(\"gp\").description(\"设置 git 代理\").action(setGitProxy)\r\n\r\nprogram.command(\"shell-proxy\").alias(\"sp\").description(\"设置 Shell 代理\").action(setShellProxy)\r\n\r\nprogram.command(\"download-software\").alias(\"ds\").description(\"下载最新版软件\").action(downloadLatestSoftware)\r\n\r\nprogram.command(\"vscode\").alias(\"vsc\").description(\"同步 VS Code 配置\").action(syncVscode)\r\n\r\nprogram.command(\"kill-port\").description(\"根据端口号杀死进程\").argument(\"port\", \"端口号\").action(killProcessByPort)\r\n\r\nprogram.command(\"rm-git\").argument(\"path\", \"要移除的文件或文件夹\").action(removeFileOrFolderFromGit)\r\n\r\nprogram.command(\"npm-download\").alias(\"nd\").description(\"下载 npm 包\").argument(\"name\", \"包名\").action(downloadNpm)\r\n\r\nprogram\r\n .command(\"prisma\")\r\n .description(\"添加 prisma 配置\")\r\n .action(actionWithBackup(addPrisma, getCommitMessage(CommitType.feature, \"添加 prisma 配置\")))\r\n\r\nprogram.command(\"prisma-generate\").alias(\"pg\").description(\"生成 prisma client\").action(generatePrisma)\r\n\r\nprogram\r\n .command(\"antd\")\r\n .description(\"添加 antd 配置\")\r\n .action(actionWithBackup(addAntd, getCommitMessage(CommitType.feature, \"添加 antd 配置\")))\r\n\r\nprogram\r\n .command(\"init\")\r\n .description(\"初始化项目\")\r\n .action(actionWithBackup(initProject, getCommitMessage(CommitType.feature, \"初始化项目\")))\r\n\r\nprogram.command(\"tsc\").description(\"类型检查\").action(checkType)\r\n\r\nprogram.command(\"beta-version\").alias(\"bv\").description(\"设置版本号\").action(betaVersion)\r\n\r\nprogram\r\n .command(\"reinstall\")\r\n .alias(\"ri\")\r\n .description(\"重新安装依赖\")\r\n .option(\"-r, --registry <registry>\", \"npm 源地址,可以是 npm、taobao、tencent 或者自定义地址\")\r\n .action(async options => {\r\n setGlobal(options)\r\n reinstall()\r\n })\r\n\r\nprogram.command(\"snippet\").alias(\"sn\").description(\"生成 vscode snippet\").argument(\"path\", \"文件路径\").action(code2Snippet)\r\n\r\nprogram.command(\"add-alias\").alias(\"aa\").description(\"添加路径别名\").action(actionWithBackup(addFolderPathAlias))\r\n\r\nprogram.command(\"replace-alias\").alias(\"ra\").description(\"替换路径别名\").action(actionWithBackup(replacePathAlias))\r\n\r\nprogram.command(\"pnpm\").description(\"设置 pnpm 配置\").action(pnpm)\r\n\r\nprogram.command(\"rollup\").description(\"rollup 打包\").action(rollup)\r\n\r\nprogram.command(\"browserlistrc\").alias(\"blr\").description(\"添加 browserlistrc 配置\").action(createBrowserlistrc)\r\n\r\nprogram\r\n .command(\"asset\")\r\n .description(\"替换文件中的资源地址\")\r\n .argument(\"dir\", \"静态文件夹路径\")\r\n .option(\"-b, --base <base>\", \"资源地址 BaseUrl\")\r\n .option(\"-p, --proxy\", \"是否使用代理\")\r\n .action((dir, { proxy, base }) => replaceAssets({ base, dir, proxy }))\r\n\r\nprogram\r\n .command(\"upgrade-rsbuild\")\r\n .alias(\"ur\")\r\n .description(\"升级 rsbuild\")\r\n .option(\"-r, --registry <registry>\", \"npm 源地址,可以是 npm、taobao、tencent 或者自定义地址\")\r\n .option(\"-p, --proxy\", \"是否使用代理\")\r\n .action(async options => {\r\n setGlobal(options)\r\n await actionWithBackup(() => upgradeRsbuild())()\r\n })\r\n\r\nprogram\r\n .command(\"add-express-script\")\r\n .alias(\"aes\")\r\n .option(\"-p, --port <port>\", \"端口地址\")\r\n .option(\"-c, --core <core>\", \"实例数\")\r\n .option(\"-l, --localhost\", \"是否只开启本地监听\")\r\n .option(\"-pem, --pemPath <pemPath>\", \"证书目录\")\r\n .description(\"添加 express 启动脚本\")\r\n .action(actionWithBackup(addExpressScript))\r\n\r\nprogram\r\n .command(\"add-next-script\")\r\n .alias(\"ans\")\r\n .option(\"-p, --port <port>\", \"端口地址\")\r\n .option(\"-c, --core <core>\", \"实例数\")\r\n .option(\"-l, --localhost\", \"是否只开启本地监听\")\r\n .option(\"-pem, --pemPath <pemPath>\", \"证书目录\")\r\n .description(\"添加 next 启动脚本\")\r\n .action(actionWithBackup(addNextScript))\r\n\r\nprogram\r\n .command(\"removeTailwindCssPreflight\")\r\n .alias(\"rtp\")\r\n .description(\"删除 tailwindcss 的 preflight.css 中的 img 和 video 样式\")\r\n .action(actionWithBackup(() => removeTailwindCssPreflight()))\r\n\r\nprogram.command(\"headers\").description(\"将浏览器中直接复制的 headers 转换为对象\").action(getHeaders)\r\n\r\nprogram.parse()\r\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["#!/usr/bin/env node\r\n\r\nimport { CommitType } from \"@constant/index\"\r\nimport { addAntd } from \"@utils/addAntd\"\r\nimport { addGitignore } from \"@utils/addGitignore\"\r\nimport { addFolderPathAlias, replacePathAlias } from \"@utils/addPathAlias\"\r\nimport { addPrettier } from \"@utils/addPrettier\"\r\nimport { addPrisma } from \"@utils/addPrisma\"\r\nimport { arrowToFunction } from \"@utils/arrowToFunction\"\r\nimport { betaVersion } from \"@utils/betaVersion\"\r\nimport { checkType } from \"@utils/checkType\"\r\nimport { code2Snippet } from \"@utils/code2Snippet\"\r\nimport { downloadLatestSoftware } from \"@utils/downloadLatestSoftware\"\r\nimport { downloadNpm } from \"@utils/downloadNpm\"\r\nimport { generatePrisma } from \"@utils/generatePrisma\"\r\nimport { initProject } from \"@utils/initProject\"\r\nimport { interfaceToType } from \"@utils/interfaceToType\"\r\nimport { killProcessByPort } from \"@utils/killProcessByPort\"\r\nimport { next } from \"@utils/next\"\r\nimport { pnpm } from \"@utils/pnpm\"\r\nimport { reinstall } from \"@utils/reinstall\"\r\nimport { removeComment } from \"@utils/removeComment\"\r\nimport { removeESLint } from \"@utils/removeESLint\"\r\nimport { removeFileOrFolderFromGit } from \"@utils/removeFileOrFolderFromGit\"\r\nimport { rollup } from \"@utils/rollup\"\r\nimport { rsbuild } from \"@utils/rsbuild\"\r\nimport { setFatherConfig } from \"@utils/setFatherConfig\"\r\nimport { setGitProxy } from \"@utils/setGitProxy\"\r\nimport { setRegistry } from \"@utils/setRegistry\"\r\nimport { setShellProxy } from \"@utils/setShellProxy\"\r\nimport { sortPackageJson } from \"@utils/sortPackageJson\"\r\nimport { syncVscode } from \"@utils/syncVscode\"\r\nimport { tailwind } from \"@utils/tailwind\"\r\nimport { upgradeDependency } from \"@utils/upgradeDependency\"\r\nimport { vite } from \"@utils/vite\"\r\nimport { Command } from \"commander\"\r\nimport { resolve } from \"path\"\r\nimport { actionWithBackup } from \"./utils/actionWithBackup\"\r\nimport { addStartScript } from \"./utils/addStartScript\"\r\nimport { createBrowserlistrc } from \"./utils/createBrowserlistrc\"\r\nimport { getCommitMessage } from \"./utils/getCommitMessage\"\r\nimport { getHeaders } from \"./utils/getHeaders\"\r\nimport { readPackageJsonSync } from \"./utils/readPackageJsonSync\"\r\nimport { removeTailwindCssPreflight } from \"./utils/removeTailwindCssPreset\"\r\nimport { replaceAssets } from \"./utils/replaceAssets\"\r\nimport { setGlobal } from \"./utils/setGlobal\"\r\nimport { upgradeRsbuild } from \"./utils/upgradeRsbuild\"\r\nimport { upgradeWorkspaceDependceny } from \"./utils/upgradeWorkspaceDependceny\"\r\n\r\nconst program = new Command()\r\n\r\nconst pkg = readPackageJsonSync(resolve(__dirname, \"../\"))\r\n\r\nprogram.name(\"格数科技\").version(pkg.version)\r\n\r\nprogram\r\n .command(\"eslint\")\r\n .description(\"删除 ESLint 相关配置\")\r\n .action(actionWithBackup(removeESLint, getCommitMessage(CommitType.feature, \"删除 ESLint 相关配置\")))\r\n\r\nprogram\r\n .command(\"prettier\")\r\n .description(\"添加 prettier 配置\")\r\n .action(actionWithBackup(addPrettier, getCommitMessage(CommitType.feature, \"添加 prettier 配置文件\")))\r\n\r\nprogram\r\n .command(\"vite\")\r\n .description(\"初始化 vite 配置\")\r\n .action(actionWithBackup(vite, getCommitMessage(CommitType.feature, \"初始化 vite 配置\")))\r\n\r\nprogram\r\n .command(\"rsbuild\")\r\n .description(\"初始化 rsbuild 配置\")\r\n .action(actionWithBackup(rsbuild, getCommitMessage(CommitType.feature, \"初始化 rsbuild 配置\")))\r\n\r\nprogram\r\n .command(\"next\")\r\n .description(\"初始化 next 配置\")\r\n .action(actionWithBackup(next, getCommitMessage(CommitType.feature, \"初始化 next 配置\")))\r\n\r\nprogram\r\n .command(\"tailwind\")\r\n .description(\"添加 tailwind 配置\")\r\n .action(actionWithBackup(tailwind, getCommitMessage(CommitType.feature, \"添加 tailwind 配置\")))\r\n\r\nprogram\r\n .command(\"remove-comment\")\r\n .description(\"删除文件注释\")\r\n .argument(\"path\", \"文件路径\")\r\n .action(actionWithBackup(removeComment, getCommitMessage(CommitType.feature, \"删除文件注释\")))\r\n\r\nprogram\r\n .command(\"father\")\r\n .alias(\"fs\")\r\n .description(\"初始化 father 项目配置\")\r\n .action(actionWithBackup(setFatherConfig, getCommitMessage(CommitType.feature, \"初始化 father 项目配置\")))\r\n\r\nprogram\r\n .command(\"upgrade-dependency\")\r\n .alias(\"ud\")\r\n .description(\"升级项目依赖\")\r\n .option(\"-r, --registry <registry>\", \"npm 源地址,可以是 npm、taobao、tencent 或者自定义地址\")\r\n .option(\"-p, --proxy\", \"是否使用代理\")\r\n .action(async optios => {\r\n setGlobal(optios)\r\n await actionWithBackup(() => upgradeDependency())()\r\n })\r\n\r\nprogram\r\n .command(\"upgrade-workspace-dependency\")\r\n .alias(\"uwd\")\r\n .description(\"升级工作区项目依赖\")\r\n .option(\"-r, --registry <registry>\", \"npm 源地址,可以是 npm、taobao、tencent 或者自定义地址\")\r\n .option(\"-p, --proxy\", \"是否使用代理\")\r\n .argument(\"[dir]\", \"项目目录\", \"packages\")\r\n .action(async (dir, options) => {\r\n setGlobal(options)\r\n await upgradeWorkspaceDependceny(dir)\r\n })\r\n\r\nprogram.command(\"registry\").description(\"设置 npm registry\").action(setRegistry)\r\n\r\nprogram\r\n .command(\"sort-package-json\")\r\n .alias(\"spj\")\r\n .description(\"对 package.json 中的依赖进行排序\")\r\n .action(actionWithBackup(sortPackageJson, getCommitMessage(CommitType.feature, \"对 package.json 中的依赖进行排序\")))\r\n\r\nprogram\r\n .command(\"arrow-to-function\")\r\n .alias(\"a2f\")\r\n .description(\"将箭头函数组件转换为函数组件\")\r\n .action(actionWithBackup(arrowToFunction, getCommitMessage(CommitType.feature, \"将箭头函数组件转换为函数组件\")))\r\n\r\nprogram\r\n .command(\"interface-to-type\")\r\n .alias(\"i2t\")\r\n .description(\"将 interface 转换为 type\")\r\n .action(actionWithBackup(interfaceToType, getCommitMessage(CommitType.feature, \"将 interface 转换为 type\")))\r\n\r\nprogram\r\n .command(\"gitignore\")\r\n .description(\"添加 .gitignore 配置\")\r\n .action(actionWithBackup(addGitignore, getCommitMessage(CommitType.feature, \"添加 .gitignore 配置\")))\r\n\r\nprogram.command(\"git-proxy\").alias(\"gp\").description(\"设置 git 代理\").action(setGitProxy)\r\n\r\nprogram.command(\"shell-proxy\").alias(\"sp\").description(\"设置 Shell 代理\").action(setShellProxy)\r\n\r\nprogram.command(\"download-software\").alias(\"ds\").description(\"下载最新版软件\").action(downloadLatestSoftware)\r\n\r\nprogram.command(\"vscode\").alias(\"vsc\").description(\"同步 VS Code 配置\").action(syncVscode)\r\n\r\nprogram.command(\"kill-port\").description(\"根据端口号杀死进程\").argument(\"port\", \"端口号\").action(killProcessByPort)\r\n\r\nprogram.command(\"rm-git\").argument(\"path\", \"要移除的文件或文件夹\").action(removeFileOrFolderFromGit)\r\n\r\nprogram.command(\"npm-download\").alias(\"nd\").description(\"下载 npm 包\").argument(\"name\", \"包名\").action(downloadNpm)\r\n\r\nprogram\r\n .command(\"prisma\")\r\n .description(\"添加 prisma 配置\")\r\n .action(actionWithBackup(addPrisma, getCommitMessage(CommitType.feature, \"添加 prisma 配置\")))\r\n\r\nprogram.command(\"prisma-generate\").alias(\"pg\").description(\"生成 prisma client\").action(generatePrisma)\r\n\r\nprogram\r\n .command(\"antd\")\r\n .description(\"添加 antd 配置\")\r\n .action(actionWithBackup(addAntd, getCommitMessage(CommitType.feature, \"添加 antd 配置\")))\r\n\r\nprogram\r\n .command(\"init\")\r\n .description(\"初始化项目\")\r\n .action(actionWithBackup(initProject, getCommitMessage(CommitType.feature, \"初始化项目\")))\r\n\r\nprogram.command(\"tsc\").description(\"类型检查\").action(checkType)\r\n\r\nprogram.command(\"beta-version\").alias(\"bv\").description(\"设置版本号\").action(betaVersion)\r\n\r\nprogram\r\n .command(\"reinstall\")\r\n .alias(\"ri\")\r\n .description(\"重新安装依赖\")\r\n .option(\"-r, --registry <registry>\", \"npm 源地址,可以是 npm、taobao、tencent 或者自定义地址\")\r\n .action(async options => {\r\n setGlobal(options)\r\n reinstall()\r\n })\r\n\r\nprogram.command(\"snippet\").alias(\"sn\").description(\"生成 vscode snippet\").argument(\"path\", \"文件路径\").action(code2Snippet)\r\n\r\nprogram.command(\"add-alias\").alias(\"aa\").description(\"添加路径别名\").action(actionWithBackup(addFolderPathAlias))\r\n\r\nprogram.command(\"replace-alias\").alias(\"ra\").description(\"替换路径别名\").action(actionWithBackup(replacePathAlias))\r\n\r\nprogram.command(\"pnpm\").description(\"设置 pnpm 配置\").action(pnpm)\r\n\r\nprogram.command(\"rollup\").description(\"rollup 打包\").action(rollup)\r\n\r\nprogram.command(\"browserlistrc\").alias(\"blr\").description(\"添加 browserlistrc 配置\").action(createBrowserlistrc)\r\n\r\nprogram\r\n .command(\"asset\")\r\n .description(\"替换文件中的资源地址\")\r\n .argument(\"input\", \"静态文件夹路径\")\r\n .option(\"-b, --base <base>\", \"资源地址 BaseUrl\")\r\n .option(\"-o, --output <output>\", \"输出文件夹\")\r\n .option(\"-p, --proxy\", \"是否使用代理\")\r\n .action((input, { proxy, base, output }) => replaceAssets({ base, input, proxy, output }))\r\n\r\nprogram\r\n .command(\"upgrade-rsbuild\")\r\n .alias(\"ur\")\r\n .description(\"升级 rsbuild\")\r\n .option(\"-r, --registry <registry>\", \"npm 源地址,可以是 npm、taobao、tencent 或者自定义地址\")\r\n .option(\"-p, --proxy\", \"是否使用代理\")\r\n .action(async options => {\r\n setGlobal(options)\r\n await actionWithBackup(() => upgradeRsbuild())()\r\n })\r\n\r\nprogram\r\n .command(\"add-start-script\")\r\n .alias(\"ass\")\r\n .argument(\"type\", \"启动脚本类型:express、next\")\r\n .option(\"-p, --port <port>\", \"端口地址\")\r\n .option(\"-c, --core <core>\", \"实例数\")\r\n .option(\"-h, --hostname <hostname>\", \"主机名\")\r\n .option(\"-pem, --pemPath <pemPath>\", \"证书目录\")\r\n .description(\"添加 express 启动脚本\")\r\n .action(async (type, { port, core, pemPath }) => actionWithBackup(addStartScript)({ type, port, core, pemPath }))\r\n\r\nprogram\r\n .command(\"removeTailwindCssPreflight\")\r\n .alias(\"rtp\")\r\n .description(\"删除 tailwindcss 的 preflight.css 中的 img 和 video 样式\")\r\n .action(actionWithBackup(() => removeTailwindCssPreflight()))\r\n\r\nprogram.command(\"headers\").description(\"将浏览器中直接复制的 headers 转换为对象\").action(getHeaders)\r\n\r\nprogram.parse()\r\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- export declare const prettierConfigText = "module.exports = {\n semi: false,\n tabWidth: 4,\n arrowParens: \"avoid\",\n printWidth: 800,\n trailingComma: \"none\"\n}\n";
2
- export declare const prettierConfigTextWithTailwind = "module.exports = {\n plugins: [\"prettier-plugin-tailwindcss\"],\n semi: false,\n tabWidth: 4,\n arrowParens: \"avoid\",\n printWidth: 800,\n trailingComma: \"none\"\n}\n";
1
+ export declare const prettierConfigText = "module.exports = {\n semi: false,\n tabWidth: 4,\n arrowParens: \"avoid\",\n printWidth: 160,\n trailingComma: \"none\"\n}\n";
2
+ export declare const prettierConfigTextWithTailwind = "module.exports = {\n plugins: [\"prettier-plugin-tailwindcss\"],\n semi: false,\n tabWidth: 4,\n arrowParens: \"avoid\",\n printWidth: 160,\n trailingComma: \"none\"\n}\n";
3
3
  /** 添加 prettier */
4
4
  export declare function addPrettier(): Promise<void>;
@@ -42,7 +42,7 @@ var prettierConfigText = `module.exports = {
42
42
  semi: false,
43
43
  tabWidth: 4,
44
44
  arrowParens: "avoid",
45
- printWidth: 800,
45
+ printWidth: 160,
46
46
  trailingComma: "none"
47
47
  }
48
48
  `;
@@ -51,7 +51,7 @@ var prettierConfigTextWithTailwind = `module.exports = {
51
51
  semi: false,
52
52
  tabWidth: 4,
53
53
  arrowParens: "avoid",
54
- printWidth: 800,
54
+ printWidth: 160,
55
55
  trailingComma: "none"
56
56
  }
57
57
  `;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/addPrettier.ts"],
4
- "sourcesContent": ["import consola from \"consola\"\r\nimport { writeFile } from \"fs/promises\"\r\nimport { AddDependenciesConfig, addDependency } from \"./addDependency\"\r\nimport { readPackageJson } from \"./readPackageJson\"\r\n\r\nexport const prettierConfigText = `module.exports = {\r\n semi: false,\r\n tabWidth: 4,\r\n arrowParens: \"avoid\",\r\n printWidth: 800,\r\n trailingComma: \"none\"\r\n}\r\n`\r\n\r\nexport const prettierConfigTextWithTailwind = `module.exports = {\r\n plugins: [\"prettier-plugin-tailwindcss\"],\r\n semi: false,\r\n tabWidth: 4,\r\n arrowParens: \"avoid\",\r\n printWidth: 800,\r\n trailingComma: \"none\"\r\n}\r\n`\r\n\r\n/** 添加 prettier */\r\nexport async function addPrettier() {\r\n consola.start(\"开始添加 prettier 配置\")\r\n const packageJson = await readPackageJson()\r\n const tailwind = Object.keys(packageJson.dependencies ?? {}).includes(\"tailwindcss\") || Object.keys(packageJson.devDependencies ?? {}).includes(\"tailwindcss\")\r\n await writeFile(\"./prettier.config.cjs\", tailwind ? prettierConfigTextWithTailwind : prettierConfigText)\r\n const config: AddDependenciesConfig = {\r\n package: [\"prettier\"],\r\n type: \"devDependencies\"\r\n }\r\n if (tailwind) (config.package as string[]).push(\"prettier-plugin-tailwindcss\")\r\n await addDependency(config)\r\n consola.success(\"添加 prettier 配置成功\")\r\n}\r\n"],
4
+ "sourcesContent": ["import consola from \"consola\"\r\nimport { writeFile } from \"fs/promises\"\r\nimport { AddDependenciesConfig, addDependency } from \"./addDependency\"\r\nimport { readPackageJson } from \"./readPackageJson\"\r\n\r\nexport const prettierConfigText = `module.exports = {\r\n semi: false,\r\n tabWidth: 4,\r\n arrowParens: \"avoid\",\r\n printWidth: 160,\r\n trailingComma: \"none\"\r\n}\r\n`\r\n\r\nexport const prettierConfigTextWithTailwind = `module.exports = {\r\n plugins: [\"prettier-plugin-tailwindcss\"],\r\n semi: false,\r\n tabWidth: 4,\r\n arrowParens: \"avoid\",\r\n printWidth: 160,\r\n trailingComma: \"none\"\r\n}\r\n`\r\n\r\n/** 添加 prettier */\r\nexport async function addPrettier() {\r\n consola.start(\"开始添加 prettier 配置\")\r\n const packageJson = await readPackageJson()\r\n const tailwind = Object.keys(packageJson.dependencies ?? {}).includes(\"tailwindcss\") || Object.keys(packageJson.devDependencies ?? {}).includes(\"tailwindcss\")\r\n await writeFile(\"./prettier.config.cjs\", tailwind ? prettierConfigTextWithTailwind : prettierConfigText)\r\n const config: AddDependenciesConfig = {\r\n package: [\"prettier\"],\r\n type: \"devDependencies\"\r\n }\r\n if (tailwind) (config.package as string[]).push(\"prettier-plugin-tailwindcss\")\r\n await addDependency(config)\r\n consola.success(\"添加 prettier 配置成功\")\r\n}\r\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoB;AACpB,sBAA0B;AAC1B,2BAAqD;AACrD,6BAAgC;AAEzB,IAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS3B,IAAM,iCAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW9C,eAAsB,cAAc;AAChC,iBAAAA,QAAQ,MAAM,kBAAkB;AAChC,QAAM,cAAc,UAAM,wCAAgB;AAC1C,QAAM,WAAW,OAAO,KAAK,YAAY,gBAAgB,CAAC,CAAC,EAAE,SAAS,aAAa,KAAK,OAAO,KAAK,YAAY,mBAAmB,CAAC,CAAC,EAAE,SAAS,aAAa;AAC7J,YAAM,2BAAU,yBAAyB,WAAW,iCAAiC,kBAAkB;AACvG,QAAM,SAAgC;AAAA,IAClC,SAAS,CAAC,UAAU;AAAA,IACpB,MAAM;AAAA,EACV;AACA,MAAI;AAAU,IAAC,OAAO,QAAqB,KAAK,6BAA6B;AAC7E,YAAM,oCAAc,MAAM;AAC1B,iBAAAA,QAAQ,QAAQ,kBAAkB;AACtC;",
6
6
  "names": ["consola"]
7
7
  }
@@ -0,0 +1,13 @@
1
+ declare const scripts: {
2
+ express: string;
3
+ next: string;
4
+ };
5
+ export type AddStartScriptOptions = {
6
+ type: keyof typeof scripts;
7
+ pemPath?: string;
8
+ port?: string;
9
+ core?: string;
10
+ hostname?: string;
11
+ };
12
+ export declare function addStartScript({ type, pemPath, port, core, hostname }: AddStartScriptOptions): Promise<string>;
13
+ export {};
@@ -26,12 +26,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
28
 
29
- // src/utils/addNextScript.ts
30
- var addNextScript_exports = {};
31
- __export(addNextScript_exports, {
32
- addNextScript: () => addNextScript
29
+ // src/utils/addStartScript.ts
30
+ var addStartScript_exports = {};
31
+ __export(addStartScript_exports, {
32
+ addStartScript: () => addStartScript
33
33
  });
34
- module.exports = __toCommonJS(addNextScript_exports);
34
+ module.exports = __toCommonJS(addStartScript_exports);
35
35
  var import_consola = __toESM(require("consola"));
36
36
  var import_promises = require("fs/promises");
37
37
  var import_addDependency = require("./addDependency");
@@ -60,7 +60,71 @@ async function main() {
60
60
 
61
61
  main()
62
62
  `;
63
- var script2 = `// @ts-check
63
+ var expressScript = `// @ts-check
64
+ import compression from "compression"
65
+ import cors from "cors"
66
+ import { config } from "dotenv"
67
+ import express from "express"
68
+ import { readFile } from "fs/promises"
69
+ import { createServer as createHttpServer } from "http"
70
+ import { createServer as createHttpsServer } from "https"
71
+ import { join, resolve } from "path"
72
+ import { readFile } from "fs/promises"
73
+ import morgan from "morgan"
74
+
75
+ config()
76
+
77
+ export async function createServer(app) {
78
+ app.disable("x-powered-by")
79
+ app.use(compression())
80
+ app.use(cors())
81
+ app.use(morgan("tiny"))
82
+
83
+ const PEM_PATH = process.env.PEM_PATH
84
+ const HTTPS = !!PEM_PATH
85
+ const PORT = process.env.PORT ? Number(process.env.PORT) : HTTPS ? 443 : 80
86
+ const HOSTNAME = process.env.HOSTNAME
87
+
88
+ if (!HTTPS) return createHttpServer(app).listen(PORT, HOSTNAME)
89
+
90
+ const key = await readFile(join(PEM_PATH, "privkey.pem"), "utf8")
91
+ const cert = await readFile(join(PEM_PATH, "cert.pem"), "utf8")
92
+ const ca = await readFile(join(PEM_PATH, "chain.pem"), "utf8")
93
+
94
+ createHttpsServer({ key, cert, ca }, app).listen(PORT, HOSTNAME)
95
+ }
96
+
97
+
98
+ async function main() {
99
+ const PEM_PATH = process.env.PEM_PATH
100
+ const https = !!PEM_PATH
101
+ const PORT = process.env.PORT ? Number(process.env.PORT) : https ? 443 : 80
102
+ const HOSTNAME = process.env.HOSTNAME
103
+ const ROOT = process.env.ROOT || "dist"
104
+ if (!!process.env.BASE && !process.env.BASE.startsWith("/")) throw new Error("BASE 必须以 / 开头")
105
+ const BASE = process.env.BASE || "/"
106
+
107
+ const app = express()
108
+
109
+ app.use(cors())
110
+
111
+ app.use(\`\${BASE.replace(/\\/+$/, "")}/\`, express.static(ROOT))
112
+
113
+ app.get(\`\${BASE.replace(/\\/+$/, "")}/*\`, async (request, response) => response.sendFile(resolve(ROOT, "index.html")))
114
+
115
+ if (BASE !== "/") app.get("/", async (request, response) => response.redirect(BASE))
116
+
117
+ if (!https) return createHttpServer(app).listen(PORT, HOSTNAME)
118
+
119
+ const key = await readFile(join(PEM_PATH, "privkey.pem"), "utf8")
120
+ const cert = await readFile(join(PEM_PATH, "cert.pem"), "utf8")
121
+ const ca = await readFile(join(PEM_PATH, "chain.pem"), "utf8")
122
+ createHttpsServer({ key, cert, ca }, app).listen(PORT, HOSTNAME)
123
+ }
124
+
125
+ main()
126
+ `;
127
+ var nextScript = `// @ts-check
64
128
  import { config } from "dotenv"
65
129
  import { readFile } from "fs/promises"
66
130
  import { checkPort } from "get-port-please"
@@ -68,43 +132,71 @@ import { createServer as createHttpServer } from "http"
68
132
  import { createServer as createHttpsServer } from "https"
69
133
  import next from "next"
70
134
  import { join } from "path"
135
+ import compression from "compression"
136
+ import cors from "cors"
137
+ import express from "express"
138
+
139
+
140
+ import morgan from "morgan"
71
141
 
72
142
  config()
73
143
 
144
+
145
+ export async function createServer(app: Express) {
146
+ app.disable("x-powered-by")
147
+ app.use(compression())
148
+ app.use(cors())
149
+ app.use(morgan("tiny"))
150
+
151
+ const PEM_PATH = process.env.PEM_PATH
152
+ const HTTPS = !!PEM_PATH
153
+ const PORT = process.env.PORT ? Number(process.env.PORT) : HTTPS ? 443 : 80
154
+ const HOSTNAME = process.env.HOSTNAME
155
+
156
+ if (!HTTPS) return createHttpServer(app).listen(PORT, HOSTNAME)
157
+
158
+ const key = await readFile(join(PEM_PATH, "privkey.pem"), "utf8")
159
+ const cert = await readFile(join(PEM_PATH, "cert.pem"), "utf8")
160
+ const ca = await readFile(join(PEM_PATH, "chain.pem"), "utf8")
161
+
162
+ createHttpsServer({ key, cert, ca }, app).listen(PORT, HOSTNAME)
163
+ }
164
+
74
165
  async function main() {
75
166
  const PEM_PATH = process.env.PEM_PATH
76
- const https = !!PEM_PATH
77
- const PORT = process.env.PORT ? Number(process.env.PORT) : https ? 443 : 80
78
- const LOCALHOST = process.env.LOCALHOST === "true"
167
+ const HTTPS = !!PEM_PATH
168
+ const PORT = process.env.PORT ? Number(process.env.PORT) : HTTPS ? 443 : 80
169
+ const HOSTNAME = process.env.HOSTNAME
79
170
  if (!checkPort(PORT)) throw new Error(\`无效的端口号: \${PORT}\`)
80
- const app = next({ experimentalHttpsServer: https })
171
+
172
+ const app = next({ experimentalHttpsServer: HTTPS })
81
173
  const handle = app.getRequestHandler()
82
174
  await app.prepare()
83
- if (!https) {
84
- const server = createHttpServer((request, response) => handle(request, response))
85
- if (LOCALHOST) server.listen(PORT, "127.0.0.1")
86
- else server.listen(PORT)
87
- return
88
- }
175
+
176
+ if (!HTTPS) return createHttpServer((request, response) => handle(request, response)).listen(PORT, HOSTNAME)
177
+
89
178
  const key = await readFile(join(PEM_PATH, "privkey.pem"), "utf8")
90
179
  const cert = await readFile(join(PEM_PATH, "cert.pem"), "utf8")
91
180
  const ca = await readFile(join(PEM_PATH, "chain.pem"), "utf8")
92
- const server = createHttpsServer({ key, cert, ca }, (request, response) => handle(request, response))
93
- if (LOCALHOST) server.listen(PORT, "127.0.0.1")
94
- else server.listen(PORT)
181
+
182
+ createHttpsServer({ key, cert, ca }, (request, response) => handle(request, response)).listen(PORT, HOSTNAME)
95
183
  }
96
184
 
97
185
  main()
98
186
  `;
99
- async function addNextScript({ pemPath, port, core, localhost } = {}) {
187
+ var scripts = {
188
+ express: expressScript,
189
+ next: nextScript
190
+ };
191
+ async function addStartScript({ type, pemPath, port, core, hostname }) {
100
192
  await (0, import_addDependency.addDependency)({
101
- package: ["dotenv", "get-port-please"],
193
+ package: ["cors", "dotenv", "express", "get-port-please"],
102
194
  type: "devDependencies"
103
195
  });
104
196
  await (0, import_promises.mkdir)("scripts", { recursive: true });
105
197
  await (0, import_promises.writeFile)("scripts/start.mjs", script, "utf-8");
106
198
  import_consola.default.success("已添加 scripts/start.js");
107
- await (0, import_promises.writeFile)("scripts/server.mjs", script2, "utf-8");
199
+ await (0, import_promises.writeFile)("scripts/server.mjs", scripts[type], "utf-8");
108
200
  import_consola.default.success("已添加 scripts/server.js");
109
201
  let env = "";
110
202
  try {
@@ -126,11 +218,11 @@ PORT="${port ?? ""}"`;
126
218
  else
127
219
  env += `
128
220
  CORE="${core ?? ""}"`;
129
- if (/^ *LOCALHOST=/m.test(env))
130
- env = env.replace(/^ *LOCALHOST=.*$/m, `LOCALHOST="${localhost ? "true" : "false"}"`);
221
+ if (/^ *HOSTNAME=/m.test(env))
222
+ env = env.replace(/^ *HOSTNAME=.*$/m, `HOSTNAME="${hostname || ""}"`);
131
223
  else
132
224
  env += `
133
- LOCALHOST="${localhost ? "true" : "false"}"`;
225
+ HOSTNAME="${hostname || ""}"`;
134
226
  await (0, import_promises.writeFile)(".env", env, "utf-8");
135
227
  const packageJson = await (0, import_readPackageJson.readPackageJson)();
136
228
  packageJson.scripts ??= {};
@@ -142,6 +234,6 @@ LOCALHOST="${localhost ? "true" : "false"}"`;
142
234
  }
143
235
  // Annotate the CommonJS export names for ESM import in node:
144
236
  0 && (module.exports = {
145
- addNextScript
237
+ addStartScript
146
238
  });
147
- //# sourceMappingURL=addNextScript.js.map
239
+ //# sourceMappingURL=addStartScript.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utils/addStartScript.ts"],
4
+ "sourcesContent": ["import consola from \"consola\"\r\nimport { mkdir, readFile, writeFile } from \"fs/promises\"\r\nimport { addDependency } from \"./addDependency\"\r\nimport { installDependceny } from \"./installDependceny\"\r\nimport { readPackageJson } from \"./readPackageJson\"\r\nimport { writePackageJson } from \"./writePackageJson\"\r\nimport { getCommitMessage } from \"./getCommitMessage\"\r\nimport { CommitType } from \"@src/constant\"\r\n\r\nconst script = `// @ts-check\r\nimport { spawn } from \"child_process\"\r\nimport { config } from \"dotenv\"\r\nimport { readFile } from \"fs/promises\"\r\nimport { cpus } from \"os\"\r\n\r\nconfig()\r\n\r\nasync function main() {\r\n let core = parseInt(process.env.CORE || \"1\")\r\n if (!Number.isInteger(core)) core = 1\r\n if (core < 1) core = 1\r\n if (core > cpus().length) core = cpus().length\r\n const packageJson = JSON.parse(await readFile(\"package.json\", \"utf-8\"))\r\n\r\n spawn(\\`pm2 start scripts/server.mjs --name \\${packageJson.name} -i \\${core}\\`, { shell: true, stdio: \"inherit\" })\r\n}\r\n\r\nmain()\r\n`\r\n\r\nconst expressScript = `// @ts-check\r\nimport compression from \"compression\"\r\nimport cors from \"cors\"\r\nimport { config } from \"dotenv\"\r\nimport express from \"express\"\r\nimport { readFile } from \"fs/promises\"\r\nimport { createServer as createHttpServer } from \"http\"\r\nimport { createServer as createHttpsServer } from \"https\"\r\nimport { join, resolve } from \"path\"\r\nimport { readFile } from \"fs/promises\"\r\nimport morgan from \"morgan\"\r\n\r\nconfig()\r\n\r\nexport async function createServer(app) {\r\n app.disable(\"x-powered-by\")\r\n app.use(compression())\r\n app.use(cors())\r\n app.use(morgan(\"tiny\"))\r\n\r\n const PEM_PATH = process.env.PEM_PATH\r\n const HTTPS = !!PEM_PATH\r\n const PORT = process.env.PORT ? Number(process.env.PORT) : HTTPS ? 443 : 80\r\n const HOSTNAME = process.env.HOSTNAME\r\n\r\n if (!HTTPS) return createHttpServer(app).listen(PORT, HOSTNAME)\r\n\r\n const key = await readFile(join(PEM_PATH, \"privkey.pem\"), \"utf8\")\r\n const cert = await readFile(join(PEM_PATH, \"cert.pem\"), \"utf8\")\r\n const ca = await readFile(join(PEM_PATH, \"chain.pem\"), \"utf8\")\r\n\r\n createHttpsServer({ key, cert, ca }, app).listen(PORT, HOSTNAME)\r\n}\r\n\r\n\r\nasync function main() {\r\n const PEM_PATH = process.env.PEM_PATH\r\n const https = !!PEM_PATH\r\n const PORT = process.env.PORT ? Number(process.env.PORT) : https ? 443 : 80\r\n const HOSTNAME = process.env.HOSTNAME\r\n const ROOT = process.env.ROOT || \"dist\"\r\n if (!!process.env.BASE && !process.env.BASE.startsWith(\"/\")) throw new Error(\"BASE 必须以 / 开头\")\r\n const BASE = process.env.BASE || \"/\"\r\n\r\n const app = express()\r\n\r\n app.use(cors())\r\n\r\n app.use(\\`\\${BASE.replace(/\\\\/+$/, \"\")}/\\`, express.static(ROOT))\r\n\r\n app.get(\\`\\${BASE.replace(/\\\\/+$/, \"\")}/*\\`, async (request, response) => response.sendFile(resolve(ROOT, \"index.html\")))\r\n\r\n if (BASE !== \"/\") app.get(\"/\", async (request, response) => response.redirect(BASE))\r\n\r\n if (!https) return createHttpServer(app).listen(PORT, HOSTNAME)\r\n\r\n const key = await readFile(join(PEM_PATH, \"privkey.pem\"), \"utf8\")\r\n const cert = await readFile(join(PEM_PATH, \"cert.pem\"), \"utf8\")\r\n const ca = await readFile(join(PEM_PATH, \"chain.pem\"), \"utf8\")\r\n createHttpsServer({ key, cert, ca }, app).listen(PORT, HOSTNAME)\r\n}\r\n\r\nmain()\r\n`\r\n\r\nconst nextScript = `// @ts-check\r\nimport { config } from \"dotenv\"\r\nimport { readFile } from \"fs/promises\"\r\nimport { checkPort } from \"get-port-please\"\r\nimport { createServer as createHttpServer } from \"http\"\r\nimport { createServer as createHttpsServer } from \"https\"\r\nimport next from \"next\"\r\nimport { join } from \"path\"\r\nimport compression from \"compression\"\r\nimport cors from \"cors\"\r\nimport express from \"express\"\r\n\r\n\r\nimport morgan from \"morgan\"\r\n\r\nconfig()\r\n\r\n\r\nexport async function createServer(app: Express) {\r\n app.disable(\"x-powered-by\")\r\n app.use(compression())\r\n app.use(cors())\r\n app.use(morgan(\"tiny\"))\r\n\r\n const PEM_PATH = process.env.PEM_PATH\r\n const HTTPS = !!PEM_PATH\r\n const PORT = process.env.PORT ? Number(process.env.PORT) : HTTPS ? 443 : 80\r\n const HOSTNAME = process.env.HOSTNAME\r\n\r\n if (!HTTPS) return createHttpServer(app).listen(PORT, HOSTNAME)\r\n\r\n const key = await readFile(join(PEM_PATH, \"privkey.pem\"), \"utf8\")\r\n const cert = await readFile(join(PEM_PATH, \"cert.pem\"), \"utf8\")\r\n const ca = await readFile(join(PEM_PATH, \"chain.pem\"), \"utf8\")\r\n\r\n createHttpsServer({ key, cert, ca }, app).listen(PORT, HOSTNAME)\r\n}\r\n\r\nasync function main() {\r\n const PEM_PATH = process.env.PEM_PATH\r\n const HTTPS = !!PEM_PATH\r\n const PORT = process.env.PORT ? Number(process.env.PORT) : HTTPS ? 443 : 80\r\n const HOSTNAME = process.env.HOSTNAME\r\n if (!checkPort(PORT)) throw new Error(\\`无效的端口号: \\${PORT}\\`)\r\n \r\n const app = next({ experimentalHttpsServer: HTTPS })\r\n const handle = app.getRequestHandler()\r\n await app.prepare()\r\n\r\n if (!HTTPS) return createHttpServer((request, response) => handle(request, response)).listen(PORT, HOSTNAME)\r\n\r\n const key = await readFile(join(PEM_PATH, \"privkey.pem\"), \"utf8\")\r\n const cert = await readFile(join(PEM_PATH, \"cert.pem\"), \"utf8\")\r\n const ca = await readFile(join(PEM_PATH, \"chain.pem\"), \"utf8\")\r\n\r\n createHttpsServer({ key, cert, ca }, (request, response) => handle(request, response)).listen(PORT, HOSTNAME)\r\n}\r\n\r\nmain()\r\n`\r\n\r\nconst scripts = {\r\n express: expressScript,\r\n next: nextScript\r\n}\r\n\r\nexport type AddStartScriptOptions = {\r\n type: keyof typeof scripts\r\n pemPath?: string\r\n port?: string\r\n core?: string\r\n hostname?: string\r\n}\r\n\r\nexport async function addStartScript({ type, pemPath, port, core, hostname }: AddStartScriptOptions) {\r\n await addDependency({\r\n package: [\"cors\", \"dotenv\", \"express\", \"get-port-please\"],\r\n type: \"devDependencies\"\r\n })\r\n await mkdir(\"scripts\", { recursive: true })\r\n await writeFile(\"scripts/start.mjs\", script, \"utf-8\")\r\n consola.success(\"已添加 scripts/start.js\")\r\n await writeFile(\"scripts/server.mjs\", scripts[type], \"utf-8\")\r\n consola.success(\"已添加 scripts/server.js\")\r\n let env = \"\"\r\n try {\r\n env = await readFile(\".env\", \"utf-8\")\r\n } catch (error) {}\r\n\r\n // 添加证书目录\r\n if (/^ *PEM_PATH=/m.test(env)) env = env.replace(/^ *PEM_PATH=.*$/m, `PEM_PATH=\"${pemPath ?? \"\"}\"`)\r\n else env += `\\nPEM_PATH=\"${pemPath ?? \"\"}\"`\r\n\r\n // 添加端口号\r\n if (/^ *PORT=/m.test(env)) env = env.replace(/^ *PORT=.*$/m, `PORT=\"${port ?? \"\"}\"`)\r\n else env += `\\nPORT=\"${port ?? \"\"}\"`\r\n\r\n // 添加实例数\r\n if (/^ *CORE=/m.test(env)) env = env.replace(/^ *CORE=.*$/m, `CORE=\"${core ?? \"\"}\"`)\r\n else env += `\\nCORE=\"${core ?? \"\"}\"`\r\n\r\n // 添加主机\r\n if (/^ *HOSTNAME=/m.test(env)) env = env.replace(/^ *HOSTNAME=.*$/m, `HOSTNAME=\"${hostname || \"\"}\"`)\r\n else env += `\\nHOSTNAME=\"${hostname || \"\"}\"`\r\n\r\n await writeFile(\".env\", env, \"utf-8\")\r\n const packageJson = await readPackageJson()\r\n packageJson.scripts ??= {}\r\n packageJson.scripts.start = \"node scripts/start.mjs\"\r\n await writePackageJson({ data: packageJson })\r\n consola.success(\"已添加启动命令 start\")\r\n await installDependceny()\r\n return getCommitMessage(CommitType.feature, \"添加启动命令\")\r\n}\r\n"],
5
+ "mappings": "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",
6
+ "names": ["consola"]
7
+ }
@@ -69,7 +69,7 @@ var prettierConfig = {
69
69
  semi: false,
70
70
  tabWidth: 4,
71
71
  arrowParens: "avoid",
72
- printWidth: 800,
72
+ printWidth: 160,
73
73
  trailingComma: "none"
74
74
  };
75
75
  function getFilename(headers) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/index.ts"],
4
- "sourcesContent": ["import { agent } from \"@constant/index\"\r\nimport consola from \"consola\"\r\nimport { createWriteStream, existsSync } from \"fs\"\r\nimport { mkdir, readFile, readdir, rename, rm, writeFile } from \"fs/promises\"\r\nimport { type Headers as NodeFetchHeaders } from \"node-fetch\"\r\nimport { homedir } from \"os\"\r\nimport { join } from \"path\"\r\nimport { Config } from \"prettier\"\r\nimport { execAsync, unzip } from \"soda-nodejs\"\r\nimport { Readable } from \"stream\"\r\nimport YAML from \"yaml\"\r\nimport { retry } from \"./retry\"\r\n\r\nexport function isPositiveInteger(value: any, allowZero = false): value is number {\r\n return Number.isInteger(value) && (allowZero ? value >= 0 : value > 0)\r\n}\r\n\r\nexport const prettierConfig: Config = {\r\n semi: false,\r\n tabWidth: 4,\r\n arrowParens: \"avoid\",\r\n printWidth: 800,\r\n trailingComma: \"none\"\r\n}\r\n\r\nexport function getFilename(headers: Headers | NodeFetchHeaders) {\r\n const disposition = headers.get(\"content-disposition\")\r\n if (!disposition) return undefined\r\n const reg = /filename=(.+?);/\r\n const result = disposition.match(reg)\r\n if (!result) return undefined\r\n return result[1]\r\n}\r\n\r\nexport async function download(url: string, dir: string, filename?: string) {\r\n const { default: fetch } = await import(\"node-fetch\")\r\n const response = await fetch(url, { agent })\r\n filename = getFilename(response.headers) || filename || new URL(url).pathname.split(\"/\").at(-1)!\r\n const writeable = createWriteStream(join(dir, filename))\r\n await new Promise((resolve, reject) => Readable.from(response.body!).pipe(writeable).on(\"finish\", resolve).on(\"error\", reject))\r\n return filename\r\n}\r\n\r\nexport async function downloadVscode(dir: string) {\r\n await downloadFromWinget({\r\n name: \"VSCode\",\r\n id: \"Microsoft.VisualStudioCode\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\" && item.Scope === \"machine\"\r\n })\r\n}\r\n\r\nexport async function sleep(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms))\r\n}\r\n\r\nexport namespace PCQQ {\r\n export interface Result {\r\n resp: Resp\r\n }\r\n\r\n export interface Resp {\r\n soft_list: Softlist[]\r\n retCode: number\r\n }\r\n\r\n export interface Softlist {\r\n soft_id: number\r\n os_type: number\r\n os_bit: number\r\n display_name: string\r\n nick_ver: string\r\n ver_name: string\r\n file_size: string\r\n file_name: string\r\n publish_date: string\r\n download_url: string\r\n download_https_url: string\r\n }\r\n}\r\n\r\nexport async function downloadFromPCQQ(dir: string, cmdid: number, soft_id_list: number) {\r\n const data = new URLSearchParams()\r\n data.set(\"cmdid\", cmdid.toString())\r\n data.set(\"jprxReq[req][soft_id_list][]\", soft_id_list.toString())\r\n const headers = new Headers()\r\n headers.set(\"Content-Type\", \"application/x-www-form-urlencoded\")\r\n const response = await fetch(`https://luban.m.qq.com/api/public/software-manager/softwareProxy`, { method: \"POST\", headers, body: data.toString() })\r\n const result: PCQQ.Result = await response.json()\r\n await download(result.resp.soft_list[0].download_https_url, dir, result.resp.soft_list[0].file_name)\r\n}\r\n\r\nexport namespace Winget {\r\n export interface Package {\r\n PackageIdentifier: string\r\n PackageVersion: string\r\n InstallerType: string\r\n InstallModes: string[]\r\n InstallerSwitches: InstallerSwitches\r\n ExpectedReturnCodes: ExpectedReturnCode[]\r\n UpgradeBehavior: string\r\n Protocols: string[]\r\n FileExtensions: string[]\r\n AppsAndFeaturesEntries: AppsAndFeaturesEntry[]\r\n Installers: Installer[]\r\n ManifestType: string\r\n ManifestVersion: string\r\n }\r\n\r\n export interface Installer {\r\n Architecture: string\r\n Scope?: string\r\n InstallerUrl: string\r\n InstallerSha256: string\r\n InstallerLocale?: string\r\n InstallerType?: string\r\n }\r\n\r\n export interface InstallerSwitches2 {\r\n Custom: string\r\n }\r\n\r\n export interface AppsAndFeaturesEntry {\r\n UpgradeCode: string\r\n InstallerType: string\r\n }\r\n\r\n export interface ExpectedReturnCode {\r\n InstallerReturnCode: number\r\n ReturnResponse: string\r\n }\r\n\r\n export interface InstallerSwitches {\r\n Log: string\r\n }\r\n}\r\n\r\nexport type WingetItem = {\r\n filename: string\r\n version: string\r\n ext: string\r\n architecture: string\r\n}\r\n\r\nexport type WingetDownloadInfo = {\r\n name: string\r\n id: string\r\n dir: string\r\n filter: (item: Winget.Installer, index: number, arr: Winget.Installer[]) => boolean\r\n}\r\n\r\nexport async function downloadFromWinget({ name, id, dir, filter }: WingetDownloadInfo) {\r\n const { default: fetch } = await import(\"node-fetch\")\r\n const firstLetter = id[0].toLowerCase()\r\n const path = id.replace(/\\./g, \"/\")\r\n const response = await fetch(`https://api.github.com/repos/microsoft/winget-pkgs/contents/manifests/${firstLetter}/${path}`, { agent })\r\n const data: GithubContent[] = (await response.json()) as any\r\n if (!Array.isArray(data)) throw new Error((data as any).message)\r\n const reg2 = /^\\d+(\\.\\d+?)*$/\r\n const stables = data.filter(item => reg2.test(item.name))\r\n stables.sort((a, b) => {\r\n const avs = a.name.split(\".\")\r\n const bvs = b.name.split(\".\")\r\n const max = Math.max(avs.length, bvs.length)\r\n for (let i = 0; i < max; i++) {\r\n const av = avs[i] ? parseInt(avs[i]) : 0\r\n const bv = bvs[i] ? parseInt(bvs[i]) : 0\r\n if (av < bv) return 1\r\n if (av > bv) return -1\r\n }\r\n return 0\r\n })\r\n const response2 = await fetch(`https://raw.githubusercontent.com/microsoft/winget-pkgs/master/manifests/${firstLetter}/${path}/${stables[0].name}/${id}.installer.yaml`, { agent })\r\n const yaml = await response2.text()\r\n const pkg: Winget.Package = YAML.parse(yaml)\r\n\r\n const installers = filter ? pkg.Installers.filter(filter) : pkg.Installers\r\n\r\n if (installers.length === 0) {\r\n consola.warn(`未找到 ${name} 的安装程序`)\r\n return\r\n }\r\n\r\n const result: WingetItem[] = []\r\n\r\n for (const { InstallerUrl, Architecture } of installers) {\r\n const filename = await download(InstallerUrl, dir)\r\n result.push({ filename, version: pkg.PackageVersion, ext: new URL(InstallerUrl).pathname.endsWith(\".exe\") ? \"exe\" : \"msi\", architecture: Architecture })\r\n }\r\n\r\n for (const { version, filename, architecture, ext } of result) {\r\n await sleep(100)\r\n await rename(join(dir, filename), join(dir, `${name}-${version}-${architecture}.${ext}`))\r\n }\r\n}\r\n\r\nexport interface GithubContent {\r\n name: string\r\n path: string\r\n sha: string\r\n size: number\r\n url: string\r\n html_url: string\r\n git_url: string\r\n download_url?: string | null\r\n type: string\r\n _links: Links\r\n}\r\n\r\nexport interface Links {\r\n self: string\r\n git: string\r\n html: string\r\n}\r\n\r\nexport async function downloadChrome(dir: string) {\r\n await downloadFromWinget({\r\n name: \"Chrome\",\r\n id: \"Google.Chrome\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\"\r\n })\r\n}\r\n\r\nexport async function downloadNodeJS(dir: string) {\r\n await downloadFromWinget({\r\n name: \"NodeJS\",\r\n id: \"OpenJS.NodeJS.LTS\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\"\r\n })\r\n}\r\n\r\nexport async function download7Zip(dir: string) {\r\n await downloadFromWinget({\r\n name: \"7Zip\",\r\n id: \"7zip.7zip\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\" && item.InstallerType === \"exe\"\r\n })\r\n}\r\n\r\nexport async function downloadGit(dir: string) {\r\n await downloadFromWinget({\r\n name: \"Git\",\r\n id: \"Git.Git\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\" && item.Scope === \"machine\"\r\n })\r\n}\r\n\r\nexport async function downloadDeskGo(dir: string) {\r\n await downloadFromPCQQ(dir, 3318, 23125)\r\n const dir2 = await readdir(dir)\r\n const file = dir2.find(item => item.startsWith(\"DeskGo\"))!\r\n await rename(\r\n join(dir, file),\r\n join(\r\n dir,\r\n file.replace(/^DeskGo_(.+)_full\\.exe$/, (match, arg) => `DeskGo-${arg.replace(/\\_/g, \".\")}-x64.exe`)\r\n )\r\n )\r\n}\r\n\r\nexport async function downloadGeekUninstaller(dir: string) {\r\n await download(`https://geekuninstaller.com/geek.zip`, dir)\r\n await unzip({\r\n input: join(dir, \"geek.zip\"),\r\n output: dir\r\n })\r\n await rm(join(dir, \"geek.zip\"), { force: true })\r\n const response = await fetch(\"https://geekuninstaller.com/download\")\r\n const text = await response.text()\r\n const version = text.match(/<b>(.+?)<\\/b>/)![1]\r\n await rename(join(dir, \"geek.exe\"), join(dir, `Geek-${version}-x64.exe`))\r\n}\r\n\r\nexport async function getVscodeExtInfo(ext: string): Promise<VscodeExt> {\r\n const response = await fetch(`https://marketplace.visualstudio.com/items?itemName=${ext}`)\r\n const html = await response.text()\r\n const reg = /^(.+?)\\.(.+?)$/\r\n const [, author, name] = ext.match(reg)!\r\n const reg2 = /\"Version\":\"(.+?)\"/\r\n const version = html.match(reg2)![1]\r\n const reg3 = /<span class=\"ux-item-name\">(.+?)<\\/span>/\r\n const displayName = html.match(reg3)![1]\r\n const url = `https://marketplace.visualstudio.com/_apis/public/gallery/publishers/${author}/vsextensions/${name}/${version}/vspackage`\r\n return { id: ext, name: displayName, version, url }\r\n // await download(url, dir, `${ext}-${version}.vsix`)\r\n}\r\n\r\nexport interface VscodeExt {\r\n id: string\r\n name: string\r\n version: string\r\n url: string\r\n}\r\n\r\nexport async function downloadVscodeExts(dir: string) {\r\n await mkdir(dir, { recursive: true })\r\n const { default: inquirer } = await import(\"inquirer\")\r\n consola.start(\"正在获取 VS Code 扩展列表\")\r\n const extList = await execAsync(\"code --list-extensions\")\r\n const exts = await Promise.all(\r\n extList\r\n .split(/[\\n\\r]/)\r\n .filter(Boolean)\r\n .map(ext => getVscodeExtInfo(ext))\r\n )\r\n const setting = await getSetting()\r\n const vscodeExts = setting?.vscodeExts as string[] | undefined\r\n const exts2 = await inquirer.prompt({\r\n type: \"checkbox\",\r\n name: \"exts\",\r\n message: \"选择需要下载的扩展\",\r\n choices: exts.map(ext => ({ name: ext.name, value: ext.id })),\r\n default: vscodeExts?.filter(ext => exts.some(item => item.id === ext)) || exts.map(ext => ext.id)\r\n })\r\n setting.vscodeExts = exts2.exts\r\n await setSetting(setting)\r\n for (const ext of exts) {\r\n if (!exts2.exts.includes(ext.id)) continue\r\n consola.start(`正在下载 ${ext.name}`)\r\n await retry(() => download(ext.url, dir, `${ext.id}-${ext.version}.vsix`), 4)\r\n }\r\n}\r\n\r\nexport async function writeSyncVscodeScript(dir: string) {\r\n const script = `// @ts-check\r\nimport { spawn } from \"child_process\"\r\nimport { readdir, copyFile, rm } from \"fs/promises\"\r\nimport { homedir } from \"os\"\r\nimport { join } from \"path\"\r\n\r\n/** \r\n * @param {string} command\r\n */\r\nfunction spawnAsync(command) {\r\n return new Promise((resolve, reject) => {\r\n const child = spawn(command, { shell: true, stdio: \"inherit\" })\r\n child.on(\"exit\", code => {\r\n if (code !== 0) return reject(new Error(\\`Command failed with code \\${code}\\`))\r\n resolve(0)\r\n })\r\n })\r\n}\r\n\r\nasync function main() {\r\n const dir = await readdir(\"./extensions\")\r\n for (const ext of dir) {\r\n await spawnAsync(\\`code --install-extension \"./extensions/\\${ext}\"\\`)\r\n }\r\n const userDir = homedir()\r\n const setting = join(userDir, \"AppData/Roaming/Code/User/settings.json\")\r\n await rm(setting, { force: true })\r\n await copyFile(\"./settings.json\", setting)\r\n const snippetTarget = join(userDir, \"AppData/Roaming/Code/User/snippets\")\r\n const dir2 = await readdir(\"./snippets\")\r\n for (const file of dir2) {\r\n await rm(join(snippetTarget, file), { force: true })\r\n await copyFile(join(\"./snippets\", file), join(snippetTarget, file))\r\n }\r\n}\r\n\r\nmain()`\r\n await writeFile(join(dir, \"syncVscode.mjs\"), script, \"utf-8\")\r\n}\r\n\r\nexport async function getProcessInfoFromPid(pid: number) {\r\n try {\r\n const stdout = await execAsync(`tasklist | findstr ${pid}`)\r\n const reg = new RegExp(`( +)${pid}( (Services|Console) +)`)\r\n return stdout\r\n .split(/[\\n\\r]/)\r\n .find(line => reg.test(line))\r\n ?.replace(reg, \"$1$2\")\r\n ?.replace(/ +/g, \" \")\r\n } catch (error) {\r\n return undefined\r\n }\r\n}\r\n\r\nexport type PidInfo = {\r\n pid: number\r\n info: string\r\n}\r\n\r\nexport async function getPidInfoFromPort(port: number) {\r\n try {\r\n const stdout = await execAsync(`netstat -ano | findstr :${port}`)\r\n const reg = new RegExp(` (\\\\[::\\\\]|(\\\\d{1,3}\\\\.){3}\\\\d{1,3}):${port} `)\r\n const result = Array.from(\r\n new Set(\r\n stdout\r\n .split(/[\\n\\r]/)\r\n .filter(line => reg.test(line))\r\n .map(line => ({ pid: parseInt(line.match(reg)![1]), info: line }))\r\n )\r\n )\r\n for (let i = 0; ; ) {\r\n if (result.some(({ info }) => info[i] === undefined)) break\r\n if (result.some(({ info }) => info[i] !== \" \" || info[i + 1] !== \" \")) {\r\n i++\r\n continue\r\n }\r\n result.forEach(item => (item.info = `${item.info.slice(0, i)}${item.info.slice(i + 1)}`))\r\n }\r\n return result\r\n } catch (error) {\r\n return []\r\n }\r\n}\r\n\r\nexport async function getSetting() {\r\n const userDir = homedir()\r\n const settingPath = join(userDir, \".zixulu.json\")\r\n if (existsSync(settingPath)) {\r\n const setting = JSON.parse(await readFile(settingPath, \"utf-8\"))\r\n return setting\r\n }\r\n return {}\r\n}\r\n\r\nexport async function setSetting(setting: Record<string, any>) {\r\n const userDir = homedir()\r\n const settingPath = join(userDir, \".zixulu.json\")\r\n await writeFile(settingPath, JSON.stringify(setting, undefined, 4), \"utf-8\")\r\n}\r\n"],
4
+ "sourcesContent": ["import { agent } from \"@constant/index\"\r\nimport consola from \"consola\"\r\nimport { createWriteStream, existsSync } from \"fs\"\r\nimport { mkdir, readFile, readdir, rename, rm, writeFile } from \"fs/promises\"\r\nimport { type Headers as NodeFetchHeaders } from \"node-fetch\"\r\nimport { homedir } from \"os\"\r\nimport { join } from \"path\"\r\nimport { Config } from \"prettier\"\r\nimport { execAsync, unzip } from \"soda-nodejs\"\r\nimport { Readable } from \"stream\"\r\nimport YAML from \"yaml\"\r\nimport { retry } from \"./retry\"\r\n\r\nexport function isPositiveInteger(value: any, allowZero = false): value is number {\r\n return Number.isInteger(value) && (allowZero ? value >= 0 : value > 0)\r\n}\r\n\r\nexport const prettierConfig: Config = {\r\n semi: false,\r\n tabWidth: 4,\r\n arrowParens: \"avoid\",\r\n printWidth: 160,\r\n trailingComma: \"none\"\r\n}\r\n\r\nexport function getFilename(headers: Headers | NodeFetchHeaders) {\r\n const disposition = headers.get(\"content-disposition\")\r\n if (!disposition) return undefined\r\n const reg = /filename=(.+?);/\r\n const result = disposition.match(reg)\r\n if (!result) return undefined\r\n return result[1]\r\n}\r\n\r\nexport async function download(url: string, dir: string, filename?: string) {\r\n const { default: fetch } = await import(\"node-fetch\")\r\n const response = await fetch(url, { agent })\r\n filename = getFilename(response.headers) || filename || new URL(url).pathname.split(\"/\").at(-1)!\r\n const writeable = createWriteStream(join(dir, filename))\r\n await new Promise((resolve, reject) => Readable.from(response.body!).pipe(writeable).on(\"finish\", resolve).on(\"error\", reject))\r\n return filename\r\n}\r\n\r\nexport async function downloadVscode(dir: string) {\r\n await downloadFromWinget({\r\n name: \"VSCode\",\r\n id: \"Microsoft.VisualStudioCode\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\" && item.Scope === \"machine\"\r\n })\r\n}\r\n\r\nexport async function sleep(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms))\r\n}\r\n\r\nexport namespace PCQQ {\r\n export interface Result {\r\n resp: Resp\r\n }\r\n\r\n export interface Resp {\r\n soft_list: Softlist[]\r\n retCode: number\r\n }\r\n\r\n export interface Softlist {\r\n soft_id: number\r\n os_type: number\r\n os_bit: number\r\n display_name: string\r\n nick_ver: string\r\n ver_name: string\r\n file_size: string\r\n file_name: string\r\n publish_date: string\r\n download_url: string\r\n download_https_url: string\r\n }\r\n}\r\n\r\nexport async function downloadFromPCQQ(dir: string, cmdid: number, soft_id_list: number) {\r\n const data = new URLSearchParams()\r\n data.set(\"cmdid\", cmdid.toString())\r\n data.set(\"jprxReq[req][soft_id_list][]\", soft_id_list.toString())\r\n const headers = new Headers()\r\n headers.set(\"Content-Type\", \"application/x-www-form-urlencoded\")\r\n const response = await fetch(`https://luban.m.qq.com/api/public/software-manager/softwareProxy`, { method: \"POST\", headers, body: data.toString() })\r\n const result: PCQQ.Result = await response.json()\r\n await download(result.resp.soft_list[0].download_https_url, dir, result.resp.soft_list[0].file_name)\r\n}\r\n\r\nexport namespace Winget {\r\n export interface Package {\r\n PackageIdentifier: string\r\n PackageVersion: string\r\n InstallerType: string\r\n InstallModes: string[]\r\n InstallerSwitches: InstallerSwitches\r\n ExpectedReturnCodes: ExpectedReturnCode[]\r\n UpgradeBehavior: string\r\n Protocols: string[]\r\n FileExtensions: string[]\r\n AppsAndFeaturesEntries: AppsAndFeaturesEntry[]\r\n Installers: Installer[]\r\n ManifestType: string\r\n ManifestVersion: string\r\n }\r\n\r\n export interface Installer {\r\n Architecture: string\r\n Scope?: string\r\n InstallerUrl: string\r\n InstallerSha256: string\r\n InstallerLocale?: string\r\n InstallerType?: string\r\n }\r\n\r\n export interface InstallerSwitches2 {\r\n Custom: string\r\n }\r\n\r\n export interface AppsAndFeaturesEntry {\r\n UpgradeCode: string\r\n InstallerType: string\r\n }\r\n\r\n export interface ExpectedReturnCode {\r\n InstallerReturnCode: number\r\n ReturnResponse: string\r\n }\r\n\r\n export interface InstallerSwitches {\r\n Log: string\r\n }\r\n}\r\n\r\nexport type WingetItem = {\r\n filename: string\r\n version: string\r\n ext: string\r\n architecture: string\r\n}\r\n\r\nexport type WingetDownloadInfo = {\r\n name: string\r\n id: string\r\n dir: string\r\n filter: (item: Winget.Installer, index: number, arr: Winget.Installer[]) => boolean\r\n}\r\n\r\nexport async function downloadFromWinget({ name, id, dir, filter }: WingetDownloadInfo) {\r\n const { default: fetch } = await import(\"node-fetch\")\r\n const firstLetter = id[0].toLowerCase()\r\n const path = id.replace(/\\./g, \"/\")\r\n const response = await fetch(`https://api.github.com/repos/microsoft/winget-pkgs/contents/manifests/${firstLetter}/${path}`, { agent })\r\n const data: GithubContent[] = (await response.json()) as any\r\n if (!Array.isArray(data)) throw new Error((data as any).message)\r\n const reg2 = /^\\d+(\\.\\d+?)*$/\r\n const stables = data.filter(item => reg2.test(item.name))\r\n stables.sort((a, b) => {\r\n const avs = a.name.split(\".\")\r\n const bvs = b.name.split(\".\")\r\n const max = Math.max(avs.length, bvs.length)\r\n for (let i = 0; i < max; i++) {\r\n const av = avs[i] ? parseInt(avs[i]) : 0\r\n const bv = bvs[i] ? parseInt(bvs[i]) : 0\r\n if (av < bv) return 1\r\n if (av > bv) return -1\r\n }\r\n return 0\r\n })\r\n const response2 = await fetch(`https://raw.githubusercontent.com/microsoft/winget-pkgs/master/manifests/${firstLetter}/${path}/${stables[0].name}/${id}.installer.yaml`, { agent })\r\n const yaml = await response2.text()\r\n const pkg: Winget.Package = YAML.parse(yaml)\r\n\r\n const installers = filter ? pkg.Installers.filter(filter) : pkg.Installers\r\n\r\n if (installers.length === 0) {\r\n consola.warn(`未找到 ${name} 的安装程序`)\r\n return\r\n }\r\n\r\n const result: WingetItem[] = []\r\n\r\n for (const { InstallerUrl, Architecture } of installers) {\r\n const filename = await download(InstallerUrl, dir)\r\n result.push({ filename, version: pkg.PackageVersion, ext: new URL(InstallerUrl).pathname.endsWith(\".exe\") ? \"exe\" : \"msi\", architecture: Architecture })\r\n }\r\n\r\n for (const { version, filename, architecture, ext } of result) {\r\n await sleep(100)\r\n await rename(join(dir, filename), join(dir, `${name}-${version}-${architecture}.${ext}`))\r\n }\r\n}\r\n\r\nexport interface GithubContent {\r\n name: string\r\n path: string\r\n sha: string\r\n size: number\r\n url: string\r\n html_url: string\r\n git_url: string\r\n download_url?: string | null\r\n type: string\r\n _links: Links\r\n}\r\n\r\nexport interface Links {\r\n self: string\r\n git: string\r\n html: string\r\n}\r\n\r\nexport async function downloadChrome(dir: string) {\r\n await downloadFromWinget({\r\n name: \"Chrome\",\r\n id: \"Google.Chrome\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\"\r\n })\r\n}\r\n\r\nexport async function downloadNodeJS(dir: string) {\r\n await downloadFromWinget({\r\n name: \"NodeJS\",\r\n id: \"OpenJS.NodeJS.LTS\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\"\r\n })\r\n}\r\n\r\nexport async function download7Zip(dir: string) {\r\n await downloadFromWinget({\r\n name: \"7Zip\",\r\n id: \"7zip.7zip\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\" && item.InstallerType === \"exe\"\r\n })\r\n}\r\n\r\nexport async function downloadGit(dir: string) {\r\n await downloadFromWinget({\r\n name: \"Git\",\r\n id: \"Git.Git\",\r\n dir,\r\n filter: item => item.Architecture === \"x64\" && item.Scope === \"machine\"\r\n })\r\n}\r\n\r\nexport async function downloadDeskGo(dir: string) {\r\n await downloadFromPCQQ(dir, 3318, 23125)\r\n const dir2 = await readdir(dir)\r\n const file = dir2.find(item => item.startsWith(\"DeskGo\"))!\r\n await rename(\r\n join(dir, file),\r\n join(\r\n dir,\r\n file.replace(/^DeskGo_(.+)_full\\.exe$/, (match, arg) => `DeskGo-${arg.replace(/\\_/g, \".\")}-x64.exe`)\r\n )\r\n )\r\n}\r\n\r\nexport async function downloadGeekUninstaller(dir: string) {\r\n await download(`https://geekuninstaller.com/geek.zip`, dir)\r\n await unzip({\r\n input: join(dir, \"geek.zip\"),\r\n output: dir\r\n })\r\n await rm(join(dir, \"geek.zip\"), { force: true })\r\n const response = await fetch(\"https://geekuninstaller.com/download\")\r\n const text = await response.text()\r\n const version = text.match(/<b>(.+?)<\\/b>/)![1]\r\n await rename(join(dir, \"geek.exe\"), join(dir, `Geek-${version}-x64.exe`))\r\n}\r\n\r\nexport async function getVscodeExtInfo(ext: string): Promise<VscodeExt> {\r\n const response = await fetch(`https://marketplace.visualstudio.com/items?itemName=${ext}`)\r\n const html = await response.text()\r\n const reg = /^(.+?)\\.(.+?)$/\r\n const [, author, name] = ext.match(reg)!\r\n const reg2 = /\"Version\":\"(.+?)\"/\r\n const version = html.match(reg2)![1]\r\n const reg3 = /<span class=\"ux-item-name\">(.+?)<\\/span>/\r\n const displayName = html.match(reg3)![1]\r\n const url = `https://marketplace.visualstudio.com/_apis/public/gallery/publishers/${author}/vsextensions/${name}/${version}/vspackage`\r\n return { id: ext, name: displayName, version, url }\r\n // await download(url, dir, `${ext}-${version}.vsix`)\r\n}\r\n\r\nexport interface VscodeExt {\r\n id: string\r\n name: string\r\n version: string\r\n url: string\r\n}\r\n\r\nexport async function downloadVscodeExts(dir: string) {\r\n await mkdir(dir, { recursive: true })\r\n const { default: inquirer } = await import(\"inquirer\")\r\n consola.start(\"正在获取 VS Code 扩展列表\")\r\n const extList = await execAsync(\"code --list-extensions\")\r\n const exts = await Promise.all(\r\n extList\r\n .split(/[\\n\\r]/)\r\n .filter(Boolean)\r\n .map(ext => getVscodeExtInfo(ext))\r\n )\r\n const setting = await getSetting()\r\n const vscodeExts = setting?.vscodeExts as string[] | undefined\r\n const exts2 = await inquirer.prompt({\r\n type: \"checkbox\",\r\n name: \"exts\",\r\n message: \"选择需要下载的扩展\",\r\n choices: exts.map(ext => ({ name: ext.name, value: ext.id })),\r\n default: vscodeExts?.filter(ext => exts.some(item => item.id === ext)) || exts.map(ext => ext.id)\r\n })\r\n setting.vscodeExts = exts2.exts\r\n await setSetting(setting)\r\n for (const ext of exts) {\r\n if (!exts2.exts.includes(ext.id)) continue\r\n consola.start(`正在下载 ${ext.name}`)\r\n await retry(() => download(ext.url, dir, `${ext.id}-${ext.version}.vsix`), 4)\r\n }\r\n}\r\n\r\nexport async function writeSyncVscodeScript(dir: string) {\r\n const script = `// @ts-check\r\nimport { spawn } from \"child_process\"\r\nimport { readdir, copyFile, rm } from \"fs/promises\"\r\nimport { homedir } from \"os\"\r\nimport { join } from \"path\"\r\n\r\n/** \r\n * @param {string} command\r\n */\r\nfunction spawnAsync(command) {\r\n return new Promise((resolve, reject) => {\r\n const child = spawn(command, { shell: true, stdio: \"inherit\" })\r\n child.on(\"exit\", code => {\r\n if (code !== 0) return reject(new Error(\\`Command failed with code \\${code}\\`))\r\n resolve(0)\r\n })\r\n })\r\n}\r\n\r\nasync function main() {\r\n const dir = await readdir(\"./extensions\")\r\n for (const ext of dir) {\r\n await spawnAsync(\\`code --install-extension \"./extensions/\\${ext}\"\\`)\r\n }\r\n const userDir = homedir()\r\n const setting = join(userDir, \"AppData/Roaming/Code/User/settings.json\")\r\n await rm(setting, { force: true })\r\n await copyFile(\"./settings.json\", setting)\r\n const snippetTarget = join(userDir, \"AppData/Roaming/Code/User/snippets\")\r\n const dir2 = await readdir(\"./snippets\")\r\n for (const file of dir2) {\r\n await rm(join(snippetTarget, file), { force: true })\r\n await copyFile(join(\"./snippets\", file), join(snippetTarget, file))\r\n }\r\n}\r\n\r\nmain()`\r\n await writeFile(join(dir, \"syncVscode.mjs\"), script, \"utf-8\")\r\n}\r\n\r\nexport async function getProcessInfoFromPid(pid: number) {\r\n try {\r\n const stdout = await execAsync(`tasklist | findstr ${pid}`)\r\n const reg = new RegExp(`( +)${pid}( (Services|Console) +)`)\r\n return stdout\r\n .split(/[\\n\\r]/)\r\n .find(line => reg.test(line))\r\n ?.replace(reg, \"$1$2\")\r\n ?.replace(/ +/g, \" \")\r\n } catch (error) {\r\n return undefined\r\n }\r\n}\r\n\r\nexport type PidInfo = {\r\n pid: number\r\n info: string\r\n}\r\n\r\nexport async function getPidInfoFromPort(port: number) {\r\n try {\r\n const stdout = await execAsync(`netstat -ano | findstr :${port}`)\r\n const reg = new RegExp(` (\\\\[::\\\\]|(\\\\d{1,3}\\\\.){3}\\\\d{1,3}):${port} `)\r\n const result = Array.from(\r\n new Set(\r\n stdout\r\n .split(/[\\n\\r]/)\r\n .filter(line => reg.test(line))\r\n .map(line => ({ pid: parseInt(line.match(reg)![1]), info: line }))\r\n )\r\n )\r\n for (let i = 0; ; ) {\r\n if (result.some(({ info }) => info[i] === undefined)) break\r\n if (result.some(({ info }) => info[i] !== \" \" || info[i + 1] !== \" \")) {\r\n i++\r\n continue\r\n }\r\n result.forEach(item => (item.info = `${item.info.slice(0, i)}${item.info.slice(i + 1)}`))\r\n }\r\n return result\r\n } catch (error) {\r\n return []\r\n }\r\n}\r\n\r\nexport async function getSetting() {\r\n const userDir = homedir()\r\n const settingPath = join(userDir, \".zixulu.json\")\r\n if (existsSync(settingPath)) {\r\n const setting = JSON.parse(await readFile(settingPath, \"utf-8\"))\r\n return setting\r\n }\r\n return {}\r\n}\r\n\r\nexport async function setSetting(setting: Record<string, any>) {\r\n const userDir = homedir()\r\n const settingPath = join(userDir, \".zixulu.json\")\r\n await writeFile(settingPath, JSON.stringify(setting, undefined, 4), \"utf-8\")\r\n}\r\n"],
5
5
  "mappings": "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",
6
6
  "names": ["fetch", "YAML", "consola"]
7
7
  }
@@ -1,6 +1,7 @@
1
1
  export type ReplaceAssetsOptions = {
2
- base: string;
3
- dir: string;
2
+ base?: string;
3
+ input: string;
4
+ output?: string;
4
5
  proxy?: boolean;
5
6
  };
6
7
  export declare function replaceAssets(options: ReplaceAssetsOptions): Promise<void>;