@kya-os/cli 1.0.0 → 1.1.0

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 (60) hide show
  1. package/dist/effects/cli-integration.js +8 -8
  2. package/dist/effects/cli-integration.js.map +1 -1
  3. package/dist/effects/config.d.ts +10 -86
  4. package/dist/effects/config.d.ts.map +1 -1
  5. package/dist/effects/config.js +18 -201
  6. package/dist/effects/config.js.map +1 -1
  7. package/dist/index.js +1 -1
  8. package/package.json +2 -1
  9. package/dist/effects/animation-engine.d.ts +0 -173
  10. package/dist/effects/animation-engine.d.ts.map +0 -1
  11. package/dist/effects/animation-engine.js +0 -254
  12. package/dist/effects/animation-engine.js.map +0 -1
  13. package/dist/effects/effect-runner.d.ts +0 -69
  14. package/dist/effects/effect-runner.d.ts.map +0 -1
  15. package/dist/effects/effect-runner.js +0 -255
  16. package/dist/effects/effect-runner.js.map +0 -1
  17. package/dist/effects/gradient.d.ts +0 -131
  18. package/dist/effects/gradient.d.ts.map +0 -1
  19. package/dist/effects/gradient.js +0 -236
  20. package/dist/effects/gradient.js.map +0 -1
  21. package/dist/effects/implementations/beams.d.ts +0 -80
  22. package/dist/effects/implementations/beams.d.ts.map +0 -1
  23. package/dist/effects/implementations/beams.js +0 -221
  24. package/dist/effects/implementations/beams.js.map +0 -1
  25. package/dist/effects/implementations/blackhole.d.ts +0 -98
  26. package/dist/effects/implementations/blackhole.d.ts.map +0 -1
  27. package/dist/effects/implementations/blackhole.js +0 -421
  28. package/dist/effects/implementations/blackhole.js.map +0 -1
  29. package/dist/effects/implementations/burn.d.ts +0 -74
  30. package/dist/effects/implementations/burn.d.ts.map +0 -1
  31. package/dist/effects/implementations/burn.js +0 -234
  32. package/dist/effects/implementations/burn.js.map +0 -1
  33. package/dist/effects/implementations/decrypt.d.ts +0 -115
  34. package/dist/effects/implementations/decrypt.d.ts.map +0 -1
  35. package/dist/effects/implementations/decrypt.js +0 -394
  36. package/dist/effects/implementations/decrypt.js.map +0 -1
  37. package/dist/effects/implementations/waves.d.ts +0 -78
  38. package/dist/effects/implementations/waves.d.ts.map +0 -1
  39. package/dist/effects/implementations/waves.js +0 -278
  40. package/dist/effects/implementations/waves.js.map +0 -1
  41. package/dist/effects/index.d.ts +0 -34
  42. package/dist/effects/index.d.ts.map +0 -1
  43. package/dist/effects/index.js +0 -114
  44. package/dist/effects/index.js.map +0 -1
  45. package/dist/effects/motion-engine.d.ts +0 -168
  46. package/dist/effects/motion-engine.d.ts.map +0 -1
  47. package/dist/effects/motion-engine.js +0 -353
  48. package/dist/effects/motion-engine.js.map +0 -1
  49. package/dist/effects/safe-executor.d.ts +0 -55
  50. package/dist/effects/safe-executor.d.ts.map +0 -1
  51. package/dist/effects/safe-executor.js +0 -210
  52. package/dist/effects/safe-executor.js.map +0 -1
  53. package/dist/effects/types.d.ts +0 -199
  54. package/dist/effects/types.d.ts.map +0 -1
  55. package/dist/effects/types.js +0 -80
  56. package/dist/effects/types.js.map +0 -1
  57. package/dist/effects/utils.d.ts +0 -104
  58. package/dist/effects/utils.d.ts.map +0 -1
  59. package/dist/effects/utils.js +0 -280
  60. package/dist/effects/utils.js.map +0 -1
