@botmem/apple-bridge 0.35.28 → 0.35.29

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/dist/cli.d.ts CHANGED
@@ -3,6 +3,6 @@
3
3
  * Botmem Apple Bridge CLI.
4
4
  *
5
5
  * Usage:
6
- * npx @botmem/apple-bridge --token=<token> [--server=wss://botmem.xyz/imsg-tunnel]
6
+ * npx @botmem/apple-bridge --token=<token> [--server=wss://botmem.xyz/apple-tunnel]
7
7
  */
8
8
  export {};
package/dist/cli.js CHANGED
@@ -3,14 +3,14 @@
3
3
  * Botmem Apple Bridge CLI.
4
4
  *
5
5
  * Usage:
6
- * npx @botmem/apple-bridge --token=<token> [--server=wss://botmem.xyz/imsg-tunnel]
6
+ * npx @botmem/apple-bridge --token=<token> [--server=wss://botmem.xyz/apple-tunnel]
7
7
  */
8
8
  import { Command } from 'commander';
9
- import { runPreflight, DEFAULT_DB_PATH } from './preflight.js';
10
- import { ImsgDatabase } from './db.js';
9
+ import { runPreflight, DEFAULT_DB_PATH, detectRunnerName } from './preflight.js';
10
+ import { AppleMessagesDatabase } from './db.js';
11
11
  import { RpcHandler } from './rpc-handler.js';
12
12
  import { TunnelClient } from './tunnel.js';
13
- const DEFAULT_SERVER = 'wss://botmem.xyz/imsg-tunnel';
13
+ import { defaultConfigPath, formatSources, getStatus, installService, loadConfig, mergeConfig, parseSources, removeService, restartService, saveConfig, tunnelUrlFromHost, } from './setup.js';
14
14
  const program = new Command();
15
15
  function timestamp() {
16
16
  return new Date().toISOString();
@@ -24,14 +24,40 @@ function error(message = '') {
24
24
  program
25
25
  .name('apple-bridge')
26
26
  .description('Botmem Apple Bridge — syncs local Apple data securely')
27
- .requiredOption('--token <token>', 'Bridge token from your Botmem dashboard')
28
- .option('--server <url>', 'Botmem server URL', DEFAULT_SERVER)
27
+ .option('--config <path>', 'Path to local Botmem Apple Bridge config.json')
28
+ .option('--token <token>', 'Bridge token from your Botmem dashboard')
29
+ .option('--server <url>', 'Botmem tunnel WebSocket URL')
29
30
  .option('--db <path>', 'Path to chat.db', DEFAULT_DB_PATH)
31
+ .option('--sources <list>', 'Comma-separated sources: contacts,imessages', 'contacts,imessages')
30
32
  .action(async (opts) => {
31
33
  console.log('\n BOTMEM APPLE BRIDGE\n');
34
+ let fileConfig;
35
+ try {
36
+ fileConfig = loadConfig(opts.config || defaultConfigPath());
37
+ }
38
+ catch (err) {
39
+ error(err instanceof Error ? err.message : String(err));
40
+ process.exit(1);
41
+ }
42
+ const merged = mergeConfig(fileConfig, {
43
+ token: opts.token,
44
+ server: opts.server,
45
+ sources: opts.sources !== 'contacts,imessages' ? opts.sources : undefined,
46
+ });
47
+ const token = merged.token;
48
+ const server = merged.server;
49
+ const sourceList = merged.sources;
50
+ const sources = parseSources(sourceList);
51
+ if (!token) {
52
+ error('Missing bridge token. Pass --token or --config with a token.');
53
+ process.exit(1);
54
+ }
32
55
  // ── Preflight ─────────────────────────────────────────────────────────
33
56
  log('Checking prerequisites...');
34
- const preflight = runPreflight(opts.db);
57
+ const preflight = runPreflight(opts.db, {
58
+ requireMessages: sources.imessages,
59
+ runnerName: detectRunnerName(),
60
+ });
35
61
  if (!preflight.ok) {
36
62
  error('PREFLIGHT FAILED:');
37
63
  for (const err of preflight.errors) {
@@ -41,18 +67,29 @@ program
41
67
  }
42
68
  process.exit(1);
43
69
  }
44
- log(`iMessage database: ${preflight.dbPath}`);
45
- log(`Chats found: ${preflight.chatCount ?? 'unknown'}`);
70
+ log(`Sources: ${sources.contacts ? 'contacts' : ''}${sources.contacts && sources.imessages ? ', ' : ''}${sources.imessages ? 'imessages' : ''}`);
71
+ if (sources.imessages) {
72
+ log(`iMessage database: ${preflight.dbPath}`);
73
+ log(`Chats found: ${preflight.chatCount ?? 'unknown'}`);
74
+ }
75
+ else {
76
+ log('iMessage database check skipped for contacts-only mode');
77
+ }
46
78
  // ── Open database ─────────────────────────────────────────────────────
47
- const db = new ImsgDatabase(opts.db);
48
- const rpcHandler = new RpcHandler(db);
79
+ let db = null;
80
+ const getDb = () => {
81
+ db ??= new AppleMessagesDatabase(opts.db);
82
+ return db;
83
+ };
84
+ const rpcHandler = new RpcHandler(getDb);
49
85
  // ── Connect tunnel ────────────────────────────────────────────────────
50
86
  console.log('');
51
- log(`Connecting to ${opts.server}...`);
87
+ log(`Connecting to ${server}...`);
52
88
  const tunnel = new TunnelClient({
53
- serverUrl: opts.server,
54
- token: opts.token,
89
+ serverUrl: server,
90
+ token,
55
91
  rpcHandler,
92
+ sources: sourceList,
56
93
  });
57
94
  tunnel.on('status', (status) => {
58
95
  const icon = {
@@ -71,7 +108,7 @@ program
71
108
  console.error('');
72
109
  error(`FATAL: ${msg}`);
73
110
  console.error('');
74
- db.close();
111
+ db?.close();
75
112
  process.exit(1);
76
113
  });
77
114
  tunnel.connect();
@@ -80,11 +117,113 @@ program
80
117
  console.log('');
81
118
  log('Shutting down...');
82
119
  tunnel.destroy();
83
- db.close();
120
+ db?.close();
84
121
  process.exit(0);
85
122
  };
86
123
  process.on('SIGINT', shutdown);
87
124
  process.on('SIGTERM', shutdown);
88
125
  });
126
+ program
127
+ .command('configure')
128
+ .description('Write local bridge config used by both the CLI and macOS app')
129
+ .requiredOption('--token <token>', 'Bridge token from Botmem')
130
+ .option('--server <url>', 'Botmem tunnel WebSocket URL')
131
+ .option('--host <url>', 'Botmem HTTP(S) host, converted to the tunnel URL')
132
+ .option('--account-id <id>', 'Botmem Apple account ID')
133
+ .option('--sources <list>', 'Comma-separated sources: contacts,imessages', 'contacts,imessages')
134
+ .option('--config <path>', 'Config path', defaultConfigPath())
135
+ .action((opts) => {
136
+ const server = opts.server || tunnelUrlFromHost(opts.host);
137
+ const sources = formatSources(parseSources(opts.sources));
138
+ saveConfig({
139
+ server,
140
+ token: opts.token,
141
+ accountId: opts.accountId || '',
142
+ sources,
143
+ }, opts.config);
144
+ log(`Config saved: ${opts.config}`);
145
+ log(`Server: ${server}`);
146
+ log(`Sources: ${sources || 'none'}`);
147
+ });
148
+ program
149
+ .command('preflight')
150
+ .description('Check local Apple permissions for the configured sources')
151
+ .option('--config <path>', 'Config path', defaultConfigPath())
152
+ .option('--db <path>', 'Path to chat.db', DEFAULT_DB_PATH)
153
+ .option('--sources <list>', 'Override sources for this check')
154
+ .action((opts) => {
155
+ const config = loadConfig(opts.config);
156
+ const sources = parseSources(opts.sources || config.sources);
157
+ const result = runPreflight(opts.db, {
158
+ requireMessages: sources.imessages,
159
+ runnerName: detectRunnerName(),
160
+ });
161
+ if (result.ok) {
162
+ log('Preflight OK');
163
+ if (sources.imessages) {
164
+ log(`iMessage database: ${result.dbPath}`);
165
+ log(`Chats found: ${result.chatCount ?? 'unknown'}`);
166
+ }
167
+ else {
168
+ log('iMessage database check skipped for contacts-only mode');
169
+ }
170
+ return;
171
+ }
172
+ error('Preflight failed:');
173
+ for (const failure of result.errors) {
174
+ for (const line of failure.split('\n'))
175
+ error(line);
176
+ }
177
+ process.exit(1);
178
+ });
179
+ program
180
+ .command('status')
181
+ .description('Show shared bridge config, permission, and service state')
182
+ .option('--config <path>', 'Config path', defaultConfigPath())
183
+ .option('--json', 'Print machine-readable JSON')
184
+ .action((opts) => {
185
+ const status = getStatus(opts.config);
186
+ if (opts.json) {
187
+ console.log(JSON.stringify(status, null, 2));
188
+ return;
189
+ }
190
+ log(`Configured: ${status.configured ? 'yes' : 'no'}`);
191
+ log(`Config: ${status.configPath}`);
192
+ log(`Server: ${status.server || 'not set'}`);
193
+ log(`Account: ${status.accountId || 'not set'}`);
194
+ log(`Sources: ${formatSources(status.sources) || 'none'}`);
195
+ log(`Messages access: ${status.permissions.messages === null
196
+ ? 'not required'
197
+ : status.permissions.messages
198
+ ? 'ok'
199
+ : 'missing'}`);
200
+ log(`Service installed: ${status.service.installed ? 'yes' : 'no'}`);
201
+ log(`Service running: ${status.service.loaded ? 'yes' : 'no'}`);
202
+ });
203
+ const service = program.command('service').description('Manage the background bridge LaunchAgent');
204
+ service
205
+ .command('start')
206
+ .description('Install and start the background sync service')
207
+ .option('--config <path>', 'Config path', defaultConfigPath())
208
+ .option('--runner <path>', 'Runner path for the LaunchAgent')
209
+ .action((opts) => {
210
+ installService({ configPath: opts.config, runnerPath: opts.runner });
211
+ restartService();
212
+ log('Service started');
213
+ });
214
+ service
215
+ .command('restart')
216
+ .description('Restart the background sync service')
217
+ .action(() => {
218
+ restartService();
219
+ log('Service restarted');
220
+ });
221
+ service
222
+ .command('stop')
223
+ .description('Unload and remove the background sync service')
224
+ .action(() => {
225
+ removeService();
226
+ log('Service removed');
227
+ });
89
228
  program.parse();
90
229
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/crypto.js CHANGED
@@ -35,7 +35,7 @@ export function deriveSessionKey(localPrivate, remotePublic) {
35
35
  privateKey: localPrivate,
36
36
  publicKey: remotePublic,
37
37
  });
38
- const salt = Buffer.from('botmem-imsg-tunnel-v1', 'utf-8');
38
+ const salt = Buffer.from('botmem-apple-tunnel-v1', 'utf-8');
39
39
  const info = Buffer.from('aes-256-gcm-session-key', 'utf-8');
40
40
  const derived = hkdfSync('sha256', sharedSecret, salt, info, 32);
41
41
  return Buffer.from(derived);
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts CHANGED
@@ -44,7 +44,7 @@ export interface Message {
44
44
  is_group: boolean;
45
45
  reply_to_guid?: string;
46
46
  }
47
- export declare class ImsgDatabase {
47
+ export declare class AppleMessagesDatabase {
48
48
  private db;
49
49
  constructor(dbPath: string);
50
50
  close(): void;
package/dist/db.js CHANGED
@@ -24,7 +24,7 @@ function coreDataToISO(nanos) {
24
24
  return new Date(unixSeconds * 1000).toISOString();
25
25
  }
26
26
  // ── Database ────────────────────────────────────────────────────────────────
27
- export class ImsgDatabase {
27
+ export class AppleMessagesDatabase {
28
28
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
29
  db;
30
30
  constructor(dbPath) {
@@ -119,7 +119,7 @@ export class ImsgDatabase {
119
119
  return {
120
120
  id: msgId,
121
121
  chat_id: chatId,
122
- guid: row.guid || `imsg-local-${msgId}`,
122
+ guid: row.guid || `apple-msg-local-${msgId}`,
123
123
  sender: row.handle_id || '',
124
124
  is_from_me: row.is_from_me === 1,
125
125
  text,
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { ImsgDatabase } from './db.js';
1
+ export { AppleMessagesDatabase } from './db.js';
2
2
  export type { Chat, Message, Attachment, Reaction } from './db.js';
3
3
  export { RpcHandler } from './rpc-handler.js';
4
4
  export { TunnelClient } from './tunnel.js';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Public API for programmatic use
2
- export { ImsgDatabase } from './db.js';
2
+ export { AppleMessagesDatabase } from './db.js';
3
3
  export { RpcHandler } from './rpc-handler.js';
4
4
  export { TunnelClient } from './tunnel.js';
5
5
  export { generateKeyPair, exportPublicKey, importPublicKey, deriveSessionKey, encrypt, decrypt, encryptJson, decryptJson, } from './crypto.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC"}
@@ -9,4 +9,9 @@ export interface PreflightResult {
9
9
  chatCount?: number;
10
10
  errors: string[];
11
11
  }
12
- export declare function runPreflight(dbPath?: string): PreflightResult;
12
+ export interface PreflightOptions {
13
+ requireMessages?: boolean;
14
+ runnerName?: string;
15
+ }
16
+ export declare function detectRunnerName(): string;
17
+ export declare function runPreflight(dbPath?: string, options?: PreflightOptions): PreflightResult;
package/dist/preflight.js CHANGED
@@ -2,32 +2,65 @@
2
2
  * Pre-flight checks for the Apple bridge.
3
3
  * Verifies: macOS, chat.db readable, SQLite works.
4
4
  */
5
- import { accessSync, constants } from 'node:fs';
5
+ import { accessSync, constants, existsSync } from 'node:fs';
6
6
  import { homedir } from 'node:os';
7
- import { join } from 'node:path';
7
+ import { basename, join } from 'node:path';
8
8
  import { createRequire } from 'node:module';
9
9
  const require = createRequire(import.meta.url);
10
10
  export const DEFAULT_DB_PATH = join(homedir(), 'Library/Messages/chat.db');
11
- export function runPreflight(dbPath = DEFAULT_DB_PATH) {
11
+ function sidecarPaths(dbPath) {
12
+ return [`${dbPath}-wal`, `${dbPath}-shm`];
13
+ }
14
+ export function detectRunnerName() {
15
+ if (process.env.BOTMEM_BRIDGE_RUNNER_NAME) {
16
+ return process.env.BOTMEM_BRIDGE_RUNNER_NAME;
17
+ }
18
+ const argv0 = process.argv[1] || process.argv[0] || 'this app';
19
+ const name = basename(argv0);
20
+ if (name === 'cli.js' || name === 'apple-bridge')
21
+ return 'your terminal app';
22
+ return name || 'this app';
23
+ }
24
+ function fullDiskAccessMessage(dbPath, runnerName) {
25
+ return (`Cannot read ${dbPath}` +
26
+ '\n\nmacOS blocked Messages access.' +
27
+ `\nOpen System Settings > Privacy & Security > Full Disk Access and enable ${runnerName}.` +
28
+ '\nRestart the bridge after enabling access.' +
29
+ '\n\nShortcut:' +
30
+ '\n open "x-apple.systempreferences:com.apple.preference.security?Privacy_AllFiles"');
31
+ }
32
+ export function runPreflight(dbPath = DEFAULT_DB_PATH, options = {}) {
12
33
  const errors = [];
34
+ const requireMessages = options.requireMessages !== false;
35
+ const runnerName = options.runnerName || detectRunnerName();
13
36
  // 1. macOS check
14
37
  if (process.platform !== 'darwin') {
15
38
  errors.push(`This tool only runs on macOS (detected: ${process.platform}).` +
16
39
  '\niMessage data is only available on Apple devices.');
17
40
  return { ok: false, dbPath, errors };
18
41
  }
42
+ if (!requireMessages) {
43
+ return { ok: true, dbPath, errors };
44
+ }
19
45
  // 2. File exists and readable
20
46
  try {
21
47
  accessSync(dbPath, constants.R_OK);
22
48
  }
23
49
  catch {
24
- errors.push(`Cannot read ${dbPath}` +
25
- '\n\nTo fix this, grant Full Disk Access to your terminal:' +
26
- '\n 1. Open System Settings → Privacy & Security → Full Disk Access' +
27
- '\n 2. Click the + button and add your terminal app (Terminal, iTerm2, etc.)' +
28
- '\n 3. Restart your terminal and try again');
50
+ errors.push(fullDiskAccessMessage(dbPath, runnerName));
29
51
  return { ok: false, dbPath, errors };
30
52
  }
53
+ for (const path of sidecarPaths(dbPath)) {
54
+ if (!existsSync(path))
55
+ continue;
56
+ try {
57
+ accessSync(path, constants.R_OK);
58
+ }
59
+ catch {
60
+ errors.push(fullDiskAccessMessage(path, runnerName));
61
+ return { ok: false, dbPath, errors };
62
+ }
63
+ }
31
64
  // 3. SQLite can open and query the DB
32
65
  try {
33
66
  // Dynamic import to avoid requiring better-sqlite3 at module level
@@ -1 +1 @@
1
- {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,0BAA0B,CAAC,CAAC;AAS3E,MAAM,UAAU,YAAY,CAAC,SAAiB,eAAe;IAC3D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,iBAAiB;IACjB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CACT,2CAA2C,OAAO,CAAC,QAAQ,IAAI;YAC7D,qDAAqD,CACxD,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC;QACH,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CACT,eAAe,MAAM,EAAE;YACrB,2DAA2D;YAC3D,qEAAqE;YACrE,8EAA8E;YAC9E,4CAA4C,CAC/C,CAAC;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,sCAAsC;IACtC,IAAI,CAAC;QACH,mEAAmE;QAEnE,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAE7D,CAAC;YACF,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC9D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CACT,eAAe,MAAM,sBAAsB;gBACzC,+EAA+E,CAClF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../src/preflight.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * JSON-RPC 2.0 request handler.
3
3
  * Dispatches incoming requests to the SQLite query layer.
4
4
  */
5
- import type { ImsgDatabase } from './db.js';
5
+ import type { AppleMessagesDatabase } from './db.js';
6
6
  interface JsonRpcRequest {
7
7
  jsonrpc: '2.0';
8
8
  id: number;
@@ -19,8 +19,9 @@ interface JsonRpcResponse {
19
19
  };
20
20
  }
21
21
  export declare class RpcHandler {
22
+ private getDb;
23
+ constructor(getDb: AppleMessagesDatabase | (() => AppleMessagesDatabase));
22
24
  private db;
23
- constructor(db: ImsgDatabase);
24
25
  handle(request: JsonRpcRequest): Promise<JsonRpcResponse>;
25
26
  }
26
27
  export {};
@@ -4,9 +4,12 @@
4
4
  */
5
5
  import { listAppleContacts } from './contacts.js';
6
6
  export class RpcHandler {
7
- db;
8
- constructor(db) {
9
- this.db = db;
7
+ getDb;
8
+ constructor(getDb) {
9
+ this.getDb = getDb;
10
+ }
11
+ db() {
12
+ return typeof this.getDb === 'function' ? this.getDb() : this.getDb;
10
13
  }
11
14
  async handle(request) {
12
15
  const { id, method, params } = request;
@@ -14,7 +17,7 @@ export class RpcHandler {
14
17
  switch (method) {
15
18
  case 'chats.list': {
16
19
  const limit = params?.limit;
17
- const chats = this.db.chatsList(limit);
20
+ const chats = this.db().chatsList(limit);
18
21
  return { jsonrpc: '2.0', id, result: { chats } };
19
22
  }
20
23
  case 'messages.history': {
@@ -31,7 +34,7 @@ export class RpcHandler {
31
34
  start: params?.start,
32
35
  end: params?.end,
33
36
  };
34
- const messages = this.db.messagesHistory(chatId, opts);
37
+ const messages = this.db().messagesHistory(chatId, opts);
35
38
  return { jsonrpc: '2.0', id, result: { messages } };
36
39
  }
37
40
  case 'contacts.list': {
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-handler.js","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAgBlD,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAG,CAAC;IAExC,KAAK,CAAC,MAAM,CAAC,OAAuB;QAClC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEvC,IAAI,CAAC;YACH,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,MAAM,KAAK,GAAG,MAAM,EAAE,KAA2B,CAAC;oBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gBACnD,CAAC;gBAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACxB,MAAM,MAAM,GAAG,MAAM,EAAE,OAAiB,CAAC;oBACzC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBAC5C,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,EAAE;4BACF,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE;yBACpE,CAAC;oBACJ,CAAC;oBACD,MAAM,IAAI,GAAG;wBACX,KAAK,EAAE,MAAM,EAAE,KAA2B;wBAC1C,KAAK,EAAE,MAAM,EAAE,KAA2B;wBAC1C,GAAG,EAAE,MAAM,EAAE,GAAyB;qBACvC,CAAC;oBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACtD,CAAC;gBAED,KAAK,eAAe,CAAC,CAAC,CAAC;oBACrB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;oBAC3C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACtD,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxE,CAAC;gBAED;oBACE,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,EAAE;wBACF,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,MAAM,EAAE,EAAE;qBAChE,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"rpc-handler.js","sourceRoot":"","sources":["../src/rpc-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAgBlD,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,KAA4D;QAA5D,UAAK,GAAL,KAAK,CAAuD;IAAG,CAAC;IAE5E,EAAE;QACR,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAuB;QAClC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEvC,IAAI,CAAC;YACH,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,MAAM,KAAK,GAAG,MAAM,EAAE,KAA2B,CAAC;oBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;gBACnD,CAAC;gBAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;oBACxB,MAAM,MAAM,GAAG,MAAM,EAAE,OAAiB,CAAC;oBACzC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBAC5C,OAAO;4BACL,OAAO,EAAE,KAAK;4BACd,EAAE;4BACF,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE;yBACpE,CAAC;oBACJ,CAAC;oBACD,MAAM,IAAI,GAAG;wBACX,KAAK,EAAE,MAAM,EAAE,KAA2B;wBAC1C,KAAK,EAAE,MAAM,EAAE,KAA2B;wBAC1C,GAAG,EAAE,MAAM,EAAE,GAAyB;qBACvC,CAAC;oBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACtD,CAAC;gBAED,KAAK,eAAe,CAAC,CAAC,CAAC;oBACrB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;oBAC3C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACtD,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;gBACxE,CAAC;gBAED;oBACE,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,EAAE;wBACF,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,MAAM,EAAE,EAAE;qBAChE,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;aACtC,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,48 @@
1
+ export declare const DEFAULT_BOTMEM_HOST = "https://botmem.xyz";
2
+ export declare const DEFAULT_TUNNEL_PATH = "/apple-tunnel";
3
+ export declare const LAUNCH_AGENT_LABEL = "xyz.botmem.apple-bridge.service";
4
+ export interface BridgeSources {
5
+ contacts: boolean;
6
+ imessages: boolean;
7
+ }
8
+ export interface BridgeConfigFile {
9
+ server?: string;
10
+ token?: string;
11
+ accountId?: string;
12
+ sources?: string;
13
+ }
14
+ export interface BridgeStatus {
15
+ configured: boolean;
16
+ configPath: string;
17
+ server: string | null;
18
+ accountId: string | null;
19
+ sources: BridgeSources;
20
+ permissions: {
21
+ messages: boolean | null;
22
+ };
23
+ service: {
24
+ installed: boolean;
25
+ loaded: boolean;
26
+ plistPath: string;
27
+ };
28
+ }
29
+ export declare function appSupportDir(): string;
30
+ export declare function defaultConfigPath(): string;
31
+ export declare function launchAgentPath(): string;
32
+ export declare function serviceLogPath(): string;
33
+ export declare function normalizeBotmemHost(raw: string | undefined): string;
34
+ export declare function tunnelUrlFromHost(raw: string | undefined): string;
35
+ export declare function parseSources(value: string | undefined): BridgeSources;
36
+ export declare function formatSources(sources: BridgeSources): string;
37
+ export declare function loadConfig(path?: string): BridgeConfigFile;
38
+ export declare function saveConfig(config: BridgeConfigFile, path?: string): void;
39
+ export declare function mergeConfig(fileConfig: BridgeConfigFile, overrides: BridgeConfigFile): Required<BridgeConfigFile>;
40
+ export declare function isServiceLoaded(): boolean;
41
+ export declare function installService(options?: {
42
+ configPath?: string;
43
+ runnerPath?: string;
44
+ }): void;
45
+ export declare function restartService(): void;
46
+ export declare function removeService(): void;
47
+ export declare function getStatus(configPath?: string): BridgeStatus;
48
+ export declare function runnerDisplayName(): string;
package/dist/setup.js ADDED
@@ -0,0 +1,175 @@
1
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { basename, dirname, join } from 'node:path';
4
+ import { spawnSync } from 'node:child_process';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { DEFAULT_DB_PATH, detectRunnerName, runPreflight } from './preflight.js';
7
+ export const DEFAULT_BOTMEM_HOST = 'https://botmem.xyz';
8
+ export const DEFAULT_TUNNEL_PATH = '/apple-tunnel';
9
+ export const LAUNCH_AGENT_LABEL = 'xyz.botmem.apple-bridge.service';
10
+ export function appSupportDir() {
11
+ return join(homedir(), 'Library', 'Application Support', 'Botmem Apple Bridge');
12
+ }
13
+ export function defaultConfigPath() {
14
+ return join(appSupportDir(), 'config.json');
15
+ }
16
+ export function launchAgentPath() {
17
+ return join(homedir(), 'Library', 'LaunchAgents', `${LAUNCH_AGENT_LABEL}.plist`);
18
+ }
19
+ export function serviceLogPath() {
20
+ return join(appSupportDir(), 'service.log');
21
+ }
22
+ export function normalizeBotmemHost(raw) {
23
+ const value = (raw || DEFAULT_BOTMEM_HOST).trim();
24
+ if (!value)
25
+ return DEFAULT_BOTMEM_HOST;
26
+ return value.includes('://') ? value.replace(/\/+$/, '') : `https://${value.replace(/\/+$/, '')}`;
27
+ }
28
+ export function tunnelUrlFromHost(raw) {
29
+ const host = normalizeBotmemHost(raw);
30
+ const url = new URL(host);
31
+ url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
32
+ url.pathname = DEFAULT_TUNNEL_PATH;
33
+ url.search = '';
34
+ url.hash = '';
35
+ return url.toString();
36
+ }
37
+ export function parseSources(value) {
38
+ const parts = (value || 'contacts,imessages')
39
+ .split(',')
40
+ .map((part) => part.trim().toLowerCase())
41
+ .filter(Boolean);
42
+ return {
43
+ contacts: parts.length === 0 || parts.includes('contacts'),
44
+ imessages: parts.length === 0 || parts.includes('imessages') || parts.includes('messages'),
45
+ };
46
+ }
47
+ export function formatSources(sources) {
48
+ return [sources.contacts ? 'contacts' : null, sources.imessages ? 'imessages' : null]
49
+ .filter(Boolean)
50
+ .join(',');
51
+ }
52
+ export function loadConfig(path = defaultConfigPath()) {
53
+ if (!existsSync(path))
54
+ return {};
55
+ return JSON.parse(readFileSync(path, 'utf8'));
56
+ }
57
+ export function saveConfig(config, path = defaultConfigPath()) {
58
+ mkdirSync(dirname(path), { recursive: true });
59
+ writeFileSync(path, `${JSON.stringify(config, null, 2)}\n`, { mode: 0o600 });
60
+ }
61
+ export function mergeConfig(fileConfig, overrides) {
62
+ const server = overrides.server ||
63
+ fileConfig.server ||
64
+ tunnelUrlFromHost(process.env.BOTMEM_HOST || DEFAULT_BOTMEM_HOST);
65
+ return {
66
+ server,
67
+ token: overrides.token || fileConfig.token || '',
68
+ accountId: overrides.accountId || fileConfig.accountId || '',
69
+ sources: overrides.sources || fileConfig.sources || 'contacts,imessages',
70
+ };
71
+ }
72
+ function guiDomain() {
73
+ return `gui/${process.getuid?.() ?? 0}`;
74
+ }
75
+ function serviceTarget() {
76
+ return `${guiDomain()}/${LAUNCH_AGENT_LABEL}`;
77
+ }
78
+ function launchctl(args) {
79
+ return spawnSync('/bin/launchctl', args, { stdio: 'ignore' }).status ?? 1;
80
+ }
81
+ export function isServiceLoaded() {
82
+ return launchctl(['print', serviceTarget()]) === 0;
83
+ }
84
+ export function installService(options = {}) {
85
+ const configPath = options.configPath || defaultConfigPath();
86
+ const runnerPath = options.runnerPath || resolveRunnerPath();
87
+ const plistPath = launchAgentPath();
88
+ mkdirSync(appSupportDir(), { recursive: true });
89
+ mkdirSync(dirname(plistPath), { recursive: true });
90
+ const plist = `<?xml version="1.0" encoding="UTF-8"?>
91
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
92
+ <plist version="1.0">
93
+ <dict>
94
+ <key>Label</key>
95
+ <string>${LAUNCH_AGENT_LABEL}</string>
96
+ <key>ProgramArguments</key>
97
+ <array>
98
+ <string>${escapeXml(runnerPath)}</string>
99
+ <string>--config</string>
100
+ <string>${escapeXml(configPath)}</string>
101
+ </array>
102
+ <key>EnvironmentVariables</key>
103
+ <dict>
104
+ <key>BOTMEM_BRIDGE_RUNNER_NAME</key>
105
+ <string>Botmem Apple Bridge</string>
106
+ </dict>
107
+ <key>RunAtLoad</key>
108
+ <true/>
109
+ <key>KeepAlive</key>
110
+ <dict>
111
+ <key>SuccessfulExit</key>
112
+ <false/>
113
+ </dict>
114
+ <key>StandardOutPath</key>
115
+ <string>${escapeXml(serviceLogPath())}</string>
116
+ <key>StandardErrorPath</key>
117
+ <string>${escapeXml(serviceLogPath())}</string>
118
+ <key>WorkingDirectory</key>
119
+ <string>${escapeXml(dirname(runnerPath))}</string>
120
+ </dict>
121
+ </plist>
122
+ `;
123
+ writeFileSync(plistPath, plist, { mode: 0o644 });
124
+ }
125
+ export function restartService() {
126
+ launchctl(['bootout', guiDomain(), launchAgentPath()]);
127
+ launchctl(['bootstrap', guiDomain(), launchAgentPath()]);
128
+ launchctl(['kickstart', '-k', serviceTarget()]);
129
+ }
130
+ export function removeService() {
131
+ launchctl(['bootout', guiDomain(), launchAgentPath()]);
132
+ rmSync(launchAgentPath(), { force: true });
133
+ }
134
+ export function getStatus(configPath = defaultConfigPath()) {
135
+ const config = loadConfig(configPath);
136
+ const sources = parseSources(config.sources);
137
+ const requireMessages = sources.imessages;
138
+ const preflight = runPreflight(DEFAULT_DB_PATH, {
139
+ requireMessages,
140
+ runnerName: detectRunnerName(),
141
+ });
142
+ return {
143
+ configured: Boolean(config.token && config.server),
144
+ configPath,
145
+ server: config.server || null,
146
+ accountId: config.accountId || null,
147
+ sources,
148
+ permissions: {
149
+ messages: requireMessages ? preflight.ok : null,
150
+ },
151
+ service: {
152
+ installed: existsSync(launchAgentPath()),
153
+ loaded: isServiceLoaded(),
154
+ plistPath: launchAgentPath(),
155
+ },
156
+ };
157
+ }
158
+ function resolveRunnerPath() {
159
+ const argv = process.argv[1];
160
+ if (argv && existsSync(argv))
161
+ return argv;
162
+ return fileURLToPath(import.meta.url).replace(/setup\.js$/, 'cli.js');
163
+ }
164
+ function escapeXml(value) {
165
+ return value
166
+ .replaceAll('&', '&amp;')
167
+ .replaceAll('<', '&lt;')
168
+ .replaceAll('>', '&gt;')
169
+ .replaceAll('"', '&quot;')
170
+ .replaceAll("'", '&apos;');
171
+ }
172
+ export function runnerDisplayName() {
173
+ return basename(resolveRunnerPath());
174
+ }
175
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/dist/tunnel.d.ts CHANGED
@@ -10,6 +10,7 @@ export interface TunnelOptions {
10
10
  serverUrl: string;
11
11
  token: string;
12
12
  rpcHandler: RpcHandler;
13
+ sources?: string;
13
14
  }
14
15
  export type TunnelStatus = 'connecting' | 'authenticating' | 'connected' | 'disconnected' | 'error';
15
16
  export declare class TunnelClient extends EventEmitter {
package/dist/tunnel.js CHANGED
@@ -97,6 +97,7 @@ export class TunnelClient extends EventEmitter {
97
97
  data: {
98
98
  token: this.opts.token,
99
99
  publicKey: publicKeyRaw.toString('base64'),
100
+ sources: this.opts.sources,
100
101
  },
101
102
  }));
102
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../src/tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../src/tunnel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botmem/apple-bridge",
3
- "version": "0.35.28",
3
+ "version": "0.35.29",
4
4
  "description": "Apple bridge for Botmem — reads local Contacts and iMessages through an encrypted WebSocket tunnel",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,6 +10,7 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "scripts": {
12
12
  "build": "tsc",
13
+ "build:mac-app": "node scripts/build-macos-app.mjs",
13
14
  "dev": "tsc --watch",
14
15
  "clean": "rm -rf dist"
15
16
  },
@@ -24,6 +25,9 @@
24
25
  "@types/ws": "^8.5.13",
25
26
  "typescript": "^5.7.0"
26
27
  },
28
+ "optionalDependencies": {
29
+ "appdmg": "^0.6.6"
30
+ },
27
31
  "engines": {
28
32
  "node": ">=20"
29
33
  },