@edpear/sdk 1.0.1 ā 1.1.1
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 +275 -0
- package/dist/cli.js.map +1 -0
- package/package.json +52 -40
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,275 @@
|
|
|
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
|
+
console.log(chalk_1.default.gray(`Connecting to: ${baseURL}`));
|
|
77
|
+
console.log(chalk_1.default.yellow('Press ENTER to open the browser for authentication...'));
|
|
78
|
+
await inquirer_1.default.prompt([
|
|
79
|
+
{
|
|
80
|
+
type: 'input',
|
|
81
|
+
name: 'enter',
|
|
82
|
+
message: '',
|
|
83
|
+
},
|
|
84
|
+
]);
|
|
85
|
+
try {
|
|
86
|
+
// Start the auth flow by requesting a temporary token from the server
|
|
87
|
+
// This part needs a new API endpoint to initiate the flow without user ID initially
|
|
88
|
+
// For now, we'll direct them to the login page which will handle the flow
|
|
89
|
+
const loginURL = `${baseURL}/auth/login?cli=true`;
|
|
90
|
+
await (0, open_1.default)(loginURL);
|
|
91
|
+
console.log(chalk_1.default.green('ā
Browser opened!'));
|
|
92
|
+
console.log(chalk_1.default.yellow('Please login and complete 2FA verification in your browser.'));
|
|
93
|
+
console.log(chalk_1.default.gray('The CLI will automatically detect when you are authenticated.\n'));
|
|
94
|
+
// We need a way to poll for completion.
|
|
95
|
+
// Since we don't have the user ID yet, we might need a unique session ID generated here
|
|
96
|
+
// But for this simplified flow, we'll ask for the email to poll status
|
|
97
|
+
const { email } = await inquirer_1.default.prompt([
|
|
98
|
+
{
|
|
99
|
+
type: 'input',
|
|
100
|
+
name: 'email',
|
|
101
|
+
message: 'Enter your email to wait for authentication:',
|
|
102
|
+
validate: (input) => input.includes('@') || 'Please enter a valid email',
|
|
103
|
+
},
|
|
104
|
+
]);
|
|
105
|
+
console.log(chalk_1.default.gray('\nWaiting for authentication completion...'));
|
|
106
|
+
// Poll for authentication completion
|
|
107
|
+
const spinner = (0, ora_1.default)('Waiting for you to complete login in browser...').start();
|
|
108
|
+
const maxAttempts = 200; // 10 minutes
|
|
109
|
+
let attempts = 0;
|
|
110
|
+
while (attempts < maxAttempts) {
|
|
111
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
112
|
+
try {
|
|
113
|
+
// Poll a new endpoint that checks latest CLI auth for this email
|
|
114
|
+
const statusResponse = await axios_1.default.post(`${baseURL}/api/auth/cli/poll`, { email });
|
|
115
|
+
if (statusResponse.data.status === 'completed' && statusResponse.data.cliToken) {
|
|
116
|
+
spinner.stop();
|
|
117
|
+
// Save token and user data
|
|
118
|
+
this.config.token = statusResponse.data.cliToken;
|
|
119
|
+
this.config.user = statusResponse.data.user;
|
|
120
|
+
this.saveConfig();
|
|
121
|
+
console.log(chalk_1.default.green('\nā
Successfully authenticated!'));
|
|
122
|
+
console.log(chalk_1.default.blue(`\nWelcome, ${statusResponse.data.user.name}!`));
|
|
123
|
+
console.log(chalk_1.default.gray(`Email: ${statusResponse.data.user.email}`));
|
|
124
|
+
console.log(chalk_1.default.gray(`Credits: ${statusResponse.data.user.credits}`));
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
attempts++;
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
// Continue polling on error
|
|
131
|
+
attempts++;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
spinner.stop();
|
|
135
|
+
console.log(chalk_1.default.yellow('\nā±ļø Authentication timeout. Please try again.'));
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
console.error(chalk_1.default.red('Error during login:'), error.message);
|
|
140
|
+
process.exit(1);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async generateKey() {
|
|
144
|
+
if (!this.config.token) {
|
|
145
|
+
console.error(chalk_1.default.red('Please login first: edpear login'));
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
console.log(chalk_1.default.blue('š Generate New API Key\n'));
|
|
149
|
+
const { name } = await inquirer_1.default.prompt([
|
|
150
|
+
{
|
|
151
|
+
type: 'input',
|
|
152
|
+
name: 'name',
|
|
153
|
+
message: 'Enter a name for your API key:',
|
|
154
|
+
default: 'My API Key',
|
|
155
|
+
validate: (input) => {
|
|
156
|
+
if (!input.trim()) {
|
|
157
|
+
return 'Name is required';
|
|
158
|
+
}
|
|
159
|
+
return true;
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
]);
|
|
163
|
+
const spinner = (0, ora_1.default)('Generating API key...').start();
|
|
164
|
+
try {
|
|
165
|
+
const result = await this.makeRequest('/api/keys/generate', {
|
|
166
|
+
name,
|
|
167
|
+
}, 'POST');
|
|
168
|
+
spinner.succeed(chalk_1.default.green('ā
API key generated successfully!'));
|
|
169
|
+
// Add to config
|
|
170
|
+
if (!this.config.apiKeys) {
|
|
171
|
+
this.config.apiKeys = [];
|
|
172
|
+
}
|
|
173
|
+
this.config.apiKeys.push(result.apiKey);
|
|
174
|
+
this.saveConfig();
|
|
175
|
+
console.log(chalk_1.default.blue('\nš Your new API key:'));
|
|
176
|
+
console.log(chalk_1.default.yellow(result.apiKey.key));
|
|
177
|
+
console.log(chalk_1.default.gray('\nš” Save this key securely. It will not be shown again.'));
|
|
178
|
+
// Ask if user wants to save to .env.local
|
|
179
|
+
const { saveToEnv } = await inquirer_1.default.prompt([
|
|
180
|
+
{
|
|
181
|
+
type: 'confirm',
|
|
182
|
+
name: 'saveToEnv',
|
|
183
|
+
message: 'Save API key to .env.local file?',
|
|
184
|
+
default: true,
|
|
185
|
+
},
|
|
186
|
+
]);
|
|
187
|
+
if (saveToEnv) {
|
|
188
|
+
await this.saveToEnvFile(result.apiKey.key);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
spinner.fail(chalk_1.default.red('ā Failed to generate API key'));
|
|
193
|
+
console.error(chalk_1.default.red('Error:'), error.response?.data?.error || error.message);
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
async saveToEnvFile(apiKey) {
|
|
198
|
+
try {
|
|
199
|
+
let envContent = '';
|
|
200
|
+
if (fs_extra_1.default.existsSync(ENV_FILE)) {
|
|
201
|
+
envContent = fs_extra_1.default.readFileSync(ENV_FILE, 'utf8');
|
|
202
|
+
}
|
|
203
|
+
// Remove existing EDPEAR_API_KEY if present
|
|
204
|
+
envContent = envContent.replace(/^EDPEAR_API_KEY=.*$/m, '');
|
|
205
|
+
// Add new API key
|
|
206
|
+
if (envContent && !envContent.endsWith('\n')) {
|
|
207
|
+
envContent += '\n';
|
|
208
|
+
}
|
|
209
|
+
envContent += `EDPEAR_API_KEY=${apiKey}\n`;
|
|
210
|
+
fs_extra_1.default.writeFileSync(ENV_FILE, envContent);
|
|
211
|
+
console.log(chalk_1.default.green('ā
API key saved to .env.local'));
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
console.error(chalk_1.default.red('Error saving to .env.local:'), error);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
async status() {
|
|
218
|
+
if (!this.config.token) {
|
|
219
|
+
console.log(chalk_1.default.red('ā Not authenticated'));
|
|
220
|
+
console.log(chalk_1.default.gray('Run "edpear login" to get started'));
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
console.log(chalk_1.default.blue('š EdPear Status\n'));
|
|
224
|
+
if (this.config.user) {
|
|
225
|
+
console.log(chalk_1.default.green(`š¤ User: ${this.config.user.name}`));
|
|
226
|
+
console.log(chalk_1.default.green(`š§ Email: ${this.config.user.email}`));
|
|
227
|
+
console.log(chalk_1.default.green(`š³ Credits: ${this.config.user.credits}`));
|
|
228
|
+
}
|
|
229
|
+
if (this.config.apiKeys && this.config.apiKeys.length > 0) {
|
|
230
|
+
console.log(chalk_1.default.blue(`\nš API Keys (${this.config.apiKeys.length}):`));
|
|
231
|
+
this.config.apiKeys.forEach((key, index) => {
|
|
232
|
+
console.log(chalk_1.default.gray(` ${index + 1}. ${key.name}`));
|
|
233
|
+
console.log(chalk_1.default.yellow(` ${key.key}`));
|
|
234
|
+
console.log(chalk_1.default.gray(` Created: ${new Date(key.createdAt).toLocaleDateString()}`));
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
console.log(chalk_1.default.yellow('\nš No API keys found'));
|
|
239
|
+
console.log(chalk_1.default.gray('Run "edpear generate-key" to create your first API key'));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
async logout() {
|
|
243
|
+
this.config = {};
|
|
244
|
+
this.saveConfig();
|
|
245
|
+
console.log(chalk_1.default.green('ā
Logged out successfully'));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// CLI Commands
|
|
249
|
+
const cli = new EdPearCLI();
|
|
250
|
+
program
|
|
251
|
+
.name('edpear')
|
|
252
|
+
.description('EdPear CLI - AI-powered educational components')
|
|
253
|
+
.version('1.0.0');
|
|
254
|
+
program
|
|
255
|
+
.command('login')
|
|
256
|
+
.description('Authenticate with EdPear')
|
|
257
|
+
.action(() => cli.login());
|
|
258
|
+
program
|
|
259
|
+
.command('generate-key')
|
|
260
|
+
.description('Generate a new API key')
|
|
261
|
+
.action(() => cli.generateKey());
|
|
262
|
+
program
|
|
263
|
+
.command('status')
|
|
264
|
+
.description('Show current status and API keys')
|
|
265
|
+
.action(() => cli.status());
|
|
266
|
+
program
|
|
267
|
+
.command('command-line')
|
|
268
|
+
.description('Alias for login')
|
|
269
|
+
.action(() => cli.login());
|
|
270
|
+
program
|
|
271
|
+
.command('logout')
|
|
272
|
+
.description('Logout from EdPear')
|
|
273
|
+
.action(() => cli.logout());
|
|
274
|
+
program.parse();
|
|
275
|
+
//# 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,40 +1,52 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@edpear/sdk",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "EdPear SDK - AI-powered educational components for JavaScript/TypeScript",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "tsc",
|
|
9
|
-
"dev": "tsc --watch",
|
|
10
|
-
"prepublishOnly": "npm run build"
|
|
11
|
-
},
|
|
12
|
-
"keywords": [
|
|
13
|
-
"edpear",
|
|
14
|
-
"ai",
|
|
15
|
-
"education",
|
|
16
|
-
"vision",
|
|
17
|
-
"sdk"
|
|
18
|
-
],
|
|
19
|
-
"author": "EdPear",
|
|
20
|
-
"license": "MIT",
|
|
21
|
-
"repository": {
|
|
22
|
-
"type": "git",
|
|
23
|
-
"url": "https://github.com/edpear/edpearofficial.git",
|
|
24
|
-
"directory": "edpear-sdk"
|
|
25
|
-
},
|
|
26
|
-
"homepage": "https://edpear.com",
|
|
27
|
-
"bugs": {
|
|
28
|
-
"url": "https://github.com/edpear/edpearofficial/issues"
|
|
29
|
-
},
|
|
30
|
-
"dependencies": {
|
|
31
|
-
"axios": "^1.6.2"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@edpear/sdk",
|
|
3
|
+
"version": "1.1.1",
|
|
4
|
+
"description": "EdPear SDK - AI-powered educational components for JavaScript/TypeScript",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"dev": "tsc --watch",
|
|
10
|
+
"prepublishOnly": "npm run build"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"edpear",
|
|
14
|
+
"ai",
|
|
15
|
+
"education",
|
|
16
|
+
"vision",
|
|
17
|
+
"sdk"
|
|
18
|
+
],
|
|
19
|
+
"author": "EdPear",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "https://github.com/edpear/edpearofficial.git",
|
|
24
|
+
"directory": "edpear-sdk"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://edpear.com",
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/edpear/edpearofficial/issues"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
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"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/fs-extra": "^11.0.4",
|
|
42
|
+
"@types/inquirer": "^9.0.9",
|
|
43
|
+
"@types/node": "^20.0.0",
|
|
44
|
+
"typescript": "^5.0.0"
|
|
45
|
+
},
|
|
46
|
+
"bin": {
|
|
47
|
+
"edpear": "dist/cli.js"
|
|
48
|
+
},
|
|
49
|
+
"files": [
|
|
50
|
+
"dist"
|
|
51
|
+
]
|
|
52
|
+
}
|