jinrai 1.0.3 → 1.0.6

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.
Files changed (95) hide show
  1. package/.vscode/launch.json +21 -0
  2. package/config.ts +1 -0
  3. package/front.config.json +24 -0
  4. package/index.ts +6 -1
  5. package/lib/bin/bin.js +12 -0
  6. package/lib/config/config.d.ts +1 -0
  7. package/lib/config/config.js +1 -0
  8. package/lib/config/src/bin/config/userConfig.d.ts +14 -0
  9. package/lib/index.d.ts +6 -1
  10. package/lib/index.js +6 -7
  11. package/lib/src/front/server-state/DataProxy.d.ts +8 -0
  12. package/lib/src/front/server-state/DataProxy.js +104 -0
  13. package/lib/src/front/server-state/SSR.d.ts +4 -0
  14. package/lib/src/front/server-state/SSR.js +6 -0
  15. package/lib/src/front/server-state/real.d.ts +1 -0
  16. package/lib/src/front/server-state/real.js +36 -0
  17. package/lib/src/front/server-state/serverStates.d.ts +5 -0
  18. package/lib/src/front/server-state/serverStates.js +29 -0
  19. package/lib/src/front/server-state/useServerState.d.ts +10 -0
  20. package/lib/src/front/server-state/useServerState.js +28 -0
  21. package/lib/src/front/url/JinraiContext.d.ts +6 -0
  22. package/lib/src/front/url/JinraiContext.js +8 -0
  23. package/lib/src/front/url/adapter/def.d.ts +2 -0
  24. package/lib/src/front/url/adapter/def.js +9 -0
  25. package/lib/src/front/url/adapter/rrd6.d.ts +2 -0
  26. package/lib/src/front/url/adapter/rrd6.js +12 -0
  27. package/lib/src/front/url/adapter/rrd7.d.ts +2 -0
  28. package/lib/src/front/url/adapter/rrd7.js +11 -0
  29. package/lib/src/front/url/params/useParamsIndex.d.ts +1 -0
  30. package/lib/src/front/url/params/useParamsIndex.js +15 -0
  31. package/lib/src/front/url/search/useSearch.d.ts +1 -0
  32. package/lib/src/front/url/search/useSearch.js +15 -0
  33. package/lib/src/front/url/search/useSearchValue.d.ts +16 -0
  34. package/lib/src/front/url/search/useSearchValue.js +49 -0
  35. package/lib/src/front/wrapper/Custom.d.ts +8 -0
  36. package/lib/src/front/wrapper/Custom.js +9 -0
  37. package/lib/vite/plugin.js +1 -0
  38. package/package.json +42 -7
  39. package/readme.md +34 -8
  40. package/rollup.front.config.mjs +57 -0
  41. package/src/bin/bin.ts +10 -0
  42. package/src/bin/build/build.ts +69 -0
  43. package/src/{config → bin/config}/defaultIndexHtml.ts +2 -2
  44. package/src/{config → bin/config}/userConfig.ts +11 -3
  45. package/src/bin/content/normalizeContent.ts +7 -0
  46. package/src/bin/playwright/pageCollector.ts +11 -0
  47. package/src/{templates.ts → bin/playwright/templates.ts} +28 -21
  48. package/src/bin/routes/Parser.ts +148 -0
  49. package/src/{routes → bin/routes}/getRoutes.ts +9 -6
  50. package/src/bin/routes/replaceDevScripts.ts +16 -0
  51. package/src/bin/server/vitePreview.ts +13 -0
  52. package/src/front/server-state/DataProxy.ts +120 -0
  53. package/src/front/server-state/SSR.ts +4 -0
  54. package/src/front/server-state/real.ts +41 -0
  55. package/src/front/server-state/serverStates.ts +36 -0
  56. package/src/front/server-state/useServerState.ts +44 -0
  57. package/src/front/url/JinraiContext.tsx +10 -0
  58. package/src/front/url/adapter/def.tsx +10 -0
  59. package/src/front/url/adapter/rrd6.tsx +16 -0
  60. package/src/front/url/adapter/rrd7.tsx +15 -0
  61. package/src/front/url/params/useParamsIndex.ts +16 -0
  62. package/src/front/url/search/useSearch.ts +15 -0
  63. package/src/front/url/search/useSearchValue.ts +72 -0
  64. package/src/front/wrapper/Custom.tsx +14 -0
  65. package/tests/content/1.html +12 -0
  66. package/tests/content/1_result.json +54 -0
  67. package/tests/content/2.html +16 -0
  68. package/tests/content/2_result.json +28 -0
  69. package/tests/content/3.html +21 -0
  70. package/tests/content/3_result.json +39 -0
  71. package/tests/content/4.html +4 -0
  72. package/tests/content/4_result.json +9 -0
  73. package/tests/content/custom.html +5 -0
  74. package/tests/content/custom.json +5 -0
  75. package/tests/content/index.html +543 -0
  76. package/tests/content/index.json +49 -0
  77. package/tests/content/index_with_templates.json +31 -0
  78. package/tests/content/templates.json +13 -0
  79. package/tests/custom.test.ts +16 -0
  80. package/tests/parse.test.ts +52 -0
  81. package/tsconfig.json +2 -2
  82. package/vite/plugin.ts +83 -0
  83. package/vitest.config.ts +14 -0
  84. package/lib/bin.js +0 -3351
  85. package/lib/generate.js +0 -26
  86. package/lib/src/config/userConfig.d.ts +0 -7
  87. package/src/bin.ts +0 -46
  88. package/src/routes/parser.ts +0 -58
  89. package/src/routes/splitByTag.ts +0 -38
  90. package/test/fld.config.ts +0 -13
  91. package/test/jinrai.config.ts +0 -8
  92. /package/lib/{src → config/src/bin}/config/define.d.ts +0 -0
  93. /package/src/{config → bin/config}/define.ts +0 -0
  94. /package/src/{types → bin/types}/shims.d.ts +0 -0
  95. /package/src/{ui → bin/ui}/task.tsx +0 -0
