@deot/dev-updater 2.9.8 → 2.9.10
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.cjs +247 -257
- package/dist/index.js +223 -238
- package/package.json +5 -5
package/dist/index.cjs
CHANGED
|
@@ -1,265 +1,255 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region \0rolldown/runtime.js
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
11
|
+
key = keys[i];
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
|
+
get: ((k) => from[k]).bind(null, key),
|
|
14
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
20
|
+
value: mod,
|
|
21
|
+
enumerable: true
|
|
22
|
+
}) : target, mod));
|
|
23
|
+
//#endregion
|
|
24
|
+
let _deot_dev_shared = require("@deot/dev-shared");
|
|
25
|
+
let node_path = require("node:path");
|
|
26
|
+
node_path = __toESM(node_path);
|
|
27
|
+
let fs_extra = require("fs-extra");
|
|
28
|
+
fs_extra = __toESM(fs_extra);
|
|
29
|
+
let chalk = require("chalk");
|
|
30
|
+
chalk = __toESM(chalk);
|
|
31
|
+
let ora = require("ora");
|
|
32
|
+
ora = __toESM(ora);
|
|
33
|
+
let semver = require("semver");
|
|
34
|
+
semver = __toESM(semver);
|
|
35
|
+
//#region packages/updater/src/fit-version.ts
|
|
36
|
+
var fitVersion = (versions, version, commandOptions) => {
|
|
37
|
+
const vRegex = /([\d]+\.[\d]+\..*)/;
|
|
38
|
+
if (!vRegex.test(version)) return version;
|
|
39
|
+
const { major = false, minor = false, patch = false } = commandOptions || {};
|
|
40
|
+
const originalPrefix = (version.match(/([^\d]*).*/) || ["", ""])[1];
|
|
41
|
+
const prefix = major ? ">=" : minor ? "^" : patch ? "~" : originalPrefix;
|
|
42
|
+
const oldVersion = version.match(vRegex)[1];
|
|
43
|
+
const vailds = versions.slice(versions.indexOf(oldVersion) + 1);
|
|
44
|
+
return `${originalPrefix}${semver.default.maxSatisfying(vailds, prefix + oldVersion) || oldVersion}`;
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region packages/updater/src/update.ts
|
|
48
|
+
var Update = class {
|
|
49
|
+
packageOptionsMap;
|
|
50
|
+
commandOptions;
|
|
51
|
+
constructor(commandOptions) {
|
|
52
|
+
const locals = _deot_dev_shared.Locals.impl();
|
|
53
|
+
const { rootPackageOptions, packageDir, cwd } = locals;
|
|
54
|
+
this.packageOptionsMap = {
|
|
55
|
+
[cwd]: rootPackageOptions,
|
|
56
|
+
...Object.keys(locals.packageOptionsMap).reduce((result, key) => {
|
|
57
|
+
result[node_path.resolve(packageDir, key)] = locals.packageOptionsMap[key];
|
|
58
|
+
return result;
|
|
59
|
+
}, {})
|
|
60
|
+
};
|
|
61
|
+
this.commandOptions = commandOptions;
|
|
62
|
+
}
|
|
63
|
+
async getPackageChanged() {
|
|
64
|
+
const { packageOptionsMap, commandOptions } = this;
|
|
65
|
+
const packageNames = {};
|
|
66
|
+
Object.keys(packageOptionsMap).forEach((key) => {
|
|
67
|
+
const { dependencies = {}, devDependencies = {} } = packageOptionsMap[key];
|
|
68
|
+
const deps = {
|
|
69
|
+
...dependencies,
|
|
70
|
+
...devDependencies
|
|
71
|
+
};
|
|
72
|
+
Object.keys(deps).forEach((packageName) => {
|
|
73
|
+
const version = deps[packageName];
|
|
74
|
+
packageNames[packageName] = packageNames[packageName] || {};
|
|
75
|
+
if (typeof packageNames[packageName][version] !== "string") packageNames[packageName][version] = "";
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
await Promise.all(Object.keys(packageNames).map((packageName) => {
|
|
79
|
+
return new Promise(async (resolve) => {
|
|
80
|
+
try {
|
|
81
|
+
const { stdout: stdout1 } = await _deot_dev_shared.Shell.exec("npm", [
|
|
82
|
+
"view",
|
|
83
|
+
packageName,
|
|
84
|
+
"versions",
|
|
85
|
+
"--json"
|
|
86
|
+
]);
|
|
87
|
+
const { stdout: stdout2 } = await _deot_dev_shared.Shell.exec("npm", [
|
|
88
|
+
"view",
|
|
89
|
+
packageName,
|
|
90
|
+
"version",
|
|
91
|
+
"--json"
|
|
92
|
+
]);
|
|
93
|
+
const versions = JSON.parse(stdout1);
|
|
94
|
+
const lastVersion = JSON.parse(stdout2);
|
|
95
|
+
const lastIndex = versions.indexOf(lastVersion);
|
|
96
|
+
const versions$ = versions.slice(0, lastIndex == -1 ? versions.length : lastIndex + 1);
|
|
97
|
+
Object.keys(packageNames[packageName]).forEach((version) => {
|
|
98
|
+
const newVersion = fitVersion(versions$, version, commandOptions);
|
|
99
|
+
if (newVersion === version) delete packageNames[packageName][version];
|
|
100
|
+
else packageNames[packageName][version] = newVersion;
|
|
101
|
+
});
|
|
102
|
+
if (!Object.keys(packageNames[packageName]).length) delete packageNames[packageName];
|
|
103
|
+
resolve();
|
|
104
|
+
} catch (e) {
|
|
105
|
+
delete packageNames[packageName];
|
|
106
|
+
resolve();
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}));
|
|
110
|
+
return packageNames;
|
|
111
|
+
}
|
|
112
|
+
async updatePackageOptions(changed) {
|
|
113
|
+
const { packageOptionsMap, commandOptions } = this;
|
|
114
|
+
const packageFolderNames = [];
|
|
115
|
+
Object.keys(packageOptionsMap).forEach((packageDir) => {
|
|
116
|
+
const packageOptions = packageOptionsMap[packageDir];
|
|
117
|
+
const { devDependencies = {}, dependencies = {} } = packageOptions;
|
|
118
|
+
let isChanged = false;
|
|
119
|
+
[devDependencies, dependencies].forEach((target) => {
|
|
120
|
+
Object.keys(target).forEach((packageName) => {
|
|
121
|
+
const version = target[packageName];
|
|
122
|
+
if (changed[packageName]?.[version]) {
|
|
123
|
+
isChanged = true;
|
|
124
|
+
target[packageName] = changed[packageName][version];
|
|
125
|
+
}
|
|
21
126
|
});
|
|
127
|
+
});
|
|
128
|
+
if (isChanged) {
|
|
129
|
+
const { cwd } = _deot_dev_shared.Locals.impl();
|
|
130
|
+
if (packageDir !== cwd) packageFolderNames.push(packageDir.split("/").pop());
|
|
131
|
+
if (commandOptions.dryRun) _deot_dev_shared.Logger.log(chalk.default.magenta(`CHANGED: `) + chalk.default.yellow(`Skipping ${node_path.relative(cwd, packageDir)} Update`));
|
|
132
|
+
else {
|
|
133
|
+
fs_extra.default.removeSync(`${packageDir}/node_modules`);
|
|
134
|
+
fs_extra.default.outputFileSync(`${packageDir}/package.json`, JSON.stringify(packageOptions, null, 2));
|
|
135
|
+
}
|
|
22
136
|
}
|
|
137
|
+
});
|
|
138
|
+
return packageFolderNames;
|
|
139
|
+
}
|
|
140
|
+
async updateLock(message) {
|
|
141
|
+
if (this.commandOptions.dryRun) _deot_dev_shared.Logger.log(chalk.default.yellow(`Skipping pnpm-lock.yaml Update`));
|
|
142
|
+
else {
|
|
143
|
+
_deot_dev_shared.Logger.log(chalk.default.magenta(`CHANGED: `) + `pnpm-lock.yaml`);
|
|
144
|
+
const { cwd } = _deot_dev_shared.Locals.impl();
|
|
145
|
+
await fs_extra.default.remove(`${cwd}/node_modules`);
|
|
146
|
+
await _deot_dev_shared.Shell.spawn("npx", [
|
|
147
|
+
"pnpm",
|
|
148
|
+
"install",
|
|
149
|
+
"--no-frozen-lockfile"
|
|
150
|
+
]);
|
|
151
|
+
if (message.includes("puppeteer")) await _deot_dev_shared.Shell.spawn("node", ["node_modules/puppeteer/install.mjs"]);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async commit(message) {
|
|
155
|
+
const { commit, dryRun } = this.commandOptions;
|
|
156
|
+
if (!commit) _deot_dev_shared.Logger.log(chalk.default.magenta(`COMMIT: `) + "Disabled.");
|
|
157
|
+
else if (dryRun) _deot_dev_shared.Logger.log(chalk.default.magenta(`COMMIT: `) + chalk.default.yellow(`Skipping Git Commit`) + `\n${message}`);
|
|
158
|
+
else {
|
|
159
|
+
_deot_dev_shared.Logger.log(chalk.default.magenta(`COMMIT: `) + `package.json, pnpm-lock.yaml`);
|
|
160
|
+
await _deot_dev_shared.Shell.spawn("git", ["add", process.cwd()]);
|
|
161
|
+
await _deot_dev_shared.Shell.spawn("git", [
|
|
162
|
+
"commit",
|
|
163
|
+
"--m",
|
|
164
|
+
`'${message}'`
|
|
165
|
+
]);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
async push() {
|
|
169
|
+
const { push, dryRun } = this.commandOptions;
|
|
170
|
+
if (!push) _deot_dev_shared.Logger.log(chalk.default.magenta(`PUSH: `) + "Disabled.");
|
|
171
|
+
else if (dryRun) _deot_dev_shared.Logger.log(chalk.default.magenta(`PUSH: `) + chalk.default.yellow(`Skipping Git PUSH`));
|
|
172
|
+
else {
|
|
173
|
+
_deot_dev_shared.Logger.log(chalk.default.yellow("Git Fetch..."));
|
|
174
|
+
await _deot_dev_shared.Shell.spawn("git", [
|
|
175
|
+
"fetch",
|
|
176
|
+
"--prune",
|
|
177
|
+
"--prune-tags"
|
|
178
|
+
]);
|
|
179
|
+
await _deot_dev_shared.Shell.spawn("git", ["pull", "--rebase"]);
|
|
180
|
+
await _deot_dev_shared.Shell.spawn("git", ["push"]);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async test() {
|
|
184
|
+
const { test, dryRun } = this.commandOptions;
|
|
185
|
+
if (!test) _deot_dev_shared.Logger.log(chalk.default.magenta(`Test: `) + "Disabled.");
|
|
186
|
+
else if (dryRun) {
|
|
187
|
+
_deot_dev_shared.Logger.log(chalk.default.yellow("Skipping Test"));
|
|
188
|
+
return;
|
|
189
|
+
} else _deot_dev_shared.Logger.log(chalk.default.yellow("Test..."));
|
|
190
|
+
const { rootPackageOptions } = _deot_dev_shared.Locals.impl();
|
|
191
|
+
if (rootPackageOptions?.scripts?.test) await _deot_dev_shared.Shell.exec(`npm run test -- --package-name '*'`);
|
|
192
|
+
}
|
|
193
|
+
async process() {
|
|
194
|
+
const spinner = (0, ora.default)(`Analyze ...`);
|
|
195
|
+
spinner.start();
|
|
196
|
+
const changed = await this.getPackageChanged();
|
|
197
|
+
spinner.stop();
|
|
198
|
+
let message = `deps updated \n\n`;
|
|
199
|
+
const keys = Object.keys(changed);
|
|
200
|
+
if (!keys.length) {
|
|
201
|
+
_deot_dev_shared.Logger.log(chalk.default.red(`No Package Update Found.`));
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
_deot_dev_shared.Logger.log(chalk.default.magenta(`ANALYZE: `));
|
|
205
|
+
keys.forEach((key) => {
|
|
206
|
+
Object.keys(changed[key]).forEach((version) => {
|
|
207
|
+
message += `${key}: ${version} -> ${changed[key][version]}\n`;
|
|
208
|
+
_deot_dev_shared.Logger.log(`${chalk.default.cyan(key)}: ${chalk.default.yellow(version)} -> ${chalk.default.green(changed[key][version])}`);
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
const { all, changeLog } = this.commandOptions;
|
|
212
|
+
let packageFolderNames = await this.updatePackageOptions(changed);
|
|
213
|
+
const hasChanged = packageFolderNames.length;
|
|
214
|
+
packageFolderNames = hasChanged && all ? ["*"] : packageFolderNames;
|
|
215
|
+
if (changeLog) message = `chore${hasChanged ? "(" : ""}${packageFolderNames.join(",")}${hasChanged ? ")" : ""}: ${message}`;
|
|
216
|
+
else {
|
|
217
|
+
const { workspace } = _deot_dev_shared.Locals.impl();
|
|
218
|
+
message = `${workspace ? "chore" : "void"}: ${message}`;
|
|
23
219
|
}
|
|
220
|
+
await this.updateLock(message);
|
|
221
|
+
await this.test();
|
|
222
|
+
await this.commit(message);
|
|
223
|
+
await this.push();
|
|
224
|
+
_deot_dev_shared.Logger.log(chalk.default.magenta(`FINISH: `) + chalk.default.green(`Update Successed.`));
|
|
225
|
+
if (this.commandOptions.dryRun) _deot_dev_shared.Logger.log(chalk.default.green("NO DRY RUN WAY: ") + chalk.default.grey(`npm run update -- --no-dry-run\n`));
|
|
24
226
|
}
|
|
25
|
-
n.default = e;
|
|
26
|
-
return Object.freeze(n);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
|
|
30
|
-
|
|
31
|
-
const fitVersion = (versions, version, commandOptions) => {
|
|
32
|
-
const vRegex = /([\d]+\.[\d]+\..*)/;
|
|
33
|
-
if (!vRegex.test(version)) return version;
|
|
34
|
-
const { major = false, minor = false, patch = false } = commandOptions || {};
|
|
35
|
-
const originalPrefix = (version.match(/([^\d]*).*/) || ["", ""])[1];
|
|
36
|
-
const prefix = major ? ">=" : minor ? "^" : patch ? "~" : originalPrefix;
|
|
37
|
-
const oldVersion = version.match(vRegex)[1];
|
|
38
|
-
const vailds = versions.slice(versions.indexOf(oldVersion) + 1);
|
|
39
|
-
const newVersion = semver.maxSatisfying(vailds, prefix + oldVersion) || oldVersion;
|
|
40
|
-
return `${originalPrefix}${newVersion}`;
|
|
41
227
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
packageOptionsMap;
|
|
45
|
-
commandOptions;
|
|
46
|
-
constructor(commandOptions) {
|
|
47
|
-
const locals = devShared.Locals.impl();
|
|
48
|
-
const { rootPackageOptions, packageDir, cwd } = locals;
|
|
49
|
-
const packageOptionsMap = {
|
|
50
|
-
[cwd]: rootPackageOptions,
|
|
51
|
-
...Object.keys(locals.packageOptionsMap).reduce((result, key) => {
|
|
52
|
-
result[path__namespace.resolve(packageDir, key)] = locals.packageOptionsMap[key];
|
|
53
|
-
return result;
|
|
54
|
-
}, {})
|
|
55
|
-
};
|
|
56
|
-
this.packageOptionsMap = packageOptionsMap;
|
|
57
|
-
this.commandOptions = commandOptions;
|
|
58
|
-
}
|
|
59
|
-
async getPackageChanged() {
|
|
60
|
-
const { packageOptionsMap, commandOptions } = this;
|
|
61
|
-
const packageNames = {};
|
|
62
|
-
Object.keys(packageOptionsMap).forEach((key) => {
|
|
63
|
-
const { dependencies = {}, devDependencies = {} } = packageOptionsMap[key];
|
|
64
|
-
const deps = { ...dependencies, ...devDependencies };
|
|
65
|
-
Object.keys(deps).forEach((packageName) => {
|
|
66
|
-
const version = deps[packageName];
|
|
67
|
-
packageNames[packageName] = packageNames[packageName] || {};
|
|
68
|
-
if (typeof packageNames[packageName][version] !== "string") {
|
|
69
|
-
packageNames[packageName][version] = "";
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
await Promise.all(Object.keys(packageNames).map((packageName) => {
|
|
74
|
-
return new Promise(async (resolve) => {
|
|
75
|
-
try {
|
|
76
|
-
const { stdout: stdout1 } = await devShared.Shell.exec("npm", ["view", packageName, "versions", "--json"]);
|
|
77
|
-
const { stdout: stdout2 } = await devShared.Shell.exec("npm", ["view", packageName, "version", "--json"]);
|
|
78
|
-
const versions = JSON.parse(stdout1);
|
|
79
|
-
const lastVersion = JSON.parse(stdout2);
|
|
80
|
-
const lastIndex = versions.indexOf(lastVersion);
|
|
81
|
-
const versions$ = versions.slice(0, lastIndex == -1 ? versions.length : lastIndex + 1);
|
|
82
|
-
Object.keys(packageNames[packageName]).forEach((version) => {
|
|
83
|
-
const newVersion = fitVersion(versions$, version, commandOptions);
|
|
84
|
-
if (newVersion === version) {
|
|
85
|
-
delete packageNames[packageName][version];
|
|
86
|
-
} else {
|
|
87
|
-
packageNames[packageName][version] = newVersion;
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
if (!Object.keys(packageNames[packageName]).length) {
|
|
91
|
-
delete packageNames[packageName];
|
|
92
|
-
}
|
|
93
|
-
resolve();
|
|
94
|
-
} catch (e) {
|
|
95
|
-
delete packageNames[packageName];
|
|
96
|
-
resolve();
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
}));
|
|
100
|
-
return packageNames;
|
|
101
|
-
}
|
|
102
|
-
async updatePackageOptions(changed) {
|
|
103
|
-
const { packageOptionsMap, commandOptions } = this;
|
|
104
|
-
const packageFolderNames = [];
|
|
105
|
-
Object.keys(packageOptionsMap).forEach((packageDir) => {
|
|
106
|
-
const packageOptions = packageOptionsMap[packageDir];
|
|
107
|
-
const { devDependencies = {}, dependencies = {} } = packageOptions;
|
|
108
|
-
let isChanged = false;
|
|
109
|
-
[devDependencies, dependencies].forEach((target) => {
|
|
110
|
-
Object.keys(target).forEach((packageName) => {
|
|
111
|
-
const version = target[packageName];
|
|
112
|
-
if (changed[packageName]?.[version]) {
|
|
113
|
-
isChanged = true;
|
|
114
|
-
target[packageName] = changed[packageName][version];
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
if (isChanged) {
|
|
119
|
-
const locals = devShared.Locals.impl();
|
|
120
|
-
const { cwd } = locals;
|
|
121
|
-
if (packageDir !== cwd) {
|
|
122
|
-
packageFolderNames.push(packageDir.split("/").pop());
|
|
123
|
-
}
|
|
124
|
-
if (commandOptions.dryRun) {
|
|
125
|
-
devShared.Logger.log(chalk.magenta(`CHANGED: `) + chalk.yellow(`Skipping ${path__namespace.relative(cwd, packageDir)} Update`));
|
|
126
|
-
} else {
|
|
127
|
-
fs.removeSync(`${packageDir}/node_modules`);
|
|
128
|
-
fs.outputFileSync(`${packageDir}/package.json`, JSON.stringify(packageOptions, null, 2));
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
return packageFolderNames;
|
|
133
|
-
}
|
|
134
|
-
async updateLock(message) {
|
|
135
|
-
if (this.commandOptions.dryRun) {
|
|
136
|
-
devShared.Logger.log(chalk.yellow(`Skipping pnpm-lock.yaml Update`));
|
|
137
|
-
} else {
|
|
138
|
-
devShared.Logger.log(chalk.magenta(`CHANGED: `) + `pnpm-lock.yaml`);
|
|
139
|
-
const locals = devShared.Locals.impl();
|
|
140
|
-
const { cwd } = locals;
|
|
141
|
-
await fs.remove(`${cwd}/node_modules`);
|
|
142
|
-
await devShared.Shell.spawn("npx", ["pnpm", "install", "--no-frozen-lockfile"]);
|
|
143
|
-
if (message.includes("puppeteer")) {
|
|
144
|
-
await devShared.Shell.spawn("node", ["node_modules/puppeteer/install.mjs"]);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
async commit(message) {
|
|
149
|
-
const { commit, dryRun } = this.commandOptions;
|
|
150
|
-
if (!commit) {
|
|
151
|
-
devShared.Logger.log(chalk.magenta(`COMMIT: `) + "Disabled.");
|
|
152
|
-
} else if (dryRun) {
|
|
153
|
-
devShared.Logger.log(chalk.magenta(`COMMIT: `) + chalk.yellow(`Skipping Git Commit`) + `
|
|
154
|
-
${message}`);
|
|
155
|
-
} else {
|
|
156
|
-
devShared.Logger.log(chalk.magenta(`COMMIT: `) + `package.json, pnpm-lock.yaml`);
|
|
157
|
-
await devShared.Shell.spawn("git", ["add", process.cwd()]);
|
|
158
|
-
await devShared.Shell.spawn("git", ["commit", "--m", `'${message}'`]);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
async push() {
|
|
162
|
-
const { push, dryRun } = this.commandOptions;
|
|
163
|
-
if (!push) {
|
|
164
|
-
devShared.Logger.log(chalk.magenta(`PUSH: `) + "Disabled.");
|
|
165
|
-
} else if (dryRun) {
|
|
166
|
-
devShared.Logger.log(chalk.magenta(`PUSH: `) + chalk.yellow(`Skipping Git PUSH`));
|
|
167
|
-
} else {
|
|
168
|
-
devShared.Logger.log(chalk.yellow("Git Fetch..."));
|
|
169
|
-
await devShared.Shell.spawn("git", ["fetch", "--prune", "--prune-tags"]);
|
|
170
|
-
await devShared.Shell.spawn("git", ["pull", "--rebase"]);
|
|
171
|
-
await devShared.Shell.spawn("git", ["push"]);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
async test() {
|
|
175
|
-
const { test, dryRun } = this.commandOptions;
|
|
176
|
-
if (!test) {
|
|
177
|
-
devShared.Logger.log(chalk.magenta(`Test: `) + "Disabled.");
|
|
178
|
-
} else if (dryRun) {
|
|
179
|
-
devShared.Logger.log(chalk.yellow("Skipping Test"));
|
|
180
|
-
return;
|
|
181
|
-
} else {
|
|
182
|
-
devShared.Logger.log(chalk.yellow("Test..."));
|
|
183
|
-
}
|
|
184
|
-
const { rootPackageOptions } = devShared.Locals.impl();
|
|
185
|
-
if (rootPackageOptions?.scripts?.test) {
|
|
186
|
-
await devShared.Shell.exec(`npm run test -- --package-name '*'`);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
async process() {
|
|
190
|
-
const spinner = ora(`Analyze ...`);
|
|
191
|
-
spinner.start();
|
|
192
|
-
const changed = await this.getPackageChanged();
|
|
193
|
-
spinner.stop();
|
|
194
|
-
let message = `deps updated
|
|
195
|
-
|
|
196
|
-
`;
|
|
197
|
-
const keys = Object.keys(changed);
|
|
198
|
-
if (!keys.length) {
|
|
199
|
-
devShared.Logger.log(chalk.red(`No Package Update Found.`));
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
devShared.Logger.log(chalk.magenta(`ANALYZE: `));
|
|
203
|
-
keys.forEach((key) => {
|
|
204
|
-
Object.keys(changed[key]).forEach((version) => {
|
|
205
|
-
message += `${key}: ${version} -> ${changed[key][version]}
|
|
206
|
-
`;
|
|
207
|
-
devShared.Logger.log(`${chalk.cyan(key)}: ${chalk.yellow(version)} -> ${chalk.green(changed[key][version])}`);
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
const { all, changeLog } = this.commandOptions;
|
|
211
|
-
let packageFolderNames = await this.updatePackageOptions(changed);
|
|
212
|
-
const hasChanged = packageFolderNames.length;
|
|
213
|
-
packageFolderNames = hasChanged && all ? ["*"] : packageFolderNames;
|
|
214
|
-
if (changeLog) {
|
|
215
|
-
message = `chore${hasChanged ? "(" : ""}${packageFolderNames.join(",")}${hasChanged ? ")" : ""}: ${message}`;
|
|
216
|
-
} else {
|
|
217
|
-
const locals = devShared.Locals.impl();
|
|
218
|
-
const { workspace } = locals;
|
|
219
|
-
message = `${workspace ? "chore" : "void"}: ${message}`;
|
|
220
|
-
}
|
|
221
|
-
await this.updateLock(message);
|
|
222
|
-
await this.test();
|
|
223
|
-
await this.commit(message);
|
|
224
|
-
await this.push();
|
|
225
|
-
devShared.Logger.log(chalk.magenta(`FINISH: `) + chalk.green(`Update Successed.`));
|
|
226
|
-
if (this.commandOptions.dryRun) {
|
|
227
|
-
devShared.Logger.log(
|
|
228
|
-
chalk.green("NO DRY RUN WAY: ") + chalk.grey(`npm run update -- --no-dry-run
|
|
229
|
-
`)
|
|
230
|
-
);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
const update = (commandOptions) => {
|
|
235
|
-
return new Update(commandOptions);
|
|
228
|
+
var update = (commandOptions) => {
|
|
229
|
+
return new Update(commandOptions);
|
|
236
230
|
};
|
|
237
|
-
|
|
231
|
+
//#endregion
|
|
232
|
+
//#region packages/updater/src/index.ts
|
|
238
233
|
process.setMaxListeners(100);
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
}, {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
261
|
-
process.exit(1);
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
|
|
234
|
+
var run = (options) => _deot_dev_shared.Utils.autoCatch(async () => {
|
|
235
|
+
options = {
|
|
236
|
+
dryRun: true,
|
|
237
|
+
commit: true,
|
|
238
|
+
push: true,
|
|
239
|
+
test: true,
|
|
240
|
+
changeLog: true,
|
|
241
|
+
major: false,
|
|
242
|
+
minor: false,
|
|
243
|
+
patch: false,
|
|
244
|
+
all: false,
|
|
245
|
+
...options
|
|
246
|
+
};
|
|
247
|
+
if (process.env.NODE_ENV === "UNIT") return _deot_dev_shared.Shell.spawn(`echo update`);
|
|
248
|
+
await update(options).process();
|
|
249
|
+
}, { onError: (e) => {
|
|
250
|
+
if (typeof e === "number" && e === 1) _deot_dev_shared.Logger.error("更新失败");
|
|
251
|
+
else _deot_dev_shared.Logger.error(e);
|
|
252
|
+
process.exit(1);
|
|
253
|
+
} });
|
|
254
|
+
//#endregion
|
|
265
255
|
exports.run = run;
|
package/dist/index.js
CHANGED
|
@@ -1,242 +1,227 @@
|
|
|
1
|
-
import { Locals,
|
|
2
|
-
import * as path from
|
|
3
|
-
import fs from
|
|
4
|
-
import chalk from
|
|
5
|
-
import ora from
|
|
6
|
-
import semver from
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return `${originalPrefix}${newVersion}`;
|
|
1
|
+
import { Locals, Logger, Shell, Utils } from "@deot/dev-shared";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
import fs from "fs-extra";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import ora from "ora";
|
|
6
|
+
import semver from "semver";
|
|
7
|
+
//#region packages/updater/src/fit-version.ts
|
|
8
|
+
var fitVersion = (versions, version, commandOptions) => {
|
|
9
|
+
const vRegex = /([\d]+\.[\d]+\..*)/;
|
|
10
|
+
if (!vRegex.test(version)) return version;
|
|
11
|
+
const { major = false, minor = false, patch = false } = commandOptions || {};
|
|
12
|
+
const originalPrefix = (version.match(/([^\d]*).*/) || ["", ""])[1];
|
|
13
|
+
const prefix = major ? ">=" : minor ? "^" : patch ? "~" : originalPrefix;
|
|
14
|
+
const oldVersion = version.match(vRegex)[1];
|
|
15
|
+
const vailds = versions.slice(versions.indexOf(oldVersion) + 1);
|
|
16
|
+
return `${originalPrefix}${semver.maxSatisfying(vailds, prefix + oldVersion) || oldVersion}`;
|
|
18
17
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
await this.commit(message);
|
|
201
|
-
await this.push();
|
|
202
|
-
Logger.log(chalk.magenta(`FINISH: `) + chalk.green(`Update Successed.`));
|
|
203
|
-
if (this.commandOptions.dryRun) {
|
|
204
|
-
Logger.log(
|
|
205
|
-
chalk.green("NO DRY RUN WAY: ") + chalk.grey(`npm run update -- --no-dry-run
|
|
206
|
-
`)
|
|
207
|
-
);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
const update = (commandOptions) => {
|
|
212
|
-
return new Update(commandOptions);
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region packages/updater/src/update.ts
|
|
20
|
+
var Update = class {
|
|
21
|
+
packageOptionsMap;
|
|
22
|
+
commandOptions;
|
|
23
|
+
constructor(commandOptions) {
|
|
24
|
+
const locals = Locals.impl();
|
|
25
|
+
const { rootPackageOptions, packageDir, cwd } = locals;
|
|
26
|
+
this.packageOptionsMap = {
|
|
27
|
+
[cwd]: rootPackageOptions,
|
|
28
|
+
...Object.keys(locals.packageOptionsMap).reduce((result, key) => {
|
|
29
|
+
result[path.resolve(packageDir, key)] = locals.packageOptionsMap[key];
|
|
30
|
+
return result;
|
|
31
|
+
}, {})
|
|
32
|
+
};
|
|
33
|
+
this.commandOptions = commandOptions;
|
|
34
|
+
}
|
|
35
|
+
async getPackageChanged() {
|
|
36
|
+
const { packageOptionsMap, commandOptions } = this;
|
|
37
|
+
const packageNames = {};
|
|
38
|
+
Object.keys(packageOptionsMap).forEach((key) => {
|
|
39
|
+
const { dependencies = {}, devDependencies = {} } = packageOptionsMap[key];
|
|
40
|
+
const deps = {
|
|
41
|
+
...dependencies,
|
|
42
|
+
...devDependencies
|
|
43
|
+
};
|
|
44
|
+
Object.keys(deps).forEach((packageName) => {
|
|
45
|
+
const version = deps[packageName];
|
|
46
|
+
packageNames[packageName] = packageNames[packageName] || {};
|
|
47
|
+
if (typeof packageNames[packageName][version] !== "string") packageNames[packageName][version] = "";
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
await Promise.all(Object.keys(packageNames).map((packageName) => {
|
|
51
|
+
return new Promise(async (resolve) => {
|
|
52
|
+
try {
|
|
53
|
+
const { stdout: stdout1 } = await Shell.exec("npm", [
|
|
54
|
+
"view",
|
|
55
|
+
packageName,
|
|
56
|
+
"versions",
|
|
57
|
+
"--json"
|
|
58
|
+
]);
|
|
59
|
+
const { stdout: stdout2 } = await Shell.exec("npm", [
|
|
60
|
+
"view",
|
|
61
|
+
packageName,
|
|
62
|
+
"version",
|
|
63
|
+
"--json"
|
|
64
|
+
]);
|
|
65
|
+
const versions = JSON.parse(stdout1);
|
|
66
|
+
const lastVersion = JSON.parse(stdout2);
|
|
67
|
+
const lastIndex = versions.indexOf(lastVersion);
|
|
68
|
+
const versions$ = versions.slice(0, lastIndex == -1 ? versions.length : lastIndex + 1);
|
|
69
|
+
Object.keys(packageNames[packageName]).forEach((version) => {
|
|
70
|
+
const newVersion = fitVersion(versions$, version, commandOptions);
|
|
71
|
+
if (newVersion === version) delete packageNames[packageName][version];
|
|
72
|
+
else packageNames[packageName][version] = newVersion;
|
|
73
|
+
});
|
|
74
|
+
if (!Object.keys(packageNames[packageName]).length) delete packageNames[packageName];
|
|
75
|
+
resolve();
|
|
76
|
+
} catch (e) {
|
|
77
|
+
delete packageNames[packageName];
|
|
78
|
+
resolve();
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}));
|
|
82
|
+
return packageNames;
|
|
83
|
+
}
|
|
84
|
+
async updatePackageOptions(changed) {
|
|
85
|
+
const { packageOptionsMap, commandOptions } = this;
|
|
86
|
+
const packageFolderNames = [];
|
|
87
|
+
Object.keys(packageOptionsMap).forEach((packageDir) => {
|
|
88
|
+
const packageOptions = packageOptionsMap[packageDir];
|
|
89
|
+
const { devDependencies = {}, dependencies = {} } = packageOptions;
|
|
90
|
+
let isChanged = false;
|
|
91
|
+
[devDependencies, dependencies].forEach((target) => {
|
|
92
|
+
Object.keys(target).forEach((packageName) => {
|
|
93
|
+
const version = target[packageName];
|
|
94
|
+
if (changed[packageName]?.[version]) {
|
|
95
|
+
isChanged = true;
|
|
96
|
+
target[packageName] = changed[packageName][version];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
if (isChanged) {
|
|
101
|
+
const { cwd } = Locals.impl();
|
|
102
|
+
if (packageDir !== cwd) packageFolderNames.push(packageDir.split("/").pop());
|
|
103
|
+
if (commandOptions.dryRun) Logger.log(chalk.magenta(`CHANGED: `) + chalk.yellow(`Skipping ${path.relative(cwd, packageDir)} Update`));
|
|
104
|
+
else {
|
|
105
|
+
fs.removeSync(`${packageDir}/node_modules`);
|
|
106
|
+
fs.outputFileSync(`${packageDir}/package.json`, JSON.stringify(packageOptions, null, 2));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
return packageFolderNames;
|
|
111
|
+
}
|
|
112
|
+
async updateLock(message) {
|
|
113
|
+
if (this.commandOptions.dryRun) Logger.log(chalk.yellow(`Skipping pnpm-lock.yaml Update`));
|
|
114
|
+
else {
|
|
115
|
+
Logger.log(chalk.magenta(`CHANGED: `) + `pnpm-lock.yaml`);
|
|
116
|
+
const { cwd } = Locals.impl();
|
|
117
|
+
await fs.remove(`${cwd}/node_modules`);
|
|
118
|
+
await Shell.spawn("npx", [
|
|
119
|
+
"pnpm",
|
|
120
|
+
"install",
|
|
121
|
+
"--no-frozen-lockfile"
|
|
122
|
+
]);
|
|
123
|
+
if (message.includes("puppeteer")) await Shell.spawn("node", ["node_modules/puppeteer/install.mjs"]);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async commit(message) {
|
|
127
|
+
const { commit, dryRun } = this.commandOptions;
|
|
128
|
+
if (!commit) Logger.log(chalk.magenta(`COMMIT: `) + "Disabled.");
|
|
129
|
+
else if (dryRun) Logger.log(chalk.magenta(`COMMIT: `) + chalk.yellow(`Skipping Git Commit`) + `\n${message}`);
|
|
130
|
+
else {
|
|
131
|
+
Logger.log(chalk.magenta(`COMMIT: `) + `package.json, pnpm-lock.yaml`);
|
|
132
|
+
await Shell.spawn("git", ["add", process.cwd()]);
|
|
133
|
+
await Shell.spawn("git", [
|
|
134
|
+
"commit",
|
|
135
|
+
"--m",
|
|
136
|
+
`'${message}'`
|
|
137
|
+
]);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async push() {
|
|
141
|
+
const { push, dryRun } = this.commandOptions;
|
|
142
|
+
if (!push) Logger.log(chalk.magenta(`PUSH: `) + "Disabled.");
|
|
143
|
+
else if (dryRun) Logger.log(chalk.magenta(`PUSH: `) + chalk.yellow(`Skipping Git PUSH`));
|
|
144
|
+
else {
|
|
145
|
+
Logger.log(chalk.yellow("Git Fetch..."));
|
|
146
|
+
await Shell.spawn("git", [
|
|
147
|
+
"fetch",
|
|
148
|
+
"--prune",
|
|
149
|
+
"--prune-tags"
|
|
150
|
+
]);
|
|
151
|
+
await Shell.spawn("git", ["pull", "--rebase"]);
|
|
152
|
+
await Shell.spawn("git", ["push"]);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async test() {
|
|
156
|
+
const { test, dryRun } = this.commandOptions;
|
|
157
|
+
if (!test) Logger.log(chalk.magenta(`Test: `) + "Disabled.");
|
|
158
|
+
else if (dryRun) {
|
|
159
|
+
Logger.log(chalk.yellow("Skipping Test"));
|
|
160
|
+
return;
|
|
161
|
+
} else Logger.log(chalk.yellow("Test..."));
|
|
162
|
+
const { rootPackageOptions } = Locals.impl();
|
|
163
|
+
if (rootPackageOptions?.scripts?.test) await Shell.exec(`npm run test -- --package-name '*'`);
|
|
164
|
+
}
|
|
165
|
+
async process() {
|
|
166
|
+
const spinner = ora(`Analyze ...`);
|
|
167
|
+
spinner.start();
|
|
168
|
+
const changed = await this.getPackageChanged();
|
|
169
|
+
spinner.stop();
|
|
170
|
+
let message = `deps updated \n\n`;
|
|
171
|
+
const keys = Object.keys(changed);
|
|
172
|
+
if (!keys.length) {
|
|
173
|
+
Logger.log(chalk.red(`No Package Update Found.`));
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
Logger.log(chalk.magenta(`ANALYZE: `));
|
|
177
|
+
keys.forEach((key) => {
|
|
178
|
+
Object.keys(changed[key]).forEach((version) => {
|
|
179
|
+
message += `${key}: ${version} -> ${changed[key][version]}\n`;
|
|
180
|
+
Logger.log(`${chalk.cyan(key)}: ${chalk.yellow(version)} -> ${chalk.green(changed[key][version])}`);
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
const { all, changeLog } = this.commandOptions;
|
|
184
|
+
let packageFolderNames = await this.updatePackageOptions(changed);
|
|
185
|
+
const hasChanged = packageFolderNames.length;
|
|
186
|
+
packageFolderNames = hasChanged && all ? ["*"] : packageFolderNames;
|
|
187
|
+
if (changeLog) message = `chore${hasChanged ? "(" : ""}${packageFolderNames.join(",")}${hasChanged ? ")" : ""}: ${message}`;
|
|
188
|
+
else {
|
|
189
|
+
const { workspace } = Locals.impl();
|
|
190
|
+
message = `${workspace ? "chore" : "void"}: ${message}`;
|
|
191
|
+
}
|
|
192
|
+
await this.updateLock(message);
|
|
193
|
+
await this.test();
|
|
194
|
+
await this.commit(message);
|
|
195
|
+
await this.push();
|
|
196
|
+
Logger.log(chalk.magenta(`FINISH: `) + chalk.green(`Update Successed.`));
|
|
197
|
+
if (this.commandOptions.dryRun) Logger.log(chalk.green("NO DRY RUN WAY: ") + chalk.grey(`npm run update -- --no-dry-run\n`));
|
|
198
|
+
}
|
|
213
199
|
};
|
|
214
|
-
|
|
200
|
+
var update = (commandOptions) => {
|
|
201
|
+
return new Update(commandOptions);
|
|
202
|
+
};
|
|
203
|
+
//#endregion
|
|
204
|
+
//#region packages/updater/src/index.ts
|
|
215
205
|
process.setMaxListeners(100);
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}, {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}
|
|
238
|
-
process.exit(1);
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
|
|
206
|
+
var run = (options) => Utils.autoCatch(async () => {
|
|
207
|
+
options = {
|
|
208
|
+
dryRun: true,
|
|
209
|
+
commit: true,
|
|
210
|
+
push: true,
|
|
211
|
+
test: true,
|
|
212
|
+
changeLog: true,
|
|
213
|
+
major: false,
|
|
214
|
+
minor: false,
|
|
215
|
+
patch: false,
|
|
216
|
+
all: false,
|
|
217
|
+
...options
|
|
218
|
+
};
|
|
219
|
+
if (process.env.NODE_ENV === "UNIT") return Shell.spawn(`echo update`);
|
|
220
|
+
await update(options).process();
|
|
221
|
+
}, { onError: (e) => {
|
|
222
|
+
if (typeof e === "number" && e === 1) Logger.error("更新失败");
|
|
223
|
+
else Logger.error(e);
|
|
224
|
+
process.exit(1);
|
|
225
|
+
} });
|
|
226
|
+
//#endregion
|
|
242
227
|
export { run };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deot/dev-updater",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"access": "public"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@deot/dev-shared": "^2.9.
|
|
22
|
+
"@deot/dev-shared": "^2.9.10",
|
|
23
23
|
"chalk": "^5.6.2",
|
|
24
|
-
"fs-extra": "^11.3.
|
|
25
|
-
"ora": "^9.
|
|
26
|
-
"semver": "^7.7.
|
|
24
|
+
"fs-extra": "^11.3.4",
|
|
25
|
+
"ora": "^9.3.0",
|
|
26
|
+
"semver": "^7.7.4"
|
|
27
27
|
}
|
|
28
28
|
}
|