git-slot-machine 1.0.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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +313 -0
  3. package/dist/animation/slotMachine.d.ts +9 -0
  4. package/dist/animation/slotMachine.d.ts.map +1 -0
  5. package/dist/animation/slotMachine.js +139 -0
  6. package/dist/animation/slotMachine.js.map +1 -0
  7. package/dist/api.d.ts +40 -0
  8. package/dist/api.d.ts.map +1 -0
  9. package/dist/api.js +154 -0
  10. package/dist/api.js.map +1 -0
  11. package/dist/balance.d.ts +11 -0
  12. package/dist/balance.d.ts.map +1 -0
  13. package/dist/balance.js +131 -0
  14. package/dist/balance.js.map +1 -0
  15. package/dist/commands/auth.d.ts +4 -0
  16. package/dist/commands/auth.d.ts.map +1 -0
  17. package/dist/commands/auth.js +91 -0
  18. package/dist/commands/auth.js.map +1 -0
  19. package/dist/commands/balance.d.ts +2 -0
  20. package/dist/commands/balance.d.ts.map +1 -0
  21. package/dist/commands/balance.js +32 -0
  22. package/dist/commands/balance.js.map +1 -0
  23. package/dist/commands/config.d.ts +3 -0
  24. package/dist/commands/config.d.ts.map +1 -0
  25. package/dist/commands/config.js +60 -0
  26. package/dist/commands/config.js.map +1 -0
  27. package/dist/commands/init.d.ts +2 -0
  28. package/dist/commands/init.d.ts.map +1 -0
  29. package/dist/commands/init.js +148 -0
  30. package/dist/commands/init.js.map +1 -0
  31. package/dist/commands/play.d.ts +7 -0
  32. package/dist/commands/play.d.ts.map +1 -0
  33. package/dist/commands/play.js +137 -0
  34. package/dist/commands/play.js.map +1 -0
  35. package/dist/commands/spin.d.ts +6 -0
  36. package/dist/commands/spin.d.ts.map +1 -0
  37. package/dist/commands/spin.js +17 -0
  38. package/dist/commands/spin.js.map +1 -0
  39. package/dist/commands/sync.d.ts +2 -0
  40. package/dist/commands/sync.d.ts.map +1 -0
  41. package/dist/commands/sync.js +52 -0
  42. package/dist/commands/sync.js.map +1 -0
  43. package/dist/commands/test.d.ts +6 -0
  44. package/dist/commands/test.d.ts.map +1 -0
  45. package/dist/commands/test.js +17 -0
  46. package/dist/commands/test.js.map +1 -0
  47. package/dist/config.d.ts +27 -0
  48. package/dist/config.d.ts.map +1 -0
  49. package/dist/config.js +144 -0
  50. package/dist/config.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +100 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/patterns.d.ts +27 -0
  56. package/dist/patterns.d.ts.map +1 -0
  57. package/dist/patterns.js +266 -0
  58. package/dist/patterns.js.map +1 -0
  59. package/dist/templates/post-commit.d.ts +2 -0
  60. package/dist/templates/post-commit.d.ts.map +1 -0
  61. package/dist/templates/post-commit.js +19 -0
  62. package/dist/templates/post-commit.js.map +1 -0
  63. package/dist/utils/git.d.ts +4 -0
  64. package/dist/utils/git.d.ts.map +1 -0
  65. package/dist/utils/git.js +42 -0
  66. package/dist/utils/git.js.map +1 -0
  67. package/jest.config.js +12 -0
  68. package/package.json +50 -0
  69. package/src/animation/slotMachine.ts +159 -0
  70. package/src/api.ts +203 -0
  71. package/src/balance.ts +118 -0
  72. package/src/commands/auth.ts +92 -0
  73. package/src/commands/balance.ts +28 -0
  74. package/src/commands/config.ts +59 -0
  75. package/src/commands/init.ts +121 -0
  76. package/src/commands/play.ts +150 -0
  77. package/src/commands/spin.ts +17 -0
  78. package/src/commands/sync.ts +49 -0
  79. package/src/commands/test.ts +19 -0
  80. package/src/config.ts +154 -0
  81. package/src/index.ts +114 -0
  82. package/src/patterns.test.ts +44 -0
  83. package/src/patterns.ts +292 -0
  84. package/src/templates/post-commit.ts +15 -0
  85. package/src/utils/git.ts +38 -0
  86. package/test.txt +2 -0
  87. package/tsconfig.json +20 -0
