git-slot-machine 1.1.0 → 1.1.2
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/CHANGELOG.md +43 -0
- package/README.md +8 -0
- package/dist/animation/slotMachine.d.ts +1 -1
- package/dist/animation/slotMachine.d.ts.map +1 -1
- package/dist/animation/slotMachine.js +15 -22
- package/dist/animation/slotMachine.js.map +1 -1
- package/dist/api.js +11 -19
- package/dist/api.js.map +1 -1
- package/dist/balance.js +7 -46
- package/dist/balance.js.map +1 -1
- package/dist/commands/auth.js +40 -48
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/balance.js +14 -20
- package/dist/commands/balance.js.map +1 -1
- package/dist/commands/config.js +19 -26
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +71 -99
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/play.js +31 -37
- package/dist/commands/play.js.map +1 -1
- package/dist/commands/spin.js +6 -9
- package/dist/commands/spin.js.map +1 -1
- package/dist/commands/sync.js +23 -29
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/test.js +3 -6
- package/dist/commands/test.js.map +1 -1
- package/dist/config.js +34 -56
- package/dist/config.js.map +1 -1
- package/dist/index.js +21 -23
- package/dist/index.js.map +1 -1
- package/dist/patterns.js +3 -7
- package/dist/patterns.js.map +1 -1
- package/dist/templates/post-commit.js +1 -4
- package/dist/templates/post-commit.js.map +1 -1
- package/dist/utils/git.js +7 -12
- package/dist/utils/git.js.map +1 -1
- package/package.json +2 -1
- package/src/animation/slotMachine.ts +1 -1
- package/src/api.ts +1 -1
- package/src/commands/auth.ts +2 -2
- package/src/commands/balance.ts +1 -1
- package/src/commands/config.ts +1 -1
- package/src/commands/init.ts +19 -7
- package/src/commands/play.ts +5 -5
- package/src/commands/spin.ts +2 -2
- package/src/commands/sync.ts +2 -2
- package/src/commands/test.ts +1 -1
- package/src/index.ts +8 -8
- package/src/patterns.test.ts +1 -1
- package/tsconfig.json +2 -1
package/dist/commands/config.js
CHANGED
|
@@ -1,59 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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) {
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { getApiUrl, setApiUrl, isSyncEnabled, setSyncEnabled, getConfig } from '../config.js';
|
|
3
|
+
export async function configGetCommand(key) {
|
|
11
4
|
try {
|
|
12
|
-
const config =
|
|
5
|
+
const config = getConfig();
|
|
13
6
|
switch (key) {
|
|
14
7
|
case 'api-url':
|
|
15
|
-
console.log(
|
|
8
|
+
console.log(getApiUrl());
|
|
16
9
|
break;
|
|
17
10
|
case 'sync-enabled':
|
|
18
|
-
console.log(
|
|
11
|
+
console.log(isSyncEnabled());
|
|
19
12
|
break;
|
|
20
13
|
case 'all':
|
|
21
|
-
console.log(
|
|
22
|
-
console.log(` API URL: ${
|
|
23
|
-
console.log(` Sync Enabled: ${
|
|
24
|
-
console.log(` Has Token: ${
|
|
14
|
+
console.log(chalk.bold('Configuration:'));
|
|
15
|
+
console.log(` API URL: ${chalk.cyan(getApiUrl())}`);
|
|
16
|
+
console.log(` Sync Enabled: ${chalk.cyan(isSyncEnabled())}`);
|
|
17
|
+
console.log(` Has Token: ${chalk.cyan(config.apiToken ? 'yes' : 'no')}`);
|
|
25
18
|
break;
|
|
26
19
|
default:
|
|
27
|
-
console.error(
|
|
20
|
+
console.error(chalk.red(`Unknown config key: ${key}`));
|
|
28
21
|
console.log('Available keys: api-url, sync-enabled, all');
|
|
29
22
|
process.exit(1);
|
|
30
23
|
}
|
|
31
24
|
}
|
|
32
25
|
catch (error) {
|
|
33
|
-
console.error(
|
|
26
|
+
console.error(chalk.red(`Error: ${error.message}`));
|
|
34
27
|
process.exit(1);
|
|
35
28
|
}
|
|
36
29
|
}
|
|
37
|
-
async function configSetCommand(key, value) {
|
|
30
|
+
export async function configSetCommand(key, value) {
|
|
38
31
|
try {
|
|
39
32
|
switch (key) {
|
|
40
33
|
case 'api-url':
|
|
41
|
-
|
|
42
|
-
console.log(
|
|
34
|
+
setApiUrl(value);
|
|
35
|
+
console.log(chalk.green(`API URL set to: ${value}`));
|
|
43
36
|
break;
|
|
44
37
|
case 'sync-enabled':
|
|
45
38
|
const enabled = value.toLowerCase() === 'true' || value === '1';
|
|
46
|
-
|
|
47
|
-
console.log(
|
|
39
|
+
setSyncEnabled(enabled);
|
|
40
|
+
console.log(chalk.green(`Sync ${enabled ? 'enabled' : 'disabled'}`));
|
|
48
41
|
break;
|
|
49
42
|
default:
|
|
50
|
-
console.error(
|
|
43
|
+
console.error(chalk.red(`Unknown config key: ${key}`));
|
|
51
44
|
console.log('Available keys: api-url, sync-enabled');
|
|
52
45
|
process.exit(1);
|
|
53
46
|
}
|
|
54
47
|
}
|
|
55
48
|
catch (error) {
|
|
56
|
-
console.error(
|
|
49
|
+
console.error(chalk.red(`Error: ${error.message}`));
|
|
57
50
|
process.exit(1);
|
|
58
51
|
}
|
|
59
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS;gBACZ,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,cAAc;gBACjB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,KAAK;gBACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,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,KAAK,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,KAAK,CAAC,GAAG,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,KAAa;IAC/D,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS;gBACZ,SAAS,CAAC,KAAK,CAAC,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,KAAK,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,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,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,KAAK,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,KAAK,CAAC,GAAG,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA4CA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA4CA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA+HjD"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,49 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.initCommand = initCommand;
|
|
40
|
-
const fs = __importStar(require("fs"));
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
const readline = __importStar(require("readline"));
|
|
43
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
44
|
-
const git_1 = require("../utils/git");
|
|
45
|
-
const post_commit_1 = require("../templates/post-commit");
|
|
46
|
-
const config_1 = require("../config");
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as readline from 'readline';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { isGitRepo } from '../utils/git.js';
|
|
6
|
+
import { POST_COMMIT_HOOK } from '../templates/post-commit.js';
|
|
7
|
+
import { getRepoInfo, setGitHubUsername, getGitHubUsername, setPrivateRepo } from '../config.js';
|
|
47
8
|
async function isRepoPublic(owner, repo) {
|
|
48
9
|
try {
|
|
49
10
|
const response = await fetch(`https://api.github.com/repos/${owner}/${repo}`, {
|
|
@@ -76,109 +37,120 @@ function askQuestion(question) {
|
|
|
76
37
|
});
|
|
77
38
|
});
|
|
78
39
|
}
|
|
79
|
-
async function initCommand() {
|
|
40
|
+
export async function initCommand() {
|
|
80
41
|
// Check if git repo
|
|
81
|
-
if (!
|
|
82
|
-
console.error(
|
|
83
|
-
console.log(
|
|
42
|
+
if (!isGitRepo()) {
|
|
43
|
+
console.error(chalk.red('Error: Not a git repository'));
|
|
44
|
+
console.log(chalk.dim('Run this command from the root of a git repository'));
|
|
84
45
|
process.exit(1);
|
|
85
46
|
}
|
|
86
47
|
// Extract and save GitHub username from remote URL (do this first)
|
|
87
|
-
const repoInfo =
|
|
48
|
+
const repoInfo = getRepoInfo();
|
|
88
49
|
if (!repoInfo) {
|
|
89
50
|
console.log();
|
|
90
|
-
console.error(
|
|
51
|
+
console.error(chalk.red('Error: No GitHub remote detected'));
|
|
91
52
|
console.log();
|
|
92
|
-
console.log(
|
|
53
|
+
console.log(chalk.yellow('Git Slot Machine requires a GitHub repository.'));
|
|
93
54
|
console.log();
|
|
94
|
-
console.log(
|
|
95
|
-
console.log(
|
|
55
|
+
console.log(chalk.dim('Add a GitHub remote to this repo:'));
|
|
56
|
+
console.log(chalk.cyan(' git remote add origin https://github.com/username/repo.git'));
|
|
96
57
|
console.log();
|
|
97
58
|
process.exit(1);
|
|
98
59
|
}
|
|
99
|
-
const existingUsername =
|
|
60
|
+
const existingUsername = getGitHubUsername();
|
|
100
61
|
if (!existingUsername) {
|
|
101
|
-
|
|
102
|
-
console.log(
|
|
62
|
+
setGitHubUsername(repoInfo.owner);
|
|
63
|
+
console.log(chalk.dim(`Detected GitHub username: ${repoInfo.owner}`));
|
|
103
64
|
}
|
|
104
65
|
// Check if repository is public
|
|
105
|
-
console.log(
|
|
66
|
+
console.log(chalk.dim('Checking repository visibility...'));
|
|
106
67
|
const isPublic = await isRepoPublic(repoInfo.owner, repoInfo.name);
|
|
107
68
|
let usePrivacyMode = false;
|
|
108
69
|
if (isPublic === false) {
|
|
109
|
-
console.log(
|
|
70
|
+
console.log(chalk.yellow('⚠️ Private repository detected'));
|
|
110
71
|
console.log();
|
|
111
|
-
console.log(
|
|
112
|
-
console.log(
|
|
72
|
+
console.log(chalk.cyan('Privacy Mode Available'));
|
|
73
|
+
console.log(chalk.dim('You can still use Git Slot Machine with privacy mode enabled.'));
|
|
113
74
|
console.log();
|
|
114
|
-
console.log(
|
|
115
|
-
console.log(
|
|
116
|
-
console.log(
|
|
117
|
-
console.log(
|
|
118
|
-
console.log(
|
|
119
|
-
console.log(
|
|
75
|
+
console.log(chalk.yellow('What happens in privacy mode:'));
|
|
76
|
+
console.log(chalk.dim(' • Repository name/org are NOT stored on the server'));
|
|
77
|
+
console.log(chalk.dim(' • Sent as "private/private" to the API'));
|
|
78
|
+
console.log(chalk.dim(' • Displayed as "*******/*******" on leaderboard'));
|
|
79
|
+
console.log(chalk.dim(' • Your GitHub username is still public'));
|
|
80
|
+
console.log(chalk.dim(' • All private repos share one balance'));
|
|
120
81
|
console.log();
|
|
121
|
-
const answer = await askQuestion(
|
|
82
|
+
const answer = await askQuestion(chalk.green('Enable privacy mode? (y/n): '));
|
|
122
83
|
if (answer === 'y' || answer === 'yes') {
|
|
123
84
|
usePrivacyMode = true;
|
|
124
|
-
|
|
125
|
-
console.log(
|
|
126
|
-
console.log(
|
|
85
|
+
setPrivateRepo(true);
|
|
86
|
+
console.log(chalk.green('✓ Privacy mode enabled'));
|
|
87
|
+
console.log(chalk.dim('Repository details will never be sent to the server.'));
|
|
127
88
|
}
|
|
128
89
|
else {
|
|
129
90
|
console.log();
|
|
130
|
-
console.log(
|
|
131
|
-
console.log(
|
|
91
|
+
console.log(chalk.red('Cannot proceed without privacy mode for private repos.'));
|
|
92
|
+
console.log(chalk.dim('Please make the repository public or enable privacy mode.'));
|
|
132
93
|
process.exit(1);
|
|
133
94
|
}
|
|
134
95
|
}
|
|
135
96
|
else if (isPublic === null) {
|
|
136
|
-
console.log(
|
|
97
|
+
console.log(chalk.yellow('⚠️ Could not verify repository visibility'));
|
|
137
98
|
console.log();
|
|
138
|
-
const answer = await askQuestion(
|
|
99
|
+
const answer = await askQuestion(chalk.green('Is this a private repository? (y/n): '));
|
|
139
100
|
if (answer === 'y' || answer === 'yes') {
|
|
140
101
|
usePrivacyMode = true;
|
|
141
|
-
|
|
142
|
-
console.log(
|
|
143
|
-
console.log(
|
|
102
|
+
setPrivateRepo(true);
|
|
103
|
+
console.log(chalk.green('✓ Privacy mode enabled'));
|
|
104
|
+
console.log(chalk.dim('Repository details will never be sent to the server.'));
|
|
144
105
|
}
|
|
145
106
|
else {
|
|
146
|
-
console.log(
|
|
107
|
+
console.log(chalk.dim('Proceeding with public repository mode...'));
|
|
147
108
|
}
|
|
148
109
|
}
|
|
149
110
|
else {
|
|
150
|
-
console.log(
|
|
111
|
+
console.log(chalk.green('✓ Public repository confirmed'));
|
|
151
112
|
}
|
|
152
113
|
const hookPath = path.join(process.cwd(), '.git', 'hooks', 'post-commit');
|
|
153
114
|
// Check if hook already exists
|
|
154
115
|
if (fs.existsSync(hookPath)) {
|
|
155
|
-
console.log(
|
|
156
|
-
console.log(
|
|
116
|
+
console.log(chalk.yellow('Warning: post-commit hook already exists'));
|
|
117
|
+
console.log(chalk.dim(`Location: ${hookPath}`));
|
|
157
118
|
// TODO: Could add merge logic or backup existing hook
|
|
158
|
-
console.log(
|
|
159
|
-
console.log(
|
|
119
|
+
console.log(chalk.red('Aborting to avoid overwriting existing hook'));
|
|
120
|
+
console.log(chalk.dim('Manually add git-slot-machine to your existing hook'));
|
|
160
121
|
process.exit(1);
|
|
161
122
|
}
|
|
162
123
|
// Write the hook
|
|
163
|
-
fs.writeFileSync(hookPath,
|
|
164
|
-
console.log(
|
|
124
|
+
fs.writeFileSync(hookPath, POST_COMMIT_HOOK, { mode: 0o755 });
|
|
125
|
+
console.log(chalk.green('✓ Post-commit hook installed'));
|
|
165
126
|
console.log();
|
|
166
|
-
console.log(
|
|
167
|
-
console.log(
|
|
127
|
+
console.log(chalk.cyan('Git Slot Machine is ready!'));
|
|
128
|
+
console.log(chalk.dim('Every commit will now spin the slot machine.'));
|
|
168
129
|
console.log();
|
|
169
130
|
console.log('Try it out:');
|
|
170
|
-
console.log(
|
|
131
|
+
console.log(chalk.dim(' git commit --allow-empty -m "test"'));
|
|
171
132
|
console.log();
|
|
172
|
-
console.log(
|
|
173
|
-
console.log(
|
|
133
|
+
console.log(chalk.cyan('Optional: Sync with the API'));
|
|
134
|
+
console.log(chalk.dim(` git-slot-machine auth login ${repoInfo?.owner || 'your-github-username'}`));
|
|
174
135
|
console.log();
|
|
175
|
-
console.log(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
136
|
+
console.log(chalk.yellow('What gets sent to the server:'));
|
|
137
|
+
if (usePrivacyMode) {
|
|
138
|
+
// Privacy mode - show what is NOT sent
|
|
139
|
+
console.log(chalk.green(' ✓ Commit hash (7 and 40 character versions)'));
|
|
140
|
+
console.log(chalk.red(' ✗ Repository URL, owner, and name'));
|
|
141
|
+
console.log(chalk.dim(' (Sent as "private/private" instead)'));
|
|
142
|
+
console.log(chalk.green(' ✓ GitHub username'));
|
|
143
|
+
console.log(chalk.green(' ✓ Pattern type, payout, and balance'));
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// Public mode - everything is sent
|
|
147
|
+
console.log(chalk.green(' ✓ Commit hash (7 and 40 character versions)'));
|
|
148
|
+
console.log(chalk.green(' ✓ Repository URL, owner, and name'));
|
|
149
|
+
console.log(chalk.green(' ✓ GitHub username'));
|
|
150
|
+
console.log(chalk.green(' ✓ Pattern type, payout, and balance'));
|
|
151
|
+
}
|
|
180
152
|
console.log();
|
|
181
|
-
console.log(
|
|
182
|
-
console.log(
|
|
153
|
+
console.log(chalk.dim('You can disable API sync anytime:'));
|
|
154
|
+
console.log(chalk.dim(' git-slot-machine config set sync-enabled false'));
|
|
183
155
|
}
|
|
184
156
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/play.js
CHANGED
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const slotMachine_1 = require("../animation/slotMachine");
|
|
9
|
-
const balance_1 = require("../balance");
|
|
10
|
-
const api_1 = require("../api");
|
|
11
|
-
const config_1 = require("../config");
|
|
12
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
13
|
-
async function playCommand(hash, options) {
|
|
1
|
+
import { detectPattern } from '../patterns.js';
|
|
2
|
+
import { animateSlotMachine, animateSmallMode } from '../animation/slotMachine.js';
|
|
3
|
+
import { getBalance, updateBalance, setBalance } from '../balance.js';
|
|
4
|
+
import { sendPlayToAPI } from '../api.js';
|
|
5
|
+
import { getRepoInfo, getGitHubUsername } from '../config.js';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
export async function playCommand(hash, options) {
|
|
14
8
|
try {
|
|
15
9
|
// Get balance before playing
|
|
16
|
-
const balanceBefore =
|
|
10
|
+
const balanceBefore = getBalance();
|
|
17
11
|
// Detect pattern
|
|
18
|
-
const result =
|
|
12
|
+
const result = detectPattern(hash);
|
|
19
13
|
// Animate based on mode
|
|
20
14
|
const config = {
|
|
21
15
|
finalHash: hash.toLowerCase(),
|
|
@@ -23,10 +17,10 @@ async function playCommand(hash, options) {
|
|
|
23
17
|
patternResult: result
|
|
24
18
|
};
|
|
25
19
|
if (options.small) {
|
|
26
|
-
await
|
|
20
|
+
await animateSmallMode(config);
|
|
27
21
|
}
|
|
28
22
|
else {
|
|
29
|
-
await
|
|
23
|
+
await animateSlotMachine(config);
|
|
30
24
|
}
|
|
31
25
|
// Show result
|
|
32
26
|
if (!options.small) {
|
|
@@ -36,37 +30,37 @@ async function playCommand(hash, options) {
|
|
|
36
30
|
if (result.payout > 0) {
|
|
37
31
|
const resultText = `${result.name}!`;
|
|
38
32
|
const resultPadding = Math.floor((boxWidth - resultText.length) / 2);
|
|
39
|
-
console.log(' '.repeat(resultPadding) +
|
|
33
|
+
console.log(' '.repeat(resultPadding) + chalk.cyan.bold(resultText));
|
|
40
34
|
const payoutText = `+${result.payout} points`;
|
|
41
35
|
const payoutPadding = Math.floor((boxWidth - payoutText.length) / 2);
|
|
42
|
-
console.log(' '.repeat(payoutPadding) +
|
|
36
|
+
console.log(' '.repeat(payoutPadding) + chalk.white.bold(payoutText));
|
|
43
37
|
}
|
|
44
38
|
else {
|
|
45
39
|
const noWinText = 'No win';
|
|
46
40
|
const noWinPadding = Math.floor((boxWidth - noWinText.length) / 2);
|
|
47
|
-
console.log(' '.repeat(noWinPadding) +
|
|
41
|
+
console.log(' '.repeat(noWinPadding) + chalk.red.bold(noWinText));
|
|
48
42
|
const lossText = '-10 points';
|
|
49
43
|
const lossPadding = Math.floor((boxWidth - lossText.length) / 2);
|
|
50
|
-
console.log(' '.repeat(lossPadding) +
|
|
44
|
+
console.log(' '.repeat(lossPadding) + chalk.white.bold(lossText));
|
|
51
45
|
}
|
|
52
46
|
console.log();
|
|
53
47
|
const descText = result.description;
|
|
54
48
|
const descPadding = Math.floor((boxWidth - descText.length) / 2);
|
|
55
|
-
console.log(' '.repeat(descPadding) +
|
|
49
|
+
console.log(' '.repeat(descPadding) + chalk.dim(descText));
|
|
56
50
|
}
|
|
57
51
|
// Validate GitHub remote for API sync
|
|
58
|
-
const repoInfo =
|
|
59
|
-
const githubUsername =
|
|
52
|
+
const repoInfo = getRepoInfo();
|
|
53
|
+
const githubUsername = getGitHubUsername();
|
|
60
54
|
if (!repoInfo && githubUsername) {
|
|
61
55
|
console.log();
|
|
62
|
-
console.log(
|
|
63
|
-
console.log(
|
|
64
|
-
console.log(
|
|
65
|
-
console.log(
|
|
56
|
+
console.log(chalk.yellow.bold('⚠ Warning: No GitHub remote detected'));
|
|
57
|
+
console.log(chalk.dim('This repo will not sync to the leaderboard.'));
|
|
58
|
+
console.log(chalk.dim('To sync, add a GitHub remote:'));
|
|
59
|
+
console.log(chalk.cyan(' git remote add origin https://github.com/username/repo.git'));
|
|
66
60
|
console.log();
|
|
67
61
|
}
|
|
68
62
|
// Update balance locally
|
|
69
|
-
let newBalance =
|
|
63
|
+
let newBalance = updateBalance(hash.toLowerCase(), result.payout);
|
|
70
64
|
// Send to API and sync balance with server
|
|
71
65
|
let shareUrl;
|
|
72
66
|
if (repoInfo && githubUsername) {
|
|
@@ -88,10 +82,10 @@ async function playCommand(hash, options) {
|
|
|
88
82
|
playData.commit_full_hash = options.fullHash;
|
|
89
83
|
}
|
|
90
84
|
try {
|
|
91
|
-
const apiResponse = await
|
|
85
|
+
const apiResponse = await sendPlayToAPI(playData);
|
|
92
86
|
// Sync local balance to match server's balance
|
|
93
87
|
if (apiResponse && apiResponse.balance !== undefined) {
|
|
94
|
-
|
|
88
|
+
setBalance(apiResponse.balance);
|
|
95
89
|
newBalance = apiResponse.balance;
|
|
96
90
|
shareUrl = apiResponse.share_url;
|
|
97
91
|
}
|
|
@@ -104,10 +98,10 @@ async function playCommand(hash, options) {
|
|
|
104
98
|
if (options.small) {
|
|
105
99
|
// Small mode - everything on one line (animateSmallMode already wrote the hash without newline)
|
|
106
100
|
if (result.payout > 0) {
|
|
107
|
-
console.log(
|
|
101
|
+
console.log(chalk.dim(' • ') + chalk.cyan.bold(`${result.name} +${result.payout}`) + chalk.dim(' • ') + chalk.white(`Balance: ${chalk.green.bold(newBalance)}`));
|
|
108
102
|
}
|
|
109
103
|
else {
|
|
110
|
-
console.log(
|
|
104
|
+
console.log(chalk.dim(' • ') + chalk.red('No win -10') + chalk.dim(' • ') + chalk.white(`Balance: ${newBalance >= 0 ? chalk.green.bold(newBalance) : chalk.red.bold(newBalance)}`));
|
|
111
105
|
}
|
|
112
106
|
}
|
|
113
107
|
else {
|
|
@@ -116,7 +110,7 @@ async function playCommand(hash, options) {
|
|
|
116
110
|
// Note: we can't measure the exact length with color codes, so estimate based on text content
|
|
117
111
|
const balanceText = `Balance: ${newBalance} points`;
|
|
118
112
|
const balancePadding = Math.floor((boxWidth - balanceText.length) / 2);
|
|
119
|
-
console.log(' '.repeat(balancePadding) +
|
|
113
|
+
console.log(' '.repeat(balancePadding) + chalk.white.bold(`Balance: ${newBalance >= 0 ? chalk.green.bold(newBalance) : chalk.red.bold(newBalance)} points`));
|
|
120
114
|
}
|
|
121
115
|
// Show share URL for wins
|
|
122
116
|
if (shareUrl && result.payout > 0 && !options.small) {
|
|
@@ -124,13 +118,13 @@ async function playCommand(hash, options) {
|
|
|
124
118
|
const boxWidth = 41;
|
|
125
119
|
const shareText = 'Share your win:';
|
|
126
120
|
const sharePadding = Math.floor((boxWidth - shareText.length) / 2);
|
|
127
|
-
console.log(' '.repeat(sharePadding) +
|
|
121
|
+
console.log(' '.repeat(sharePadding) + chalk.dim(shareText));
|
|
128
122
|
const urlPadding = Math.floor((boxWidth - shareUrl.length) / 2);
|
|
129
|
-
console.log(' '.repeat(urlPadding) +
|
|
123
|
+
console.log(' '.repeat(urlPadding) + chalk.green.underline(shareUrl));
|
|
130
124
|
}
|
|
131
125
|
}
|
|
132
126
|
catch (error) {
|
|
133
|
-
console.error(
|
|
127
|
+
console.error(chalk.red(`Error: ${error.message}`));
|
|
134
128
|
process.exit(1);
|
|
135
129
|
}
|
|
136
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play.js","sourceRoot":"","sources":["../../src/commands/play.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"play.js","sourceRoot":"","sources":["../../src/commands/play.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/spin.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const git_1 = require("../utils/git");
|
|
5
|
-
const play_1 = require("./play");
|
|
6
|
-
async function spinCommand(options) {
|
|
1
|
+
import { getCurrentCommitHash, getCurrentCommitFullHash } from '../utils/git.js';
|
|
2
|
+
import { playCommand } from './play.js';
|
|
3
|
+
export async function spinCommand(options) {
|
|
7
4
|
try {
|
|
8
|
-
const hash =
|
|
9
|
-
const fullHash =
|
|
10
|
-
await
|
|
5
|
+
const hash = getCurrentCommitHash();
|
|
6
|
+
const fullHash = getCurrentCommitFullHash();
|
|
7
|
+
await playCommand(hash, { ...options, fullHash });
|
|
11
8
|
}
|
|
12
9
|
catch (error) {
|
|
13
10
|
console.error(`Error: ${error.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spin.js","sourceRoot":"","sources":["../../src/commands/spin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spin.js","sourceRoot":"","sources":["../../src/commands/spin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;QAC5C,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|