@keplog/cli 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/LICENSE +21 -0
- package/README.md +495 -0
- package/bin/keplog +2 -0
- package/dist/commands/delete.d.ts +3 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +158 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +131 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/issues.d.ts +3 -0
- package/dist/commands/issues.d.ts.map +1 -0
- package/dist/commands/issues.js +543 -0
- package/dist/commands/issues.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +104 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/releases.d.ts +3 -0
- package/dist/commands/releases.d.ts.map +1 -0
- package/dist/commands/releases.js +100 -0
- package/dist/commands/releases.js.map +1 -0
- package/dist/commands/upload.d.ts +3 -0
- package/dist/commands/upload.d.ts.map +1 -0
- package/dist/commands/upload.js +76 -0
- package/dist/commands/upload.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config.d.ts +57 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +155 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/uploader.d.ts +11 -0
- package/dist/lib/uploader.d.ts.map +1 -0
- package/dist/lib/uploader.js +171 -0
- package/dist/lib/uploader.js.map +1 -0
- package/jest.config.js +16 -0
- package/package.json +58 -0
- package/src/commands/delete.ts +186 -0
- package/src/commands/init.ts +137 -0
- package/src/commands/issues.ts +695 -0
- package/src/commands/list.ts +124 -0
- package/src/commands/releases.ts +122 -0
- package/src/commands/upload.ts +76 -0
- package/src/index.ts +31 -0
- package/src/lib/config.ts +138 -0
- package/src/lib/uploader.ts +168 -0
- package/tests/README.md +380 -0
- package/tests/config.test.ts +397 -0
- package/tests/uploader.test.ts +524 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,WAAW,SAmIpB,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
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.initCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const config_1 = require("../lib/config");
|
|
11
|
+
exports.initCommand = new commander_1.Command('init')
|
|
12
|
+
.description('Initialize Keplog configuration for the current project')
|
|
13
|
+
.option('-g, --global', 'Save configuration globally (in ~/.keplogrc)')
|
|
14
|
+
.option('-f, --force', 'Overwrite existing configuration')
|
|
15
|
+
.action(async (options) => {
|
|
16
|
+
try {
|
|
17
|
+
const isGlobal = options.global || false;
|
|
18
|
+
const force = options.force || false;
|
|
19
|
+
console.log(chalk_1.default.bold.cyan('\nš Keplog CLI Configuration\n'));
|
|
20
|
+
// Check if config already exists
|
|
21
|
+
const hasLocal = config_1.ConfigManager.hasLocalConfig();
|
|
22
|
+
const hasGlobal = config_1.ConfigManager.hasGlobalConfig();
|
|
23
|
+
if (!force) {
|
|
24
|
+
if (isGlobal && hasGlobal) {
|
|
25
|
+
console.log(chalk_1.default.yellow('ā ļø Global configuration already exists at ~/.keplogrc'));
|
|
26
|
+
const { overwrite } = await (0, prompts_1.default)({
|
|
27
|
+
type: 'confirm',
|
|
28
|
+
name: 'overwrite',
|
|
29
|
+
message: 'Do you want to overwrite it?',
|
|
30
|
+
initial: false,
|
|
31
|
+
});
|
|
32
|
+
if (!overwrite) {
|
|
33
|
+
console.log(chalk_1.default.gray('\nConfiguration cancelled.'));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else if (!isGlobal && hasLocal) {
|
|
38
|
+
const configPath = config_1.ConfigManager.getLocalConfigPath();
|
|
39
|
+
console.log(chalk_1.default.yellow(`ā ļø Configuration already exists at ${configPath}`));
|
|
40
|
+
const { overwrite } = await (0, prompts_1.default)({
|
|
41
|
+
type: 'confirm',
|
|
42
|
+
name: 'overwrite',
|
|
43
|
+
message: 'Do you want to overwrite it?',
|
|
44
|
+
initial: false,
|
|
45
|
+
});
|
|
46
|
+
if (!overwrite) {
|
|
47
|
+
console.log(chalk_1.default.gray('\nConfiguration cancelled.'));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Read existing config (if any)
|
|
53
|
+
const existingConfig = config_1.ConfigManager.readConfig();
|
|
54
|
+
// Interactive prompts
|
|
55
|
+
console.log(chalk_1.default.gray('Get your credentials from: Project Settings ā General ā Project Credentials\n'));
|
|
56
|
+
const responses = await (0, prompts_1.default)([
|
|
57
|
+
{
|
|
58
|
+
type: 'text',
|
|
59
|
+
name: 'projectId',
|
|
60
|
+
message: 'Project ID:',
|
|
61
|
+
initial: existingConfig.projectId || '',
|
|
62
|
+
validate: (value) => value.trim().length > 0 || 'Project ID is required',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: 'password',
|
|
66
|
+
name: 'apiKey',
|
|
67
|
+
message: 'API Key:',
|
|
68
|
+
initial: existingConfig.apiKey || '',
|
|
69
|
+
validate: (value) => value.trim().length > 0 || 'API Key is required',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'text',
|
|
73
|
+
name: 'apiUrl',
|
|
74
|
+
message: 'API URL (optional):',
|
|
75
|
+
initial: existingConfig.apiUrl || 'https://api.keplog.com',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
type: 'text',
|
|
79
|
+
name: 'projectName',
|
|
80
|
+
message: 'Project name (optional):',
|
|
81
|
+
initial: existingConfig.projectName || '',
|
|
82
|
+
},
|
|
83
|
+
]);
|
|
84
|
+
// Check if user cancelled
|
|
85
|
+
if (!responses.projectId || !responses.apiKey) {
|
|
86
|
+
console.log(chalk_1.default.gray('\nConfiguration cancelled.'));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// Prepare config
|
|
90
|
+
const config = {
|
|
91
|
+
projectId: responses.projectId.trim(),
|
|
92
|
+
apiKey: responses.apiKey.trim(),
|
|
93
|
+
apiUrl: responses.apiUrl?.trim() || 'https://api.keplog.com',
|
|
94
|
+
projectName: responses.projectName?.trim() || undefined,
|
|
95
|
+
};
|
|
96
|
+
// Save config
|
|
97
|
+
if (isGlobal) {
|
|
98
|
+
config_1.ConfigManager.writeGlobalConfig(config);
|
|
99
|
+
console.log(chalk_1.default.green('\nā
Configuration saved globally to ~/.keplogrc'));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
config_1.ConfigManager.writeLocalConfig(config);
|
|
103
|
+
console.log(chalk_1.default.green('\nā
Configuration saved to .keplog.json'));
|
|
104
|
+
console.log(chalk_1.default.gray('\nTip: Add .keplog.json to .gitignore to keep credentials secret'));
|
|
105
|
+
}
|
|
106
|
+
// Display saved config
|
|
107
|
+
console.log(chalk_1.default.cyan('\nš Saved configuration:'));
|
|
108
|
+
console.log(chalk_1.default.gray(` Project ID: ${config.projectId}`));
|
|
109
|
+
console.log(chalk_1.default.gray(` API Key: ${'*'.repeat(Math.min(config.apiKey.length, 20))}...`));
|
|
110
|
+
console.log(chalk_1.default.gray(` API URL: ${config.apiUrl}`));
|
|
111
|
+
if (config.projectName) {
|
|
112
|
+
console.log(chalk_1.default.gray(` Project Name: ${config.projectName}`));
|
|
113
|
+
}
|
|
114
|
+
console.log(chalk_1.default.cyan('\nš” Next steps:'));
|
|
115
|
+
console.log(chalk_1.default.gray(' 1. Upload source maps: keplog upload --release=v1.0.0 --files="dist/**/*.map"'));
|
|
116
|
+
console.log(chalk_1.default.gray(' 2. View help: keplog upload --help'));
|
|
117
|
+
console.log();
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
if (error.message === 'canceled') {
|
|
121
|
+
console.log(chalk_1.default.gray('\n\nConfiguration cancelled.'));
|
|
122
|
+
process.exit(0);
|
|
123
|
+
}
|
|
124
|
+
console.error(chalk_1.default.red(`\nā Error: ${error.message}`));
|
|
125
|
+
if (error.stack && process.env.DEBUG) {
|
|
126
|
+
console.error(chalk_1.default.gray(error.stack));
|
|
127
|
+
}
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/commands/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwnBpC,eAAO,MAAM,aAAa,SAIK,CAAC"}
|