vite-plugin-millennium-skin 1.0.9 → 1.1.1
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/git.d.ts +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +281 -181
- package/dist/versionConfig.d.ts +23 -2
- package/package.json +7 -2
- package/src/ts/git.ts +58 -0
- package/src/ts/index.ts +96 -49
- package/src/ts/versionConfig.ts +55 -2
- package/src/types/global.d.ts +3 -0
- package/vite.config.ts +2 -0
package/dist/git.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function gitCommit(needCommitMessage?: boolean): Promise<void>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { Plugin } from 'vite';
|
|
1
|
+
import { Plugin, LogOptions } from 'vite';
|
|
2
|
+
import { versionConfig } from './versionConfig';
|
|
2
3
|
export * from './aliasModules';
|
|
3
4
|
export * from './defaultMatch';
|
|
4
5
|
export * from './versionConfig';
|
|
6
|
+
export * from './versionConfig';
|
|
5
7
|
export type SkinConfig = {
|
|
6
8
|
name: string;
|
|
7
9
|
description: string;
|
|
@@ -65,9 +67,8 @@ export type versionObject = {
|
|
|
65
67
|
alpha?: number;
|
|
66
68
|
snapshot?: number;
|
|
67
69
|
};
|
|
68
|
-
export declare enum versionConfig {
|
|
69
|
-
auto = 0,
|
|
70
|
-
package = 1
|
|
71
|
-
}
|
|
72
70
|
export default function millenniumSkin(): Plugin;
|
|
73
71
|
export declare function defineConfig(SkinConfig: SkinConfig): SkinConfig;
|
|
72
|
+
export declare function warn(msg: string, options?: LogOptions): void;
|
|
73
|
+
export declare function info(msg: string, options?: LogOptions): void;
|
|
74
|
+
export declare function error(msg: string, options?: LogOptions): void;
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { parse as
|
|
3
|
-
import
|
|
4
|
-
import { generate as
|
|
5
|
-
import
|
|
6
|
-
import { existsSync as
|
|
7
|
-
import
|
|
8
|
-
import { loadConfigFromFile as
|
|
9
|
-
import
|
|
10
|
-
|
|
1
|
+
import l from "@babel/types";
|
|
2
|
+
import { parse as O } from "@babel/parser";
|
|
3
|
+
import B from "@babel/traverse";
|
|
4
|
+
import { generate as z } from "@babel/generator";
|
|
5
|
+
import w, { join as f } from "path/posix";
|
|
6
|
+
import { existsSync as D } from "fs";
|
|
7
|
+
import E from "fs/promises";
|
|
8
|
+
import { loadConfigFromFile as Z } from "vite";
|
|
9
|
+
import y from "chalk";
|
|
10
|
+
import G from "inquirer";
|
|
11
|
+
import L from "simple-git";
|
|
12
|
+
const U = [
|
|
11
13
|
{
|
|
12
14
|
Match: "https://.*.steampowered.com",
|
|
13
15
|
TargetCss: "webkit.css",
|
|
@@ -88,44 +90,124 @@ const N = [
|
|
|
88
90
|
TargetCss: "libraryroot.custom.css",
|
|
89
91
|
TargetJs: "libraryroot.custom.js"
|
|
90
92
|
}
|
|
91
|
-
],
|
|
93
|
+
], J = 0, V = 1, H = [
|
|
92
94
|
{
|
|
93
|
-
method:
|
|
95
|
+
method: J,
|
|
94
96
|
module: /^react$/g,
|
|
95
97
|
links: ["window", "opener", "SP_REACT"]
|
|
96
98
|
},
|
|
97
99
|
{
|
|
98
|
-
method:
|
|
100
|
+
method: J,
|
|
99
101
|
module: /^react-dom$/g,
|
|
100
102
|
links: ["window", "opener", "SP_REACTDOM"]
|
|
101
103
|
}
|
|
102
|
-
],
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
], W = {
|
|
105
|
+
type: "auto",
|
|
106
|
+
git: {
|
|
107
|
+
major: { autoCommit: !1 },
|
|
108
|
+
minor: { autoCommit: !1 },
|
|
109
|
+
patch: { autoCommit: !1 },
|
|
110
|
+
rc: { autoCommit: !0, needCommitMessage: !0 },
|
|
111
|
+
gamma: { autoCommit: !0, needCommitMessage: !0 },
|
|
112
|
+
beta: { autoCommit: !0, needCommitMessage: !0 },
|
|
113
|
+
preview: { autoCommit: !0, needCommitMessage: !1 },
|
|
114
|
+
alpha: { autoCommit: !0, needCommitMessage: !1 },
|
|
115
|
+
snapshot: { autoCommit: !0, needCommitMessage: !1 }
|
|
116
|
+
}
|
|
117
|
+
}, ge = {
|
|
118
|
+
type: "auto",
|
|
119
|
+
git: {
|
|
120
|
+
major: { autoCommit: !1 },
|
|
121
|
+
minor: { autoCommit: !1 },
|
|
122
|
+
patch: { autoCommit: !1 },
|
|
123
|
+
rc: { autoCommit: !1 },
|
|
124
|
+
gamma: { autoCommit: !1 },
|
|
125
|
+
beta: { autoCommit: !1 },
|
|
126
|
+
preview: { autoCommit: !1 },
|
|
127
|
+
alpha: { autoCommit: !1 },
|
|
128
|
+
snapshot: { autoCommit: !1 }
|
|
129
|
+
}
|
|
130
|
+
}, X = W, $ = L();
|
|
131
|
+
async function q(s = !1) {
|
|
132
|
+
if (s) {
|
|
133
|
+
const o = await G.prompt([
|
|
134
|
+
{
|
|
135
|
+
type: "select",
|
|
136
|
+
name: "type",
|
|
137
|
+
message: "选择提交类型:",
|
|
138
|
+
choices: [
|
|
139
|
+
"feat",
|
|
140
|
+
"fix",
|
|
141
|
+
"docs",
|
|
142
|
+
"style",
|
|
143
|
+
"refactor",
|
|
144
|
+
"test",
|
|
145
|
+
"chore"
|
|
146
|
+
],
|
|
147
|
+
default: "chore"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: "input",
|
|
151
|
+
name: "message",
|
|
152
|
+
message: "输入提交信息:"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: "confirm",
|
|
156
|
+
name: "confirm",
|
|
157
|
+
message: "确认提交?",
|
|
158
|
+
default: !0
|
|
159
|
+
}
|
|
160
|
+
]);
|
|
161
|
+
if (!o.confirm) {
|
|
162
|
+
k("❌ 已取消提交");
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
await $.add("."), await $.commit(`${o.type}: ${o.message}`), k("✓ git提交成功");
|
|
167
|
+
} catch (t) {
|
|
168
|
+
F(`❌ git提交失败: ${t.message}`);
|
|
169
|
+
}
|
|
170
|
+
} else
|
|
171
|
+
try {
|
|
172
|
+
await $.add("."), await $.commit("chore: auto commit by MillenniumSkin"), k("✓ git提交成功");
|
|
173
|
+
} catch (o) {
|
|
174
|
+
F(`❌ git提交失败: ${o.message}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const de = /^SharedJSContext$/, he = /^Steam$/, Ce = /^View Root Menu$/, be = /^Steam Root Menu$/, Me = /^Friends Root Menu$/, we = /^Games Root Menu$/, ye = /^Help Root Menu$/, Te = /^Notifications Menu$/, ve = /^Account Menu$/, K = B.default, Q = /(?<major>0|[1-9]\d*)\.(?<minor>0|[1-9]\d*)\.(?<patch>0|[1-9]\d*)(?:-(?<preRelease>(?:[a-zA-Z1-9][a-zA-Z\d]*|0\d*[a-zA-Z][a-zA-Z\d]*|0)(?:\.(?:[a-zA-Z1-9][a-zA-Z\d]*|0\d*[a-zA-Z][a-zA-Z\d]*|0))*))?(?:\+(?<metadata>(?:[a-zA-Z\d-]*)(?:\.(?:[a-zA-Z\d-]*))*))?/, Y = /(?:\.)?(?<tag>[a-zA-Z]+)\.(?<number>(?:[1-9]\d*|0\d*|0))/g;
|
|
178
|
+
let C;
|
|
179
|
+
function $e() {
|
|
107
180
|
const s = [], o = [];
|
|
108
|
-
let t, e, n;
|
|
181
|
+
let t, e, a, n;
|
|
182
|
+
const b = "virtual:millennium-skin", A = "\0" + b;
|
|
109
183
|
return {
|
|
110
184
|
name: "vite-plugin-millennium-skin",
|
|
111
185
|
enforce: "pre",
|
|
112
|
-
|
|
113
|
-
if (
|
|
186
|
+
resolveId(c) {
|
|
187
|
+
if (c === b)
|
|
188
|
+
return A;
|
|
189
|
+
},
|
|
190
|
+
load(c) {
|
|
191
|
+
if (c === A)
|
|
192
|
+
return `export const version = ${n ? JSON.stringify(n) : "undefined"};`;
|
|
193
|
+
},
|
|
194
|
+
async config(c) {
|
|
195
|
+
if (t = (await Z(
|
|
114
196
|
{ command: "build", mode: "profuction" },
|
|
115
197
|
"skin.config.ts",
|
|
116
|
-
|
|
198
|
+
c.root
|
|
117
199
|
))?.config, t.Patches === void 0) {
|
|
118
200
|
if (!t.UseDefaultPatches)
|
|
119
201
|
throw new Error("haven't any patch in skin.config.ts");
|
|
120
|
-
t.Patches =
|
|
202
|
+
t.Patches = U;
|
|
121
203
|
}
|
|
122
|
-
return t.Patches.forEach((
|
|
123
|
-
|
|
124
|
-
|
|
204
|
+
return t.Patches.forEach((i) => {
|
|
205
|
+
i.TargetJs && s.push(f(t.srcJs, i.TargetJs)), i.TargetCss && o.push(
|
|
206
|
+
I(f(t.srcCss, i.TargetCss))
|
|
125
207
|
);
|
|
126
208
|
}), t.RootColors !== void 0 && o.push(
|
|
127
|
-
|
|
128
|
-
|
|
209
|
+
I(
|
|
210
|
+
f(t.srcCss, t.RootColors)
|
|
129
211
|
)
|
|
130
212
|
), {
|
|
131
213
|
build: {
|
|
@@ -133,11 +215,11 @@ function de() {
|
|
|
133
215
|
input: [...s, ...o],
|
|
134
216
|
output: {
|
|
135
217
|
entryFileNames: "assets/js/[name].js",
|
|
136
|
-
assetFileNames: (
|
|
137
|
-
const
|
|
138
|
-
return r.ext === ".css" ? `assets/css/${
|
|
218
|
+
assetFileNames: (i) => {
|
|
219
|
+
const m = i.names[0], r = w.parse(m);
|
|
220
|
+
return r.ext === ".css" ? `assets/css/${m}` : /\.(png|jpg|jpeg|gif|svg|webp|bmp|heic)/i.test(
|
|
139
221
|
r.ext
|
|
140
|
-
) ? `assets/images/${
|
|
222
|
+
) ? `assets/images/${m}` : `assets/css/${m}`;
|
|
141
223
|
}
|
|
142
224
|
}
|
|
143
225
|
},
|
|
@@ -146,28 +228,52 @@ function de() {
|
|
|
146
228
|
}
|
|
147
229
|
};
|
|
148
230
|
},
|
|
149
|
-
configResolved(
|
|
150
|
-
|
|
231
|
+
async configResolved(c) {
|
|
232
|
+
a = c, C = c.logger;
|
|
233
|
+
const p = a.root, i = f(p, "package.json");
|
|
234
|
+
t.version === void 0 && (t.version = X);
|
|
235
|
+
try {
|
|
236
|
+
const m = JSON.parse(
|
|
237
|
+
await E.readFile(i, {
|
|
238
|
+
flag: "r",
|
|
239
|
+
encoding: "utf-8"
|
|
240
|
+
})
|
|
241
|
+
);
|
|
242
|
+
if (t.version.type === "auto") {
|
|
243
|
+
if (n = await _(
|
|
244
|
+
m.version,
|
|
245
|
+
process.env.RELEASE
|
|
246
|
+
), n) {
|
|
247
|
+
const r = n.newString;
|
|
248
|
+
m.version = r, await E.writeFile(
|
|
249
|
+
i,
|
|
250
|
+
JSON.stringify(m, null, 4)
|
|
251
|
+
), k(`${n.nativeString} -> ${r}`);
|
|
252
|
+
}
|
|
253
|
+
} else t.version.type === "package" && (n = await _(m.version));
|
|
254
|
+
} catch (m) {
|
|
255
|
+
R(`can't use package.json: ${m}`), n = await _("0.0.0");
|
|
256
|
+
}
|
|
151
257
|
},
|
|
152
|
-
generateBundle(
|
|
258
|
+
generateBundle(c, p) {
|
|
153
259
|
if (t.Patches === void 0)
|
|
154
260
|
throw new Error("haven't any patch in building");
|
|
155
|
-
const
|
|
261
|
+
const i = a.root, m = structuredClone(
|
|
156
262
|
t.Patches
|
|
157
263
|
).map((r) => {
|
|
158
264
|
if (r.Match instanceof RegExp && (r.Match = r.Match.source), r.TargetJs) {
|
|
159
|
-
const g =
|
|
160
|
-
r.TargetJs =
|
|
161
|
-
|
|
265
|
+
const g = w.parse(r.TargetJs);
|
|
266
|
+
r.TargetJs = f(
|
|
267
|
+
i,
|
|
162
268
|
t.srcJs,
|
|
163
269
|
g.dir,
|
|
164
270
|
g.name
|
|
165
271
|
);
|
|
166
272
|
}
|
|
167
273
|
if (r.TargetCss) {
|
|
168
|
-
const g =
|
|
169
|
-
r.TargetCss =
|
|
170
|
-
|
|
274
|
+
const g = w.parse(r.TargetCss);
|
|
275
|
+
r.TargetCss = f(
|
|
276
|
+
i,
|
|
171
277
|
t.srcCss,
|
|
172
278
|
g.dir,
|
|
173
279
|
g.name
|
|
@@ -180,183 +286,169 @@ function de() {
|
|
|
180
286
|
};
|
|
181
287
|
});
|
|
182
288
|
Object.entries(p).forEach(([, r]) => {
|
|
183
|
-
const { type: g } = r,
|
|
289
|
+
const { type: g } = r, M = r.fileName;
|
|
184
290
|
if (g === "chunk") {
|
|
185
291
|
if (!r.facadeModuleId) return;
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
l.dir,
|
|
190
|
-
l.name
|
|
292
|
+
const u = w.parse(r.facadeModuleId), h = f(
|
|
293
|
+
u.dir,
|
|
294
|
+
u.name
|
|
191
295
|
);
|
|
192
|
-
|
|
193
|
-
|
|
296
|
+
m.forEach((d) => {
|
|
297
|
+
h === d.TargetJs && (d.TargetJs = M);
|
|
194
298
|
});
|
|
195
299
|
} else {
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
),
|
|
199
|
-
|
|
200
|
-
|
|
300
|
+
const u = w.parse(
|
|
301
|
+
f(i, r.originalFileNames[0])
|
|
302
|
+
), h = f(
|
|
303
|
+
u.dir,
|
|
304
|
+
u.name
|
|
201
305
|
);
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}), t.RootColors &&
|
|
205
|
-
|
|
306
|
+
m.forEach((d) => {
|
|
307
|
+
h === d.TargetCss && (d.TargetCss = M);
|
|
308
|
+
}), t.RootColors && h === f(
|
|
309
|
+
a.root,
|
|
206
310
|
t.srcCss,
|
|
207
311
|
t.RootColors
|
|
208
|
-
) && (t.RootColors =
|
|
312
|
+
) && (t.RootColors = M);
|
|
209
313
|
return;
|
|
210
314
|
}
|
|
211
315
|
}), e = {
|
|
212
316
|
...t,
|
|
213
|
-
Patches:
|
|
214
|
-
version: ""
|
|
317
|
+
Patches: m,
|
|
318
|
+
version: n?.newString ?? "0.0.0"
|
|
215
319
|
};
|
|
216
320
|
},
|
|
217
321
|
async writeBundle() {
|
|
218
|
-
const
|
|
219
|
-
try {
|
|
220
|
-
const a = JSON.parse(
|
|
221
|
-
await k.readFile(p, {
|
|
222
|
-
flag: "r",
|
|
223
|
-
encoding: "utf-8"
|
|
224
|
-
})
|
|
225
|
-
);
|
|
226
|
-
if (t.version === Z || t.version === void 0) {
|
|
227
|
-
const u = await W(
|
|
228
|
-
a.version,
|
|
229
|
-
process.env.RELEASE
|
|
230
|
-
);
|
|
231
|
-
if (u) {
|
|
232
|
-
const r = _(u.new);
|
|
233
|
-
e.version = r, a.version = r, await k.writeFile(
|
|
234
|
-
p,
|
|
235
|
-
JSON.stringify(a, null, 4)
|
|
236
|
-
), X(
|
|
237
|
-
`${_(u.native)} -> ${r}`
|
|
238
|
-
);
|
|
239
|
-
}
|
|
240
|
-
} else t.version === B && (e.version = a.version);
|
|
241
|
-
} catch (a) {
|
|
242
|
-
j(`can't use package.json: ${a}`);
|
|
243
|
-
}
|
|
322
|
+
const c = a.root;
|
|
244
323
|
try {
|
|
245
|
-
await
|
|
246
|
-
|
|
324
|
+
await E.writeFile(
|
|
325
|
+
f(c, a.build.outDir, "skin.json"),
|
|
247
326
|
JSON.stringify(e, null, 4)
|
|
248
327
|
);
|
|
249
|
-
} catch (
|
|
250
|
-
throw new Error(`can't write skin.json: ${
|
|
328
|
+
} catch (p) {
|
|
329
|
+
throw new Error(`can't write skin.json: ${p}`);
|
|
251
330
|
}
|
|
252
331
|
},
|
|
253
|
-
transform(
|
|
332
|
+
transform(c, p) {
|
|
254
333
|
if (!/.+\.(js|ts|tsx)$/g.test(p)) return;
|
|
255
|
-
const
|
|
334
|
+
const i = O(c, {
|
|
256
335
|
sourceType: "module",
|
|
257
336
|
plugins: ["typescript", "jsx"]
|
|
258
337
|
});
|
|
259
|
-
return
|
|
338
|
+
return K(i, {
|
|
260
339
|
Program(r) {
|
|
261
|
-
const g = r.node.body,
|
|
262
|
-
for (let
|
|
263
|
-
let
|
|
264
|
-
if (!
|
|
265
|
-
const d =
|
|
266
|
-
for (const
|
|
267
|
-
if (!
|
|
268
|
-
const { method:
|
|
269
|
-
for (const
|
|
270
|
-
const
|
|
271
|
-
let
|
|
272
|
-
switch (
|
|
273
|
-
...
|
|
274
|
-
|
|
275
|
-
],
|
|
276
|
-
case
|
|
277
|
-
|
|
340
|
+
const g = r.node.body, M = {};
|
|
341
|
+
for (let u = g.length - 1; u >= 0; u--) {
|
|
342
|
+
let h = g[u];
|
|
343
|
+
if (!l.isImportDeclaration(h)) continue;
|
|
344
|
+
const d = h.source.value, T = [];
|
|
345
|
+
for (const v of H) {
|
|
346
|
+
if (!v.module.test(d)) continue;
|
|
347
|
+
const { method: N } = v;
|
|
348
|
+
for (const j of h.specifiers) {
|
|
349
|
+
const x = j.local.name;
|
|
350
|
+
let S;
|
|
351
|
+
switch (j.type === "ImportDefaultSpecifier" ? S = v.links : S = [
|
|
352
|
+
...v.links,
|
|
353
|
+
j.imported.name
|
|
354
|
+
], N) {
|
|
355
|
+
case V:
|
|
356
|
+
M[x] = v.links;
|
|
278
357
|
break;
|
|
279
|
-
case
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
358
|
+
case J:
|
|
359
|
+
T.push(
|
|
360
|
+
ee(
|
|
361
|
+
x,
|
|
362
|
+
S
|
|
284
363
|
)
|
|
285
364
|
);
|
|
286
365
|
break;
|
|
287
366
|
}
|
|
288
367
|
}
|
|
289
368
|
}
|
|
290
|
-
|
|
369
|
+
T.length && g.splice(u, 1, ...T);
|
|
291
370
|
}
|
|
292
|
-
Object.entries(
|
|
293
|
-
([
|
|
294
|
-
const d = r.scope.getBinding(
|
|
295
|
-
d !== void 0 && (d.referencePaths.forEach((
|
|
296
|
-
|
|
297
|
-
}), d.scope.removeOwnBinding(
|
|
371
|
+
Object.entries(M).forEach(
|
|
372
|
+
([u, h]) => {
|
|
373
|
+
const d = r.scope.getBinding(u);
|
|
374
|
+
d !== void 0 && (d.referencePaths.forEach((T) => {
|
|
375
|
+
te(T, u, h);
|
|
376
|
+
}), d.scope.removeOwnBinding(u));
|
|
298
377
|
}
|
|
299
378
|
);
|
|
300
379
|
}
|
|
301
|
-
}), { code:
|
|
380
|
+
}), { code: z(i).code };
|
|
381
|
+
},
|
|
382
|
+
async closeBundle(c) {
|
|
383
|
+
if (c) {
|
|
384
|
+
console.error("打包失败:", c);
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
if (t.version?.git !== void 0) {
|
|
388
|
+
const p = process.env.RELEASE;
|
|
389
|
+
if (p && t.version.git[p]) {
|
|
390
|
+
const i = t.version.git[p];
|
|
391
|
+
i.autoCommit && await q(i.needCommitMessage);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
302
394
|
}
|
|
303
395
|
};
|
|
304
396
|
}
|
|
305
|
-
function
|
|
397
|
+
function ke(s) {
|
|
306
398
|
return s;
|
|
307
399
|
}
|
|
308
|
-
function
|
|
309
|
-
let t =
|
|
310
|
-
for (let
|
|
311
|
-
t =
|
|
312
|
-
const e =
|
|
313
|
-
|
|
400
|
+
function ee(s, o) {
|
|
401
|
+
let t = l.identifier(o[0]);
|
|
402
|
+
for (let a = 1; a < o.length; a++)
|
|
403
|
+
t = l.memberExpression(t, l.identifier(o[a]));
|
|
404
|
+
const e = l.variableDeclarator(
|
|
405
|
+
l.identifier(s),
|
|
314
406
|
t
|
|
315
407
|
);
|
|
316
|
-
return
|
|
408
|
+
return l.variableDeclaration("const", [e]);
|
|
317
409
|
}
|
|
318
|
-
function
|
|
319
|
-
if (
|
|
410
|
+
function I(s) {
|
|
411
|
+
if (w.parse(s).ext !== "") return s;
|
|
320
412
|
for (const t of ["scss", "sass", "css"]) {
|
|
321
413
|
const e = `${s}.${t}`;
|
|
322
|
-
if (
|
|
414
|
+
if (D(f(process.cwd(), e)))
|
|
323
415
|
return e;
|
|
324
416
|
}
|
|
325
417
|
throw new Error(`can't find css module: ${s}`);
|
|
326
418
|
}
|
|
327
|
-
function
|
|
419
|
+
function te(s, o, t) {
|
|
328
420
|
const e = s.parent;
|
|
329
|
-
if (
|
|
330
|
-
const
|
|
331
|
-
if (
|
|
332
|
-
const
|
|
421
|
+
if (l.isMemberExpression(e) && e.object === s.node) {
|
|
422
|
+
const a = e.property;
|
|
423
|
+
if (l.isIdentifier(a)) {
|
|
424
|
+
const n = P(t);
|
|
333
425
|
if (!s.parentPath) return;
|
|
334
426
|
s.parentPath.replaceWith(
|
|
335
|
-
|
|
427
|
+
l.memberExpression(n, l.identifier(a.name))
|
|
336
428
|
);
|
|
337
429
|
}
|
|
338
430
|
return;
|
|
339
431
|
}
|
|
340
432
|
if (s.isIdentifier()) {
|
|
341
|
-
const
|
|
433
|
+
const a = P(t);
|
|
342
434
|
s.replaceWith(
|
|
343
|
-
|
|
435
|
+
l.memberExpression(a, l.identifier(o))
|
|
344
436
|
);
|
|
345
437
|
}
|
|
346
438
|
}
|
|
347
|
-
function
|
|
439
|
+
function P(s) {
|
|
348
440
|
if (s.length === 0)
|
|
349
441
|
throw new Error("globalObj must not be empty");
|
|
350
|
-
let o =
|
|
442
|
+
let o = l.identifier(s[0]);
|
|
351
443
|
for (let t = 1; t < s.length; t++)
|
|
352
|
-
o =
|
|
444
|
+
o = l.memberExpression(o, l.identifier(s[t]));
|
|
353
445
|
return o;
|
|
354
446
|
}
|
|
355
|
-
async function
|
|
447
|
+
async function _(s, o = null) {
|
|
356
448
|
try {
|
|
357
|
-
const t =
|
|
449
|
+
const t = Q.exec(s);
|
|
358
450
|
if (!t?.groups) {
|
|
359
|
-
|
|
451
|
+
R(`can't understand version: ${s}`);
|
|
360
452
|
return;
|
|
361
453
|
}
|
|
362
454
|
let e = {
|
|
@@ -365,11 +457,11 @@ async function W(s, o = "snapshot") {
|
|
|
365
457
|
patch: parseInt(t.groups.patch)
|
|
366
458
|
};
|
|
367
459
|
t.groups.preRelease && [
|
|
368
|
-
...t.groups.preRelease.matchAll(
|
|
369
|
-
].forEach((
|
|
370
|
-
|
|
460
|
+
...t.groups.preRelease.matchAll(Y)
|
|
461
|
+
].forEach((b) => {
|
|
462
|
+
b.groups && (e[b.groups.tag] = parseInt(b.groups.number));
|
|
371
463
|
});
|
|
372
|
-
const
|
|
464
|
+
const a = { ...e };
|
|
373
465
|
switch (o) {
|
|
374
466
|
case null:
|
|
375
467
|
break;
|
|
@@ -416,44 +508,52 @@ async function W(s, o = "snapshot") {
|
|
|
416
508
|
break;
|
|
417
509
|
}
|
|
418
510
|
return {
|
|
419
|
-
native:
|
|
420
|
-
new: e
|
|
511
|
+
native: a,
|
|
512
|
+
new: e,
|
|
513
|
+
nativeString: s,
|
|
514
|
+
newString: se(e)
|
|
421
515
|
};
|
|
422
516
|
} catch (t) {
|
|
423
|
-
|
|
517
|
+
R(`can't bump version: ${t}`);
|
|
424
518
|
}
|
|
425
519
|
}
|
|
426
|
-
function
|
|
520
|
+
function se(s) {
|
|
427
521
|
let o = `${s.major}.${s.minor}.${s.patch}`;
|
|
428
522
|
const t = ["rc", "gamma", "beta", "preview", "alpha", "snapshot"];
|
|
429
523
|
let e = !1;
|
|
430
|
-
for (const
|
|
431
|
-
const
|
|
432
|
-
|
|
524
|
+
for (const a of t) {
|
|
525
|
+
const n = s[a];
|
|
526
|
+
n != null && (e ? o += `.${a}.${n}` : (o += `-${a}.${n}`, e = !0));
|
|
433
527
|
}
|
|
434
528
|
return o;
|
|
435
529
|
}
|
|
436
|
-
function
|
|
437
|
-
|
|
530
|
+
function R(s, o) {
|
|
531
|
+
C ? C.warn(y.yellow(`[MillenniumSkin] ${s}`), o) : console.warn(y.yellow(`[MillenniumSkin] ${s}`));
|
|
532
|
+
}
|
|
533
|
+
function k(s, o) {
|
|
534
|
+
C ? C.info(y.greenBright(`[MillenniumSkin] ${s}`), o) : console.log(y.greenBright(`[MillenniumSkin] ${s}`));
|
|
438
535
|
}
|
|
439
|
-
function
|
|
440
|
-
|
|
536
|
+
function F(s, o) {
|
|
537
|
+
C ? C.error(y.redBright(`[MillenniumSkin] ${s}`), o) : console.error(y.redBright(`[MillenniumSkin] ${s}`));
|
|
441
538
|
}
|
|
442
539
|
export {
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
540
|
+
he as LibraryRoot,
|
|
541
|
+
ve as MenuAccount,
|
|
542
|
+
Me as MenuFriends,
|
|
543
|
+
we as MenuGames,
|
|
544
|
+
ye as MenuHelp,
|
|
545
|
+
Te as MenuNotifications,
|
|
546
|
+
be as MenuSteam,
|
|
547
|
+
Ce as MenuView,
|
|
548
|
+
de as Root,
|
|
549
|
+
W as __AUTO__,
|
|
550
|
+
X as __DEFAULT__,
|
|
551
|
+
J as __DIRECT__,
|
|
552
|
+
ge as __PACKAGE__,
|
|
553
|
+
V as __RUNTIME__,
|
|
554
|
+
$e as default,
|
|
555
|
+
ke as defineConfig,
|
|
556
|
+
F as error,
|
|
557
|
+
k as info,
|
|
558
|
+
R as warn
|
|
459
559
|
};
|
package/dist/versionConfig.d.ts
CHANGED
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
export declare const __AUTO__
|
|
2
|
-
export declare const __PACKAGE__
|
|
1
|
+
export declare const __AUTO__: versionConfig;
|
|
2
|
+
export declare const __PACKAGE__: versionConfig;
|
|
3
|
+
export declare const __DEFAULT__: versionConfig;
|
|
4
|
+
export type autoCommitLevel = {
|
|
5
|
+
autoCommit: false;
|
|
6
|
+
} | {
|
|
7
|
+
autoCommit: true;
|
|
8
|
+
needCommitMessage: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type versionConfig = {
|
|
11
|
+
type: "auto" | "package";
|
|
12
|
+
git?: {
|
|
13
|
+
major: autoCommitLevel;
|
|
14
|
+
minor: autoCommitLevel;
|
|
15
|
+
patch: autoCommitLevel;
|
|
16
|
+
rc: autoCommitLevel;
|
|
17
|
+
gamma: autoCommitLevel;
|
|
18
|
+
beta: autoCommitLevel;
|
|
19
|
+
preview: autoCommitLevel;
|
|
20
|
+
alpha: autoCommitLevel;
|
|
21
|
+
snapshot: autoCommitLevel;
|
|
22
|
+
};
|
|
23
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plugin-millennium-skin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"directories": {
|
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
10
10
|
"scripts": {
|
|
11
11
|
"lint": "eslint . --ext .ts",
|
|
12
|
-
"build": "tsc --noEmit && vite build"
|
|
12
|
+
"build": "tsc --noEmit && vite build",
|
|
13
|
+
"build:beta": "tsc --noEmit && cross-env RELEASE=beta vite build",
|
|
14
|
+
"build:preview": "tsc --noEmit && cross-env RELEASE=preview vite build",
|
|
15
|
+
"ci": "npm publish"
|
|
13
16
|
},
|
|
14
17
|
"repository": {
|
|
15
18
|
"type": "git",
|
|
@@ -53,6 +56,8 @@
|
|
|
53
56
|
"@typescript-eslint/eslint-plugin": "^8.50.1",
|
|
54
57
|
"babel-plugin-transform-typescript": "^7.0.0-alpha.19",
|
|
55
58
|
"chalk": "^5.6.2",
|
|
59
|
+
"inquirer": "^13.1.0",
|
|
60
|
+
"simple-git": "^3.30.0",
|
|
56
61
|
"vite-plugin-dts": "^4.5.4"
|
|
57
62
|
}
|
|
58
63
|
}
|
package/src/ts/git.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import inquirer from "inquirer";
|
|
2
|
+
import simpleGit from "simple-git";
|
|
3
|
+
import { info, error } from "./index";
|
|
4
|
+
|
|
5
|
+
const git = simpleGit();
|
|
6
|
+
|
|
7
|
+
export async function gitCommit(needCommitMessage: boolean = false) {
|
|
8
|
+
if (needCommitMessage) {
|
|
9
|
+
const answers = await inquirer.prompt([
|
|
10
|
+
{
|
|
11
|
+
type: "select",
|
|
12
|
+
name: "type",
|
|
13
|
+
message: "选择提交类型:",
|
|
14
|
+
choices: [
|
|
15
|
+
"feat",
|
|
16
|
+
"fix",
|
|
17
|
+
"docs",
|
|
18
|
+
"style",
|
|
19
|
+
"refactor",
|
|
20
|
+
"test",
|
|
21
|
+
"chore",
|
|
22
|
+
],
|
|
23
|
+
default: "chore",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
type: "input",
|
|
27
|
+
name: "message",
|
|
28
|
+
message: "输入提交信息:",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: "confirm",
|
|
32
|
+
name: "confirm",
|
|
33
|
+
message: "确认提交?",
|
|
34
|
+
default: true,
|
|
35
|
+
},
|
|
36
|
+
]);
|
|
37
|
+
|
|
38
|
+
if (!answers.confirm) {
|
|
39
|
+
info("❌ 已取消提交");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
await git.add(".");
|
|
44
|
+
await git.commit(`${answers.type}: ${answers.message}`);
|
|
45
|
+
info("✓ git提交成功");
|
|
46
|
+
} catch (e) {
|
|
47
|
+
error(`❌ git提交失败: ${(e as Error).message}`);
|
|
48
|
+
}
|
|
49
|
+
} else {
|
|
50
|
+
try {
|
|
51
|
+
await git.add(".");
|
|
52
|
+
await git.commit("chore: auto commit by MillenniumSkin");
|
|
53
|
+
info("✓ git提交成功");
|
|
54
|
+
} catch (e) {
|
|
55
|
+
error(`❌ git提交失败: ${(e as Error).message}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
package/src/ts/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Plugin, ResolvedConfig, Logger, LogOptions } from "vite";
|
|
2
2
|
import type { Statement, MemberExpression, Identifier } from "@babel/types";
|
|
3
|
+
import type { autoCommitLevel, versionConfig } from "./versionConfig";
|
|
3
4
|
import type { NodePath } from "@babel/traverse";
|
|
4
5
|
import t from "@babel/types";
|
|
5
6
|
import { parse } from "@babel/parser";
|
|
@@ -12,11 +13,13 @@ import { loadConfigFromFile } from "vite";
|
|
|
12
13
|
import chalk from "chalk";
|
|
13
14
|
import defaultPatches from "./defaultPatches";
|
|
14
15
|
import aliasModules, { __DIRECT__, __RUNTIME__ } from "./aliasModules";
|
|
15
|
-
import {
|
|
16
|
+
import { __DEFAULT__ } from "./versionConfig";
|
|
17
|
+
import { gitCommit } from "./git";
|
|
16
18
|
|
|
17
19
|
export * from "./aliasModules";
|
|
18
20
|
export * from "./defaultMatch";
|
|
19
21
|
export * from "./versionConfig";
|
|
22
|
+
export * from "./versionConfig";
|
|
20
23
|
|
|
21
24
|
export type SkinConfig = {
|
|
22
25
|
name: string;
|
|
@@ -100,11 +103,6 @@ export type versionObject = {
|
|
|
100
103
|
snapshot?: number;
|
|
101
104
|
};
|
|
102
105
|
|
|
103
|
-
export enum versionConfig {
|
|
104
|
-
auto,
|
|
105
|
-
package,
|
|
106
|
-
}
|
|
107
|
-
|
|
108
106
|
const traver = (traverse as any).default as typeof traverse;
|
|
109
107
|
const SEMANTIC_VERSIONING_REGEXP =
|
|
110
108
|
/(?<major>0|[1-9]\d*)\.(?<minor>0|[1-9]\d*)\.(?<patch>0|[1-9]\d*)(?:-(?<preRelease>(?:[a-zA-Z1-9][a-zA-Z\d]*|0\d*[a-zA-Z][a-zA-Z\d]*|0)(?:\.(?:[a-zA-Z1-9][a-zA-Z\d]*|0\d*[a-zA-Z][a-zA-Z\d]*|0))*))?(?:\+(?<metadata>(?:[a-zA-Z\d-]*)(?:\.(?:[a-zA-Z\d-]*))*))?/;
|
|
@@ -118,10 +116,25 @@ export default function millenniumSkin(): Plugin {
|
|
|
118
116
|
let skinConfig: SkinConfig;
|
|
119
117
|
let skinConfigResult: SkinConfigResult;
|
|
120
118
|
let viteConfig: ResolvedConfig;
|
|
119
|
+
let versions: bumpResult | undefined;
|
|
120
|
+
const virtualModuleId = "virtual:millennium-skin";
|
|
121
|
+
const resolvedVirtualModuleId = "\0" + virtualModuleId;
|
|
121
122
|
return {
|
|
122
123
|
name: "vite-plugin-millennium-skin",
|
|
123
124
|
enforce: "pre",
|
|
124
125
|
|
|
126
|
+
resolveId(source) {
|
|
127
|
+
if (source === virtualModuleId) {
|
|
128
|
+
return resolvedVirtualModuleId;
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
load(id) {
|
|
133
|
+
if (id === resolvedVirtualModuleId) {
|
|
134
|
+
return `export const version = ${versions ? JSON.stringify(versions) : "undefined"};`;
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
|
|
125
138
|
async config(config) {
|
|
126
139
|
const res = await loadConfigFromFile(
|
|
127
140
|
{ command: "build", mode: "profuction" },
|
|
@@ -180,9 +193,44 @@ export default function millenniumSkin(): Plugin {
|
|
|
180
193
|
};
|
|
181
194
|
},
|
|
182
195
|
|
|
183
|
-
configResolved(config) {
|
|
196
|
+
async configResolved(config) {
|
|
184
197
|
viteConfig = config;
|
|
185
198
|
logger = config.logger;
|
|
199
|
+
|
|
200
|
+
const root = viteConfig.root;
|
|
201
|
+
const pkgPath = join(root, "package.json");
|
|
202
|
+
if (skinConfig.version === undefined)
|
|
203
|
+
skinConfig.version = __DEFAULT__;
|
|
204
|
+
// 版本自动管理
|
|
205
|
+
try {
|
|
206
|
+
const pkg = JSON.parse(
|
|
207
|
+
await fsp.readFile(pkgPath, {
|
|
208
|
+
flag: "r",
|
|
209
|
+
encoding: "utf-8",
|
|
210
|
+
}),
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
if (skinConfig.version.type === "auto") {
|
|
214
|
+
versions = await bump_version(
|
|
215
|
+
pkg.version,
|
|
216
|
+
process.env.RELEASE as any,
|
|
217
|
+
);
|
|
218
|
+
if (versions) {
|
|
219
|
+
const newVersion = versions.newString;
|
|
220
|
+
pkg.version = newVersion;
|
|
221
|
+
await fsp.writeFile(
|
|
222
|
+
pkgPath,
|
|
223
|
+
JSON.stringify(pkg, null, 4),
|
|
224
|
+
);
|
|
225
|
+
info(`${versions.nativeString} -> ${newVersion}`);
|
|
226
|
+
}
|
|
227
|
+
} else if (skinConfig.version.type === "package") {
|
|
228
|
+
versions = await bump_version(pkg.version);
|
|
229
|
+
}
|
|
230
|
+
} catch (e) {
|
|
231
|
+
warn(`can't use package.json: ${e}`);
|
|
232
|
+
versions = await bump_version("0.0.0");
|
|
233
|
+
}
|
|
186
234
|
},
|
|
187
235
|
|
|
188
236
|
generateBundle(_, bundles) {
|
|
@@ -225,9 +273,7 @@ export default function millenniumSkin(): Plugin {
|
|
|
225
273
|
const compileLib = bundle.fileName;
|
|
226
274
|
if (type === "chunk") {
|
|
227
275
|
if (!bundle.facadeModuleId) return;
|
|
228
|
-
const compileParsed = path.parse(
|
|
229
|
-
bundle.facadeModuleId as string,
|
|
230
|
-
);
|
|
276
|
+
const compileParsed = path.parse(bundle.facadeModuleId);
|
|
231
277
|
const compilePath = join(
|
|
232
278
|
compileParsed.dir,
|
|
233
279
|
compileParsed.name,
|
|
@@ -265,47 +311,12 @@ export default function millenniumSkin(): Plugin {
|
|
|
265
311
|
skinConfigResult = {
|
|
266
312
|
...skinConfig,
|
|
267
313
|
Patches: patches,
|
|
268
|
-
version: "",
|
|
314
|
+
version: versions?.newString ?? "0.0.0",
|
|
269
315
|
};
|
|
270
316
|
},
|
|
271
317
|
|
|
272
318
|
async writeBundle() {
|
|
273
319
|
const root = viteConfig.root;
|
|
274
|
-
const pkgPath = join(root, "package.json");
|
|
275
|
-
// 版本自动管理
|
|
276
|
-
try {
|
|
277
|
-
const pkg = JSON.parse(
|
|
278
|
-
await fsp.readFile(pkgPath, {
|
|
279
|
-
flag: "r",
|
|
280
|
-
encoding: "utf-8",
|
|
281
|
-
}),
|
|
282
|
-
);
|
|
283
|
-
if (
|
|
284
|
-
skinConfig.version === __AUTO__ ||
|
|
285
|
-
skinConfig.version === undefined
|
|
286
|
-
) {
|
|
287
|
-
const versions = await bump_version(
|
|
288
|
-
pkg.version,
|
|
289
|
-
process.env.RELEASE as any,
|
|
290
|
-
);
|
|
291
|
-
if (versions) {
|
|
292
|
-
const newVersion = versionObjToString(versions.new);
|
|
293
|
-
skinConfigResult.version = newVersion;
|
|
294
|
-
pkg.version = newVersion;
|
|
295
|
-
await fsp.writeFile(
|
|
296
|
-
pkgPath,
|
|
297
|
-
JSON.stringify(pkg, null, 4),
|
|
298
|
-
);
|
|
299
|
-
info(
|
|
300
|
-
`${versionObjToString(versions.native)} -> ${newVersion}`,
|
|
301
|
-
);
|
|
302
|
-
}
|
|
303
|
-
} else if (skinConfig.version === __PACKAGE__) {
|
|
304
|
-
skinConfigResult.version = pkg.version;
|
|
305
|
-
}
|
|
306
|
-
} catch (e) {
|
|
307
|
-
warn(`can't use package.json: ${e}`);
|
|
308
|
-
}
|
|
309
320
|
|
|
310
321
|
// 写入skin.json
|
|
311
322
|
try {
|
|
@@ -395,6 +406,25 @@ export default function millenniumSkin(): Plugin {
|
|
|
395
406
|
const result = generate(ast);
|
|
396
407
|
return { code: result.code };
|
|
397
408
|
},
|
|
409
|
+
|
|
410
|
+
async closeBundle(error?: Error) {
|
|
411
|
+
if (error) {
|
|
412
|
+
console.error("打包失败:", error);
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
if (skinConfig.version?.git !== undefined) {
|
|
416
|
+
const tag = process.env.RELEASE as
|
|
417
|
+
| keyof versionConfig["git"]
|
|
418
|
+
| undefined;
|
|
419
|
+
if (tag && skinConfig.version.git[tag]) {
|
|
420
|
+
const gitConfig = skinConfig.version.git[
|
|
421
|
+
tag
|
|
422
|
+
] as autoCommitLevel;
|
|
423
|
+
if (gitConfig.autoCommit)
|
|
424
|
+
await gitCommit(gitConfig.needCommitMessage);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
},
|
|
398
428
|
};
|
|
399
429
|
}
|
|
400
430
|
|
|
@@ -461,7 +491,16 @@ function createNestedMemberExpression(globalObj: string[]): t.MemberExpression {
|
|
|
461
491
|
return node as t.MemberExpression;
|
|
462
492
|
}
|
|
463
493
|
|
|
464
|
-
|
|
494
|
+
type bumpResult = {
|
|
495
|
+
native: versionObject;
|
|
496
|
+
new: versionObject;
|
|
497
|
+
nativeString: string;
|
|
498
|
+
newString: string;
|
|
499
|
+
};
|
|
500
|
+
async function bump_version(
|
|
501
|
+
nativeVersion: string,
|
|
502
|
+
tag: bump_tag = null,
|
|
503
|
+
): Promise<bumpResult | undefined> {
|
|
465
504
|
try {
|
|
466
505
|
const match = SEMANTIC_VERSIONING_REGEXP.exec(nativeVersion);
|
|
467
506
|
|
|
@@ -548,6 +587,8 @@ async function bump_version(nativeVersion: string, tag: bump_tag = "snapshot") {
|
|
|
548
587
|
return {
|
|
549
588
|
native: nativeVersionObj,
|
|
550
589
|
new: version,
|
|
590
|
+
nativeString: nativeVersion,
|
|
591
|
+
newString: versionObjToString(version),
|
|
551
592
|
};
|
|
552
593
|
} catch (e) {
|
|
553
594
|
warn(`can't bump version: ${e}`);
|
|
@@ -576,13 +617,19 @@ function versionObjToString(version: versionObject) {
|
|
|
576
617
|
return versionString;
|
|
577
618
|
}
|
|
578
619
|
|
|
579
|
-
function warn(msg: string, options?: LogOptions) {
|
|
620
|
+
export function warn(msg: string, options?: LogOptions) {
|
|
580
621
|
if (logger) logger.warn(chalk.yellow(`[MillenniumSkin] ${msg}`), options);
|
|
581
622
|
else console.warn(chalk.yellow(`[MillenniumSkin] ${msg}`));
|
|
582
623
|
}
|
|
583
624
|
|
|
584
|
-
function info(msg: string, options?: LogOptions) {
|
|
625
|
+
export function info(msg: string, options?: LogOptions) {
|
|
585
626
|
if (logger)
|
|
586
627
|
logger.info(chalk.greenBright(`[MillenniumSkin] ${msg}`), options);
|
|
587
628
|
else console.log(chalk.greenBright(`[MillenniumSkin] ${msg}`));
|
|
588
629
|
}
|
|
630
|
+
|
|
631
|
+
export function error(msg: string, options?: LogOptions) {
|
|
632
|
+
if (logger)
|
|
633
|
+
logger.error(chalk.redBright(`[MillenniumSkin] ${msg}`), options);
|
|
634
|
+
else console.error(chalk.redBright(`[MillenniumSkin] ${msg}`));
|
|
635
|
+
}
|
package/src/ts/versionConfig.ts
CHANGED
|
@@ -1,2 +1,55 @@
|
|
|
1
|
-
export const __AUTO__ =
|
|
2
|
-
|
|
1
|
+
export const __AUTO__: versionConfig = {
|
|
2
|
+
type: "auto",
|
|
3
|
+
git: {
|
|
4
|
+
major: { autoCommit: false },
|
|
5
|
+
minor: { autoCommit: false },
|
|
6
|
+
patch: { autoCommit: false },
|
|
7
|
+
rc: { autoCommit: true, needCommitMessage: true },
|
|
8
|
+
gamma: { autoCommit: true, needCommitMessage: true },
|
|
9
|
+
beta: { autoCommit: true, needCommitMessage: true },
|
|
10
|
+
preview: { autoCommit: true, needCommitMessage: false },
|
|
11
|
+
alpha: { autoCommit: true, needCommitMessage: false },
|
|
12
|
+
snapshot: { autoCommit: true, needCommitMessage: false },
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const __PACKAGE__: versionConfig = {
|
|
17
|
+
type: "auto",
|
|
18
|
+
git: {
|
|
19
|
+
major: { autoCommit: false },
|
|
20
|
+
minor: { autoCommit: false },
|
|
21
|
+
patch: { autoCommit: false },
|
|
22
|
+
rc: { autoCommit: false },
|
|
23
|
+
gamma: { autoCommit: false },
|
|
24
|
+
beta: { autoCommit: false },
|
|
25
|
+
preview: { autoCommit: false },
|
|
26
|
+
alpha: { autoCommit: false },
|
|
27
|
+
snapshot: { autoCommit: false },
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const __DEFAULT__: versionConfig = __AUTO__;
|
|
32
|
+
|
|
33
|
+
export type autoCommitLevel =
|
|
34
|
+
| {
|
|
35
|
+
autoCommit: false;
|
|
36
|
+
}
|
|
37
|
+
| {
|
|
38
|
+
autoCommit: true;
|
|
39
|
+
needCommitMessage: boolean;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export type versionConfig = {
|
|
43
|
+
type: "auto" | "package";
|
|
44
|
+
git?: {
|
|
45
|
+
major: autoCommitLevel;
|
|
46
|
+
minor: autoCommitLevel;
|
|
47
|
+
patch: autoCommitLevel;
|
|
48
|
+
rc: autoCommitLevel;
|
|
49
|
+
gamma: autoCommitLevel;
|
|
50
|
+
beta: autoCommitLevel;
|
|
51
|
+
preview: autoCommitLevel;
|
|
52
|
+
alpha: autoCommitLevel;
|
|
53
|
+
snapshot: autoCommitLevel;
|
|
54
|
+
};
|
|
55
|
+
};
|