@nbtca/prompt 1.0.3 → 1.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"logo.d.ts","sourceRoot":"","sources":["../../src/core/logo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwDH;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAmC/C"}
1
+ {"version":3,"file":"logo.d.ts","sourceRoot":"","sources":["../../src/core/logo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoIH;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAmC/C"}
package/dist/core/logo.js CHANGED
@@ -21,25 +21,78 @@ function createBlueGradient(text) {
21
21
  return blueGradient(text);
22
22
  }
23
23
  /**
24
- * 显示渐变动画效果(优化版 - 更丝滑的动画)
24
+ * 将十六进制颜色转换为RGB
25
+ */
26
+ function hexToRgb(hex) {
27
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
28
+ return result
29
+ ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)]
30
+ : [0, 0, 0];
31
+ }
32
+ /**
33
+ * 将RGB转换为十六进制颜色
34
+ */
35
+ function rgbToHex(r, g, b) {
36
+ return '#' + [r, g, b].map(x => {
37
+ const hex = Math.round(x).toString(16);
38
+ return hex.length === 1 ? '0' + hex : hex;
39
+ }).join('');
40
+ }
41
+ /**
42
+ * 在两个颜色之间进行线性插值
43
+ */
44
+ function interpolateColor(color1, color2, factor) {
45
+ const [r1, g1, b1] = hexToRgb(color1);
46
+ const [r2, g2, b2] = hexToRgb(color2);
47
+ const r = r1 + (r2 - r1) * factor;
48
+ const g = g1 + (g2 - g1) * factor;
49
+ const b = b1 + (b2 - b1) * factor;
50
+ return rgbToHex(r, g, b);
51
+ }
52
+ /**
53
+ * 缓动函数 - 平滑的进出效果
54
+ */
55
+ function easeInOutSine(t) {
56
+ return -(Math.cos(Math.PI * t) - 1) / 2;
57
+ }
58
+ /**
59
+ * 显示渐变动画效果(优化版 - 真正丝滑的动画)
25
60
  */
