V0.1 发布

This commit is contained in:
Cheney
2025-02-01 18:18:13 +08:00
parent f3765a938c
commit 09b170a3f0
75 changed files with 7951 additions and 0 deletions
+1343
View File
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "src/main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev" : "bun src/main.js",
"build": "pkg src/main.js --targets node18-win-x64 --output PFakeUKey-x86_64-pc-windows-msvc.exe"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.20.2",
"cors": "^2.8.5",
"express": "^4.19.2",
"kill-port-process": "^3.2.1",
"rimraf": "^5.0.10",
"sm-crypto": "^0.3.13"
}
}
+96
View File
@@ -0,0 +1,96 @@
/**
* 配置项
* windows 默认存储在用户 home 目录的 AppData\Local 下的 PFakeUKey 目录
* linux 默认存贮在用户 home 目录的 .PFakeUKey 目录
*/
const os = require("os")
const path = require("path")
const fs = require("fs")
const { rimraf, rimrafSync, native, nativeSync } = require('rimraf')
const defPIN = "12345678"
// 默认配置
let configMap = {
}
// 获取操作系统的名称
const platform = os.platform();
let baseDir = undefined
const userHomeDir = os.homedir();
// 检查操作系统类型
if (platform === 'win32') {
console.log('操作系统是 Windows');
baseDir = path.resolve(userHomeDir, "AppData/Local/PFakeUKey")
} else if (platform === 'linux') {
console.log('操作系统是 Linux');
baseDir = path.resolve(userHomeDir, ".PFakeUKey")
} else {
console.log('暂不支持操作系统 ' + platform );
process.exit(-1)
}
// 检查目录是否存在
// 如果目录不存在创建目录
if (!fs.existsSync(baseDir)) {
// 使用递归创建目录
fs.mkdirSync(baseDir, { recursive: true });
console.log(`目录 ${baseDir} 创建成功`);
} else {
console.log(`目录 ${baseDir} 已存在,无需创建`);
}
const configFile = path.resolve(baseDir, "config.json");
// 判断文件是否存在
// 如果存在读取
try {
if ( fs.existsSync( configFile ) ) {
let json = fs.readFileSync(configFile, "UTF-8")
configMap = JSON.parse(json);
} else {
throw "unexists"
}
} catch ( e ) {
// 如果 不存在/读取异常 用默认值填充
fs.writeFileSync(configFile, JSON.stringify( configMap, null, 4 ))
}
module.exports = {
getFakeUKeyDir(){
let ukeyDir = path.resolve(baseDir, "ukeys")
if ( !fs.existsSync(ukeyDir) ) {
fs.mkdirSync(ukeyDir, { recursive: true });
// 初始化 7 个 key
for ( let i = 0 ; i < 7 ; i++ ) {
let ukey = path.resolve(ukeyDir, "FKey-" + (i + 1));
fs.mkdirSync(ukey);
fs.mkdirSync(path.resolve(ukey, "root"));
fs.writeFileSync(path.resolve(ukey, "pin.txt"), defPIN)
}
}
return ukeyDir;
},
newFakeUKey(name){
let ukeyDir = this.getFakeUKeyDir();
let ukey = path.resolve(ukeyDir, name ? name : "FKey-" + (new Date().getTime()));
fs.mkdirSync(ukey);
fs.mkdirSync(path.resolve(ukey, "root"));
fs.writeFileSync(path.resolve(ukey, "pin.txt"), defPIN)
return ukey;
},
delFakeUKey(name){
let ukeyDir = this.getFakeUKeyDir();
let ukey = path.resolve(ukeyDir, name);
rimrafSync(ukey);
},
getConfig(key) {
return configMap[key]
},
setConfig(key, value) {
configMap[key] = value
fs.writeFileSync(configFile, JSON.stringify( configMap, null, 4 ))
}
}