@edpear/sdk 1.0.1 ā 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.
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +295 -0
- package/dist/cli.js.map +1 -0
- package/package.json +14 -2
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const ora_1 = __importDefault(require("ora"));
|
|
11
|
+
const open_1 = __importDefault(require("open"));
|
|
12
|
+
const axios_1 = __importDefault(require("axios"));
|
|
13
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
14
|
+
const path_1 = __importDefault(require("path"));
|
|
15
|
+
const os_1 = require("os");
|
|
16
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
17
|
+
// Load environment variables from .env or .env.local if they exist
|
|
18
|
+
dotenv_1.default.config();
|
|
19
|
+
dotenv_1.default.config({ path: path_1.default.join(process.cwd(), '.env.local') });
|
|
20
|
+
const program = new commander_1.Command();
|
|
21
|
+
// Configuration
|
|
22
|
+
const CONFIG_DIR = path_1.default.join((0, os_1.homedir)(), '.edpear');
|
|
23
|
+
const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'config.json');
|
|
24
|
+
const ENV_FILE = path_1.default.join(process.cwd(), '.env.local');
|
|
25
|
+
// Default production URL
|
|
26
|
+
const DEFAULT_API_URL = 'https://edpearofficial.vercel.app';
|
|
27
|
+
class EdPearCLI {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.config = {};
|
|
30
|
+
this.loadConfig();
|
|
31
|
+
}
|
|
32
|
+
loadConfig() {
|
|
33
|
+
try {
|
|
34
|
+
if (fs_extra_1.default.existsSync(CONFIG_FILE)) {
|
|
35
|
+
this.config = fs_extra_1.default.readJsonSync(CONFIG_FILE);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
// Ignore config loading errors on first run
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
saveConfig() {
|
|
43
|
+
try {
|
|
44
|
+
fs_extra_1.default.ensureDirSync(CONFIG_DIR);
|
|
45
|
+
fs_extra_1.default.writeJsonSync(CONFIG_FILE, this.config, { spaces: 2 });
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error(chalk_1.default.red('Error saving config:'), error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async makeRequest(endpoint, data, method = 'GET') {
|
|
52
|
+
const baseURL = process.env.EDPEAR_API_URL || DEFAULT_API_URL;
|
|
53
|
+
try {
|
|
54
|
+
const response = await (0, axios_1.default)({
|
|
55
|
+
method,
|
|
56
|
+
url: `${baseURL}${endpoint}`,
|
|
57
|
+
data,
|
|
58
|
+
headers: {
|
|
59
|
+
'Content-Type': 'application/json',
|
|
60
|
+
...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
return response.data;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (error.response?.status === 401) {
|
|
67
|
+
console.error(chalk_1.default.red('Authentication required. Please run "edpear login" first.'));
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async login() {
|
|
74
|
+
console.log(chalk_1.default.blue('š EdPear Authentication'));
|
|
75
|
+
const baseURL = process.env.EDPEAR_API_URL || DEFAULT_API_URL;
|
|
76
|
+
const loginURL = `${baseURL}/auth/login?cli=true`;
|
|
77
|
+
console.log(chalk_1.default.gray(`Connecting to: ${baseURL}`));
|
|
78
|
+
console.log(chalk_1.default.gray('Opening browser for authentication...\n'));
|
|
79
|
+
try {
|
|
80
|
+
await (0, open_1.default)(loginURL);
|
|
81
|
+
console.log(chalk_1.default.green('ā
Browser opened!'));
|
|
82
|
+
console.log(chalk_1.default.yellow('Please login in your browser.'));
|
|
83
|
+
console.log(chalk_1.default.gray('After logging in, click "Authorize CLI" on the dashboard.\n'));
|
|
84
|
+
// Wait for user to authorize and get callback URL
|
|
85
|
+
console.log(chalk_1.default.yellow('š” After clicking "Authorize CLI", you will be redirected to an authentication page.'));
|
|
86
|
+
console.log(chalk_1.default.gray('Please paste the callback URL from your browser:\n'));
|
|
87
|
+
const { callbackUrl } = await inquirer_1.default.prompt([
|
|
88
|
+
{
|
|
89
|
+
type: 'input',
|
|
90
|
+
name: 'callbackUrl',
|
|
91
|
+
message: 'Paste the callback URL from your browser:',
|
|
92
|
+
},
|
|
93
|
+
]);
|
|
94
|
+
if (!callbackUrl || !callbackUrl.trim()) {
|
|
95
|
+
console.log(chalk_1.default.yellow('\nš” You can run "edpear login" again after authorizing on the dashboard.'));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// Extract token and userId from URL
|
|
99
|
+
try {
|
|
100
|
+
const url = new URL(callbackUrl);
|
|
101
|
+
const tempToken = url.searchParams.get('token');
|
|
102
|
+
const userId = url.searchParams.get('userId');
|
|
103
|
+
if (!tempToken || !userId) {
|
|
104
|
+
console.log(chalk_1.default.red('ā Invalid URL format. Please paste the full callback URL from the browser.'));
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
console.log(chalk_1.default.gray('\nš§ An OTP has been sent to your email.'));
|
|
108
|
+
console.log(chalk_1.default.gray('Please enter the OTP in your browser to complete authentication.\n'));
|
|
109
|
+
// Poll for authentication completion
|
|
110
|
+
const spinner = (0, ora_1.default)('Waiting for OTP verification...').start();
|
|
111
|
+
const maxAttempts = 200; // 10 minutes (3 seconds * 200)
|
|
112
|
+
let attempts = 0;
|
|
113
|
+
while (attempts < maxAttempts) {
|
|
114
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
115
|
+
try {
|
|
116
|
+
const statusResponse = await axios_1.default.get(`${baseURL}/api/auth/cli-status?token=${tempToken}&userId=${userId}`);
|
|
117
|
+
if (statusResponse.data.status === 'completed' && statusResponse.data.cliToken) {
|
|
118
|
+
spinner.stop();
|
|
119
|
+
// Save token and user data
|
|
120
|
+
this.config.token = statusResponse.data.cliToken;
|
|
121
|
+
this.config.user = statusResponse.data.user;
|
|
122
|
+
this.saveConfig();
|
|
123
|
+
console.log(chalk_1.default.green('\nā
Successfully authenticated!'));
|
|
124
|
+
console.log(chalk_1.default.blue(`\nWelcome, ${statusResponse.data.user.name}!`));
|
|
125
|
+
console.log(chalk_1.default.gray(`Email: ${statusResponse.data.user.email}`));
|
|
126
|
+
console.log(chalk_1.default.gray(`Credits: ${statusResponse.data.user.credits}`));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
else if (statusResponse.data.status === 'expired' || statusResponse.data.status === 'failed') {
|
|
130
|
+
spinner.stop();
|
|
131
|
+
console.log(chalk_1.default.red(`\nā Authentication ${statusResponse.data.status}. Please try again.`));
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
attempts++;
|
|
135
|
+
if (attempts === 1) {
|
|
136
|
+
spinner.text = 'Waiting for OTP verification... (Enter OTP in browser)';
|
|
137
|
+
}
|
|
138
|
+
else if (attempts % 10 === 0) {
|
|
139
|
+
const minutes = Math.floor(attempts * 3 / 60);
|
|
140
|
+
const seconds = (attempts * 3) % 60;
|
|
141
|
+
spinner.text = `Waiting for OTP verification... (${minutes}m ${seconds}s)`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
// Continue polling on error
|
|
146
|
+
attempts++;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
spinner.stop();
|
|
150
|
+
console.log(chalk_1.default.yellow('\nā±ļø Authentication timeout. Please try again.'));
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
console.log(chalk_1.default.red('ā Invalid URL. Please paste the full URL from your browser.'));
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
console.error(chalk_1.default.red('Error during login:'), error.message);
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async generateKey() {
|
|
164
|
+
if (!this.config.token) {
|
|
165
|
+
console.error(chalk_1.default.red('Please login first: edpear login'));
|
|
166
|
+
process.exit(1);
|
|
167
|
+
}
|
|
168
|
+
console.log(chalk_1.default.blue('š Generate New API Key\n'));
|
|
169
|
+
const { name } = await inquirer_1.default.prompt([
|
|
170
|
+
{
|
|
171
|
+
type: 'input',
|
|
172
|
+
name: 'name',
|
|
173
|
+
message: 'Enter a name for your API key:',
|
|
174
|
+
default: 'My API Key',
|
|
175
|
+
validate: (input) => {
|
|
176
|
+
if (!input.trim()) {
|
|
177
|
+
return 'Name is required';
|
|
178
|
+
}
|
|
179
|
+
return true;
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
]);
|
|
183
|
+
const spinner = (0, ora_1.default)('Generating API key...').start();
|
|
184
|
+
try {
|
|
185
|
+
const result = await this.makeRequest('/api/keys/generate', {
|
|
186
|
+
name,
|
|
187
|
+
}, 'POST');
|
|
188
|
+
spinner.succeed(chalk_1.default.green('ā
API key generated successfully!'));
|
|
189
|
+
// Add to config
|
|
190
|
+
if (!this.config.apiKeys) {
|
|
191
|
+
this.config.apiKeys = [];
|
|
192
|
+
}
|
|
193
|
+
this.config.apiKeys.push(result.apiKey);
|
|
194
|
+
this.saveConfig();
|
|
195
|
+
console.log(chalk_1.default.blue('\nš Your new API key:'));
|
|
196
|
+
console.log(chalk_1.default.yellow(result.apiKey.key));
|
|
197
|
+
console.log(chalk_1.default.gray('\nš” Save this key securely. It will not be shown again.'));
|
|
198
|
+
// Ask if user wants to save to .env.local
|
|
199
|
+
const { saveToEnv } = await inquirer_1.default.prompt([
|
|
200
|
+
{
|
|
201
|
+
type: 'confirm',
|
|
202
|
+
name: 'saveToEnv',
|
|
203
|
+
message: 'Save API key to .env.local file?',
|
|
204
|
+
default: true,
|
|
205
|
+
},
|
|
206
|
+
]);
|
|
207
|
+
if (saveToEnv) {
|
|
208
|
+
await this.saveToEnvFile(result.apiKey.key);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
spinner.fail(chalk_1.default.red('ā Failed to generate API key'));
|
|
213
|
+
console.error(chalk_1.default.red('Error:'), error.response?.data?.error || error.message);
|
|
214
|
+
process.exit(1);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
async saveToEnvFile(apiKey) {
|
|
218
|
+
try {
|
|
219
|
+
let envContent = '';
|
|
220
|
+
if (fs_extra_1.default.existsSync(ENV_FILE)) {
|
|
221
|
+
envContent = fs_extra_1.default.readFileSync(ENV_FILE, 'utf8');
|
|
222
|
+
}
|
|
223
|
+
// Remove existing EDPEAR_API_KEY if present
|
|
224
|
+
envContent = envContent.replace(/^EDPEAR_API_KEY=.*$/m, '');
|
|
225
|
+
// Add new API key
|
|
226
|
+
if (envContent && !envContent.endsWith('\n')) {
|
|
227
|
+
envContent += '\n';
|
|
228
|
+
}
|
|
229
|
+
envContent += `EDPEAR_API_KEY=${apiKey}\n`;
|
|
230
|
+
fs_extra_1.default.writeFileSync(ENV_FILE, envContent);
|
|
231
|
+
console.log(chalk_1.default.green('ā
API key saved to .env.local'));
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
console.error(chalk_1.default.red('Error saving to .env.local:'), error);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
async status() {
|
|
238
|
+
if (!this.config.token) {
|
|
239
|
+
console.log(chalk_1.default.red('ā Not authenticated'));
|
|
240
|
+
console.log(chalk_1.default.gray('Run "edpear login" to get started'));
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
console.log(chalk_1.default.blue('š EdPear Status\n'));
|
|
244
|
+
if (this.config.user) {
|
|
245
|
+
console.log(chalk_1.default.green(`š¤ User: ${this.config.user.name}`));
|
|
246
|
+
console.log(chalk_1.default.green(`š§ Email: ${this.config.user.email}`));
|
|
247
|
+
console.log(chalk_1.default.green(`š³ Credits: ${this.config.user.credits}`));
|
|
248
|
+
}
|
|
249
|
+
if (this.config.apiKeys && this.config.apiKeys.length > 0) {
|
|
250
|
+
console.log(chalk_1.default.blue(`\nš API Keys (${this.config.apiKeys.length}):`));
|
|
251
|
+
this.config.apiKeys.forEach((key, index) => {
|
|
252
|
+
console.log(chalk_1.default.gray(` ${index + 1}. ${key.name}`));
|
|
253
|
+
console.log(chalk_1.default.yellow(` ${key.key}`));
|
|
254
|
+
console.log(chalk_1.default.gray(` Created: ${new Date(key.createdAt).toLocaleDateString()}`));
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
console.log(chalk_1.default.yellow('\nš No API keys found'));
|
|
259
|
+
console.log(chalk_1.default.gray('Run "edpear generate-key" to create your first API key'));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
async logout() {
|
|
263
|
+
this.config = {};
|
|
264
|
+
this.saveConfig();
|
|
265
|
+
console.log(chalk_1.default.green('ā
Logged out successfully'));
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
// CLI Commands
|
|
269
|
+
const cli = new EdPearCLI();
|
|
270
|
+
program
|
|
271
|
+
.name('edpear')
|
|
272
|
+
.description('EdPear CLI - AI-powered educational components')
|
|
273
|
+
.version('1.0.0');
|
|
274
|
+
program
|
|
275
|
+
.command('login')
|
|
276
|
+
.description('Authenticate with EdPear')
|
|
277
|
+
.action(() => cli.login());
|
|
278
|
+
program
|
|
279
|
+
.command('generate-key')
|
|
280
|
+
.description('Generate a new API key')
|
|
281
|
+
.action(() => cli.generateKey());
|
|
282
|
+
program
|
|
283
|
+
.command('status')
|
|
284
|
+
.description('Show current status and API keys')
|
|
285
|
+
.action(() => cli.status());
|
|
286
|
+
program
|
|
287
|
+
.command('command-line')
|
|
288
|
+
.description('Alias for login')
|
|
289
|
+
.action(() => cli.login());
|
|
290
|
+
program
|
|
291
|
+
.command('logout')
|
|
292
|
+
.description('Logout from EdPear')
|
|
293
|
+
.action(() => cli.logout());
|
|
294
|
+
program.parse();
|
|
295
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edpear/sdk",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "EdPear SDK - AI-powered educational components for JavaScript/TypeScript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -28,12 +28,24 @@
|
|
|
28
28
|
"url": "https://github.com/edpear/edpearofficial/issues"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"axios": "^1.6.2"
|
|
31
|
+
"axios": "^1.6.2",
|
|
32
|
+
"chalk": "^4.1.2",
|
|
33
|
+
"commander": "^11.1.0",
|
|
34
|
+
"dotenv": "^16.6.1",
|
|
35
|
+
"fs-extra": "^11.3.3",
|
|
36
|
+
"inquirer": "^9.3.8",
|
|
37
|
+
"open": "^8.4.2",
|
|
38
|
+
"ora": "^5.4.1"
|
|
32
39
|
},
|
|
33
40
|
"devDependencies": {
|
|
41
|
+
"@types/fs-extra": "^11.0.4",
|
|
42
|
+
"@types/inquirer": "^9.0.9",
|
|
34
43
|
"@types/node": "^20.0.0",
|
|
35
44
|
"typescript": "^5.0.0"
|
|
36
45
|
},
|
|
46
|
+
"bin": {
|
|
47
|
+
"edpear": "dist/cli.js"
|
|
48
|
+
},
|
|
37
49
|
"files": [
|
|
38
50
|
"dist"
|
|
39
51
|
]
|