26
61
  async function animateGradient(text, duration = 1200) {
27
- const frames = 24; // 增加帧数使动画更流畅
62
+ const frames = 60; // 60帧实现真正的流畅动画
28
63
  const frameDelay = duration / frames;
29
- // 预创建所有渐变对象
30
- const gradients = [
31
- gradient('#1e3a8a', '#2563eb', '#3b82f6'),
32
- gradient('#2563eb', '#3b82f6', '#0ea5e9'),
33
- gradient('#3b82f6', '#0ea5e9', '#06b6d4'),
34
- gradient('#0ea5e9', '#06b6d4', '#14b8a6'),
35
- gradient('#06b6d4', '#14b8a6', '#0ea5e9'),
36
- gradient('#14b8a6', '#0ea5e9', '#3b82f6'),
37
- gradient('#0ea5e9', '#3b82f6', '#2563eb'),
38
- gradient('#3b82f6', '#2563eb', '#1e3a8a'),
64
+ // 定义颜色序列 - 形成完整的蓝色系循环
65
+ const colorSequence = [
66
+ '#1e3a8a', // 深蓝
67
+ '#2563eb', //
68
+ '#3b82f6', // 亮蓝
69
+ '#0ea5e9', // 天蓝
70
+ '#06b6d4', // 青色
71
+ '#14b8a6', // 青绿
72
+ '#06b6d4', // 青色
73
+ '#0ea5e9', // 天蓝
74
+ '#3b82f6', // 亮蓝
75
+ '#2563eb', // 蓝
76
+ '#1e3a8a', // 深蓝
39
77
  ];
40
78
  for (let i = 0; i < frames; i++) {
41
- const gradientIndex = Math.floor((i / frames) * gradients.length);
42
- const frameGradient = gradients[gradientIndex];
79
+ // 使用平滑的正弦缓动
80
+ const progress = easeInOutSine(i / frames);
81
+ // 计算在颜色序列中的位置
82
+ const position = progress * (colorSequence.length - 1);
83
+ const index1 = Math.floor(position);
84
+ const index2 = Math.min(index1 + 1, colorSequence.length - 1);
85
+ const localProgress = position - index1;
86
+ // 在相邻颜色间插值,生成三个平滑过渡的颜色
87
+ const color1 = interpolateColor(colorSequence[index1], colorSequence[index2], localProgress);
88
+ const nextIndex1 = Math.min(index2, colorSequence.length - 1);
89
+ const nextIndex2 = Math.min(nextIndex1 + 1, colorSequence.length - 1);
90
+ const color2 = interpolateColor(colorSequence[nextIndex1], colorSequence[nextIndex2], localProgress);
91
+ const nextIndex3 = Math.min(nextIndex2, colorSequence.length - 1);
92
+ const nextIndex4 = Math.min(nextIndex3 + 1, colorSequence.length - 1);
93
+ const color3 = interpolateColor(colorSequence[nextIndex3], colorSequence[nextIndex4], localProgress);
94
+ // 为当前帧创建渐变
95
+ const frameGradient = gradient(color1, color2, color3);
43
96
  // 清除当前行并显示新帧
44
97
  process.stdout.write('\r' + frameGradient(text));
45
98
  await new Promise(resolve => setTimeout(resolve, frameDelay));
@@ -1 +1 @@
1
- {"version":3,"file":"logo.js","sourceRoot":"","sources":["../../src/core/logo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logo.js","sourceRoot":"","sources":["../../src/core/logo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nbtca/prompt",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/src/core/logo.ts CHANGED
@@ -25,27 +25,103 @@ function createBlueGradient(text: string): string {
25
25
  }
26
26
 
27
27
  /**
28
- * 显示渐变动画效果(优化版 - 更丝滑的动画)
28
+ * 将十六进制颜色转换为RGB
29
+ */
30
+ function hexToRgb(hex: string): [number, number, number] {
31
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
32
+ return result
33
+ ? [parseInt(result[1]!, 16), parseInt(result[2]!, 16), parseInt(result[3]!, 16)]
34
+ : [0, 0, 0];
35
+ }
36
+
37
+ /**
38
+ * 将RGB转换为十六进制颜色
39
+ */
40
+ function rgbToHex(r: number, g: number, b: number): string {
41
+ return '#' + [r, g, b].map(x => {
42
+ const hex = Math.round(x).toString(16);
43
+ return hex.length === 1 ? '0' + hex : hex;
44
+ }).join('');
45
+ }
46
+
47
+ /**
48
+ * 在两个颜色之间进行线性插值
49
+ */
50
+ function interpolateColor(color1: string, color2: string, factor: number): string {
51
+ const [r1, g1, b1] = hexToRgb(color1);
52
+ const [r2, g2, b2] = hexToRgb(color2);
53
+
54
+ const r = r1 + (r2 - r1) * factor;
55
+ const g = g1 + (g2 - g1) * factor;
56
+ const b = b1 + (b2 - b1) * factor;
57
+
58
+ return rgbToHex(r, g, b);
59
+ }
60
+
61
+ /**
62
+ * 缓动函数 - 平滑的进出效果
63
+ */
64
+ function easeInOutSine(t: number): number {
65
+ return -(Math.cos(Math.PI * t) - 1) / 2;
66
+ }
67
+
68
+ /**
69
+ * 显示渐变动画效果(优化版 - 真正丝滑的动画)
29
70
  */
30
71
  async function animateGradient(text: string, duration: number = 1200): Promise<void> {
31
- const frames = 24; // 增加帧数使动画更流畅
72
+ const frames = 60; // 60帧实现真正的流畅动画
32
73
  const frameDelay = duration / frames;
33
74
 
34
- // 预创建所有渐变对象
35
- const gradients = [
36
- gradient('#1e3a8a', '#2563eb', '#3b82f6'),
37
- gradient('#2563eb', '#3b82f6', '#0ea5e9'),
38
- gradient('#3b82f6', '#0ea5e9', '#06b6d4'),
39
- gradient('#0ea5e9', '#06b6d4', '#14b8a6'),
40
- gradient('#06b6d4', '#14b8a6', '#0ea5e9'),
41
- gradient('#14b8a6', '#0ea5e9', '#3b82f6'),
42
- gradient('#0ea5e9', '#3b82f6', '#2563eb'),
43
- gradient('#3b82f6', '#2563eb', '#1e3a8a'),
75
+ // 定义颜色序列 - 形成完整的蓝色系循环
76
+ const colorSequence = [
77
+ '#1e3a8a', // 深蓝
78
+ '#2563eb', //
79
+ '#3b82f6', // 亮蓝
80
+ '#0ea5e9', // 天蓝
81
+ '#06b6d4', // 青色
82
+ '#14b8a6', // 青绿
83
+ '#06b6d4', // 青色
84
+ '#0ea5e9', // 天蓝
85
+ '#3b82f6', // 亮蓝
86
+ '#2563eb', // 蓝
87
+ '#1e3a8a', // 深蓝
44
88
  ];
45
89
 
46
90
  for (let i = 0; i < frames; i++) {
47
- const gradientIndex = Math.floor((i / frames) * gradients.length);
48
- const frameGradient = gradients[gradientIndex]!;
91
+ // 使用平滑的正弦缓动
92
+ const progress = easeInOutSine(i / frames);
93
+
94
+ // 计算在颜色序列中的位置
95
+ const position = progress * (colorSequence.length - 1);
96
+ const index1 = Math.floor(position);
97
+ const index2 = Math.min(index1 + 1, colorSequence.length - 1);
98
+ const localProgress = position - index1;
99
+
100
+ // 在相邻颜色间插值,生成三个平滑过渡的颜色
101
+ const color1 = interpolateColor(
102
+ colorSequence[index1]!,
103
+ colorSequence[index2]!,
104
+ localProgress
105
+ );
106
+
107
+ const nextIndex1 = Math.min(index2, colorSequence.length - 1);
108
+ const nextIndex2 = Math.min(nextIndex1 + 1, colorSequence.length - 1);
109
+ const color2 = interpolateColor(
110
+ colorSequence[nextIndex1]!,
111
+ colorSequence[nextIndex2]!,
112
+ localProgress
113
+ );
114
+
115
+ const nextIndex3 = Math.min(nextIndex2, colorSequence.length - 1);
116
+ const nextIndex4 = Math.min(nextIndex3 + 1, colorSequence.length - 1);
117
+ const color3 = interpolateColor(
118
+ colorSequence[nextIndex3]!,
119
+ colorSequence[nextIndex4]!,
120
+ localProgress
121
+ );
122
+
123
+ // 为当前帧创建渐变
124
+ const frameGradient = gradient(color1, color2, color3);
49
125
 
50
126
  // 清除当前行并显示新帧
51
127
  process.stdout.write('\r' + frameGradient(text));
@@ -1,25 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(gh pr create:*)",
5
- "Bash(gh release:*)",
6
- "Bash(npm whoami:*)",
7
- "Bash(git fetch:*)",
8
- "Bash(git pull:*)",
9
- "Bash(Jump: g/G)",
10
- "Bash(npm run build:*)",
11
- "Bash(git add:*)",
12
- "Bash(git commit -m \"$(cat <<''EOF''\nfix: correct version display in application\n\nPrevious commit bumped package.json to 1.0.2 but missed updating the version in the application code itself, causing the UI to still display 1.0.0.\nEOF\n)\")",
13
- "Bash(git tag:*)",
14
- "Bash(git push:*)",
15
- "Bash(npm publish:*)",
16
- "Bash(npm view:*)",
17
- "Bash(npm unpublish:*)",
18
- "Bash(npm config:*)",
19
- "Bash(tee:*)",
20
- "Bash(npm cache clean:*)"
21
- ],
22
- "deny": [],
23
- "ask": []
24
- }
25
- }
@@ -1,27 +0,0 @@
1
- Prompt Wiki
2
-
3
- ## Memo
4
-
5
- NBTCA support bunch of services since latest contribution from party members.
6
-
7
- - Blog about active and skills
8
-
9
- - NBTCA Calendar and notification
10
-
11
- - Repair service
12
-
13
- - Tech support
14
-
15
- - Open source code of service support applications
16
-
17
- - Docs of archive
18
-
19
- - Minecraft server
20
-
21
- Design purpose
22
-
23
- - Build multi-independent tools and each tool focus one thing
24
-
25
- - K.I.S.S. (keep it simple stupid)
26
-
27
- - Gather tools to construct interactive service