@mathripper/ideal-cli 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3228 -115
- package/dist/index.js.map +1 -1
- package/package.json +2 -11
package/dist/index.js
CHANGED
|
@@ -88,11 +88,11 @@ async function isEmpty(dirPath) {
|
|
|
88
88
|
try {
|
|
89
89
|
const files = await fs.readdir(dirPath);
|
|
90
90
|
return files.length === 0;
|
|
91
|
-
} catch (
|
|
92
|
-
if (
|
|
91
|
+
} catch (error2) {
|
|
92
|
+
if (error2.code === "ENOENT") {
|
|
93
93
|
return true;
|
|
94
94
|
}
|
|
95
|
-
throw
|
|
95
|
+
throw error2;
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
async function copyDir(src, dest, options2 = {}) {
|
|
@@ -2721,7 +2721,7 @@ var require_loader = __commonJS({
|
|
|
2721
2721
|
iterator(documents[index]);
|
|
2722
2722
|
}
|
|
2723
2723
|
}
|
|
2724
|
-
function
|
|
2724
|
+
function load2(input, options2) {
|
|
2725
2725
|
var documents = loadDocuments(input, options2);
|
|
2726
2726
|
if (documents.length === 0) {
|
|
2727
2727
|
return void 0;
|
|
@@ -2738,10 +2738,10 @@ var require_loader = __commonJS({
|
|
|
2738
2738
|
return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options2));
|
|
2739
2739
|
}
|
|
2740
2740
|
function safeLoad(input, options2) {
|
|
2741
|
-
return
|
|
2741
|
+
return load2(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options2));
|
|
2742
2742
|
}
|
|
2743
2743
|
module2.exports.loadAll = loadAll;
|
|
2744
|
-
module2.exports.load =
|
|
2744
|
+
module2.exports.load = load2;
|
|
2745
2745
|
module2.exports.safeLoadAll = safeLoadAll;
|
|
2746
2746
|
module2.exports.safeLoad = safeLoad;
|
|
2747
2747
|
}
|
|
@@ -3753,12 +3753,13 @@ init_esm_shims();
|
|
|
3753
3753
|
// src/constants/messages.ts
|
|
3754
3754
|
init_esm_shims();
|
|
3755
3755
|
var MSG_UPDATE_SUCCESS = "\u66F4\u65B0\u5B8C\u6210\uFF01";
|
|
3756
|
+
var ERR_DIR_EXISTS = "\u76EE\u5F55\u5DF2\u5B58\u5728\uFF0C\u8BF7\u4F7F\u7528 --force \u5F3A\u5236\u8986\u76D6";
|
|
3756
3757
|
var ERR_CONFIG_NOT_FOUND = "\u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728\uFF0C\u8BF7\u5148\u8FD0\u884C ideal init";
|
|
3757
3758
|
var WARN_FILE_MODIFIED = "\u6587\u4EF6\u5DF2\u88AB\u4FEE\u6539\uFF0C\u66F4\u65B0\u65F6\u53EF\u80FD\u88AB\u8986\u76D6";
|
|
3758
3759
|
var WARN_CONFLICT_DETECTED = "\u68C0\u6D4B\u5230\u51B2\u7A81\uFF0C\u8BF7\u624B\u52A8\u89E3\u51B3";
|
|
3760
|
+
var INFO_CREATING_DIR = "\u6B63\u5728\u521B\u5EFA\u76EE\u5F55...";
|
|
3759
3761
|
var INFO_CHECKING = "\u6B63\u5728\u68C0\u67E5...";
|
|
3760
3762
|
var INFO_UPDATING = "\u6B63\u5728\u66F4\u65B0...";
|
|
3761
|
-
var HELP_INIT = "\u521D\u59CB\u5316\u9879\u76EE\u5DE5\u4F5C\u6D41\u914D\u7F6E";
|
|
3762
3763
|
var HELP_DOCTOR = "\u68C0\u67E5\u5DE5\u4F5C\u6D41\u914D\u7F6E\u5B8C\u6574\u6027\u548C\u6709\u6548\u6027";
|
|
3763
3764
|
|
|
3764
3765
|
// src/commands/doctor.ts
|
|
@@ -3787,7 +3788,7 @@ init_esm_shims();
|
|
|
3787
3788
|
var ANSI_BACKGROUND_OFFSET = 10;
|
|
3788
3789
|
var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
|
|
3789
3790
|
var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
|
|
3790
|
-
var wrapAnsi16m = (offset = 0) => (
|
|
3791
|
+
var wrapAnsi16m = (offset = 0) => (red2, green2, blue2) => `\x1B[${38 + offset};2;${red2};${green2};${blue2}m`;
|
|
3791
3792
|
var styles = {
|
|
3792
3793
|
modifier: {
|
|
3793
3794
|
reset: [0, 0],
|
|
@@ -3882,17 +3883,17 @@ function assembleStyles() {
|
|
|
3882
3883
|
styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
|
3883
3884
|
Object.defineProperties(styles, {
|
|
3884
3885
|
rgbToAnsi256: {
|
|
3885
|
-
value(
|
|
3886
|
-
if (
|
|
3887
|
-
if (
|
|
3886
|
+
value(red2, green2, blue2) {
|
|
3887
|
+
if (red2 === green2 && green2 === blue2) {
|
|
3888
|
+
if (red2 < 8) {
|
|
3888
3889
|
return 16;
|
|
3889
3890
|
}
|
|
3890
|
-
if (
|
|
3891
|
+
if (red2 > 248) {
|
|
3891
3892
|
return 231;
|
|
3892
3893
|
}
|
|
3893
|
-
return Math.round((
|
|
3894
|
+
return Math.round((red2 - 8) / 247 * 24) + 232;
|
|
3894
3895
|
}
|
|
3895
|
-
return 16 + 36 * Math.round(
|
|
3896
|
+
return 16 + 36 * Math.round(red2 / 255 * 5) + 6 * Math.round(green2 / 255 * 5) + Math.round(blue2 / 255 * 5);
|
|
3896
3897
|
},
|
|
3897
3898
|
enumerable: false
|
|
3898
3899
|
},
|
|
@@ -3929,25 +3930,25 @@ function assembleStyles() {
|
|
|
3929
3930
|
if (code < 16) {
|
|
3930
3931
|
return 90 + (code - 8);
|
|
3931
3932
|
}
|
|
3932
|
-
let
|
|
3933
|
-
let
|
|
3934
|
-
let
|
|
3933
|
+
let red2;
|
|
3934
|
+
let green2;
|
|
3935
|
+
let blue2;
|
|
3935
3936
|
if (code >= 232) {
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3937
|
+
red2 = ((code - 232) * 10 + 8) / 255;
|
|
3938
|
+
green2 = red2;
|
|
3939
|
+
blue2 = red2;
|
|
3939
3940
|
} else {
|
|
3940
3941
|
code -= 16;
|
|
3941
3942
|
const remainder = code % 36;
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3943
|
+
red2 = Math.floor(code / 36) / 5;
|
|
3944
|
+
green2 = Math.floor(remainder / 6) / 5;
|
|
3945
|
+
blue2 = remainder % 6 / 5;
|
|
3945
3946
|
}
|
|
3946
|
-
const value = Math.max(
|
|
3947
|
+
const value = Math.max(red2, green2, blue2) * 2;
|
|
3947
3948
|
if (value === 0) {
|
|
3948
3949
|
return 30;
|
|
3949
3950
|
}
|
|
3950
|
-
let result = 30 + (Math.round(
|
|
3951
|
+
let result = 30 + (Math.round(blue2) << 2 | Math.round(green2) << 1 | Math.round(red2));
|
|
3951
3952
|
if (value === 2) {
|
|
3952
3953
|
result += 60;
|
|
3953
3954
|
}
|
|
@@ -3956,7 +3957,7 @@ function assembleStyles() {
|
|
|
3956
3957
|
enumerable: false
|
|
3957
3958
|
},
|
|
3958
3959
|
rgbToAnsi: {
|
|
3959
|
-
value: (
|
|
3960
|
+
value: (red2, green2, blue2) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red2, green2, blue2)),
|
|
3960
3961
|
enumerable: false
|
|
3961
3962
|
},
|
|
3962
3963
|
hexToAnsi: {
|
|
@@ -4663,12 +4664,12 @@ var ProjectValidator = class {
|
|
|
4663
4664
|
details: `\u9879\u76EE\u540D\u79F0: ${config.projectName}
|
|
4664
4665
|
\u6280\u672F\u6808: ${config.techStack}`
|
|
4665
4666
|
};
|
|
4666
|
-
} catch (
|
|
4667
|
+
} catch (error2) {
|
|
4667
4668
|
return {
|
|
4668
4669
|
name: "\u914D\u7F6E\u6587\u4EF6",
|
|
4669
4670
|
status: "error",
|
|
4670
4671
|
message: "\u914D\u7F6E\u6587\u4EF6\u683C\u5F0F\u9519\u8BEF",
|
|
4671
|
-
details: `\u89E3\u6790\u9519\u8BEF: ${
|
|
4672
|
+
details: `\u89E3\u6790\u9519\u8BEF: ${error2 instanceof Error ? error2.message : "Unknown error"}`
|
|
4672
4673
|
};
|
|
4673
4674
|
}
|
|
4674
4675
|
}
|
|
@@ -4951,9 +4952,9 @@ var DoctorCommand = class {
|
|
|
4951
4952
|
return 1;
|
|
4952
4953
|
}
|
|
4953
4954
|
return 0;
|
|
4954
|
-
} catch (
|
|
4955
|
+
} catch (error2) {
|
|
4955
4956
|
this.logger.error(
|
|
4956
|
-
`\u8BCA\u65AD\u68C0\u67E5\u5931\u8D25: ${
|
|
4957
|
+
`\u8BCA\u65AD\u68C0\u67E5\u5931\u8D25: ${error2 instanceof Error ? error2.message : "Unknown error"}`
|
|
4957
4958
|
);
|
|
4958
4959
|
return 1;
|
|
4959
4960
|
}
|
|
@@ -5017,9 +5018,9 @@ var ConfigManager = class {
|
|
|
5017
5018
|
const { data } = (0, import_gray_matter.default)(content);
|
|
5018
5019
|
const config = this.parseConfig(data);
|
|
5019
5020
|
return config;
|
|
5020
|
-
} catch (
|
|
5021
|
+
} catch (error2) {
|
|
5021
5022
|
throw new Error(
|
|
5022
|
-
`\u914D\u7F6E\u6587\u4EF6\u89E3\u6790\u5931\u8D25: ${
|
|
5023
|
+
`\u914D\u7F6E\u6587\u4EF6\u89E3\u6790\u5931\u8D25: ${error2 instanceof Error ? error2.message : String(error2)}`
|
|
5023
5024
|
);
|
|
5024
5025
|
}
|
|
5025
5026
|
}
|
|
@@ -5294,12 +5295,12 @@ var ConfigCommand = class {
|
|
|
5294
5295
|
console.log(item.key.padEnd(30) + item.value);
|
|
5295
5296
|
}
|
|
5296
5297
|
console.log("");
|
|
5297
|
-
} catch (
|
|
5298
|
-
if (
|
|
5298
|
+
} catch (error2) {
|
|
5299
|
+
if (error2 instanceof Error && error2.message.includes("\u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728")) {
|
|
5299
5300
|
console.error(ERR_CONFIG_NOT_FOUND);
|
|
5300
5301
|
process.exit(1);
|
|
5301
5302
|
}
|
|
5302
|
-
throw
|
|
5303
|
+
throw error2;
|
|
5303
5304
|
}
|
|
5304
5305
|
}
|
|
5305
5306
|
/**
|
|
@@ -5325,12 +5326,12 @@ var ConfigCommand = class {
|
|
|
5325
5326
|
} else {
|
|
5326
5327
|
console.log(String(value));
|
|
5327
5328
|
}
|
|
5328
|
-
} catch (
|
|
5329
|
-
if (
|
|
5329
|
+
} catch (error2) {
|
|
5330
|
+
if (error2 instanceof Error && error2.message.includes("\u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728")) {
|
|
5330
5331
|
console.error(ERR_CONFIG_NOT_FOUND);
|
|
5331
5332
|
process.exit(1);
|
|
5332
5333
|
}
|
|
5333
|
-
throw
|
|
5334
|
+
throw error2;
|
|
5334
5335
|
}
|
|
5335
5336
|
}
|
|
5336
5337
|
/**
|
|
@@ -5352,12 +5353,12 @@ var ConfigCommand = class {
|
|
|
5352
5353
|
const updatedConfig = configObj;
|
|
5353
5354
|
await this.configManager.write(projectRoot, updatedConfig);
|
|
5354
5355
|
console.log(`\u5DF2\u66F4\u65B0: ${key} = ${value}`);
|
|
5355
|
-
} catch (
|
|
5356
|
-
if (
|
|
5356
|
+
} catch (error2) {
|
|
5357
|
+
if (error2 instanceof Error && error2.message.includes("\u914D\u7F6E\u6587\u4EF6\u4E0D\u5B58\u5728")) {
|
|
5357
5358
|
console.error(ERR_CONFIG_NOT_FOUND);
|
|
5358
5359
|
process.exit(1);
|
|
5359
5360
|
}
|
|
5360
|
-
throw
|
|
5361
|
+
throw error2;
|
|
5361
5362
|
}
|
|
5362
5363
|
}
|
|
5363
5364
|
};
|
|
@@ -5418,8 +5419,8 @@ function createHttpClient(config = {}) {
|
|
|
5418
5419
|
}
|
|
5419
5420
|
return config2;
|
|
5420
5421
|
},
|
|
5421
|
-
(
|
|
5422
|
-
return Promise.reject(
|
|
5422
|
+
(error2) => {
|
|
5423
|
+
return Promise.reject(error2);
|
|
5423
5424
|
}
|
|
5424
5425
|
);
|
|
5425
5426
|
instance.interceptors.response.use(
|
|
@@ -5431,8 +5432,8 @@ function createHttpClient(config = {}) {
|
|
|
5431
5432
|
}
|
|
5432
5433
|
return response;
|
|
5433
5434
|
},
|
|
5434
|
-
(
|
|
5435
|
-
return Promise.reject(handleAxiosError(
|
|
5435
|
+
(error2) => {
|
|
5436
|
+
return Promise.reject(handleAxiosError(error2));
|
|
5436
5437
|
}
|
|
5437
5438
|
);
|
|
5438
5439
|
return instance;
|
|
@@ -5468,9 +5469,9 @@ function configureProxy(instance) {
|
|
|
5468
5469
|
}
|
|
5469
5470
|
}
|
|
5470
5471
|
}
|
|
5471
|
-
function handleAxiosError(
|
|
5472
|
-
if (
|
|
5473
|
-
const { status, data } =
|
|
5472
|
+
function handleAxiosError(error2) {
|
|
5473
|
+
if (error2.response) {
|
|
5474
|
+
const { status, data } = error2.response;
|
|
5474
5475
|
let message = `\u8BF7\u6C42\u5931\u8D25\uFF0C\u72B6\u6001\u7801: ${status}`;
|
|
5475
5476
|
if (data && typeof data === "object" && "message" in data) {
|
|
5476
5477
|
message = data.message;
|
|
@@ -5479,21 +5480,21 @@ function handleAxiosError(error) {
|
|
|
5479
5480
|
}
|
|
5480
5481
|
return new NetworkError(message, "RESPONSE_ERROR", status, data);
|
|
5481
5482
|
}
|
|
5482
|
-
if (
|
|
5483
|
+
if (error2.request) {
|
|
5483
5484
|
return new NetworkError(
|
|
5484
5485
|
"\u65E0\u6CD5\u8FDE\u63A5\u5230\u670D\u52A1\u5668\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5",
|
|
5485
5486
|
"NO_RESPONSE"
|
|
5486
5487
|
);
|
|
5487
5488
|
}
|
|
5488
|
-
if (
|
|
5489
|
+
if (error2.code === "ECONNABORTED") {
|
|
5489
5490
|
return new NetworkError(
|
|
5490
|
-
`\u8BF7\u6C42\u8D85\u65F6\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\uFF08\u8D85\u65F6\u65F6\u95F4: ${
|
|
5491
|
+
`\u8BF7\u6C42\u8D85\u65F6\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\uFF08\u8D85\u65F6\u65F6\u95F4: ${error2.config?.timeout || DEFAULT_TIMEOUT}ms\uFF09`,
|
|
5491
5492
|
"TIMEOUT"
|
|
5492
5493
|
);
|
|
5493
5494
|
}
|
|
5494
5495
|
return new NetworkError(
|
|
5495
|
-
|
|
5496
|
-
|
|
5496
|
+
error2.message || "\u672A\u77E5\u7F51\u7EDC\u9519\u8BEF",
|
|
5497
|
+
error2.code || "UNKNOWN"
|
|
5497
5498
|
);
|
|
5498
5499
|
}
|
|
5499
5500
|
async function get(client, url, config) {
|
|
@@ -5505,11 +5506,11 @@ async function withRetry(requestFn, maxRetries = 3, retryDelay = 1e3) {
|
|
|
5505
5506
|
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
5506
5507
|
try {
|
|
5507
5508
|
return await requestFn();
|
|
5508
|
-
} catch (
|
|
5509
|
-
lastError =
|
|
5510
|
-
if (
|
|
5511
|
-
if (
|
|
5512
|
-
throw
|
|
5509
|
+
} catch (error2) {
|
|
5510
|
+
lastError = error2;
|
|
5511
|
+
if (error2 instanceof NetworkError && error2.statusCode) {
|
|
5512
|
+
if (error2.statusCode >= 400 && error2.statusCode < 500) {
|
|
5513
|
+
throw error2;
|
|
5513
5514
|
}
|
|
5514
5515
|
}
|
|
5515
5516
|
if (attempt < maxRetries) {
|
|
@@ -5555,8 +5556,8 @@ var GitHubClient = class {
|
|
|
5555
5556
|
* @param ref Git 引用(分支、标签或提交 SHA)
|
|
5556
5557
|
* @returns 目录内容数组
|
|
5557
5558
|
*/
|
|
5558
|
-
async getContents(owner, repo,
|
|
5559
|
-
let url = `/repos/${owner}/${repo}/contents/${
|
|
5559
|
+
async getContents(owner, repo, path11 = "", ref) {
|
|
5560
|
+
let url = `/repos/${owner}/${repo}/contents/${path11}`;
|
|
5560
5561
|
if (ref) {
|
|
5561
5562
|
url += `?ref=${encodeURIComponent(ref)}`;
|
|
5562
5563
|
}
|
|
@@ -5569,11 +5570,11 @@ var GitHubClient = class {
|
|
|
5569
5570
|
3,
|
|
5570
5571
|
1e3
|
|
5571
5572
|
);
|
|
5572
|
-
} catch (
|
|
5573
|
-
if (
|
|
5574
|
-
logger.error(`Failed to fetch contents from ${url}: ${
|
|
5573
|
+
} catch (error2) {
|
|
5574
|
+
if (error2 instanceof NetworkError) {
|
|
5575
|
+
logger.error(`Failed to fetch contents from ${url}: ${error2.message}`);
|
|
5575
5576
|
}
|
|
5576
|
-
throw
|
|
5577
|
+
throw error2;
|
|
5577
5578
|
}
|
|
5578
5579
|
}
|
|
5579
5580
|
/**
|
|
@@ -5584,8 +5585,8 @@ var GitHubClient = class {
|
|
|
5584
5585
|
* @param ref Git 引用
|
|
5585
5586
|
* @returns 文件内容(已解码)
|
|
5586
5587
|
*/
|
|
5587
|
-
async getFileContent(owner, repo,
|
|
5588
|
-
let url = `/repos/${owner}/${repo}/contents/${
|
|
5588
|
+
async getFileContent(owner, repo, path11, ref) {
|
|
5589
|
+
let url = `/repos/${owner}/${repo}/contents/${path11}`;
|
|
5589
5590
|
if (ref) {
|
|
5590
5591
|
url += `?ref=${encodeURIComponent(ref)}`;
|
|
5591
5592
|
}
|
|
@@ -5605,13 +5606,13 @@ var GitHubClient = class {
|
|
|
5605
5606
|
return content;
|
|
5606
5607
|
}
|
|
5607
5608
|
throw new Error(
|
|
5608
|
-
`Unexpected response: content or encoding missing for ${
|
|
5609
|
+
`Unexpected response: content or encoding missing for ${path11}`
|
|
5609
5610
|
);
|
|
5610
|
-
} catch (
|
|
5611
|
-
if (
|
|
5612
|
-
logger.error(`Failed to fetch file ${
|
|
5611
|
+
} catch (error2) {
|
|
5612
|
+
if (error2 instanceof NetworkError) {
|
|
5613
|
+
logger.error(`Failed to fetch file ${path11}: ${error2.message}`);
|
|
5613
5614
|
}
|
|
5614
|
-
throw
|
|
5615
|
+
throw error2;
|
|
5615
5616
|
}
|
|
5616
5617
|
}
|
|
5617
5618
|
/**
|
|
@@ -5628,13 +5629,13 @@ var GitHubClient = class {
|
|
|
5628
5629
|
responseType: "text"
|
|
5629
5630
|
});
|
|
5630
5631
|
return response.data;
|
|
5631
|
-
} catch (
|
|
5632
|
-
if (
|
|
5632
|
+
} catch (error2) {
|
|
5633
|
+
if (error2 instanceof NetworkError) {
|
|
5633
5634
|
logger.error(
|
|
5634
|
-
`Failed to fetch file from ${downloadUrl}: ${
|
|
5635
|
+
`Failed to fetch file from ${downloadUrl}: ${error2.message}`
|
|
5635
5636
|
);
|
|
5636
5637
|
}
|
|
5637
|
-
throw
|
|
5638
|
+
throw error2;
|
|
5638
5639
|
}
|
|
5639
5640
|
}
|
|
5640
5641
|
/**
|
|
@@ -5645,13 +5646,13 @@ var GitHubClient = class {
|
|
|
5645
5646
|
* @param ref Git 引用
|
|
5646
5647
|
* @returns 版本信息
|
|
5647
5648
|
*/
|
|
5648
|
-
async getVersion(owner, repo,
|
|
5649
|
-
const content = await this.getFileContent(owner, repo,
|
|
5649
|
+
async getVersion(owner, repo, path11 = "version.json", ref) {
|
|
5650
|
+
const content = await this.getFileContent(owner, repo, path11, ref);
|
|
5650
5651
|
try {
|
|
5651
5652
|
return JSON.parse(content);
|
|
5652
|
-
} catch (
|
|
5653
|
+
} catch (error2) {
|
|
5653
5654
|
throw new Error(
|
|
5654
|
-
`Failed to parse version.json: ${
|
|
5655
|
+
`Failed to parse version.json: ${error2 instanceof Error ? error2.message : "Unknown error"}`
|
|
5655
5656
|
);
|
|
5656
5657
|
}
|
|
5657
5658
|
}
|
|
@@ -5663,7 +5664,7 @@ var GitHubClient = class {
|
|
|
5663
5664
|
* @param ref Git 引用
|
|
5664
5665
|
* @returns 所有文件的数组
|
|
5665
5666
|
*/
|
|
5666
|
-
async fetchDirectory(owner, repo,
|
|
5667
|
+
async fetchDirectory(owner, repo, path11 = "", ref) {
|
|
5667
5668
|
const results = [];
|
|
5668
5669
|
const fetchRecursive = async (currentPath) => {
|
|
5669
5670
|
const contents = await this.getContents(owner, repo, currentPath, ref);
|
|
@@ -5675,7 +5676,7 @@ var GitHubClient = class {
|
|
|
5675
5676
|
}
|
|
5676
5677
|
}
|
|
5677
5678
|
};
|
|
5678
|
-
await fetchRecursive(
|
|
5679
|
+
await fetchRecursive(path11);
|
|
5679
5680
|
return results;
|
|
5680
5681
|
}
|
|
5681
5682
|
/**
|
|
@@ -5688,11 +5689,11 @@ var GitHubClient = class {
|
|
|
5688
5689
|
try {
|
|
5689
5690
|
await this.getContents(owner, repo, "");
|
|
5690
5691
|
return true;
|
|
5691
|
-
} catch (
|
|
5692
|
-
if (
|
|
5692
|
+
} catch (error2) {
|
|
5693
|
+
if (error2 instanceof NetworkError && error2.statusCode === 404) {
|
|
5693
5694
|
return false;
|
|
5694
5695
|
}
|
|
5695
|
-
throw
|
|
5696
|
+
throw error2;
|
|
5696
5697
|
}
|
|
5697
5698
|
}
|
|
5698
5699
|
/**
|
|
@@ -5703,15 +5704,15 @@ var GitHubClient = class {
|
|
|
5703
5704
|
* @param ref Git 引用
|
|
5704
5705
|
* @returns 如果路径存在返回 true
|
|
5705
5706
|
*/
|
|
5706
|
-
async pathExists(owner, repo,
|
|
5707
|
+
async pathExists(owner, repo, path11, ref) {
|
|
5707
5708
|
try {
|
|
5708
|
-
await this.getContents(owner, repo,
|
|
5709
|
+
await this.getContents(owner, repo, path11, ref);
|
|
5709
5710
|
return true;
|
|
5710
|
-
} catch (
|
|
5711
|
-
if (
|
|
5711
|
+
} catch (error2) {
|
|
5712
|
+
if (error2 instanceof NetworkError && error2.statusCode === 404) {
|
|
5712
5713
|
return false;
|
|
5713
5714
|
}
|
|
5714
|
-
throw
|
|
5715
|
+
throw error2;
|
|
5715
5716
|
}
|
|
5716
5717
|
}
|
|
5717
5718
|
};
|
|
@@ -5744,13 +5745,17 @@ var DEFAULT_PROJECT_CONFIG = {
|
|
|
5744
5745
|
var TemplateManager = class {
|
|
5745
5746
|
githubClient;
|
|
5746
5747
|
repoOwner;
|
|
5748
|
+
repoName;
|
|
5747
5749
|
templatePath;
|
|
5748
5750
|
branch;
|
|
5749
5751
|
cacheDir;
|
|
5750
5752
|
verbose;
|
|
5751
5753
|
constructor(config = {}) {
|
|
5752
5754
|
this.githubClient = config.githubClient ?? new GitHubClient();
|
|
5753
|
-
|
|
5755
|
+
const repoConfig = config.repoOwner ?? `${DEFAULT_REPO_OWNER}/${DEFAULT_REPO_NAME}`;
|
|
5756
|
+
const parts = repoConfig.split("/");
|
|
5757
|
+
this.repoOwner = parts[0] ?? DEFAULT_REPO_OWNER;
|
|
5758
|
+
this.repoName = parts[1] ?? DEFAULT_REPO_NAME;
|
|
5754
5759
|
this.templatePath = config.templatePath ?? DEFAULT_TEMPLATE_PATH;
|
|
5755
5760
|
this.branch = config.branch ?? DEFAULT_BRANCH;
|
|
5756
5761
|
this.verbose = config.verbose ?? false;
|
|
@@ -5768,7 +5773,7 @@ var TemplateManager = class {
|
|
|
5768
5773
|
* @returns 模板缓存目录路径
|
|
5769
5774
|
*/
|
|
5770
5775
|
getTemplateCachePath() {
|
|
5771
|
-
return path7.join(this.cacheDir, this.repoOwner, this.templatePath);
|
|
5776
|
+
return path7.join(this.cacheDir, this.repoOwner, this.repoName, this.templatePath);
|
|
5772
5777
|
}
|
|
5773
5778
|
/**
|
|
5774
5779
|
* 获取版本缓存文件路径
|
|
@@ -5784,7 +5789,7 @@ var TemplateManager = class {
|
|
|
5784
5789
|
*/
|
|
5785
5790
|
async fetchTemplate(force = false) {
|
|
5786
5791
|
if (this.verbose) {
|
|
5787
|
-
logger.debug(`Fetching template from ${this.repoOwner}/${this.templatePath}`);
|
|
5792
|
+
logger.debug(`Fetching template from ${this.repoOwner}/${this.repoName}/${this.templatePath}`);
|
|
5788
5793
|
}
|
|
5789
5794
|
const cachePath = this.getTemplateCachePath();
|
|
5790
5795
|
const cacheExists = await pathExists(cachePath);
|
|
@@ -5801,12 +5806,12 @@ var TemplateManager = class {
|
|
|
5801
5806
|
await ensureDir(cachePath);
|
|
5802
5807
|
const files = await this.githubClient.fetchDirectory(
|
|
5803
5808
|
this.repoOwner,
|
|
5809
|
+
this.repoName,
|
|
5804
5810
|
this.templatePath,
|
|
5805
|
-
"",
|
|
5806
5811
|
this.branch
|
|
5807
5812
|
);
|
|
5808
5813
|
if (files.length === 0) {
|
|
5809
|
-
logger.warn(`No files found in ${this.repoOwner}/${this.templatePath}`);
|
|
5814
|
+
logger.warn(`No files found in ${this.repoOwner}/${this.repoName}/${this.templatePath}`);
|
|
5810
5815
|
return 0;
|
|
5811
5816
|
}
|
|
5812
5817
|
let downloaded = 0;
|
|
@@ -5815,7 +5820,7 @@ var TemplateManager = class {
|
|
|
5815
5820
|
try {
|
|
5816
5821
|
const content = await this.githubClient.getFileContent(
|
|
5817
5822
|
this.repoOwner,
|
|
5818
|
-
this.
|
|
5823
|
+
this.repoName,
|
|
5819
5824
|
file.path,
|
|
5820
5825
|
this.branch
|
|
5821
5826
|
);
|
|
@@ -5827,9 +5832,9 @@ var TemplateManager = class {
|
|
|
5827
5832
|
if (this.verbose) {
|
|
5828
5833
|
logger.debug(`Downloaded: ${relativePath}`);
|
|
5829
5834
|
}
|
|
5830
|
-
} catch (
|
|
5835
|
+
} catch (error2) {
|
|
5831
5836
|
logger.warn(
|
|
5832
|
-
`Failed to download ${file.path}: ${
|
|
5837
|
+
`Failed to download ${file.path}: ${error2 instanceof Error ? error2.message : "Unknown error"}`
|
|
5833
5838
|
);
|
|
5834
5839
|
}
|
|
5835
5840
|
}
|
|
@@ -5847,10 +5852,10 @@ var TemplateManager = class {
|
|
|
5847
5852
|
const versionPath = this.getVersionCachePath();
|
|
5848
5853
|
await ensureFileDir(versionPath);
|
|
5849
5854
|
await writeFile(versionPath, JSON.stringify(versionInfo, null, 2));
|
|
5850
|
-
} catch (
|
|
5855
|
+
} catch (error2) {
|
|
5851
5856
|
if (this.verbose) {
|
|
5852
5857
|
logger.debug(
|
|
5853
|
-
`Failed to cache version info: ${
|
|
5858
|
+
`Failed to cache version info: ${error2 instanceof Error ? error2.message : "Unknown error"}`
|
|
5854
5859
|
);
|
|
5855
5860
|
}
|
|
5856
5861
|
}
|
|
@@ -5862,7 +5867,7 @@ var TemplateManager = class {
|
|
|
5862
5867
|
async getTemplateVersion() {
|
|
5863
5868
|
return this.githubClient.getVersion(
|
|
5864
5869
|
this.repoOwner,
|
|
5865
|
-
this.
|
|
5870
|
+
this.repoName,
|
|
5866
5871
|
"version.json",
|
|
5867
5872
|
this.branch
|
|
5868
5873
|
);
|
|
@@ -6045,9 +6050,9 @@ var DiffManager = class {
|
|
|
6045
6050
|
const content = await readFile(metadataPath);
|
|
6046
6051
|
const metadata = JSON.parse(content);
|
|
6047
6052
|
return metadata;
|
|
6048
|
-
} catch (
|
|
6053
|
+
} catch (error2) {
|
|
6049
6054
|
throw new Error(
|
|
6050
|
-
`\u5143\u6570\u636E\u6587\u4EF6\u89E3\u6790\u5931\u8D25: ${
|
|
6055
|
+
`\u5143\u6570\u636E\u6587\u4EF6\u89E3\u6790\u5931\u8D25: ${error2 instanceof Error ? error2.message : String(error2)}`
|
|
6051
6056
|
);
|
|
6052
6057
|
}
|
|
6053
6058
|
}
|
|
@@ -6462,9 +6467,9 @@ var UpdateCommand = class _UpdateCommand {
|
|
|
6462
6467
|
console.error(`\u66F4\u65B0\u5931\u8D25: ${result.error}`);
|
|
6463
6468
|
return 1;
|
|
6464
6469
|
}
|
|
6465
|
-
} catch (
|
|
6470
|
+
} catch (error2) {
|
|
6466
6471
|
console.error(
|
|
6467
|
-
`\u66F4\u65B0\u8FC7\u7A0B\u4E2D\u53D1\u751F\u9519\u8BEF: ${
|
|
6472
|
+
`\u66F4\u65B0\u8FC7\u7A0B\u4E2D\u53D1\u751F\u9519\u8BEF: ${error2 instanceof Error ? error2.message : String(error2)}`
|
|
6468
6473
|
);
|
|
6469
6474
|
return 1;
|
|
6470
6475
|
}
|
|
@@ -6492,9 +6497,9 @@ var UpdateCommand = class _UpdateCommand {
|
|
|
6492
6497
|
remoteVersion: remoteMeta.version,
|
|
6493
6498
|
changelog: remoteMeta.changelog
|
|
6494
6499
|
};
|
|
6495
|
-
} catch (
|
|
6500
|
+
} catch (error2) {
|
|
6496
6501
|
if (this.verbose) {
|
|
6497
|
-
logger.debug(`\u68C0\u67E5\u66F4\u65B0\u5931\u8D25: ${
|
|
6502
|
+
logger.debug(`\u68C0\u67E5\u66F4\u65B0\u5931\u8D25: ${error2 instanceof Error ? error2.message : String(error2)}`);
|
|
6498
6503
|
}
|
|
6499
6504
|
return {
|
|
6500
6505
|
hasUpdate: false,
|
|
@@ -6753,8 +6758,8 @@ ${WARN_CONFLICT_DETECTED}`);
|
|
|
6753
6758
|
lastUpdated: (/* @__PURE__ */ new Date()).toISOString()
|
|
6754
6759
|
});
|
|
6755
6760
|
result.success = true;
|
|
6756
|
-
} catch (
|
|
6757
|
-
result.error =
|
|
6761
|
+
} catch (error2) {
|
|
6762
|
+
result.error = error2 instanceof Error ? error2.message : String(error2);
|
|
6758
6763
|
}
|
|
6759
6764
|
return result;
|
|
6760
6765
|
}
|
|
@@ -6804,11 +6809,3113 @@ ${WARN_CONFLICT_DETECTED}`);
|
|
|
6804
6809
|
}
|
|
6805
6810
|
};
|
|
6806
6811
|
|
|
6807
|
-
// src/commands/
|
|
6808
|
-
|
|
6809
|
-
|
|
6810
|
-
|
|
6812
|
+
// src/commands/init.ts
|
|
6813
|
+
init_esm_shims();
|
|
6814
|
+
import path10 from "path";
|
|
6815
|
+
import { exec } from "child_process";
|
|
6816
|
+
import { promisify } from "util";
|
|
6817
|
+
|
|
6818
|
+
// src/utils/spinner.ts
|
|
6819
|
+
init_esm_shims();
|
|
6820
|
+
|
|
6821
|
+
// node_modules/ora/index.js
|
|
6822
|
+
init_esm_shims();
|
|
6823
|
+
import process8 from "process";
|
|
6824
|
+
import { stripVTControlCharacters } from "util";
|
|
6825
|
+
|
|
6826
|
+
// node_modules/cli-cursor/index.js
|
|
6827
|
+
init_esm_shims();
|
|
6828
|
+
import process5 from "process";
|
|
6829
|
+
|
|
6830
|
+
// node_modules/restore-cursor/index.js
|
|
6831
|
+
init_esm_shims();
|
|
6832
|
+
import process4 from "process";
|
|
6833
|
+
|
|
6834
|
+
// node_modules/onetime/index.js
|
|
6835
|
+
init_esm_shims();
|
|
6836
|
+
|
|
6837
|
+
// node_modules/mimic-function/index.js
|
|
6838
|
+
init_esm_shims();
|
|
6839
|
+
var copyProperty = (to, from, property, ignoreNonConfigurable) => {
|
|
6840
|
+
if (property === "length" || property === "prototype") {
|
|
6841
|
+
return;
|
|
6842
|
+
}
|
|
6843
|
+
if (property === "arguments" || property === "caller") {
|
|
6844
|
+
return;
|
|
6845
|
+
}
|
|
6846
|
+
const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
|
|
6847
|
+
const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
|
|
6848
|
+
if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
|
|
6849
|
+
return;
|
|
6850
|
+
}
|
|
6851
|
+
Object.defineProperty(to, property, fromDescriptor);
|
|
6852
|
+
};
|
|
6853
|
+
var canCopyProperty = function(toDescriptor, fromDescriptor) {
|
|
6854
|
+
return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
|
|
6855
|
+
};
|
|
6856
|
+
var changePrototype = (to, from) => {
|
|
6857
|
+
const fromPrototype = Object.getPrototypeOf(from);
|
|
6858
|
+
if (fromPrototype === Object.getPrototypeOf(to)) {
|
|
6859
|
+
return;
|
|
6860
|
+
}
|
|
6861
|
+
Object.setPrototypeOf(to, fromPrototype);
|
|
6862
|
+
};
|
|
6863
|
+
var wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
|
|
6864
|
+
${fromBody}`;
|
|
6865
|
+
var toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
|
|
6866
|
+
var toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
|
|
6867
|
+
var changeToString = (to, from, name) => {
|
|
6868
|
+
const withName = name === "" ? "" : `with ${name.trim()}() `;
|
|
6869
|
+
const newToString = wrappedToString.bind(null, withName, from.toString());
|
|
6870
|
+
Object.defineProperty(newToString, "name", toStringName);
|
|
6871
|
+
const { writable, enumerable, configurable } = toStringDescriptor;
|
|
6872
|
+
Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
|
|
6873
|
+
};
|
|
6874
|
+
function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
|
|
6875
|
+
const { name } = to;
|
|
6876
|
+
for (const property of Reflect.ownKeys(from)) {
|
|
6877
|
+
copyProperty(to, from, property, ignoreNonConfigurable);
|
|
6878
|
+
}
|
|
6879
|
+
changePrototype(to, from);
|
|
6880
|
+
changeToString(to, from, name);
|
|
6881
|
+
return to;
|
|
6882
|
+
}
|
|
6883
|
+
|
|
6884
|
+
// node_modules/onetime/index.js
|
|
6885
|
+
var calledFunctions = /* @__PURE__ */ new WeakMap();
|
|
6886
|
+
var onetime = (function_, options2 = {}) => {
|
|
6887
|
+
if (typeof function_ !== "function") {
|
|
6888
|
+
throw new TypeError("Expected a function");
|
|
6889
|
+
}
|
|
6890
|
+
let returnValue;
|
|
6891
|
+
let callCount = 0;
|
|
6892
|
+
const functionName = function_.displayName || function_.name || "<anonymous>";
|
|
6893
|
+
const onetime2 = function(...arguments_) {
|
|
6894
|
+
calledFunctions.set(onetime2, ++callCount);
|
|
6895
|
+
if (callCount === 1) {
|
|
6896
|
+
returnValue = function_.apply(this, arguments_);
|
|
6897
|
+
function_ = void 0;
|
|
6898
|
+
} else if (options2.throw === true) {
|
|
6899
|
+
throw new Error(`Function \`${functionName}\` can only be called once`);
|
|
6900
|
+
}
|
|
6901
|
+
return returnValue;
|
|
6902
|
+
};
|
|
6903
|
+
mimicFunction(onetime2, function_);
|
|
6904
|
+
calledFunctions.set(onetime2, callCount);
|
|
6905
|
+
return onetime2;
|
|
6906
|
+
};
|
|
6907
|
+
onetime.callCount = (function_) => {
|
|
6908
|
+
if (!calledFunctions.has(function_)) {
|
|
6909
|
+
throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
|
|
6910
|
+
}
|
|
6911
|
+
return calledFunctions.get(function_);
|
|
6912
|
+
};
|
|
6913
|
+
var onetime_default = onetime;
|
|
6914
|
+
|
|
6915
|
+
// node_modules/signal-exit/dist/mjs/index.js
|
|
6916
|
+
init_esm_shims();
|
|
6917
|
+
|
|
6918
|
+
// node_modules/signal-exit/dist/mjs/signals.js
|
|
6919
|
+
init_esm_shims();
|
|
6920
|
+
var signals = [];
|
|
6921
|
+
signals.push("SIGHUP", "SIGINT", "SIGTERM");
|
|
6922
|
+
if (process.platform !== "win32") {
|
|
6923
|
+
signals.push(
|
|
6924
|
+
"SIGALRM",
|
|
6925
|
+
"SIGABRT",
|
|
6926
|
+
"SIGVTALRM",
|
|
6927
|
+
"SIGXCPU",
|
|
6928
|
+
"SIGXFSZ",
|
|
6929
|
+
"SIGUSR2",
|
|
6930
|
+
"SIGTRAP",
|
|
6931
|
+
"SIGSYS",
|
|
6932
|
+
"SIGQUIT",
|
|
6933
|
+
"SIGIOT"
|
|
6934
|
+
// should detect profiler and enable/disable accordingly.
|
|
6935
|
+
// see #21
|
|
6936
|
+
// 'SIGPROF'
|
|
6937
|
+
);
|
|
6938
|
+
}
|
|
6939
|
+
if (process.platform === "linux") {
|
|
6940
|
+
signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
|
|
6941
|
+
}
|
|
6942
|
+
|
|
6943
|
+
// node_modules/signal-exit/dist/mjs/index.js
|
|
6944
|
+
var processOk = (process9) => !!process9 && typeof process9 === "object" && typeof process9.removeListener === "function" && typeof process9.emit === "function" && typeof process9.reallyExit === "function" && typeof process9.listeners === "function" && typeof process9.kill === "function" && typeof process9.pid === "number" && typeof process9.on === "function";
|
|
6945
|
+
var kExitEmitter = /* @__PURE__ */ Symbol.for("signal-exit emitter");
|
|
6946
|
+
var global = globalThis;
|
|
6947
|
+
var ObjectDefineProperty = Object.defineProperty.bind(Object);
|
|
6948
|
+
var Emitter = class {
|
|
6949
|
+
emitted = {
|
|
6950
|
+
afterExit: false,
|
|
6951
|
+
exit: false
|
|
6952
|
+
};
|
|
6953
|
+
listeners = {
|
|
6954
|
+
afterExit: [],
|
|
6955
|
+
exit: []
|
|
6956
|
+
};
|
|
6957
|
+
count = 0;
|
|
6958
|
+
id = Math.random();
|
|
6959
|
+
constructor() {
|
|
6960
|
+
if (global[kExitEmitter]) {
|
|
6961
|
+
return global[kExitEmitter];
|
|
6962
|
+
}
|
|
6963
|
+
ObjectDefineProperty(global, kExitEmitter, {
|
|
6964
|
+
value: this,
|
|
6965
|
+
writable: false,
|
|
6966
|
+
enumerable: false,
|
|
6967
|
+
configurable: false
|
|
6968
|
+
});
|
|
6969
|
+
}
|
|
6970
|
+
on(ev, fn) {
|
|
6971
|
+
this.listeners[ev].push(fn);
|
|
6972
|
+
}
|
|
6973
|
+
removeListener(ev, fn) {
|
|
6974
|
+
const list = this.listeners[ev];
|
|
6975
|
+
const i = list.indexOf(fn);
|
|
6976
|
+
if (i === -1) {
|
|
6977
|
+
return;
|
|
6978
|
+
}
|
|
6979
|
+
if (i === 0 && list.length === 1) {
|
|
6980
|
+
list.length = 0;
|
|
6981
|
+
} else {
|
|
6982
|
+
list.splice(i, 1);
|
|
6983
|
+
}
|
|
6984
|
+
}
|
|
6985
|
+
emit(ev, code, signal) {
|
|
6986
|
+
if (this.emitted[ev]) {
|
|
6987
|
+
return false;
|
|
6988
|
+
}
|
|
6989
|
+
this.emitted[ev] = true;
|
|
6990
|
+
let ret = false;
|
|
6991
|
+
for (const fn of this.listeners[ev]) {
|
|
6992
|
+
ret = fn(code, signal) === true || ret;
|
|
6993
|
+
}
|
|
6994
|
+
if (ev === "exit") {
|
|
6995
|
+
ret = this.emit("afterExit", code, signal) || ret;
|
|
6996
|
+
}
|
|
6997
|
+
return ret;
|
|
6998
|
+
}
|
|
6999
|
+
};
|
|
7000
|
+
var SignalExitBase = class {
|
|
7001
|
+
};
|
|
7002
|
+
var signalExitWrap = (handler) => {
|
|
7003
|
+
return {
|
|
7004
|
+
onExit(cb, opts) {
|
|
7005
|
+
return handler.onExit(cb, opts);
|
|
7006
|
+
},
|
|
7007
|
+
load() {
|
|
7008
|
+
return handler.load();
|
|
7009
|
+
},
|
|
7010
|
+
unload() {
|
|
7011
|
+
return handler.unload();
|
|
7012
|
+
}
|
|
7013
|
+
};
|
|
7014
|
+
};
|
|
7015
|
+
var SignalExitFallback = class extends SignalExitBase {
|
|
7016
|
+
onExit() {
|
|
7017
|
+
return () => {
|
|
7018
|
+
};
|
|
7019
|
+
}
|
|
7020
|
+
load() {
|
|
7021
|
+
}
|
|
7022
|
+
unload() {
|
|
7023
|
+
}
|
|
7024
|
+
};
|
|
7025
|
+
var SignalExit = class extends SignalExitBase {
|
|
7026
|
+
// "SIGHUP" throws an `ENOSYS` error on Windows,
|
|
7027
|
+
// so use a supported signal instead
|
|
7028
|
+
/* c8 ignore start */
|
|
7029
|
+
#hupSig = process3.platform === "win32" ? "SIGINT" : "SIGHUP";
|
|
7030
|
+
/* c8 ignore stop */
|
|
7031
|
+
#emitter = new Emitter();
|
|
7032
|
+
#process;
|
|
7033
|
+
#originalProcessEmit;
|
|
7034
|
+
#originalProcessReallyExit;
|
|
7035
|
+
#sigListeners = {};
|
|
7036
|
+
#loaded = false;
|
|
7037
|
+
constructor(process9) {
|
|
7038
|
+
super();
|
|
7039
|
+
this.#process = process9;
|
|
7040
|
+
this.#sigListeners = {};
|
|
7041
|
+
for (const sig of signals) {
|
|
7042
|
+
this.#sigListeners[sig] = () => {
|
|
7043
|
+
const listeners = this.#process.listeners(sig);
|
|
7044
|
+
let { count } = this.#emitter;
|
|
7045
|
+
const p = process9;
|
|
7046
|
+
if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
|
|
7047
|
+
count += p.__signal_exit_emitter__.count;
|
|
7048
|
+
}
|
|
7049
|
+
if (listeners.length === count) {
|
|
7050
|
+
this.unload();
|
|
7051
|
+
const ret = this.#emitter.emit("exit", null, sig);
|
|
7052
|
+
const s = sig === "SIGHUP" ? this.#hupSig : sig;
|
|
7053
|
+
if (!ret)
|
|
7054
|
+
process9.kill(process9.pid, s);
|
|
7055
|
+
}
|
|
7056
|
+
};
|
|
7057
|
+
}
|
|
7058
|
+
this.#originalProcessReallyExit = process9.reallyExit;
|
|
7059
|
+
this.#originalProcessEmit = process9.emit;
|
|
7060
|
+
}
|
|
7061
|
+
onExit(cb, opts) {
|
|
7062
|
+
if (!processOk(this.#process)) {
|
|
7063
|
+
return () => {
|
|
7064
|
+
};
|
|
7065
|
+
}
|
|
7066
|
+
if (this.#loaded === false) {
|
|
7067
|
+
this.load();
|
|
7068
|
+
}
|
|
7069
|
+
const ev = opts?.alwaysLast ? "afterExit" : "exit";
|
|
7070
|
+
this.#emitter.on(ev, cb);
|
|
7071
|
+
return () => {
|
|
7072
|
+
this.#emitter.removeListener(ev, cb);
|
|
7073
|
+
if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
|
|
7074
|
+
this.unload();
|
|
7075
|
+
}
|
|
7076
|
+
};
|
|
7077
|
+
}
|
|
7078
|
+
load() {
|
|
7079
|
+
if (this.#loaded) {
|
|
7080
|
+
return;
|
|
7081
|
+
}
|
|
7082
|
+
this.#loaded = true;
|
|
7083
|
+
this.#emitter.count += 1;
|
|
7084
|
+
for (const sig of signals) {
|
|
7085
|
+
try {
|
|
7086
|
+
const fn = this.#sigListeners[sig];
|
|
7087
|
+
if (fn)
|
|
7088
|
+
this.#process.on(sig, fn);
|
|
7089
|
+
} catch (_) {
|
|
7090
|
+
}
|
|
7091
|
+
}
|
|
7092
|
+
this.#process.emit = (ev, ...a) => {
|
|
7093
|
+
return this.#processEmit(ev, ...a);
|
|
7094
|
+
};
|
|
7095
|
+
this.#process.reallyExit = (code) => {
|
|
7096
|
+
return this.#processReallyExit(code);
|
|
7097
|
+
};
|
|
7098
|
+
}
|
|
7099
|
+
unload() {
|
|
7100
|
+
if (!this.#loaded) {
|
|
7101
|
+
return;
|
|
7102
|
+
}
|
|
7103
|
+
this.#loaded = false;
|
|
7104
|
+
signals.forEach((sig) => {
|
|
7105
|
+
const listener = this.#sigListeners[sig];
|
|
7106
|
+
if (!listener) {
|
|
7107
|
+
throw new Error("Listener not defined for signal: " + sig);
|
|
7108
|
+
}
|
|
7109
|
+
try {
|
|
7110
|
+
this.#process.removeListener(sig, listener);
|
|
7111
|
+
} catch (_) {
|
|
7112
|
+
}
|
|
7113
|
+
});
|
|
7114
|
+
this.#process.emit = this.#originalProcessEmit;
|
|
7115
|
+
this.#process.reallyExit = this.#originalProcessReallyExit;
|
|
7116
|
+
this.#emitter.count -= 1;
|
|
7117
|
+
}
|
|
7118
|
+
#processReallyExit(code) {
|
|
7119
|
+
if (!processOk(this.#process)) {
|
|
7120
|
+
return 0;
|
|
7121
|
+
}
|
|
7122
|
+
this.#process.exitCode = code || 0;
|
|
7123
|
+
this.#emitter.emit("exit", this.#process.exitCode, null);
|
|
7124
|
+
return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
|
|
7125
|
+
}
|
|
7126
|
+
#processEmit(ev, ...args) {
|
|
7127
|
+
const og = this.#originalProcessEmit;
|
|
7128
|
+
if (ev === "exit" && processOk(this.#process)) {
|
|
7129
|
+
if (typeof args[0] === "number") {
|
|
7130
|
+
this.#process.exitCode = args[0];
|
|
7131
|
+
}
|
|
7132
|
+
const ret = og.call(this.#process, ev, ...args);
|
|
7133
|
+
this.#emitter.emit("exit", this.#process.exitCode, null);
|
|
7134
|
+
return ret;
|
|
7135
|
+
} else {
|
|
7136
|
+
return og.call(this.#process, ev, ...args);
|
|
7137
|
+
}
|
|
7138
|
+
}
|
|
7139
|
+
};
|
|
7140
|
+
var process3 = globalThis.process;
|
|
7141
|
+
var {
|
|
7142
|
+
/**
|
|
7143
|
+
* Called when the process is exiting, whether via signal, explicit
|
|
7144
|
+
* exit, or running out of stuff to do.
|
|
7145
|
+
*
|
|
7146
|
+
* If the global process object is not suitable for instrumentation,
|
|
7147
|
+
* then this will be a no-op.
|
|
7148
|
+
*
|
|
7149
|
+
* Returns a function that may be used to unload signal-exit.
|
|
7150
|
+
*/
|
|
7151
|
+
onExit,
|
|
7152
|
+
/**
|
|
7153
|
+
* Load the listeners. Likely you never need to call this, unless
|
|
7154
|
+
* doing a rather deep integration with signal-exit functionality.
|
|
7155
|
+
* Mostly exposed for the benefit of testing.
|
|
7156
|
+
*
|
|
7157
|
+
* @internal
|
|
7158
|
+
*/
|
|
7159
|
+
load,
|
|
7160
|
+
/**
|
|
7161
|
+
* Unload the listeners. Likely you never need to call this, unless
|
|
7162
|
+
* doing a rather deep integration with signal-exit functionality.
|
|
7163
|
+
* Mostly exposed for the benefit of testing.
|
|
7164
|
+
*
|
|
7165
|
+
* @internal
|
|
7166
|
+
*/
|
|
7167
|
+
unload
|
|
7168
|
+
} = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback());
|
|
7169
|
+
|
|
7170
|
+
// node_modules/restore-cursor/index.js
|
|
7171
|
+
var terminal = process4.stderr.isTTY ? process4.stderr : process4.stdout.isTTY ? process4.stdout : void 0;
|
|
7172
|
+
var restoreCursor = terminal ? onetime_default(() => {
|
|
7173
|
+
onExit(() => {
|
|
7174
|
+
terminal.write("\x1B[?25h");
|
|
7175
|
+
}, { alwaysLast: true });
|
|
7176
|
+
}) : () => {
|
|
7177
|
+
};
|
|
7178
|
+
var restore_cursor_default = restoreCursor;
|
|
7179
|
+
|
|
7180
|
+
// node_modules/cli-cursor/index.js
|
|
7181
|
+
var isHidden = false;
|
|
7182
|
+
var cliCursor = {};
|
|
7183
|
+
cliCursor.show = (writableStream = process5.stderr) => {
|
|
7184
|
+
if (!writableStream.isTTY) {
|
|
7185
|
+
return;
|
|
7186
|
+
}
|
|
7187
|
+
isHidden = false;
|
|
7188
|
+
writableStream.write("\x1B[?25h");
|
|
7189
|
+
};
|
|
7190
|
+
cliCursor.hide = (writableStream = process5.stderr) => {
|
|
7191
|
+
if (!writableStream.isTTY) {
|
|
7192
|
+
return;
|
|
7193
|
+
}
|
|
7194
|
+
restore_cursor_default();
|
|
7195
|
+
isHidden = true;
|
|
7196
|
+
writableStream.write("\x1B[?25l");
|
|
7197
|
+
};
|
|
7198
|
+
cliCursor.toggle = (force, writableStream) => {
|
|
7199
|
+
if (force !== void 0) {
|
|
7200
|
+
isHidden = force;
|
|
7201
|
+
}
|
|
7202
|
+
if (isHidden) {
|
|
7203
|
+
cliCursor.show(writableStream);
|
|
7204
|
+
} else {
|
|
7205
|
+
cliCursor.hide(writableStream);
|
|
7206
|
+
}
|
|
7207
|
+
};
|
|
7208
|
+
var cli_cursor_default = cliCursor;
|
|
7209
|
+
|
|
7210
|
+
// node_modules/cli-spinners/index.js
|
|
7211
|
+
init_esm_shims();
|
|
7212
|
+
|
|
7213
|
+
// node_modules/cli-spinners/spinners.json
|
|
7214
|
+
var spinners_default = {
|
|
7215
|
+
dots: {
|
|
7216
|
+
interval: 80,
|
|
7217
|
+
frames: [
|
|
7218
|
+
"\u280B",
|
|
7219
|
+
"\u2819",
|
|
7220
|
+
"\u2839",
|
|
7221
|
+
"\u2838",
|
|
7222
|
+
"\u283C",
|
|
7223
|
+
"\u2834",
|
|
7224
|
+
"\u2826",
|
|
7225
|
+
"\u2827",
|
|
7226
|
+
"\u2807",
|
|
7227
|
+
"\u280F"
|
|
7228
|
+
]
|
|
7229
|
+
},
|
|
7230
|
+
dots2: {
|
|
7231
|
+
interval: 80,
|
|
7232
|
+
frames: [
|
|
7233
|
+
"\u28FE",
|
|
7234
|
+
"\u28FD",
|
|
7235
|
+
"\u28FB",
|
|
7236
|
+
"\u28BF",
|
|
7237
|
+
"\u287F",
|
|
7238
|
+
"\u28DF",
|
|
7239
|
+
"\u28EF",
|
|
7240
|
+
"\u28F7"
|
|
7241
|
+
]
|
|
7242
|
+
},
|
|
7243
|
+
dots3: {
|
|
7244
|
+
interval: 80,
|
|
7245
|
+
frames: [
|
|
7246
|
+
"\u280B",
|
|
7247
|
+
"\u2819",
|
|
7248
|
+
"\u281A",
|
|
7249
|
+
"\u281E",
|
|
7250
|
+
"\u2816",
|
|
7251
|
+
"\u2826",
|
|
7252
|
+
"\u2834",
|
|
7253
|
+
"\u2832",
|
|
7254
|
+
"\u2833",
|
|
7255
|
+
"\u2813"
|
|
7256
|
+
]
|
|
7257
|
+
},
|
|
7258
|
+
dots4: {
|
|
7259
|
+
interval: 80,
|
|
7260
|
+
frames: [
|
|
7261
|
+
"\u2804",
|
|
7262
|
+
"\u2806",
|
|
7263
|
+
"\u2807",
|
|
7264
|
+
"\u280B",
|
|
7265
|
+
"\u2819",
|
|
7266
|
+
"\u2838",
|
|
7267
|
+
"\u2830",
|
|
7268
|
+
"\u2820",
|
|
7269
|
+
"\u2830",
|
|
7270
|
+
"\u2838",
|
|
7271
|
+
"\u2819",
|
|
7272
|
+
"\u280B",
|
|
7273
|
+
"\u2807",
|
|
7274
|
+
"\u2806"
|
|
7275
|
+
]
|
|
7276
|
+
},
|
|
7277
|
+
dots5: {
|
|
7278
|
+
interval: 80,
|
|
7279
|
+
frames: [
|
|
7280
|
+
"\u280B",
|
|
7281
|
+
"\u2819",
|
|
7282
|
+
"\u281A",
|
|
7283
|
+
"\u2812",
|
|
7284
|
+
"\u2802",
|
|
7285
|
+
"\u2802",
|
|
7286
|
+
"\u2812",
|
|
7287
|
+
"\u2832",
|
|
7288
|
+
"\u2834",
|
|
7289
|
+
"\u2826",
|
|
7290
|
+
"\u2816",
|
|
7291
|
+
"\u2812",
|
|
7292
|
+
"\u2810",
|
|
7293
|
+
"\u2810",
|
|
7294
|
+
"\u2812",
|
|
7295
|
+
"\u2813",
|
|
7296
|
+
"\u280B"
|
|
7297
|
+
]
|
|
7298
|
+
},
|
|
7299
|
+
dots6: {
|
|
7300
|
+
interval: 80,
|
|
7301
|
+
frames: [
|
|
7302
|
+
"\u2801",
|
|
7303
|
+
"\u2809",
|
|
7304
|
+
"\u2819",
|
|
7305
|
+
"\u281A",
|
|
7306
|
+
"\u2812",
|
|
7307
|
+
"\u2802",
|
|
7308
|
+
"\u2802",
|
|
7309
|
+
"\u2812",
|
|
7310
|
+
"\u2832",
|
|
7311
|
+
"\u2834",
|
|
7312
|
+
"\u2824",
|
|
7313
|
+
"\u2804",
|
|
7314
|
+
"\u2804",
|
|
7315
|
+
"\u2824",
|
|
7316
|
+
"\u2834",
|
|
7317
|
+
"\u2832",
|
|
7318
|
+
"\u2812",
|
|
7319
|
+
"\u2802",
|
|
7320
|
+
"\u2802",
|
|
7321
|
+
"\u2812",
|
|
7322
|
+
"\u281A",
|
|
7323
|
+
"\u2819",
|
|
7324
|
+
"\u2809",
|
|
7325
|
+
"\u2801"
|
|
7326
|
+
]
|
|
7327
|
+
},
|
|
7328
|
+
dots7: {
|
|
7329
|
+
interval: 80,
|
|
7330
|
+
frames: [
|
|
7331
|
+
"\u2808",
|
|
7332
|
+
"\u2809",
|
|
7333
|
+
"\u280B",
|
|
7334
|
+
"\u2813",
|
|
7335
|
+
"\u2812",
|
|
7336
|
+
"\u2810",
|
|
7337
|
+
"\u2810",
|
|
7338
|
+
"\u2812",
|
|
7339
|
+
"\u2816",
|
|
7340
|
+
"\u2826",
|
|
7341
|
+
"\u2824",
|
|
7342
|
+
"\u2820",
|
|
7343
|
+
"\u2820",
|
|
7344
|
+
"\u2824",
|
|
7345
|
+
"\u2826",
|
|
7346
|
+
"\u2816",
|
|
7347
|
+
"\u2812",
|
|
7348
|
+
"\u2810",
|
|
7349
|
+
"\u2810",
|
|
7350
|
+
"\u2812",
|
|
7351
|
+
"\u2813",
|
|
7352
|
+
"\u280B",
|
|
7353
|
+
"\u2809",
|
|
7354
|
+
"\u2808"
|
|
7355
|
+
]
|
|
7356
|
+
},
|
|
7357
|
+
dots8: {
|
|
7358
|
+
interval: 80,
|
|
7359
|
+
frames: [
|
|
7360
|
+
"\u2801",
|
|
7361
|
+
"\u2801",
|
|
7362
|
+
"\u2809",
|
|
7363
|
+
"\u2819",
|
|
7364
|
+
"\u281A",
|
|
7365
|
+
"\u2812",
|
|
7366
|
+
"\u2802",
|
|
7367
|
+
"\u2802",
|
|
7368
|
+
"\u2812",
|
|
7369
|
+
"\u2832",
|
|
7370
|
+
"\u2834",
|
|
7371
|
+
"\u2824",
|
|
7372
|
+
"\u2804",
|
|
7373
|
+
"\u2804",
|
|
7374
|
+
"\u2824",
|
|
7375
|
+
"\u2820",
|
|
7376
|
+
"\u2820",
|
|
7377
|
+
"\u2824",
|
|
7378
|
+
"\u2826",
|
|
7379
|
+
"\u2816",
|
|
7380
|
+
"\u2812",
|
|
7381
|
+
"\u2810",
|
|
7382
|
+
"\u2810",
|
|
7383
|
+
"\u2812",
|
|
7384
|
+
"\u2813",
|
|
7385
|
+
"\u280B",
|
|
7386
|
+
"\u2809",
|
|
7387
|
+
"\u2808",
|
|
7388
|
+
"\u2808"
|
|
7389
|
+
]
|
|
7390
|
+
},
|
|
7391
|
+
dots9: {
|
|
7392
|
+
interval: 80,
|
|
7393
|
+
frames: [
|
|
7394
|
+
"\u28B9",
|
|
7395
|
+
"\u28BA",
|
|
7396
|
+
"\u28BC",
|
|
7397
|
+
"\u28F8",
|
|
7398
|
+
"\u28C7",
|
|
7399
|
+
"\u2867",
|
|
7400
|
+
"\u2857",
|
|
7401
|
+
"\u284F"
|
|
7402
|
+
]
|
|
7403
|
+
},
|
|
7404
|
+
dots10: {
|
|
7405
|
+
interval: 80,
|
|
7406
|
+
frames: [
|
|
7407
|
+
"\u2884",
|
|
7408
|
+
"\u2882",
|
|
7409
|
+
"\u2881",
|
|
7410
|
+
"\u2841",
|
|
7411
|
+
"\u2848",
|
|
7412
|
+
"\u2850",
|
|
7413
|
+
"\u2860"
|
|
7414
|
+
]
|
|
7415
|
+
},
|
|
7416
|
+
dots11: {
|
|
7417
|
+
interval: 100,
|
|
7418
|
+
frames: [
|
|
7419
|
+
"\u2801",
|
|
7420
|
+
"\u2802",
|
|
7421
|
+
"\u2804",
|
|
7422
|
+
"\u2840",
|
|
7423
|
+
"\u2880",
|
|
7424
|
+
"\u2820",
|
|
7425
|
+
"\u2810",
|
|
7426
|
+
"\u2808"
|
|
7427
|
+
]
|
|
7428
|
+
},
|
|
7429
|
+
dots12: {
|
|
7430
|
+
interval: 80,
|
|
7431
|
+
frames: [
|
|
7432
|
+
"\u2880\u2800",
|
|
7433
|
+
"\u2840\u2800",
|
|
7434
|
+
"\u2804\u2800",
|
|
7435
|
+
"\u2882\u2800",
|
|
7436
|
+
"\u2842\u2800",
|
|
7437
|
+
"\u2805\u2800",
|
|
7438
|
+
"\u2883\u2800",
|
|
7439
|
+
"\u2843\u2800",
|
|
7440
|
+
"\u280D\u2800",
|
|
7441
|
+
"\u288B\u2800",
|
|
7442
|
+
"\u284B\u2800",
|
|
7443
|
+
"\u280D\u2801",
|
|
7444
|
+
"\u288B\u2801",
|
|
7445
|
+
"\u284B\u2801",
|
|
7446
|
+
"\u280D\u2809",
|
|
7447
|
+
"\u280B\u2809",
|
|
7448
|
+
"\u280B\u2809",
|
|
7449
|
+
"\u2809\u2819",
|
|
7450
|
+
"\u2809\u2819",
|
|
7451
|
+
"\u2809\u2829",
|
|
7452
|
+
"\u2808\u2899",
|
|
7453
|
+
"\u2808\u2859",
|
|
7454
|
+
"\u2888\u2829",
|
|
7455
|
+
"\u2840\u2899",
|
|
7456
|
+
"\u2804\u2859",
|
|
7457
|
+
"\u2882\u2829",
|
|
7458
|
+
"\u2842\u2898",
|
|
7459
|
+
"\u2805\u2858",
|
|
7460
|
+
"\u2883\u2828",
|
|
7461
|
+
"\u2843\u2890",
|
|
7462
|
+
"\u280D\u2850",
|
|
7463
|
+
"\u288B\u2820",
|
|
7464
|
+
"\u284B\u2880",
|
|
7465
|
+
"\u280D\u2841",
|
|
7466
|
+
"\u288B\u2801",
|
|
7467
|
+
"\u284B\u2801",
|
|
7468
|
+
"\u280D\u2809",
|
|
7469
|
+
"\u280B\u2809",
|
|
7470
|
+
"\u280B\u2809",
|
|
7471
|
+
"\u2809\u2819",
|
|
7472
|
+
"\u2809\u2819",
|
|
7473
|
+
"\u2809\u2829",
|
|
7474
|
+
"\u2808\u2899",
|
|
7475
|
+
"\u2808\u2859",
|
|
7476
|
+
"\u2808\u2829",
|
|
7477
|
+
"\u2800\u2899",
|
|
7478
|
+
"\u2800\u2859",
|
|
7479
|
+
"\u2800\u2829",
|
|
7480
|
+
"\u2800\u2898",
|
|
7481
|
+
"\u2800\u2858",
|
|
7482
|
+
"\u2800\u2828",
|
|
7483
|
+
"\u2800\u2890",
|
|
7484
|
+
"\u2800\u2850",
|
|
7485
|
+
"\u2800\u2820",
|
|
7486
|
+
"\u2800\u2880",
|
|
7487
|
+
"\u2800\u2840"
|
|
7488
|
+
]
|
|
7489
|
+
},
|
|
7490
|
+
dots13: {
|
|
7491
|
+
interval: 80,
|
|
7492
|
+
frames: [
|
|
7493
|
+
"\u28FC",
|
|
7494
|
+
"\u28F9",
|
|
7495
|
+
"\u28BB",
|
|
7496
|
+
"\u283F",
|
|
7497
|
+
"\u285F",
|
|
7498
|
+
"\u28CF",
|
|
7499
|
+
"\u28E7",
|
|
7500
|
+
"\u28F6"
|
|
7501
|
+
]
|
|
7502
|
+
},
|
|
7503
|
+
dots14: {
|
|
7504
|
+
interval: 80,
|
|
7505
|
+
frames: [
|
|
7506
|
+
"\u2809\u2809",
|
|
7507
|
+
"\u2808\u2819",
|
|
7508
|
+
"\u2800\u2839",
|
|
7509
|
+
"\u2800\u28B8",
|
|
7510
|
+
"\u2800\u28F0",
|
|
7511
|
+
"\u2880\u28E0",
|
|
7512
|
+
"\u28C0\u28C0",
|
|
7513
|
+
"\u28C4\u2840",
|
|
7514
|
+
"\u28C6\u2800",
|
|
7515
|
+
"\u2847\u2800",
|
|
7516
|
+
"\u280F\u2800",
|
|
7517
|
+
"\u280B\u2801"
|
|
7518
|
+
]
|
|
7519
|
+
},
|
|
7520
|
+
dots8Bit: {
|
|
7521
|
+
interval: 80,
|
|
7522
|
+
frames: [
|
|
7523
|
+
"\u2800",
|
|
7524
|
+
"\u2801",
|
|
7525
|
+
"\u2802",
|
|
7526
|
+
"\u2803",
|
|
7527
|
+
"\u2804",
|
|
7528
|
+
"\u2805",
|
|
7529
|
+
"\u2806",
|
|
7530
|
+
"\u2807",
|
|
7531
|
+
"\u2840",
|
|
7532
|
+
"\u2841",
|
|
7533
|
+
"\u2842",
|
|
7534
|
+
"\u2843",
|
|
7535
|
+
"\u2844",
|
|
7536
|
+
"\u2845",
|
|
7537
|
+
"\u2846",
|
|
7538
|
+
"\u2847",
|
|
7539
|
+
"\u2808",
|
|
7540
|
+
"\u2809",
|
|
7541
|
+
"\u280A",
|
|
7542
|
+
"\u280B",
|
|
7543
|
+
"\u280C",
|
|
7544
|
+
"\u280D",
|
|
7545
|
+
"\u280E",
|
|
7546
|
+
"\u280F",
|
|
7547
|
+
"\u2848",
|
|
7548
|
+
"\u2849",
|
|
7549
|
+
"\u284A",
|
|
7550
|
+
"\u284B",
|
|
7551
|
+
"\u284C",
|
|
7552
|
+
"\u284D",
|
|
7553
|
+
"\u284E",
|
|
7554
|
+
"\u284F",
|
|
7555
|
+
"\u2810",
|
|
7556
|
+
"\u2811",
|
|
7557
|
+
"\u2812",
|
|
7558
|
+
"\u2813",
|
|
7559
|
+
"\u2814",
|
|
7560
|
+
"\u2815",
|
|
7561
|
+
"\u2816",
|
|
7562
|
+
"\u2817",
|
|
7563
|
+
"\u2850",
|
|
7564
|
+
"\u2851",
|
|
7565
|
+
"\u2852",
|
|
7566
|
+
"\u2853",
|
|
7567
|
+
"\u2854",
|
|
7568
|
+
"\u2855",
|
|
7569
|
+
"\u2856",
|
|
7570
|
+
"\u2857",
|
|
7571
|
+
"\u2818",
|
|
7572
|
+
"\u2819",
|
|
7573
|
+
"\u281A",
|
|
7574
|
+
"\u281B",
|
|
7575
|
+
"\u281C",
|
|
7576
|
+
"\u281D",
|
|
7577
|
+
"\u281E",
|
|
7578
|
+
"\u281F",
|
|
7579
|
+
"\u2858",
|
|
7580
|
+
"\u2859",
|
|
7581
|
+
"\u285A",
|
|
7582
|
+
"\u285B",
|
|
7583
|
+
"\u285C",
|
|
7584
|
+
"\u285D",
|
|
7585
|
+
"\u285E",
|
|
7586
|
+
"\u285F",
|
|
7587
|
+
"\u2820",
|
|
7588
|
+
"\u2821",
|
|
7589
|
+
"\u2822",
|
|
7590
|
+
"\u2823",
|
|
7591
|
+
"\u2824",
|
|
7592
|
+
"\u2825",
|
|
7593
|
+
"\u2826",
|
|
7594
|
+
"\u2827",
|
|
7595
|
+
"\u2860",
|
|
7596
|
+
"\u2861",
|
|
7597
|
+
"\u2862",
|
|
7598
|
+
"\u2863",
|
|
7599
|
+
"\u2864",
|
|
7600
|
+
"\u2865",
|
|
7601
|
+
"\u2866",
|
|
7602
|
+
"\u2867",
|
|
7603
|
+
"\u2828",
|
|
7604
|
+
"\u2829",
|
|
7605
|
+
"\u282A",
|
|
7606
|
+
"\u282B",
|
|
7607
|
+
"\u282C",
|
|
7608
|
+
"\u282D",
|
|
7609
|
+
"\u282E",
|
|
7610
|
+
"\u282F",
|
|
7611
|
+
"\u2868",
|
|
7612
|
+
"\u2869",
|
|
7613
|
+
"\u286A",
|
|
7614
|
+
"\u286B",
|
|
7615
|
+
"\u286C",
|
|
7616
|
+
"\u286D",
|
|
7617
|
+
"\u286E",
|
|
7618
|
+
"\u286F",
|
|
7619
|
+
"\u2830",
|
|
7620
|
+
"\u2831",
|
|
7621
|
+
"\u2832",
|
|
7622
|
+
"\u2833",
|
|
7623
|
+
"\u2834",
|
|
7624
|
+
"\u2835",
|
|
7625
|
+
"\u2836",
|
|
7626
|
+
"\u2837",
|
|
7627
|
+
"\u2870",
|
|
7628
|
+
"\u2871",
|
|
7629
|
+
"\u2872",
|
|
7630
|
+
"\u2873",
|
|
7631
|
+
"\u2874",
|
|
7632
|
+
"\u2875",
|
|
7633
|
+
"\u2876",
|
|
7634
|
+
"\u2877",
|
|
7635
|
+
"\u2838",
|
|
7636
|
+
"\u2839",
|
|
7637
|
+
"\u283A",
|
|
7638
|
+
"\u283B",
|
|
7639
|
+
"\u283C",
|
|
7640
|
+
"\u283D",
|
|
7641
|
+
"\u283E",
|
|
7642
|
+
"\u283F",
|
|
7643
|
+
"\u2878",
|
|
7644
|
+
"\u2879",
|
|
7645
|
+
"\u287A",
|
|
7646
|
+
"\u287B",
|
|
7647
|
+
"\u287C",
|
|
7648
|
+
"\u287D",
|
|
7649
|
+
"\u287E",
|
|
7650
|
+
"\u287F",
|
|
7651
|
+
"\u2880",
|
|
7652
|
+
"\u2881",
|
|
7653
|
+
"\u2882",
|
|
7654
|
+
"\u2883",
|
|
7655
|
+
"\u2884",
|
|
7656
|
+
"\u2885",
|
|
7657
|
+
"\u2886",
|
|
7658
|
+
"\u2887",
|
|
7659
|
+
"\u28C0",
|
|
7660
|
+
"\u28C1",
|
|
7661
|
+
"\u28C2",
|
|
7662
|
+
"\u28C3",
|
|
7663
|
+
"\u28C4",
|
|
7664
|
+
"\u28C5",
|
|
7665
|
+
"\u28C6",
|
|
7666
|
+
"\u28C7",
|
|
7667
|
+
"\u2888",
|
|
7668
|
+
"\u2889",
|
|
7669
|
+
"\u288A",
|
|
7670
|
+
"\u288B",
|
|
7671
|
+
"\u288C",
|
|
7672
|
+
"\u288D",
|
|
7673
|
+
"\u288E",
|
|
7674
|
+
"\u288F",
|
|
7675
|
+
"\u28C8",
|
|
7676
|
+
"\u28C9",
|
|
7677
|
+
"\u28CA",
|
|
7678
|
+
"\u28CB",
|
|
7679
|
+
"\u28CC",
|
|
7680
|
+
"\u28CD",
|
|
7681
|
+
"\u28CE",
|
|
7682
|
+
"\u28CF",
|
|
7683
|
+
"\u2890",
|
|
7684
|
+
"\u2891",
|
|
7685
|
+
"\u2892",
|
|
7686
|
+
"\u2893",
|
|
7687
|
+
"\u2894",
|
|
7688
|
+
"\u2895",
|
|
7689
|
+
"\u2896",
|
|
7690
|
+
"\u2897",
|
|
7691
|
+
"\u28D0",
|
|
7692
|
+
"\u28D1",
|
|
7693
|
+
"\u28D2",
|
|
7694
|
+
"\u28D3",
|
|
7695
|
+
"\u28D4",
|
|
7696
|
+
"\u28D5",
|
|
7697
|
+
"\u28D6",
|
|
7698
|
+
"\u28D7",
|
|
7699
|
+
"\u2898",
|
|
7700
|
+
"\u2899",
|
|
7701
|
+
"\u289A",
|
|
7702
|
+
"\u289B",
|
|
7703
|
+
"\u289C",
|
|
7704
|
+
"\u289D",
|
|
7705
|
+
"\u289E",
|
|
7706
|
+
"\u289F",
|
|
7707
|
+
"\u28D8",
|
|
7708
|
+
"\u28D9",
|
|
7709
|
+
"\u28DA",
|
|
7710
|
+
"\u28DB",
|
|
7711
|
+
"\u28DC",
|
|
7712
|
+
"\u28DD",
|
|
7713
|
+
"\u28DE",
|
|
7714
|
+
"\u28DF",
|
|
7715
|
+
"\u28A0",
|
|
7716
|
+
"\u28A1",
|
|
7717
|
+
"\u28A2",
|
|
7718
|
+
"\u28A3",
|
|
7719
|
+
"\u28A4",
|
|
7720
|
+
"\u28A5",
|
|
7721
|
+
"\u28A6",
|
|
7722
|
+
"\u28A7",
|
|
7723
|
+
"\u28E0",
|
|
7724
|
+
"\u28E1",
|
|
7725
|
+
"\u28E2",
|
|
7726
|
+
"\u28E3",
|
|
7727
|
+
"\u28E4",
|
|
7728
|
+
"\u28E5",
|
|
7729
|
+
"\u28E6",
|
|
7730
|
+
"\u28E7",
|
|
7731
|
+
"\u28A8",
|
|
7732
|
+
"\u28A9",
|
|
7733
|
+
"\u28AA",
|
|
7734
|
+
"\u28AB",
|
|
7735
|
+
"\u28AC",
|
|
7736
|
+
"\u28AD",
|
|
7737
|
+
"\u28AE",
|
|
7738
|
+
"\u28AF",
|
|
7739
|
+
"\u28E8",
|
|
7740
|
+
"\u28E9",
|
|
7741
|
+
"\u28EA",
|
|
7742
|
+
"\u28EB",
|
|
7743
|
+
"\u28EC",
|
|
7744
|
+
"\u28ED",
|
|
7745
|
+
"\u28EE",
|
|
7746
|
+
"\u28EF",
|
|
7747
|
+
"\u28B0",
|
|
7748
|
+
"\u28B1",
|
|
7749
|
+
"\u28B2",
|
|
7750
|
+
"\u28B3",
|
|
7751
|
+
"\u28B4",
|
|
7752
|
+
"\u28B5",
|
|
7753
|
+
"\u28B6",
|
|
7754
|
+
"\u28B7",
|
|
7755
|
+
"\u28F0",
|
|
7756
|
+
"\u28F1",
|
|
7757
|
+
"\u28F2",
|
|
7758
|
+
"\u28F3",
|
|
7759
|
+
"\u28F4",
|
|
7760
|
+
"\u28F5",
|
|
7761
|
+
"\u28F6",
|
|
7762
|
+
"\u28F7",
|
|
7763
|
+
"\u28B8",
|
|
7764
|
+
"\u28B9",
|
|
7765
|
+
"\u28BA",
|
|
7766
|
+
"\u28BB",
|
|
7767
|
+
"\u28BC",
|
|
7768
|
+
"\u28BD",
|
|
7769
|
+
"\u28BE",
|
|
7770
|
+
"\u28BF",
|
|
7771
|
+
"\u28F8",
|
|
7772
|
+
"\u28F9",
|
|
7773
|
+
"\u28FA",
|
|
7774
|
+
"\u28FB",
|
|
7775
|
+
"\u28FC",
|
|
7776
|
+
"\u28FD",
|
|
7777
|
+
"\u28FE",
|
|
7778
|
+
"\u28FF"
|
|
7779
|
+
]
|
|
7780
|
+
},
|
|
7781
|
+
dotsCircle: {
|
|
7782
|
+
interval: 80,
|
|
7783
|
+
frames: [
|
|
7784
|
+
"\u288E ",
|
|
7785
|
+
"\u280E\u2801",
|
|
7786
|
+
"\u280A\u2811",
|
|
7787
|
+
"\u2808\u2831",
|
|
7788
|
+
" \u2871",
|
|
7789
|
+
"\u2880\u2870",
|
|
7790
|
+
"\u2884\u2860",
|
|
7791
|
+
"\u2886\u2840"
|
|
7792
|
+
]
|
|
7793
|
+
},
|
|
7794
|
+
sand: {
|
|
7795
|
+
interval: 80,
|
|
7796
|
+
frames: [
|
|
7797
|
+
"\u2801",
|
|
7798
|
+
"\u2802",
|
|
7799
|
+
"\u2804",
|
|
7800
|
+
"\u2840",
|
|
7801
|
+
"\u2848",
|
|
7802
|
+
"\u2850",
|
|
7803
|
+
"\u2860",
|
|
7804
|
+
"\u28C0",
|
|
7805
|
+
"\u28C1",
|
|
7806
|
+
"\u28C2",
|
|
7807
|
+
"\u28C4",
|
|
7808
|
+
"\u28CC",
|
|
7809
|
+
"\u28D4",
|
|
7810
|
+
"\u28E4",
|
|
7811
|
+
"\u28E5",
|
|
7812
|
+
"\u28E6",
|
|
7813
|
+
"\u28EE",
|
|
7814
|
+
"\u28F6",
|
|
7815
|
+
"\u28F7",
|
|
7816
|
+
"\u28FF",
|
|
7817
|
+
"\u287F",
|
|
7818
|
+
"\u283F",
|
|
7819
|
+
"\u289F",
|
|
7820
|
+
"\u281F",
|
|
7821
|
+
"\u285B",
|
|
7822
|
+
"\u281B",
|
|
7823
|
+
"\u282B",
|
|
7824
|
+
"\u288B",
|
|
7825
|
+
"\u280B",
|
|
7826
|
+
"\u280D",
|
|
7827
|
+
"\u2849",
|
|
7828
|
+
"\u2809",
|
|
7829
|
+
"\u2811",
|
|
7830
|
+
"\u2821",
|
|
7831
|
+
"\u2881"
|
|
7832
|
+
]
|
|
7833
|
+
},
|
|
7834
|
+
line: {
|
|
7835
|
+
interval: 130,
|
|
7836
|
+
frames: [
|
|
7837
|
+
"-",
|
|
7838
|
+
"\\",
|
|
7839
|
+
"|",
|
|
7840
|
+
"/"
|
|
7841
|
+
]
|
|
7842
|
+
},
|
|
7843
|
+
line2: {
|
|
7844
|
+
interval: 100,
|
|
7845
|
+
frames: [
|
|
7846
|
+
"\u2802",
|
|
7847
|
+
"-",
|
|
7848
|
+
"\u2013",
|
|
7849
|
+
"\u2014",
|
|
7850
|
+
"\u2013",
|
|
7851
|
+
"-"
|
|
7852
|
+
]
|
|
7853
|
+
},
|
|
7854
|
+
rollingLine: {
|
|
7855
|
+
interval: 80,
|
|
7856
|
+
frames: [
|
|
7857
|
+
"/ ",
|
|
7858
|
+
" - ",
|
|
7859
|
+
" \\ ",
|
|
7860
|
+
" |",
|
|
7861
|
+
" |",
|
|
7862
|
+
" \\ ",
|
|
7863
|
+
" - ",
|
|
7864
|
+
"/ "
|
|
7865
|
+
]
|
|
7866
|
+
},
|
|
7867
|
+
pipe: {
|
|
7868
|
+
interval: 100,
|
|
7869
|
+
frames: [
|
|
7870
|
+
"\u2524",
|
|
7871
|
+
"\u2518",
|
|
7872
|
+
"\u2534",
|
|
7873
|
+
"\u2514",
|
|
7874
|
+
"\u251C",
|
|
7875
|
+
"\u250C",
|
|
7876
|
+
"\u252C",
|
|
7877
|
+
"\u2510"
|
|
7878
|
+
]
|
|
7879
|
+
},
|
|
7880
|
+
simpleDots: {
|
|
7881
|
+
interval: 400,
|
|
7882
|
+
frames: [
|
|
7883
|
+
". ",
|
|
7884
|
+
".. ",
|
|
7885
|
+
"...",
|
|
7886
|
+
" "
|
|
7887
|
+
]
|
|
7888
|
+
},
|
|
7889
|
+
simpleDotsScrolling: {
|
|
7890
|
+
interval: 200,
|
|
7891
|
+
frames: [
|
|
7892
|
+
". ",
|
|
7893
|
+
".. ",
|
|
7894
|
+
"...",
|
|
7895
|
+
" ..",
|
|
7896
|
+
" .",
|
|
7897
|
+
" "
|
|
7898
|
+
]
|
|
7899
|
+
},
|
|
7900
|
+
star: {
|
|
7901
|
+
interval: 70,
|
|
7902
|
+
frames: [
|
|
7903
|
+
"\u2736",
|
|
7904
|
+
"\u2738",
|
|
7905
|
+
"\u2739",
|
|
7906
|
+
"\u273A",
|
|
7907
|
+
"\u2739",
|
|
7908
|
+
"\u2737"
|
|
7909
|
+
]
|
|
7910
|
+
},
|
|
7911
|
+
star2: {
|
|
7912
|
+
interval: 80,
|
|
7913
|
+
frames: [
|
|
7914
|
+
"+",
|
|
7915
|
+
"x",
|
|
7916
|
+
"*"
|
|
7917
|
+
]
|
|
7918
|
+
},
|
|
7919
|
+
flip: {
|
|
7920
|
+
interval: 70,
|
|
7921
|
+
frames: [
|
|
7922
|
+
"_",
|
|
7923
|
+
"_",
|
|
7924
|
+
"_",
|
|
7925
|
+
"-",
|
|
7926
|
+
"`",
|
|
7927
|
+
"`",
|
|
7928
|
+
"'",
|
|
7929
|
+
"\xB4",
|
|
7930
|
+
"-",
|
|
7931
|
+
"_",
|
|
7932
|
+
"_",
|
|
7933
|
+
"_"
|
|
7934
|
+
]
|
|
7935
|
+
},
|
|
7936
|
+
hamburger: {
|
|
7937
|
+
interval: 100,
|
|
7938
|
+
frames: [
|
|
7939
|
+
"\u2631",
|
|
7940
|
+
"\u2632",
|
|
7941
|
+
"\u2634"
|
|
7942
|
+
]
|
|
7943
|
+
},
|
|
7944
|
+
growVertical: {
|
|
7945
|
+
interval: 120,
|
|
7946
|
+
frames: [
|
|
7947
|
+
"\u2581",
|
|
7948
|
+
"\u2583",
|
|
7949
|
+
"\u2584",
|
|
7950
|
+
"\u2585",
|
|
7951
|
+
"\u2586",
|
|
7952
|
+
"\u2587",
|
|
7953
|
+
"\u2586",
|
|
7954
|
+
"\u2585",
|
|
7955
|
+
"\u2584",
|
|
7956
|
+
"\u2583"
|
|
7957
|
+
]
|
|
7958
|
+
},
|
|
7959
|
+
growHorizontal: {
|
|
7960
|
+
interval: 120,
|
|
7961
|
+
frames: [
|
|
7962
|
+
"\u258F",
|
|
7963
|
+
"\u258E",
|
|
7964
|
+
"\u258D",
|
|
7965
|
+
"\u258C",
|
|
7966
|
+
"\u258B",
|
|
7967
|
+
"\u258A",
|
|
7968
|
+
"\u2589",
|
|
7969
|
+
"\u258A",
|
|
7970
|
+
"\u258B",
|
|
7971
|
+
"\u258C",
|
|
7972
|
+
"\u258D",
|
|
7973
|
+
"\u258E"
|
|
7974
|
+
]
|
|
7975
|
+
},
|
|
7976
|
+
balloon: {
|
|
7977
|
+
interval: 140,
|
|
7978
|
+
frames: [
|
|
7979
|
+
" ",
|
|
7980
|
+
".",
|
|
7981
|
+
"o",
|
|
7982
|
+
"O",
|
|
7983
|
+
"@",
|
|
7984
|
+
"*",
|
|
7985
|
+
" "
|
|
7986
|
+
]
|
|
7987
|
+
},
|
|
7988
|
+
balloon2: {
|
|
7989
|
+
interval: 120,
|
|
7990
|
+
frames: [
|
|
7991
|
+
".",
|
|
7992
|
+
"o",
|
|
7993
|
+
"O",
|
|
7994
|
+
"\xB0",
|
|
7995
|
+
"O",
|
|
7996
|
+
"o",
|
|
7997
|
+
"."
|
|
7998
|
+
]
|
|
7999
|
+
},
|
|
8000
|
+
noise: {
|
|
8001
|
+
interval: 100,
|
|
8002
|
+
frames: [
|
|
8003
|
+
"\u2593",
|
|
8004
|
+
"\u2592",
|
|
8005
|
+
"\u2591"
|
|
8006
|
+
]
|
|
8007
|
+
},
|
|
8008
|
+
bounce: {
|
|
8009
|
+
interval: 120,
|
|
8010
|
+
frames: [
|
|
8011
|
+
"\u2801",
|
|
8012
|
+
"\u2802",
|
|
8013
|
+
"\u2804",
|
|
8014
|
+
"\u2802"
|
|
8015
|
+
]
|
|
8016
|
+
},
|
|
8017
|
+
boxBounce: {
|
|
8018
|
+
interval: 120,
|
|
8019
|
+
frames: [
|
|
8020
|
+
"\u2596",
|
|
8021
|
+
"\u2598",
|
|
8022
|
+
"\u259D",
|
|
8023
|
+
"\u2597"
|
|
8024
|
+
]
|
|
8025
|
+
},
|
|
8026
|
+
boxBounce2: {
|
|
8027
|
+
interval: 100,
|
|
8028
|
+
frames: [
|
|
8029
|
+
"\u258C",
|
|
8030
|
+
"\u2580",
|
|
8031
|
+
"\u2590",
|
|
8032
|
+
"\u2584"
|
|
8033
|
+
]
|
|
8034
|
+
},
|
|
8035
|
+
triangle: {
|
|
8036
|
+
interval: 50,
|
|
8037
|
+
frames: [
|
|
8038
|
+
"\u25E2",
|
|
8039
|
+
"\u25E3",
|
|
8040
|
+
"\u25E4",
|
|
8041
|
+
"\u25E5"
|
|
8042
|
+
]
|
|
8043
|
+
},
|
|
8044
|
+
binary: {
|
|
8045
|
+
interval: 80,
|
|
8046
|
+
frames: [
|
|
8047
|
+
"010010",
|
|
8048
|
+
"001100",
|
|
8049
|
+
"100101",
|
|
8050
|
+
"111010",
|
|
8051
|
+
"111101",
|
|
8052
|
+
"010111",
|
|
8053
|
+
"101011",
|
|
8054
|
+
"111000",
|
|
8055
|
+
"110011",
|
|
8056
|
+
"110101"
|
|
8057
|
+
]
|
|
8058
|
+
},
|
|
8059
|
+
arc: {
|
|
8060
|
+
interval: 100,
|
|
8061
|
+
frames: [
|
|
8062
|
+
"\u25DC",
|
|
8063
|
+
"\u25E0",
|
|
8064
|
+
"\u25DD",
|
|
8065
|
+
"\u25DE",
|
|
8066
|
+
"\u25E1",
|
|
8067
|
+
"\u25DF"
|
|
8068
|
+
]
|
|
8069
|
+
},
|
|
8070
|
+
circle: {
|
|
8071
|
+
interval: 120,
|
|
8072
|
+
frames: [
|
|
8073
|
+
"\u25E1",
|
|
8074
|
+
"\u2299",
|
|
8075
|
+
"\u25E0"
|
|
8076
|
+
]
|
|
8077
|
+
},
|
|
8078
|
+
squareCorners: {
|
|
8079
|
+
interval: 180,
|
|
8080
|
+
frames: [
|
|
8081
|
+
"\u25F0",
|
|
8082
|
+
"\u25F3",
|
|
8083
|
+
"\u25F2",
|
|
8084
|
+
"\u25F1"
|
|
8085
|
+
]
|
|
8086
|
+
},
|
|
8087
|
+
circleQuarters: {
|
|
8088
|
+
interval: 120,
|
|
8089
|
+
frames: [
|
|
8090
|
+
"\u25F4",
|
|
8091
|
+
"\u25F7",
|
|
8092
|
+
"\u25F6",
|
|
8093
|
+
"\u25F5"
|
|
8094
|
+
]
|
|
8095
|
+
},
|
|
8096
|
+
circleHalves: {
|
|
8097
|
+
interval: 50,
|
|
8098
|
+
frames: [
|
|
8099
|
+
"\u25D0",
|
|
8100
|
+
"\u25D3",
|
|
8101
|
+
"\u25D1",
|
|
8102
|
+
"\u25D2"
|
|
8103
|
+
]
|
|
8104
|
+
},
|
|
8105
|
+
squish: {
|
|
8106
|
+
interval: 100,
|
|
8107
|
+
frames: [
|
|
8108
|
+
"\u256B",
|
|
8109
|
+
"\u256A"
|
|
8110
|
+
]
|
|
8111
|
+
},
|
|
8112
|
+
toggle: {
|
|
8113
|
+
interval: 250,
|
|
8114
|
+
frames: [
|
|
8115
|
+
"\u22B6",
|
|
8116
|
+
"\u22B7"
|
|
8117
|
+
]
|
|
8118
|
+
},
|
|
8119
|
+
toggle2: {
|
|
8120
|
+
interval: 80,
|
|
8121
|
+
frames: [
|
|
8122
|
+
"\u25AB",
|
|
8123
|
+
"\u25AA"
|
|
8124
|
+
]
|
|
8125
|
+
},
|
|
8126
|
+
toggle3: {
|
|
8127
|
+
interval: 120,
|
|
8128
|
+
frames: [
|
|
8129
|
+
"\u25A1",
|
|
8130
|
+
"\u25A0"
|
|
8131
|
+
]
|
|
8132
|
+
},
|
|
8133
|
+
toggle4: {
|
|
8134
|
+
interval: 100,
|
|
8135
|
+
frames: [
|
|
8136
|
+
"\u25A0",
|
|
8137
|
+
"\u25A1",
|
|
8138
|
+
"\u25AA",
|
|
8139
|
+
"\u25AB"
|
|
8140
|
+
]
|
|
8141
|
+
},
|
|
8142
|
+
toggle5: {
|
|
8143
|
+
interval: 100,
|
|
8144
|
+
frames: [
|
|
8145
|
+
"\u25AE",
|
|
8146
|
+
"\u25AF"
|
|
8147
|
+
]
|
|
8148
|
+
},
|
|
8149
|
+
toggle6: {
|
|
8150
|
+
interval: 300,
|
|
8151
|
+
frames: [
|
|
8152
|
+
"\u101D",
|
|
8153
|
+
"\u1040"
|
|
8154
|
+
]
|
|
8155
|
+
},
|
|
8156
|
+
toggle7: {
|
|
8157
|
+
interval: 80,
|
|
8158
|
+
frames: [
|
|
8159
|
+
"\u29BE",
|
|
8160
|
+
"\u29BF"
|
|
8161
|
+
]
|
|
8162
|
+
},
|
|
8163
|
+
toggle8: {
|
|
8164
|
+
interval: 100,
|
|
8165
|
+
frames: [
|
|
8166
|
+
"\u25CD",
|
|
8167
|
+
"\u25CC"
|
|
8168
|
+
]
|
|
8169
|
+
},
|
|
8170
|
+
toggle9: {
|
|
8171
|
+
interval: 100,
|
|
8172
|
+
frames: [
|
|
8173
|
+
"\u25C9",
|
|
8174
|
+
"\u25CE"
|
|
8175
|
+
]
|
|
8176
|
+
},
|
|
8177
|
+
toggle10: {
|
|
8178
|
+
interval: 100,
|
|
8179
|
+
frames: [
|
|
8180
|
+
"\u3282",
|
|
8181
|
+
"\u3280",
|
|
8182
|
+
"\u3281"
|
|
8183
|
+
]
|
|
8184
|
+
},
|
|
8185
|
+
toggle11: {
|
|
8186
|
+
interval: 50,
|
|
8187
|
+
frames: [
|
|
8188
|
+
"\u29C7",
|
|
8189
|
+
"\u29C6"
|
|
8190
|
+
]
|
|
8191
|
+
},
|
|
8192
|
+
toggle12: {
|
|
8193
|
+
interval: 120,
|
|
8194
|
+
frames: [
|
|
8195
|
+
"\u2617",
|
|
8196
|
+
"\u2616"
|
|
8197
|
+
]
|
|
8198
|
+
},
|
|
8199
|
+
toggle13: {
|
|
8200
|
+
interval: 80,
|
|
8201
|
+
frames: [
|
|
8202
|
+
"=",
|
|
8203
|
+
"*",
|
|
8204
|
+
"-"
|
|
8205
|
+
]
|
|
8206
|
+
},
|
|
8207
|
+
arrow: {
|
|
8208
|
+
interval: 100,
|
|
8209
|
+
frames: [
|
|
8210
|
+
"\u2190",
|
|
8211
|
+
"\u2196",
|
|
8212
|
+
"\u2191",
|
|
8213
|
+
"\u2197",
|
|
8214
|
+
"\u2192",
|
|
8215
|
+
"\u2198",
|
|
8216
|
+
"\u2193",
|
|
8217
|
+
"\u2199"
|
|
8218
|
+
]
|
|
8219
|
+
},
|
|
8220
|
+
arrow2: {
|
|
8221
|
+
interval: 80,
|
|
8222
|
+
frames: [
|
|
8223
|
+
"\u2B06\uFE0F ",
|
|
8224
|
+
"\u2197\uFE0F ",
|
|
8225
|
+
"\u27A1\uFE0F ",
|
|
8226
|
+
"\u2198\uFE0F ",
|
|
8227
|
+
"\u2B07\uFE0F ",
|
|
8228
|
+
"\u2199\uFE0F ",
|
|
8229
|
+
"\u2B05\uFE0F ",
|
|
8230
|
+
"\u2196\uFE0F "
|
|
8231
|
+
]
|
|
8232
|
+
},
|
|
8233
|
+
arrow3: {
|
|
8234
|
+
interval: 120,
|
|
8235
|
+
frames: [
|
|
8236
|
+
"\u25B9\u25B9\u25B9\u25B9\u25B9",
|
|
8237
|
+
"\u25B8\u25B9\u25B9\u25B9\u25B9",
|
|
8238
|
+
"\u25B9\u25B8\u25B9\u25B9\u25B9",
|
|
8239
|
+
"\u25B9\u25B9\u25B8\u25B9\u25B9",
|
|
8240
|
+
"\u25B9\u25B9\u25B9\u25B8\u25B9",
|
|
8241
|
+
"\u25B9\u25B9\u25B9\u25B9\u25B8"
|
|
8242
|
+
]
|
|
8243
|
+
},
|
|
8244
|
+
bouncingBar: {
|
|
8245
|
+
interval: 80,
|
|
8246
|
+
frames: [
|
|
8247
|
+
"[ ]",
|
|
8248
|
+
"[= ]",
|
|
8249
|
+
"[== ]",
|
|
8250
|
+
"[=== ]",
|
|
8251
|
+
"[====]",
|
|
8252
|
+
"[ ===]",
|
|
8253
|
+
"[ ==]",
|
|
8254
|
+
"[ =]",
|
|
8255
|
+
"[ ]",
|
|
8256
|
+
"[ =]",
|
|
8257
|
+
"[ ==]",
|
|
8258
|
+
"[ ===]",
|
|
8259
|
+
"[====]",
|
|
8260
|
+
"[=== ]",
|
|
8261
|
+
"[== ]",
|
|
8262
|
+
"[= ]"
|
|
8263
|
+
]
|
|
8264
|
+
},
|
|
8265
|
+
bouncingBall: {
|
|
8266
|
+
interval: 80,
|
|
8267
|
+
frames: [
|
|
8268
|
+
"( \u25CF )",
|
|
8269
|
+
"( \u25CF )",
|
|
8270
|
+
"( \u25CF )",
|
|
8271
|
+
"( \u25CF )",
|
|
8272
|
+
"( \u25CF)",
|
|
8273
|
+
"( \u25CF )",
|
|
8274
|
+
"( \u25CF )",
|
|
8275
|
+
"( \u25CF )",
|
|
8276
|
+
"( \u25CF )",
|
|
8277
|
+
"(\u25CF )"
|
|
8278
|
+
]
|
|
8279
|
+
},
|
|
8280
|
+
smiley: {
|
|
8281
|
+
interval: 200,
|
|
8282
|
+
frames: [
|
|
8283
|
+
"\u{1F604} ",
|
|
8284
|
+
"\u{1F61D} "
|
|
8285
|
+
]
|
|
8286
|
+
},
|
|
8287
|
+
monkey: {
|
|
8288
|
+
interval: 300,
|
|
8289
|
+
frames: [
|
|
8290
|
+
"\u{1F648} ",
|
|
8291
|
+
"\u{1F648} ",
|
|
8292
|
+
"\u{1F649} ",
|
|
8293
|
+
"\u{1F64A} "
|
|
8294
|
+
]
|
|
8295
|
+
},
|
|
8296
|
+
hearts: {
|
|
8297
|
+
interval: 100,
|
|
8298
|
+
frames: [
|
|
8299
|
+
"\u{1F49B} ",
|
|
8300
|
+
"\u{1F499} ",
|
|
8301
|
+
"\u{1F49C} ",
|
|
8302
|
+
"\u{1F49A} ",
|
|
8303
|
+
"\u{1F497} "
|
|
8304
|
+
]
|
|
8305
|
+
},
|
|
8306
|
+
clock: {
|
|
8307
|
+
interval: 100,
|
|
8308
|
+
frames: [
|
|
8309
|
+
"\u{1F55B} ",
|
|
8310
|
+
"\u{1F550} ",
|
|
8311
|
+
"\u{1F551} ",
|
|
8312
|
+
"\u{1F552} ",
|
|
8313
|
+
"\u{1F553} ",
|
|
8314
|
+
"\u{1F554} ",
|
|
8315
|
+
"\u{1F555} ",
|
|
8316
|
+
"\u{1F556} ",
|
|
8317
|
+
"\u{1F557} ",
|
|
8318
|
+
"\u{1F558} ",
|
|
8319
|
+
"\u{1F559} ",
|
|
8320
|
+
"\u{1F55A} "
|
|
8321
|
+
]
|
|
8322
|
+
},
|
|
8323
|
+
earth: {
|
|
8324
|
+
interval: 180,
|
|
8325
|
+
frames: [
|
|
8326
|
+
"\u{1F30D} ",
|
|
8327
|
+
"\u{1F30E} ",
|
|
8328
|
+
"\u{1F30F} "
|
|
8329
|
+
]
|
|
8330
|
+
},
|
|
8331
|
+
material: {
|
|
8332
|
+
interval: 17,
|
|
8333
|
+
frames: [
|
|
8334
|
+
"\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8335
|
+
"\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8336
|
+
"\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8337
|
+
"\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8338
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8339
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8340
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8341
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8342
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8343
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8344
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8345
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8346
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8347
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8348
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8349
|
+
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
8350
|
+
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
8351
|
+
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
8352
|
+
"\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
|
|
8353
|
+
"\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
8354
|
+
"\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
8355
|
+
"\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
|
|
8356
|
+
"\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
|
|
8357
|
+
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
8358
|
+
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
8359
|
+
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
8360
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8361
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8362
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8363
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8364
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8365
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8366
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8367
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8368
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8369
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8370
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8371
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8372
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8373
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
|
|
8374
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
|
|
8375
|
+
"\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
|
|
8376
|
+
"\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
8377
|
+
"\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
8378
|
+
"\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
8379
|
+
"\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
|
|
8380
|
+
"\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
8381
|
+
"\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
8382
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
8383
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8384
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8385
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8386
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8387
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8388
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8389
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8390
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8391
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8392
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8393
|
+
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
8394
|
+
"\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
|
|
8395
|
+
"\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
|
|
8396
|
+
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
8397
|
+
"\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
8398
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
8399
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
8400
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
|
|
8401
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
|
|
8402
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
|
|
8403
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
8404
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
8405
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
8406
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
8407
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
|
|
8408
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8409
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
8410
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
|
|
8411
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
|
|
8412
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
|
|
8413
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
|
|
8414
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
8415
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
|
|
8416
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
|
|
8417
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
|
|
8418
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
|
|
8419
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
8420
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
8421
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
|
|
8422
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8423
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8424
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
|
|
8425
|
+
"\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"
|
|
8426
|
+
]
|
|
8427
|
+
},
|
|
8428
|
+
moon: {
|
|
8429
|
+
interval: 80,
|
|
8430
|
+
frames: [
|
|
8431
|
+
"\u{1F311} ",
|
|
8432
|
+
"\u{1F312} ",
|
|
8433
|
+
"\u{1F313} ",
|
|
8434
|
+
"\u{1F314} ",
|
|
8435
|
+
"\u{1F315} ",
|
|
8436
|
+
"\u{1F316} ",
|
|
8437
|
+
"\u{1F317} ",
|
|
8438
|
+
"\u{1F318} "
|
|
8439
|
+
]
|
|
8440
|
+
},
|
|
8441
|
+
runner: {
|
|
8442
|
+
interval: 140,
|
|
8443
|
+
frames: [
|
|
8444
|
+
"\u{1F6B6} ",
|
|
8445
|
+
"\u{1F3C3} "
|
|
8446
|
+
]
|
|
8447
|
+
},
|
|
8448
|
+
pong: {
|
|
8449
|
+
interval: 80,
|
|
8450
|
+
frames: [
|
|
8451
|
+
"\u2590\u2802 \u258C",
|
|
8452
|
+
"\u2590\u2808 \u258C",
|
|
8453
|
+
"\u2590 \u2802 \u258C",
|
|
8454
|
+
"\u2590 \u2820 \u258C",
|
|
8455
|
+
"\u2590 \u2840 \u258C",
|
|
8456
|
+
"\u2590 \u2820 \u258C",
|
|
8457
|
+
"\u2590 \u2802 \u258C",
|
|
8458
|
+
"\u2590 \u2808 \u258C",
|
|
8459
|
+
"\u2590 \u2802 \u258C",
|
|
8460
|
+
"\u2590 \u2820 \u258C",
|
|
8461
|
+
"\u2590 \u2840 \u258C",
|
|
8462
|
+
"\u2590 \u2820 \u258C",
|
|
8463
|
+
"\u2590 \u2802 \u258C",
|
|
8464
|
+
"\u2590 \u2808 \u258C",
|
|
8465
|
+
"\u2590 \u2802\u258C",
|
|
8466
|
+
"\u2590 \u2820\u258C",
|
|
8467
|
+
"\u2590 \u2840\u258C",
|
|
8468
|
+
"\u2590 \u2820 \u258C",
|
|
8469
|
+
"\u2590 \u2802 \u258C",
|
|
8470
|
+
"\u2590 \u2808 \u258C",
|
|
8471
|
+
"\u2590 \u2802 \u258C",
|
|
8472
|
+
"\u2590 \u2820 \u258C",
|
|
8473
|
+
"\u2590 \u2840 \u258C",
|
|
8474
|
+
"\u2590 \u2820 \u258C",
|
|
8475
|
+
"\u2590 \u2802 \u258C",
|
|
8476
|
+
"\u2590 \u2808 \u258C",
|
|
8477
|
+
"\u2590 \u2802 \u258C",
|
|
8478
|
+
"\u2590 \u2820 \u258C",
|
|
8479
|
+
"\u2590 \u2840 \u258C",
|
|
8480
|
+
"\u2590\u2820 \u258C"
|
|
8481
|
+
]
|
|
8482
|
+
},
|
|
8483
|
+
shark: {
|
|
8484
|
+
interval: 120,
|
|
8485
|
+
frames: [
|
|
8486
|
+
"\u2590|\\____________\u258C",
|
|
8487
|
+
"\u2590_|\\___________\u258C",
|
|
8488
|
+
"\u2590__|\\__________\u258C",
|
|
8489
|
+
"\u2590___|\\_________\u258C",
|
|
8490
|
+
"\u2590____|\\________\u258C",
|
|
8491
|
+
"\u2590_____|\\_______\u258C",
|
|
8492
|
+
"\u2590______|\\______\u258C",
|
|
8493
|
+
"\u2590_______|\\_____\u258C",
|
|
8494
|
+
"\u2590________|\\____\u258C",
|
|
8495
|
+
"\u2590_________|\\___\u258C",
|
|
8496
|
+
"\u2590__________|\\__\u258C",
|
|
8497
|
+
"\u2590___________|\\_\u258C",
|
|
8498
|
+
"\u2590____________|\\\u258C",
|
|
8499
|
+
"\u2590____________/|\u258C",
|
|
8500
|
+
"\u2590___________/|_\u258C",
|
|
8501
|
+
"\u2590__________/|__\u258C",
|
|
8502
|
+
"\u2590_________/|___\u258C",
|
|
8503
|
+
"\u2590________/|____\u258C",
|
|
8504
|
+
"\u2590_______/|_____\u258C",
|
|
8505
|
+
"\u2590______/|______\u258C",
|
|
8506
|
+
"\u2590_____/|_______\u258C",
|
|
8507
|
+
"\u2590____/|________\u258C",
|
|
8508
|
+
"\u2590___/|_________\u258C",
|
|
8509
|
+
"\u2590__/|__________\u258C",
|
|
8510
|
+
"\u2590_/|___________\u258C",
|
|
8511
|
+
"\u2590/|____________\u258C"
|
|
8512
|
+
]
|
|
8513
|
+
},
|
|
8514
|
+
dqpb: {
|
|
8515
|
+
interval: 100,
|
|
8516
|
+
frames: [
|
|
8517
|
+
"d",
|
|
8518
|
+
"q",
|
|
8519
|
+
"p",
|
|
8520
|
+
"b"
|
|
8521
|
+
]
|
|
8522
|
+
},
|
|
8523
|
+
weather: {
|
|
8524
|
+
interval: 100,
|
|
8525
|
+
frames: [
|
|
8526
|
+
"\u2600\uFE0F ",
|
|
8527
|
+
"\u2600\uFE0F ",
|
|
8528
|
+
"\u2600\uFE0F ",
|
|
8529
|
+
"\u{1F324} ",
|
|
8530
|
+
"\u26C5\uFE0F ",
|
|
8531
|
+
"\u{1F325} ",
|
|
8532
|
+
"\u2601\uFE0F ",
|
|
8533
|
+
"\u{1F327} ",
|
|
8534
|
+
"\u{1F328} ",
|
|
8535
|
+
"\u{1F327} ",
|
|
8536
|
+
"\u{1F328} ",
|
|
8537
|
+
"\u{1F327} ",
|
|
8538
|
+
"\u{1F328} ",
|
|
8539
|
+
"\u26C8 ",
|
|
8540
|
+
"\u{1F328} ",
|
|
8541
|
+
"\u{1F327} ",
|
|
8542
|
+
"\u{1F328} ",
|
|
8543
|
+
"\u2601\uFE0F ",
|
|
8544
|
+
"\u{1F325} ",
|
|
8545
|
+
"\u26C5\uFE0F ",
|
|
8546
|
+
"\u{1F324} ",
|
|
8547
|
+
"\u2600\uFE0F ",
|
|
8548
|
+
"\u2600\uFE0F "
|
|
8549
|
+
]
|
|
8550
|
+
},
|
|
8551
|
+
christmas: {
|
|
8552
|
+
interval: 400,
|
|
8553
|
+
frames: [
|
|
8554
|
+
"\u{1F332}",
|
|
8555
|
+
"\u{1F384}"
|
|
8556
|
+
]
|
|
8557
|
+
},
|
|
8558
|
+
grenade: {
|
|
8559
|
+
interval: 80,
|
|
8560
|
+
frames: [
|
|
8561
|
+
"\u060C ",
|
|
8562
|
+
"\u2032 ",
|
|
8563
|
+
" \xB4 ",
|
|
8564
|
+
" \u203E ",
|
|
8565
|
+
" \u2E0C",
|
|
8566
|
+
" \u2E0A",
|
|
8567
|
+
" |",
|
|
8568
|
+
" \u204E",
|
|
8569
|
+
" \u2055",
|
|
8570
|
+
" \u0DF4 ",
|
|
8571
|
+
" \u2053",
|
|
8572
|
+
" ",
|
|
8573
|
+
" ",
|
|
8574
|
+
" "
|
|
8575
|
+
]
|
|
8576
|
+
},
|
|
8577
|
+
point: {
|
|
8578
|
+
interval: 125,
|
|
8579
|
+
frames: [
|
|
8580
|
+
"\u2219\u2219\u2219",
|
|
8581
|
+
"\u25CF\u2219\u2219",
|
|
8582
|
+
"\u2219\u25CF\u2219",
|
|
8583
|
+
"\u2219\u2219\u25CF",
|
|
8584
|
+
"\u2219\u2219\u2219"
|
|
8585
|
+
]
|
|
8586
|
+
},
|
|
8587
|
+
layer: {
|
|
8588
|
+
interval: 150,
|
|
8589
|
+
frames: [
|
|
8590
|
+
"-",
|
|
8591
|
+
"=",
|
|
8592
|
+
"\u2261"
|
|
8593
|
+
]
|
|
8594
|
+
},
|
|
8595
|
+
betaWave: {
|
|
8596
|
+
interval: 80,
|
|
8597
|
+
frames: [
|
|
8598
|
+
"\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2",
|
|
8599
|
+
"\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2",
|
|
8600
|
+
"\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2",
|
|
8601
|
+
"\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2",
|
|
8602
|
+
"\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2",
|
|
8603
|
+
"\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2",
|
|
8604
|
+
"\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"
|
|
8605
|
+
]
|
|
8606
|
+
},
|
|
8607
|
+
fingerDance: {
|
|
8608
|
+
interval: 160,
|
|
8609
|
+
frames: [
|
|
8610
|
+
"\u{1F918} ",
|
|
8611
|
+
"\u{1F91F} ",
|
|
8612
|
+
"\u{1F596} ",
|
|
8613
|
+
"\u270B ",
|
|
8614
|
+
"\u{1F91A} ",
|
|
8615
|
+
"\u{1F446} "
|
|
8616
|
+
]
|
|
8617
|
+
},
|
|
8618
|
+
fistBump: {
|
|
8619
|
+
interval: 80,
|
|
8620
|
+
frames: [
|
|
8621
|
+
"\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
|
|
8622
|
+
"\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
|
|
8623
|
+
"\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
|
|
8624
|
+
"\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ",
|
|
8625
|
+
"\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ",
|
|
8626
|
+
"\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ",
|
|
8627
|
+
"\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "
|
|
8628
|
+
]
|
|
8629
|
+
},
|
|
8630
|
+
soccerHeader: {
|
|
8631
|
+
interval: 80,
|
|
8632
|
+
frames: [
|
|
8633
|
+
" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ",
|
|
8634
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8635
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8636
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8637
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8638
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8639
|
+
"\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ",
|
|
8640
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8641
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8642
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8643
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
|
|
8644
|
+
"\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "
|
|
8645
|
+
]
|
|
8646
|
+
},
|
|
8647
|
+
mindblown: {
|
|
8648
|
+
interval: 160,
|
|
8649
|
+
frames: [
|
|
8650
|
+
"\u{1F610} ",
|
|
8651
|
+
"\u{1F610} ",
|
|
8652
|
+
"\u{1F62E} ",
|
|
8653
|
+
"\u{1F62E} ",
|
|
8654
|
+
"\u{1F626} ",
|
|
8655
|
+
"\u{1F626} ",
|
|
8656
|
+
"\u{1F627} ",
|
|
8657
|
+
"\u{1F627} ",
|
|
8658
|
+
"\u{1F92F} ",
|
|
8659
|
+
"\u{1F4A5} ",
|
|
8660
|
+
"\u2728 ",
|
|
8661
|
+
"\u3000 ",
|
|
8662
|
+
"\u3000 ",
|
|
8663
|
+
"\u3000 "
|
|
8664
|
+
]
|
|
8665
|
+
},
|
|
8666
|
+
speaker: {
|
|
8667
|
+
interval: 160,
|
|
8668
|
+
frames: [
|
|
8669
|
+
"\u{1F508} ",
|
|
8670
|
+
"\u{1F509} ",
|
|
8671
|
+
"\u{1F50A} ",
|
|
8672
|
+
"\u{1F509} "
|
|
8673
|
+
]
|
|
8674
|
+
},
|
|
8675
|
+
orangePulse: {
|
|
8676
|
+
interval: 100,
|
|
8677
|
+
frames: [
|
|
8678
|
+
"\u{1F538} ",
|
|
8679
|
+
"\u{1F536} ",
|
|
8680
|
+
"\u{1F7E0} ",
|
|
8681
|
+
"\u{1F7E0} ",
|
|
8682
|
+
"\u{1F536} "
|
|
8683
|
+
]
|
|
8684
|
+
},
|
|
8685
|
+
bluePulse: {
|
|
8686
|
+
interval: 100,
|
|
8687
|
+
frames: [
|
|
8688
|
+
"\u{1F539} ",
|
|
8689
|
+
"\u{1F537} ",
|
|
8690
|
+
"\u{1F535} ",
|
|
8691
|
+
"\u{1F535} ",
|
|
8692
|
+
"\u{1F537} "
|
|
8693
|
+
]
|
|
8694
|
+
},
|
|
8695
|
+
orangeBluePulse: {
|
|
8696
|
+
interval: 100,
|
|
8697
|
+
frames: [
|
|
8698
|
+
"\u{1F538} ",
|
|
8699
|
+
"\u{1F536} ",
|
|
8700
|
+
"\u{1F7E0} ",
|
|
8701
|
+
"\u{1F7E0} ",
|
|
8702
|
+
"\u{1F536} ",
|
|
8703
|
+
"\u{1F539} ",
|
|
8704
|
+
"\u{1F537} ",
|
|
8705
|
+
"\u{1F535} ",
|
|
8706
|
+
"\u{1F535} ",
|
|
8707
|
+
"\u{1F537} "
|
|
8708
|
+
]
|
|
8709
|
+
},
|
|
8710
|
+
timeTravel: {
|
|
8711
|
+
interval: 100,
|
|
8712
|
+
frames: [
|
|
8713
|
+
"\u{1F55B} ",
|
|
8714
|
+
"\u{1F55A} ",
|
|
8715
|
+
"\u{1F559} ",
|
|
8716
|
+
"\u{1F558} ",
|
|
8717
|
+
"\u{1F557} ",
|
|
8718
|
+
"\u{1F556} ",
|
|
8719
|
+
"\u{1F555} ",
|
|
8720
|
+
"\u{1F554} ",
|
|
8721
|
+
"\u{1F553} ",
|
|
8722
|
+
"\u{1F552} ",
|
|
8723
|
+
"\u{1F551} ",
|
|
8724
|
+
"\u{1F550} "
|
|
8725
|
+
]
|
|
8726
|
+
},
|
|
8727
|
+
aesthetic: {
|
|
8728
|
+
interval: 80,
|
|
8729
|
+
frames: [
|
|
8730
|
+
"\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1",
|
|
8731
|
+
"\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1",
|
|
8732
|
+
"\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1",
|
|
8733
|
+
"\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1",
|
|
8734
|
+
"\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1",
|
|
8735
|
+
"\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1",
|
|
8736
|
+
"\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0",
|
|
8737
|
+
"\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"
|
|
8738
|
+
]
|
|
8739
|
+
},
|
|
8740
|
+
dwarfFortress: {
|
|
8741
|
+
interval: 80,
|
|
8742
|
+
frames: [
|
|
8743
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8744
|
+
"\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8745
|
+
"\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8746
|
+
"\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8747
|
+
"\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8748
|
+
"\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8749
|
+
"\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8750
|
+
"\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8751
|
+
"\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8752
|
+
"\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8753
|
+
" \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8754
|
+
" \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8755
|
+
" \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8756
|
+
" \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8757
|
+
" \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8758
|
+
" \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8759
|
+
" \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8760
|
+
" \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8761
|
+
" \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8762
|
+
" \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8763
|
+
" \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8764
|
+
" \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8765
|
+
" \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8766
|
+
" \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8767
|
+
" \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8768
|
+
" \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8769
|
+
" \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8770
|
+
" \u263A \u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8771
|
+
" \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8772
|
+
" \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8773
|
+
" \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
|
|
8774
|
+
" \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
|
|
8775
|
+
" \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
|
|
8776
|
+
" \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
|
|
8777
|
+
" \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
|
|
8778
|
+
" \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
|
|
8779
|
+
" \u263A \u2588\u2588\xA3\xA3\xA3 ",
|
|
8780
|
+
" \u263A\u2588\u2588\xA3\xA3\xA3 ",
|
|
8781
|
+
" \u263A\u2588\u2588\xA3\xA3\xA3 ",
|
|
8782
|
+
" \u263A\u2593\u2588\xA3\xA3\xA3 ",
|
|
8783
|
+
" \u263A\u2593\u2588\xA3\xA3\xA3 ",
|
|
8784
|
+
" \u263A\u2592\u2588\xA3\xA3\xA3 ",
|
|
8785
|
+
" \u263A\u2592\u2588\xA3\xA3\xA3 ",
|
|
8786
|
+
" \u263A\u2591\u2588\xA3\xA3\xA3 ",
|
|
8787
|
+
" \u263A\u2591\u2588\xA3\xA3\xA3 ",
|
|
8788
|
+
" \u263A \u2588\xA3\xA3\xA3 ",
|
|
8789
|
+
" \u263A\u2588\xA3\xA3\xA3 ",
|
|
8790
|
+
" \u263A\u2588\xA3\xA3\xA3 ",
|
|
8791
|
+
" \u263A\u2593\xA3\xA3\xA3 ",
|
|
8792
|
+
" \u263A\u2593\xA3\xA3\xA3 ",
|
|
8793
|
+
" \u263A\u2592\xA3\xA3\xA3 ",
|
|
8794
|
+
" \u263A\u2592\xA3\xA3\xA3 ",
|
|
8795
|
+
" \u263A\u2591\xA3\xA3\xA3 ",
|
|
8796
|
+
" \u263A\u2591\xA3\xA3\xA3 ",
|
|
8797
|
+
" \u263A \xA3\xA3\xA3 ",
|
|
8798
|
+
" \u263A\xA3\xA3\xA3 ",
|
|
8799
|
+
" \u263A\xA3\xA3\xA3 ",
|
|
8800
|
+
" \u263A\u2593\xA3\xA3 ",
|
|
8801
|
+
" \u263A\u2593\xA3\xA3 ",
|
|
8802
|
+
" \u263A\u2592\xA3\xA3 ",
|
|
8803
|
+
" \u263A\u2592\xA3\xA3 ",
|
|
8804
|
+
" \u263A\u2591\xA3\xA3 ",
|
|
8805
|
+
" \u263A\u2591\xA3\xA3 ",
|
|
8806
|
+
" \u263A \xA3\xA3 ",
|
|
8807
|
+
" \u263A\xA3\xA3 ",
|
|
8808
|
+
" \u263A\xA3\xA3 ",
|
|
8809
|
+
" \u263A\u2593\xA3 ",
|
|
8810
|
+
" \u263A\u2593\xA3 ",
|
|
8811
|
+
" \u263A\u2592\xA3 ",
|
|
8812
|
+
" \u263A\u2592\xA3 ",
|
|
8813
|
+
" \u263A\u2591\xA3 ",
|
|
8814
|
+
" \u263A\u2591\xA3 ",
|
|
8815
|
+
" \u263A \xA3 ",
|
|
8816
|
+
" \u263A\xA3 ",
|
|
8817
|
+
" \u263A\xA3 ",
|
|
8818
|
+
" \u263A\u2593 ",
|
|
8819
|
+
" \u263A\u2593 ",
|
|
8820
|
+
" \u263A\u2592 ",
|
|
8821
|
+
" \u263A\u2592 ",
|
|
8822
|
+
" \u263A\u2591 ",
|
|
8823
|
+
" \u263A\u2591 ",
|
|
8824
|
+
" \u263A ",
|
|
8825
|
+
" \u263A &",
|
|
8826
|
+
" \u263A \u263C&",
|
|
8827
|
+
" \u263A \u263C &",
|
|
8828
|
+
" \u263A\u263C &",
|
|
8829
|
+
" \u263A\u263C & ",
|
|
8830
|
+
" \u203C & ",
|
|
8831
|
+
" \u263A & ",
|
|
8832
|
+
" \u203C & ",
|
|
8833
|
+
" \u263A & ",
|
|
8834
|
+
" \u203C & ",
|
|
8835
|
+
" \u263A & ",
|
|
8836
|
+
"\u203C & ",
|
|
8837
|
+
" & ",
|
|
8838
|
+
" & ",
|
|
8839
|
+
" & \u2591 ",
|
|
8840
|
+
" & \u2592 ",
|
|
8841
|
+
" & \u2593 ",
|
|
8842
|
+
" & \xA3 ",
|
|
8843
|
+
" & \u2591\xA3 ",
|
|
8844
|
+
" & \u2592\xA3 ",
|
|
8845
|
+
" & \u2593\xA3 ",
|
|
8846
|
+
" & \xA3\xA3 ",
|
|
8847
|
+
" & \u2591\xA3\xA3 ",
|
|
8848
|
+
" & \u2592\xA3\xA3 ",
|
|
8849
|
+
"& \u2593\xA3\xA3 ",
|
|
8850
|
+
"& \xA3\xA3\xA3 ",
|
|
8851
|
+
" \u2591\xA3\xA3\xA3 ",
|
|
8852
|
+
" \u2592\xA3\xA3\xA3 ",
|
|
8853
|
+
" \u2593\xA3\xA3\xA3 ",
|
|
8854
|
+
" \u2588\xA3\xA3\xA3 ",
|
|
8855
|
+
" \u2591\u2588\xA3\xA3\xA3 ",
|
|
8856
|
+
" \u2592\u2588\xA3\xA3\xA3 ",
|
|
8857
|
+
" \u2593\u2588\xA3\xA3\xA3 ",
|
|
8858
|
+
" \u2588\u2588\xA3\xA3\xA3 ",
|
|
8859
|
+
" \u2591\u2588\u2588\xA3\xA3\xA3 ",
|
|
8860
|
+
" \u2592\u2588\u2588\xA3\xA3\xA3 ",
|
|
8861
|
+
" \u2593\u2588\u2588\xA3\xA3\xA3 ",
|
|
8862
|
+
" \u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8863
|
+
" \u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8864
|
+
" \u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8865
|
+
" \u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8866
|
+
" \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8867
|
+
" \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8868
|
+
" \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8869
|
+
" \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8870
|
+
" \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8871
|
+
" \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8872
|
+
" \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8873
|
+
" \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8874
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
|
|
8875
|
+
" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "
|
|
8876
|
+
]
|
|
8877
|
+
},
|
|
8878
|
+
fish: {
|
|
8879
|
+
interval: 80,
|
|
8880
|
+
frames: [
|
|
8881
|
+
"~~~~~~~~~~~~~~~~~~~~",
|
|
8882
|
+
"> ~~~~~~~~~~~~~~~~~~",
|
|
8883
|
+
"\xBA> ~~~~~~~~~~~~~~~~~",
|
|
8884
|
+
"(\xBA> ~~~~~~~~~~~~~~~~",
|
|
8885
|
+
"((\xBA> ~~~~~~~~~~~~~~~",
|
|
8886
|
+
"<((\xBA> ~~~~~~~~~~~~~~",
|
|
8887
|
+
"><((\xBA> ~~~~~~~~~~~~~",
|
|
8888
|
+
" ><((\xBA> ~~~~~~~~~~~~",
|
|
8889
|
+
"~ ><((\xBA> ~~~~~~~~~~~",
|
|
8890
|
+
"~~ <>((\xBA> ~~~~~~~~~~",
|
|
8891
|
+
"~~~ ><((\xBA> ~~~~~~~~~",
|
|
8892
|
+
"~~~~ <>((\xBA> ~~~~~~~~",
|
|
8893
|
+
"~~~~~ ><((\xBA> ~~~~~~~",
|
|
8894
|
+
"~~~~~~ <>((\xBA> ~~~~~~",
|
|
8895
|
+
"~~~~~~~ ><((\xBA> ~~~~~",
|
|
8896
|
+
"~~~~~~~~ <>((\xBA> ~~~~",
|
|
8897
|
+
"~~~~~~~~~ ><((\xBA> ~~~",
|
|
8898
|
+
"~~~~~~~~~~ <>((\xBA> ~~",
|
|
8899
|
+
"~~~~~~~~~~~ ><((\xBA> ~",
|
|
8900
|
+
"~~~~~~~~~~~~ <>((\xBA> ",
|
|
8901
|
+
"~~~~~~~~~~~~~ ><((\xBA>",
|
|
8902
|
+
"~~~~~~~~~~~~~~ <>((\xBA",
|
|
8903
|
+
"~~~~~~~~~~~~~~~ ><((",
|
|
8904
|
+
"~~~~~~~~~~~~~~~~ <>(",
|
|
8905
|
+
"~~~~~~~~~~~~~~~~~ ><",
|
|
8906
|
+
"~~~~~~~~~~~~~~~~~~ <",
|
|
8907
|
+
"~~~~~~~~~~~~~~~~~~~~"
|
|
8908
|
+
]
|
|
8909
|
+
}
|
|
8910
|
+
};
|
|
8911
|
+
|
|
8912
|
+
// node_modules/cli-spinners/index.js
|
|
8913
|
+
var cli_spinners_default = spinners_default;
|
|
8914
|
+
var spinnersList = Object.keys(spinners_default);
|
|
8915
|
+
|
|
8916
|
+
// node_modules/log-symbols/index.js
|
|
8917
|
+
init_esm_shims();
|
|
8918
|
+
|
|
8919
|
+
// node_modules/log-symbols/symbols.js
|
|
8920
|
+
var symbols_exports = {};
|
|
8921
|
+
__export(symbols_exports, {
|
|
8922
|
+
error: () => error,
|
|
8923
|
+
info: () => info,
|
|
8924
|
+
success: () => success,
|
|
8925
|
+
warning: () => warning
|
|
8926
|
+
});
|
|
8927
|
+
init_esm_shims();
|
|
8928
|
+
|
|
8929
|
+
// node_modules/yoctocolors/base.js
|
|
8930
|
+
init_esm_shims();
|
|
8931
|
+
import tty2 from "tty";
|
|
8932
|
+
var hasColors = tty2?.WriteStream?.prototype?.hasColors?.() ?? false;
|
|
8933
|
+
var format = (open, close) => {
|
|
8934
|
+
if (!hasColors) {
|
|
8935
|
+
return (input) => input;
|
|
8936
|
+
}
|
|
8937
|
+
const openCode = `\x1B[${open}m`;
|
|
8938
|
+
const closeCode = `\x1B[${close}m`;
|
|
8939
|
+
return (input) => {
|
|
8940
|
+
const string = input + "";
|
|
8941
|
+
let index = string.indexOf(closeCode);
|
|
8942
|
+
if (index === -1) {
|
|
8943
|
+
return openCode + string + closeCode;
|
|
8944
|
+
}
|
|
8945
|
+
let result = openCode;
|
|
8946
|
+
let lastIndex = 0;
|
|
8947
|
+
const reopenOnNestedClose = close === 22;
|
|
8948
|
+
const replaceCode = (reopenOnNestedClose ? closeCode : "") + openCode;
|
|
8949
|
+
while (index !== -1) {
|
|
8950
|
+
result += string.slice(lastIndex, index) + replaceCode;
|
|
8951
|
+
lastIndex = index + closeCode.length;
|
|
8952
|
+
index = string.indexOf(closeCode, lastIndex);
|
|
8953
|
+
}
|
|
8954
|
+
result += string.slice(lastIndex) + closeCode;
|
|
8955
|
+
return result;
|
|
8956
|
+
};
|
|
8957
|
+
};
|
|
8958
|
+
var reset = format(0, 0);
|
|
8959
|
+
var bold = format(1, 22);
|
|
8960
|
+
var dim = format(2, 22);
|
|
8961
|
+
var italic = format(3, 23);
|
|
8962
|
+
var underline = format(4, 24);
|
|
8963
|
+
var overline = format(53, 55);
|
|
8964
|
+
var inverse = format(7, 27);
|
|
8965
|
+
var hidden = format(8, 28);
|
|
8966
|
+
var strikethrough = format(9, 29);
|
|
8967
|
+
var black = format(30, 39);
|
|
8968
|
+
var red = format(31, 39);
|
|
8969
|
+
var green = format(32, 39);
|
|
8970
|
+
var yellow = format(33, 39);
|
|
8971
|
+
var blue = format(34, 39);
|
|
8972
|
+
var magenta = format(35, 39);
|
|
8973
|
+
var cyan = format(36, 39);
|
|
8974
|
+
var white = format(37, 39);
|
|
8975
|
+
var gray = format(90, 39);
|
|
8976
|
+
var bgBlack = format(40, 49);
|
|
8977
|
+
var bgRed = format(41, 49);
|
|
8978
|
+
var bgGreen = format(42, 49);
|
|
8979
|
+
var bgYellow = format(43, 49);
|
|
8980
|
+
var bgBlue = format(44, 49);
|
|
8981
|
+
var bgMagenta = format(45, 49);
|
|
8982
|
+
var bgCyan = format(46, 49);
|
|
8983
|
+
var bgWhite = format(47, 49);
|
|
8984
|
+
var bgGray = format(100, 49);
|
|
8985
|
+
var redBright = format(91, 39);
|
|
8986
|
+
var greenBright = format(92, 39);
|
|
8987
|
+
var yellowBright = format(93, 39);
|
|
8988
|
+
var blueBright = format(94, 39);
|
|
8989
|
+
var magentaBright = format(95, 39);
|
|
8990
|
+
var cyanBright = format(96, 39);
|
|
8991
|
+
var whiteBright = format(97, 39);
|
|
8992
|
+
var bgRedBright = format(101, 49);
|
|
8993
|
+
var bgGreenBright = format(102, 49);
|
|
8994
|
+
var bgYellowBright = format(103, 49);
|
|
8995
|
+
var bgBlueBright = format(104, 49);
|
|
8996
|
+
var bgMagentaBright = format(105, 49);
|
|
8997
|
+
var bgCyanBright = format(106, 49);
|
|
8998
|
+
var bgWhiteBright = format(107, 49);
|
|
8999
|
+
|
|
9000
|
+
// node_modules/is-unicode-supported/index.js
|
|
9001
|
+
init_esm_shims();
|
|
9002
|
+
import process6 from "process";
|
|
9003
|
+
function isUnicodeSupported() {
|
|
9004
|
+
const { env: env2 } = process6;
|
|
9005
|
+
const { TERM, TERM_PROGRAM } = env2;
|
|
9006
|
+
if (process6.platform !== "win32") {
|
|
9007
|
+
return TERM !== "linux";
|
|
9008
|
+
}
|
|
9009
|
+
return Boolean(env2.WT_SESSION) || Boolean(env2.TERMINUS_SUBLIME) || env2.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env2.TERMINAL_EMULATOR === "JetBrains-JediTerm";
|
|
9010
|
+
}
|
|
9011
|
+
|
|
9012
|
+
// node_modules/log-symbols/symbols.js
|
|
9013
|
+
var _isUnicodeSupported = isUnicodeSupported();
|
|
9014
|
+
var info = blue(_isUnicodeSupported ? "\u2139" : "i");
|
|
9015
|
+
var success = green(_isUnicodeSupported ? "\u2714" : "\u221A");
|
|
9016
|
+
var warning = yellow(_isUnicodeSupported ? "\u26A0" : "\u203C");
|
|
9017
|
+
var error = red(_isUnicodeSupported ? "\u2716" : "\xD7");
|
|
9018
|
+
|
|
9019
|
+
// node_modules/string-width/index.js
|
|
9020
|
+
init_esm_shims();
|
|
9021
|
+
|
|
9022
|
+
// node_modules/strip-ansi/index.js
|
|
9023
|
+
init_esm_shims();
|
|
9024
|
+
|
|
9025
|
+
// node_modules/ansi-regex/index.js
|
|
9026
|
+
init_esm_shims();
|
|
9027
|
+
function ansiRegex({ onlyFirst = false } = {}) {
|
|
9028
|
+
const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
|
|
9029
|
+
const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
|
|
9030
|
+
const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
|
|
9031
|
+
const pattern = `${osc}|${csi}`;
|
|
9032
|
+
return new RegExp(pattern, onlyFirst ? void 0 : "g");
|
|
9033
|
+
}
|
|
9034
|
+
|
|
9035
|
+
// node_modules/strip-ansi/index.js
|
|
9036
|
+
var regex = ansiRegex();
|
|
9037
|
+
function stripAnsi(string) {
|
|
9038
|
+
if (typeof string !== "string") {
|
|
9039
|
+
throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
|
|
9040
|
+
}
|
|
9041
|
+
return string.replace(regex, "");
|
|
9042
|
+
}
|
|
9043
|
+
|
|
9044
|
+
// node_modules/get-east-asian-width/index.js
|
|
9045
|
+
init_esm_shims();
|
|
9046
|
+
|
|
9047
|
+
// node_modules/get-east-asian-width/lookup.js
|
|
9048
|
+
init_esm_shims();
|
|
9049
|
+
|
|
9050
|
+
// node_modules/get-east-asian-width/lookup-data.js
|
|
9051
|
+
init_esm_shims();
|
|
9052
|
+
var ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
|
|
9053
|
+
var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
|
|
9054
|
+
var halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
|
|
9055
|
+
var narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
|
|
9056
|
+
var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
|
|
9057
|
+
|
|
9058
|
+
// node_modules/get-east-asian-width/utilities.js
|
|
9059
|
+
init_esm_shims();
|
|
9060
|
+
var isInRange = (ranges, codePoint) => {
|
|
9061
|
+
let low = 0;
|
|
9062
|
+
let high = Math.floor(ranges.length / 2) - 1;
|
|
9063
|
+
while (low <= high) {
|
|
9064
|
+
const mid = Math.floor((low + high) / 2);
|
|
9065
|
+
const i = mid * 2;
|
|
9066
|
+
if (codePoint < ranges[i]) {
|
|
9067
|
+
high = mid - 1;
|
|
9068
|
+
} else if (codePoint > ranges[i + 1]) {
|
|
9069
|
+
low = mid + 1;
|
|
9070
|
+
} else {
|
|
9071
|
+
return true;
|
|
9072
|
+
}
|
|
9073
|
+
}
|
|
9074
|
+
return false;
|
|
9075
|
+
};
|
|
9076
|
+
|
|
9077
|
+
// node_modules/get-east-asian-width/lookup.js
|
|
9078
|
+
var minimumAmbiguousCodePoint = ambiguousRanges[0];
|
|
9079
|
+
var maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
|
|
9080
|
+
var minimumFullWidthCodePoint = fullwidthRanges[0];
|
|
9081
|
+
var maximumFullWidthCodePoint = fullwidthRanges.at(-1);
|
|
9082
|
+
var minimumHalfWidthCodePoint = halfwidthRanges[0];
|
|
9083
|
+
var maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
|
|
9084
|
+
var minimumNarrowCodePoint = narrowRanges[0];
|
|
9085
|
+
var maximumNarrowCodePoint = narrowRanges.at(-1);
|
|
9086
|
+
var minimumWideCodePoint = wideRanges[0];
|
|
9087
|
+
var maximumWideCodePoint = wideRanges.at(-1);
|
|
9088
|
+
var commonCjkCodePoint = 19968;
|
|
9089
|
+
var [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
|
|
9090
|
+
function findWideFastPathRange(ranges) {
|
|
9091
|
+
let fastPathStart = ranges[0];
|
|
9092
|
+
let fastPathEnd = ranges[1];
|
|
9093
|
+
for (let index = 0; index < ranges.length; index += 2) {
|
|
9094
|
+
const start = ranges[index];
|
|
9095
|
+
const end = ranges[index + 1];
|
|
9096
|
+
if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
|
|
9097
|
+
return [start, end];
|
|
9098
|
+
}
|
|
9099
|
+
if (end - start > fastPathEnd - fastPathStart) {
|
|
9100
|
+
fastPathStart = start;
|
|
9101
|
+
fastPathEnd = end;
|
|
9102
|
+
}
|
|
9103
|
+
}
|
|
9104
|
+
return [fastPathStart, fastPathEnd];
|
|
6811
9105
|
}
|
|
9106
|
+
var isAmbiguous = (codePoint) => {
|
|
9107
|
+
if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
|
|
9108
|
+
return false;
|
|
9109
|
+
}
|
|
9110
|
+
return isInRange(ambiguousRanges, codePoint);
|
|
9111
|
+
};
|
|
9112
|
+
var isFullWidth = (codePoint) => {
|
|
9113
|
+
if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
|
|
9114
|
+
return false;
|
|
9115
|
+
}
|
|
9116
|
+
return isInRange(fullwidthRanges, codePoint);
|
|
9117
|
+
};
|
|
9118
|
+
var isWide = (codePoint) => {
|
|
9119
|
+
if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
|
|
9120
|
+
return true;
|
|
9121
|
+
}
|
|
9122
|
+
if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
|
|
9123
|
+
return false;
|
|
9124
|
+
}
|
|
9125
|
+
return isInRange(wideRanges, codePoint);
|
|
9126
|
+
};
|
|
9127
|
+
|
|
9128
|
+
// node_modules/get-east-asian-width/index.js
|
|
9129
|
+
function validate(codePoint) {
|
|
9130
|
+
if (!Number.isSafeInteger(codePoint)) {
|
|
9131
|
+
throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
|
|
9132
|
+
}
|
|
9133
|
+
}
|
|
9134
|
+
function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
|
|
9135
|
+
validate(codePoint);
|
|
9136
|
+
if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
|
|
9137
|
+
return 2;
|
|
9138
|
+
}
|
|
9139
|
+
return 1;
|
|
9140
|
+
}
|
|
9141
|
+
|
|
9142
|
+
// node_modules/string-width/index.js
|
|
9143
|
+
var segmenter = new Intl.Segmenter();
|
|
9144
|
+
var zeroWidthClusterRegex = new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Format}|\\p{Mark}|\\p{Surrogate})+$", "v");
|
|
9145
|
+
var leadingNonPrintingRegex = new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+", "v");
|
|
9146
|
+
var rgiEmojiRegex = new RegExp("^\\p{RGI_Emoji}$", "v");
|
|
9147
|
+
var unqualifiedKeycapRegex = /^[\d#*]\u20E3$/;
|
|
9148
|
+
var extendedPictographicRegex = /\p{Extended_Pictographic}/gu;
|
|
9149
|
+
function isDoubleWidthNonRgiEmojiSequence(segment) {
|
|
9150
|
+
if (segment.length > 50) {
|
|
9151
|
+
return false;
|
|
9152
|
+
}
|
|
9153
|
+
if (unqualifiedKeycapRegex.test(segment)) {
|
|
9154
|
+
return true;
|
|
9155
|
+
}
|
|
9156
|
+
if (segment.includes("\u200D")) {
|
|
9157
|
+
const pictographics = segment.match(extendedPictographicRegex);
|
|
9158
|
+
return pictographics !== null && pictographics.length >= 2;
|
|
9159
|
+
}
|
|
9160
|
+
return false;
|
|
9161
|
+
}
|
|
9162
|
+
function baseVisible(segment) {
|
|
9163
|
+
return segment.replace(leadingNonPrintingRegex, "");
|
|
9164
|
+
}
|
|
9165
|
+
function isZeroWidthCluster(segment) {
|
|
9166
|
+
return zeroWidthClusterRegex.test(segment);
|
|
9167
|
+
}
|
|
9168
|
+
function trailingHalfwidthWidth(segment, eastAsianWidthOptions) {
|
|
9169
|
+
let extra = 0;
|
|
9170
|
+
if (segment.length > 1) {
|
|
9171
|
+
for (const char of segment.slice(1)) {
|
|
9172
|
+
if (char >= "\uFF00" && char <= "\uFFEF") {
|
|
9173
|
+
extra += eastAsianWidth(char.codePointAt(0), eastAsianWidthOptions);
|
|
9174
|
+
}
|
|
9175
|
+
}
|
|
9176
|
+
}
|
|
9177
|
+
return extra;
|
|
9178
|
+
}
|
|
9179
|
+
function stringWidth(input, options2 = {}) {
|
|
9180
|
+
if (typeof input !== "string" || input.length === 0) {
|
|
9181
|
+
return 0;
|
|
9182
|
+
}
|
|
9183
|
+
const {
|
|
9184
|
+
ambiguousIsNarrow = true,
|
|
9185
|
+
countAnsiEscapeCodes = false
|
|
9186
|
+
} = options2;
|
|
9187
|
+
let string = input;
|
|
9188
|
+
if (!countAnsiEscapeCodes && (string.includes("\x1B") || string.includes("\x9B"))) {
|
|
9189
|
+
string = stripAnsi(string);
|
|
9190
|
+
}
|
|
9191
|
+
if (string.length === 0) {
|
|
9192
|
+
return 0;
|
|
9193
|
+
}
|
|
9194
|
+
if (/^[\u0020-\u007E]*$/.test(string)) {
|
|
9195
|
+
return string.length;
|
|
9196
|
+
}
|
|
9197
|
+
let width = 0;
|
|
9198
|
+
const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
|
|
9199
|
+
for (const { segment } of segmenter.segment(string)) {
|
|
9200
|
+
if (isZeroWidthCluster(segment)) {
|
|
9201
|
+
continue;
|
|
9202
|
+
}
|
|
9203
|
+
if (rgiEmojiRegex.test(segment) || isDoubleWidthNonRgiEmojiSequence(segment)) {
|
|
9204
|
+
width += 2;
|
|
9205
|
+
continue;
|
|
9206
|
+
}
|
|
9207
|
+
const codePoint = baseVisible(segment).codePointAt(0);
|
|
9208
|
+
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
9209
|
+
width += trailingHalfwidthWidth(segment, eastAsianWidthOptions);
|
|
9210
|
+
}
|
|
9211
|
+
return width;
|
|
9212
|
+
}
|
|
9213
|
+
|
|
9214
|
+
// node_modules/is-interactive/index.js
|
|
9215
|
+
init_esm_shims();
|
|
9216
|
+
function isInteractive({ stream = process.stdout } = {}) {
|
|
9217
|
+
return Boolean(
|
|
9218
|
+
stream && stream.isTTY && process.env.TERM !== "dumb" && !("CI" in process.env)
|
|
9219
|
+
);
|
|
9220
|
+
}
|
|
9221
|
+
|
|
9222
|
+
// node_modules/stdin-discarder/index.js
|
|
9223
|
+
init_esm_shims();
|
|
9224
|
+
import process7 from "process";
|
|
9225
|
+
var ASCII_ETX_CODE = 3;
|
|
9226
|
+
var StdinDiscarder = class {
|
|
9227
|
+
#activeCount = 0;
|
|
9228
|
+
#stdin;
|
|
9229
|
+
#stdinWasPaused = false;
|
|
9230
|
+
#stdinWasRaw = false;
|
|
9231
|
+
#handleInputBound = (chunk) => {
|
|
9232
|
+
if (!chunk?.length) {
|
|
9233
|
+
return;
|
|
9234
|
+
}
|
|
9235
|
+
const code = typeof chunk === "string" ? chunk.codePointAt(0) : chunk[0];
|
|
9236
|
+
if (code === ASCII_ETX_CODE) {
|
|
9237
|
+
if (process7.listenerCount("SIGINT") > 0) {
|
|
9238
|
+
process7.emit("SIGINT");
|
|
9239
|
+
} else {
|
|
9240
|
+
process7.kill(process7.pid, "SIGINT");
|
|
9241
|
+
}
|
|
9242
|
+
}
|
|
9243
|
+
};
|
|
9244
|
+
start() {
|
|
9245
|
+
this.#activeCount++;
|
|
9246
|
+
if (this.#activeCount === 1) {
|
|
9247
|
+
this.#realStart();
|
|
9248
|
+
}
|
|
9249
|
+
}
|
|
9250
|
+
stop() {
|
|
9251
|
+
if (this.#activeCount === 0) {
|
|
9252
|
+
return;
|
|
9253
|
+
}
|
|
9254
|
+
if (--this.#activeCount === 0) {
|
|
9255
|
+
this.#realStop();
|
|
9256
|
+
}
|
|
9257
|
+
}
|
|
9258
|
+
#realStart() {
|
|
9259
|
+
const { stdin } = process7;
|
|
9260
|
+
if (process7.platform === "win32" || !stdin?.isTTY || typeof stdin.setRawMode !== "function") {
|
|
9261
|
+
this.#stdin = void 0;
|
|
9262
|
+
return;
|
|
9263
|
+
}
|
|
9264
|
+
this.#stdin = stdin;
|
|
9265
|
+
this.#stdinWasPaused = stdin.isPaused();
|
|
9266
|
+
this.#stdinWasRaw = Boolean(stdin.isRaw);
|
|
9267
|
+
stdin.setRawMode(true);
|
|
9268
|
+
stdin.prependListener("data", this.#handleInputBound);
|
|
9269
|
+
if (this.#stdinWasPaused) {
|
|
9270
|
+
stdin.resume();
|
|
9271
|
+
}
|
|
9272
|
+
}
|
|
9273
|
+
#realStop() {
|
|
9274
|
+
if (!this.#stdin) {
|
|
9275
|
+
return;
|
|
9276
|
+
}
|
|
9277
|
+
const stdin = this.#stdin;
|
|
9278
|
+
stdin.off("data", this.#handleInputBound);
|
|
9279
|
+
if (stdin.isTTY) {
|
|
9280
|
+
stdin.setRawMode?.(this.#stdinWasRaw);
|
|
9281
|
+
}
|
|
9282
|
+
if (this.#stdinWasPaused) {
|
|
9283
|
+
stdin.pause();
|
|
9284
|
+
}
|
|
9285
|
+
this.#stdin = void 0;
|
|
9286
|
+
this.#stdinWasPaused = false;
|
|
9287
|
+
this.#stdinWasRaw = false;
|
|
9288
|
+
}
|
|
9289
|
+
};
|
|
9290
|
+
var stdinDiscarder = new StdinDiscarder();
|
|
9291
|
+
var stdin_discarder_default = Object.freeze(stdinDiscarder);
|
|
9292
|
+
|
|
9293
|
+
// node_modules/ora/index.js
|
|
9294
|
+
var RENDER_DEFERRAL_TIMEOUT = 200;
|
|
9295
|
+
var SYNCHRONIZED_OUTPUT_ENABLE = "\x1B[?2026h";
|
|
9296
|
+
var SYNCHRONIZED_OUTPUT_DISABLE = "\x1B[?2026l";
|
|
9297
|
+
var activeHooksPerStream = /* @__PURE__ */ new Map();
|
|
9298
|
+
var Ora = class {
|
|
9299
|
+
#linesToClear = 0;
|
|
9300
|
+
#frameIndex = -1;
|
|
9301
|
+
#lastFrameTime = 0;
|
|
9302
|
+
#options;
|
|
9303
|
+
#spinner;
|
|
9304
|
+
#stream;
|
|
9305
|
+
#id;
|
|
9306
|
+
#hookedStreams = /* @__PURE__ */ new Map();
|
|
9307
|
+
#isInternalWrite = false;
|
|
9308
|
+
#drainHandler;
|
|
9309
|
+
#deferRenderTimer;
|
|
9310
|
+
#isDiscardingStdin = false;
|
|
9311
|
+
color;
|
|
9312
|
+
// Helper to execute writes while preventing hook recursion
|
|
9313
|
+
#internalWrite(fn) {
|
|
9314
|
+
this.#isInternalWrite = true;
|
|
9315
|
+
try {
|
|
9316
|
+
return fn();
|
|
9317
|
+
} finally {
|
|
9318
|
+
this.#isInternalWrite = false;
|
|
9319
|
+
}
|
|
9320
|
+
}
|
|
9321
|
+
// Helper to render if still spinning
|
|
9322
|
+
#tryRender() {
|
|
9323
|
+
if (this.isSpinning) {
|
|
9324
|
+
this.render();
|
|
9325
|
+
}
|
|
9326
|
+
}
|
|
9327
|
+
#stringifyChunk(chunk, encoding) {
|
|
9328
|
+
if (chunk === void 0 || chunk === null) {
|
|
9329
|
+
return "";
|
|
9330
|
+
}
|
|
9331
|
+
if (typeof chunk === "string") {
|
|
9332
|
+
return chunk;
|
|
9333
|
+
}
|
|
9334
|
+
if (Buffer.isBuffer(chunk) || ArrayBuffer.isView(chunk)) {
|
|
9335
|
+
const normalizedEncoding = typeof encoding === "string" && encoding && encoding !== "buffer" ? encoding : "utf8";
|
|
9336
|
+
return Buffer.from(chunk).toString(normalizedEncoding);
|
|
9337
|
+
}
|
|
9338
|
+
return String(chunk);
|
|
9339
|
+
}
|
|
9340
|
+
#chunkTerminatesLine(chunkString) {
|
|
9341
|
+
if (!chunkString) {
|
|
9342
|
+
return false;
|
|
9343
|
+
}
|
|
9344
|
+
const lastCharacter = chunkString.at(-1);
|
|
9345
|
+
return lastCharacter === "\n" || lastCharacter === "\r";
|
|
9346
|
+
}
|
|
9347
|
+
#scheduleRenderDeferral() {
|
|
9348
|
+
if (this.#deferRenderTimer) {
|
|
9349
|
+
return;
|
|
9350
|
+
}
|
|
9351
|
+
this.#deferRenderTimer = setTimeout(() => {
|
|
9352
|
+
this.#deferRenderTimer = void 0;
|
|
9353
|
+
if (this.isSpinning) {
|
|
9354
|
+
this.#tryRender();
|
|
9355
|
+
}
|
|
9356
|
+
}, RENDER_DEFERRAL_TIMEOUT);
|
|
9357
|
+
if (typeof this.#deferRenderTimer?.unref === "function") {
|
|
9358
|
+
this.#deferRenderTimer.unref();
|
|
9359
|
+
}
|
|
9360
|
+
}
|
|
9361
|
+
#clearRenderDeferral() {
|
|
9362
|
+
if (this.#deferRenderTimer) {
|
|
9363
|
+
clearTimeout(this.#deferRenderTimer);
|
|
9364
|
+
this.#deferRenderTimer = void 0;
|
|
9365
|
+
}
|
|
9366
|
+
}
|
|
9367
|
+
// Helper to build complete line with symbol, text, prefix, and suffix
|
|
9368
|
+
#buildOutputLine(symbol, text, prefixText, suffixText) {
|
|
9369
|
+
const fullPrefixText = this.#getFullPrefixText(prefixText, " ");
|
|
9370
|
+
const separatorText = symbol ? " " : "";
|
|
9371
|
+
const fullText = typeof text === "string" ? separatorText + text : "";
|
|
9372
|
+
const fullSuffixText = this.#getFullSuffixText(suffixText, " ");
|
|
9373
|
+
return fullPrefixText + symbol + fullText + fullSuffixText;
|
|
9374
|
+
}
|
|
9375
|
+
constructor(options2) {
|
|
9376
|
+
if (typeof options2 === "string") {
|
|
9377
|
+
options2 = {
|
|
9378
|
+
text: options2
|
|
9379
|
+
};
|
|
9380
|
+
}
|
|
9381
|
+
this.#options = {
|
|
9382
|
+
color: "cyan",
|
|
9383
|
+
stream: process8.stderr,
|
|
9384
|
+
discardStdin: true,
|
|
9385
|
+
hideCursor: true,
|
|
9386
|
+
...options2
|
|
9387
|
+
};
|
|
9388
|
+
this.color = this.#options.color;
|
|
9389
|
+
this.#stream = this.#options.stream;
|
|
9390
|
+
if (typeof this.#options.isEnabled !== "boolean") {
|
|
9391
|
+
this.#options.isEnabled = isInteractive({ stream: this.#stream });
|
|
9392
|
+
}
|
|
9393
|
+
if (typeof this.#options.isSilent !== "boolean") {
|
|
9394
|
+
this.#options.isSilent = false;
|
|
9395
|
+
}
|
|
9396
|
+
const userInterval = this.#options.interval;
|
|
9397
|
+
this.spinner = this.#options.spinner;
|
|
9398
|
+
this.#options.interval = userInterval;
|
|
9399
|
+
this.text = this.#options.text;
|
|
9400
|
+
this.prefixText = this.#options.prefixText;
|
|
9401
|
+
this.suffixText = this.#options.suffixText;
|
|
9402
|
+
this.indent = this.#options.indent;
|
|
9403
|
+
if (process8.env.NODE_ENV === "test") {
|
|
9404
|
+
this._stream = this.#stream;
|
|
9405
|
+
this._isEnabled = this.#options.isEnabled;
|
|
9406
|
+
Object.defineProperty(this, "_linesToClear", {
|
|
9407
|
+
get() {
|
|
9408
|
+
return this.#linesToClear;
|
|
9409
|
+
},
|
|
9410
|
+
set(newValue) {
|
|
9411
|
+
this.#linesToClear = newValue;
|
|
9412
|
+
}
|
|
9413
|
+
});
|
|
9414
|
+
Object.defineProperty(this, "_frameIndex", {
|
|
9415
|
+
get() {
|
|
9416
|
+
return this.#frameIndex;
|
|
9417
|
+
}
|
|
9418
|
+
});
|
|
9419
|
+
Object.defineProperty(this, "_lineCount", {
|
|
9420
|
+
get() {
|
|
9421
|
+
const columns = this.#stream.columns ?? 80;
|
|
9422
|
+
const prefixText = typeof this.#options.prefixText === "function" ? "" : this.#options.prefixText;
|
|
9423
|
+
const suffixText = typeof this.#options.suffixText === "function" ? "" : this.#options.suffixText;
|
|
9424
|
+
const fullPrefixText = typeof prefixText === "string" && prefixText !== "" ? prefixText + " " : "";
|
|
9425
|
+
const fullSuffixText = typeof suffixText === "string" && suffixText !== "" ? " " + suffixText : "";
|
|
9426
|
+
const spinnerChar = "-";
|
|
9427
|
+
const fullText = " ".repeat(this.#options.indent) + fullPrefixText + spinnerChar + (typeof this.#options.text === "string" ? " " + this.#options.text : "") + fullSuffixText;
|
|
9428
|
+
return this.#computeLineCountFrom(fullText, columns);
|
|
9429
|
+
}
|
|
9430
|
+
});
|
|
9431
|
+
}
|
|
9432
|
+
}
|
|
9433
|
+
get indent() {
|
|
9434
|
+
return this.#options.indent;
|
|
9435
|
+
}
|
|
9436
|
+
set indent(indent = 0) {
|
|
9437
|
+
if (!(indent >= 0 && Number.isInteger(indent))) {
|
|
9438
|
+
throw new Error("The `indent` option must be an integer from 0 and up");
|
|
9439
|
+
}
|
|
9440
|
+
this.#options.indent = indent;
|
|
9441
|
+
}
|
|
9442
|
+
get interval() {
|
|
9443
|
+
return this.#options.interval ?? this.#spinner.interval ?? 100;
|
|
9444
|
+
}
|
|
9445
|
+
get spinner() {
|
|
9446
|
+
return this.#spinner;
|
|
9447
|
+
}
|
|
9448
|
+
set spinner(spinner) {
|
|
9449
|
+
this.#frameIndex = -1;
|
|
9450
|
+
this.#options.interval = void 0;
|
|
9451
|
+
if (typeof spinner === "object") {
|
|
9452
|
+
if (!Array.isArray(spinner.frames) || spinner.frames.length === 0 || spinner.frames.some((frame) => typeof frame !== "string")) {
|
|
9453
|
+
throw new Error("The given spinner must have a non-empty `frames` array of strings");
|
|
9454
|
+
}
|
|
9455
|
+
if (spinner.interval !== void 0 && !(Number.isInteger(spinner.interval) && spinner.interval > 0)) {
|
|
9456
|
+
throw new Error("`spinner.interval` must be a positive integer if provided");
|
|
9457
|
+
}
|
|
9458
|
+
this.#spinner = spinner;
|
|
9459
|
+
} else if (!isUnicodeSupported()) {
|
|
9460
|
+
this.#spinner = cli_spinners_default.line;
|
|
9461
|
+
} else if (spinner === void 0) {
|
|
9462
|
+
this.#spinner = cli_spinners_default.dots;
|
|
9463
|
+
} else if (spinner !== "default" && cli_spinners_default[spinner]) {
|
|
9464
|
+
this.#spinner = cli_spinners_default[spinner];
|
|
9465
|
+
} else {
|
|
9466
|
+
throw new Error(`There is no built-in spinner named '${spinner}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);
|
|
9467
|
+
}
|
|
9468
|
+
}
|
|
9469
|
+
get text() {
|
|
9470
|
+
return this.#options.text;
|
|
9471
|
+
}
|
|
9472
|
+
set text(value = "") {
|
|
9473
|
+
this.#options.text = value;
|
|
9474
|
+
}
|
|
9475
|
+
get prefixText() {
|
|
9476
|
+
return this.#options.prefixText;
|
|
9477
|
+
}
|
|
9478
|
+
set prefixText(value = "") {
|
|
9479
|
+
this.#options.prefixText = value;
|
|
9480
|
+
}
|
|
9481
|
+
get suffixText() {
|
|
9482
|
+
return this.#options.suffixText;
|
|
9483
|
+
}
|
|
9484
|
+
set suffixText(value = "") {
|
|
9485
|
+
this.#options.suffixText = value;
|
|
9486
|
+
}
|
|
9487
|
+
get isSpinning() {
|
|
9488
|
+
return this.#id !== void 0;
|
|
9489
|
+
}
|
|
9490
|
+
#formatAffix(value, separator, placeBefore = false) {
|
|
9491
|
+
const resolved = typeof value === "function" ? value() : value;
|
|
9492
|
+
if (typeof resolved === "string" && resolved !== "") {
|
|
9493
|
+
return placeBefore ? separator + resolved : resolved + separator;
|
|
9494
|
+
}
|
|
9495
|
+
return "";
|
|
9496
|
+
}
|
|
9497
|
+
#getFullPrefixText(prefixText = this.#options.prefixText, postfix = " ") {
|
|
9498
|
+
return this.#formatAffix(prefixText, postfix, false);
|
|
9499
|
+
}
|
|
9500
|
+
#getFullSuffixText(suffixText = this.#options.suffixText, prefix = " ") {
|
|
9501
|
+
return this.#formatAffix(suffixText, prefix, true);
|
|
9502
|
+
}
|
|
9503
|
+
#computeLineCountFrom(text, columns) {
|
|
9504
|
+
let count = 0;
|
|
9505
|
+
for (const line of stripVTControlCharacters(text).split("\n")) {
|
|
9506
|
+
count += Math.max(1, Math.ceil(stringWidth(line) / columns));
|
|
9507
|
+
}
|
|
9508
|
+
return count;
|
|
9509
|
+
}
|
|
9510
|
+
get isEnabled() {
|
|
9511
|
+
return this.#options.isEnabled && !this.#options.isSilent;
|
|
9512
|
+
}
|
|
9513
|
+
set isEnabled(value) {
|
|
9514
|
+
if (typeof value !== "boolean") {
|
|
9515
|
+
throw new TypeError("The `isEnabled` option must be a boolean");
|
|
9516
|
+
}
|
|
9517
|
+
this.#options.isEnabled = value;
|
|
9518
|
+
}
|
|
9519
|
+
get isSilent() {
|
|
9520
|
+
return this.#options.isSilent;
|
|
9521
|
+
}
|
|
9522
|
+
set isSilent(value) {
|
|
9523
|
+
if (typeof value !== "boolean") {
|
|
9524
|
+
throw new TypeError("The `isSilent` option must be a boolean");
|
|
9525
|
+
}
|
|
9526
|
+
this.#options.isSilent = value;
|
|
9527
|
+
}
|
|
9528
|
+
frame() {
|
|
9529
|
+
const now = Date.now();
|
|
9530
|
+
if (this.#frameIndex === -1 || now - this.#lastFrameTime >= this.interval) {
|
|
9531
|
+
this.#frameIndex = (this.#frameIndex + 1) % this.#spinner.frames.length;
|
|
9532
|
+
this.#lastFrameTime = now;
|
|
9533
|
+
}
|
|
9534
|
+
const { frames } = this.#spinner;
|
|
9535
|
+
let frame = frames[this.#frameIndex];
|
|
9536
|
+
if (this.color) {
|
|
9537
|
+
frame = source_default[this.color](frame);
|
|
9538
|
+
}
|
|
9539
|
+
const fullPrefixText = this.#getFullPrefixText(this.#options.prefixText, " ");
|
|
9540
|
+
const fullText = typeof this.text === "string" ? " " + this.text : "";
|
|
9541
|
+
const fullSuffixText = this.#getFullSuffixText(this.#options.suffixText, " ");
|
|
9542
|
+
return fullPrefixText + frame + fullText + fullSuffixText;
|
|
9543
|
+
}
|
|
9544
|
+
clear() {
|
|
9545
|
+
if (!this.isEnabled || !this.#stream.isTTY) {
|
|
9546
|
+
return this;
|
|
9547
|
+
}
|
|
9548
|
+
this.#internalWrite(() => {
|
|
9549
|
+
this.#stream.cursorTo(0);
|
|
9550
|
+
for (let index = 0; index < this.#linesToClear; index++) {
|
|
9551
|
+
if (index > 0) {
|
|
9552
|
+
this.#stream.moveCursor(0, -1);
|
|
9553
|
+
}
|
|
9554
|
+
this.#stream.clearLine(1);
|
|
9555
|
+
}
|
|
9556
|
+
if (this.#options.indent) {
|
|
9557
|
+
this.#stream.cursorTo(this.#options.indent);
|
|
9558
|
+
}
|
|
9559
|
+
});
|
|
9560
|
+
this.#linesToClear = 0;
|
|
9561
|
+
return this;
|
|
9562
|
+
}
|
|
9563
|
+
// Helper to hook a single stream
|
|
9564
|
+
#hookStream(stream) {
|
|
9565
|
+
if (!stream || this.#hookedStreams.has(stream) || !stream.isTTY || typeof stream.write !== "function") {
|
|
9566
|
+
return;
|
|
9567
|
+
}
|
|
9568
|
+
if (activeHooksPerStream.has(stream)) {
|
|
9569
|
+
console.warn("[ora] Multiple concurrent spinners detected. This may cause visual corruption. Use one spinner at a time.");
|
|
9570
|
+
}
|
|
9571
|
+
const originalWrite = stream.write;
|
|
9572
|
+
this.#hookedStreams.set(stream, originalWrite);
|
|
9573
|
+
activeHooksPerStream.set(stream, this);
|
|
9574
|
+
stream.write = (chunk, encoding, callback) => this.#hookedWrite(stream, originalWrite, chunk, encoding, callback);
|
|
9575
|
+
}
|
|
9576
|
+
/**
|
|
9577
|
+
Intercept stream writes while spinner is active to handle external writes cleanly without visual corruption.
|
|
9578
|
+
Hooks process stdio streams and the active spinner stream so console.log(), console.error(), and direct writes stay tidy.
|
|
9579
|
+
*/
|
|
9580
|
+
#installHook() {
|
|
9581
|
+
if (!this.isEnabled || this.#hookedStreams.size > 0) {
|
|
9582
|
+
return;
|
|
9583
|
+
}
|
|
9584
|
+
const streamsToHook = /* @__PURE__ */ new Set([this.#stream, process8.stdout, process8.stderr]);
|
|
9585
|
+
for (const stream of streamsToHook) {
|
|
9586
|
+
this.#hookStream(stream);
|
|
9587
|
+
}
|
|
9588
|
+
}
|
|
9589
|
+
#uninstallHook() {
|
|
9590
|
+
for (const [stream, originalWrite] of this.#hookedStreams) {
|
|
9591
|
+
stream.write = originalWrite;
|
|
9592
|
+
if (activeHooksPerStream.get(stream) === this) {
|
|
9593
|
+
activeHooksPerStream.delete(stream);
|
|
9594
|
+
}
|
|
9595
|
+
}
|
|
9596
|
+
this.#hookedStreams.clear();
|
|
9597
|
+
}
|
|
9598
|
+
// eslint-disable-next-line max-params -- Need stream and originalWrite for multi-stream support
|
|
9599
|
+
#hookedWrite(stream, originalWrite, chunk, encoding, callback) {
|
|
9600
|
+
if (typeof encoding === "function") {
|
|
9601
|
+
callback = encoding;
|
|
9602
|
+
encoding = void 0;
|
|
9603
|
+
}
|
|
9604
|
+
if (this.#isInternalWrite) {
|
|
9605
|
+
return originalWrite.call(stream, chunk, encoding, callback);
|
|
9606
|
+
}
|
|
9607
|
+
this.clear();
|
|
9608
|
+
const chunkString = this.#stringifyChunk(chunk, encoding);
|
|
9609
|
+
const chunkTerminatesLine = this.#chunkTerminatesLine(chunkString);
|
|
9610
|
+
const writeResult = originalWrite.call(stream, chunk, encoding, callback);
|
|
9611
|
+
if (chunkTerminatesLine) {
|
|
9612
|
+
this.#clearRenderDeferral();
|
|
9613
|
+
} else if (chunkString.length > 0) {
|
|
9614
|
+
this.#scheduleRenderDeferral();
|
|
9615
|
+
}
|
|
9616
|
+
if (this.isSpinning && !this.#deferRenderTimer) {
|
|
9617
|
+
this.render();
|
|
9618
|
+
}
|
|
9619
|
+
return writeResult;
|
|
9620
|
+
}
|
|
9621
|
+
render() {
|
|
9622
|
+
if (!this.isEnabled || this.#drainHandler || this.#deferRenderTimer) {
|
|
9623
|
+
return this;
|
|
9624
|
+
}
|
|
9625
|
+
const useSynchronizedOutput = this.#stream.isTTY;
|
|
9626
|
+
let shouldDisableSynchronizedOutput = false;
|
|
9627
|
+
try {
|
|
9628
|
+
if (useSynchronizedOutput) {
|
|
9629
|
+
this.#internalWrite(() => this.#stream.write(SYNCHRONIZED_OUTPUT_ENABLE));
|
|
9630
|
+
shouldDisableSynchronizedOutput = true;
|
|
9631
|
+
}
|
|
9632
|
+
this.clear();
|
|
9633
|
+
let frameContent = this.frame();
|
|
9634
|
+
const columns = this.#stream.columns ?? 80;
|
|
9635
|
+
const actualLineCount = this.#computeLineCountFrom(frameContent, columns);
|
|
9636
|
+
const consoleHeight = this.#stream.rows;
|
|
9637
|
+
if (consoleHeight && consoleHeight > 1 && actualLineCount > consoleHeight) {
|
|
9638
|
+
const lines = frameContent.split("\n");
|
|
9639
|
+
const maxLines = consoleHeight - 1;
|
|
9640
|
+
frameContent = [...lines.slice(0, maxLines), "... (content truncated to fit terminal)"].join("\n");
|
|
9641
|
+
}
|
|
9642
|
+
const canContinue = this.#internalWrite(() => this.#stream.write(frameContent));
|
|
9643
|
+
if (canContinue === false && this.#stream.isTTY) {
|
|
9644
|
+
this.#drainHandler = () => {
|
|
9645
|
+
this.#drainHandler = void 0;
|
|
9646
|
+
this.#tryRender();
|
|
9647
|
+
};
|
|
9648
|
+
this.#stream.once("drain", this.#drainHandler);
|
|
9649
|
+
}
|
|
9650
|
+
this.#linesToClear = this.#computeLineCountFrom(frameContent, columns);
|
|
9651
|
+
} finally {
|
|
9652
|
+
if (shouldDisableSynchronizedOutput) {
|
|
9653
|
+
this.#internalWrite(() => this.#stream.write(SYNCHRONIZED_OUTPUT_DISABLE));
|
|
9654
|
+
}
|
|
9655
|
+
}
|
|
9656
|
+
return this;
|
|
9657
|
+
}
|
|
9658
|
+
start(text) {
|
|
9659
|
+
if (text) {
|
|
9660
|
+
this.text = text;
|
|
9661
|
+
}
|
|
9662
|
+
if (this.isSilent) {
|
|
9663
|
+
return this;
|
|
9664
|
+
}
|
|
9665
|
+
if (!this.isEnabled) {
|
|
9666
|
+
const symbol = this.text ? "-" : "";
|
|
9667
|
+
const line = " ".repeat(this.#options.indent) + this.#buildOutputLine(symbol, this.text, this.#options.prefixText, this.#options.suffixText);
|
|
9668
|
+
if (line.trim() !== "") {
|
|
9669
|
+
this.#internalWrite(() => this.#stream.write(line + "\n"));
|
|
9670
|
+
}
|
|
9671
|
+
return this;
|
|
9672
|
+
}
|
|
9673
|
+
if (this.isSpinning) {
|
|
9674
|
+
return this;
|
|
9675
|
+
}
|
|
9676
|
+
if (this.#options.hideCursor) {
|
|
9677
|
+
cli_cursor_default.hide(this.#stream);
|
|
9678
|
+
}
|
|
9679
|
+
if (this.#options.discardStdin && process8.stdin.isTTY) {
|
|
9680
|
+
stdin_discarder_default.start();
|
|
9681
|
+
this.#isDiscardingStdin = true;
|
|
9682
|
+
}
|
|
9683
|
+
this.#installHook();
|
|
9684
|
+
this.render();
|
|
9685
|
+
this.#id = setInterval(this.render.bind(this), this.interval);
|
|
9686
|
+
return this;
|
|
9687
|
+
}
|
|
9688
|
+
stop() {
|
|
9689
|
+
clearInterval(this.#id);
|
|
9690
|
+
this.#id = void 0;
|
|
9691
|
+
this.#frameIndex = -1;
|
|
9692
|
+
this.#lastFrameTime = 0;
|
|
9693
|
+
this.#clearRenderDeferral();
|
|
9694
|
+
this.#uninstallHook();
|
|
9695
|
+
if (this.#drainHandler) {
|
|
9696
|
+
this.#stream.removeListener("drain", this.#drainHandler);
|
|
9697
|
+
this.#drainHandler = void 0;
|
|
9698
|
+
}
|
|
9699
|
+
if (this.isEnabled) {
|
|
9700
|
+
this.clear();
|
|
9701
|
+
if (this.#options.hideCursor) {
|
|
9702
|
+
cli_cursor_default.show(this.#stream);
|
|
9703
|
+
}
|
|
9704
|
+
}
|
|
9705
|
+
if (this.#isDiscardingStdin) {
|
|
9706
|
+
this.#isDiscardingStdin = false;
|
|
9707
|
+
stdin_discarder_default.stop();
|
|
9708
|
+
}
|
|
9709
|
+
return this;
|
|
9710
|
+
}
|
|
9711
|
+
succeed(text) {
|
|
9712
|
+
return this.stopAndPersist({ symbol: symbols_exports.success, text });
|
|
9713
|
+
}
|
|
9714
|
+
fail(text) {
|
|
9715
|
+
return this.stopAndPersist({ symbol: symbols_exports.error, text });
|
|
9716
|
+
}
|
|
9717
|
+
warn(text) {
|
|
9718
|
+
return this.stopAndPersist({ symbol: symbols_exports.warning, text });
|
|
9719
|
+
}
|
|
9720
|
+
info(text) {
|
|
9721
|
+
return this.stopAndPersist({ symbol: symbols_exports.info, text });
|
|
9722
|
+
}
|
|
9723
|
+
stopAndPersist(options2 = {}) {
|
|
9724
|
+
if (this.isSilent) {
|
|
9725
|
+
return this;
|
|
9726
|
+
}
|
|
9727
|
+
const symbol = options2.symbol ?? " ";
|
|
9728
|
+
const text = options2.text ?? this.text;
|
|
9729
|
+
const prefixText = options2.prefixText ?? this.#options.prefixText;
|
|
9730
|
+
const suffixText = options2.suffixText ?? this.#options.suffixText;
|
|
9731
|
+
const textToWrite = this.#buildOutputLine(symbol, text, prefixText, suffixText) + "\n";
|
|
9732
|
+
this.stop();
|
|
9733
|
+
this.#internalWrite(() => this.#stream.write(textToWrite));
|
|
9734
|
+
return this;
|
|
9735
|
+
}
|
|
9736
|
+
};
|
|
9737
|
+
function ora(options2) {
|
|
9738
|
+
return new Ora(options2);
|
|
9739
|
+
}
|
|
9740
|
+
|
|
9741
|
+
// src/utils/spinner.ts
|
|
9742
|
+
function createSpinner(text) {
|
|
9743
|
+
return ora({
|
|
9744
|
+
text,
|
|
9745
|
+
spinner: "dots"
|
|
9746
|
+
});
|
|
9747
|
+
}
|
|
9748
|
+
function startSpinner(text) {
|
|
9749
|
+
const spinner = createSpinner(text);
|
|
9750
|
+
spinner.start();
|
|
9751
|
+
return spinner;
|
|
9752
|
+
}
|
|
9753
|
+
function spinnerSuccess(spinner, text) {
|
|
9754
|
+
spinner.succeed(text);
|
|
9755
|
+
}
|
|
9756
|
+
function spinnerFail(spinner, text) {
|
|
9757
|
+
spinner.fail(text);
|
|
9758
|
+
}
|
|
9759
|
+
|
|
9760
|
+
// src/commands/init.ts
|
|
9761
|
+
init_file_system();
|
|
9762
|
+
var execAsync = promisify(exec);
|
|
9763
|
+
var DIRECTORY_STRUCTURE = [
|
|
9764
|
+
".claude/agents",
|
|
9765
|
+
".claude/skills",
|
|
9766
|
+
"docs/\u8FED\u4EE3",
|
|
9767
|
+
"docs/Wiki/\u7528\u6237\u6587\u6863",
|
|
9768
|
+
"docs/Wiki/\u5F00\u53D1\u6587\u6863",
|
|
9769
|
+
"docs/Wiki/\u63A5\u53E3\u6587\u6863"
|
|
9770
|
+
];
|
|
9771
|
+
var TEMPLATE_CONFIG = {
|
|
9772
|
+
owner: DEFAULT_REPO_OWNER,
|
|
9773
|
+
repo: DEFAULT_REPO_NAME,
|
|
9774
|
+
branch: DEFAULT_BRANCH,
|
|
9775
|
+
templatePath: DEFAULT_TEMPLATE_PATH,
|
|
9776
|
+
// GitHub 仓库 zip 下载地址
|
|
9777
|
+
get zipUrl() {
|
|
9778
|
+
return `https://github.com/${this.owner}/${this.repo}/archive/refs/heads/${this.branch}.zip`;
|
|
9779
|
+
}
|
|
9780
|
+
};
|
|
9781
|
+
var InitCommand = class {
|
|
9782
|
+
projectPath;
|
|
9783
|
+
verbose;
|
|
9784
|
+
constructor(config = {}) {
|
|
9785
|
+
this.projectPath = config.projectPath ?? process.cwd();
|
|
9786
|
+
this.verbose = config.verbose ?? false;
|
|
9787
|
+
if (this.verbose) {
|
|
9788
|
+
logger.setVerbose(true);
|
|
9789
|
+
}
|
|
9790
|
+
}
|
|
9791
|
+
/**
|
|
9792
|
+
* 检测是否已存在配置
|
|
9793
|
+
* @returns 如果配置已存在返回 true
|
|
9794
|
+
*/
|
|
9795
|
+
async detectExistingConfig() {
|
|
9796
|
+
const claudeDir = path10.join(this.projectPath, ".claude");
|
|
9797
|
+
const configFile = path10.join(this.projectPath, ".claude", "project-config.md");
|
|
9798
|
+
const claudeDirExists = await pathExists(claudeDir);
|
|
9799
|
+
const configFileExists = await fileExists(configFile);
|
|
9800
|
+
return claudeDirExists && configFileExists;
|
|
9801
|
+
}
|
|
9802
|
+
/**
|
|
9803
|
+
* 创建目录结构
|
|
9804
|
+
* @returns 创建的目录数量
|
|
9805
|
+
*/
|
|
9806
|
+
async createDirectoryStructure() {
|
|
9807
|
+
const spinner = startSpinner(INFO_CREATING_DIR);
|
|
9808
|
+
let createdCount = 0;
|
|
9809
|
+
try {
|
|
9810
|
+
for (const dir of DIRECTORY_STRUCTURE) {
|
|
9811
|
+
const fullPath = path10.join(this.projectPath, dir);
|
|
9812
|
+
const exists = await pathExists(fullPath);
|
|
9813
|
+
if (!exists) {
|
|
9814
|
+
await ensureDir(fullPath);
|
|
9815
|
+
createdCount++;
|
|
9816
|
+
logger.debug(`Created directory: ${dir}`);
|
|
9817
|
+
}
|
|
9818
|
+
}
|
|
9819
|
+
spinnerSuccess(spinner, `\u521B\u5EFA\u4E86 ${createdCount} \u4E2A\u76EE\u5F55`);
|
|
9820
|
+
return createdCount;
|
|
9821
|
+
} catch (error2) {
|
|
9822
|
+
spinnerFail(spinner, "\u76EE\u5F55\u521B\u5EFA\u5931\u8D25");
|
|
9823
|
+
throw error2;
|
|
9824
|
+
}
|
|
9825
|
+
}
|
|
9826
|
+
/**
|
|
9827
|
+
* 下载并应用模板
|
|
9828
|
+
* 使用 curl 下载 zip 文件,解压后复制到目标目录
|
|
9829
|
+
* @returns 处理的文件数量
|
|
9830
|
+
*/
|
|
9831
|
+
async downloadAndApplyTemplate() {
|
|
9832
|
+
const spinner = startSpinner("\u6B63\u5728\u4E0B\u8F7D\u6A21\u677F...");
|
|
9833
|
+
try {
|
|
9834
|
+
const tempDir = path10.join(this.projectPath, ".ideal-cli-temp");
|
|
9835
|
+
await ensureDir(tempDir);
|
|
9836
|
+
const zipFile = path10.join(tempDir, "template.zip");
|
|
9837
|
+
const extractDir = path10.join(tempDir, "extracted");
|
|
9838
|
+
try {
|
|
9839
|
+
logger.debug(`Downloading from: ${TEMPLATE_CONFIG.zipUrl}`);
|
|
9840
|
+
await execAsync(`curl -sL "${TEMPLATE_CONFIG.zipUrl}" -o "${zipFile}"`);
|
|
9841
|
+
if (!await fileExists(zipFile)) {
|
|
9842
|
+
throw new Error("\u6A21\u677F\u4E0B\u8F7D\u5931\u8D25");
|
|
9843
|
+
}
|
|
9844
|
+
await ensureDir(extractDir);
|
|
9845
|
+
await execAsync(`unzip -q "${zipFile}" -d "${extractDir}"`);
|
|
9846
|
+
const extractedFolder = path10.join(extractDir, `${TEMPLATE_CONFIG.repo}-${TEMPLATE_CONFIG.branch}`);
|
|
9847
|
+
const templateSourceDir = path10.join(extractedFolder, TEMPLATE_CONFIG.templatePath);
|
|
9848
|
+
if (!await pathExists(templateSourceDir)) {
|
|
9849
|
+
throw new Error(`\u6A21\u677F\u76EE\u5F55\u4E0D\u5B58\u5728: ${TEMPLATE_CONFIG.templatePath}`);
|
|
9850
|
+
}
|
|
9851
|
+
const claudeDir = path10.join(this.projectPath, ".claude");
|
|
9852
|
+
await copyDir(templateSourceDir, claudeDir, {
|
|
9853
|
+
overwrite: true,
|
|
9854
|
+
filter: (src) => {
|
|
9855
|
+
const relativePath = path10.relative(templateSourceDir, src);
|
|
9856
|
+
return !relativePath.startsWith("configs") && relativePath !== "version.json";
|
|
9857
|
+
}
|
|
9858
|
+
});
|
|
9859
|
+
spinnerSuccess(spinner, "\u6A21\u677F\u6587\u4EF6\u5E94\u7528\u6210\u529F");
|
|
9860
|
+
return 0;
|
|
9861
|
+
} finally {
|
|
9862
|
+
await remove(tempDir);
|
|
9863
|
+
}
|
|
9864
|
+
} catch (error2) {
|
|
9865
|
+
spinnerFail(spinner, "\u6A21\u677F\u4E0B\u8F7D\u5931\u8D25");
|
|
9866
|
+
throw error2;
|
|
9867
|
+
}
|
|
9868
|
+
}
|
|
9869
|
+
/**
|
|
9870
|
+
* 输出成功消息和下一步指引
|
|
9871
|
+
*/
|
|
9872
|
+
outputSuccessMessage() {
|
|
9873
|
+
logger.newline();
|
|
9874
|
+
logger.success("\u9879\u76EE\u521D\u59CB\u5316\u5B8C\u6210\uFF01");
|
|
9875
|
+
logger.newline();
|
|
9876
|
+
logger.divider();
|
|
9877
|
+
logger.newline();
|
|
9878
|
+
logger.info("\u4E0B\u4E00\u6B65\u64CD\u4F5C:");
|
|
9879
|
+
logger.newline();
|
|
9880
|
+
console.log(" 1. \u67E5\u770B .claude/project-config.md \u786E\u8BA4\u914D\u7F6E");
|
|
9881
|
+
console.log(" 2. \u67E5\u770B .claude/agents/ \u4E86\u89E3\u53EF\u7528\u7684\u89D2\u8272");
|
|
9882
|
+
console.log(" 3. \u67E5\u770B .claude/skills/ \u4E86\u89E3\u5DE5\u4F5C\u6D41\u9636\u6BB5");
|
|
9883
|
+
console.log(" 4. \u8FD0\u884C ideal doctor \u68C0\u67E5\u914D\u7F6E\u5B8C\u6574\u6027");
|
|
9884
|
+
logger.newline();
|
|
9885
|
+
logger.divider();
|
|
9886
|
+
}
|
|
9887
|
+
/**
|
|
9888
|
+
* 执行初始化命令
|
|
9889
|
+
* @param options 命令选项
|
|
9890
|
+
* @returns 退出码 (0 表示成功)
|
|
9891
|
+
*/
|
|
9892
|
+
async execute(options2 = {}) {
|
|
9893
|
+
try {
|
|
9894
|
+
const configExists = await this.detectExistingConfig();
|
|
9895
|
+
if (configExists && !options2.force) {
|
|
9896
|
+
logger.error(ERR_DIR_EXISTS);
|
|
9897
|
+
logger.info("\u4F7F\u7528 --force \u9009\u9879\u53EF\u4EE5\u5F3A\u5236\u8986\u76D6\u73B0\u6709\u914D\u7F6E");
|
|
9898
|
+
return 1;
|
|
9899
|
+
}
|
|
9900
|
+
logger.title("\u521D\u59CB\u5316 ideal-cli \u5DE5\u4F5C\u6D41\u914D\u7F6E");
|
|
9901
|
+
logger.newline();
|
|
9902
|
+
await this.createDirectoryStructure();
|
|
9903
|
+
await this.downloadAndApplyTemplate();
|
|
9904
|
+
this.outputSuccessMessage();
|
|
9905
|
+
return 0;
|
|
9906
|
+
} catch (error2) {
|
|
9907
|
+
logger.error(
|
|
9908
|
+
`\u521D\u59CB\u5316\u5931\u8D25: ${error2 instanceof Error ? error2.message : "Unknown error"}`
|
|
9909
|
+
);
|
|
9910
|
+
if (this.verbose && error2 instanceof Error && error2.stack) {
|
|
9911
|
+
logger.debug(error2.stack);
|
|
9912
|
+
}
|
|
9913
|
+
return 1;
|
|
9914
|
+
}
|
|
9915
|
+
}
|
|
9916
|
+
};
|
|
9917
|
+
|
|
9918
|
+
// src/commands/index.ts
|
|
6812
9919
|
async function handleDoctor(options2) {
|
|
6813
9920
|
const doctor = new DoctorCommand({
|
|
6814
9921
|
verbose: options2.verbose
|
|
@@ -6817,7 +9924,13 @@ async function handleDoctor(options2) {
|
|
|
6817
9924
|
process.exit(exitCode);
|
|
6818
9925
|
}
|
|
6819
9926
|
function registerCommands(program) {
|
|
6820
|
-
program.command("init").description(
|
|
9927
|
+
program.command("init").description("\u521D\u59CB\u5316\u9879\u76EE\u5DE5\u4F5C\u6D41\u914D\u7F6E").option("-f, --force", "\u5F3A\u5236\u8986\u76D6\u5DF2\u5B58\u5728\u7684\u914D\u7F6E").option("-v, --verbose", "\u663E\u793A\u8BE6\u7EC6\u65E5\u5FD7").action(async (options2) => {
|
|
9928
|
+
const initCommand = new InitCommand({
|
|
9929
|
+
verbose: options2.verbose
|
|
9930
|
+
});
|
|
9931
|
+
const exitCode = await initCommand.execute({ force: options2.force });
|
|
9932
|
+
process.exit(exitCode);
|
|
9933
|
+
});
|
|
6821
9934
|
const configCommand = createConfigCommand();
|
|
6822
9935
|
configCommand.register(program);
|
|
6823
9936
|
const updateCommand = new UpdateCommand();
|
|
@@ -6862,8 +9975,8 @@ async function main() {
|
|
|
6862
9975
|
const program = createProgram();
|
|
6863
9976
|
await program.parseAsync(process.argv);
|
|
6864
9977
|
}
|
|
6865
|
-
main().catch((
|
|
6866
|
-
console.error("Error:",
|
|
9978
|
+
main().catch((error2) => {
|
|
9979
|
+
console.error("Error:", error2.message);
|
|
6867
9980
|
process.exit(1);
|
|
6868
9981
|
});
|
|
6869
9982
|
/*! Bundled license information:
|