@@ -1,221 +0,0 @@
1
- /**
2
- * Beams Effect
3
- * Creates beams which travel over the canvas illuminating the characters
4
- */
5
- import { BaseEffect } from "../types.js";
6
- import { ANSI, easeInOutSine } from "../utils.js";
7
- /**
8
- * Beams effect implementation
9
- */
10
- export class BeamsEffect extends BaseEffect {
11
- constructor(options = {}) {
12
- super();
13
- this.name = "Beams";
14
- this.description = "Creates beams which travel over the canvas illuminating the characters";
15
- this.beams = [];
16
- this.animationFrameCount = 0;
17
- this.totalFrames = 0;
18
- this.nextBeamId = 0;
19
- this.lastBeamSpawn = 0;
20
- this._isEffectComplete = false;
21
- this.options = {
22
- duration: 5000,
23
- beamCount: 8,
24
- beamWidth: 5,
25
- beamSpeedRange: [1.0, 3.0],
26
- beamColors: ["ffffff", "00D1FF", "8A008A"],
27
- illuminationBrightness: 2.0,
28
- baseColor: "202020",
29
- ...options,
30
- };
31
- }
32
- /**
33
- * Initialize the effect
34
- */
35
- onInitialize() {
36
- this.totalFrames = Math.floor((this.options.duration / 1000) * this.config.frameRate);
37
- this.beams = [];
38
- this.animationFrameCount = 0;
39
- this.nextBeamId = 0;
40
- this.lastBeamSpawn = 0;
41
- this._isEffectComplete = false;
42
- // Set base color for all characters
43
- for (const char of this.characters) {
44
- char.visual.colors.fg = this.options.baseColor;
45
- }
46
- }
47
- /**
48
- * Render the next frame
49
- */
50
- async render() {
51
- if (!this.isInitialized) {
52
- throw new Error("Effect not initialized");
53
- }
54
- // Update beams
55
- this.updateBeams();
56
- // Render text with beam effects line by line
57
- const lines = this.text.split("\n");
58
- const renderedLines = [];
59
- for (let y = 0; y < lines.length; y++) {
60
- let line = "";
61
- const chars = [...lines[y]];
62
- for (let x = 0; x < chars.length; x++) {
63
- const char = chars[x];
64
- let color = this.options.baseColor;
65
- // Check if character is illuminated by any beam
66
- for (const beam of this.beams) {
67
- if (!beam.active)
68
- continue;
69
- const distance = beam.direction === "horizontal"
70
- ? Math.abs(y - beam.position.y)
71
- : Math.abs(x - beam.position.x);
72
- if (distance <= beam.width) {
73
- const intensity = 1 - distance / beam.width;
74
- const easedIntensity = easeInOutSine(intensity);
75
- const beamColor = this.getBeamColor(beam);
76
- color = this.applyIllumination(color, beamColor, easedIntensity);
77
- }
78
- }
79
- const colorCode = this.getColorCode(color);
80
- const resetCode = ANSI.reset;
81
- line += colorCode + char + resetCode;
82
- }
83
- renderedLines.push(line);
84
- }
85
- this.animationFrameCount++;
86
- return renderedLines;
87
- }
88
- /**
89
- * Update beam positions and states
90
- */
91
- updateBeams() {
92
- const dimensions = this.getCanvasDimensions();
93
- const spawnInterval = Math.floor(this.totalFrames / (this.options.beamCount * 3));
94
- // Spawn new beams more frequently
95
- if (this.beams.filter(b => b.active).length < this.options.beamCount &&
96
- this.animationFrameCount - this.lastBeamSpawn > spawnInterval &&
97
- this.animationFrameCount < this.totalFrames * 0.8) {
98
- this.spawnBeam();
99
- this.lastBeamSpawn = this.animationFrameCount;
100
- }
101
- // Update existing beams
102
- for (const beam of this.beams) {
103
- if (!beam.active)
104
- continue;
105
- // Update position based on direction
106
- if (beam.direction === "horizontal") {
107
- beam.position.x += beam.speed;
108
- // Deactivate if off screen
109
- if (beam.position.x > dimensions.width + beam.width) {
110
- beam.active = false;
111
- }
112
- }
113
- else {
114
- beam.position.y += beam.speed;
115
- // Deactivate if off screen
116
- if (beam.position.y > dimensions.height + beam.width) {
117
- beam.active = false;
118
- }
119
- }
120
- }
121
- // Check if effect is complete
122
- const activeBeams = this.beams.filter((b) => b.active).length;
123
- this._isEffectComplete =
124
- activeBeams === 0 && this.animationFrameCount >= this.totalFrames * 0.8;
125
- }
126
- /**
127
- * Spawn a new beam
128
- */
129
- spawnBeam() {
130
- const dimensions = this.getCanvasDimensions();
131
- const isHorizontal = Math.random() > 0.5;
132
- const beam = {
133
- id: this.nextBeamId++,
134
- position: {
135
- x: isHorizontal
136
- ? -this.options.beamWidth
137
- : Math.random() * dimensions.width,
138
- y: isHorizontal
139
- ? Math.random() * dimensions.height
140
- : -this.options.beamWidth,
141
- },
142
- direction: isHorizontal ? "horizontal" : "vertical",
143
- speed: this.options.beamSpeedRange[0] +
144
- Math.random() *
145
- (this.options.beamSpeedRange[1] - this.options.beamSpeedRange[0]),
146
- width: this.options.beamWidth,
147
- progress: 0,
148
- active: true,
149
- };
150
- this.beams.push(beam);
151
- }
152
- /**
153
- * Get beam color based on its properties
154
- */
155
- getBeamColor(beam) {
156
- // Cycle through colors based on beam ID
157
- const colorIndex = beam.id % this.options.beamColors.length;
158
- return this.options.beamColors[colorIndex];
159
- }
160
- /**
161
- * Apply illumination to a base color
162
- */
163
- applyIllumination(baseColor, beamColor, intensity) {
164
- // Parse colors
165
- const baseR = parseInt(baseColor.substring(0, 2), 16);
166
- const baseG = parseInt(baseColor.substring(2, 4), 16);
167
- const baseB = parseInt(baseColor.substring(4, 6), 16);
168
- const beamR = parseInt(beamColor.substring(0, 2), 16);
169
- const beamG = parseInt(beamColor.substring(2, 4), 16);
170
- const beamB = parseInt(beamColor.substring(4, 6), 16);
171
- // Apply illumination with brightness multiplier
172
- const brightness = 1 + (this.options.illuminationBrightness - 1) * intensity;
173
- const r = Math.min(255, Math.round(baseR + (beamR - baseR) * intensity * brightness));
174
- const g = Math.min(255, Math.round(baseG + (beamG - baseG) * intensity * brightness));
175
- const b = Math.min(255, Math.round(baseB + (beamB - baseB) * intensity * brightness));
176
- return [r, g, b]
177
- .map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
178
- .join("");
179
- }
180
- /**
181
- * Get ANSI color code for a color
182
- */
183
- getColorCode(color) {
184
- if (!color || this.config.noColor) {
185
- return "";
186
- }
187
- // For RGB colors, convert to ANSI 24-bit color
188
- if (typeof color === "string") {
189
- const r = parseInt(color.substring(0, 2), 16);
190
- const g = parseInt(color.substring(2, 4), 16);
191
- const b = parseInt(color.substring(4, 6), 16);
192
- return `\x1b[38;2;${r};${g};${b}m`;
193
- }
194
- // For XTerm colors
195
- return `\x1b[38;5;${color}m`;
196
- }
197
- /**
198
- * Render fallback for when effects are disabled
199
- */
200
- renderFallback() {
201
- return this.text.split("\n");
202
- }
203
- /**
204
- * Check if effect is complete
205
- */
206
- isComplete() {
207
- return this._isEffectComplete;
208
- }
209
- /**
210
- * Reset the effect
211
- */
212
- onReset() {
213
- this.beams = [];
214
- this.animationFrameCount = 0;
215
- this.nextBeamId = 0;
216
- this.lastBeamSpawn = 0;
217
- this._isEffectComplete = false;
218
- this.onInitialize();
219
- }
220
- }
221
- //# sourceMappingURL=beams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"beams.js","sourceRoot":"","sources":["../../../src/effects/implementations/beams.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmClD;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU;IAazC,YAAY,UAA8B,EAAE;QAC1C,KAAK,EAAE,CAAC;QAbD,SAAI,GAAG,OAAO,CAAC;QACf,gBAAW,GAClB,wEAAwE,CAAC;QAGnE,UAAK,GAAW,EAAE,CAAC;QACnB,wBAAmB,GAAW,CAAC,CAAC;QAChC,gBAAW,GAAW,CAAC,CAAC;QACxB,eAAU,GAAW,CAAC,CAAC;QACvB,kBAAa,GAAW,CAAC,CAAC;QAC1B,sBAAiB,GAAY,KAAK,CAAC;QAIzC,IAAI,CAAC,OAAO,GAAG;YACb,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YAC1B,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAC1C,sBAAsB,EAAE,GAAG;YAC3B,SAAS,EAAE,QAAQ;YACnB,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,YAAY;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAC3B,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CACvD,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,oCAAoC;QACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,eAAe;QACf,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,6CAA6C;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,aAAa,GAAa,EAAE,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gBAEnC,gDAAgD;gBAChD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAE,SAAS;oBAE3B,MAAM,QAAQ,GACZ,IAAI,CAAC,SAAS,KAAK,YAAY;wBAC7B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAEpC,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC3B,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;wBAC5C,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;wBAChD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBAC1C,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC7B,IAAI,IAAI,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;YACvC,CAAC;YAED,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC9B,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAChD,CAAC;QAEF,kCAAkC;QAClC,IACE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;YAChE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,GAAG,aAAa;YAC7D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,EACjD,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAChD,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,SAAS;YAE3B,qCAAqC;YACrC,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;gBAE9B,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;gBAE9B,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QAC9D,IAAI,CAAC,iBAAiB;YACpB,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IAC5E,CAAC;IAED;;OAEG;IACK,SAAS;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;QAEzC,MAAM,IAAI,GAAS;YACjB,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE;YACrB,QAAQ,EAAE;gBACR,CAAC,EAAE,YAAY;oBACb,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;oBACzB,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK;gBACpC,CAAC,EAAE,YAAY;oBACb,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM;oBACnC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;aAC5B;YACD,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;YACnD,KAAK,EACH,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,MAAM,EAAE;oBACX,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACrE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YAC7B,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAU;QAC7B,wCAAwC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,SAAiB,EACjB,SAAiB,EACjB,SAAiB;QAEjB,eAAe;QACf,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtD,gDAAgD;QAChD,MAAM,UAAU,GACd,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QAE5D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAChB,GAAG,EACH,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,CAC7D,CAAC;QACF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAChB,GAAG,EACH,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,CAC7D,CAAC;QACF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAChB,GAAG,EACH,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,CAC7D,CAAC;QAEF,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACb,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACvE,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAY;QAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,+CAA+C;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACrC,CAAC;QAED,mBAAmB;QACnB,OAAO,aAAa,KAAK,GAAG,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;OAEG;IACO,OAAO;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
@@ -1,98 +0,0 @@
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
@@ -1 +0,0 @@
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;AAyBD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,kEAC6C;IAEjE,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,CAKO;IAE3B,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,CAO9B;gBAEU,OAAO,GAAE,sBAA2B;IAchD;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAsF9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwC/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAyCjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwI/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkE7B;;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"}