package/dist/api.js ADDED
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isApiAvailable = isApiAvailable;
4
+ exports.sendPlayToAPI = sendPlayToAPI;
5
+ exports.getBalance = getBalance;
6
+ exports.createToken = createToken;
7
+ exports.verifyToken = verifyToken;
8
+ exports.logout = logout;
9
+ const config_1 = require("./config");
10
+ // Fallback domains to try in order (if primary fails)
11
+ const FALLBACK_DOMAINS = [
12
+ 'https://gitslotmachinecom-main-vilmm1.laravel.cloud',
13
+ ];
14
+ // Helper to build headers with authentication
15
+ function getHeaders() {
16
+ const headers = {
17
+ 'Content-Type': 'application/json',
18
+ 'Accept': 'application/json',
19
+ };
20
+ const token = (0, config_1.getApiToken)();
21
+ if (token) {
22
+ headers['Authorization'] = `Bearer ${token}`;
23
+ }
24
+ return headers;
25
+ }
26
+ // Check if API sync is enabled and available
27
+ function isApiAvailable() {
28
+ return (0, config_1.isSyncEnabled)() && (0, config_1.getApiToken)() !== null;
29
+ }
30
+ // Helper to try API call with fallback domains
31
+ async function fetchWithFallback(endpoint, options) {
32
+ const configuredUrl = (0, config_1.getApiUrl)();
33
+ // Build list of URLs to try: configured URL first, then fallbacks (excluding duplicates)
34
+ const urlsToTry = [
35
+ configuredUrl,
36
+ ...FALLBACK_DOMAINS.filter(domain => !configuredUrl.startsWith(domain))
37
+ ];
38
+ for (const baseUrl of urlsToTry) {
39
+ try {
40
+ const url = `${baseUrl.replace(/\/api$/, '')}/api${endpoint}`;
41
+ const response = await fetch(url, options);
42
+ if (response.ok) {
43
+ return response;
44
+ }
45
+ // If not ok, try next domain
46
+ continue;
47
+ }
48
+ catch (error) {
49
+ // Network error, try next domain
50
+ continue;
51
+ }
52
+ }
53
+ return null;
54
+ }
55
+ // Send play data to API
56
+ async function sendPlayToAPI(data) {
57
+ if (!isApiAvailable()) {
58
+ return null;
59
+ }
60
+ try {
61
+ const response = await fetchWithFallback('/play', {
62
+ method: 'POST',
63
+ headers: getHeaders(),
64
+ body: JSON.stringify(data),
65
+ });
66
+ if (!response) {
67
+ return null;
68
+ }
69
+ const result = await response.json();
70
+ return result.data || null;
71
+ }
72
+ catch (error) {
73
+ // Silently fail if offline or API unavailable
74
+ // The user still gets local feedback
75
+ return null;
76
+ }
77
+ }
78
+ // Get balance from API
79
+ async function getBalance() {
80
+ if (!isApiAvailable()) {
81
+ return null;
82
+ }
83
+ try {
84
+ const response = await fetchWithFallback('/balance', {
85
+ method: 'GET',
86
+ headers: getHeaders(),
87
+ });
88
+ if (!response) {
89
+ return null;
90
+ }
91
+ const result = await response.json();
92
+ return result.data || null;
93
+ }
94
+ catch (error) {
95
+ return null;
96
+ }
97
+ }
98
+ // Create API token (simplified - just pass github username)
99
+ async function createToken(githubUsername) {
100
+ try {
101
+ const response = await fetchWithFallback('/auth/token', {
102
+ method: 'POST',
103
+ headers: {
104
+ 'Content-Type': 'application/json',
105
+ 'Accept': 'application/json',
106
+ },
107
+ body: JSON.stringify({
108
+ github_username: githubUsername,
109
+ }),
110
+ });
111
+ if (!response) {
112
+ return null;
113
+ }
114
+ const result = await response.json();
115
+ return result.data?.token || null;
116
+ }
117
+ catch (error) {
118
+ return null;
119
+ }
120
+ }
121
+ // Verify token is valid
122
+ async function verifyToken(token) {
123
+ try {
124
+ const response = await fetchWithFallback('/auth/user', {
125
+ method: 'GET',
126
+ headers: {
127
+ 'Content-Type': 'application/json',
128
+ 'Accept': 'application/json',
129
+ 'Authorization': `Bearer ${token}`,
130
+ },
131
+ });
132
+ return response !== null && response.ok;
133
+ }
134
+ catch (error) {
135
+ return false;
136
+ }
137
+ }
138
+ // Logout (revoke token)
139
+ async function logout() {
140
+ if (!(0, config_1.getApiToken)()) {
141
+ return true;
142
+ }
143
+ try {
144
+ const response = await fetchWithFallback('/auth/token', {
145
+ method: 'DELETE',
146
+ headers: getHeaders(),
147
+ });
148
+ return response !== null && response.ok;
149
+ }
150
+ catch (error) {
151
+ return false;
152
+ }
153
+ }
154
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare function getBalance(): number;
2
+ export declare function updateBalance(hash: string, payout: number): number;
3
+ export declare function setBalance(newBalance: number): void;
4
+ export declare function getRepoStats(): {
5
+ balance: number;
6
+ totalCommits: number;
7
+ totalWinnings: number;
8
+ biggestWin: number;
9
+ lastCommit: string;
10
+ };
11
+ //# sourceMappingURL=balance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../src/balance.ts"],"names":[],"mappings":"AA0CA,wBAAgB,UAAU,IAAI,MAAM,CAiBnC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA+BlE;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAiBnD;AAED,wBAAgB,YAAY;aA3Gf,MAAM;kBACD,MAAM;mBACL,MAAM;gBACT,MAAM;gBACN,MAAM;EA2GrB"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getBalance = getBalance;
37
+ exports.updateBalance = updateBalance;
38
+ exports.setBalance = setBalance;
39
+ exports.getRepoStats = getRepoStats;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const os = __importStar(require("os"));
43
+ const BALANCE_FILE = path.join(os.homedir(), '.git-slot-machine-balance.json');
44
+ function getRepoPath() {
45
+ try {
46
+ const { execSync } = require('child_process');
47
+ return execSync('git rev-parse --show-toplevel', {
48
+ encoding: 'utf-8',
49
+ stdio: ['pipe', 'pipe', 'pipe']
50
+ }).trim();
51
+ }
52
+ catch {
53
+ // Not in a git repo - use global balance instead
54
+ return null;
55
+ }
56
+ }
57
+ function loadBalance() {
58
+ if (!fs.existsSync(BALANCE_FILE)) {
59
+ return { repos: {} };
60
+ }
61
+ const data = fs.readFileSync(BALANCE_FILE, 'utf-8');
62
+ return JSON.parse(data);
63
+ }
64
+ function saveBalance(data) {
65
+ fs.writeFileSync(BALANCE_FILE, JSON.stringify(data, null, 2));
66
+ }
67
+ function getBalance() {
68
+ const repoPath = getRepoPath() || 'global';
69
+ const data = loadBalance();
70
+ if (!data.repos[repoPath]) {
71
+ // Initialize new repo
72
+ data.repos[repoPath] = {
73
+ balance: 100,
74
+ totalCommits: 0,
75
+ totalWinnings: 0,
76
+ biggestWin: 0,
77
+ lastCommit: ''
78
+ };
79
+ saveBalance(data);
80
+ }
81
+ return data.repos[repoPath].balance;
82
+ }
83
+ function updateBalance(hash, payout) {
84
+ const repoPath = getRepoPath() || 'global';
85
+ const data = loadBalance();
86
+ if (!data.repos[repoPath]) {
87
+ data.repos[repoPath] = {
88
+ balance: 100,
89
+ totalCommits: 0,
90
+ totalWinnings: 0,
91
+ biggestWin: 0,
92
+ lastCommit: ''
93
+ };
94
+ }
95
+ const repo = data.repos[repoPath];
96
+ // Deduct cost
97
+ repo.balance -= 10;
98
+ repo.totalCommits += 1;
99
+ // Add winnings
100
+ if (payout > 0) {
101
+ repo.balance += payout;
102
+ repo.totalWinnings += payout;
103
+ repo.biggestWin = Math.max(repo.biggestWin, payout);
104
+ }
105
+ repo.lastCommit = hash;
106
+ saveBalance(data);
107
+ return repo.balance;
108
+ }
109
+ function setBalance(newBalance) {
110
+ const repoPath = getRepoPath() || 'global';
111
+ const data = loadBalance();
112
+ if (!data.repos[repoPath]) {
113
+ data.repos[repoPath] = {
114
+ balance: newBalance,
115
+ totalCommits: 0,
116
+ totalWinnings: 0,
117
+ biggestWin: 0,
118
+ lastCommit: ''
119
+ };
120
+ }
121
+ else {
122
+ data.repos[repoPath].balance = newBalance;
123
+ }
124
+ saveBalance(data);
125
+ }
126
+ function getRepoStats() {
127
+ const repoPath = getRepoPath() || 'global';
128
+ const data = loadBalance();
129
+ return data.repos[repoPath] || null;
130
+ }
131
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../src/balance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function authLoginCommand(githubUsername: string): Promise<void>;
2
+ export declare function authLogoutCommand(): Promise<void>;
3
+ export declare function authStatusCommand(): Promise<void>;
4
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B5E;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBvD;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgCvD"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.authLoginCommand = authLoginCommand;
7
+ exports.authLogoutCommand = authLogoutCommand;
8
+ exports.authStatusCommand = authStatusCommand;
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const api_1 = require("../api");
11
+ const config_1 = require("../config");
12
+ async function authLoginCommand(githubUsername) {
13
+ try {
14
+ console.log(chalk_1.default.dim(`Generating token for ${githubUsername}...`));
15
+ // Generate token from GitHub username
16
+ const token = await (0, api_1.createToken)(githubUsername);
17
+ if (!token) {
18
+ console.error(chalk_1.default.red('Failed to generate token. Please check your GitHub username.'));
19
+ process.exit(1);
20
+ }
21
+ // Save token and username
22
+ (0, config_1.setApiToken)(token);
23
+ (0, config_1.setGitHubUsername)(githubUsername);
24
+ console.log(chalk_1.default.green('Successfully authenticated!'));
25
+ console.log(chalk_1.default.dim(`Token saved. API URL: ${(0, config_1.getApiUrl)()}`));
26
+ console.log(chalk_1.default.dim(`GitHub Username: ${githubUsername}`));
27
+ console.log();
28
+ console.log(chalk_1.default.yellow('Data sent to server on each commit:'));
29
+ console.log(chalk_1.default.dim(' • Commit hash (7 and 40 character versions)'));
30
+ console.log(chalk_1.default.dim(' • Repository URL, owner, and name'));
31
+ console.log(chalk_1.default.dim(' • GitHub username'));
32
+ console.log(chalk_1.default.dim(' • Pattern type, payout, and balance'));
33
+ console.log();
34
+ console.log(chalk_1.default.dim('To disable sync: git-slot-machine config set sync-enabled false'));
35
+ }
36
+ catch (error) {
37
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
38
+ process.exit(1);
39
+ }
40
+ }
41
+ async function authLogoutCommand() {
42
+ try {
43
+ const token = (0, config_1.getApiToken)();
44
+ if (!token) {
45
+ console.log(chalk_1.default.yellow('Not currently authenticated.'));
46
+ return;
47
+ }
48
+ // Try to revoke token on server
49
+ await (0, api_1.logout)();
50
+ // Clear local token
51
+ (0, config_1.clearApiToken)();
52
+ console.log(chalk_1.default.green('Successfully logged out.'));
53
+ }
54
+ catch (error) {
55
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
56
+ process.exit(1);
57
+ }
58
+ }
59
+ async function authStatusCommand() {
60
+ try {
61
+ const token = (0, config_1.getApiToken)();
62
+ const apiUrl = (0, config_1.getApiUrl)();
63
+ if (!token) {
64
+ console.log(chalk_1.default.yellow('Not authenticated.'));
65
+ console.log(chalk_1.default.dim(`API URL: ${apiUrl}`));
66
+ console.log();
67
+ console.log('To authenticate, run:');
68
+ console.log(chalk_1.default.cyan(' git-slot-machine auth login <your-github-username>'));
69
+ return;
70
+ }
71
+ // Verify token is still valid
72
+ const isValid = await (0, api_1.verifyToken)(token);
73
+ if (isValid) {
74
+ console.log(chalk_1.default.green('Authenticated'));
75
+ console.log(chalk_1.default.dim(`API URL: ${apiUrl}`));
76
+ console.log(chalk_1.default.dim(`Token: ${token.substring(0, 10)}...`));
77
+ }
78
+ else {
79
+ console.log(chalk_1.default.red('Authentication expired or invalid.'));
80
+ console.log(chalk_1.default.dim(`API URL: ${apiUrl}`));
81
+ console.log();
82
+ console.log('Please login again:');
83
+ console.log(chalk_1.default.cyan(' git-slot-machine auth login <your-github-username>'));
84
+ }
85
+ }
86
+ catch (error) {
87
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
88
+ process.exit(1);
89
+ }
90
+ }
91
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function balanceCommand(): void;
2
+ //# sourceMappingURL=balance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,IAAI,IAAI,CAwBrC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.balanceCommand = balanceCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const balance_1 = require("../balance");
9
+ function balanceCommand() {
10
+ try {
11
+ const stats = (0, balance_1.getRepoStats)();
12
+ if (!stats) {
13
+ console.log(chalk_1.default.yellow('No balance data for this repository'));
14
+ console.log(chalk_1.default.dim('Run a commit or use "git-slot-machine spin" to start playing'));
15
+ return;
16
+ }
17
+ console.log();
18
+ console.log(chalk_1.default.cyan.bold('Repository Stats'));
19
+ console.log(chalk_1.default.dim('━'.repeat(40)));
20
+ console.log(chalk_1.default.white(`Balance: ${stats.balance >= 0 ? chalk_1.default.green(stats.balance) : chalk_1.default.red(stats.balance)} points`));
21
+ console.log(chalk_1.default.white(`Total Commits: ${stats.totalCommits}`));
22
+ console.log(chalk_1.default.white(`Total Winnings: ${chalk_1.default.yellow(stats.totalWinnings)} points`));
23
+ console.log(chalk_1.default.white(`Biggest Win: ${chalk_1.default.yellow(stats.biggestWin)} points`));
24
+ console.log(chalk_1.default.white(`Last Commit: ${chalk_1.default.dim(stats.lastCommit)}`));
25
+ console.log();
26
+ }
27
+ catch (error) {
28
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
29
+ process.exit(1);
30
+ }
31
+ }
32
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":";;;;;AAGA,wCAwBC;AA3BD,kDAA0B;AAC1B,wCAA0C;AAE1C,SAAgB,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,sBAAY,GAAE,CAAC;QAE7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACjI,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function configGetCommand(key: string): Promise<void>;
2
+ export declare function configSetCommand(key: string, value: string): Promise<void>;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AASA,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BjE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBhF"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.configGetCommand = configGetCommand;
7
+ exports.configSetCommand = configSetCommand;
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const config_1 = require("../config");
10
+ async function configGetCommand(key) {
11
+ try {
12
+ const config = (0, config_1.getConfig)();
13
+ switch (key) {
14
+ case 'api-url':
15
+ console.log((0, config_1.getApiUrl)());
16
+ break;
17
+ case 'sync-enabled':
18
+ console.log((0, config_1.isSyncEnabled)());
19
+ break;
20
+ case 'all':
21
+ console.log(chalk_1.default.bold('Configuration:'));
22
+ console.log(` API URL: ${chalk_1.default.cyan((0, config_1.getApiUrl)())}`);
23
+ console.log(` Sync Enabled: ${chalk_1.default.cyan((0, config_1.isSyncEnabled)())}`);
24
+ console.log(` Has Token: ${chalk_1.default.cyan(config.apiToken ? 'yes' : 'no')}`);
25
+ break;
26
+ default:
27
+ console.error(chalk_1.default.red(`Unknown config key: ${key}`));
28
+ console.log('Available keys: api-url, sync-enabled, all');
29
+ process.exit(1);
30
+ }
31
+ }
32
+ catch (error) {
33
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
34
+ process.exit(1);
35
+ }
36
+ }
37
+ async function configSetCommand(key, value) {
38
+ try {
39
+ switch (key) {
40
+ case 'api-url':
41
+ (0, config_1.setApiUrl)(value);
42
+ console.log(chalk_1.default.green(`API URL set to: ${value}`));
43
+ break;
44
+ case 'sync-enabled':
45
+ const enabled = value.toLowerCase() === 'true' || value === '1';
46
+ (0, config_1.setSyncEnabled)(enabled);
47
+ console.log(chalk_1.default.green(`Sync ${enabled ? 'enabled' : 'disabled'}`));
48
+ break;
49
+ default:
50
+ console.error(chalk_1.default.red(`Unknown config key: ${key}`));
51
+ console.log('Available keys: api-url, sync-enabled');
52
+ process.exit(1);
53
+ }
54
+ }
55
+ catch (error) {
56
+ console.error(chalk_1.default.red(`Error: ${error.message}`));
57
+ process.exit(1);
58
+ }
59
+ }
60
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":";;;;;AASA,4CA0BC;AAED,4CAqBC;AA1DD,kDAA0B;AAC1B,sCAMmB;AAEZ,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAE3B,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS;gBACZ,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAS,GAAE,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,cAAc;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAa,GAAE,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,KAAK;gBACR,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,eAAK,CAAC,IAAI,CAAC,IAAA,kBAAS,GAAE,CAAC,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,eAAK,CAAC,IAAI,CAAC,IAAA,sBAAa,GAAE,CAAC,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,gBAAgB,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1E,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,KAAa;IAC/D,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS;gBACZ,IAAA,kBAAS,EAAC,KAAK,CAAC,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;gBAChE,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBACrE,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function initCommand(): Promise<void>;
2
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA6BA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA2FjD"}