备份: 完整开发状态(含反混淆脚本和临时文件)

This commit is contained in:
ccdojox-crypto
2025-12-17 17:18:02 +08:00
parent 9e2333c90c
commit 7e9ea173a7
2872 changed files with 326818 additions and 249 deletions

View File

@@ -0,0 +1,221 @@
'use strict';
// ============================================
// CursorPro Extension - 反混淆版本
// ============================================
Object.defineProperty(exports, "__esModule", { value: true });
const vscode = require('vscode');
const provider_1 = require('./webview/provider');
const fs = require('fs');
const path = require('path');
let usageStatusBarItem;
// 创建输出通道
exports.outputChannel = vscode.window.createOutputChannel('CursorPro');
/**
* 日志函数
*/
function log(message) {
const timestamp = new Date().toLocaleTimeString();
exports.outputChannel.appendLine('[' + timestamp + '] ' + message);
console.log('[CursorPro] ' + message);
}
exports.log = log;
/**
* 清理 Service Worker 缓存
*/
function cleanServiceWorkerCache() {
try {
const platform = process.platform;
const cachePaths = [];
if (platform === 'win32') {
const appData = process.env.APPDATA || '';
const localAppData = process.env.LOCALAPPDATA || '';
cachePaths.push(
path.join(appData, 'Cursor', 'Service Worker'),
path.join(localAppData, 'Cursor', 'Service Worker'),
path.join(appData, 'Cursor', 'GPUCache'),
path.join(localAppData, 'Cursor', 'GPUCache')
);
} else if (platform === 'darwin') {
const home = process.env.HOME || '';
cachePaths.push(
path.join(home, 'Library', 'Application Support', 'Cursor', 'Service Worker'),
path.join(home, 'Library', 'Caches', 'Cursor', 'Service Worker')
);
} else {
const home = process.env.HOME || '';
cachePaths.push(
path.join(home, '.config', 'Cursor', 'Service Worker'),
path.join(home, '.cache', 'Cursor', 'Service Worker')
);
}
for (const cachePath of cachePaths) {
if (!fs.existsSync(cachePath)) continue;
// 清理 ScriptCache
const scriptCachePath = path.join(cachePath, 'ScriptCache');
if (fs.existsSync(scriptCachePath)) {
try {
const files = fs.readdirSync(scriptCachePath);
for (const file of files) {
try {
fs.unlinkSync(path.join(scriptCachePath, file));
} catch (e) {}
}
console.log('[CursorPro] Service Worker ScriptCache 已清理:', scriptCachePath);
} catch (e) {}
}
// 清理 CacheStorage
const cacheStoragePath = path.join(cachePath, 'CacheStorage');
if (fs.existsSync(cacheStoragePath)) {
try {
deleteFolderRecursive(cacheStoragePath);
console.log('[CursorPro] Service Worker CacheStorage 已清理:', cacheStoragePath);
} catch (e) {}
}
// 清理 Database
const databasePath = path.join(cachePath, 'Database');
if (fs.existsSync(databasePath)) {
try {
deleteFolderRecursive(databasePath);
console.log('[CursorPro] Service Worker Database 已清理:', databasePath);
} catch (e) {}
}
}
} catch (error) {
console.log('[CursorPro] 清理 Service Worker 缓存时出错:', error);
}
}
/**
* 递归删除文件夹
*/
function deleteFolderRecursive(folderPath) {
if (fs.existsSync(folderPath)) {
fs.readdirSync(folderPath).forEach(file => {
const curPath = path.join(folderPath, file);
if (fs.lstatSync(curPath).isDirectory()) {
deleteFolderRecursive(curPath);
} else {
try {
fs.unlinkSync(curPath);
} catch (e) {}
}
});
try {
fs.rmdirSync(folderPath);
} catch (e) {}
}
}
/**
* 激活扩展
*/
function activate(context) {
// 清理 Service Worker 缓存
cleanServiceWorkerCache();
// 创建 WebView Provider
const viewProvider = new provider_1.CursorProViewProvider(context.extensionUri, context);
// 注册 WebView
context.subscriptions.push(
vscode.window.registerWebviewViewProvider('cursorpro.mainView', viewProvider)
);
// 创建状态栏项
usageStatusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100);
usageStatusBarItem.text = '$(dashboard) 用量: --';
usageStatusBarItem.tooltip = '点击查看账号用量详情';
usageStatusBarItem.command = 'cursorpro.showPanel';
usageStatusBarItem.backgroundColor = new vscode.ThemeColor('statusBarItem.prominentBackground');
// 如果有保存的 key显示状态栏
const savedKey = context.globalState.get('cursorpro.key');
if (savedKey) {
usageStatusBarItem.show();
}
context.subscriptions.push(usageStatusBarItem);
// 设置同步的键
context.globalState.setKeysForSync(['cursorpro.key']);
// 注册显示面板命令
context.subscriptions.push(
vscode.commands.registerCommand('cursorpro.showPanel', () => {
vscode.commands.executeCommand('cursorpro.mainView.focus');
})
);
}
exports.activate = activate;
/**
* 停用扩展
*/
function deactivate() {
console.log('CursorPro 插件已停用');
}
exports.deactivate = deactivate;
/**
* 显示状态栏
*/
function showStatusBar() {
if (usageStatusBarItem) {
usageStatusBarItem.show();
}
}
exports.showStatusBar = showStatusBar;
/**
* 隐藏状态栏
*/
function hideStatusBar() {
if (usageStatusBarItem) {
usageStatusBarItem.hide();
}
}
exports.hideStatusBar = hideStatusBar;
/**
* 更新用量状态栏
* @param {number} requestCount - 请求次数
* @param {number|string} usageCost - 已用额度
*/
function updateUsageStatusBar(requestCount, usageCost) {
if (usageStatusBarItem) {
const count = typeof requestCount === 'number' ? requestCount : requestCount;
const cost = typeof usageCost === 'number' ? usageCost : parseFloat(usageCost.toString().replace('$', '')) || 0;
const costDisplay = typeof usageCost === 'number' ? '$' + usageCost.toFixed(2) : usageCost;
usageStatusBarItem.text = '$(dashboard) ' + count + '次 | ' + costDisplay;
usageStatusBarItem.tooltip = '请求次数: ' + count + '\n已用额度: ' + costDisplay + '\n点击查看详情';
// 根据用量设置颜色
if (cost >= 10) {
// 高用量 - 红色警告
usageStatusBarItem.backgroundColor = new vscode.ThemeColor('statusBarItem.errorBackground');
usageStatusBarItem.color = undefined;
} else if (cost >= 5) {
// 中用量 - 黄色警告
usageStatusBarItem.backgroundColor = new vscode.ThemeColor('statusBarItem.warningBackground');
usageStatusBarItem.color = undefined;
} else {
// 低用量 - 绿色
usageStatusBarItem.backgroundColor = undefined;
usageStatusBarItem.color = '#4ade80';
}
}
}
exports.updateUsageStatusBar = updateUsageStatusBar;