@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,234 +0,0 @@
1
- /**
2
- * Burn Effect
3
- * Characters are ignited and burn up the screen
4
- */
5
- import { BaseEffect, } from "../types.js";
6
- import { ANSI } from "../utils.js";
7
- /**
8
- * Burn effect implementation
9
- */
10
- export class BurnEffect extends BaseEffect {
11
- constructor(options = {}) {
12
- super();
13
- this.name = "Burn";
14
- this.description = "Characters are ignited and burn up the screen";
15
- this.characterStates = new Map();
16
- this.burnFront = -1; // Current row being burned
17
- this.animationFrameCount = 0;
18
- this.totalFrames = 0;
19
- this.burnPhaseDuration = 10;
20
- this._isEffectComplete = false;
21
- this.options = {
22
- duration: 3000,
23
- startingColor: "837373",
24
- burnColors: ["ffffff", "fff75d", "fe650d", "8A003C", "510100"],
25
- burnSpeed: 2,
26
- burnDelay: 3,
27
- burnRandomness: 0.3,
28
- ...options,
29
- };
30
- }
31
- /**
32
- * Initialize the effect
33
- */
34
- onInitialize() {
35
- const dimensions = this.getCanvasDimensions();
36
- this.totalFrames = Math.floor((this.options.duration / 1000) * this.config.frameRate);
37
- this.burnPhaseDuration = Math.floor(this.totalFrames / (dimensions.height + 10));
38
- // Initialize character states
39
- this.characterStates.clear();
40
- for (const char of this.characters) {
41
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
42
- this.characterStates.set(key, {
43
- burnStartTime: -1,
44
- burnPhase: 0,
45
- isBurning: false,
46
- fadeProgress: 0,
47
- });
48
- }
49
- this.burnFront = -1;
50
- this.animationFrameCount = 0;
51
- this._isEffectComplete = false;
52
- }
53
- /**
54
- * Render the next frame
55
- */
56
- async render() {
57
- if (!this.isInitialized) {
58
- throw new Error("Effect not initialized");
59
- }
60
- // Update burn state
61
- this.updateBurnState();
62
- // Create the frame
63
- const dimensions = this.getCanvasDimensions();
64
- const frame = Array(dimensions.height)
65
- .fill("")
66
- .map(() => Array(dimensions.width).fill(" "));
67
- // Render characters
68
- for (const char of this.characters) {
69
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
70
- const state = this.characterStates.get(key);
71
- if (state) {
72
- const visual = this.createCharacterVisual(char, state);
73
- char.visual = visual;
74
- const { x, y } = char.currentPosition;
75
- if (y >= 0 && y < dimensions.height && x >= 0 && x < dimensions.width) {
76
- // Apply ANSI color codes
77
- const colorCode = this.getColorCode(visual.colors.fg);
78
- const resetCode = ANSI.reset;
79
- frame[y][x] = colorCode + visual.symbol + resetCode;
80
- }
81
- }
82
- }
83
- this.animationFrameCount++;
84
- // Convert frame to strings
85
- return frame.map((row) => row.join(""));
86
- }
87
- /**
88
- * Update burn state for all characters
89
- */
90
- updateBurnState() {
91
- const dimensions = this.getCanvasDimensions();
92
- // Update burn front
93
- if (this.animationFrameCount % this.options.burnDelay === 0) {
94
- this.burnFront++;
95
- }
96
- // Update character states
97
- let allBurned = true;
98
- for (const char of this.characters) {
99
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
100
- const state = this.characterStates.get(key);
101
- if (!state)
102
- continue;
103
- // Check if character should start burning
104
- if (!state.isBurning &&
105
- char.originalPosition.y >= dimensions.height - this.burnFront - 1) {
106
- const randomDelay = Math.random() * this.options.burnRandomness;
107
- if (randomDelay < 0.5) {
108
- state.isBurning = true;
109
- state.burnStartTime = this.animationFrameCount;
110
- }
111
- }
112
- // Update burning characters
113
- if (state.isBurning) {
114
- const burnTime = this.animationFrameCount - state.burnStartTime;
115
- const phase = Math.min(Math.floor(burnTime / this.burnPhaseDuration), 6);
116
- state.burnPhase = phase;
117
- if (phase >= 6) {
118
- state.fadeProgress = Math.min((burnTime - 6 * this.burnPhaseDuration) /
119
- (this.burnPhaseDuration * 2), 1);
120
- }
121
- }
122
- if (state.burnPhase < 6) {
123
- allBurned = false;
124
- }
125
- }
126
- this._isEffectComplete =
127
- allBurned || this.animationFrameCount >= this.totalFrames;
128
- }
129
- /**
130
- * Create visual representation of a character
131
- */
132
- createCharacterVisual(char, state) {
133
- let color;
134
- if (!state.isBurning) {
135
- // Not burning yet - use starting color
136
- color = this.options.startingColor;
137
- }
138
- else if (state.burnPhase === 0) {
139
- // Just started burning - still starting color
140
- color = this.options.startingColor;
141
- }
142
- else if (state.burnPhase < 6) {
143
- // Burning - use burn colors
144
- const colorIndex = Math.min(state.burnPhase - 1, this.options.burnColors.length - 1);
145
- color = this.options.burnColors[colorIndex];
146
- }
147
- else {
148
- // Burned out - fade from last burn color to transparent/final
149
- const lastBurnColor = this.options.burnColors[this.options.burnColors.length - 1];
150
- if (state.fadeProgress < 0.5) {
151
- // Fade to dark
152
- color = this.interpolateColor(lastBurnColor, "000000", state.fadeProgress * 2);
153
- }
154
- else {
155
- // Character disappears
156
- color = "000000";
157
- }
158
- }
159
- // Apply some flickering to burning characters
160
- let finalColor = color;
161
- if (state.burnPhase > 0 && state.burnPhase < 5 && Math.random() < 0.3) {
162
- // Flicker between current and next color
163
- const nextIndex = Math.min(state.burnPhase, this.options.burnColors.length - 1);
164
- const nextColor = this.options.burnColors[nextIndex];
165
- finalColor = this.interpolateColor(color, nextColor, 0.5);
166
- }
167
- return {
168
- symbol: state.burnPhase >= 6 && state.fadeProgress > 0.7
169
- ? " "
170
- : char.originalSymbol,
171
- colors: {
172
- fg: finalColor,
173
- bg: null,
174
- },
175
- };
176
- }
177
- /**
178
- * Get ANSI color code for a color
179
- */
180
- getColorCode(color) {
181
- if (!color || this.config.noColor) {
182
- return "";
183
- }
184
- // For RGB colors, convert to ANSI 24-bit color
185
- if (typeof color === "string") {
186
- const r = parseInt(color.substring(0, 2), 16);
187
- const g = parseInt(color.substring(2, 4), 16);
188
- const b = parseInt(color.substring(4, 6), 16);
189
- return `\x1b[38;2;${r};${g};${b}m`;
190
- }
191
- // For XTerm colors
192
- return `\x1b[38;5;${color}m`;
193
- }
194
- /**
195
- * Interpolate between two colors
196
- */
197
- interpolateColor(color1, color2, factor) {
198
- const r1 = parseInt(color1.substring(0, 2), 16);
199
- const g1 = parseInt(color1.substring(2, 4), 16);
200
- const b1 = parseInt(color1.substring(4, 6), 16);
201
- const r2 = parseInt(color2.substring(0, 2), 16);
202
- const g2 = parseInt(color2.substring(2, 4), 16);
203
- const b2 = parseInt(color2.substring(4, 6), 16);
204
- const r = Math.round(r1 + (r2 - r1) * factor);
205
- const g = Math.round(g1 + (g2 - g1) * factor);
206
- const b = Math.round(b1 + (b2 - b1) * factor);
207
- return [r, g, b]
208
- .map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
209
- .join("");
210
- }
211
- /**
212
- * Render fallback for when effects are disabled
213
- */
214
- renderFallback() {
215
- return this.text.split("\n");
216
- }
217
- /**
218
- * Check if effect is complete
219
- */
220
- isComplete() {
221
- return this._isEffectComplete;
222
- }
223
- /**
224
- * Reset the effect
225
- */
226
- onReset() {
227
- this.characterStates.clear();
228
- this.burnFront = -1;
229
- this.animationFrameCount = 0;
230
- this._isEffectComplete = false;
231
- this.onInitialize();
232
- }
233
- }
234
- //# sourceMappingURL=burn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"burn.js","sourceRoot":"","sources":["../../../src/effects/implementations/burn.ts"],"names":[],"mappings":"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"}
@@ -1,115 +0,0 @@
1
- /**
2
- * Decrypt Effect
3
- * Movie-style text decryption effect with typing animation
4
- */
5
- import { BaseEffect } from "../types.js";
6
- /**
7
- * Configuration options for the Decrypt effect
8
- */
9
- export interface DecryptEffectOptions {
10
- /** Duration in milliseconds */
11
- duration?: number;
12
- /** Number of characters typed per keystroke */
13
- typingSpeed?: number;
14
- /** Colors for the ciphertext (randomly selected per character) */
15
- ciphertextColors?: string[];
16
- /** Final color for decrypted text */
17
- finalColor?: string;
18
- /** Use gradient for final color */
19
- useGradient?: boolean;
20
- /** Gradient direction (vertical or horizontal) */
21
- gradientDirection?: "vertical" | "horizontal";
22
- /** Typing probability per frame (0-1) */
23
- typingProbability?: number;
24
- /** Fast reveal mode - complete animation in first portion of duration */
25
- fastReveal?: boolean;
26
- /** Percentage of duration to complete animation (0-1) when fastReveal is true */
27
- revealCompletionRatio?: number;
28
- }
29
- /**
30
- * Decrypt effect implementation
31
- */
32
- export declare class DecryptEffect extends BaseEffect {
33
- readonly name = "Decrypt";
34
- readonly description = "Movie-style text decryption effect with typing animation";
35
- private options;
36
- private characterStates;
37
- private animationFrameCount;
38
- private totalFrames;
39
- private typingQueue;
40
- private activeTypingChars;
41
- private decryptingChars;
42
- private _isEffectComplete;
43
- private readonly encryptedSymbols;
44
- private readonly typingSymbols;
45
- constructor(options?: DecryptEffectOptions);
46
- /**
47
- * Initialize the pool of encrypted symbols
48
- */
49
- private initializeEncryptedSymbols;
50
- /**
51
- * Initialize the effect
52
- */
53
- protected onInitialize(): void;
54
- /**
55
- * Calculate gradient colors based on dimensions
56
- */
57
- private calculateGradientColors;
58
- /**
59
- * Render the next frame
60
- */
61
- render(): Promise<string[]>;
62
- /**
63
- * Update animation state for all characters
64
- */
65
- private updateAnimationState;
66
- /**
67
- * Update typing phase animation
68
- */
69
- private updateTypingPhase;
70
- /**
71
- * Update decryption phase animation
72
- */
73
- private updateDecryptionPhase;
74
- /**
75
- * Create visual representation of a character
76
- */
77
- private createCharacterVisual;
78
- /**
79
- * Get a random ciphertext color
80
- */
81
- private getRandomCiphertextColor;
82
- /**
83
- * Get a random encrypted symbol
84
- */
85
- private getRandomEncryptedSymbol;
86
- /**
87
- * Check if the effect is complete
88
- */
89
- private checkCompletion;
90
- /**
91
- * Shuffle array in place
92
- */
93
- private shuffleArray;
94
- /**
95
- * Get ANSI color code for a color
96
- */
97
- private getColorCode;
98
- /**
99
- * Interpolate between two colors
100
- */
101
- private interpolateColor;
102
- /**
103
- * Render fallback for when effects are disabled
104
- */
105
- renderFallback(): string[];
106
- /**
107
- * Check if effect is complete
108
- */
109
- isComplete(): boolean;
110
- /**
111
- * Reset the effect
112
- */
113
- protected onReset(): void;
114
- }
115
- //# sourceMappingURL=decrypt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decrypt.d.ts","sourceRoot":"","sources":["../../../src/effects/implementations/decrypt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAKX,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAC9C,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAiBD;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,8DAA8D;IAElF,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,eAAe,CAAiD;IACxE,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;gBAE1C,OAAO,GAAE,oBAAyB;IAiB9C;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IA8C9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAuCjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+D7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwC7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAMhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;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;CAS1B"}