fdb2 1.0.23 → 1.0.26

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.
@@ -0,0 +1,145 @@
1
+ /**
2
+ * @file Electron 构建脚本
3
+ * @description 构建前端 + 服务端,然后使用 electron-builder 打包桌面应用
4
+ *
5
+ * 用法:
6
+ * node scripts/electron-build.js # 当前平台
7
+ * node scripts/electron-build.js --platform=win # Windows
8
+ * node scripts/electron-build.js --platform=mac # macOS
9
+ * node scripts/electron-build.js --platform=linux # Linux
10
+ * node scripts/electron-build.js --platform=all # 所有平台
11
+ */
12
+
13
+ const path = require('path');
14
+ const { execSync } = require('child_process');
15
+
16
+ const projectRoot = path.resolve(__dirname, '..');
17
+
18
+ // Use Chinese mirror for local builds (outside CI). GitHub Actions runners can access GitHub directly.
19
+ if (!process.env.CI) {
20
+ if (!process.env.ELECTRON_MIRROR) {
21
+ process.env.ELECTRON_MIRROR = 'https://npmmirror.com/mirrors/electron/';
22
+ }
23
+ if (!process.env.ELECTRON_BUILDER_BINARIES_MIRROR) {
24
+ process.env.ELECTRON_BUILDER_BINARIES_MIRROR = 'https://npmmirror.com/mirrors/electron-builder-binaries/';
25
+ }
26
+ }
27
+
28
+ const args = process.argv.slice(2);
29
+ const targetPlatform = args.find(arg => arg.startsWith('--platform='))?.split('=')[1];
30
+
31
+ function getCurrentPlatform() {
32
+ switch (process.platform) {
33
+ case 'darwin': return 'mac';
34
+ case 'win32': return 'win';
35
+ default: return 'linux';
36
+ }
37
+ }
38
+
39
+ async function build() {
40
+ try {
41
+ console.log('Building FDB2 Electron app...\n');
42
+
43
+ // 1. 构建前端 + 服务端
44
+ console.log('1. Building Vue app + server...');
45
+ execSync('npm run build', { stdio: 'inherit', cwd: projectRoot });
46
+
47
+ // 2. Rebuild native modules for Electron
48
+ console.log('\n2. Rebuilding native modules for Electron...');
49
+ try {
50
+ // macOS 26+ 的 C++ 头文件在 SDK 内部,需要额外 -isystem 路径
51
+ const env = { ...process.env };
52
+ if (process.platform === 'darwin') {
53
+ try {
54
+ const sdkPath = execSync('xcrun --show-sdk-path', { encoding: 'utf-8' }).trim();
55
+ env.CXXFLAGS = (env.CXXFLAGS || '') + ` -isystem ${sdkPath}/usr/include/c++/v1`;
56
+ console.log(`macOS SDK: ${sdkPath}`);
57
+ } catch (e) { /* ignore */ }
58
+ }
59
+
60
+ const electronVersion = require('electron/package.json').version;
61
+ const nodedir = path.join(require('os').homedir(), '.electron-gyp', electronVersion);
62
+ const arch = process.arch;
63
+ const gypArgs = `--target=${electronVersion} --arch=${arch} --nodedir=${nodedir}`;
64
+
65
+ // 确保 Electron headers 已下载
66
+ try {
67
+ require('fs').accessSync(nodedir);
68
+ } catch {
69
+ console.log('Downloading Electron headers...');
70
+ execSync(`npx node-gyp install ${gypArgs}`, { stdio: 'inherit', cwd: projectRoot, env });
71
+ }
72
+
73
+ // 逐个编译原生模块
74
+ const nativeModules = ['better-sqlite3'];
75
+ for (const mod of nativeModules) {
76
+ let modDir;
77
+ try {
78
+ modDir = execSync(`node -p "require.resolve('${mod}/package.json').replace('/package.json','')"`, { encoding: 'utf-8', cwd: projectRoot }).trim();
79
+ } catch (e) {
80
+ console.warn(` Warning: Cannot resolve ${mod}, skipping`);
81
+ continue;
82
+ }
83
+ console.log(`Building ${mod} at ${modDir}...`);
84
+ try {
85
+ execSync(`npx node-gyp configure ${gypArgs}`, { stdio: 'inherit', cwd: modDir, env });
86
+ // macOS: 修复过时的 deployment target (10.7 → 11.0)
87
+ if (process.platform === 'darwin') {
88
+ execSync(`find build -name "*.mk" -exec sed -i '' 's/-mmacosx-version-min=10\\.7/-mmacosx-version-min=11.0/g' {} +`, { cwd: modDir });
89
+ }
90
+ execSync(`make -C build`, { stdio: 'inherit', cwd: modDir, env });
91
+ console.log(` OK: ${mod} built successfully`);
92
+ } catch (e) {
93
+ console.warn(` Warning: ${mod} build failed (non-fatal):`, e.message);
94
+ }
95
+ }
96
+ } catch (e) {
97
+ console.warn('Native module rebuild failed (non-fatal):', e.message);
98
+ }
99
+
100
+ // 3. 使用 electron-builder 打包
101
+ console.log('\n3. Packaging with electron-builder...');
102
+
103
+ const builder = require('electron-builder');
104
+ const platform = targetPlatform || getCurrentPlatform();
105
+
106
+ const platformMap = {
107
+ mac: builder.Platform.MAC.createTarget(),
108
+ win: builder.Platform.WINDOWS.createTarget(),
109
+ linux: builder.Platform.LINUX.createTarget(),
110
+ };
111
+
112
+ let targets;
113
+ if (platform === 'all') {
114
+ targets = {
115
+ ...platformMap.mac,
116
+ ...platformMap.win,
117
+ ...platformMap.linux,
118
+ };
119
+ } else if (platformMap[platform]) {
120
+ targets = platformMap[platform];
121
+ } else {
122
+ console.error(`Unsupported platform: ${platform}`);
123
+ console.error('Supported: mac, win, linux, all');
124
+ process.exit(1);
125
+ }
126
+
127
+ await builder.build({
128
+ targets,
129
+ config: {
130
+ ...require(path.resolve(projectRoot, 'electron-builder.json')),
131
+ // In CI, enable native module rebuild (build tools available)
132
+ npmRebuild: !!process.env.CI,
133
+ },
134
+ projectDir: projectRoot,
135
+ publish: 'never',
136
+ });
137
+
138
+ console.log('\nBuild complete! Check the release/ directory.');
139
+ } catch (error) {
140
+ console.error('Build failed:', error);
141
+ process.exit(1);
142
+ }
143
+ }
144
+
145
+ build();
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @file Electron 开发模式启动脚本
3
+ * @description 启动 Vite 开发服务器,然后启动 Electron 窗口指向 Vite
4
+ *
5
+ * 用法: node scripts/electron-dev.js
6
+ */
7
+
8
+ const { exec, spawn } = require('child_process');
9
+ const { resolve } = require('path');
10
+ const os = require('os');
11
+
12
+ const projectRoot = resolve(__dirname, '..');
13
+ const preferredPort = process.env.VITE_PORT || 9800;
14
+ const isWindows = os.platform() === 'win32';
15
+ let viteUrl = null;
16
+ let electronProcess = null;
17
+
18
+ // 启动 Vite 开发服务器(加大 maxBuffer 避免长时间运行溢出)
19
+ const viteProcess = exec('npm run dev', {
20
+ cwd: projectRoot,
21
+ maxBuffer: 10 * 1024 * 1024,
22
+ env: { ...process.env, VITE_PORT: String(preferredPort) },
23
+ });
24
+
25
+ let readyTimer = null;
26
+
27
+ // 去除 ANSI 转义码,避免干扰正则匹配
28
+ function stripAnsi(str) {
29
+ return str.replace(/\x1b\[[0-9;]*m/g, '').replace(/\x1b\][^\x07]*\x07/g, '');
30
+ }
31
+
32
+ // 同时监听 stdout 和 stderr,Vite v8 可能将 URL 信息输出到 stderr
33
+ function handleOutput(data) {
34
+ const raw = data.toString();
35
+ console.log(raw);
36
+
37
+ const output = stripAnsi(raw);
38
+
39
+ // 从 Vite 输出中解析实际端口(如 "Local: http://localhost:9804/")
40
+ const localMatch = output.match(/Local:\s+https?:\/\/localhost:(\d+)/);
41
+ if (localMatch) {
42
+ viteUrl = `http://localhost:${localMatch[1]}`;
43
+ console.log(`[electron-dev] Detected Vite URL: ${viteUrl}`);
44
+ // 延迟启动 Electron,等 Vite 完全就绪
45
+ if (!readyTimer) {
46
+ readyTimer = setTimeout(() => {
47
+ console.log(`[electron-dev] Starting Electron...`);
48
+ startElectron();
49
+ }, 1500);
50
+ }
51
+ }
52
+ }
53
+
54
+ viteProcess.stdout.on('data', handleOutput);
55
+ viteProcess.stderr.on('data', handleOutput);
56
+ viteProcess.on('close', (code) => console.log(`[electron-dev] Vite exited: ${code}`));
57
+
58
+ // 超时兜底:30秒内未匹配到 Vite URL,尝试使用默认端口
59
+ const FALLBACK_TIMEOUT = 30000;
60
+ const fallbackTimer = setTimeout(() => {
61
+ if (!viteUrl && !readyTimer) {
62
+ console.warn(`[electron-dev] Timeout: Vite URL not detected after ${FALLBACK_TIMEOUT / 1000}s, falling back to port ${preferredPort}`);
63
+ viteUrl = `http://localhost:${preferredPort}`;
64
+ console.log(`[electron-dev] Starting Electron with fallback URL: ${viteUrl}`);
65
+ startElectron();
66
+ }
67
+ }, FALLBACK_TIMEOUT);
68
+
69
+ function startElectron() {
70
+ if (electronProcess || !viteUrl) return; // 避免重复启动或 URL 未就绪
71
+
72
+ const electronBin = require('electron');
73
+ const mainScript = resolve(projectRoot, 'electron', 'main.js');
74
+
75
+ electronProcess = spawn(electronBin, [mainScript, `--dev-url=${viteUrl}`], {
76
+ cwd: projectRoot,
77
+ stdio: 'inherit',
78
+ env: { ...process.env, ELECTRON_DISABLE_SECURITY_WARNINGS: 'true', ELECTRON_DEV: '1' },
79
+ });
80
+
81
+ electronProcess.on('close', (code) => {
82
+ console.log(`[electron-dev] Electron exited: ${code}`);
83
+ killProcessTree(viteProcess);
84
+ process.exit(code || 0);
85
+ });
86
+
87
+ electronProcess.on('error', (err) => {
88
+ console.error('[electron-dev] Failed to start Electron:', err);
89
+ killProcessTree(viteProcess);
90
+ process.exit(1);
91
+ });
92
+ }
93
+
94
+ // 杀进程树(Windows 下需要 taskkill 清理子进程,避免端口残留)
95
+ function killProcessTree(proc) {
96
+ if (!proc || proc.killed) return;
97
+ if (isWindows && proc.pid) {
98
+ try {
99
+ exec(`taskkill /pid ${proc.pid} /T /F`, { timeout: 5000 });
100
+ } catch (e) { /* ignore */ }
101
+ } else {
102
+ proc.kill('SIGTERM');
103
+ }
104
+ }
105
+
106
+ // 信号处理
107
+ function cleanup() {
108
+ clearTimeout(fallbackTimer);
109
+ clearTimeout(readyTimer);
110
+ if (electronProcess) killProcessTree(electronProcess);
111
+ killProcessTree(viteProcess);
112
+ process.exit();
113
+ }
114
+
115
+ process.on('SIGINT', cleanup);
116
+ process.on('SIGTERM', cleanup);
@@ -1 +1 @@
1
- {"version":3,"file":"connection.service.d.ts","sourceRoot":"","sources":["../../../server/service/connection.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE7D;;;GAGG;AACH,qBAAa,iBAAiB;IAE5B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAsC;;IAO/D;;OAEG;IACG,IAAI;IAOV;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IActD;;OAEG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAKrE;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB5E;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBjG;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAapE;;OAEG;IACG,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA2C7E;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanE;;OAEG;IACG,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1C;;OAEG;YACW,uBAAuB;IAKrC;;;OAGG;IACG,yBAAyB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAW1F;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwEzB;;OAEG;YACW,eAAe;IAa7B;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"connection.service.d.ts","sourceRoot":"","sources":["../../../server/service/connection.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG7D;;;GAGG;AACH,qBAAa,iBAAiB;IAE5B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAsC;;IAM/D;;OAEG;IACG,IAAI;IAIV;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IActD;;OAEG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAKrE;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB5E;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBjG;;OAEG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAapE;;OAEG;IACG,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA2C7E;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanE;;OAEG;IACG,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1C;;OAEG;YACW,uBAAuB;IAKrC;;;OAGG;IACG,yBAAyB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAW1F;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwEzB;;OAEG;YACW,eAAe;IAa7B;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
@@ -36,8 +36,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.ConnectionService = void 0;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
- const os = __importStar(require("os"));
40
39
  const typeorm_1 = require("typeorm");
40
+ const data_dir_1 = require("../utils/data-dir");
41
41
  /**
42
42
  * 数据库连接管理服务
43
43
  * 负责管理数据库连接配置和连接实例
@@ -53,17 +53,13 @@ class ConnectionService {
53
53
  */
54
54
  activeConnections = new Map();
55
55
  constructor() {
56
- const dataDir = process.env.DB_TOOL_DATA_DIR || path.join(os.homedir(), '.fdb2');
57
- this.configPath = path.join(dataDir, 'connections.json');
56
+ this.configPath = (0, data_dir_1.getDataPath)('connections.json');
58
57
  }
59
58
  /**
60
59
  * 初始化服务,创建配置目录
61
60
  */
62
61
  async init() {
63
- const configDir = path.dirname(this.configPath);
64
- if (!fs.existsSync(configDir)) {
65
- fs.mkdirSync(configDir, { recursive: true });
66
- }
62
+ (0, data_dir_1.ensureDataDir)();
67
63
  }
68
64
  /**
69
65
  * 获取所有数据库连接配置
@@ -1 +1 @@
1
- {"version":3,"file":"connection.service.js","sourceRoot":"","sources":["../../../server/service/connection.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.service.js","sourceRoot":"","sources":["../../../server/service/connection.service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
- import * as os from 'os';
4
3
  import { ConnectionEntity } from '../model/connection.entity';
5
4
  import { DataSource, type DataSourceOptions } from 'typeorm';
5
+ import { getDataPath, ensureDataDir } from '../utils/data-dir';
6
6
 
7
7
  /**
8
8
  * 数据库连接管理服务
@@ -22,18 +22,14 @@ export class ConnectionService {
22
22
  private activeConnections: Map<string, DataSource> = new Map();
23
23
 
24
24
  constructor() {
25
- const dataDir = process.env.DB_TOOL_DATA_DIR || path.join(os.homedir(), '.fdb2');
26
- this.configPath = path.join(dataDir, 'connections.json');
25
+ this.configPath = getDataPath('connections.json');
27
26
  }
28
27
 
29
28
  /**
30
29
  * 初始化服务,创建配置目录
31
30
  */
32
31
  async init() {
33
- const configDir = path.dirname(this.configPath);
34
- if (!fs.existsSync(configDir)) {
35
- fs.mkdirSync(configDir, { recursive: true });
36
- }
32
+ ensureDataDir();
37
33
  }
38
34
 
39
35
  /**
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 获取应用数据目录路径
3
+ * 优先级: DB_TOOL_DATA_DIR 环境变量 > 用户主目录/.fdb2
4
+ */
5
+ export declare function getDataDir(): string;
6
+ /**
7
+ * 获取数据文件的完整路径
8
+ * @param filename 文件名(可以包含子目录)
9
+ */
10
+ export declare function getDataPath(filename: string): string;
11
+ /**
12
+ * 确保数据目录存在,如果不存在则创建
13
+ */
14
+ export declare function ensureDataDir(): void;
15
+ /**
16
+ * 修复数据目录权限(仅在 Unix-like 系统上)
17
+ */
18
+ export declare function fixPermissions(): void;
19
+ //# sourceMappingURL=data-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-dir.d.ts","sourceRoot":"","sources":["../../../server/utils/data-dir.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAMnC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CASrC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getDataDir = getDataDir;
37
+ exports.getDataPath = getDataPath;
38
+ exports.ensureDataDir = ensureDataDir;
39
+ exports.fixPermissions = fixPermissions;
40
+ const os = __importStar(require("os"));
41
+ const path = __importStar(require("path"));
42
+ const fs = __importStar(require("fs"));
43
+ /**
44
+ * 获取应用数据目录路径
45
+ * 优先级: DB_TOOL_DATA_DIR 环境变量 > 用户主目录/.fdb2
46
+ */
47
+ function getDataDir() {
48
+ const envDataDir = process.env.DB_TOOL_DATA_DIR;
49
+ if (envDataDir) {
50
+ return envDataDir;
51
+ }
52
+ return path.join(os.homedir(), '.fdb2');
53
+ }
54
+ /**
55
+ * 获取数据文件的完整路径
56
+ * @param filename 文件名(可以包含子目录)
57
+ */
58
+ function getDataPath(filename) {
59
+ return path.join(getDataDir(), filename);
60
+ }
61
+ /**
62
+ * 确保数据目录存在,如果不存在则创建
63
+ */
64
+ function ensureDataDir() {
65
+ const dataDir = getDataDir();
66
+ if (!fs.existsSync(dataDir)) {
67
+ fs.mkdirSync(dataDir, { recursive: true });
68
+ }
69
+ }
70
+ /**
71
+ * 修复数据目录权限(仅在 Unix-like 系统上)
72
+ */
73
+ function fixPermissions() {
74
+ if (process.platform !== 'win32') {
75
+ const dataDir = getDataDir();
76
+ try {
77
+ fs.chmodSync(dataDir, 0o700);
78
+ }
79
+ catch (error) {
80
+ console.warn('Failed to set permissions on data directory:', error);
81
+ }
82
+ }
83
+ }
84
+ //# sourceMappingURL=data-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-dir.js","sourceRoot":"","sources":["../../../server/utils/data-dir.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,gCAMC;AAMD,kCAEC;AAKD,sCAKC;AAKD,wCASC;AA9CD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB;;;GAGG;AACH,SAAgB,UAAU;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAChD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,QAAgB;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,47 @@
1
+ import * as os from 'os';
2
+ import * as path from 'path';
3
+ import * as fs from 'fs';
4
+
5
+ /**
6
+ * 获取应用数据目录路径
7
+ * 优先级: DB_TOOL_DATA_DIR 环境变量 > 用户主目录/.fdb2
8
+ */
9
+ export function getDataDir(): string {
10
+ const envDataDir = process.env.DB_TOOL_DATA_DIR;
11
+ if (envDataDir) {
12
+ return envDataDir;
13
+ }
14
+ return path.join(os.homedir(), '.fdb2');
15
+ }
16
+
17
+ /**
18
+ * 获取数据文件的完整路径
19
+ * @param filename 文件名(可以包含子目录)
20
+ */
21
+ export function getDataPath(filename: string): string {
22
+ return path.join(getDataDir(), filename);
23
+ }
24
+
25
+ /**
26
+ * 确保数据目录存在,如果不存在则创建
27
+ */
28
+ export function ensureDataDir(): void {
29
+ const dataDir = getDataDir();
30
+ if (!fs.existsSync(dataDir)) {
31
+ fs.mkdirSync(dataDir, { recursive: true });
32
+ }
33
+ }
34
+
35
+ /**
36
+ * 修复数据目录权限(仅在 Unix-like 系统上)
37
+ */
38
+ export function fixPermissions(): void {
39
+ if (process.platform !== 'win32') {
40
+ const dataDir = getDataDir();
41
+ try {
42
+ fs.chmodSync(dataDir, 0o700);
43
+ } catch (error) {
44
+ console.warn('Failed to set permissions on data directory:', error);
45
+ }
46
+ }
47
+ }