@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,394 +0,0 @@
1
- /**
2
- * Decrypt Effect
3
- * Movie-style text decryption effect with typing animation
4
- */
5
- import { BaseEffect, } from "../types.js";
6
- import { ANSI } from "../utils.js";
7
- /**
8
- * Decrypt effect implementation
9
- */
10
- export class DecryptEffect extends BaseEffect {
11
- constructor(options = {}) {
12
- super();
13
- this.name = "Decrypt";
14
- this.description = "Movie-style text decryption effect with typing animation";
15
- this.characterStates = new Map();
16
- this.animationFrameCount = 0;
17
- this.totalFrames = 0;
18
- this.typingQueue = [];
19
- this.activeTypingChars = new Set();
20
- this.decryptingChars = new Set();
21
- this._isEffectComplete = false;
22
- // Character sets for encryption
23
- this.encryptedSymbols = [];
24
- this.typingSymbols = ["▉", "▓", "▒", "░"];
25
- this.options = {
26
- duration: 5000,
27
- typingSpeed: 1,
28
- ciphertextColors: ["008000", "00cb00", "00ff00"],
29
- finalColor: "eda000",
30
- useGradient: true,
31
- gradientDirection: "vertical",
32
- typingProbability: 0.75,
33
- fastReveal: false,
34
- revealCompletionRatio: 0.3,
35
- ...options,
36
- };
37
- this.initializeEncryptedSymbols();
38
- }
39
- /**
40
- * Initialize the pool of encrypted symbols
41
- */
42
- initializeEncryptedSymbols() {
43
- // Keyboard characters
44
- for (let i = 33; i < 127; i++) {
45
- this.encryptedSymbols.push(String.fromCharCode(i));
46
- }
47
- // Box drawing characters
48
- for (let i = 9472; i < 9599; i++) {
49
- this.encryptedSymbols.push(String.fromCharCode(i));
50
- }
51
- // Block characters
52
- for (let i = 9608; i < 9632; i++) {
53
- this.encryptedSymbols.push(String.fromCharCode(i));
54
- }
55
- // Misc symbols
56
- for (let i = 174; i < 452; i++) {
57
- this.encryptedSymbols.push(String.fromCharCode(i));
58
- }
59
- }
60
- /**
61
- * Initialize the effect
62
- */
63
- onInitialize() {
64
- this.totalFrames = Math.floor((this.options.duration / 1000) * this.config.frameRate);
65
- // Initialize character states
66
- this.characterStates.clear();
67
- this.typingQueue = [...this.characters];
68
- this.activeTypingChars.clear();
69
- this.decryptingChars.clear();
70
- // Shuffle typing queue for random order
71
- this.shuffleArray(this.typingQueue);
72
- // Calculate final colors for gradient effect
73
- const dimensions = this.getCanvasDimensions();
74
- const gradientColors = this.calculateGradientColors(dimensions);
75
- for (const char of this.characters) {
76
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
77
- let finalColor = this.options.finalColor;
78
- if (this.options.useGradient) {
79
- const gradientKey = this.options.gradientDirection === "vertical"
80
- ? char.originalPosition.y
81
- : char.originalPosition.x;
82
- finalColor = gradientColors[gradientKey] || this.options.finalColor;
83
- }
84
- this.characterStates.set(key, {
85
- phase: "hidden",
86
- typingFrame: 0,
87
- decryptStartTime: -1,
88
- currentSymbol: char.originalSymbol,
89
- currentColor: this.getRandomCiphertextColor(),
90
- finalColor,
91
- decryptSpeed: Math.floor(Math.random() * 3) + 2,
92
- decryptChangesRemaining: Math.floor(Math.random() * 15) + 80,
93
- discoveryFrame: 0,
94
- });
95
- }
96
- this.animationFrameCount = 0;
97
- this._isEffectComplete = false;
98
- }
99
- /**
100
- * Calculate gradient colors based on dimensions
101
- */
102
- calculateGradientColors(dimensions) {
103
- const gradientMap = {};
104
- const size = this.options.gradientDirection === "vertical"
105
- ? dimensions.height
106
- : dimensions.width;
107
- // Simple linear gradient from ciphertext color to final color
108
- const startColor = this.options.ciphertextColors[this.options.ciphertextColors.length - 1];
109
- for (let i = 0; i < size; i++) {
110
- const factor = i / (size - 1);
111
- gradientMap[i] = this.interpolateColor(startColor, this.options.finalColor, factor);
112
- }
113
- return gradientMap;
114
- }
115
- /**
116
- * Render the next frame
117
- */
118
- async render() {
119
- if (!this.isInitialized) {
120
- throw new Error("Effect not initialized");
121
- }
122
- // Update animation state
123
- this.updateAnimationState();
124
- // Create the frame
125
- const dimensions = this.getCanvasDimensions();
126
- const frame = Array(dimensions.height)
127
- .fill("")
128
- .map(() => Array(dimensions.width).fill(" "));
129
- // Render characters
130
- for (const char of this.characters) {
131
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
132
- const state = this.characterStates.get(key);
133
- if (state && state.phase !== "hidden") {
134
- const visual = this.createCharacterVisual(char, state);
135
- char.visual = visual;
136
- const { x, y } = char.currentPosition;
137
- if (y >= 0 && y < dimensions.height && x >= 0 && x < dimensions.width) {
138
- // Apply ANSI color codes
139
- const colorCode = this.getColorCode(visual.colors.fg);
140
- const resetCode = ANSI.reset;
141
- frame[y][x] = colorCode + visual.symbol + resetCode;
142
- }
143
- }
144
- }
145
- this.animationFrameCount++;
146
- // Convert frame to strings
147
- return frame.map((row) => row.join(""));
148
- }
149
- /**
150
- * Update animation state for all characters
151
- */
152
- updateAnimationState() {
153
- // Phase 1: Typing animation
154
- if (this.typingQueue.length > 0 || this.activeTypingChars.size > 0) {
155
- this.updateTypingPhase();
156
- }
157
- else if (this.decryptingChars.size === 0) {
158
- // Transition to decryption phase
159
- for (const char of this.characters) {
160
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
161
- const state = this.characterStates.get(key);
162
- if (state) {
163
- state.phase = "fast_decrypt";
164
- state.decryptStartTime = this.animationFrameCount;
165
- this.decryptingChars.add(key);
166
- }
167
- }
168
- }
169
- // Phase 2: Decryption animation
170
- if (this.decryptingChars.size > 0) {
171
- this.updateDecryptionPhase();
172
- }
173
- // Check if effect is complete
174
- this._isEffectComplete = this.checkCompletion();
175
- }
176
- /**
177
- * Update typing phase animation
178
- */
179
- updateTypingPhase() {
180
- // Start typing new characters
181
- if (this.typingQueue.length > 0 && Math.random() < this.options.typingProbability) {
182
- for (let i = 0; i < this.options.typingSpeed && this.typingQueue.length > 0; i++) {
183
- const char = this.typingQueue.shift();
184
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
185
- const state = this.characterStates.get(key);
186
- if (state) {
187
- state.phase = "typing";
188
- state.typingFrame = 0;
189
- this.activeTypingChars.add(key);
190
- }
191
- }
192
- }
193
- // Update active typing characters
194
- for (const key of this.activeTypingChars) {
195
- const state = this.characterStates.get(key);
196
- if (state) {
197
- state.typingFrame++;
198
- // Complete typing animation after showing all typing symbols
199
- if (state.typingFrame > this.typingSymbols.length * 2 + 4) {
200
- state.phase = "fast_decrypt";
201
- this.activeTypingChars.delete(key);
202
- }
203
- }
204
- }
205
- }
206
- /**
207
- * Update decryption phase animation
208
- */
209
- updateDecryptionPhase() {
210
- const completedKeys = [];
211
- for (const key of this.decryptingChars) {
212
- const state = this.characterStates.get(key);
213
- if (!state)
214
- continue;
215
- const framesSinceStart = this.animationFrameCount - state.decryptStartTime;
216
- if (state.phase === "fast_decrypt") {
217
- // Fast decrypt phase - rapid symbol changes
218
- if (framesSinceStart % 3 === 0) {
219
- state.currentSymbol = this.getRandomEncryptedSymbol();
220
- state.decryptChangesRemaining--;
221
- }
222
- // Transition to slow decrypt after initial burst
223
- if (state.decryptChangesRemaining <= 15) {
224
- state.phase = "slow_decrypt";
225
- state.decryptSpeed = Math.floor(Math.random() * 50) + 25;
226
- }
227
- }
228
- else if (state.phase === "slow_decrypt") {
229
- // Slow decrypt phase - less frequent changes
230
- if (framesSinceStart % state.decryptSpeed === 0) {
231
- state.currentSymbol = this.getRandomEncryptedSymbol();
232
- state.decryptChangesRemaining--;
233
- // 30% chance of extra long duration
234
- if (Math.random() < 0.3) {
235
- state.decryptSpeed = Math.floor(Math.random() * 75) + 50;
236
- }
237
- else {
238
- state.decryptSpeed = Math.floor(Math.random() * 5) + 5;
239
- }
240
- }
241
- // Transition to discovered
242
- if (state.decryptChangesRemaining <= 0) {
243
- state.phase = "discovered";
244
- state.discoveryFrame = 0;
245
- const [x, y] = key.split(",").map(Number);
246
- const char = this.characters.find(c => c.originalPosition.x === x && c.originalPosition.y === y);
247
- if (char) {
248
- state.currentSymbol = char.originalSymbol;
249
- }
250
- }
251
- }
252
- else if (state.phase === "discovered") {
253
- // Discovery fade-in effect
254
- state.discoveryFrame++;
255
- if (state.discoveryFrame > 10) {
256
- completedKeys.push(key);
257
- }
258
- }
259
- }
260
- // Remove completed characters from decrypting set
261
- for (const key of completedKeys) {
262
- this.decryptingChars.delete(key);
263
- }
264
- }
265
- /**
266
- * Create visual representation of a character
267
- */
268
- createCharacterVisual(char, state) {
269
- let symbol = char.originalSymbol;
270
- let color = state.currentColor;
271
- switch (state.phase) {
272
- case "typing":
273
- // Typing animation with block characters
274
- const typingIndex = Math.floor(state.typingFrame / 2) % this.typingSymbols.length;
275
- symbol = state.typingFrame < this.typingSymbols.length * 2
276
- ? this.typingSymbols[typingIndex]
277
- : state.currentSymbol;
278
- color = this.getRandomCiphertextColor();
279
- break;
280
- case "fast_decrypt":
281
- case "slow_decrypt":
282
- symbol = state.currentSymbol;
283
- color = state.currentColor;
284
- break;
285
- case "discovered":
286
- // Fade from white to final color
287
- const fadeFactor = Math.min(state.discoveryFrame / 10, 1);
288
- color = this.interpolateColor("ffffff", state.finalColor, fadeFactor);
289
- symbol = char.originalSymbol;
290
- break;
291
- }
292
- return {
293
- symbol,
294
- colors: {
295
- fg: color,
296
- bg: null,
297
- },
298
- };
299
- }
300
- /**
301
- * Get a random ciphertext color
302
- */
303
- getRandomCiphertextColor() {
304
- return this.options.ciphertextColors[Math.floor(Math.random() * this.options.ciphertextColors.length)];
305
- }
306
- /**
307
- * Get a random encrypted symbol
308
- */
309
- getRandomEncryptedSymbol() {
310
- return this.encryptedSymbols[Math.floor(Math.random() * this.encryptedSymbols.length)];
311
- }
312
- /**
313
- * Check if the effect is complete
314
- */
315
- checkCompletion() {
316
- if (this.animationFrameCount >= this.totalFrames) {
317
- return true;
318
- }
319
- for (const state of this.characterStates.values()) {
320
- if (state.phase !== "discovered" || state.discoveryFrame < 10) {
321
- return false;
322
- }
323
- }
324
- return true;
325
- }
326
- /**
327
- * Shuffle array in place
328
- */
329
- shuffleArray(array) {
330
- for (let i = array.length - 1; i > 0; i--) {
331
- const j = Math.floor(Math.random() * (i + 1));
332
- [array[i], array[j]] = [array[j], array[i]];
333
- }
334
- }
335
- /**
336
- * Get ANSI color code for a color
337
- */
338
- getColorCode(color) {
339
- if (!color || this.config.noColor) {
340
- return "";
341
- }
342
- // For RGB colors, convert to ANSI 24-bit color
343
- if (typeof color === "string") {
344
- const r = parseInt(color.substring(0, 2), 16);
345
- const g = parseInt(color.substring(2, 4), 16);
346
- const b = parseInt(color.substring(4, 6), 16);
347
- return `\x1b[38;2;${r};${g};${b}m`;
348
- }
349
- // For XTerm colors
350
- return `\x1b[38;5;${color}m`;
351
- }
352
- /**
353
- * Interpolate between two colors
354
- */
355
- interpolateColor(color1, color2, factor) {
356
- const r1 = parseInt(color1.substring(0, 2), 16);
357
- const g1 = parseInt(color1.substring(2, 4), 16);
358
- const b1 = parseInt(color1.substring(4, 6), 16);
359
- const r2 = parseInt(color2.substring(0, 2), 16);
360
- const g2 = parseInt(color2.substring(2, 4), 16);
361
- const b2 = parseInt(color2.substring(4, 6), 16);
362
- const r = Math.round(r1 + (r2 - r1) * factor);
363
- const g = Math.round(g1 + (g2 - g1) * factor);
364
- const b = Math.round(b1 + (b2 - b1) * factor);
365
- return [r, g, b]
366
- .map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
367
- .join("");
368
- }
369
- /**
370
- * Render fallback for when effects are disabled
371
- */
372
- renderFallback() {
373
- return this.text.split("\n");
374
- }
375
- /**
376
- * Check if effect is complete
377
- */
378
- isComplete() {
379
- return this._isEffectComplete;
380
- }
381
- /**
382
- * Reset the effect
383
- */
384
- onReset() {
385
- this.characterStates.clear();
386
- this.typingQueue = [];
387
- this.activeTypingChars.clear();
388
- this.decryptingChars.clear();
389
- this.animationFrameCount = 0;
390
- this._isEffectComplete = false;
391
- this.onInitialize();
392
- }
393
- }
394
- //# sourceMappingURL=decrypt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decrypt.js","sourceRoot":"","sources":["../../../src/effects/implementations/decrypt.ts"],"names":[],"mappings":"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"}
@@ -1,78 +0,0 @@
1
- /**
2
- * Waves Effect
3
- * Creates wave patterns that travel across the text
4
- */
5
- import { BaseEffect } from "../types.js";
6
- /**
7
- * Configuration options for the Waves effect
8
- */
9
- export interface WavesEffectOptions {
10
- /** Duration in milliseconds */
11
- duration?: number;
12
- /** Wave colors */
13
- waveColors?: string[];
14
- /** Final text color */
15
- finalColor?: string;
16
- /** Wave speed (higher = faster) */
17
- waveSpeed?: number;
18
- /** Wave frequency (waves per screen width) */
19
- waveFrequency?: number;
20
- /** Wave amplitude (height in characters) */
21
- waveAmplitude?: number;
22
- /** Wave direction */
23
- direction?: "horizontal" | "vertical" | "diagonal";
24
- /** Use gradient for wave colors */
25
- useGradient?: boolean;
26
- }
27
- /**
28
- * Waves effect implementation
29
- */
30
- export declare class WavesEffect extends BaseEffect {
31
- readonly name = "Waves";
32
- readonly description = "Creates wave patterns that travel across the text";
33
- private options;
34
- private characterStates;
35
- private animationFrameCount;
36
- private totalFrames;
37
- private wavePosition;
38
- private _isEffectComplete;
39
- private gradient?;
40
- constructor(options?: WavesEffectOptions);
41
- /**
42
- * Initialize the effect
43
- */
44
- protected onInitialize(): void;
45
- /**
46
- * Render the next frame
47
- */
48
- render(): Promise<string[]>;
49
- /**
50
- * Update animation state for all characters
51
- */
52
- private updateAnimationState;
53
- /**
54
- * Create visual representation of a character
55
- */
56
- private createCharacterVisual;
57
- /**
58
- * Get ANSI color code for a color
59
- */
60
- private getColorCode;
61
- /**
62
- * Interpolate between two colors
63
- */
64
- private interpolateColor;
65
- /**
66
- * Render fallback for when effects are disabled
67
- */
68
- renderFallback(): string[];
69
- /**
70
- * Check if effect is complete
71
- */
72
- isComplete(): boolean;
73
- /**
74
- * Reset the effect
75
- */
76
- protected onReset(): void;
77
- }
78
- //# sourceMappingURL=waves.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waves.d.ts","sourceRoot":"","sources":["../../../src/effects/implementations/waves.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAIX,MAAM,aAAa,CAAC;AAIrB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,uBAAuB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;IACnD,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAeD;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,uDAAuD;IAE3E,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,CAAW;gBAEhB,OAAO,GAAE,kBAAuB;IAe5C;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAuD9B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkDjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4D5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6C7B;;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"}