@widget-js/cli 1.1.5 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.cjs DELETED
@@ -1,689 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __esm = (fn, res) => function __init() {
9
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10
- };
11
- var __export = (target, all) => {
12
- for (var name in all)
13
- __defProp(target, name, { get: all[name], enumerable: true });
14
- };
15
- var __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from === "object" || typeof from === "function") {
17
- for (let key of __getOwnPropNames(from))
18
- if (!__hasOwnProp.call(to, key) && key !== except)
19
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
- }
21
- return to;
22
- };
23
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
24
- // If the importer is in node compatibility mode or this is not an ESM
25
- // file that has been converted to a CommonJS file using a Babel-
26
- // compatible transform (i.e. "__esModule" has not been set), then set
27
- // "default" to the CommonJS "module.exports" for node compatibility.
28
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
29
- mod
30
- ));
31
-
32
- // src/promts/promptChecker.ts
33
- var import_inquirer, promptChecker, promptChecker_default;
34
- var init_promptChecker = __esm({
35
- "src/promts/promptChecker.ts"() {
36
- "use strict";
37
- import_inquirer = __toESM(require("inquirer"), 1);
38
- promptChecker = async (prompt, checker) => {
39
- const answer = await import_inquirer.default.prompt([prompt]);
40
- if (checker) {
41
- if (checker(answer)) {
42
- return answer[prompt.name];
43
- } else {
44
- return promptChecker(prompt, checker);
45
- }
46
- }
47
- return answer[prompt.name];
48
- };
49
- promptChecker_default = promptChecker;
50
- }
51
- });
52
-
53
- // src/utils.ts
54
- function exit(code = 0) {
55
- if (exports.exitProcess) {
56
- import_process.default.exit(code);
57
- } else if (code > 0) {
58
- throw new Error(`Process exited with code ${code}`);
59
- }
60
- }
61
- function getPackagePath() {
62
- return import_path.default.join(import_process.default.cwd(), "package.json");
63
- }
64
- function getPackageJson() {
65
- return JSON.parse(import_fs.default.readFileSync(getPackagePath()).toString());
66
- }
67
- function getPackageVersion() {
68
- return getPackageJson()["version"];
69
- }
70
- var import_path, import_process, import_fs, widgetPackages;
71
- var init_utils = __esm({
72
- "src/utils.ts"() {
73
- "use strict";
74
- import_path = __toESM(require("path"), 1);
75
- import_process = __toESM(require("process"), 1);
76
- import_fs = __toESM(require("fs"), 1);
77
- widgetPackages = {
78
- "@widget-js/core": "",
79
- "@widget-js/vue3": "",
80
- "@widget-js/cli": "",
81
- "@widget-js/vite-plugin-widget": ""
82
- };
83
- }
84
- });
85
-
86
- // src/createWidget.ts
87
- var createWidget_exports = {};
88
- __export(createWidget_exports, {
89
- default: () => createWidget
90
- });
91
- async function createWidget() {
92
- let widgetJson = import_path2.default.join(process.cwd(), "widget.json");
93
- if (!import_fs2.default.existsSync(widgetJson)) {
94
- import_consola.default.error("\u6CA1\u6709\u5728\u6839\u76EE\u5F55\u627E\u5230widget.json\u6587\u4EF6");
95
- exit();
96
- }
97
- let widgetPackage = JSON.parse(import_fs2.default.readFileSync(widgetJson).toString());
98
- let widgetFolder = import_path2.default.join(process.cwd(), "./src/widgets");
99
- let devOptions = widgetPackage["devOptions"] ?? {};
100
- if (devOptions["folder"]) {
101
- widgetFolder = devOptions["folder"];
102
- import_consola.default.info(`\u7EC4\u4EF6\u8DEF\u5F84\uFF1A${widgetFolder}`);
103
- } else {
104
- import_consola.default.info(`\u6CA1\u6709\u914D\u7F6EdevOptions.folder\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u8DEF\u5F84${widgetFolder}`);
105
- }
106
- if (!import_fs2.default.existsSync(widgetFolder)) {
107
- import_fs2.default.mkdirSync(widgetFolder, { recursive: true });
108
- }
109
- const __filename2 = (0, import_url.fileURLToPath)(import_meta.url);
110
- const __dirname2 = import_path2.default.dirname(__filename2);
111
- const getMiddleValue = (arr) => {
112
- if (arr.length === 1) {
113
- return arr[0];
114
- } else if (arr.length === 2) {
115
- return Math.max(...arr);
116
- } else {
117
- const max = Math.max(...arr);
118
- const min = Math.min(...arr);
119
- const sum = arr[0] + arr[1] + arr[2];
120
- return sum - max - min;
121
- }
122
- };
123
- let name = await promptChecker_default({
124
- type: "input",
125
- name: "name",
126
- message: import_chalk.default.blue("\u8BF7\u8F93\u5165\u7EC4\u4EF6\u540D(\u5927\u9A7C\u5CF0\u5F0F)\uFF0C\u5982\uFF1ACountdownClock")
127
- }, (answer) => {
128
- const name2 = answer.name;
129
- if (name2 == null || name2 === "") {
130
- import_consola.default.log(import_chalk.default.red("\u7EC4\u4EF6\u540D\u4E0D\u80FD\u4E3A\u7A7A"));
131
- return false;
132
- }
133
- return true;
134
- });
135
- import_consola.default.log(import_chalk.default.green(name));
136
- let title = await promptChecker_default({
137
- type: "input",
138
- name: "title",
139
- message: import_chalk.default.blue("\u8BF7\u8F93\u5165\u7EC4\u4EF6\u6807\u9898\uFF0C\u5982\uFF1A\u5012\u8BA1\u65F6")
140
- });
141
- import_consola.default.log(import_chalk.default.green(title));
142
- let answerW = await promptChecker_default({
143
- type: "checkbox",
144
- name: "w",
145
- message: import_chalk.default.blue("\u8BF7\u9009\u62E9\u7EC4\u4EF6\u5BBD\u5EA6\uFF0C\u6700\u591A\u90093\u4E2A\uFF0C\u4F8B\u5982\u9009\u4E2D2,4,6\uFF0C\u4EE3\u8868\u7EC4\u4EF6\u6700\u5C0F\u5BBD\u4E3A2\uFF0C\u9ED8\u8BA4\u5BBD\u4E3A4\uFF0C\u6700\u5927\u5BBD\u4E3A6\uFF0C\u5355\u9009\u4EE3\u8868\u4E0D\u53EF\u62C9\u4F38"),
146
- choices: [1, 2, 3, 4, 5, 6]
147
- }, (answer) => {
148
- if (answer.w.length === 0) {
149
- import_consola.default.log(import_chalk.default.red("\u5BBD\u5EA6\u5FC5\u987B\u9009\u62E9"));
150
- return false;
151
- }
152
- if (answer.w.length > 3) {
153
- import_consola.default.log(import_chalk.default.red("\u5BBD\u5EA6\u6700\u591A\u9009\u62E93\u4E2A"));
154
- return false;
155
- }
156
- return true;
157
- });
158
- import_consola.default.log(import_chalk.default.green(answerW));
159
- let answerH = await promptChecker_default({
160
- type: "checkbox",
161
- name: "h",
162
- message: import_chalk.default.blue("\u8BF7\u9009\u62E9\u7EC4\u4EF6\u9AD8\u5EA6\uFF0C\u6700\u591A\u90093\u4E2A\uFF0C\u4F8B\u5982\u9009\u4E2D1,2\uFF0C\u4EE3\u8868\u7EC4\u4EF6\u6700\u5C0F\u9AD8\u4E3A1\uFF0C\u9ED8\u8BA4\u9AD8\u4E3A2\uFF0C\u6700\u5927\u9AD8\u4E3A2\uFF0C\u5355\u9009\u4EE3\u8868\u4E0D\u53EF\u62C9\u4F38"),
163
- choices: [1, 2, 3, 4, 5, 6]
164
- }, (answer) => {
165
- if (answer.h.length === 0) {
166
- import_consola.default.log(import_chalk.default.red("\u9AD8\u5EA6\u5FC5\u987B\u9009\u62E9"));
167
- return false;
168
- }
169
- if (answer.h.length > 3) {
170
- import_consola.default.log(import_chalk.default.red("\u9AD8\u5EA6\u6700\u591A\u9009\u62E93\u4E2A"));
171
- return false;
172
- }
173
- return true;
174
- });
175
- import_consola.default.log(import_chalk.default.green(answerH));
176
- let configurable = await promptChecker_default({
177
- type: "confirm",
178
- name: "configurable",
179
- message: import_chalk.default.blue("\u7EC4\u4EF6\u662F\u5426\u53EF\u914D\u7F6E\uFF0C\u4F8B\u5982\u4FEE\u6539\u80CC\u666F\u989C\u8272\uFF0C\u5B57\u4F53\u5927\u5C0F\u7B49")
180
- });
181
- import_consola.default.log(import_chalk.default.green(configurable));
182
- const width = getMiddleValue(answerW);
183
- const height = getMiddleValue(answerH);
184
- const minWidth = Math.min(...answerW);
185
- const maxWidth = Math.max(...answerW);
186
- const minHeight = Math.min(...answerH);
187
- const maxHeight = Math.max(...answerH);
188
- const snakeCaseName = (0, import_change_case.snakeCase)(name);
189
- const paramCaseName = (0, import_change_case.paramCase)(name);
190
- const packageName = "com.wisdom.widgets." + snakeCaseName;
191
- const widgetDir = import_path2.default.join(widgetFolder, paramCaseName);
192
- if (!import_fs2.default.existsSync(widgetDir)) {
193
- import_fs2.default.mkdirSync(widgetDir);
194
- } else {
195
- let answer = await import_inquirer2.default.prompt([{
196
- type: "confirm",
197
- name: "override",
198
- message: import_chalk.default.red("\u7EC4\u4EF6\u540D\u5DF2\u5B58\u5728\uFF0C\u662F\u5426\u7EE7\u7EED?")
199
- }]);
200
- if (!answer.override) {
201
- exit();
202
- }
203
- }
204
- const renderOptions = {
205
- name,
206
- snakeCaseName,
207
- paramCaseName,
208
- packageName,
209
- title,
210
- configurable,
211
- width,
212
- height,
213
- maxWidth,
214
- minHeight,
215
- maxHeight,
216
- minWidth
217
- };
218
- function renderToFile(templateFile, outputFile, renderOptions2) {
219
- const defineTemplatePath = import_path2.default.join(__dirname2, "../template", templateFile);
220
- let defineTemplate = import_fs2.default.readFileSync(defineTemplatePath, "utf8");
221
- import_fs2.default.writeFileSync(outputFile, import_ejs.default.render(defineTemplate, renderOptions2));
222
- }
223
- const widgetDefineFile = import_path2.default.resolve(widgetDir, `${name}.widget.ts`);
224
- const widgetFile = import_path2.default.resolve(widgetDir, `${name}Widget.vue`);
225
- const widgetViewFile = import_path2.default.resolve(widgetDir, `${name}WidgetView.vue`);
226
- const widgetRoutesFile = import_path2.default.resolve(widgetDir, `${name}WidgetRoutes.ts`);
227
- renderToFile("WidgetDefine.ejs", widgetDefineFile, renderOptions);
228
- renderToFile("Widget.ejs", widgetFile, renderOptions);
229
- renderToFile("WidgetView.ejs", widgetViewFile, renderOptions);
230
- renderToFile("WidgetRoutes.ejs", widgetRoutesFile, renderOptions);
231
- if (configurable) {
232
- const configFile = import_path2.default.resolve(widgetDir, `${name}ConfigView.vue`);
233
- renderToFile("WidgetConfig.ejs", configFile, renderOptions);
234
- }
235
- if (devOptions["useStorybook"]) {
236
- const storiesFile = import_path2.default.resolve(widgetDir, `${name}Widget.stories.ts`);
237
- renderToFile("stories.ejs", storiesFile, renderOptions);
238
- }
239
- const routeFile = import_path2.default.join(widgetFolder, "widget-router.ts");
240
- let routeContent;
241
- if (import_fs2.default.existsSync(routeFile)) {
242
- routeContent = import_fs2.default.readFileSync(routeFile, "utf8");
243
- } else {
244
- routeContent = import_fs2.default.readFileSync(import_path2.default.join(__dirname2, "../template/widget-router.ts"), "utf8");
245
- }
246
- const importRouteStr = `import ${name}WidgetRoutes from "./${paramCaseName}/${name}WidgetRoutes";`;
247
- const routeStr = `...${name}WidgetRoutes,`;
248
- if (!routeContent.includes(importRouteStr)) {
249
- routeContent = routeContent.replaceAll("//FBI WANING! IMPORT PLACE", `${importRouteStr}
250
- //FBI WANING! IMPORT PLACE`);
251
- }
252
- if (!routeContent.includes(routeStr)) {
253
- routeContent = routeContent.replaceAll("//FBI WANING! ROUTE PLACE", `${routeStr}
254
- //FBI WANING! ROUTE PLACE`);
255
- }
256
- import_fs2.default.writeFileSync(routeFile, routeContent);
257
- let gitAdd = `git add ${widgetDir}`;
258
- import_consola.default.info(import_chalk.default.grey(gitAdd));
259
- import_shelljs.default.exec(gitAdd);
260
- import_consola.default.log("=================");
261
- import_consola.default.info(`\u5DF2\u521B\u5EFA\u7EC4\u4EF6\uFF1A${widgetDir}`);
262
- import_consola.default.success("Happy coding!");
263
- }
264
- var import_path2, import_fs2, import_consola, import_url, import_change_case, import_inquirer2, import_ejs, import_shelljs, import_chalk, import_meta;
265
- var init_createWidget = __esm({
266
- "src/createWidget.ts"() {
267
- "use strict";
268
- import_path2 = __toESM(require("path"), 1);
269
- import_fs2 = __toESM(require("fs"), 1);
270
- import_consola = __toESM(require("consola"), 1);
271
- import_url = require("url");
272
- init_promptChecker();
273
- import_change_case = require("change-case");
274
- import_inquirer2 = __toESM(require("inquirer"), 1);
275
- import_ejs = __toESM(require("ejs"), 1);
276
- import_shelljs = __toESM(require("shelljs"), 1);
277
- init_utils();
278
- import_chalk = __toESM(require("chalk"), 1);
279
- import_meta = {};
280
- }
281
- });
282
-
283
- // src/dependencies/remoteDependencies.ts
284
- var import_package_json, import_ora, import_fs3, spinner, RemoteDependencies;
285
- var init_remoteDependencies = __esm({
286
- "src/dependencies/remoteDependencies.ts"() {
287
- "use strict";
288
- import_package_json = __toESM(require("package-json"), 1);
289
- import_ora = __toESM(require("ora"), 1);
290
- init_utils();
291
- import_fs3 = __toESM(require("fs"), 1);
292
- spinner = (0, import_ora.default)("Connecting");
293
- ((RemoteDependencies2) => {
294
- async function start() {
295
- spinner.start();
296
- let json = getPackageJson();
297
- let packageNames = Object.keys(widgetPackages);
298
- let dependencies = json["dependencies"];
299
- let devDependencies = json["devDependencies"];
300
- await upgradePackage(dependencies, packageNames);
301
- await upgradePackage(devDependencies, packageNames);
302
- import_fs3.default.writeFileSync(getPackagePath(), JSON.stringify(json, null, 2));
303
- spinner.succeed("Using remote versions!");
304
- }
305
- RemoteDependencies2.start = start;
306
- async function upgradePackage(dependencies, packageNames) {
307
- let localPackages = Object.keys(dependencies);
308
- for (let localPackage of localPackages) {
309
- if (packageNames.indexOf(localPackage) > -1) {
310
- let packageVersion = widgetPackages[localPackage];
311
- if (!packageVersion) {
312
- packageVersion = await getRemoteVersion(localPackage);
313
- widgetPackages[localPackage] = packageVersion;
314
- }
315
- dependencies[localPackage] = `^${packageVersion}`;
316
- }
317
- }
318
- }
319
- async function getRemoteVersion(packageName) {
320
- spinner.info(`Fetching package version:${packageName}`);
321
- const metadata = await (0, import_package_json.default)(packageName);
322
- let version = metadata["version"];
323
- spinner.info(`version:${version}`);
324
- return version;
325
- }
326
- })(RemoteDependencies || (RemoteDependencies = {}));
327
- }
328
- });
329
-
330
- // src/dependencies/localDependencies.ts
331
- var import_ora2, import_fs4, spinner2, LocalDependencies;
332
- var init_localDependencies = __esm({
333
- "src/dependencies/localDependencies.ts"() {
334
- "use strict";
335
- import_ora2 = __toESM(require("ora"), 1);
336
- init_utils();
337
- import_fs4 = __toESM(require("fs"), 1);
338
- spinner2 = (0, import_ora2.default)("Connecting");
339
- ((LocalDependencies2) => {
340
- async function start() {
341
- spinner2.start();
342
- let json = getPackageJson();
343
- let packageNames = Object.keys(widgetPackages);
344
- let dependencies = json["dependencies"];
345
- let devDependencies = json["devDependencies"];
346
- await setWorkspaceVersion(dependencies, packageNames);
347
- await setWorkspaceVersion(devDependencies, packageNames);
348
- import_fs4.default.writeFileSync(getPackagePath(), JSON.stringify(json, null, 2));
349
- spinner2.succeed("Using local versions(workspace:*)!");
350
- }
351
- LocalDependencies2.start = start;
352
- async function setWorkspaceVersion(dependencies, packageNames) {
353
- let localPackages = Object.keys(dependencies);
354
- for (let localPackage of localPackages) {
355
- if (packageNames.indexOf(localPackage) > -1) {
356
- dependencies[localPackage] = `workspace:*`;
357
- }
358
- }
359
- }
360
- })(LocalDependencies || (LocalDependencies = {}));
361
- }
362
- });
363
-
364
- // src/dependencies/index.ts
365
- var dependencies_exports = {};
366
- __export(dependencies_exports, {
367
- default: () => dependencies_default
368
- });
369
- async function dependencies_default(options) {
370
- let type = options.type;
371
- if (type == "remote") {
372
- await RemoteDependencies.start();
373
- } else {
374
- await LocalDependencies.start();
375
- }
376
- }
377
- var init_dependencies = __esm({
378
- "src/dependencies/index.ts"() {
379
- "use strict";
380
- init_remoteDependencies();
381
- init_localDependencies();
382
- }
383
- });
384
-
385
- // src/build/build.ts
386
- var build_exports = {};
387
- __export(build_exports, {
388
- build: () => build
389
- });
390
- function build() {
391
- const preloadSpinner = (0, import_ora3.default)("Preload").start();
392
- const mainSpinner = (0, import_ora3.default)("Main").start();
393
- const build2 = (0, import_child_process.exec)("npm run build:preload").on("close", () => {
394
- import_consola2.default.success("done");
395
- });
396
- build2.stdout.on("data", (data) => {
397
- import_consola2.default.log("data", data);
398
- });
399
- (0, import_child_process.exec)("npm run build:main", (error, stdout, stderr) => {
400
- if (error) {
401
- import_consola2.default.error("error: " + error);
402
- return;
403
- }
404
- import_consola2.default.log("stdout: " + stdout);
405
- import_consola2.default.log("stderr: " + typeof stderr);
406
- }).on("message", () => {
407
- import_consola2.default.log("on-message");
408
- }).on("data", () => {
409
- import_consola2.default.log("on-data");
410
- }).on("close", () => {
411
- import_consola2.default.log("done");
412
- });
413
- }
414
- var import_ora3, import_child_process, import_consola2;
415
- var init_build = __esm({
416
- "src/build/build.ts"() {
417
- "use strict";
418
- import_ora3 = __toESM(require("ora"), 1);
419
- import_child_process = require("child_process");
420
- import_consola2 = __toESM(require("consola"), 1);
421
- }
422
- });
423
-
424
- // src/release/update-zip.ts
425
- function zipDirectory(sourceDir, outPath, ignoreDir) {
426
- const archive = (0, import_archiver.default)("zip", { zlib: { level: 9 } });
427
- const stream = import_fs5.default.createWriteStream(outPath);
428
- return new Promise((resolve, reject) => {
429
- archive.glob("**/*", { cwd: sourceDir, ignore: ["node_modules/**"] }).on("error", (err) => reject(err)).pipe(stream);
430
- stream.on("close", () => resolve());
431
- archive.finalize();
432
- });
433
- }
434
- var import_fs5, import_archiver, update_zip_default;
435
- var init_update_zip = __esm({
436
- "src/release/update-zip.ts"() {
437
- "use strict";
438
- import_fs5 = __toESM(require("fs"), 1);
439
- import_archiver = __toESM(require("archiver"), 1);
440
- update_zip_default = zipDirectory;
441
- }
442
- });
443
-
444
- // src/release/oss.ts
445
- async function put(ossPath, file) {
446
- try {
447
- const result = await clinet.put(ossPath, file, { headers });
448
- console.log(import_chalk2.default.green(`\u4E0A\u4F20\u6210\u529F\uFF1A${file}->${ossPath}`));
449
- } catch (e) {
450
- console.log(e);
451
- }
452
- }
453
- async function copy(dist, src) {
454
- try {
455
- const result = await clinet.copy(dist, src, { headers });
456
- console.log(import_chalk2.default.green(`\u590D\u5236\u6210\u529F\uFF1A${src}->${dist}`));
457
- } catch (e) {
458
- console.error(e);
459
- }
460
- }
461
- var import_ali_oss, import_fs6, import_chalk2, packageData, AccessKeyID, AccessKeySecret, headers, clinet;
462
- var init_oss = __esm({
463
- "src/release/oss.ts"() {
464
- "use strict";
465
- import_ali_oss = __toESM(require("ali-oss"), 1);
466
- import_fs6 = __toESM(require("fs"), 1);
467
- import_chalk2 = __toESM(require("chalk"), 1);
468
- packageData = JSON.parse(import_fs6.default.readFileSync("./package.json").toString());
469
- AccessKeyID = packageData.oss?.id ?? "default";
470
- AccessKeySecret = packageData.oss?.secret ?? "default";
471
- headers = {
472
- // 指定Object的存储类型。
473
- "x-oss-storage-class": "Standard",
474
- // 指定Object的访问权限。
475
- "x-oss-object-acl": "public-read",
476
- "x-oss-forbid-overwrite": "false",
477
- "Cache-Control": "no-cache"
478
- };
479
- clinet = new import_ali_oss.default({
480
- // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
481
- region: "oss-cn-hangzhou",
482
- // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
483
- accessKeyId: AccessKeyID,
484
- accessKeySecret: AccessKeySecret,
485
- bucket: "widget-fun"
486
- });
487
- }
488
- });
489
-
490
- // src/release/ftp.ts
491
- async function checkParentDir(ftpClient, file, onMkdir) {
492
- let dir = import_path3.default.dirname(file);
493
- const dirExists = await ftpClient.exists(dir);
494
- if (!dirExists) {
495
- onMkdir(dir);
496
- await ftpClient.mkdir(dir, true);
497
- }
498
- }
499
- async function runSSH(sshConfig, releaseConfig) {
500
- import_consola3.default.info("run ssh:", sshConfig);
501
- const answer = await import_inquirer3.default.prompt([{ type: "password", name: "password", mask: "*", message: "Enter key pair password" }]);
502
- let ftpClient = new import_ssh2_sftp_client.default();
503
- const port = sshConfig["Port"];
504
- const key = import_fs7.default.readFileSync(import_path3.default.resolve(import_os.default.homedir(), ".ssh/id_rsa"));
505
- const spinner3 = (0, import_ora4.default)("Connecting");
506
- try {
507
- spinner3.start();
508
- await ftpClient.connect({
509
- host: sshConfig["HostName"],
510
- port: port ? parseInt(port) : 22,
511
- username: sshConfig["User"],
512
- passphrase: answer.password,
513
- privateKey: key
514
- });
515
- releaseConfig.fileMap.sort((it1, it2) => (it1.order ?? 0) - (it2.order ?? 0));
516
- for (let item of releaseConfig.fileMap) {
517
- if (typeof item.src == "string") {
518
- if (item.remoteCopy) {
519
- await checkParentDir(ftpClient, item.dest, (dir) => {
520
- spinner3.warn(`Create Dir: ${dir}`);
521
- });
522
- let destExists = await ftpClient.exists(item.dest);
523
- if (destExists) {
524
- spinner3.warn(`Delete exists file:${item.dest}`);
525
- await ftpClient.delete(item.dest);
526
- }
527
- spinner3.info(`Copying File: ${item.src} -> ${item.dest}`);
528
- await ftpClient.rcopy(item.src, item.dest);
529
- } else {
530
- const localFile = import_path3.default.resolve(process3.cwd(), item.src);
531
- if (!item.remoteCopy && !import_fs7.default.existsSync(localFile)) {
532
- spinner3.warn(`Skip not exists file:${localFile}`);
533
- continue;
534
- }
535
- if (import_fs7.default.lstatSync(localFile).isDirectory()) {
536
- spinner3.info(`Uploading Dir: ${localFile} -> ${item.dest}`);
537
- await ftpClient.uploadDir(localFile, item.dest);
538
- } else {
539
- await checkParentDir(ftpClient, item.dest, (dir) => {
540
- spinner3.warn(`Create Dir: ${dir}`);
541
- });
542
- spinner3.info(`Uploading File: ${localFile} -> ${item.dest}`);
543
- await ftpClient.put(localFile, item.dest);
544
- }
545
- }
546
- } else {
547
- await ftpClient.put(Buffer.from(JSON.stringify(item.src), "utf-8"), item.dest);
548
- }
549
- }
550
- spinner3.succeed("Files uploaded!");
551
- await ftpClient.end();
552
- } catch (e) {
553
- spinner3.fail(`Connection error:${e}`);
554
- await ftpClient.end();
555
- }
556
- }
557
- async function ftpUpload() {
558
- const releaseJsonFilePath = import_path3.default.join(process3.cwd(), "release.json");
559
- const packageVersion = getPackageVersion();
560
- import_consola3.default.info("Package Version:", packageVersion);
561
- let releaseJson = import_fs7.default.readFileSync(releaseJsonFilePath).toString().replaceAll("${version}", packageVersion);
562
- const releaseConfig = JSON.parse(releaseJson);
563
- const sshConfigFile = import_path3.default.resolve(import_os.default.homedir(), ".ssh/config");
564
- import_consola3.default.info("SSH Config File Path:", sshConfigFile);
565
- const sshConfigs = import_ssh_config.default.parse(import_fs7.default.readFileSync(sshConfigFile).toString());
566
- for (let host of releaseConfig.ftpConfig.host) {
567
- let sshConfig = sshConfigs.compute(host);
568
- if (!sshConfig) {
569
- import_consola3.default.error(`SSH config ${releaseConfig.ftpConfig.host} not found`);
570
- return;
571
- }
572
- await runSSH(sshConfig, releaseConfig);
573
- }
574
- }
575
- var import_path3, import_fs7, import_ssh_config, import_os, import_ssh2_sftp_client, import_consola3, import_inquirer3, import_ora4, process3;
576
- var init_ftp = __esm({
577
- "src/release/ftp.ts"() {
578
- "use strict";
579
- import_path3 = __toESM(require("path"), 1);
580
- import_fs7 = __toESM(require("fs"), 1);
581
- import_ssh_config = __toESM(require("@widget-js/ssh-config"), 1);
582
- import_os = __toESM(require("os"), 1);
583
- import_ssh2_sftp_client = __toESM(require("ssh2-sftp-client"), 1);
584
- import_consola3 = __toESM(require("consola"), 1);
585
- import_inquirer3 = __toESM(require("inquirer"), 1);
586
- import_ora4 = __toESM(require("ora"), 1);
587
- process3 = __toESM(require("process"), 1);
588
- init_utils();
589
- }
590
- });
591
-
592
- // src/release/release.ts
593
- var release_exports = {};
594
- __export(release_exports, {
595
- default: () => release_default
596
- });
597
- var import_fs8, import_path4, import_chalk3, release, release_default;
598
- var init_release = __esm({
599
- "src/release/release.ts"() {
600
- "use strict";
601
- import_fs8 = __toESM(require("fs"), 1);
602
- import_path4 = __toESM(require("path"), 1);
603
- init_promptChecker();
604
- init_update_zip();
605
- init_oss();
606
- import_chalk3 = __toESM(require("chalk"), 1);
607
- init_ftp();
608
- release = async (options) => {
609
- if (options.type == "ftp") {
610
- await ftpUpload();
611
- return;
612
- }
613
- const packageJSON = JSON.parse(import_fs8.default.readFileSync("package.json", "utf-8"));
614
- const changelogJSON = JSON.parse(import_fs8.default.readFileSync("changelog.json", "utf-8"));
615
- const version = packageJSON["version"];
616
- const changelog = changelogJSON[version];
617
- let needUpdateElectron = await promptChecker_default({
618
- type: "confirm",
619
- name: "electron",
620
- message: import_chalk3.default.blue("\u7528\u6237\u662F\u5426\u9700\u8981\u66F4\u65B0Electron?")
621
- });
622
- const versionInfo = {
623
- version,
624
- releaseNote: changelog,
625
- updateElectron: needUpdateElectron,
626
- updateNodeModule: false,
627
- updateWindowsApi: false,
628
- downloadLink: ""
629
- };
630
- let installerPath = import_path4.default.join(`./packaged/widgets-${version}-setup-win-x64.exe`);
631
- if (!import_fs8.default.existsSync(installerPath)) {
632
- installerPath = import_path4.default.join(`./packaged/electron-${version}-setup-win-x64.exe`);
633
- }
634
- if (!import_fs8.default.existsSync(installerPath)) {
635
- installerPath = import_path4.default.join(`./packaged/app-${version}-setup-win-x64.exe`);
636
- }
637
- const updateZipPath = import_path4.default.join(`./packaged/update.zip`);
638
- console.log(import_chalk3.default.blue("\u538B\u7F29\u66F4\u65B0\u6587\u4EF6\u4E2D"));
639
- await update_zip_default("./release", updateZipPath);
640
- console.log(import_chalk3.default.blue("\u4E0A\u4F20installer.exe\u5230OSS"));
641
- await put("version/installer.exe", installerPath);
642
- console.log(import_chalk3.default.blue("\u4E0A\u4F20update.zip\u5230OSS"));
643
- await put("version/update.zip", updateZipPath);
644
- console.log(import_chalk3.default.blue("\u66F4\u65B0\u7248\u672C\u4FE1\u606F"));
645
- versionInfo.downloadLink = "https://widget-fun.oss-cn-hangzhou.aliyuncs.com/version/update.zip";
646
- const versionJSON = JSON.stringify(versionInfo, null, 2);
647
- await put("version/version.json", Buffer.from(versionJSON));
648
- copy(`version/history/${version}.exe`, "version/installer.exe");
649
- copy(`version/history/update-${version}.zip`, "version/update.zip");
650
- console.log(import_chalk3.default.yellow(versionJSON));
651
- };
652
- release_default = release;
653
- }
654
- });
655
-
656
- // src/index.ts
657
- var import_commander = require("commander");
658
- var import_fs9 = __toESM(require("fs"), 1);
659
- var import_path5 = __toESM(require("path"), 1);
660
- var process4 = __toESM(require("process"), 1);
661
- var import_url2 = require("url");
662
- var import_figlet = __toESM(require("figlet"), 1);
663
- var import_gradient_string = __toESM(require("gradient-string"), 1);
664
- var import_meta2 = {};
665
- var __filename = (0, import_url2.fileURLToPath)(import_meta2.url);
666
- var __dirname = import_path5.default.dirname(__filename);
667
- var packageJsonPath = import_path5.default.join(__dirname, "../package.json");
668
- var cliPackage = JSON.parse(import_fs9.default.readFileSync(packageJsonPath).toString());
669
- console.log(import_gradient_string.default.pastel.multiline(import_figlet.default.textSync("widget-cli", { horizontalLayout: "full" })));
670
- import_commander.program.version(`@widget-js/cli ${cliPackage.version}`).usage("<command> [options]");
671
- import_commander.program.command("create").description("\u521B\u5EFA\u65B0\u7684\u7EC4\u4EF6").action(async () => {
672
- const createWidget2 = await Promise.resolve().then(() => (init_createWidget(), createWidget_exports));
673
- await createWidget2.default();
674
- });
675
- var dependenciesOption = new import_commander.Option("-t, --type <type>").choices(["remote", "local"]);
676
- import_commander.program.command("dependencies").description("\u5C06@widget-js\u4F9D\u8D56\u7248\u672C\u8BBE\u7F6E\u6210\u8FDC\u7A0B\u6216\u8005\u672C\u5730").addOption(dependenciesOption).action(async (options) => {
677
- let dependencies = await Promise.resolve().then(() => (init_dependencies(), dependencies_exports));
678
- await dependencies.default(options);
679
- });
680
- import_commander.program.command("build").description("\u6267\u884C\u7F16\u8BD1\u4EFB\u52A1").action(async () => {
681
- const build2 = await Promise.resolve().then(() => (init_build(), build_exports));
682
- await build2.build();
683
- });
684
- var typeOption = new import_commander.Option("-t, --type <type>").choices(["ftp", "oss"]);
685
- import_commander.program.command("release").description("\u901A\u8FC7FTP/OSS\u53D1\u5E03\u6587\u4EF6\uFF0C\u4EC5\u5185\u90E8\u4F7F\u7528").addOption(typeOption).action(async (options, command) => {
686
- let release2 = await Promise.resolve().then(() => (init_release(), release_exports));
687
- await release2.default(options);
688
- });
689
- import_commander.program.parse(process4.argv);
package/lib/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
-
2
- export { }