create-pubinfo 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  ## 基本用法
10
10
 
11
11
  ```bash
12
- npm create @pubinfo
12
+ npm create pubinfo
13
13
  ```
14
14
 
15
15
  <!-- Badges -->
@@ -0,0 +1,78 @@
1
+ // src/download.ts
2
+ import { downloadTemplate } from "giget";
3
+ import consola from "consola";
4
+
5
+ // src/progress.ts
6
+ import { Presets, SingleBar } from "cli-progress";
7
+ import colors from "ansi-colors";
8
+ import FackProgress from "fake-progress";
9
+ function createMockProgressBar() {
10
+ const fakeProgress = new FackProgress({
11
+ timeConstant: 3 * 1e3
12
+ });
13
+ let complete = false;
14
+ const bar = new SingleBar(
15
+ {
16
+ format: `${colors.bold.green("Download:")} ${colors.blueBright("{bar}")}| {percentage}% || {value}/{total} || Speed: {speed}`,
17
+ barCompleteChar: "\u2588",
18
+ barIncompleteChar: "\u2591",
19
+ hideCursor: true,
20
+ linewrap: false,
21
+ barsize: 40,
22
+ clearOnComplete: true
23
+ },
24
+ Presets.shades_classic
25
+ );
26
+ function interval() {
27
+ const startTime = Date.now();
28
+ fakeProgress.start();
29
+ console.log("\n");
30
+ bar.start(100, 0, {
31
+ speed: "N/A"
32
+ });
33
+ const timer = setInterval(() => {
34
+ const count = Number((fakeProgress.progress * 100).toFixed(0));
35
+ bar.update(count);
36
+ if (complete) {
37
+ bar.update(100);
38
+ bar.stop();
39
+ console.log(`${colors.bold.green("Download complete in")} ${colors.bold.yellow(`${Date.now() - startTime}`)} ${colors.bold.green("ms.")}`);
40
+ clearInterval(timer);
41
+ }
42
+ }, 100);
43
+ }
44
+ function stop() {
45
+ complete = true;
46
+ }
47
+ interval();
48
+ return stop;
49
+ }
50
+
51
+ // src/download.ts
52
+ var pubinfo = async (input, { auth }) => {
53
+ return {
54
+ name: "pubinfo",
55
+ version: input,
56
+ headers: { Authorization: `token ${auth}` },
57
+ tar: "http://124.223.184.245:10000/monorepo-project-template.tar.gz"
58
+ };
59
+ };
60
+ async function download(options = {}) {
61
+ const stop = createMockProgressBar();
62
+ try {
63
+ await downloadTemplate("pubinfo:monorepo-project-template", {
64
+ providers: { pubinfo },
65
+ force: true,
66
+ auth: options.auth,
67
+ dir: options.dir
68
+ });
69
+ } catch (error) {
70
+ consola.error(error);
71
+ } finally {
72
+ stop();
73
+ }
74
+ }
75
+
76
+ export {
77
+ download
78
+ };
package/dist/cli.cjs CHANGED
@@ -26,12 +26,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  // src/cli.ts
27
27
  var import_commander = require("commander");
28
28
  var import_prompts = require("@inquirer/prompts");
29
+ var import_consola2 = __toESM(require("consola"), 1);
29
30
 
30
31
  // package.json
