@kya-os/cli 0.1.0-beta.6 → 0.1.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +210 -34
  2. package/dist/commands/check.d.ts.map +1 -1
  3. package/dist/commands/check.js +28 -6
  4. package/dist/commands/check.js.map +1 -1
  5. package/dist/commands/cli-experience-demo-simple.d.ts +14 -0
  6. package/dist/commands/cli-experience-demo-simple.d.ts.map +1 -0
  7. package/dist/commands/cli-experience-demo-simple.js +119 -0
  8. package/dist/commands/cli-experience-demo-simple.js.map +1 -0
  9. package/dist/commands/cli-experience-demo.d.ts +14 -0
  10. package/dist/commands/cli-experience-demo.d.ts.map +1 -0
  11. package/dist/commands/cli-experience-demo.js +172 -0
  12. package/dist/commands/cli-experience-demo.js.map +1 -0
  13. package/dist/commands/effects-demo.d.ts +10 -0
  14. package/dist/commands/effects-demo.d.ts.map +1 -0
  15. package/dist/commands/effects-demo.js +292 -0
  16. package/dist/commands/effects-demo.js.map +1 -0
  17. package/dist/commands/env.d.ts.map +1 -1
  18. package/dist/commands/env.js +12 -2
  19. package/dist/commands/env.js.map +1 -1
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +262 -136
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/rotate.d.ts.map +1 -1
  24. package/dist/commands/rotate.js +19 -3
  25. package/dist/commands/rotate.js.map +1 -1
  26. package/dist/dev.d.ts +7 -0
  27. package/dist/dev.d.ts.map +1 -0
  28. package/dist/dev.js +9 -0
  29. package/dist/dev.js.map +1 -0
  30. package/dist/effects/__tests__/effects.test.d.ts +5 -0
  31. package/dist/effects/__tests__/effects.test.d.ts.map +1 -0
  32. package/dist/effects/__tests__/effects.test.js +206 -0
  33. package/dist/effects/__tests__/effects.test.js.map +1 -0
  34. package/dist/effects/animation-engine.d.ts +173 -0
  35. package/dist/effects/animation-engine.d.ts.map +1 -0
  36. package/dist/effects/animation-engine.js +254 -0
  37. package/dist/effects/animation-engine.js.map +1 -0
  38. package/dist/effects/cli-integration.d.ts +86 -0
  39. package/dist/effects/cli-integration.d.ts.map +1 -0
  40. package/dist/effects/cli-integration.js +309 -0
  41. package/dist/effects/cli-integration.js.map +1 -0
  42. package/dist/effects/config.d.ts +95 -0
  43. package/dist/effects/config.d.ts.map +1 -0
  44. package/dist/effects/config.js +216 -0
  45. package/dist/effects/config.js.map +1 -0
  46. package/dist/effects/effect-runner.d.ts +69 -0
  47. package/dist/effects/effect-runner.d.ts.map +1 -0
  48. package/dist/effects/effect-runner.js +255 -0
  49. package/dist/effects/effect-runner.js.map +1 -0
  50. package/dist/effects/gradient.d.ts +131 -0
  51. package/dist/effects/gradient.d.ts.map +1 -0
  52. package/dist/effects/gradient.js +236 -0
  53. package/dist/effects/gradient.js.map +1 -0
  54. package/dist/effects/implementations/beams.d.ts +80 -0
  55. package/dist/effects/implementations/beams.d.ts.map +1 -0
  56. package/dist/effects/implementations/beams.js +221 -0
  57. package/dist/effects/implementations/beams.js.map +1 -0
  58. package/dist/effects/implementations/binary-path.d.ts +88 -0
  59. package/dist/effects/implementations/binary-path.d.ts.map +1 -0
  60. package/dist/effects/implementations/binary-path.js +296 -0
  61. package/dist/effects/implementations/binary-path.js.map +1 -0
  62. package/dist/effects/implementations/blackhole.d.ts +98 -0
  63. package/dist/effects/implementations/blackhole.d.ts.map +1 -0
  64. package/dist/effects/implementations/blackhole.js +394 -0
  65. package/dist/effects/implementations/blackhole.js.map +1 -0
  66. package/dist/effects/implementations/burn.d.ts +74 -0
  67. package/dist/effects/implementations/burn.d.ts.map +1 -0
  68. package/dist/effects/implementations/burn.js +234 -0
  69. package/dist/effects/implementations/burn.js.map +1 -0
  70. package/dist/effects/implementations/decrypt.d.ts +115 -0
  71. package/dist/effects/implementations/decrypt.d.ts.map +1 -0
  72. package/dist/effects/implementations/decrypt.js +394 -0
  73. package/dist/effects/implementations/decrypt.js.map +1 -0
  74. package/dist/effects/implementations/test.d.ts +113 -0
  75. package/dist/effects/implementations/test.d.ts.map +1 -0
  76. package/dist/effects/implementations/test.js +552 -0
  77. package/dist/effects/implementations/test.js.map +1 -0
  78. package/dist/effects/implementations/waves.d.ts +78 -0
  79. package/dist/effects/implementations/waves.d.ts.map +1 -0
  80. package/dist/effects/implementations/waves.js +278 -0
  81. package/dist/effects/implementations/waves.js.map +1 -0
  82. package/dist/effects/index.d.ts +37 -0
  83. package/dist/effects/index.d.ts.map +1 -0
  84. package/dist/effects/index.js +79 -0
  85. package/dist/effects/index.js.map +1 -0
  86. package/dist/effects/motion-engine.d.ts +168 -0
  87. package/dist/effects/motion-engine.d.ts.map +1 -0
  88. package/dist/effects/motion-engine.js +353 -0
  89. package/dist/effects/motion-engine.js.map +1 -0
  90. package/dist/effects/safe-executor.d.ts +55 -0
  91. package/dist/effects/safe-executor.d.ts.map +1 -0
  92. package/dist/effects/safe-executor.js +210 -0
  93. package/dist/effects/safe-executor.js.map +1 -0
  94. package/dist/effects/template/effect-template.d.ts +97 -0
  95. package/dist/effects/template/effect-template.d.ts.map +1 -0
  96. package/dist/effects/template/effect-template.js +208 -0
  97. package/dist/effects/template/effect-template.js.map +1 -0
  98. package/dist/effects/types.d.ts +199 -0
  99. package/dist/effects/types.d.ts.map +1 -0
  100. package/dist/effects/types.js +80 -0
  101. package/dist/effects/types.js.map +1 -0
  102. package/dist/effects/utils.d.ts +104 -0
  103. package/dist/effects/utils.d.ts.map +1 -0
  104. package/dist/effects/utils.js +280 -0
  105. package/dist/effects/utils.js.map +1 -0
  106. package/dist/index.d.ts +2 -1
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +48 -42
  109. package/dist/index.js.map +1 -1
  110. package/package.json +4 -1
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Blackhole Effect
3
+ * Characters are consumed by a black hole and explode outwards
4
+ */
5
+ import { BaseEffect } from "../types.js";
6
+ /**
7
+ * Configuration options for the Blackhole effect
8
+ */
9
+ export interface BlackholeEffectOptions {
10
+ /** Duration in milliseconds */
11
+ duration?: number;
12
+ /** Color for the blackhole border stars */
13
+ blackholeColor?: string;
14
+ /** Colors for stars during explosion */
15
+ starColors?: string[];
16
+ /** Final color for characters */
17
+ finalColor?: string;
18
+ /** Use gradient for final color */
19
+ useGradient?: boolean;
20
+ /** Gradient direction */
21
+ gradientDirection?: "vertical" | "horizontal" | "diagonal";
22
+ /** Size of the blackhole relative to canvas (0.1 - 0.5) */
23
+ blackholeSize?: number;
24
+ }
25
+ /**
26
+ * Blackhole effect implementation
27
+ */
28
+ export declare class BlackholeEffect extends BaseEffect {
29
+ readonly name = "Blackhole";
30
+ readonly description = "Characters are consumed by a black hole and explode outwards";
31
+ private options;
32
+ private characterStates;
33
+ private animationFrameCount;
34
+ private totalFrames;
35
+ private _isEffectComplete;
36
+ private currentPhase;
37
+ private phaseProgress;
38
+ private blackholeCenter;
39
+ private blackholeRadius;
40
+ private blackholeChars;
41
+ private consumptionQueue;
42
+ private readonly starSymbols;
43
+ private readonly starfieldColors;
44
+ constructor(options?: BlackholeEffectOptions);
45
+ /**
46
+ * Initialize the effect
47
+ */
48
+ protected onInitialize(): void;
49
+ /**
50
+ * Calculate gradient colors
51
+ */
52
+ private calculateGradientColors;
53
+ /**
54
+ * Get gradient key based on direction
55
+ */
56
+ private getGradientKey;
57
+ /**
58
+ * Render the next frame
59
+ */
60
+ render(): Promise<string[]>;
61
+ /**
62
+ * Update animation state for all characters
63
+ */
64
+ private updateAnimationState;
65
+ /**
66
+ * Update individual character position
67
+ */
68
+ private updateCharacterPosition;
69
+ /**
70
+ * Create visual representation of a character
71
+ */
72
+ private createCharacterVisual;
73
+ /**
74
+ * Calculate distance between two coordinates
75
+ */
76
+ private calculateDistance;
77
+ /**
78
+ * Get ANSI color code for a color
79
+ */
80
+ private getColorCode;
81
+ /**
82
+ * Interpolate between two colors
83
+ */
84
+ private interpolateColor;
85
+ /**
86
+ * Render fallback for when effects are disabled
87
+ */
88
+ renderFallback(): string[];
89
+ /**
90
+ * Check if effect is complete
91
+ */
92
+ isComplete(): boolean;
93
+ /**
94
+ * Reset the effect
95
+ */
96
+ protected onReset(): void;
97
+ }
98
+ //# sourceMappingURL=blackhole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blackhole.d.ts","sourceRoot":"","sources":["../../../src/effects/implementations/blackhole.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAMX,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;IAC3D,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmBD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,kEAAkE;IAEtF,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,YAAY,CAAgF;IAEpG,OAAO,CAAC,aAAa,CAAa;IAGlC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAyB;IAE/C,OAAO,CAAC,gBAAgB,CAAyB;IAGjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiD;IAC7E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgE;gBAEpF,OAAO,GAAE,sBAA2B;IAchD;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IA0E9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAyCjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwG/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2D7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;CAU1B"}
@@ -0,0 +1,394 @@
1
+ /**
2
+ * Blackhole Effect
3
+ * Characters are consumed by a black hole and explode outwards
4
+ */
5
+ import { BaseEffect, } from "../types.js";
6
+ import { ANSI } from "../utils.js";
7
+ /**
8
+ * Blackhole effect implementation
9
+ */
10
+ export class BlackholeEffect extends BaseEffect {
11
+ constructor(options = {}) {
12
+ super();
13
+ this.name = "Blackhole";
14
+ this.description = "Characters are consumed by a black hole and explode outwards";
15
+ this.characterStates = new Map();
16
+ this.animationFrameCount = 0;
17
+ this.totalFrames = 0;
18
+ this._isEffectComplete = false;
19
+ // Animation phase tracking
20
+ this.currentPhase = "forming";
21
+ // @ts-ignore - Reserved for phase transitions
22
+ this.phaseProgress = 0;
23
+ // Blackhole properties
24
+ this.blackholeCenter = { x: 0, y: 0 };
25
+ this.blackholeRadius = 0;
26
+ this.blackholeChars = [];
27
+ // @ts-ignore - Reserved for queued consumption
28
+ this.consumptionQueue = [];
29
+ // Star symbols
30
+ this.starSymbols = ["*", "'", "`", "¤", "•", "°", "·", "✦", "✧"];
31
+ this.starfieldColors = ["4a4a4d", "808080", "a0a0a0", "c0c0c0", "e0e0e0", "ffffff"];
32
+ this.options = {
33
+ duration: 6000,
34
+ blackholeColor: "ffffff",
35
+ starColors: ["ffcc0d", "ff7326", "ff194d", "bf2669", "702a8c", "049dbf"],
36
+ finalColor: "ffffff",
37
+ useGradient: true,
38
+ gradientDirection: "diagonal",
39
+ blackholeSize: 0.3,
40
+ ...options,
41
+ };
42
+ }
43
+ /**
44
+ * Initialize the effect
45
+ */
46
+ onInitialize() {
47
+ this.totalFrames = Math.floor((this.options.duration / 1000) * this.config.frameRate);
48
+ const dimensions = this.getCanvasDimensions();
49
+ this.blackholeCenter = {
50
+ x: Math.floor(dimensions.width / 2),
51
+ y: Math.floor(dimensions.height / 2),
52
+ };
53
+ this.blackholeRadius = Math.max(3, Math.floor(Math.min(dimensions.width * this.options.blackholeSize, dimensions.height * this.options.blackholeSize)));
54
+ // Initialize character states
55
+ this.characterStates.clear();
56
+ this.blackholeChars = [];
57
+ this.consumptionQueue = [];
58
+ // Calculate final colors for gradient
59
+ const gradientColors = this.calculateGradientColors(dimensions);
60
+ // Select characters for blackhole ring
61
+ const blackholeCharCount = Math.min(Math.floor(this.blackholeRadius * 3), Math.floor(this.characters.length * 0.3));
62
+ const shuffledChars = [...this.characters].sort(() => Math.random() - 0.5);
63
+ this.blackholeChars = shuffledChars.slice(0, blackholeCharCount);
64
+ this.consumptionQueue = shuffledChars.slice(blackholeCharCount);
65
+ // Initialize all character states
66
+ for (const char of this.characters) {
67
+ const key = `${char.originalPosition.x},${char.originalPosition.y}`;
68
+ const isBlackholeChar = this.blackholeChars.includes(char);
69
+ let finalColor = this.options.finalColor;
70
+ if (this.options.useGradient) {
71
+ const gradientKey = this.getGradientKey(char.originalPosition, dimensions);
72
+ finalColor = gradientColors[gradientKey] || this.options.finalColor;
73
+ }
74
+ // Random starfield position
75
+ const starfieldPos = {
76
+ x: Math.floor(Math.random() * dimensions.width),
77
+ y: Math.floor(Math.random() * dimensions.height),
78
+ };
79
+ this.characterStates.set(key, {
80
+ phase: "starfield",
81
+ isBlackholeRing: isBlackholeChar,
82
+ starSymbol: this.starSymbols[Math.floor(Math.random() * this.starSymbols.length)],
83
+ starColor: this.starfieldColors[Math.floor(Math.random() * this.starfieldColors.length)],
84
+ position: { ...starfieldPos },
85
+ targetPosition: { ...char.originalPosition },
86
+ spiralAngle: Math.random() * Math.PI * 2,
87
+ spiralRadius: this.calculateDistance(starfieldPos, this.blackholeCenter),
88
+ explosionVector: { x: 0, y: 0 },
89
+ settlingProgress: 0,
90
+ finalColor,
91
+ });
92
+ }
93
+ this.currentPhase = "forming";
94
+ this.phaseProgress = 0;
95
+ this.animationFrameCount = 0;
96
+ this._isEffectComplete = false;
97
+ }
98
+ /**
99
+ * Calculate gradient colors
100
+ */
101
+ calculateGradientColors(dimensions) {
102
+ const gradientMap = {};
103
+ if (this.options.gradientDirection === "diagonal") {
104
+ const maxDist = Math.sqrt(dimensions.width ** 2 + dimensions.height ** 2);
105
+ for (let y = 0; y < dimensions.height; y++) {
106
+ for (let x = 0; x < dimensions.width; x++) {
107
+ const dist = Math.sqrt(x ** 2 + y ** 2);
108
+ const factor = dist / maxDist;
109
+ const key = `${x},${y}`;
110
+ gradientMap[key] = this.interpolateColor(this.options.starColors[this.options.starColors.length - 1], this.options.finalColor, factor);
111
+ }
112
+ }
113
+ }
114
+ else {
115
+ const size = this.options.gradientDirection === "vertical"
116
+ ? dimensions.height
117
+ : dimensions.width;
118
+ const startColor = this.options.starColors[this.options.starColors.length - 1];
119
+ for (let i = 0; i < size; i++) {
120
+ const factor = i / (size - 1);
121
+ gradientMap[i] = this.interpolateColor(startColor, this.options.finalColor, factor);
122
+ }
123
+ }
124
+ return gradientMap;
125
+ }
126
+ /**
127
+ * Get gradient key based on direction
128
+ */
129
+ getGradientKey(pos, _dimensions) {
130
+ if (this.options.gradientDirection === "diagonal") {
131
+ return `${pos.x},${pos.y}`;
132
+ }
133
+ else if (this.options.gradientDirection === "vertical") {
134
+ return pos.y;
135
+ }
136
+ else {
137
+ return pos.x;
138
+ }
139
+ }
140
+ /**
141
+ * Render the next frame
142
+ */
143
+ async render() {
144
+ if (!this.isInitialized) {
145
+ throw new Error("Effect not initialized");
146
+ }
147
+ // Update animation state
148
+ this.updateAnimationState();
149
+ // Create the frame
150
+ const dimensions = this.getCanvasDimensions();
151
+ const frame = Array(dimensions.height)
152
+ .fill("")
153
+ .map(() => Array(dimensions.width).fill(" "));
154
+ // Render characters
155
+ for (const char of this.characters) {
156
+ const key = `${char.originalPosition.x},${char.originalPosition.y}`;
157
+ const state = this.characterStates.get(key);
158
+ if (state) {
159
+ const visual = this.createCharacterVisual(char, state);
160
+ char.visual = visual;
161
+ const x = Math.round(state.position.x);
162
+ const y = Math.round(state.position.y);
163
+ if (y >= 0 && y < dimensions.height && x >= 0 && x < dimensions.width) {
164
+ // Apply ANSI color codes
165
+ const colorCode = this.getColorCode(visual.colors.fg);
166
+ const resetCode = ANSI.reset;
167
+ frame[y][x] = colorCode + visual.symbol + resetCode;
168
+ }
169
+ }
170
+ }
171
+ this.animationFrameCount++;
172
+ // Convert frame to strings
173
+ return frame.map((row) => row.join(""));
174
+ }
175
+ /**
176
+ * Update animation state for all characters
177
+ */
178
+ updateAnimationState() {
179
+ const progress = this.animationFrameCount / this.totalFrames;
180
+ // Update phase transitions
181
+ if (this.currentPhase === "forming" && progress > 0.15) {
182
+ this.currentPhase = "consuming";
183
+ }
184
+ else if (this.currentPhase === "consuming" && progress > 0.5) {
185
+ this.currentPhase = "collapsing";
186
+ }
187
+ else if (this.currentPhase === "collapsing" && progress > 0.6) {
188
+ this.currentPhase = "exploding";
189
+ }
190
+ else if (this.currentPhase === "exploding" && progress > 0.7) {
191
+ this.currentPhase = "settling";
192
+ }
193
+ // Update character positions based on phase
194
+ for (const [_key, state] of this.characterStates) {
195
+ this.updateCharacterPosition(state);
196
+ }
197
+ // Check completion
198
+ this._isEffectComplete = progress >= 1;
199
+ }
200
+ /**
201
+ * Update individual character position
202
+ */
203
+ updateCharacterPosition(state) {
204
+ const frameProgress = this.animationFrameCount / this.totalFrames;
205
+ switch (this.currentPhase) {
206
+ case "forming":
207
+ if (state.isBlackholeRing) {
208
+ // Move to blackhole ring position
209
+ const ringProgress = Math.min(frameProgress / 0.15, 1);
210
+ const angle = (this.blackholeChars.indexOf(this.characters.find(c => this.characterStates.get(`${c.originalPosition.x},${c.originalPosition.y}`) === state)) / this.blackholeChars.length) * Math.PI * 2;
211
+ const targetX = this.blackholeCenter.x + Math.cos(angle) * this.blackholeRadius;
212
+ const targetY = this.blackholeCenter.y + Math.sin(angle) * this.blackholeRadius;
213
+ state.position.x = state.position.x + (targetX - state.position.x) * ringProgress * 0.1;
214
+ state.position.y = state.position.y + (targetY - state.position.y) * ringProgress * 0.1;
215
+ state.phase = "consuming";
216
+ }
217
+ break;
218
+ case "consuming":
219
+ if (state.isBlackholeRing) {
220
+ // Rotate blackhole ring
221
+ const angle = (this.blackholeChars.indexOf(this.characters.find(c => this.characterStates.get(`${c.originalPosition.x},${c.originalPosition.y}`) === state)) / this.blackholeChars.length) * Math.PI * 2 + frameProgress * Math.PI * 2;
222
+ state.position.x = this.blackholeCenter.x + Math.cos(angle) * this.blackholeRadius;
223
+ state.position.y = this.blackholeCenter.y + Math.sin(angle) * this.blackholeRadius;
224
+ }
225
+ else {
226
+ // Spiral into blackhole
227
+ const consumeProgress = (frameProgress - 0.15) / 0.35;
228
+ if (consumeProgress > 0) {
229
+ state.spiralAngle += 0.2;
230
+ state.spiralRadius *= 0.95;
231
+ state.position.x = this.blackholeCenter.x + Math.cos(state.spiralAngle) * state.spiralRadius;
232
+ state.position.y = this.blackholeCenter.y + Math.sin(state.spiralAngle) * state.spiralRadius;
233
+ if (state.spiralRadius < 2) {
234
+ state.phase = "collapsed";
235
+ state.position = { ...this.blackholeCenter };
236
+ }
237
+ }
238
+ }
239
+ break;
240
+ case "collapsing":
241
+ // All characters move to center
242
+ const collapseProgress = (frameProgress - 0.5) / 0.1;
243
+ if (collapseProgress > 0) {
244
+ state.position.x += (this.blackholeCenter.x - state.position.x) * 0.2;
245
+ state.position.y += (this.blackholeCenter.y - state.position.y) * 0.2;
246
+ state.phase = "collapsed";
247
+ }
248
+ break;
249
+ case "exploding":
250
+ // Calculate explosion vector
251
+ if (state.explosionVector.x === 0 && state.explosionVector.y === 0) {
252
+ const angle = Math.atan2(state.targetPosition.y - this.blackholeCenter.y, state.targetPosition.x - this.blackholeCenter.x);
253
+ const distance = this.calculateDistance(state.targetPosition, this.blackholeCenter);
254
+ const speed = Math.min(distance * 0.3, 5);
255
+ state.explosionVector.x = Math.cos(angle) * speed;
256
+ state.explosionVector.y = Math.sin(angle) * speed;
257
+ state.phase = "exploding";
258
+ }
259
+ // Apply explosion movement
260
+ state.position.x += state.explosionVector.x;
261
+ state.position.y += state.explosionVector.y;
262
+ // Dampen explosion
263
+ state.explosionVector.x *= 0.9;
264
+ state.explosionVector.y *= 0.9;
265
+ break;
266
+ case "settling":
267
+ // Settle to final position
268
+ const settleProgress = (frameProgress - 0.7) / 0.3;
269
+ if (settleProgress > 0) {
270
+ state.position.x += (state.targetPosition.x - state.position.x) * 0.1;
271
+ state.position.y += (state.targetPosition.y - state.position.y) * 0.1;
272
+ state.settlingProgress = Math.min(settleProgress, 1);
273
+ if (Math.abs(state.position.x - state.targetPosition.x) < 0.5 &&
274
+ Math.abs(state.position.y - state.targetPosition.y) < 0.5) {
275
+ state.position = { ...state.targetPosition };
276
+ state.phase = "final";
277
+ }
278
+ }
279
+ break;
280
+ }
281
+ }
282
+ /**
283
+ * Create visual representation of a character
284
+ */
285
+ createCharacterVisual(char, state) {
286
+ let symbol = state.starSymbol;
287
+ let color = state.starColor;
288
+ switch (state.phase) {
289
+ case "starfield":
290
+ // Initial starfield state
291
+ break;
292
+ case "consuming":
293
+ if (state.isBlackholeRing) {
294
+ symbol = "*";
295
+ color = this.options.blackholeColor;
296
+ }
297
+ else {
298
+ // Fading as consumed
299
+ const fadeColors = ["808080", "606060", "404040", "202020", "000000"];
300
+ const fadeIndex = Math.min(Math.floor((1 - state.spiralRadius / 50) * fadeColors.length), fadeColors.length - 1);
301
+ color = fadeColors[Math.max(0, fadeIndex)];
302
+ }
303
+ break;
304
+ case "collapsed":
305
+ symbol = "●";
306
+ color = this.options.starColors[Math.floor(Math.random() * this.options.starColors.length)];
307
+ break;
308
+ case "exploding":
309
+ symbol = char.originalSymbol;
310
+ color = this.options.starColors[Math.floor(this.animationFrameCount / 2) % this.options.starColors.length];
311
+ break;
312
+ case "settling":
313
+ case "final":
314
+ symbol = char.originalSymbol;
315
+ // Fade from star color to final color
316
+ const starColor = this.options.starColors[0];
317
+ color = this.interpolateColor(starColor, state.finalColor, state.settlingProgress);
318
+ break;
319
+ }
320
+ return {
321
+ symbol,
322
+ colors: {
323
+ fg: color,
324
+ bg: null,
325
+ },
326
+ };
327
+ }
328
+ /**
329
+ * Calculate distance between two coordinates
330
+ */
331
+ calculateDistance(a, b) {
332
+ return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
333
+ }
334
+ /**
335
+ * Get ANSI color code for a color
336
+ */
337
+ getColorCode(color) {
338
+ if (!color || this.config.noColor) {
339
+ return "";
340
+ }
341
+ // For RGB colors, convert to ANSI 24-bit color
342
+ if (typeof color === "string") {
343
+ const r = parseInt(color.substring(0, 2), 16);
344
+ const g = parseInt(color.substring(2, 4), 16);
345
+ const b = parseInt(color.substring(4, 6), 16);
346
+ return `\x1b[38;2;${r};${g};${b}m`;
347
+ }
348
+ // For XTerm colors
349
+ return `\x1b[38;5;${color}m`;
350
+ }
351
+ /**
352
+ * Interpolate between two colors
353
+ */
354
+ interpolateColor(color1, color2, factor) {
355
+ const r1 = parseInt(color1.substring(0, 2), 16);
356
+ const g1 = parseInt(color1.substring(2, 4), 16);
357
+ const b1 = parseInt(color1.substring(4, 6), 16);
358
+ const r2 = parseInt(color2.substring(0, 2), 16);
359
+ const g2 = parseInt(color2.substring(2, 4), 16);
360
+ const b2 = parseInt(color2.substring(4, 6), 16);
361
+ const r = Math.round(r1 + (r2 - r1) * factor);
362
+ const g = Math.round(g1 + (g2 - g1) * factor);
363
+ const b = Math.round(b1 + (b2 - b1) * factor);
364
+ return [r, g, b]
365
+ .map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
366
+ .join("");
367
+ }
368
+ /**
369
+ * Render fallback for when effects are disabled
370
+ */
371
+ renderFallback() {
372
+ return this.text.split("\n");
373
+ }
374
+ /**
375
+ * Check if effect is complete
376
+ */
377
+ isComplete() {
378
+ return this._isEffectComplete;
379
+ }
380
+ /**
381
+ * Reset the effect
382
+ */
383
+ onReset() {
384
+ this.characterStates.clear();
385
+ this.blackholeChars = [];
386
+ this.consumptionQueue = [];
387
+ this.currentPhase = "forming";
388
+ this.phaseProgress = 0;
389
+ this.animationFrameCount = 0;
390
+ this._isEffectComplete = false;
391
+ this.onInitialize();
392
+ }
393
+ }
394
+ //# sourceMappingURL=blackhole.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blackhole.js","sourceRoot":"","sources":["../../../src/effects/implementations/blackhole.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Burn Effect
3
+ * Characters are ignited and burn up the screen
4
+ */
5
+ import { BaseEffect } from "../types.js";
6
+ /**
7
+ * Configuration options for the Burn effect
8
+ */
9
+ export interface BurnEffectOptions {
10
+ /** Duration in milliseconds */
11
+ duration?: number;
12
+ /** Starting color before burning */
13
+ startingColor?: string;
14
+ /** Colors to transition through while burning */
15
+ burnColors?: string[];
16
+ /** Speed of the burn spread (characters per frame) */
17
+ burnSpeed?: number;
18
+ /** Delay between burn waves */
19
+ burnDelay?: number;
20
+ /** Randomness factor for burn timing */
21
+ burnRandomness?: number;
22
+ }
23
+ /**
24
+ * Burn effect implementation
25
+ */
26
+ export declare class BurnEffect extends BaseEffect {
27
+ readonly name = "Burn";
28
+ readonly description = "Characters are ignited and burn up the screen";
29
+ private options;
30
+ private characterStates;
31
+ private burnFront;
32
+ private animationFrameCount;
33
+ private totalFrames;
34
+ private burnPhaseDuration;
35
+ private _isEffectComplete;
36
+ constructor(options?: BurnEffectOptions);
37
+ /**
38
+ * Initialize the effect
39
+ */
40
+ protected onInitialize(): void;
41
+ /**
42
+ * Render the next frame
43
+ */
44
+ render(): Promise<string[]>;
45
+ /**
46
+ * Update burn state for all characters
47
+ */
48
+ private updateBurnState;
49
+ /**
50
+ * Create visual representation of a character
51
+ */
52
+ private createCharacterVisual;
53
+ /**
54
+ * Get ANSI color code for a color
55
+ */
56
+ private getColorCode;
57
+ /**
58
+ * Interpolate between two colors
59
+ */
60
+ private interpolateColor;
61
+ /**
62
+ * Render fallback for when effects are disabled
63
+ */
64
+ renderFallback(): string[];
65
+ /**
66
+ * Check if effect is complete
67
+ */
68
+ isComplete(): boolean;
69
+ /**
70
+ * Reset the effect
71
+ */
72
+ protected onReset(): void;
73
+ }
74
+ //# sourceMappingURL=burn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"burn.d.ts","sourceRoot":"","sources":["../../../src/effects/implementations/burn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAIX,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAYD;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,mDAAmD;IAEvE,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,iBAAiB,CAAkB;gBAE/B,OAAO,GAAE,iBAAsB;IAa3C;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IA0B9B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAuCjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAuDvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4D7B;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;CAO1B"}