fidelizare-integrate 0.1.0 → 0.2.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.
- package/package.json +1 -1
- package/src/ui/anim.js +44 -22
- package/src/ui/logo.ans +13 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fidelizare-integrate",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Asistent de integrare Fidelizare pentru softuri de gestiune si case de marcat. Scaneaza codul, gaseste locul potrivit si propune integrarea API-ului, in siguranta.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/ui/anim.js
CHANGED
|
@@ -1,41 +1,63 @@
|
|
|
1
1
|
// Hand-built ASCII animations. No animation libraries: every frame is drawn
|
|
2
2
|
// with raw ANSI cursor control. Honors --no-anim / non-TTY by degrading to
|
|
3
3
|
// plain static lines.
|
|
4
|
+
import { readFileSync } from 'fs';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
4
6
|
import { ansi, C, paint, bold, out, isTTY, sleep } from './ansi.js';
|
|
5
7
|
|
|
6
8
|
let ANIM = isTTY && !process.argv.includes('--no-anim');
|
|
7
9
|
export const setAnim = (v) => { ANIM = v && isTTY; };
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
const cols = () => process.stdout.columns || 80;
|
|
12
|
+
const visLen = (s) => s.replace(/\x1b\[[0-9;?]*[A-Za-z]/g, '').length;
|
|
13
|
+
const center = (s, w = visLen(s)) => ' '.repeat(Math.max(0, Math.floor((cols() - w) / 2))) + s;
|
|
14
|
+
|
|
15
|
+
let LOGO_LINES = null;
|
|
16
|
+
function loadLogo() {
|
|
17
|
+
if (LOGO_LINES) return LOGO_LINES;
|
|
18
|
+
try {
|
|
19
|
+
LOGO_LINES = readFileSync(fileURLToPath(new URL('./logo.ans', import.meta.url)), 'utf8').replace(/\n+$/, '').split('\n');
|
|
20
|
+
} catch { LOGO_LINES = []; }
|
|
21
|
+
return LOGO_LINES;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function topBar() {
|
|
25
|
+
const w = cols();
|
|
26
|
+
const left = ' Fidelizare Integrate';
|
|
27
|
+
const right = 'v0.1.0 · fidelizare.ro ';
|
|
28
|
+
const gap = Math.max(1, w - left.length - right.length);
|
|
29
|
+
out(C.onRed + ansi.bold + left + ' '.repeat(gap) + right + ansi.reset + '\n');
|
|
30
|
+
}
|
|
22
31
|
|
|
32
|
+
// Polished startup screen: a top bar, the real logo (rendered from the actual
|
|
33
|
+
// brand image into ANSI), a title, and a short description of what the tool
|
|
34
|
+
// does, then an animated status line. Inspired by the PostHog wizard layout.
|
|
23
35
|
export async function logoIntro() {
|
|
24
36
|
if (!ANIM) {
|
|
25
37
|
out(paint(' Fidelizare', C.red) + paint(' · asistent de integrare\n\n', C.ink));
|
|
26
38
|
return;
|
|
27
39
|
}
|
|
28
|
-
out(ansi.hideCursor);
|
|
40
|
+
out('\x1b[2J\x1b[H' + ansi.hideCursor); // clear screen, home
|
|
41
|
+
topBar();
|
|
29
42
|
out('\n');
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
43
|
+
|
|
44
|
+
const logo = loadLogo();
|
|
45
|
+
for (const line of logo) {
|
|
46
|
+
out(center(line, 26) + '\n');
|
|
47
|
+
await sleep(26);
|
|
34
48
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
out(
|
|
49
|
+
out('\n');
|
|
50
|
+
|
|
51
|
+
const title = ansi.bold + C.red + 'FIDELIZARE' + ansi.reset + paint(' · asistent de integrare', C.ink);
|
|
52
|
+
out(center(title, 'FIDELIZARE · asistent de integrare'.length) + '\n\n');
|
|
53
|
+
await sleep(120);
|
|
54
|
+
|
|
55
|
+
const d1 = 'Iti analizam codul si integram API-ul de fidelizare, in cativa pasi.';
|
|
56
|
+
const d2 = 'Cheile si .env raman pe calculatorul tau, nu pleaca nicaieri.';
|
|
57
|
+
out(center(paint(d1, C.white), d1.length) + '\n');
|
|
58
|
+
await sleep(80);
|
|
59
|
+
out(center(paint(d2, C.dim), d2.length) + '\n\n');
|
|
60
|
+
await sleep(120);
|
|
39
61
|
out(ansi.showCursor);
|
|
40
62
|
}
|
|
41
63
|
|
package/src/ui/logo.ans
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[0m [38;2;0;0;0m [0m [38;2;26;34;41m▁[38;2;22;30;38m▂[38;2;22;29;37m▂[38;2;25;32;41m▁[0m [38;2;13;13;13m [0m
|
|
2
|
+
[38;2;0;0;0m [0m [38;2;28;35;41m▂▅[38;2;30;38;43;48;2;16;21;25m▆[48;2;30;38;44m [38;2;31;39;44;48;2;30;37;43m▅▅[38;2;30;38;44m▇[48;2;29;37;43m▏[38;2;30;37;43;48;2;26;34;40m▇[0m[38;2;11;18;24m▎[38;2;28;36;44m▗[38;2;24;31;37m▃[0m [38;2;13;13;13m [0m
|
|
3
|
+
[38;2;0;0;0m [38;2;20;27;33m▗[38;2;10;13;15;48;2;26;33;39m▁[38;2;11;13;15;48;2;30;37;43m▁[38;2;11;12;15;48;2;30;38;44m▁[38;2;11;13;15m▁▁▁[38;2;10;13;14m▁▁▁[38;2;10;12;14;48;2;29;37;43m▁[0m[38;2;10;19;26m▏[7m[38;2;27;35;43m▍[0m[38;2;30;38;44;48;2;29;37;43m╴[38;2;28;36;41;48;2;19;23;27m▇[0m[38;2;26;34;40m▖ [0m
|
|
4
|
+
[38;2;0;0;0m [0m [38;2;25;33;39m▃[38;2;27;35;42m▄[38;2;28;36;42m▄[38;2;27;35;41m▄[38;2;24;31;37m▖[0m [38;2;150;35;42m▃[38;2;212;48;58m▄[38;2;209;48;58m▄[38;2;204;46;55m▄[38;2;202;44;54m▄[38;2;197;44;53m▄[0m [7m[38;2;27;36;44m▍[0m[38;2;31;39;45;48;2;31;38;43m▆[48;2;30;38;44m▄[38;2;30;38;44;48;2;29;37;43m▆[38;2;29;37;43;48;2;16;20;24m▖[0m [38;2;13;13;13m [0m
|
|
5
|
+
[38;2;0;0;0m [7m[38;2;23;30;35m▋[0m[38;2;30;38;44;48;2;30;37;43m┊[48;2;31;38;44m▆[38;2;18;22;26;48;2;29;37;43m▂[0m[7m[38;2;25;32;37m▅[0m[38;2;144;31;38m▃[7m[38;2;150;32;40m▚[38;2;209;47;57m▅[38;2;207;49;59m▁[0m[38;2;216;52;62;48;2;214;50;60m▊[0m[38;2;204;46;54m▌[7m[38;2;174;39;46m▇[0m[38;2;142;36;42;48;2;215;49;58m▏[0m[38;2;182;44;46m▎[7m[38;2;28;36;44m▍[0m[38;2;13;14;17;48;2;31;39;45m [38;2;31;39;45;48;2;30;38;44m▌[38;2;30;38;44;48;2;29;37;43m╴[0m[38;2;22;30;35m▖ [0m
|
|
6
|
+
[38;2;0;0;0m [7m[38;2;27;34;40m▌[0m[38;2;18;21;25;48;2;29;36;42m▂[0m[7m[38;2;25;31;37m▅[0m[38;2;149;36;42m▃[38;2;202;48;57m▆[7m[38;2;203;47;56m▝[0m[38;2;212;48;59m▅[7m[38;2;176;38;48m╸[38;2;141;31;38m▄[38;2;181;43;50m╸[0m[38;2;151;39;45;48;2;208;49;59m▁[38;2;216;52;62;48;2;218;48;59m▇[38;2;215;51;61;48;2;218;49;58m▉[0m[38;2;201;50;51m▎[7m[38;2;28;36;44m▍[0m[38;2;30;38;44;48;2;31;39;45m▌ [38;2;31;39;45;48;2;30;38;44m▋[38;2;30;38;44;48;2;29;37;43m▊[0m[38;2;27;36;42m▌ [0m
|
|
7
|
+
[38;2;0;0;0m [7m[38;2;17;21;24m▇[0m[38;2;147;34;41m▃[7m[38;2;201;48;57m▘[0m[38;2;216;54;63;48;2;217;50;59m▇[48;2;216;55;64m [38;2;216;54;64;48;2;216;54;63m┊[38;2;215;50;60m▝[0m[38;2;205;49;58m▅[7m[38;2;193;42;51m▄[0m[38;2;198;42;51m▘[7m[38;2;172;38;48m━[38;2;197;44;53m╸[38;2;201;45;54m▄[0m [7m[38;2;26;33;40m▌[0m[38;2;13;15;18;48;2;30;38;44m [38;2;30;38;44;48;2;31;39;45m▆[48;2;30;38;44m [48;2;29;37;43m╴[0m[38;2;22;29;34m▘ [0m
|
|
8
|
+
[38;2;0;0;0m [7m[38;2;173;40;49m▖[0m[38;2;216;53;63;48;2;216;53;62m╵[38;2;218;54;64;48;2;216;54;63m┕[38;2;217;54;64m▏[38;2;215;54;63;48;2;216;54;64m▗[48;2;216;55;64m▃[48;2;216;54;63m [38;2;215;52;62;48;2;214;51;60m▊[0m[7m[38;2;182;41;49m▝[38;2;201;44;54m▄[38;2;117;27;34m▇[0m[38;2;28;36;42m▄[38;2;29;37;43;48;2;18;22;25m▆[0m[38;2;25;31;36m▄[7m[38;2;22;28;33m▆[38;2;29;36;42m▃[0m[38;2;30;38;44;48;2;29;37;43m╴[0m[38;2;29;37;43m▘[0m [38;2;13;13;13m [0m
|
|
9
|
+
[38;2;0;0;0m [38;2;215;50;60m▝[38;2;217;51;61;48;2;208;50;60m╴[38;2;216;54;63;48;2;216;53;63m╵[38;2;217;52;62;48;2;216;54;63m▁[38;2;214;51;61;48;2;215;53;63m▁[38;2;214;52;62;48;2;207;48;58m╵[0m[7m[38;2;201;45;54m▄[38;2;119;28;34m▇[0m[38;2;29;36;42m▄[48;2;30;38;43m [38;2;31;39;45;48;2;30;38;44m▇[48;2;31;39;45m [38;2;31;38;44;48;2;30;38;44m▌[38;2;28;35;41;48;2;19;23;26m▇[0m[38;2;27;35;40m▖[7m[38;2;20;26;33m▇[0m[38;2;13;13;14m [0m
|
|
10
|
+
[38;2;0;0;0m [0m [7m[38;2;199;47;56m▃[0m[38;2;216;52;62;48;2;206;48;57m╵[0m[7m[38;2;200;45;55m▄[0m [38;2;29;36;42m▄[48;2;30;37;43m [48;2;31;39;45m [48;2;30;38;44m [38;2;30;38;44;48;2;29;36;42m╴[0m[7m[38;2;26;33;38m▃[38;2;17;21;25m▇[0m[38;2;12;13;13m [0m
|
|
11
|
+
[38;2;0;0;0m [0m [38;2;27;35;41m╺[38;2;22;29;34;48;2;29;37;43m▁[38;2;30;38;44;48;2;31;39;45m▁▂▄[48;2;30;38;44m [38;2;24;30;36;48;2;29;37;43m▁[0m[7m[38;2;26;34;39m▃[0m[38;2;18;23;26m▘ [0m
|
|
12
|
+
[38;2;0;0;0m [7m[38;2;17;22;26m▇[38;2;27;35;41m▄[0m[38;2;21;27;33;48;2;29;37;43m▁[48;2;28;36;42m [0m[7m[38;2;27;34;40m▄[38;2;18;23;27m▇[0m[38;2;12;13;13m [0m
|
|
13
|
+
[38;2;0;0;0m [0m [7m[38;2;16;20;24m▇[38;2;19;23;26m▇[0m[38;2;13;13;13m [0m
|