package/lib/bin.js DELETED
@@ -1,3351 +0,0 @@
1
- #!/usr/bin/env node
2
- var __defProp = Object.defineProperty;
3
- var __export = (target, all) => {
4
- for (var name in all)
5
- __defProp(target, name, { get: all[name], enumerable: true });
6
- };
7
-
8
- // src/bin.ts
9
- import { writeFile } from "node:fs/promises";
10
-
11
- // src/config/userConfig.ts
12
- import { createJiti } from "jiti";
13
- import { pathToFileURL } from "url";
14
- import { resolve } from "path";
15
- var getUserConfig = async (configName2) => {
16
- const jiti = createJiti(import.meta.url, {
17
- debug: false
18
- });
19
- const configPath = pathToFileURL(resolve(process.cwd(), configName2)).href;
20
- const configModule = await jiti.import(configPath);
21
- return configModule.default;
22
- };
23
-
24
- // src/routes/splitByTag.ts
25
- var splitByTag = (tag, content) => {
26
- const htmls = content.replace(new RegExp(`(</?${tag}.*?>)`, "gm"), (_, find) => {
27
- return `<**${tag}**>` + (find.startsWith("</") ? "CLS" : "OPN");
28
- }).split(`<**${tag}**>`);
29
- if (htmls.length == 1)
30
- return htmls;
31
- let count = 0;
32
- const result = [];
33
- for (let itm of htmls) {
34
- let step = 0;
35
- if (itm.startsWith("OPN")) step = 1;
36
- if (itm.startsWith("CLS")) step = -1;
37
- if (step != 0)
38
- itm = itm.substring(3);
39
- if (step > 0) {
40
- count += step;
41
- step = 0;
42
- }
43
- if (count <= 1)
44
- result.push([itm]);
45
- else
46
- result[result.length - 1].push(itm);
47
- count += step;
48
- }
49
- return result.map((itms) => itms.join(`<**${tag}**>`));
50
- };
51
-
52
- // src/routes/parser.ts
53
- var toBinary = (content) => {
54
- return btoa(unescape(encodeURIComponent(content)));
55
- };
56
- var Parser = class {
57
- templates = [];
58
- ctemplates = [];
59
- convertor;
60
- constructor(convertor) {
61
- this.convertor = convertor;
62
- }
63
- parse(html) {
64
- const parts = splitByTag("loopwrapper", html);
65
- return parts.map((content) => {
66
- const isArray = content.startsWith("ArrayDataKey=");
67
- let contentKey = void 0;
68
- if (isArray) {
69
- ;
70
- [contentKey, content] = this.firstPypeSplit(content);
71
- }
72
- return {
73
- type: isArray ? "array" : "html",
74
- template: isArray ? this.parse(content) : this.getTemplateId(content),
75
- contentKey
76
- };
77
- });
78
- }
79
- getTemplateId(template) {
80
- const index = this.templates.indexOf(template);
81
- if (index != -1) {
82
- return index;
83
- }
84
- this.templates.push(template);
85
- this.ctemplates.push(this.convertor ? this.convertor(template) : toBinary(template));
86
- return this.templates.length - 1;
87
- }
88
- firstPypeSplit(content) {
89
- const index = content.indexOf("|");
90
- return [content.slice(13, index), content.slice(index + 1)];
91
- }
92
- };
93
-
94
- // src/routes/getRoutes.ts
95
- var getRoutesAndTemplates = (templates2) => {
96
- const routes2 = [];
97
- const parser = new Parser();
98
- for (const template of templates2) {
99
- const content = parser.parse(template.root);
100
- const mask = template.mask.replaceAll("/", "\\/").replace(/{(.*?)}/, ".+?");
101
- routes2.push({
102
- content,
103
- mask,
104
- requests: template.input
105
- });
106
- }
107
- return {
108
- routes: routes2,
109
- templates: parser.templates
110
- };
111
- };
112
-
113
- // src/templates.ts
114
- import { chromium } from "playwright";
115
-
116
- // node_modules/ora/index.js
117
- import process8 from "node:process";
118
-
119
- // node_modules/chalk/source/vendor/ansi-styles/index.js
120
- var ANSI_BACKGROUND_OFFSET = 10;
121
- var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
122
- var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
123
- var wrapAnsi16m = (offset = 0) => (red2, green2, blue2) => `\x1B[${38 + offset};2;${red2};${green2};${blue2}m`;
124
- var styles = {
125
- modifier: {
126
- reset: [0, 0],
127
- // 21 isn't widely supported and 22 does the same thing
128
- bold: [1, 22],
129
- dim: [2, 22],
130
- italic: [3, 23],
131
- underline: [4, 24],
132
- overline: [53, 55],
133
- inverse: [7, 27],
134
- hidden: [8, 28],
135
- strikethrough: [9, 29]
136
- },
137
- color: {
138
- black: [30, 39],
139
- red: [31, 39],
140
- green: [32, 39],
141
- yellow: [33, 39],
142
- blue: [34, 39],
143
- magenta: [35, 39],
144
- cyan: [36, 39],
145
- white: [37, 39],
146
- // Bright color
147
- blackBright: [90, 39],
148
- gray: [90, 39],
149
- // Alias of `blackBright`
150
- grey: [90, 39],
151
- // Alias of `blackBright`
152
- redBright: [91, 39],
153
- greenBright: [92, 39],
154
- yellowBright: [93, 39],
155
- blueBright: [94, 39],
156
- magentaBright: [95, 39],
157
- cyanBright: [96, 39],
158
- whiteBright: [97, 39]
159
- },
160
- bgColor: {
161
- bgBlack: [40, 49],
162
- bgRed: [41, 49],
163
- bgGreen: [42, 49],
164
- bgYellow: [43, 49],
165
- bgBlue: [44, 49],
166
- bgMagenta: [45, 49],
167
- bgCyan: [46, 49],
168
- bgWhite: [47, 49],
169
- // Bright color
170
- bgBlackBright: [100, 49],
171
- bgGray: [100, 49],
172
- // Alias of `bgBlackBright`
173
- bgGrey: [100, 49],
174
- // Alias of `bgBlackBright`
175
- bgRedBright: [101, 49],
176
- bgGreenBright: [102, 49],
177
- bgYellowBright: [103, 49],
178
- bgBlueBright: [104, 49],
179
- bgMagentaBright: [105, 49],
180
- bgCyanBright: [106, 49],
181
- bgWhiteBright: [107, 49]
182
- }
183
- };
184
- var modifierNames = Object.keys(styles.modifier);
185
- var foregroundColorNames = Object.keys(styles.color);
186
- var backgroundColorNames = Object.keys(styles.bgColor);
187
- var colorNames = [...foregroundColorNames, ...backgroundColorNames];
188
- function assembleStyles() {
189
- const codes = /* @__PURE__ */ new Map();
190
- for (const [groupName, group] of Object.entries(styles)) {
191
- for (const [styleName, style] of Object.entries(group)) {
192
- styles[styleName] = {
193
- open: `\x1B[${style[0]}m`,
194
- close: `\x1B[${style[1]}m`
195
- };
196
- group[styleName] = styles[styleName];
197
- codes.set(style[0], style[1]);
198
- }
199
- Object.defineProperty(styles, groupName, {
200
- value: group,
201
- enumerable: false
202
- });
203
- }
204
- Object.defineProperty(styles, "codes", {
205
- value: codes,
206
- enumerable: false
207
- });
208
- styles.color.close = "\x1B[39m";
209
- styles.bgColor.close = "\x1B[49m";
210
- styles.color.ansi = wrapAnsi16();
211
- styles.color.ansi256 = wrapAnsi256();
212
- styles.color.ansi16m = wrapAnsi16m();
213
- styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
214
- styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
215
- styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
216
- Object.defineProperties(styles, {
217
- rgbToAnsi256: {
218
- value(red2, green2, blue2) {
219
- if (red2 === green2 && green2 === blue2) {
220
- if (red2 < 8) {
221
- return 16;
222
- }
223
- if (red2 > 248) {
224
- return 231;
225
- }
226
- return Math.round((red2 - 8) / 247 * 24) + 232;
227
- }
228
- return 16 + 36 * Math.round(red2 / 255 * 5) + 6 * Math.round(green2 / 255 * 5) + Math.round(blue2 / 255 * 5);
229
- },
230
- enumerable: false
231
- },
232
- hexToRgb: {
233
- value(hex) {
234
- const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
235
- if (!matches) {
236
- return [0, 0, 0];
237
- }
238
- let [colorString] = matches;
239
- if (colorString.length === 3) {
240
- colorString = [...colorString].map((character) => character + character).join("");
241
- }
242
- const integer = Number.parseInt(colorString, 16);
243
- return [
244
- /* eslint-disable no-bitwise */
245
- integer >> 16 & 255,
246
- integer >> 8 & 255,
247
- integer & 255
248
- /* eslint-enable no-bitwise */
249
- ];
250
- },
251
- enumerable: false
252
- },
253
- hexToAnsi256: {
254
- value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
255
- enumerable: false
256
- },
257
- ansi256ToAnsi: {
258
- value(code) {
259
- if (code < 8) {
260
- return 30 + code;
261
- }
262
- if (code < 16) {
263
- return 90 + (code - 8);
264
- }
265
- let red2;
266
- let green2;
267
- let blue2;
268
- if (code >= 232) {
269
- red2 = ((code - 232) * 10 + 8) / 255;
270
- green2 = red2;
271
- blue2 = red2;
272
- } else {
273
- code -= 16;
274
- const remainder = code % 36;
275
- red2 = Math.floor(code / 36) / 5;
276
- green2 = Math.floor(remainder / 6) / 5;
277
- blue2 = remainder % 6 / 5;
278
- }
279
- const value = Math.max(red2, green2, blue2) * 2;
280
- if (value === 0) {
281
- return 30;
282
- }
283
- let result = 30 + (Math.round(blue2) << 2 | Math.round(green2) << 1 | Math.round(red2));
284
- if (value === 2) {
285
- result += 60;
286
- }
287
- return result;
288
- },
289
- enumerable: false
290
- },
291
- rgbToAnsi: {
292
- value: (red2, green2, blue2) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red2, green2, blue2)),
293
- enumerable: false
294
- },
295
- hexToAnsi: {
296
- value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
297
- enumerable: false
298
- }
299
- });
300
- return styles;
301
- }
302
- var ansiStyles = assembleStyles();
303
- var ansi_styles_default = ansiStyles;
304
-
305
- // node_modules/chalk/source/vendor/supports-color/index.js
306
- import process2 from "node:process";
307
- import os from "node:os";
308
- import tty from "node:tty";
309
- function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
310
- const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
311
- const position = argv.indexOf(prefix + flag);
312
- const terminatorPosition = argv.indexOf("--");
313
- return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
314
- }
315
- var { env } = process2;
316
- var flagForceColor;
317
- if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
318
- flagForceColor = 0;
319
- } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
320
- flagForceColor = 1;
321
- }
322
- function envForceColor() {
323
- if ("FORCE_COLOR" in env) {
324
- if (env.FORCE_COLOR === "true") {
325
- return 1;
326
- }
327
- if (env.FORCE_COLOR === "false") {
328
- return 0;
329
- }
330
- return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
331
- }
332
- }
333
- function translateLevel(level) {
334
- if (level === 0) {
335
- return false;
336
- }
337
- return {
338
- level,
339
- hasBasic: true,
340
- has256: level >= 2,
341
- has16m: level >= 3
342
- };
343
- }
344
- function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
345
- const noFlagForceColor = envForceColor();
346
- if (noFlagForceColor !== void 0) {
347
- flagForceColor = noFlagForceColor;
348
- }
349
- const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
350
- if (forceColor === 0) {
351
- return 0;
352
- }
353
- if (sniffFlags) {
354
- if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
355
- return 3;
356
- }
357
- if (hasFlag("color=256")) {
358
- return 2;
359
- }
360
- }
361
- if ("TF_BUILD" in env && "AGENT_NAME" in env) {
362
- return 1;
363
- }
364
- if (haveStream && !streamIsTTY && forceColor === void 0) {
365
- return 0;
366
- }
367
- const min = forceColor || 0;
368
- if (env.TERM === "dumb") {
369
- return min;
370
- }
371
- if (process2.platform === "win32") {
372
- const osRelease = os.release().split(".");
373
- if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
374
- return Number(osRelease[2]) >= 14931 ? 3 : 2;
375
- }
376
- return 1;
377
- }
378
- if ("CI" in env) {
379
- if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => key in env)) {
380
- return 3;
381
- }
382
- if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
383
- return 1;
384
- }
385
- return min;
386
- }
387
- if ("TEAMCITY_VERSION" in env) {
388
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
389
- }
390
- if (env.COLORTERM === "truecolor") {
391
- return 3;
392
- }
393
- if (env.TERM === "xterm-kitty") {
394
- return 3;
395
- }
396
- if (env.TERM === "xterm-ghostty") {
397
- return 3;
398
- }
399
- if (env.TERM === "wezterm") {
400
- return 3;
401
- }
402
- if ("TERM_PROGRAM" in env) {
403
- const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
404
- switch (env.TERM_PROGRAM) {
405
- case "iTerm.app": {
406
- return version >= 3 ? 3 : 2;
407
- }
408
- case "Apple_Terminal": {
409
- return 2;
410
- }
411
- }
412
- }
413
- if (/-256(color)?$/i.test(env.TERM)) {
414
- return 2;
415
- }
416
- if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
417
- return 1;
418
- }
419
- if ("COLORTERM" in env) {
420
- return 1;
421
- }
422
- return min;
423
- }
424
- function createSupportsColor(stream, options = {}) {
425
- const level = _supportsColor(stream, {
426
- streamIsTTY: stream && stream.isTTY,
427
- ...options
428
- });
429
- return translateLevel(level);
430
- }
431
- var supportsColor = {
432
- stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
433
- stderr: createSupportsColor({ isTTY: tty.isatty(2) })
434
- };
435
- var supports_color_default = supportsColor;
436
-
437
- // node_modules/chalk/source/utilities.js
438
- function stringReplaceAll(string, substring, replacer) {
439
- let index = string.indexOf(substring);
440
- if (index === -1) {
441
- return string;
442
- }
443
- const substringLength = substring.length;
444
- let endIndex = 0;
445
- let returnValue = "";
446
- do {
447
- returnValue += string.slice(endIndex, index) + substring + replacer;
448
- endIndex = index + substringLength;
449
- index = string.indexOf(substring, endIndex);
450
- } while (index !== -1);
451
- returnValue += string.slice(endIndex);
452
- return returnValue;
453
- }
454
- function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
455
- let endIndex = 0;
456
- let returnValue = "";
457
- do {
458
- const gotCR = string[index - 1] === "\r";
459
- returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
460
- endIndex = index + 1;
461
- index = string.indexOf("\n", endIndex);
462
- } while (index !== -1);
463
- returnValue += string.slice(endIndex);
464
- return returnValue;
465
- }
466
-
467
- // node_modules/chalk/source/index.js
468
- var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
469
- var GENERATOR = Symbol("GENERATOR");
470
- var STYLER = Symbol("STYLER");
471
- var IS_EMPTY = Symbol("IS_EMPTY");
472
- var levelMapping = [
473
- "ansi",
474
- "ansi",
475
- "ansi256",
476
- "ansi16m"
477
- ];
478
- var styles2 = /* @__PURE__ */ Object.create(null);
479
- var applyOptions = (object, options = {}) => {
480
- if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
481
- throw new Error("The `level` option should be an integer from 0 to 3");
482
- }
483
- const colorLevel = stdoutColor ? stdoutColor.level : 0;
484
- object.level = options.level === void 0 ? colorLevel : options.level;
485
- };
486
- var chalkFactory = (options) => {
487
- const chalk2 = (...strings) => strings.join(" ");
488
- applyOptions(chalk2, options);
489
- Object.setPrototypeOf(chalk2, createChalk.prototype);
490
- return chalk2;
491
- };
492
- function createChalk(options) {
493
- return chalkFactory(options);
494
- }
495
- Object.setPrototypeOf(createChalk.prototype, Function.prototype);
496
- for (const [styleName, style] of Object.entries(ansi_styles_default)) {
497
- styles2[styleName] = {
498
- get() {
499
- const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
500
- Object.defineProperty(this, styleName, { value: builder });
501
- return builder;
502
- }
503
- };
504
- }
505
- styles2.visible = {
506
- get() {
507
- const builder = createBuilder(this, this[STYLER], true);
508
- Object.defineProperty(this, "visible", { value: builder });
509
- return builder;
510
- }
511
- };
512
- var getModelAnsi = (model, level, type, ...arguments_) => {
513
- if (model === "rgb") {
514
- if (level === "ansi16m") {
515
- return ansi_styles_default[type].ansi16m(...arguments_);
516
- }
517
- if (level === "ansi256") {
518
- return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
519
- }
520
- return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
521
- }
522
- if (model === "hex") {
523
- return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
524
- }
525
- return ansi_styles_default[type][model](...arguments_);
526
- };
527
- var usedModels = ["rgb", "hex", "ansi256"];
528
- for (const model of usedModels) {
529
- styles2[model] = {
530
- get() {
531
- const { level } = this;
532
- return function(...arguments_) {
533
- const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
534
- return createBuilder(this, styler, this[IS_EMPTY]);
535
- };
536
- }
537
- };
538
- const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
539
- styles2[bgModel] = {
540
- get() {
541
- const { level } = this;
542
- return function(...arguments_) {
543
- const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
544
- return createBuilder(this, styler, this[IS_EMPTY]);
545
- };
546
- }
547
- };
548
- }
549
- var proto = Object.defineProperties(() => {
550
- }, {
551
- ...styles2,
552
- level: {
553
- enumerable: true,
554
- get() {
555
- return this[GENERATOR].level;
556
- },
557
- set(level) {
558
- this[GENERATOR].level = level;
559
- }
560
- }
561
- });
562
- var createStyler = (open, close, parent) => {
563
- let openAll;
564
- let closeAll;
565
- if (parent === void 0) {
566
- openAll = open;
567
- closeAll = close;
568
- } else {
569
- openAll = parent.openAll + open;
570
- closeAll = close + parent.closeAll;
571
- }
572
- return {
573
- open,
574
- close,
575
- openAll,
576
- closeAll,
577
- parent
578
- };
579
- };
580
- var createBuilder = (self, _styler, _isEmpty) => {
581
- const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
582
- Object.setPrototypeOf(builder, proto);
583
- builder[GENERATOR] = self;
584
- builder[STYLER] = _styler;
585
- builder[IS_EMPTY] = _isEmpty;
586
- return builder;
587
- };
588
- var applyStyle = (self, string) => {
589
- if (self.level <= 0 || !string) {
590
- return self[IS_EMPTY] ? "" : string;
591
- }
592
- let styler = self[STYLER];
593
- if (styler === void 0) {
594
- return string;
595
- }
596
- const { openAll, closeAll } = styler;
597
- if (string.includes("\x1B")) {
598
- while (styler !== void 0) {
599
- string = stringReplaceAll(string, styler.close, styler.open);
600
- styler = styler.parent;
601
- }
602
- }
603
- const lfIndex = string.indexOf("\n");
604
- if (lfIndex !== -1) {
605
- string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
606
- }
607
- return openAll + string + closeAll;
608
- };
609
- Object.defineProperties(createChalk.prototype, styles2);
610
- var chalk = createChalk();
611
- var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
612
- var source_default = chalk;
613
-
614
- // node_modules/cli-cursor/index.js
615
- import process5 from "node:process";
616
-
617
- // node_modules/restore-cursor/index.js
618
- import process4 from "node:process";
619
-
620
- // node_modules/mimic-function/index.js
621
- var copyProperty = (to, from, property, ignoreNonConfigurable) => {
622
- if (property === "length" || property === "prototype") {
623
- return;
624
- }
625
- if (property === "arguments" || property === "caller") {
626
- return;
627
- }
628
- const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
629
- const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
630
- if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
631
- return;
632
- }
633
- Object.defineProperty(to, property, fromDescriptor);
634
- };
635
- var canCopyProperty = function(toDescriptor, fromDescriptor) {
636
- return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
637
- };
638
- var changePrototype = (to, from) => {
639
- const fromPrototype = Object.getPrototypeOf(from);
640
- if (fromPrototype === Object.getPrototypeOf(to)) {
641
- return;
642
- }
643
- Object.setPrototypeOf(to, fromPrototype);
644
- };
645
- var wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
646
- ${fromBody}`;
647
- var toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
648
- var toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
649
- var changeToString = (to, from, name) => {
650
- const withName = name === "" ? "" : `with ${name.trim()}() `;
651
- const newToString = wrappedToString.bind(null, withName, from.toString());
652
- Object.defineProperty(newToString, "name", toStringName);
653
- const { writable, enumerable, configurable } = toStringDescriptor;
654
- Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
655
- };
656
- function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
657
- const { name } = to;
658
- for (const property of Reflect.ownKeys(from)) {
659
- copyProperty(to, from, property, ignoreNonConfigurable);
660
- }
661
- changePrototype(to, from);
662
- changeToString(to, from, name);
663
- return to;
664
- }
665
-
666
- // node_modules/onetime/index.js
667
- var calledFunctions = /* @__PURE__ */ new WeakMap();
668
- var onetime = (function_, options = {}) => {
669
- if (typeof function_ !== "function") {
670
- throw new TypeError("Expected a function");
671
- }
672
- let returnValue;
673
- let callCount = 0;
674
- const functionName = function_.displayName || function_.name || "<anonymous>";
675
- const onetime2 = function(...arguments_) {
676
- calledFunctions.set(onetime2, ++callCount);
677
- if (callCount === 1) {
678
- returnValue = function_.apply(this, arguments_);
679
- function_ = void 0;
680
- } else if (options.throw === true) {
681
- throw new Error(`Function \`${functionName}\` can only be called once`);
682
- }
683
- return returnValue;
684
- };
685
- mimicFunction(onetime2, function_);
686
- calledFunctions.set(onetime2, callCount);
687
- return onetime2;
688
- };
689
- onetime.callCount = (function_) => {
690
- if (!calledFunctions.has(function_)) {
691
- throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
692
- }
693
- return calledFunctions.get(function_);
694
- };
695
- var onetime_default = onetime;
696
-
697
- // node_modules/signal-exit/dist/mjs/signals.js
698
- var signals = [];
699
- signals.push("SIGHUP", "SIGINT", "SIGTERM");
700
- if (process.platform !== "win32") {
701
- signals.push(
702
- "SIGALRM",
703
- "SIGABRT",
704
- "SIGVTALRM",
705
- "SIGXCPU",
706
- "SIGXFSZ",
707
- "SIGUSR2",
708
- "SIGTRAP",
709
- "SIGSYS",
710
- "SIGQUIT",
711
- "SIGIOT"
712
- // should detect profiler and enable/disable accordingly.
713
- // see #21
714
- // 'SIGPROF'
715
- );
716
- }
717
- if (process.platform === "linux") {
718
- signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
719
- }
720
-
721
- // node_modules/signal-exit/dist/mjs/index.js
722
- 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";
723
- var kExitEmitter = Symbol.for("signal-exit emitter");
724
- var global = globalThis;
725
- var ObjectDefineProperty = Object.defineProperty.bind(Object);
726
- var Emitter = class {
727
- emitted = {
728
- afterExit: false,
729
- exit: false
730
- };
731
- listeners = {
732
- afterExit: [],
733
- exit: []
734
- };
735
- count = 0;
736
- id = Math.random();
737
- constructor() {
738
- if (global[kExitEmitter]) {
739
- return global[kExitEmitter];
740
- }
741
- ObjectDefineProperty(global, kExitEmitter, {
742
- value: this,
743
- writable: false,
744
- enumerable: false,
745
- configurable: false
746
- });
747
- }
748
- on(ev, fn) {
749
- this.listeners[ev].push(fn);
750
- }
751
- removeListener(ev, fn) {
752
- const list = this.listeners[ev];
753
- const i = list.indexOf(fn);
754
- if (i === -1) {
755
- return;
756
- }
757
- if (i === 0 && list.length === 1) {
758
- list.length = 0;
759
- } else {
760
- list.splice(i, 1);
761
- }
762
- }
763
- emit(ev, code, signal) {
764
- if (this.emitted[ev]) {
765
- return false;
766
- }
767
- this.emitted[ev] = true;
768
- let ret = false;
769
- for (const fn of this.listeners[ev]) {
770
- ret = fn(code, signal) === true || ret;
771
- }
772
- if (ev === "exit") {
773
- ret = this.emit("afterExit", code, signal) || ret;
774
- }
775
- return ret;
776
- }
777
- };
778
- var SignalExitBase = class {
779
- };
780
- var signalExitWrap = (handler) => {
781
- return {
782
- onExit(cb, opts) {
783
- return handler.onExit(cb, opts);
784
- },
785
- load() {
786
- return handler.load();
787
- },
788
- unload() {
789
- return handler.unload();
790
- }
791
- };
792
- };
793
- var SignalExitFallback = class extends SignalExitBase {
794
- onExit() {
795
- return () => {
796
- };
797
- }
798
- load() {
799
- }
800
- unload() {
801
- }
802
- };
803
- var SignalExit = class extends SignalExitBase {
804
- // "SIGHUP" throws an `ENOSYS` error on Windows,
805
- // so use a supported signal instead
806
- /* c8 ignore start */
807
- #hupSig = process3.platform === "win32" ? "SIGINT" : "SIGHUP";
808
- /* c8 ignore stop */
809
- #emitter = new Emitter();
810
- #process;
811
- #originalProcessEmit;
812
- #originalProcessReallyExit;
813
- #sigListeners = {};
814
- #loaded = false;
815
- constructor(process9) {
816
- super();
817
- this.#process = process9;
818
- this.#sigListeners = {};
819
- for (const sig of signals) {
820
- this.#sigListeners[sig] = () => {
821
- const listeners = this.#process.listeners(sig);
822
- let { count } = this.#emitter;
823
- const p = process9;
824
- if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
825
- count += p.__signal_exit_emitter__.count;
826
- }
827
- if (listeners.length === count) {
828
- this.unload();
829
- const ret = this.#emitter.emit("exit", null, sig);
830
- const s = sig === "SIGHUP" ? this.#hupSig : sig;
831
- if (!ret)
832
- process9.kill(process9.pid, s);
833
- }
834
- };
835
- }
836
- this.#originalProcessReallyExit = process9.reallyExit;
837
- this.#originalProcessEmit = process9.emit;
838
- }
839
- onExit(cb, opts) {
840
- if (!processOk(this.#process)) {
841
- return () => {
842
- };
843
- }
844
- if (this.#loaded === false) {
845
- this.load();
846
- }
847
- const ev = opts?.alwaysLast ? "afterExit" : "exit";
848
- this.#emitter.on(ev, cb);
849
- return () => {
850
- this.#emitter.removeListener(ev, cb);
851
- if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
852
- this.unload();
853
- }
854
- };
855
- }
856
- load() {
857
- if (this.#loaded) {
858
- return;
859
- }
860
- this.#loaded = true;
861
- this.#emitter.count += 1;
862
- for (const sig of signals) {
863
- try {
864
- const fn = this.#sigListeners[sig];
865
- if (fn)
866
- this.#process.on(sig, fn);
867
- } catch (_) {
868
- }
869
- }
870
- this.#process.emit = (ev, ...a) => {
871
- return this.#processEmit(ev, ...a);
872
- };
873
- this.#process.reallyExit = (code) => {
874
- return this.#processReallyExit(code);
875
- };
876
- }
877
- unload() {
878
- if (!this.#loaded) {
879
- return;
880
- }
881
- this.#loaded = false;
882
- signals.forEach((sig) => {
883
- const listener = this.#sigListeners[sig];
884
- if (!listener) {
885
- throw new Error("Listener not defined for signal: " + sig);
886
- }
887
- try {
888
- this.#process.removeListener(sig, listener);
889
- } catch (_) {
890
- }
891
- });
892
- this.#process.emit = this.#originalProcessEmit;
893
- this.#process.reallyExit = this.#originalProcessReallyExit;
894
- this.#emitter.count -= 1;
895
- }
896
- #processReallyExit(code) {
897
- if (!processOk(this.#process)) {
898
- return 0;
899
- }
900
- this.#process.exitCode = code || 0;
901
- this.#emitter.emit("exit", this.#process.exitCode, null);
902
- return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
903
- }
904
- #processEmit(ev, ...args) {
905
- const og = this.#originalProcessEmit;
906
- if (ev === "exit" && processOk(this.#process)) {
907
- if (typeof args[0] === "number") {
908
- this.#process.exitCode = args[0];
909
- }
910
- const ret = og.call(this.#process, ev, ...args);
911
- this.#emitter.emit("exit", this.#process.exitCode, null);
912
- return ret;
913
- } else {
914
- return og.call(this.#process, ev, ...args);
915
- }
916
- }
917
- };
918
- var process3 = globalThis.process;
919
- var {
920
- /**
921
- * Called when the process is exiting, whether via signal, explicit
922
- * exit, or running out of stuff to do.
923
- *
924
- * If the global process object is not suitable for instrumentation,
925
- * then this will be a no-op.
926
- *
927
- * Returns a function that may be used to unload signal-exit.
928
- */
929
- onExit,
930
- /**
931
- * Load the listeners. Likely you never need to call this, unless
932
- * doing a rather deep integration with signal-exit functionality.
933
- * Mostly exposed for the benefit of testing.
934
- *
935
- * @internal
936
- */
937
- load,
938
- /**
939
- * Unload the listeners. Likely you never need to call this, unless
940
- * doing a rather deep integration with signal-exit functionality.
941
- * Mostly exposed for the benefit of testing.
942
- *
943
- * @internal
944
- */
945
- unload
946
- } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback());
947
-
948
- // node_modules/restore-cursor/index.js
949
- var terminal = process4.stderr.isTTY ? process4.stderr : process4.stdout.isTTY ? process4.stdout : void 0;
950
- var restoreCursor = terminal ? onetime_default(() => {
951
- onExit(() => {
952
- terminal.write("\x1B[?25h");
953
- }, { alwaysLast: true });
954
- }) : () => {
955
- };
956
- var restore_cursor_default = restoreCursor;
957
-
958
- // node_modules/cli-cursor/index.js
959
- var isHidden = false;
960
- var cliCursor = {};
961
- cliCursor.show = (writableStream = process5.stderr) => {
962
- if (!writableStream.isTTY) {
963
- return;
964
- }
965
- isHidden = false;
966
- writableStream.write("\x1B[?25h");
967
- };
968
- cliCursor.hide = (writableStream = process5.stderr) => {
969
- if (!writableStream.isTTY) {
970
- return;
971
- }
972
- restore_cursor_default();
973
- isHidden = true;
974
- writableStream.write("\x1B[?25l");
975
- };
976
- cliCursor.toggle = (force, writableStream) => {
977
- if (force !== void 0) {
978
- isHidden = force;
979
- }
980
- if (isHidden) {
981
- cliCursor.show(writableStream);
982
- } else {
983
- cliCursor.hide(writableStream);
984
- }
985
- };
986
- var cli_cursor_default = cliCursor;
987
-
988
- // node_modules/cli-spinners/spinners.json
989
- var spinners_default = {
990
- dots: {
991
- interval: 80,
992
- frames: [
993
- "\u280B",
994
- "\u2819",
995
- "\u2839",
996
- "\u2838",
997
- "\u283C",
998
- "\u2834",
999
- "\u2826",
1000
- "\u2827",
1001
- "\u2807",
1002
- "\u280F"
1003
- ]
1004
- },
1005
- dots2: {
1006
- interval: 80,
1007
- frames: [
1008
- "\u28FE",
1009
- "\u28FD",
1010
- "\u28FB",
1011
- "\u28BF",
1012
- "\u287F",
1013
- "\u28DF",
1014
- "\u28EF",
1015
- "\u28F7"
1016
- ]
1017
- },
1018
- dots3: {
1019
- interval: 80,
1020
- frames: [
1021
- "\u280B",
1022
- "\u2819",
1023
- "\u281A",
1024
- "\u281E",
1025
- "\u2816",
1026
- "\u2826",
1027
- "\u2834",
1028
- "\u2832",
1029
- "\u2833",
1030
- "\u2813"
1031
- ]
1032
- },
1033
- dots4: {
1034
- interval: 80,
1035
- frames: [
1036
- "\u2804",
1037
- "\u2806",
1038
- "\u2807",
1039
- "\u280B",
1040
- "\u2819",
1041
- "\u2838",
1042
- "\u2830",
1043
- "\u2820",
1044
- "\u2830",
1045
- "\u2838",
1046
- "\u2819",
1047
- "\u280B",
1048
- "\u2807",
1049
- "\u2806"
1050
- ]
1051
- },
1052
- dots5: {
1053
- interval: 80,
1054
- frames: [
1055
- "\u280B",
1056
- "\u2819",
1057
- "\u281A",
1058
- "\u2812",
1059
- "\u2802",
1060
- "\u2802",
1061
- "\u2812",
1062
- "\u2832",
1063
- "\u2834",
1064
- "\u2826",
1065
- "\u2816",
1066
- "\u2812",
1067
- "\u2810",
1068
- "\u2810",
1069
- "\u2812",
1070
- "\u2813",
1071
- "\u280B"
1072
- ]
1073
- },
1074
- dots6: {
1075
- interval: 80,
1076
- frames: [
1077
- "\u2801",
1078
- "\u2809",
1079
- "\u2819",
1080
- "\u281A",
1081
- "\u2812",
1082
- "\u2802",
1083
- "\u2802",
1084
- "\u2812",
1085
- "\u2832",
1086
- "\u2834",
1087
- "\u2824",
1088
- "\u2804",
1089
- "\u2804",
1090
- "\u2824",
1091
- "\u2834",
1092
- "\u2832",
1093
- "\u2812",
1094
- "\u2802",
1095
- "\u2802",
1096
- "\u2812",
1097
- "\u281A",
1098
- "\u2819",
1099
- "\u2809",
1100
- "\u2801"
1101
- ]
1102
- },
1103
- dots7: {
1104
- interval: 80,
1105
- frames: [
1106
- "\u2808",
1107
- "\u2809",
1108
- "\u280B",
1109
- "\u2813",
1110
- "\u2812",
1111
- "\u2810",
1112
- "\u2810",
1113
- "\u2812",
1114
- "\u2816",
1115
- "\u2826",
1116
- "\u2824",
1117
- "\u2820",
1118
- "\u2820",
1119
- "\u2824",
1120
- "\u2826",
1121
- "\u2816",
1122
- "\u2812",
1123
- "\u2810",
1124
- "\u2810",
1125
- "\u2812",
1126
- "\u2813",
1127
- "\u280B",
1128
- "\u2809",
1129
- "\u2808"
1130
- ]
1131
- },
1132
- dots8: {
1133
- interval: 80,
1134
- frames: [
1135
- "\u2801",
1136
- "\u2801",
1137
- "\u2809",
1138
- "\u2819",
1139
- "\u281A",
1140
- "\u2812",
1141
- "\u2802",
1142
- "\u2802",
1143
- "\u2812",
1144
- "\u2832",
1145
- "\u2834",
1146
- "\u2824",
1147
- "\u2804",
1148
- "\u2804",
1149
- "\u2824",
1150
- "\u2820",
1151
- "\u2820",
1152
- "\u2824",
1153
- "\u2826",
1154
- "\u2816",
1155
- "\u2812",
1156
- "\u2810",
1157
- "\u2810",
1158
- "\u2812",
1159
- "\u2813",
1160
- "\u280B",
1161
- "\u2809",
1162
- "\u2808",
1163
- "\u2808"
1164
- ]
1165
- },
1166
- dots9: {
1167
- interval: 80,
1168
- frames: [
1169
- "\u28B9",
1170
- "\u28BA",
1171
- "\u28BC",
1172
- "\u28F8",
1173
- "\u28C7",
1174
- "\u2867",
1175
- "\u2857",
1176
- "\u284F"
1177
- ]
1178
- },
1179
- dots10: {
1180
- interval: 80,
1181
- frames: [
1182
- "\u2884",
1183
- "\u2882",
1184
- "\u2881",
1185
- "\u2841",
1186
- "\u2848",
1187
- "\u2850",
1188
- "\u2860"
1189
- ]
1190
- },
1191
- dots11: {
1192
- interval: 100,
1193
- frames: [
1194
- "\u2801",
1195
- "\u2802",
1196
- "\u2804",
1197
- "\u2840",
1198
- "\u2880",
1199
- "\u2820",
1200
- "\u2810",
1201
- "\u2808"
1202
- ]
1203
- },
1204
- dots12: {
1205
- interval: 80,
1206
- frames: [
1207
- "\u2880\u2800",
1208
- "\u2840\u2800",
1209
- "\u2804\u2800",
1210
- "\u2882\u2800",
1211
- "\u2842\u2800",
1212
- "\u2805\u2800",
1213
- "\u2883\u2800",
1214
- "\u2843\u2800",
1215
- "\u280D\u2800",
1216
- "\u288B\u2800",
1217
- "\u284B\u2800",
1218
- "\u280D\u2801",
1219
- "\u288B\u2801",
1220
- "\u284B\u2801",
1221
- "\u280D\u2809",
1222
- "\u280B\u2809",
1223
- "\u280B\u2809",
1224
- "\u2809\u2819",
1225
- "\u2809\u2819",
1226
- "\u2809\u2829",
1227
- "\u2808\u2899",
1228
- "\u2808\u2859",
1229
- "\u2888\u2829",
1230
- "\u2840\u2899",
1231
- "\u2804\u2859",
1232
- "\u2882\u2829",
1233
- "\u2842\u2898",
1234
- "\u2805\u2858",
1235
- "\u2883\u2828",
1236
- "\u2843\u2890",
1237
- "\u280D\u2850",
1238
- "\u288B\u2820",
1239
- "\u284B\u2880",
1240
- "\u280D\u2841",
1241
- "\u288B\u2801",
1242
- "\u284B\u2801",
1243
- "\u280D\u2809",
1244
- "\u280B\u2809",
1245
- "\u280B\u2809",
1246
- "\u2809\u2819",
1247
- "\u2809\u2819",
1248
- "\u2809\u2829",
1249
- "\u2808\u2899",
1250
- "\u2808\u2859",
1251
- "\u2808\u2829",
1252
- "\u2800\u2899",
1253
- "\u2800\u2859",
1254
- "\u2800\u2829",
1255
- "\u2800\u2898",
1256
- "\u2800\u2858",
1257
- "\u2800\u2828",
1258
- "\u2800\u2890",
1259
- "\u2800\u2850",
1260
- "\u2800\u2820",
1261
- "\u2800\u2880",
1262
- "\u2800\u2840"
1263
- ]
1264
- },
1265
- dots13: {
1266
- interval: 80,
1267
- frames: [
1268
- "\u28FC",
1269
- "\u28F9",
1270
- "\u28BB",
1271
- "\u283F",
1272
- "\u285F",
1273
- "\u28CF",
1274
- "\u28E7",
1275
- "\u28F6"
1276
- ]
1277
- },
1278
- dots14: {
1279
- interval: 80,
1280
- frames: [
1281
- "\u2809\u2809",
1282
- "\u2808\u2819",
1283
- "\u2800\u2839",
1284
- "\u2800\u28B8",
1285
- "\u2800\u28F0",
1286
- "\u2880\u28E0",
1287
- "\u28C0\u28C0",
1288
- "\u28C4\u2840",
1289
- "\u28C6\u2800",
1290
- "\u2847\u2800",
1291
- "\u280F\u2800",
1292
- "\u280B\u2801"
1293
- ]
1294
- },
1295
- dots8Bit: {
1296
- interval: 80,
1297
- frames: [
1298
- "\u2800",
1299
- "\u2801",
1300
- "\u2802",
1301
- "\u2803",
1302
- "\u2804",
1303
- "\u2805",
1304
- "\u2806",
1305
- "\u2807",
1306
- "\u2840",
1307
- "\u2841",
1308
- "\u2842",
1309
- "\u2843",
1310
- "\u2844",
1311
- "\u2845",
1312
- "\u2846",
1313
- "\u2847",
1314
- "\u2808",
1315
- "\u2809",
1316
- "\u280A",
1317
- "\u280B",
1318
- "\u280C",
1319
- "\u280D",
1320
- "\u280E",
1321
- "\u280F",
1322
- "\u2848",
1323
- "\u2849",
1324
- "\u284A",
1325
- "\u284B",
1326
- "\u284C",
1327
- "\u284D",
1328
- "\u284E",
1329
- "\u284F",
1330
- "\u2810",
1331
- "\u2811",
1332
- "\u2812",
1333
- "\u2813",
1334
- "\u2814",
1335
- "\u2815",
1336
- "\u2816",
1337
- "\u2817",
1338
- "\u2850",
1339
- "\u2851",
1340
- "\u2852",
1341
- "\u2853",
1342
- "\u2854",
1343
- "\u2855",
1344
- "\u2856",
1345
- "\u2857",
1346
- "\u2818",
1347
- "\u2819",
1348
- "\u281A",
1349
- "\u281B",
1350
- "\u281C",
1351
- "\u281D",
1352
- "\u281E",
1353
- "\u281F",
1354
- "\u2858",
1355
- "\u2859",
1356
- "\u285A",
1357
- "\u285B",
1358
- "\u285C",
1359
- "\u285D",
1360
- "\u285E",
1361
- "\u285F",
1362
- "\u2820",
1363
- "\u2821",
1364
- "\u2822",
1365
- "\u2823",
1366
- "\u2824",
1367
- "\u2825",
1368
- "\u2826",
1369
- "\u2827",
1370
- "\u2860",
1371
- "\u2861",
1372
- "\u2862",
1373
- "\u2863",
1374
- "\u2864",
1375
- "\u2865",
1376
- "\u2866",
1377
- "\u2867",
1378
- "\u2828",
1379
- "\u2829",
1380
- "\u282A",
1381
- "\u282B",
1382
- "\u282C",
1383
- "\u282D",
1384
- "\u282E",
1385
- "\u282F",
1386
- "\u2868",
1387
- "\u2869",
1388
- "\u286A",
1389
- "\u286B",
1390
- "\u286C",
1391
- "\u286D",
1392
- "\u286E",
1393
- "\u286F",
1394
- "\u2830",
1395
- "\u2831",
1396
- "\u2832",
1397
- "\u2833",
1398
- "\u2834",
1399
- "\u2835",
1400
- "\u2836",
1401
- "\u2837",
1402
- "\u2870",
1403
- "\u2871",
1404
- "\u2872",
1405
- "\u2873",
1406
- "\u2874",
1407
- "\u2875",
1408
- "\u2876",
1409
- "\u2877",
1410
- "\u2838",
1411
- "\u2839",
1412
- "\u283A",
1413
- "\u283B",
1414
- "\u283C",
1415
- "\u283D",
1416
- "\u283E",
1417
- "\u283F",
1418
- "\u2878",
1419
- "\u2879",
1420
- "\u287A",
1421
- "\u287B",
1422
- "\u287C",
1423
- "\u287D",
1424
- "\u287E",
1425
- "\u287F",
1426
- "\u2880",
1427
- "\u2881",
1428
- "\u2882",
1429
- "\u2883",
1430
- "\u2884",
1431
- "\u2885",
1432
- "\u2886",
1433
- "\u2887",
1434
- "\u28C0",
1435
- "\u28C1",
1436
- "\u28C2",
1437
- "\u28C3",
1438
- "\u28C4",
1439
- "\u28C5",
1440
- "\u28C6",
1441
- "\u28C7",
1442
- "\u2888",
1443
- "\u2889",
1444
- "\u288A",
1445
- "\u288B",
1446
- "\u288C",
1447
- "\u288D",
1448
- "\u288E",
1449
- "\u288F",
1450
- "\u28C8",
1451
- "\u28C9",
1452
- "\u28CA",
1453
- "\u28CB",
1454
- "\u28CC",
1455
- "\u28CD",
1456
- "\u28CE",
1457
- "\u28CF",
1458
- "\u2890",
1459
- "\u2891",
1460
- "\u2892",
1461
- "\u2893",
1462
- "\u2894",
1463
- "\u2895",
1464
- "\u2896",
1465
- "\u2897",
1466
- "\u28D0",
1467
- "\u28D1",
1468
- "\u28D2",
1469
- "\u28D3",
1470
- "\u28D4",
1471
- "\u28D5",
1472
- "\u28D6",
1473
- "\u28D7",
1474
- "\u2898",
1475
- "\u2899",
1476
- "\u289A",
1477
- "\u289B",
1478
- "\u289C",
1479
- "\u289D",
1480
- "\u289E",
1481
- "\u289F",
1482
- "\u28D8",
1483
- "\u28D9",
1484
- "\u28DA",
1485
- "\u28DB",
1486
- "\u28DC",
1487
- "\u28DD",
1488
- "\u28DE",
1489
- "\u28DF",
1490
- "\u28A0",
1491
- "\u28A1",
1492
- "\u28A2",
1493
- "\u28A3",
1494
- "\u28A4",
1495
- "\u28A5",
1496
- "\u28A6",
1497
- "\u28A7",
1498
- "\u28E0",
1499
- "\u28E1",
1500
- "\u28E2",
1501
- "\u28E3",
1502
- "\u28E4",
1503
- "\u28E5",
1504
- "\u28E6",
1505
- "\u28E7",
1506
- "\u28A8",
1507
- "\u28A9",
1508
- "\u28AA",
1509
- "\u28AB",
1510
- "\u28AC",
1511
- "\u28AD",
1512
- "\u28AE",
1513
- "\u28AF",
1514
- "\u28E8",
1515
- "\u28E9",
1516
- "\u28EA",
1517
- "\u28EB",
1518
- "\u28EC",
1519
- "\u28ED",
1520
- "\u28EE",
1521
- "\u28EF",
1522
- "\u28B0",
1523
- "\u28B1",
1524
- "\u28B2",
1525
- "\u28B3",
1526
- "\u28B4",
1527
- "\u28B5",
1528
- "\u28B6",
1529
- "\u28B7",
1530
- "\u28F0",
1531
- "\u28F1",
1532
- "\u28F2",
1533
- "\u28F3",
1534
- "\u28F4",
1535
- "\u28F5",
1536
- "\u28F6",
1537
- "\u28F7",
1538
- "\u28B8",
1539
- "\u28B9",
1540
- "\u28BA",
1541
- "\u28BB",
1542
- "\u28BC",
1543
- "\u28BD",
1544
- "\u28BE",
1545
- "\u28BF",
1546
- "\u28F8",
1547
- "\u28F9",
1548
- "\u28FA",
1549
- "\u28FB",
1550
- "\u28FC",
1551
- "\u28FD",
1552
- "\u28FE",
1553
- "\u28FF"
1554
- ]
1555
- },
1556
- dotsCircle: {
1557
- interval: 80,
1558
- frames: [
1559
- "\u288E ",
1560
- "\u280E\u2801",
1561
- "\u280A\u2811",
1562
- "\u2808\u2831",
1563
- " \u2871",
1564
- "\u2880\u2870",
1565
- "\u2884\u2860",
1566
- "\u2886\u2840"
1567
- ]
1568
- },
1569
- sand: {
1570
- interval: 80,
1571
- frames: [
1572
- "\u2801",
1573
- "\u2802",
1574
- "\u2804",
1575
- "\u2840",
1576
- "\u2848",
1577
- "\u2850",
1578
- "\u2860",
1579
- "\u28C0",
1580
- "\u28C1",
1581
- "\u28C2",
1582
- "\u28C4",
1583
- "\u28CC",
1584
- "\u28D4",
1585
- "\u28E4",
1586
- "\u28E5",
1587
- "\u28E6",
1588
- "\u28EE",
1589
- "\u28F6",
1590
- "\u28F7",
1591
- "\u28FF",
1592
- "\u287F",
1593
- "\u283F",
1594
- "\u289F",
1595
- "\u281F",
1596
- "\u285B",
1597
- "\u281B",
1598
- "\u282B",
1599
- "\u288B",
1600
- "\u280B",
1601
- "\u280D",
1602
- "\u2849",
1603
- "\u2809",
1604
- "\u2811",
1605
- "\u2821",
1606
- "\u2881"
1607
- ]
1608
- },
1609
- line: {
1610
- interval: 130,
1611
- frames: [
1612
- "-",
1613
- "\\",
1614
- "|",
1615
- "/"
1616
- ]
1617
- },
1618
- line2: {
1619
- interval: 100,
1620
- frames: [
1621
- "\u2802",
1622
- "-",
1623
- "\u2013",
1624
- "\u2014",
1625
- "\u2013",
1626
- "-"
1627
- ]
1628
- },
1629
- rollingLine: {
1630
- interval: 80,
1631
- frames: [
1632
- "/ ",
1633
- " - ",
1634
- " \\ ",
1635
- " |",
1636
- " |",
1637
- " \\ ",
1638
- " - ",
1639
- "/ "
1640
- ]
1641
- },
1642
- pipe: {
1643
- interval: 100,
1644
- frames: [
1645
- "\u2524",
1646
- "\u2518",
1647
- "\u2534",
1648
- "\u2514",
1649
- "\u251C",
1650
- "\u250C",
1651
- "\u252C",
1652
- "\u2510"
1653
- ]
1654
- },
1655
- simpleDots: {
1656
- interval: 400,
1657
- frames: [
1658
- ". ",
1659
- ".. ",
1660
- "...",
1661
- " "
1662
- ]
1663
- },
1664
- simpleDotsScrolling: {
1665
- interval: 200,
1666
- frames: [
1667
- ". ",
1668
- ".. ",
1669
- "...",
1670
- " ..",
1671
- " .",
1672
- " "
1673
- ]
1674
- },
1675
- star: {
1676
- interval: 70,
1677
- frames: [
1678
- "\u2736",
1679
- "\u2738",
1680
- "\u2739",
1681
- "\u273A",
1682
- "\u2739",
1683
- "\u2737"
1684
- ]
1685
- },
1686
- star2: {
1687
- interval: 80,
1688
- frames: [
1689
- "+",
1690
- "x",
1691
- "*"
1692
- ]
1693
- },
1694
- flip: {
1695
- interval: 70,
1696
- frames: [
1697
- "_",
1698
- "_",
1699
- "_",
1700
- "-",
1701
- "`",
1702
- "`",
1703
- "'",
1704
- "\xB4",
1705
- "-",
1706
- "_",
1707
- "_",
1708
- "_"
1709
- ]
1710
- },
1711
- hamburger: {
1712
- interval: 100,
1713
- frames: [
1714
- "\u2631",
1715
- "\u2632",
1716
- "\u2634"
1717
- ]
1718
- },
1719
- growVertical: {
1720
- interval: 120,
1721
- frames: [
1722
- "\u2581",
1723
- "\u2583",
1724
- "\u2584",
1725
- "\u2585",
1726
- "\u2586",
1727
- "\u2587",
1728
- "\u2586",
1729
- "\u2585",
1730
- "\u2584",
1731
- "\u2583"
1732
- ]
1733
- },
1734
- growHorizontal: {
1735
- interval: 120,
1736
- frames: [
1737
- "\u258F",
1738
- "\u258E",
1739
- "\u258D",
1740
- "\u258C",
1741
- "\u258B",
1742
- "\u258A",
1743
- "\u2589",
1744
- "\u258A",
1745
- "\u258B",
1746
- "\u258C",
1747
- "\u258D",
1748
- "\u258E"
1749
- ]
1750
- },
1751
- balloon: {
1752
- interval: 140,
1753
- frames: [
1754
- " ",
1755
- ".",
1756
- "o",
1757
- "O",
1758
- "@",
1759
- "*",
1760
- " "
1761
- ]
1762
- },
1763
- balloon2: {
1764
- interval: 120,
1765
- frames: [
1766
- ".",
1767
- "o",
1768
- "O",
1769
- "\xB0",
1770
- "O",
1771
- "o",
1772
- "."
1773
- ]
1774
- },
1775
- noise: {
1776
- interval: 100,
1777
- frames: [
1778
- "\u2593",
1779
- "\u2592",
1780
- "\u2591"
1781
- ]
1782
- },
1783
- bounce: {
1784
- interval: 120,
1785
- frames: [
1786
- "\u2801",
1787
- "\u2802",
1788
- "\u2804",
1789
- "\u2802"
1790
- ]
1791
- },
1792
- boxBounce: {
1793
- interval: 120,
1794
- frames: [
1795
- "\u2596",
1796
- "\u2598",
1797
- "\u259D",
1798
- "\u2597"
1799
- ]
1800
- },
1801
- boxBounce2: {
1802
- interval: 100,
1803
- frames: [
1804
- "\u258C",
1805
- "\u2580",
1806
- "\u2590",
1807
- "\u2584"
1808
- ]
1809
- },
1810
- triangle: {
1811
- interval: 50,
1812
- frames: [
1813
- "\u25E2",
1814
- "\u25E3",
1815
- "\u25E4",
1816
- "\u25E5"
1817
- ]
1818
- },
1819
- binary: {
1820
- interval: 80,
1821
- frames: [
1822
- "010010",
1823
- "001100",
1824
- "100101",
1825
- "111010",
1826
- "111101",
1827
- "010111",
1828
- "101011",
1829
- "111000",
1830
- "110011",
1831
- "110101"
1832
- ]
1833
- },
1834
- arc: {
1835
- interval: 100,
1836
- frames: [
1837
- "\u25DC",
1838
- "\u25E0",
1839
- "\u25DD",
1840
- "\u25DE",
1841
- "\u25E1",
1842
- "\u25DF"
1843
- ]
1844
- },
1845
- circle: {
1846
- interval: 120,
1847
- frames: [
1848
- "\u25E1",
1849
- "\u2299",
1850
- "\u25E0"
1851
- ]
1852
- },
1853
- squareCorners: {
1854
- interval: 180,
1855
- frames: [
1856
- "\u25F0",
1857
- "\u25F3",
1858
- "\u25F2",
1859
- "\u25F1"
1860
- ]
1861
- },
1862
- circleQuarters: {
1863
- interval: 120,
1864
- frames: [
1865
- "\u25F4",
1866
- "\u25F7",
1867
- "\u25F6",
1868
- "\u25F5"
1869
- ]
1870
- },
1871
- circleHalves: {
1872
- interval: 50,
1873
- frames: [
1874
- "\u25D0",
1875
- "\u25D3",
1876
- "\u25D1",
1877
- "\u25D2"
1878
- ]
1879
- },
1880
- squish: {
1881
- interval: 100,
1882
- frames: [
1883
- "\u256B",
1884
- "\u256A"
1885
- ]
1886
- },
1887
- toggle: {
1888
- interval: 250,
1889
- frames: [
1890
- "\u22B6",
1891
- "\u22B7"
1892
- ]
1893
- },
1894
- toggle2: {
1895
- interval: 80,
1896
- frames: [
1897
- "\u25AB",
1898
- "\u25AA"
1899
- ]
1900
- },
1901
- toggle3: {
1902
- interval: 120,
1903
- frames: [
1904
- "\u25A1",
1905
- "\u25A0"
1906
- ]
1907
- },
1908
- toggle4: {
1909
- interval: 100,
1910
- frames: [
1911
- "\u25A0",
1912
- "\u25A1",
1913
- "\u25AA",
1914
- "\u25AB"
1915
- ]
1916
- },
1917
- toggle5: {
1918
- interval: 100,
1919
- frames: [
1920
- "\u25AE",
1921
- "\u25AF"
1922
- ]
1923
- },
1924
- toggle6: {
1925
- interval: 300,
1926
- frames: [
1927
- "\u101D",
1928
- "\u1040"
1929
- ]
1930
- },
1931
- toggle7: {
1932
- interval: 80,
1933
- frames: [
1934
- "\u29BE",
1935
- "\u29BF"
1936
- ]
1937
- },
1938
- toggle8: {
1939
- interval: 100,
1940
- frames: [
1941
- "\u25CD",
1942
- "\u25CC"
1943
- ]
1944
- },
1945
- toggle9: {
1946
- interval: 100,
1947
- frames: [
1948
- "\u25C9",
1949
- "\u25CE"
1950
- ]
1951
- },
1952
- toggle10: {
1953
- interval: 100,
1954
- frames: [
1955
- "\u3282",
1956
- "\u3280",
1957
- "\u3281"
1958
- ]
1959
- },
1960
- toggle11: {
1961
- interval: 50,
1962
- frames: [
1963
- "\u29C7",
1964
- "\u29C6"
1965
- ]
1966
- },
1967
- toggle12: {
1968
- interval: 120,
1969
- frames: [
1970
- "\u2617",
1971
- "\u2616"
1972
- ]
1973
- },
1974
- toggle13: {
1975
- interval: 80,
1976
- frames: [
1977
- "=",
1978
- "*",
1979
- "-"
1980
- ]
1981
- },
1982
- arrow: {
1983
- interval: 100,
1984
- frames: [
1985
- "\u2190",
1986
- "\u2196",
1987
- "\u2191",
1988
- "\u2197",
1989
- "\u2192",
1990
- "\u2198",
1991
- "\u2193",
1992
- "\u2199"
1993
- ]
1994
- },
1995
- arrow2: {
1996
- interval: 80,
1997
- frames: [
1998
- "\u2B06\uFE0F ",
1999
- "\u2197\uFE0F ",
2000
- "\u27A1\uFE0F ",
2001
- "\u2198\uFE0F ",
2002
- "\u2B07\uFE0F ",
2003
- "\u2199\uFE0F ",
2004
- "\u2B05\uFE0F ",
2005
- "\u2196\uFE0F "
2006
- ]
2007
- },
2008
- arrow3: {
2009
- interval: 120,
2010
- frames: [
2011
- "\u25B9\u25B9\u25B9\u25B9\u25B9",
2012
- "\u25B8\u25B9\u25B9\u25B9\u25B9",
2013
- "\u25B9\u25B8\u25B9\u25B9\u25B9",
2014
- "\u25B9\u25B9\u25B8\u25B9\u25B9",
2015
- "\u25B9\u25B9\u25B9\u25B8\u25B9",
2016
- "\u25B9\u25B9\u25B9\u25B9\u25B8"
2017
- ]
2018
- },
2019
- bouncingBar: {
2020
- interval: 80,
2021
- frames: [
2022
- "[ ]",
2023
- "[= ]",
2024
- "[== ]",
2025
- "[=== ]",
2026
- "[====]",
2027
- "[ ===]",
2028
- "[ ==]",
2029
- "[ =]",
2030
- "[ ]",
2031
- "[ =]",
2032
- "[ ==]",
2033
- "[ ===]",
2034
- "[====]",
2035
- "[=== ]",
2036
- "[== ]",
2037
- "[= ]"
2038
- ]
2039
- },
2040
- bouncingBall: {
2041
- interval: 80,
2042
- frames: [
2043
- "( \u25CF )",
2044
- "( \u25CF )",
2045
- "( \u25CF )",
2046
- "( \u25CF )",
2047
- "( \u25CF)",
2048
- "( \u25CF )",
2049
- "( \u25CF )",
2050
- "( \u25CF )",
2051
- "( \u25CF )",
2052
- "(\u25CF )"
2053
- ]
2054
- },
2055
- smiley: {
2056
- interval: 200,
2057
- frames: [
2058
- "\u{1F604} ",
2059
- "\u{1F61D} "
2060
- ]
2061
- },
2062
- monkey: {
2063
- interval: 300,
2064
- frames: [
2065
- "\u{1F648} ",
2066
- "\u{1F648} ",
2067
- "\u{1F649} ",
2068
- "\u{1F64A} "
2069
- ]
2070
- },
2071
- hearts: {
2072
- interval: 100,
2073
- frames: [
2074
- "\u{1F49B} ",
2075
- "\u{1F499} ",
2076
- "\u{1F49C} ",
2077
- "\u{1F49A} ",
2078
- "\u{1F497} "
2079
- ]
2080
- },
2081
- clock: {
2082
- interval: 100,
2083
- frames: [
2084
- "\u{1F55B} ",
2085
- "\u{1F550} ",
2086
- "\u{1F551} ",
2087
- "\u{1F552} ",
2088
- "\u{1F553} ",
2089
- "\u{1F554} ",
2090
- "\u{1F555} ",
2091
- "\u{1F556} ",
2092
- "\u{1F557} ",
2093
- "\u{1F558} ",
2094
- "\u{1F559} ",
2095
- "\u{1F55A} "
2096
- ]
2097
- },
2098
- earth: {
2099
- interval: 180,
2100
- frames: [
2101
- "\u{1F30D} ",
2102
- "\u{1F30E} ",
2103
- "\u{1F30F} "
2104
- ]
2105
- },
2106
- material: {
2107
- interval: 17,
2108
- frames: [
2109
- "\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2110
- "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2111
- "\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2112
- "\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2113
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2114
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2115
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2116
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2117
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2118
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2119
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2120
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2121
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2122
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2123
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2124
- "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2125
- "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2126
- "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2127
- "\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
2128
- "\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2129
- "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2130
- "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2131
- "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2132
- "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2133
- "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2134
- "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2135
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2136
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2137
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2138
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2139
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2140
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2141
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2142
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2143
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2144
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2145
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2146
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2147
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588",
2148
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2149
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2150
- "\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2151
- "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2152
- "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2153
- "\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2154
- "\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2155
- "\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2156
- "\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2157
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2158
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2159
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2160
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2161
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2162
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2163
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2164
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2165
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2166
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2167
- "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2168
- "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2169
- "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2170
- "\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
2171
- "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2172
- "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2173
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2174
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2175
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2176
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2177
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2178
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2179
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2180
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2181
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2182
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2183
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2184
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2185
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2186
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2187
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2188
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2189
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2190
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2191
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2192
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2193
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2194
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2195
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2196
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2197
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2198
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2199
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2200
- "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"
2201
- ]
2202
- },
2203
- moon: {
2204
- interval: 80,
2205
- frames: [
2206
- "\u{1F311} ",
2207
- "\u{1F312} ",
2208
- "\u{1F313} ",
2209
- "\u{1F314} ",
2210
- "\u{1F315} ",
2211
- "\u{1F316} ",
2212
- "\u{1F317} ",
2213
- "\u{1F318} "
2214
- ]
2215
- },
2216
- runner: {
2217
- interval: 140,
2218
- frames: [
2219
- "\u{1F6B6} ",
2220
- "\u{1F3C3} "
2221
- ]
2222
- },
2223
- pong: {
2224
- interval: 80,
2225
- frames: [
2226
- "\u2590\u2802 \u258C",
2227
- "\u2590\u2808 \u258C",
2228
- "\u2590 \u2802 \u258C",
2229
- "\u2590 \u2820 \u258C",
2230
- "\u2590 \u2840 \u258C",
2231
- "\u2590 \u2820 \u258C",
2232
- "\u2590 \u2802 \u258C",
2233
- "\u2590 \u2808 \u258C",
2234
- "\u2590 \u2802 \u258C",
2235
- "\u2590 \u2820 \u258C",
2236
- "\u2590 \u2840 \u258C",
2237
- "\u2590 \u2820 \u258C",
2238
- "\u2590 \u2802 \u258C",
2239
- "\u2590 \u2808 \u258C",
2240
- "\u2590 \u2802\u258C",
2241
- "\u2590 \u2820\u258C",
2242
- "\u2590 \u2840\u258C",
2243
- "\u2590 \u2820 \u258C",
2244
- "\u2590 \u2802 \u258C",
2245
- "\u2590 \u2808 \u258C",
2246
- "\u2590 \u2802 \u258C",
2247
- "\u2590 \u2820 \u258C",
2248
- "\u2590 \u2840 \u258C",
2249
- "\u2590 \u2820 \u258C",
2250
- "\u2590 \u2802 \u258C",
2251
- "\u2590 \u2808 \u258C",
2252
- "\u2590 \u2802 \u258C",
2253
- "\u2590 \u2820 \u258C",
2254
- "\u2590 \u2840 \u258C",
2255
- "\u2590\u2820 \u258C"
2256
- ]
2257
- },
2258
- shark: {
2259
- interval: 120,
2260
- frames: [
2261
- "\u2590|\\____________\u258C",
2262
- "\u2590_|\\___________\u258C",
2263
- "\u2590__|\\__________\u258C",
2264
- "\u2590___|\\_________\u258C",
2265
- "\u2590____|\\________\u258C",
2266
- "\u2590_____|\\_______\u258C",
2267
- "\u2590______|\\______\u258C",
2268
- "\u2590_______|\\_____\u258C",
2269
- "\u2590________|\\____\u258C",
2270
- "\u2590_________|\\___\u258C",
2271
- "\u2590__________|\\__\u258C",
2272
- "\u2590___________|\\_\u258C",
2273
- "\u2590____________|\\\u258C",
2274
- "\u2590____________/|\u258C",
2275
- "\u2590___________/|_\u258C",
2276
- "\u2590__________/|__\u258C",
2277
- "\u2590_________/|___\u258C",
2278
- "\u2590________/|____\u258C",
2279
- "\u2590_______/|_____\u258C",
2280
- "\u2590______/|______\u258C",
2281
- "\u2590_____/|_______\u258C",
2282
- "\u2590____/|________\u258C",
2283
- "\u2590___/|_________\u258C",
2284
- "\u2590__/|__________\u258C",
2285
- "\u2590_/|___________\u258C",
2286
- "\u2590/|____________\u258C"
2287
- ]
2288
- },
2289
- dqpb: {
2290
- interval: 100,
2291
- frames: [
2292
- "d",
2293
- "q",
2294
- "p",
2295
- "b"
2296
- ]
2297
- },
2298
- weather: {
2299
- interval: 100,
2300
- frames: [
2301
- "\u2600\uFE0F ",
2302
- "\u2600\uFE0F ",
2303
- "\u2600\uFE0F ",
2304
- "\u{1F324} ",
2305
- "\u26C5\uFE0F ",
2306
- "\u{1F325} ",
2307
- "\u2601\uFE0F ",
2308
- "\u{1F327} ",
2309
- "\u{1F328} ",
2310
- "\u{1F327} ",
2311
- "\u{1F328} ",
2312
- "\u{1F327} ",
2313
- "\u{1F328} ",
2314
- "\u26C8 ",
2315
- "\u{1F328} ",
2316
- "\u{1F327} ",
2317
- "\u{1F328} ",
2318
- "\u2601\uFE0F ",
2319
- "\u{1F325} ",
2320
- "\u26C5\uFE0F ",
2321
- "\u{1F324} ",
2322
- "\u2600\uFE0F ",
2323
- "\u2600\uFE0F "
2324
- ]
2325
- },
2326
- christmas: {
2327
- interval: 400,
2328
- frames: [
2329
- "\u{1F332}",
2330
- "\u{1F384}"
2331
- ]
2332
- },
2333
- grenade: {
2334
- interval: 80,
2335
- frames: [
2336
- "\u060C ",
2337
- "\u2032 ",
2338
- " \xB4 ",
2339
- " \u203E ",
2340
- " \u2E0C",
2341
- " \u2E0A",
2342
- " |",
2343
- " \u204E",
2344
- " \u2055",
2345
- " \u0DF4 ",
2346
- " \u2053",
2347
- " ",
2348
- " ",
2349
- " "
2350
- ]
2351
- },
2352
- point: {
2353
- interval: 125,
2354
- frames: [
2355
- "\u2219\u2219\u2219",
2356
- "\u25CF\u2219\u2219",
2357
- "\u2219\u25CF\u2219",
2358
- "\u2219\u2219\u25CF",
2359
- "\u2219\u2219\u2219"
2360
- ]
2361
- },
2362
- layer: {
2363
- interval: 150,
2364
- frames: [
2365
- "-",
2366
- "=",
2367
- "\u2261"
2368
- ]
2369
- },
2370
- betaWave: {
2371
- interval: 80,
2372
- frames: [
2373
- "\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2",
2374
- "\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2",
2375
- "\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2",
2376
- "\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2",
2377
- "\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2",
2378
- "\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2",
2379
- "\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"
2380
- ]
2381
- },
2382
- fingerDance: {
2383
- interval: 160,
2384
- frames: [
2385
- "\u{1F918} ",
2386
- "\u{1F91F} ",
2387
- "\u{1F596} ",
2388
- "\u270B ",
2389
- "\u{1F91A} ",
2390
- "\u{1F446} "
2391
- ]
2392
- },
2393
- fistBump: {
2394
- interval: 80,
2395
- frames: [
2396
- "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
2397
- "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
2398
- "\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ",
2399
- "\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ",
2400
- "\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ",
2401
- "\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ",
2402
- "\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "
2403
- ]
2404
- },
2405
- soccerHeader: {
2406
- interval: 80,
2407
- frames: [
2408
- " \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ",
2409
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2410
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2411
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2412
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2413
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2414
- "\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ",
2415
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2416
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2417
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2418
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ",
2419
- "\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "
2420
- ]
2421
- },
2422
- mindblown: {
2423
- interval: 160,
2424
- frames: [
2425
- "\u{1F610} ",
2426
- "\u{1F610} ",
2427
- "\u{1F62E} ",
2428
- "\u{1F62E} ",
2429
- "\u{1F626} ",
2430
- "\u{1F626} ",
2431
- "\u{1F627} ",
2432
- "\u{1F627} ",
2433
- "\u{1F92F} ",
2434
- "\u{1F4A5} ",
2435
- "\u2728 ",
2436
- "\u3000 ",
2437
- "\u3000 ",
2438
- "\u3000 "
2439
- ]
2440
- },
2441
- speaker: {
2442
- interval: 160,
2443
- frames: [
2444
- "\u{1F508} ",
2445
- "\u{1F509} ",
2446
- "\u{1F50A} ",
2447
- "\u{1F509} "
2448
- ]
2449
- },
2450
- orangePulse: {
2451
- interval: 100,
2452
- frames: [
2453
- "\u{1F538} ",
2454
- "\u{1F536} ",
2455
- "\u{1F7E0} ",
2456
- "\u{1F7E0} ",
2457
- "\u{1F536} "
2458
- ]
2459
- },
2460
- bluePulse: {
2461
- interval: 100,
2462
- frames: [
2463
- "\u{1F539} ",
2464
- "\u{1F537} ",
2465
- "\u{1F535} ",
2466
- "\u{1F535} ",
2467
- "\u{1F537} "
2468
- ]
2469
- },
2470
- orangeBluePulse: {
2471
- interval: 100,
2472
- frames: [
2473
- "\u{1F538} ",
2474
- "\u{1F536} ",
2475
- "\u{1F7E0} ",
2476
- "\u{1F7E0} ",
2477
- "\u{1F536} ",
2478
- "\u{1F539} ",
2479
- "\u{1F537} ",
2480
- "\u{1F535} ",
2481
- "\u{1F535} ",
2482
- "\u{1F537} "
2483
- ]
2484
- },
2485
- timeTravel: {
2486
- interval: 100,
2487
- frames: [
2488
- "\u{1F55B} ",
2489
- "\u{1F55A} ",
2490
- "\u{1F559} ",
2491
- "\u{1F558} ",
2492
- "\u{1F557} ",
2493
- "\u{1F556} ",
2494
- "\u{1F555} ",
2495
- "\u{1F554} ",
2496
- "\u{1F553} ",
2497
- "\u{1F552} ",
2498
- "\u{1F551} ",
2499
- "\u{1F550} "
2500
- ]
2501
- },
2502
- aesthetic: {
2503
- interval: 80,
2504
- frames: [
2505
- "\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1",
2506
- "\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1",
2507
- "\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1",
2508
- "\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1",
2509
- "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1",
2510
- "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1",
2511
- "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0",
2512
- "\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"
2513
- ]
2514
- },
2515
- dwarfFortress: {
2516
- interval: 80,
2517
- frames: [
2518
- " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2519
- "\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2520
- "\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2521
- "\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2522
- "\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2523
- "\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2524
- "\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2525
- "\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2526
- "\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2527
- "\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2528
- " \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2529
- " \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2530
- " \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2531
- " \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2532
- " \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2533
- " \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2534
- " \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2535
- " \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2536
- " \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2537
- " \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2538
- " \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2539
- " \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
2540
- " \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
2541
- " \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
2542
- " \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
2543
- " \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
2544
- " \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
2545
- " \u263A \u2588\u2588\u2588\xA3\xA3\xA3 ",
2546
- " \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
2547
- " \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
2548
- " \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
2549
- " \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
2550
- " \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
2551
- " \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
2552
- " \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
2553
- " \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
2554
- " \u263A \u2588\u2588\xA3\xA3\xA3 ",
2555
- " \u263A\u2588\u2588\xA3\xA3\xA3 ",
2556
- " \u263A\u2588\u2588\xA3\xA3\xA3 ",
2557
- " \u263A\u2593\u2588\xA3\xA3\xA3 ",
2558
- " \u263A\u2593\u2588\xA3\xA3\xA3 ",
2559
- " \u263A\u2592\u2588\xA3\xA3\xA3 ",
2560
- " \u263A\u2592\u2588\xA3\xA3\xA3 ",
2561
- " \u263A\u2591\u2588\xA3\xA3\xA3 ",
2562
- " \u263A\u2591\u2588\xA3\xA3\xA3 ",
2563
- " \u263A \u2588\xA3\xA3\xA3 ",
2564
- " \u263A\u2588\xA3\xA3\xA3 ",
2565
- " \u263A\u2588\xA3\xA3\xA3 ",
2566
- " \u263A\u2593\xA3\xA3\xA3 ",
2567
- " \u263A\u2593\xA3\xA3\xA3 ",
2568
- " \u263A\u2592\xA3\xA3\xA3 ",
2569
- " \u263A\u2592\xA3\xA3\xA3 ",
2570
- " \u263A\u2591\xA3\xA3\xA3 ",
2571
- " \u263A\u2591\xA3\xA3\xA3 ",
2572
- " \u263A \xA3\xA3\xA3 ",
2573
- " \u263A\xA3\xA3\xA3 ",
2574
- " \u263A\xA3\xA3\xA3 ",
2575
- " \u263A\u2593\xA3\xA3 ",
2576
- " \u263A\u2593\xA3\xA3 ",
2577
- " \u263A\u2592\xA3\xA3 ",
2578
- " \u263A\u2592\xA3\xA3 ",
2579
- " \u263A\u2591\xA3\xA3 ",
2580
- " \u263A\u2591\xA3\xA3 ",
2581
- " \u263A \xA3\xA3 ",
2582
- " \u263A\xA3\xA3 ",
2583
- " \u263A\xA3\xA3 ",
2584
- " \u263A\u2593\xA3 ",
2585
- " \u263A\u2593\xA3 ",
2586
- " \u263A\u2592\xA3 ",
2587
- " \u263A\u2592\xA3 ",
2588
- " \u263A\u2591\xA3 ",
2589
- " \u263A\u2591\xA3 ",
2590
- " \u263A \xA3 ",
2591
- " \u263A\xA3 ",
2592
- " \u263A\xA3 ",
2593
- " \u263A\u2593 ",
2594
- " \u263A\u2593 ",
2595
- " \u263A\u2592 ",
2596
- " \u263A\u2592 ",
2597
- " \u263A\u2591 ",
2598
- " \u263A\u2591 ",
2599
- " \u263A ",
2600
- " \u263A &",
2601
- " \u263A \u263C&",
2602
- " \u263A \u263C &",
2603
- " \u263A\u263C &",
2604
- " \u263A\u263C & ",
2605
- " \u203C & ",
2606
- " \u263A & ",
2607
- " \u203C & ",
2608
- " \u263A & ",
2609
- " \u203C & ",
2610
- " \u263A & ",
2611
- "\u203C & ",
2612
- " & ",
2613
- " & ",
2614
- " & \u2591 ",
2615
- " & \u2592 ",
2616
- " & \u2593 ",
2617
- " & \xA3 ",
2618
- " & \u2591\xA3 ",
2619
- " & \u2592\xA3 ",
2620
- " & \u2593\xA3 ",
2621
- " & \xA3\xA3 ",
2622
- " & \u2591\xA3\xA3 ",
2623
- " & \u2592\xA3\xA3 ",
2624
- "& \u2593\xA3\xA3 ",
2625
- "& \xA3\xA3\xA3 ",
2626
- " \u2591\xA3\xA3\xA3 ",
2627
- " \u2592\xA3\xA3\xA3 ",
2628
- " \u2593\xA3\xA3\xA3 ",
2629
- " \u2588\xA3\xA3\xA3 ",
2630
- " \u2591\u2588\xA3\xA3\xA3 ",
2631
- " \u2592\u2588\xA3\xA3\xA3 ",
2632
- " \u2593\u2588\xA3\xA3\xA3 ",
2633
- " \u2588\u2588\xA3\xA3\xA3 ",
2634
- " \u2591\u2588\u2588\xA3\xA3\xA3 ",
2635
- " \u2592\u2588\u2588\xA3\xA3\xA3 ",
2636
- " \u2593\u2588\u2588\xA3\xA3\xA3 ",
2637
- " \u2588\u2588\u2588\xA3\xA3\xA3 ",
2638
- " \u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
2639
- " \u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
2640
- " \u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
2641
- " \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2642
- " \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2643
- " \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2644
- " \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2645
- " \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2646
- " \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2647
- " \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2648
- " \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2649
- " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2650
- " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "
2651
- ]
2652
- }
2653
- };
2654
-
2655
- // node_modules/cli-spinners/index.js
2656
- var cli_spinners_default = spinners_default;
2657
- var spinnersList = Object.keys(spinners_default);
2658
-
2659
- // node_modules/log-symbols/symbols.js
2660
- var symbols_exports = {};
2661
- __export(symbols_exports, {
2662
- error: () => error,
2663
- info: () => info,
2664
- success: () => success,
2665
- warning: () => warning
2666
- });
2667
-
2668
- // node_modules/yoctocolors/base.js
2669
- import tty2 from "node:tty";
2670
- var hasColors = tty2?.WriteStream?.prototype?.hasColors?.() ?? false;
2671
- var format = (open, close) => {
2672
- if (!hasColors) {
2673
- return (input2) => input2;
2674
- }
2675
- const openCode = `\x1B[${open}m`;
2676
- const closeCode = `\x1B[${close}m`;
2677
- return (input2) => {
2678
- const string = input2 + "";
2679
- let index = string.indexOf(closeCode);
2680
- if (index === -1) {
2681
- return openCode + string + closeCode;
2682
- }
2683
- let result = openCode;
2684
- let lastIndex = 0;
2685
- const reopenOnNestedClose = close === 22;
2686
- const replaceCode = (reopenOnNestedClose ? closeCode : "") + openCode;
2687
- while (index !== -1) {
2688
- result += string.slice(lastIndex, index) + replaceCode;
2689
- lastIndex = index + closeCode.length;
2690
- index = string.indexOf(closeCode, lastIndex);
2691
- }
2692
- result += string.slice(lastIndex) + closeCode;
2693
- return result;
2694
- };
2695
- };
2696
- var reset = format(0, 0);
2697
- var bold = format(1, 22);
2698
- var dim = format(2, 22);
2699
- var italic = format(3, 23);
2700
- var underline = format(4, 24);
2701
- var overline = format(53, 55);
2702
- var inverse = format(7, 27);
2703
- var hidden = format(8, 28);
2704
- var strikethrough = format(9, 29);
2705
- var black = format(30, 39);
2706
- var red = format(31, 39);
2707
- var green = format(32, 39);
2708
- var yellow = format(33, 39);
2709
- var blue = format(34, 39);
2710
- var magenta = format(35, 39);
2711
- var cyan = format(36, 39);
2712
- var white = format(37, 39);
2713
- var gray = format(90, 39);
2714
- var bgBlack = format(40, 49);
2715
- var bgRed = format(41, 49);
2716
- var bgGreen = format(42, 49);
2717
- var bgYellow = format(43, 49);
2718
- var bgBlue = format(44, 49);
2719
- var bgMagenta = format(45, 49);
2720
- var bgCyan = format(46, 49);
2721
- var bgWhite = format(47, 49);
2722
- var bgGray = format(100, 49);
2723
- var redBright = format(91, 39);
2724
- var greenBright = format(92, 39);
2725
- var yellowBright = format(93, 39);
2726
- var blueBright = format(94, 39);
2727
- var magentaBright = format(95, 39);
2728
- var cyanBright = format(96, 39);
2729
- var whiteBright = format(97, 39);
2730
- var bgRedBright = format(101, 49);
2731
- var bgGreenBright = format(102, 49);
2732
- var bgYellowBright = format(103, 49);
2733
- var bgBlueBright = format(104, 49);
2734
- var bgMagentaBright = format(105, 49);
2735
- var bgCyanBright = format(106, 49);
2736
- var bgWhiteBright = format(107, 49);
2737
-
2738
- // node_modules/is-unicode-supported/index.js
2739
- import process6 from "node:process";
2740
- function isUnicodeSupported() {
2741
- const { env: env2 } = process6;
2742
- const { TERM, TERM_PROGRAM } = env2;
2743
- if (process6.platform !== "win32") {
2744
- return TERM !== "linux";
2745
- }
2746
- 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";
2747
- }
2748
-
2749
- // node_modules/log-symbols/symbols.js
2750
- var _isUnicodeSupported = isUnicodeSupported();
2751
- var info = blue(_isUnicodeSupported ? "\u2139" : "i");
2752
- var success = green(_isUnicodeSupported ? "\u2714" : "\u221A");
2753
- var warning = yellow(_isUnicodeSupported ? "\u26A0" : "\u203C");
2754
- var error = red(_isUnicodeSupported ? "\u2716" : "\xD7");
2755
-
2756
- // node_modules/ansi-regex/index.js
2757
- function ansiRegex({ onlyFirst = false } = {}) {
2758
- const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
2759
- const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
2760
- const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
2761
- const pattern = `${osc}|${csi}`;
2762
- return new RegExp(pattern, onlyFirst ? void 0 : "g");
2763
- }
2764
-
2765
- // node_modules/strip-ansi/index.js
2766
- var regex = ansiRegex();
2767
- function stripAnsi(string) {
2768
- if (typeof string !== "string") {
2769
- throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
2770
- }
2771
- return string.replace(regex, "");
2772
- }
2773
-
2774
- // node_modules/get-east-asian-width/lookup.js
2775
- function isAmbiguous(x) {
2776
- return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
2777
- }
2778
- function isFullWidth(x) {
2779
- return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
2780
- }
2781
- function isWide(x) {
2782
- return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x >= 94192 && x <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128728 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
2783
- }
2784
-
2785
- // node_modules/get-east-asian-width/index.js
2786
- function validate(codePoint) {
2787
- if (!Number.isSafeInteger(codePoint)) {
2788
- throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
2789
- }
2790
- }
2791
- function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
2792
- validate(codePoint);
2793
- if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
2794
- return 2;
2795
- }
2796
- return 1;
2797
- }
2798
-
2799
- // node_modules/string-width/index.js
2800
- var segmenter = new Intl.Segmenter();
2801
- var zeroWidthClusterRegex = /^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Mark}|\p{Surrogate})+$/v;
2802
- var leadingNonPrintingRegex = /^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v;
2803
- var rgiEmojiRegex = /^\p{RGI_Emoji}$/v;
2804
- function baseVisible(segment) {
2805
- return segment.replace(leadingNonPrintingRegex, "");
2806
- }
2807
- function isZeroWidthCluster(segment) {
2808
- return zeroWidthClusterRegex.test(segment);
2809
- }
2810
- function trailingHalfwidthWidth(segment, eastAsianWidthOptions) {
2811
- let extra = 0;
2812
- if (segment.length > 1) {
2813
- for (const char of segment.slice(1)) {
2814
- if (char >= "\uFF00" && char <= "\uFFEF") {
2815
- extra += eastAsianWidth(char.codePointAt(0), eastAsianWidthOptions);
2816
- }
2817
- }
2818
- }
2819
- return extra;
2820
- }
2821
- function stringWidth(input2, options = {}) {
2822
- if (typeof input2 !== "string" || input2.length === 0) {
2823
- return 0;
2824
- }
2825
- const {
2826
- ambiguousIsNarrow = true,
2827
- countAnsiEscapeCodes = false
2828
- } = options;
2829
- let string = input2;
2830
- if (!countAnsiEscapeCodes) {
2831
- string = stripAnsi(string);
2832
- }
2833
- if (string.length === 0) {
2834
- return 0;
2835
- }
2836
- let width = 0;
2837
- const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
2838
- for (const { segment } of segmenter.segment(string)) {
2839
- if (isZeroWidthCluster(segment)) {
2840
- continue;
2841
- }
2842
- if (rgiEmojiRegex.test(segment)) {
2843
- width += 2;
2844
- continue;
2845
- }
2846
- const codePoint = baseVisible(segment).codePointAt(0);
2847
- width += eastAsianWidth(codePoint, eastAsianWidthOptions);
2848
- width += trailingHalfwidthWidth(segment, eastAsianWidthOptions);
2849
- }
2850
- return width;
2851
- }
2852
-
2853
- // node_modules/is-interactive/index.js
2854
- function isInteractive({ stream = process.stdout } = {}) {
2855
- return Boolean(
2856
- stream && stream.isTTY && process.env.TERM !== "dumb" && !("CI" in process.env)
2857
- );
2858
- }
2859
-
2860
- // node_modules/stdin-discarder/index.js
2861
- import process7 from "node:process";
2862
- var ASCII_ETX_CODE = 3;
2863
- var StdinDiscarder = class {
2864
- #activeCount = 0;
2865
- start() {
2866
- this.#activeCount++;
2867
- if (this.#activeCount === 1) {
2868
- this.#realStart();
2869
- }
2870
- }
2871
- stop() {
2872
- if (this.#activeCount <= 0) {
2873
- throw new Error("`stop` called more times than `start`");
2874
- }
2875
- this.#activeCount--;
2876
- if (this.#activeCount === 0) {
2877
- this.#realStop();
2878
- }
2879
- }
2880
- #realStart() {
2881
- if (process7.platform === "win32" || !process7.stdin.isTTY) {
2882
- return;
2883
- }
2884
- process7.stdin.setRawMode(true);
2885
- process7.stdin.on("data", this.#handleInput);
2886
- process7.stdin.resume();
2887
- }
2888
- #realStop() {
2889
- if (!process7.stdin.isTTY) {
2890
- return;
2891
- }
2892
- process7.stdin.off("data", this.#handleInput);
2893
- process7.stdin.pause();
2894
- process7.stdin.setRawMode(false);
2895
- }
2896
- #handleInput(chunk) {
2897
- if (chunk[0] === ASCII_ETX_CODE) {
2898
- process7.emit("SIGINT");
2899
- }
2900
- }
2901
- };
2902
- var stdinDiscarder = new StdinDiscarder();
2903
- var stdin_discarder_default = stdinDiscarder;
2904
-
2905
- // node_modules/ora/index.js
2906
- var Ora = class {
2907
- #linesToClear = 0;
2908
- #isDiscardingStdin = false;
2909
- #lineCount = 0;
2910
- #frameIndex = -1;
2911
- #lastSpinnerFrameTime = 0;
2912
- #lastIndent = 0;
2913
- #options;
2914
- #spinner;
2915
- #stream;
2916
- #id;
2917
- #initialInterval;
2918
- #isEnabled;
2919
- #isSilent;
2920
- #indent;
2921
- #text;
2922
- #prefixText;
2923
- #suffixText;
2924
- color;
2925
- constructor(options) {
2926
- if (typeof options === "string") {
2927
- options = {
2928
- text: options
2929
- };
2930
- }
2931
- this.#options = {
2932
- color: "cyan",
2933
- stream: process8.stderr,
2934
- discardStdin: true,
2935
- hideCursor: true,
2936
- ...options
2937
- };
2938
- this.color = this.#options.color;
2939
- this.spinner = this.#options.spinner;
2940
- this.#initialInterval = this.#options.interval;
2941
- this.#stream = this.#options.stream;
2942
- this.#isEnabled = typeof this.#options.isEnabled === "boolean" ? this.#options.isEnabled : isInteractive({ stream: this.#stream });
2943
- this.#isSilent = typeof this.#options.isSilent === "boolean" ? this.#options.isSilent : false;
2944
- this.text = this.#options.text;
2945
- this.prefixText = this.#options.prefixText;
2946
- this.suffixText = this.#options.suffixText;
2947
- this.indent = this.#options.indent;
2948
- if (process8.env.NODE_ENV === "test") {
2949
- this._stream = this.#stream;
2950
- this._isEnabled = this.#isEnabled;
2951
- Object.defineProperty(this, "_linesToClear", {
2952
- get() {
2953
- return this.#linesToClear;
2954
- },
2955
- set(newValue) {
2956
- this.#linesToClear = newValue;
2957
- }
2958
- });
2959
- Object.defineProperty(this, "_frameIndex", {
2960
- get() {
2961
- return this.#frameIndex;
2962
- }
2963
- });
2964
- Object.defineProperty(this, "_lineCount", {
2965
- get() {
2966
- return this.#lineCount;
2967
- }
2968
- });
2969
- }
2970
- }
2971
- get indent() {
2972
- return this.#indent;
2973
- }
2974
- set indent(indent = 0) {
2975
- if (!(indent >= 0 && Number.isInteger(indent))) {
2976
- throw new Error("The `indent` option must be an integer from 0 and up");
2977
- }
2978
- this.#indent = indent;
2979
- this.#updateLineCount();
2980
- }
2981
- get interval() {
2982
- return this.#initialInterval ?? this.#spinner.interval ?? 100;
2983
- }
2984
- get spinner() {
2985
- return this.#spinner;
2986
- }
2987
- set spinner(spinner) {
2988
- this.#frameIndex = -1;
2989
- this.#initialInterval = void 0;
2990
- if (typeof spinner === "object") {
2991
- if (!Array.isArray(spinner.frames) || spinner.frames.length === 0 || spinner.frames.some((frame) => typeof frame !== "string")) {
2992
- throw new Error("The given spinner must have a non-empty `frames` array of strings");
2993
- }
2994
- if (spinner.interval !== void 0 && !(Number.isInteger(spinner.interval) && spinner.interval > 0)) {
2995
- throw new Error("`spinner.interval` must be a positive integer if provided");
2996
- }
2997
- this.#spinner = spinner;
2998
- } else if (!isUnicodeSupported()) {
2999
- this.#spinner = cli_spinners_default.line;
3000
- } else if (spinner === void 0) {
3001
- this.#spinner = cli_spinners_default.dots;
3002
- } else if (spinner !== "default" && cli_spinners_default[spinner]) {
3003
- this.#spinner = cli_spinners_default[spinner];
3004
- } else {
3005
- 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.`);
3006
- }
3007
- }
3008
- get text() {
3009
- return this.#text;
3010
- }
3011
- set text(value = "") {
3012
- this.#text = value;
3013
- this.#updateLineCount();
3014
- }
3015
- get prefixText() {
3016
- return this.#prefixText;
3017
- }
3018
- set prefixText(value = "") {
3019
- this.#prefixText = value;
3020
- this.#updateLineCount();
3021
- }
3022
- get suffixText() {
3023
- return this.#suffixText;
3024
- }
3025
- set suffixText(value = "") {
3026
- this.#suffixText = value;
3027
- this.#updateLineCount();
3028
- }
3029
- get isSpinning() {
3030
- return this.#id !== void 0;
3031
- }
3032
- #formatAffix(value, separator, placeBefore = false) {
3033
- const resolved = typeof value === "function" ? value() : value;
3034
- if (typeof resolved === "string" && resolved !== "") {
3035
- return placeBefore ? separator + resolved : resolved + separator;
3036
- }
3037
- return "";
3038
- }
3039
- #getFullPrefixText(prefixText = this.#prefixText, postfix = " ") {
3040
- return this.#formatAffix(prefixText, postfix, false);
3041
- }
3042
- #getFullSuffixText(suffixText = this.#suffixText, prefix = " ") {
3043
- return this.#formatAffix(suffixText, prefix, true);
3044
- }
3045
- #computeLineCountFrom(text, columns) {
3046
- let count = 0;
3047
- for (const line of stripAnsi(text).split("\n")) {
3048
- count += Math.max(1, Math.ceil(stringWidth(line) / columns));
3049
- }
3050
- return count;
3051
- }
3052
- #updateLineCount() {
3053
- const columns = this.#stream.columns ?? 80;
3054
- const prefixText = typeof this.#prefixText === "function" ? "" : this.#prefixText;
3055
- const suffixText = typeof this.#suffixText === "function" ? "" : this.#suffixText;
3056
- const fullPrefixText = typeof prefixText === "string" && prefixText !== "" ? prefixText + " " : "";
3057
- const fullSuffixText = typeof suffixText === "string" && suffixText !== "" ? " " + suffixText : "";
3058
- const spinnerChar = "-";
3059
- const fullText = " ".repeat(this.#indent) + fullPrefixText + spinnerChar + (typeof this.#text === "string" ? " " + this.#text : "") + fullSuffixText;
3060
- this.#lineCount = this.#computeLineCountFrom(fullText, columns);
3061
- }
3062
- get isEnabled() {
3063
- return this.#isEnabled && !this.#isSilent;
3064
- }
3065
- set isEnabled(value) {
3066
- if (typeof value !== "boolean") {
3067
- throw new TypeError("The `isEnabled` option must be a boolean");
3068
- }
3069
- this.#isEnabled = value;
3070
- }
3071
- get isSilent() {
3072
- return this.#isSilent;
3073
- }
3074
- set isSilent(value) {
3075
- if (typeof value !== "boolean") {
3076
- throw new TypeError("The `isSilent` option must be a boolean");
3077
- }
3078
- this.#isSilent = value;
3079
- }
3080
- frame() {
3081
- const now = Date.now();
3082
- if (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) {
3083
- this.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length;
3084
- this.#lastSpinnerFrameTime = now;
3085
- }
3086
- const { frames } = this.#spinner;
3087
- let frame = frames[this.#frameIndex];
3088
- if (this.color) {
3089
- frame = source_default[this.color](frame);
3090
- }
3091
- const fullPrefixText = this.#getFullPrefixText(this.#prefixText, " ");
3092
- const fullText = typeof this.text === "string" ? " " + this.text : "";
3093
- const fullSuffixText = this.#getFullSuffixText(this.#suffixText, " ");
3094
- return fullPrefixText + frame + fullText + fullSuffixText;
3095
- }
3096
- clear() {
3097
- if (!this.#isEnabled || !this.#stream.isTTY) {
3098
- return this;
3099
- }
3100
- this.#stream.cursorTo(0);
3101
- for (let index = 0; index < this.#linesToClear; index++) {
3102
- if (index > 0) {
3103
- this.#stream.moveCursor(0, -1);
3104
- }
3105
- this.#stream.clearLine(1);
3106
- }
3107
- if (this.#indent || this.#lastIndent !== this.#indent) {
3108
- this.#stream.cursorTo(this.#indent);
3109
- }
3110
- this.#lastIndent = this.#indent;
3111
- this.#linesToClear = 0;
3112
- return this;
3113
- }
3114
- render() {
3115
- if (!this.#isEnabled || this.#isSilent) {
3116
- return this;
3117
- }
3118
- this.clear();
3119
- let frameContent = this.frame();
3120
- const columns = this.#stream.columns ?? 80;
3121
- const actualLineCount = this.#computeLineCountFrom(frameContent, columns);
3122
- const consoleHeight = this.#stream.rows;
3123
- if (consoleHeight && consoleHeight > 1 && actualLineCount > consoleHeight) {
3124
- const lines = frameContent.split("\n");
3125
- const maxLines = consoleHeight - 1;
3126
- frameContent = [...lines.slice(0, maxLines), "... (content truncated to fit terminal)"].join("\n");
3127
- }
3128
- this.#stream.write(frameContent);
3129
- this.#linesToClear = this.#computeLineCountFrom(frameContent, columns);
3130
- return this;
3131
- }
3132
- start(text) {
3133
- if (text) {
3134
- this.text = text;
3135
- }
3136
- if (this.#isSilent) {
3137
- return this;
3138
- }
3139
- if (!this.#isEnabled) {
3140
- const line = " ".repeat(this.#indent) + this.#getFullPrefixText(this.#prefixText, " ") + (this.text ? `- ${this.text}` : "") + this.#getFullSuffixText(this.#suffixText, " ");
3141
- if (line.trim() !== "") {
3142
- this.#stream.write(line + "\n");
3143
- }
3144
- return this;
3145
- }
3146
- if (this.isSpinning) {
3147
- return this;
3148
- }
3149
- if (this.#options.hideCursor) {
3150
- cli_cursor_default.hide(this.#stream);
3151
- }
3152
- if (this.#options.discardStdin && process8.stdin.isTTY) {
3153
- this.#isDiscardingStdin = true;
3154
- stdin_discarder_default.start();
3155
- }
3156
- this.render();
3157
- this.#id = setInterval(this.render.bind(this), this.interval);
3158
- return this;
3159
- }
3160
- stop() {
3161
- clearInterval(this.#id);
3162
- this.#id = void 0;
3163
- this.#frameIndex = 0;
3164
- if (this.#isEnabled) {
3165
- this.clear();
3166
- if (this.#options.hideCursor) {
3167
- cli_cursor_default.show(this.#stream);
3168
- }
3169
- }
3170
- if (this.#options.discardStdin && process8.stdin.isTTY && this.#isDiscardingStdin) {
3171
- stdin_discarder_default.stop();
3172
- this.#isDiscardingStdin = false;
3173
- }
3174
- return this;
3175
- }
3176
- succeed(text) {
3177
- return this.stopAndPersist({ symbol: symbols_exports.success, text });
3178
- }
3179
- fail(text) {
3180
- return this.stopAndPersist({ symbol: symbols_exports.error, text });
3181
- }
3182
- warn(text) {
3183
- return this.stopAndPersist({ symbol: symbols_exports.warning, text });
3184
- }
3185
- info(text) {
3186
- return this.stopAndPersist({ symbol: symbols_exports.info, text });
3187
- }
3188
- stopAndPersist(options = {}) {
3189
- if (this.#isSilent) {
3190
- return this;
3191
- }
3192
- const prefixText = options.prefixText ?? this.#prefixText;
3193
- const fullPrefixText = this.#getFullPrefixText(prefixText, " ");
3194
- const symbolText = options.symbol ?? " ";
3195
- const text = options.text ?? this.text;
3196
- const separatorText = symbolText ? " " : "";
3197
- const fullText = typeof text === "string" ? separatorText + text : "";
3198
- const suffixText = options.suffixText ?? this.#suffixText;
3199
- const fullSuffixText = this.#getFullSuffixText(suffixText, " ");
3200
- const textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + "\n";
3201
- this.stop();
3202
- this.#stream.write(textToWrite);
3203
- return this;
3204
- }
3205
- };
3206
- function ora(options) {
3207
- return new Ora(options);
3208
- }
3209
-
3210
- // src/ui/task.tsx
3211
- import { stdin as input, stdout as output } from "node:process";
3212
- import readline from "node:readline/promises";
3213
- var Task = class {
3214
- spiner = void 0;
3215
- do(task2, color, spinner, prefix) {
3216
- this.spiner = ora({
3217
- text: task2,
3218
- color,
3219
- spinner,
3220
- prefixText: prefix
3221
- }).start();
3222
- }
3223
- next(task2, color, spinner, level = 0) {
3224
- this.success();
3225
- this.do(
3226
- task2,
3227
- color,
3228
- spinner,
3229
- level ? " ".repeat(level) + "\u2514\u2500" : void 0
3230
- );
3231
- }
3232
- success() {
3233
- if (this.spiner) this.spiner.succeed();
3234
- }
3235
- fail() {
3236
- if (this.spiner) this.spiner.fail();
3237
- }
3238
- async ask(question, defaultAnswer = "") {
3239
- if (this.spiner) {
3240
- this.spiner.spinner = {
3241
- interval: 100,
3242
- frames: [
3243
- "?",
3244
- ".",
3245
- " ",
3246
- "."
3247
- ]
3248
- };
3249
- }
3250
- const rl = readline.createInterface({ input, output });
3251
- const answer = (await rl.question("")).trim();
3252
- rl.close();
3253
- return answer ? answer : defaultAnswer;
3254
- }
3255
- };
3256
-
3257
- // src/templates.ts
3258
- var getRawPageData = async (url, pages, debug = false) => {
3259
- const task2 = new Task();
3260
- task2.next("Parsing pages", "yellow", cli_spinners_default.dotsCircle);
3261
- const result = [];
3262
- const browser = await chromium.launch({ headless: !debug, devtools: true });
3263
- const context = await browser.newContext({
3264
- userAgent: "____fast-ssr-tool___"
3265
- });
3266
- let indexHtml = void 0;
3267
- for await (const mask of pages) {
3268
- task2.next(mask, "yellow", cli_spinners_default.dotsCircle, 1);
3269
- const page = await context.newPage();
3270
- const path2 = mask.replaceAll("{", "").replaceAll("}", "");
3271
- if (!indexHtml) {
3272
- page.on("response", async (responce) => {
3273
- if (responce.status() == 200 && responce.url() == url + path2) {
3274
- indexHtml = await responce.text();
3275
- }
3276
- });
3277
- }
3278
- await page.goto(url + path2);
3279
- await page.waitForLoadState("networkidle");
3280
- await page.waitForTimeout(1e3);
3281
- const input2 = await page.evaluate(() => {
3282
- return window.__page_requests;
3283
- });
3284
- if (debug) console.log({ input: input2 });
3285
- const root = await page.locator("#root").innerHTML();
3286
- if (debug) {
3287
- await task2.ask("continue?");
3288
- }
3289
- page.close();
3290
- result.push({
3291
- input: input2,
3292
- mask,
3293
- root
3294
- });
3295
- }
3296
- await browser.close();
3297
- task2.success();
3298
- return { pages: result, indexHtml };
3299
- };
3300
-
3301
- // src/bin.ts
3302
- import path from "node:path";
3303
- import { mkdir } from "node:fs/promises";
3304
- import prettier from "prettier";
3305
-
3306
- // src/config/defaultIndexHtml.ts
3307
- var defaultIndexHtml = `
3308
- <!doctype html>
3309
- <html lang="eng">
3310
- <head>
3311
- <meta charset="UTF-8" />
3312
- <link rel="icon" type="image/svg+xml" href="/images/favicon.svg" />
3313
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3314
- <title>Jinrai app</title>
3315
- <!--app-head-->
3316
- </head>
3317
- <body>
3318
- <div id="root"><!--app-html--></div>
3319
- </body>
3320
- </html>
3321
-
3322
- `;
3323
-
3324
- // src/bin.ts
3325
- var task = new Task();
3326
- var configName = process.argv[2] ? process.argv[2] : "jinrai.config";
3327
- task.do("Init: " + configName);
3328
- var config = await getUserConfig(configName);
3329
- task.success();
3330
- var data = await getRawPageData(config.url, config.pages, config.debug);
3331
- task.do("Format");
3332
- var { routes, templates } = getRoutesAndTemplates(data.pages);
3333
- task.next(`Export: ${config.outDir} (${templates.length})`);
3334
- await mkdir(config.outDir, { recursive: true });
3335
- await writeFile(path.join(config.outDir, "config.json"), JSON.stringify(routes, null, 2));
3336
- await writeFile(path.join(config.outDir, "index.html"), data.indexHtml ?? defaultIndexHtml);
3337
- for await (let [index, template] of templates.entries()) {
3338
- try {
3339
- template = await prettier.format(template, {
3340
- parser: "html",
3341
- printWidth: 500,
3342
- tabWidth: 2,
3343
- useTabs: false,
3344
- semi: true,
3345
- singleQuote: true
3346
- });
3347
- } catch (error2) {
3348
- }
3349
- await writeFile(path.join(config.outDir, `${index}.html`), template);
3350
- }
3351
- task.success();