-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathforge.config.ts
More file actions
66 lines (56 loc) · 2.41 KB
/
Copy pathforge.config.ts
File metadata and controls
66 lines (56 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import type { ForgeConfig } from '@electron-forge/shared-types';
import { MakerZIP } from '@electron-forge/maker-zip';
import { MakerDMG } from '@electron-forge/maker-dmg';
import { resolve, dirname } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const config: ForgeConfig = {
packagerConfig: {
name: 'VoxTape',
executableName: 'voxtape',
appBundleId: 'com.voxtape.app',
icon: resolve(__dirname, 'assets', 'icon'),
asar: {
unpack: '{**/node_modules/sherpa-onnx-node/**,**/node_modules/sherpa-onnx-darwin-*/**,**/node_modules/better-sqlite3/**,**/node_modules/node-llama-cpp/**,**/node_modules/@node-llama-cpp/**,**/*.node,**/*.dylib}',
},
ignore: (path: string) => {
if (!path) return false;
// Always include package.json at root
if (path === '/package.json') return false;
// Include parent directories needed to reach nested targets
if (path === '/apps') return false;
if (path === '/apps/electron-shell') return false;
// Include electron-shell dist (main process bundles)
if (path.startsWith('/apps/electron-shell/dist')) return false;
// Include renderer build output
if (path.startsWith('/apps/electron-shell/renderer')) return false;
// Include node_modules (native deps)
if (path.startsWith('/node_modules')) return false;
// Ignore everything else (source code, configs, libs, scripts, etc.)
return true;
},
extendInfo: {
NSMicrophoneUsageDescription: 'VoxTape needs microphone access to transcribe your voice.',
NSAudioCaptureUsageDescription: 'VoxTape needs system audio access to transcribe meeting participants.',
NSScreenCaptureUsageDescription: 'VoxTape needs screen capture access to record system audio from meetings.',
},
// macOS code signing (disabled for now — enable with Apple Developer cert)
osxSign: undefined,
},
makers: [
new MakerDMG({
format: 'ULFO',
name: 'VoxTape',
contents: [
{ x: 130, y: 150, type: 'file', path: resolve(__dirname, 'out', 'VoxTape-darwin-arm64', 'VoxTape.app') },
{ x: 410, y: 150, type: 'link', path: '/Applications' },
],
window: {
size: { width: 540, height: 380 },
},
icon: resolve(__dirname, 'assets', 'icon.icns'),
}),
new MakerZIP({}, ['darwin', 'linux', 'win32']),
],
};
export default config;