upfynai-code 2.9.7 → 2.9.8
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/package.json +1 -4
- package/server/database/db.js +6 -1
- package/server/routes/auth.js +7 -2
- package/server/utils/email.js +7 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "upfynai-code",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.8",
|
|
4
4
|
"description": "Visual AI coding interface for Claude Code, Cursor & Codex. Canvas whiteboard, multi-agent chat, terminal, git, voice assistant. Self-host locally or connect to cli.upfyn.com for remote access.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "server/index.js",
|
|
@@ -56,7 +56,6 @@
|
|
|
56
56
|
"@anthropic-ai/claude-agent-sdk": "^0.1.71",
|
|
57
57
|
"@anthropic-ai/sdk": "^0.78.0",
|
|
58
58
|
"@iarna/toml": "^2.2.5",
|
|
59
|
-
"@libsql/client": "^0.14.0",
|
|
60
59
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
61
60
|
"@octokit/rest": "^22.0.0",
|
|
62
61
|
"@openai/codex-sdk": "^0.101.0",
|
|
@@ -68,7 +67,6 @@
|
|
|
68
67
|
"edge-tts-universal": "^1.3.3",
|
|
69
68
|
"express": "^4.18.2",
|
|
70
69
|
"form-data": "^4.0.5",
|
|
71
|
-
"google-auth-library": "^10.6.1",
|
|
72
70
|
"gray-matter": "^4.0.3",
|
|
73
71
|
"js-yaml": "^4.1.0",
|
|
74
72
|
"jsonwebtoken": "^9.0.2",
|
|
@@ -76,7 +74,6 @@
|
|
|
76
74
|
"multer": "^2.0.2",
|
|
77
75
|
"node-cron": "^4.2.1",
|
|
78
76
|
"razorpay": "^2.9.6",
|
|
79
|
-
"resend": "^6.9.2",
|
|
80
77
|
"ws": "^8.14.2",
|
|
81
78
|
"zod": "^3.25.76"
|
|
82
79
|
},
|
package/server/database/db.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
let createClient;
|
|
2
|
+
try {
|
|
3
|
+
createClient = (await import('@libsql/client')).createClient;
|
|
4
|
+
} catch {
|
|
5
|
+
// @libsql/client not available — will use fallback or fail at runtime if DB is needed
|
|
6
|
+
}
|
|
2
7
|
import path from 'path';
|
|
3
8
|
import fs from 'fs';
|
|
4
9
|
import crypto from 'crypto';
|
package/server/routes/auth.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import crypto from 'crypto';
|
|
3
3
|
// bcrypt removed — plaintext password storage for admin access
|
|
4
|
-
|
|
4
|
+
let OAuth2Client;
|
|
5
|
+
try {
|
|
6
|
+
OAuth2Client = (await import('google-auth-library')).OAuth2Client;
|
|
7
|
+
} catch {
|
|
8
|
+
// google-auth-library not available — Google OAuth will be disabled
|
|
9
|
+
}
|
|
5
10
|
import { db, userDb, subscriptionDb, relayTokensDb, apiKeysDb, resetTokenDb } from '../database/db.js';
|
|
6
11
|
import { generateToken, authenticateToken, setSessionCookie, clearSessionCookie } from '../middleware/auth.js';
|
|
7
12
|
import { sendPasswordResetEmail } from '../utils/email.js';
|
|
8
13
|
|
|
9
|
-
const googleClient = process.env.GOOGLE_CLIENT_ID ? new OAuth2Client(process.env.GOOGLE_CLIENT_ID) : null;
|
|
14
|
+
const googleClient = (process.env.GOOGLE_CLIENT_ID && OAuth2Client) ? new OAuth2Client(process.env.GOOGLE_CLIENT_ID) : null;
|
|
10
15
|
|
|
11
16
|
const router = express.Router();
|
|
12
17
|
|
package/server/utils/email.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
let Resend;
|
|
2
|
+
try {
|
|
3
|
+
Resend = (await import('resend')).Resend;
|
|
4
|
+
} catch {
|
|
5
|
+
// resend not available — email features will be disabled
|
|
6
|
+
}
|
|
2
7
|
|
|
3
|
-
const resend = process.env.RESEND_API_KEY ? new Resend(process.env.RESEND_API_KEY) : null;
|
|
8
|
+
const resend = (process.env.RESEND_API_KEY && Resend) ? new Resend(process.env.RESEND_API_KEY) : null;
|
|
4
9
|
|
|
5
10
|
const FROM_EMAIL = process.env.FROM_EMAIL || 'Upfyn Code <noreply@upfyn.com>';
|
|
6
11
|
const APP_URL = process.env.APP_URL || 'https://cli.upfyn.com';
|