31
32
  var package_default = {
32
33
  name: "create-pubinfo",
33
34
  type: "module",
34
- version: "0.3.0",
35
+ version: "0.3.1",
35
36
  description: "Start a Pubinfo project.",
36
37
  author: "Werheng <werheng.zhang@gmail.com>",
37
38
  license: "MIT",
@@ -39,31 +40,84 @@ var package_default = {
39
40
  bugs: {
40
41
  url: "https://github.com/werheng/pubinfo-cli/issues"
41
42
  },
42
- bin: {
43
- "create-pubinfo": "./dist/cli.js"
44
- },
43
+ bin: "./dist/cli.js",
45
44
  files: [
46
45
  "dist"
47
46
  ],
48
47
  scripts: {
49
48
  dev: "tsup --watch src",
50
- build: "tsup"
49
+ build: "tsup",
50
+ cli: "tsx src/cli.ts"
51
51
  },
52
52
  dependencies: {
53
53
  "@inquirer/prompts": "^4.3.1",
54
+ "ansi-colors": "^4.1.3",
55
+ boxen: "^7.1.1",
56
+ cfonts: "^3.2.0",
57
+ "cli-progress": "^3.12.0",
54
58
  commander: "^12.0.0",
55
59
  consola: "^3.2.3",
56
60
  "fake-progress": "^1.0.4",
57
61
  giget: "^1.2.3",
58
- progress: "^2.0.3"
62
+ progress: "^2.0.3",
63
+ radash: "^12.1.0"
64
+ },
65
+ devDependencies: {
66
+ "@types/cli-progress": "^3.11.5"
59
67
  }
60
68
  };
61
69
 
62
70
  // src/download.ts
63
71
  var import_giget = require("giget");
64
- var import_progress = __toESM(require("progress"), 1);
65
- var import_fake_progress = __toESM(require("fake-progress"), 1);
66
72
  var import_consola = __toESM(require("consola"), 1);
73
+
74
+ // src/progress.ts
75
+ var import_cli_progress = require("cli-progress");
76
+ var import_ansi_colors = __toESM(require("ansi-colors"), 1);
77
+ var import_fake_progress = __toESM(require("fake-progress"), 1);
78
+ function createMockProgressBar() {
79
+ const fakeProgress = new import_fake_progress.default({
80
+ timeConstant: 3 * 1e3
81
+ });
82
+ let complete = false;
83
+ const bar = new import_cli_progress.SingleBar(
84
+ {
85
+ format: `${import_ansi_colors.default.bold.green("Download:")} ${import_ansi_colors.default.blueBright("{bar}")}| {percentage}% || {value}/{total} || Speed: {speed}`,
86
+ barCompleteChar: "\u2588",
87
+ barIncompleteChar: "\u2591",
88
+ hideCursor: true,
89
+ linewrap: false,
90
+ barsize: 40,
91
+ clearOnComplete: true
92
+ },
93
+ import_cli_progress.Presets.shades_classic
94
+ );
95
+ function interval() {
96
+ const startTime = Date.now();
97
+ fakeProgress.start();
98
+ console.log("\n");
99
+ bar.start(100, 0, {
100
+ speed: "N/A"
101
+ });
102
+ const timer = setInterval(() => {
103
+ const count = Number((fakeProgress.progress * 100).toFixed(0));
104
+ bar.update(count);
105
+ if (complete) {
106
+ bar.update(100);
107
+ bar.stop();
108
+ console.log(`${import_ansi_colors.default.bold.green("Download complete in")} ${import_ansi_colors.default.bold.yellow(`${Date.now() - startTime}`)} ${import_ansi_colors.default.bold.green("ms.")}`);
109
+ clearInterval(timer);
110
+ }
111
+ }, 100);
112
+ }
113
+ function stop() {
114
+ complete = true;
115
+ }
116
+ interval();
117
+ return stop;
118
+ }
119
+
120
+ // src/download.ts
67
121
  var pubinfo = async (input2, { auth }) => {
68
122
  return {
69
123
  name: "pubinfo",
@@ -73,7 +127,7 @@ var pubinfo = async (input2, { auth }) => {
73
127
  };
74
128
  };
75
129
  async function download(options = {}) {
76
- const stop = startProgress();
130
+ const stop = createMockProgressBar();
77
131
  try {
78
132
  await (0, import_giget.downloadTemplate)("pubinfo:monorepo-project-template", {
79
133
  providers: { pubinfo },
@@ -83,29 +137,35 @@ async function download(options = {}) {
83
137
  });
84
138
  } catch (error) {
85
139
  import_consola.default.error(error);
140
+ } finally {
141
+ stop();
86
142
  }
87
- stop();
88
143
  }
89
- function startProgress() {
90
- const bar = new import_progress.default("Downloading [:bar] :percent", {
91
- complete: "=",
92
- incomplete: " ",
93
- width: 20,
94
- total: 100
95
- });
96
- const fake = new import_fake_progress.default({
97
- timeConstant: 5 * 1e3
98
- });
99
- const startTime = Date.now();
100
- fake.start();
101
- const timer = setInterval(() => {
102
- bar.update(fake.progress);
103
- if (bar.complete) {
104
- import_consola.default.success(`Download complete in ${Date.now() - startTime}ms.`);
105
- clearInterval(timer);
106
- }
107
- }, 100);
108
- return () => fake.end();
144
+
145
+ // src/rewrite.ts
146
+ async function rewrite(_) {
147
+ }
148
+
149
+ // src/log.ts
150
+ var import_cfonts = __toESM(require("cfonts"), 1);
151
+ function bootstrop() {
152
+ printLoGo("PUBINFO");
153
+ function printLoGo(logo) {
154
+ import_cfonts.default.say(logo, {
155
+ font: "simple3d",
156
+ align: "left",
157
+ background: "transparent",
158
+ letterSpacing: 1,
159
+ lineHeight: 1,
160
+ space: true,
161
+ maxLength: 0,
162
+ spaceless: false,
163
+ gradient: ["blue", "magenta"],
164
+ independentGradient: false,
165
+ transitionGradient: false,
166
+ env: "node"
167
+ });
168
+ }
109
169
  }
110
170
 
111
171
  // src/cli.ts
@@ -113,11 +173,15 @@ async function main() {
113
173
  const program = new import_commander.Command();
114
174
  program.name(package_default.name).description(package_default.description).version(package_default.version);
115
175
  program.parse();
116
- const answer = {
117
- dir: await (0, import_prompts.input)({ message: "\u8BF7\u8F93\u5165\u9879\u76EE\u540D\u79F0", default: "my-app" })
118
- };
119
- await download({
120
- ...answer
121
- });
176
+ bootstrop();
177
+ const answer = {};
178
+ try {
179
+ answer.dir = await (0, import_prompts.input)({ message: "\u8BF7\u8F93\u5165\u76EE\u5F55\u540D\u79F0", default: "my-app" });
180
+ answer.key = await (0, import_prompts.input)({ message: "\u8BF7\u8F93\u5165\u9879\u76EE\u6807\u8BC6(key)", default: answer.dir });
181
+ } catch (error) {
182
+ import_consola2.default.fail("Operation cancelled");
183
+ }
184
+ await download(answer);
185
+ await rewrite(answer);
122
186
  }
123
187
  main();
package/dist/cli.js CHANGED
@@ -1,17 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  download
4
- } from "./chunk-DRJ7EKPP.js";
4
+ } from "./chunk-DR5C46L2.js";
5
5
 
6
6
  // src/cli.ts
7
7
  import { Command } from "commander";
8
8
  import { input } from "@inquirer/prompts";
9
+ import consola from "consola";
9
10
 
10
11
  // package.json
11
12
  var package_default = {
12
13
  name: "create-pubinfo",
13
14
  type: "module",
14
- version: "0.3.0",
15
+ version: "0.3.1",
15
16
  description: "Start a Pubinfo project.",
16
17
  author: "Werheng <werheng.zhang@gmail.com>",
17
18
  license: "MIT",
@@ -19,36 +20,73 @@ var package_default = {
19
20
  bugs: {
20
21
  url: "https://github.com/werheng/pubinfo-cli/issues"
21
22
  },
22
- bin: {
23
- "create-pubinfo": "./dist/cli.js"
24
- },
23
+ bin: "./dist/cli.js",
25
24
  files: [
26
25
  "dist"
27
26
  ],
28
27
  scripts: {
29
28
  dev: "tsup --watch src",
30
- build: "tsup"
29
+ build: "tsup",
30
+ cli: "tsx src/cli.ts"
31
31
  },
32
32
  dependencies: {
33
33
  "@inquirer/prompts": "^4.3.1",
34
+ "ansi-colors": "^4.1.3",
35
+ boxen: "^7.1.1",
36
+ cfonts: "^3.2.0",
37
+ "cli-progress": "^3.12.0",
34
38
  commander: "^12.0.0",
35
39
  consola: "^3.2.3",
36
40
  "fake-progress": "^1.0.4",
37
41
  giget: "^1.2.3",
38
- progress: "^2.0.3"
42
+ progress: "^2.0.3",
43
+ radash: "^12.1.0"
44
+ },
45
+ devDependencies: {
46
+ "@types/cli-progress": "^3.11.5"
39
47
  }
40
48
  };
41
49
 
50
+ // src/rewrite.ts
51
+ async function rewrite(_) {
52
+ }
53
+
54
+ // src/log.ts
55
+ import fonts from "cfonts";
56
+ function bootstrop() {
57
+ printLoGo("PUBINFO");
58
+ function printLoGo(logo) {
59
+ fonts.say(logo, {
60
+ font: "simple3d",
61
+ align: "left",
62
+ background: "transparent",
63
+ letterSpacing: 1,
64
+ lineHeight: 1,
65
+ space: true,
66
+ maxLength: 0,
67
+ spaceless: false,
68
+ gradient: ["blue", "magenta"],
69
+ independentGradient: false,
70
+ transitionGradient: false,
71
+ env: "node"
72
+ });
73
+ }
74
+ }
75
+
42
76
  // src/cli.ts
43
77
  async function main() {
44
78
  const program = new Command();
45
79
  program.name(package_default.name).description(package_default.description).version(package_default.version);
46
80
  program.parse();
47
- const answer = {
48
- dir: await input({ message: "\u8BF7\u8F93\u5165\u9879\u76EE\u540D\u79F0", default: "my-app" })
49
- };
50
- await download({
51
- ...answer
52
- });
81
+ bootstrop();
82
+ const answer = {};
83
+ try {
84
+ answer.dir = await input({ message: "\u8BF7\u8F93\u5165\u76EE\u5F55\u540D\u79F0", default: "my-app" });
85
+ answer.key = await input({ message: "\u8BF7\u8F93\u5165\u9879\u76EE\u6807\u8BC6(key)", default: answer.dir });
86
+ } catch (error) {
87
+ consola.fail("Operation cancelled");
88
+ }
89
+ await download(answer);
90
+ await rewrite(answer);
53
91
  }
54
92
  main();
package/dist/index.cjs CHANGED
@@ -36,9 +36,55 @@ module.exports = __toCommonJS(src_exports);
36
36
 
37
37
  // src/download.ts
38
38
  var import_giget = require("giget");
39
- var import_progress = __toESM(require("progress"), 1);
40
- var import_fake_progress = __toESM(require("fake-progress"), 1);
41
39
  var import_consola = __toESM(require("consola"), 1);
40
+
41
+ // src/progress.ts
42
+ var import_cli_progress = require("cli-progress");
43
+ var import_ansi_colors = __toESM(require("ansi-colors"), 1);
44
+ var import_fake_progress = __toESM(require("fake-progress"), 1);
45
+ function createMockProgressBar() {
46
+ const fakeProgress = new import_fake_progress.default({
47
+ timeConstant: 3 * 1e3
48
+ });
49
+ let complete = false;
50
+ const bar = new import_cli_progress.SingleBar(
51
+ {
52
+ format: `${import_ansi_colors.default.bold.green("Download:")} ${import_ansi_colors.default.blueBright("{bar}")}| {percentage}% || {value}/{total} || Speed: {speed}`,
53
+ barCompleteChar: "\u2588",
54
+ barIncompleteChar: "\u2591",
55
+ hideCursor: true,
56
+ linewrap: false,
57
+ barsize: 40,
58
+ clearOnComplete: true
59
+ },
60
+ import_cli_progress.Presets.shades_classic
61
+ );
62
+ function interval() {
63
+ const startTime = Date.now();
64
+ fakeProgress.start();
65
+ console.log("\n");
66
+ bar.start(100, 0, {
67
+ speed: "N/A"
68
+ });
69
+ const timer = setInterval(() => {
70
+ const count = Number((fakeProgress.progress * 100).toFixed(0));
71
+ bar.update(count);
72
+ if (complete) {
73
+ bar.update(100);
74
+ bar.stop();
75
+ console.log(`${import_ansi_colors.default.bold.green("Download complete in")} ${import_ansi_colors.default.bold.yellow(`${Date.now() - startTime}`)} ${import_ansi_colors.default.bold.green("ms.")}`);
76
+ clearInterval(timer);
77
+ }
78
+ }, 100);
79
+ }
80
+ function stop() {
81
+ complete = true;
82
+ }
83
+ interval();
84
+ return stop;
85
+ }
86
+
87
+ // src/download.ts
42
88
  var pubinfo = async (input, { auth }) => {
43
89
  return {
44
90
  name: "pubinfo",
@@ -48,7 +94,7 @@ var pubinfo = async (input, { auth }) => {
48
94
  };
49
95
  };
50
96
  async function download(options = {}) {
51
- const stop = startProgress();
97
+ const stop = createMockProgressBar();
52
98
  try {
53
99
  await (0, import_giget.downloadTemplate)("pubinfo:monorepo-project-template", {
54
100
  providers: { pubinfo },
@@ -58,29 +104,9 @@ async function download(options = {}) {
58
104
  });
59
105
  } catch (error) {
60
106
  import_consola.default.error(error);
107
+ } finally {
108
+ stop();
61
109
  }
62
- stop();
63
- }
64
- function startProgress() {
65
- const bar = new import_progress.default("Downloading [:bar] :percent", {
66
- complete: "=",
67
- incomplete: " ",
68
- width: 20,
69
- total: 100
70
- });
71
- const fake = new import_fake_progress.default({
72
- timeConstant: 5 * 1e3
73
- });
74
- const startTime = Date.now();
75
- fake.start();
76
- const timer = setInterval(() => {
77
- bar.update(fake.progress);
78
- if (bar.complete) {
79
- import_consola.default.success(`Download complete in ${Date.now() - startTime}ms.`);
80
- clearInterval(timer);
81
- }
82
- }, 100);
83
- return () => fake.end();
84
110
  }
85
111
  // Annotate the CommonJS export names for ESM import in node:
86
112
  0 && (module.exports = {
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  download
3
- } from "./chunk-DRJ7EKPP.js";
3
+ } from "./chunk-DR5C46L2.js";
4
4
  export {
5
5
  download
6
6
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-pubinfo",
3
3
  "type": "module",
4
- "version": "0.3.0",
4
+ "version": "0.3.1",
5
5
  "description": "Start a Pubinfo project.",
6
6
  "author": "Werheng <werheng.zhang@gmail.com>",
7
7
  "license": "MIT",
@@ -9,22 +9,29 @@
9
9
  "bugs": {
10
10
  "url": "https://github.com/werheng/pubinfo-cli/issues"
11
11
  },
12
- "bin": {
13
- "create-pubinfo": "./dist/cli.js"
14
- },
12
+ "bin": "./dist/cli.js",
15
13
  "files": [
16
14
  "dist"
17
15
  ],
18
16
  "dependencies": {
19
17
  "@inquirer/prompts": "^4.3.1",
18
+ "ansi-colors": "^4.1.3",
19
+ "boxen": "^7.1.1",
20
+ "cfonts": "^3.2.0",
21
+ "cli-progress": "^3.12.0",
20
22
  "commander": "^12.0.0",
21
23
  "consola": "^3.2.3",
22
24
  "fake-progress": "^1.0.4",
23
25
  "giget": "^1.2.3",
24
- "progress": "^2.0.3"
26
+ "progress": "^2.0.3",
27
+ "radash": "^12.1.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/cli-progress": "^3.11.5"
25
31
  },
26
32
  "scripts": {
27
33
  "dev": "tsup --watch src",
28
- "build": "tsup"
34
+ "build": "tsup",
35
+ "cli": "tsx src/cli.ts"
29
36
  }
30
37
  }
@@ -1,52 +0,0 @@
1
- // src/download.ts
2
- import { downloadTemplate } from "giget";
3
- import ProgressBar from "progress";
4
- import FackProgress from "fake-progress";
5
- import consola from "consola";
6
- var pubinfo = async (input, { auth }) => {
7
- return {
8
- name: "pubinfo",
9
- version: input,
10
- headers: { Authorization: `token ${auth}` },
11
- tar: "http://124.223.184.245:10000/monorepo-project-template.tar.gz"
12
- };
13
- };
14
- async function download(options = {}) {
15
- const stop = startProgress();
16
- try {
17
- await downloadTemplate("pubinfo:monorepo-project-template", {
18
- providers: { pubinfo },
19
- force: true,
20
- auth: options.auth,
21
- dir: options.dir
22
- });
23
- } catch (error) {
24
- consola.error(error);
25
- }
26
- stop();
27
- }
28
- function startProgress() {
29
- const bar = new ProgressBar("Downloading [:bar] :percent", {
30
- complete: "=",
31
- incomplete: " ",
32
- width: 20,
33
- total: 100
34
- });
35
- const fake = new FackProgress({
36
- timeConstant: 5 * 1e3
37
- });
38
- const startTime = Date.now();
39
- fake.start();
40
- const timer = setInterval(() => {
41
- bar.update(fake.progress);
42
- if (bar.complete) {
43
- consola.success(`Download complete in ${Date.now() - startTime}ms.`);
44
- clearInterval(timer);
45
- }
46
- }, 100);
47
- return () => fake.end();
48
- }
49
-
50
- export {
51
- download
52
- };