@meshwhisper/node 0.1.0 → 0.1.1
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/index.js +141 -78
- package/dist/index.js.map +1 -1
- package/package.json +9 -3
package/dist/index.js
CHANGED
|
@@ -21,12 +21,18 @@
|
|
|
21
21
|
// The webhook is responsible for sending the actual APNs/FCM notification.
|
|
22
22
|
// The Node only sends a silent wake signal — no message content is included.
|
|
23
23
|
//
|
|
24
|
+
// Persistence:
|
|
25
|
+
// Data is stored in a SQLite database (default: ./meshwhisper.db).
|
|
26
|
+
// Set DB_PATH to change the location. For Docker, mount a volume at /data
|
|
27
|
+
// and set DB_PATH=/data/meshwhisper.db so data survives container restarts.
|
|
28
|
+
//
|
|
24
29
|
// Self-hosted: one Docker container, one VPS, everything included.
|
|
25
30
|
// Foundation-hosted: same binary, run by the Foundation as public infra.
|
|
26
31
|
// ============================================================
|
|
27
32
|
import * as http from 'node:http';
|
|
28
33
|
import * as https from 'node:https';
|
|
29
34
|
import { WebSocketServer, WebSocket } from 'ws';
|
|
35
|
+
import Database from 'better-sqlite3';
|
|
30
36
|
// ============================================================
|
|
31
37
|
// Configuration
|
|
32
38
|
// ============================================================
|
|
@@ -38,6 +44,7 @@ const MEDIA_TTL_HOURS = parseInt(process.env.MEDIA_TTL_HOURS ?? String(7 * 24),
|
|
|
38
44
|
const MAX_MEDIA_SIZE = parseInt(process.env.MAX_MEDIA_SIZE ?? String(50 * 1024 * 1024), 10); // 50 MB
|
|
39
45
|
const PRUNE_INTERVAL_MS = 5 * 60 * 1000; // prune expired blobs every 5 minutes
|
|
40
46
|
const PUSH_WEBHOOK_URL = process.env.PUSH_WEBHOOK_URL ?? null;
|
|
47
|
+
const DB_PATH = process.env.DB_PATH ?? './meshwhisper.db';
|
|
41
48
|
// Rate limiting (per IP, sliding window)
|
|
42
49
|
const RATE_WINDOW_MS = 60_000; // 1 minute window
|
|
43
50
|
const RATE_LIMIT_MEDIA = parseInt(process.env.RATE_LIMIT_MEDIA ?? '20', 10); // uploads/min
|
|
@@ -47,6 +54,75 @@ const RATE_LIMIT_DIR = parseInt(process.env.RATE_LIMIT_DIR ?? '60', 10); // regi
|
|
|
47
54
|
* Example: BASE_URL=https://msg.myapp.com
|
|
48
55
|
* If unset, the URL is inferred from the Host header (works for local dev). */
|
|
49
56
|
const BASE_URL = (process.env.BASE_URL ?? '').replace(/\/$/, '');
|
|
57
|
+
// ============================================================
|
|
58
|
+
// SQLite database setup
|
|
59
|
+
// ============================================================
|
|
60
|
+
const db = new Database(DB_PATH);
|
|
61
|
+
// Enable WAL mode for better concurrent read performance
|
|
62
|
+
db.pragma('journal_mode = WAL');
|
|
63
|
+
db.pragma('foreign_keys = ON');
|
|
64
|
+
db.exec(`
|
|
65
|
+
CREATE TABLE IF NOT EXISTS blobs (
|
|
66
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
67
|
+
dest_hash TEXT NOT NULL,
|
|
68
|
+
data BLOB NOT NULL,
|
|
69
|
+
received_at INTEGER NOT NULL
|
|
70
|
+
);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS blobs_dest_hash ON blobs (dest_hash);
|
|
72
|
+
|
|
73
|
+
CREATE TABLE IF NOT EXISTS push_registrations (
|
|
74
|
+
dest_hash TEXT PRIMARY KEY,
|
|
75
|
+
token TEXT NOT NULL,
|
|
76
|
+
platform TEXT NOT NULL,
|
|
77
|
+
topic TEXT,
|
|
78
|
+
push_subscription TEXT
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
CREATE TABLE IF NOT EXISTS prekey_bundles (
|
|
82
|
+
key TEXT PRIMARY KEY,
|
|
83
|
+
bundle TEXT NOT NULL
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
CREATE TABLE IF NOT EXISTS media (
|
|
87
|
+
id TEXT PRIMARY KEY,
|
|
88
|
+
data BLOB NOT NULL,
|
|
89
|
+
stored_at INTEGER NOT NULL
|
|
90
|
+
);
|
|
91
|
+
`);
|
|
92
|
+
// Prepared statements
|
|
93
|
+
const stmts = {
|
|
94
|
+
// blobs
|
|
95
|
+
insertBlob: db.prepare('INSERT INTO blobs (dest_hash, data, received_at) VALUES (?, ?, ?)'),
|
|
96
|
+
countBlobsForHash: db.prepare('SELECT COUNT(*) AS cnt FROM blobs WHERE dest_hash = ?'),
|
|
97
|
+
oldestBlobIdForHash: db.prepare('SELECT id FROM blobs WHERE dest_hash = ? ORDER BY id ASC LIMIT 1'),
|
|
98
|
+
deleteBlob: db.prepare('DELETE FROM blobs WHERE id = ?'),
|
|
99
|
+
pullBlobs: db.prepare('SELECT id, data FROM blobs WHERE dest_hash = ? ORDER BY id ASC'),
|
|
100
|
+
deleteBlobsByHash: db.prepare('DELETE FROM blobs WHERE dest_hash = ?'),
|
|
101
|
+
pruneBlobs: db.prepare('DELETE FROM blobs WHERE received_at < ?'),
|
|
102
|
+
countBlobs: db.prepare('SELECT COUNT(*) AS cnt FROM blobs'),
|
|
103
|
+
// push registrations
|
|
104
|
+
upsertPush: db.prepare(`INSERT INTO push_registrations (dest_hash, token, platform, topic, push_subscription)
|
|
105
|
+
VALUES (?, ?, ?, ?, ?)
|
|
106
|
+
ON CONFLICT(dest_hash) DO UPDATE SET
|
|
107
|
+
token = excluded.token,
|
|
108
|
+
platform = excluded.platform,
|
|
109
|
+
topic = excluded.topic,
|
|
110
|
+
push_subscription = excluded.push_subscription`),
|
|
111
|
+
getPush: db.prepare('SELECT token, platform, topic, push_subscription FROM push_registrations WHERE dest_hash = ?'),
|
|
112
|
+
deletePush: db.prepare('DELETE FROM push_registrations WHERE dest_hash = ?'),
|
|
113
|
+
countPush: db.prepare('SELECT COUNT(*) AS cnt FROM push_registrations'),
|
|
114
|
+
// prekey bundles
|
|
115
|
+
upsertPrekey: db.prepare(`INSERT INTO prekey_bundles (key, bundle) VALUES (?, ?)
|
|
116
|
+
ON CONFLICT(key) DO UPDATE SET bundle = excluded.bundle`),
|
|
117
|
+
getPrekey: db.prepare('SELECT bundle FROM prekey_bundles WHERE key = ?'),
|
|
118
|
+
countPrekeys: db.prepare('SELECT COUNT(*) AS cnt FROM prekey_bundles'),
|
|
119
|
+
// media
|
|
120
|
+
insertMedia: db.prepare('INSERT INTO media (id, data, stored_at) VALUES (?, ?, ?)'),
|
|
121
|
+
getMedia: db.prepare('SELECT data, stored_at FROM media WHERE id = ?'),
|
|
122
|
+
deleteMedia: db.prepare('DELETE FROM media WHERE id = ?'),
|
|
123
|
+
pruneMedia: db.prepare('DELETE FROM media WHERE stored_at < ?'),
|
|
124
|
+
countMedia: db.prepare('SELECT COUNT(*) AS cnt FROM media'),
|
|
125
|
+
};
|
|
50
126
|
const rateLimitState = new Map();
|
|
51
127
|
/** Returns true if the request is within limits, false if it should be rejected. */
|
|
52
128
|
function checkRateLimit(ip, bucket, maxPerWindow) {
|
|
@@ -69,7 +145,6 @@ function getClientIp(req) {
|
|
|
69
145
|
return forwarded.split(',')[0].trim();
|
|
70
146
|
return req.socket.remoteAddress ?? 'unknown';
|
|
71
147
|
}
|
|
72
|
-
// Prune stale rate limit entries alongside blobs
|
|
73
148
|
function pruneRateLimitState() {
|
|
74
149
|
const cutoff = Date.now() - RATE_WINDOW_MS;
|
|
75
150
|
for (const [key, entry] of rateLimitState.entries()) {
|
|
@@ -98,53 +173,45 @@ function readDestHash(buf) {
|
|
|
98
173
|
const bytes = buf.subarray(DEST_HASH_OFFSET, DEST_HASH_OFFSET + DEST_HASH_LENGTH);
|
|
99
174
|
return Buffer.from(bytes).toString('hex');
|
|
100
175
|
}
|
|
101
|
-
|
|
102
|
-
|
|
176
|
+
// ============================================================
|
|
177
|
+
// Blob store — SQLite-backed, TTL-based
|
|
178
|
+
// ============================================================
|
|
103
179
|
function storeBlob(destHash, data) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
180
|
+
// Enforce per-hash cap: drop oldest if full
|
|
181
|
+
const row = stmts.countBlobsForHash.get(destHash);
|
|
182
|
+
if (row.cnt >= MAX_BLOBS_PER_HASH) {
|
|
183
|
+
const oldest = stmts.oldestBlobIdForHash.get(destHash);
|
|
184
|
+
if (oldest)
|
|
185
|
+
stmts.deleteBlob.run(oldest.id);
|
|
108
186
|
}
|
|
109
|
-
|
|
110
|
-
queue.shift(); // drop oldest when full
|
|
111
|
-
}
|
|
112
|
-
queue.push({ data, receivedAt: Date.now() });
|
|
187
|
+
stmts.insertBlob.run(destHash, Buffer.from(data), Date.now());
|
|
113
188
|
}
|
|
114
189
|
function pullBlobs(destHash) {
|
|
115
|
-
const
|
|
116
|
-
if (
|
|
190
|
+
const rows = stmts.pullBlobs.all(destHash);
|
|
191
|
+
if (rows.length === 0)
|
|
117
192
|
return [];
|
|
118
|
-
|
|
119
|
-
return
|
|
193
|
+
stmts.deleteBlobsByHash.run(destHash);
|
|
194
|
+
return rows.map((r) => new Uint8Array(r.data));
|
|
120
195
|
}
|
|
121
196
|
function pruneExpiredBlobs() {
|
|
122
197
|
const cutoff = Date.now() - BLOB_TTL_HOURS * 60 * 60 * 1000;
|
|
123
|
-
|
|
124
|
-
const fresh = queue.filter((b) => b.receivedAt > cutoff);
|
|
125
|
-
if (fresh.length === 0) {
|
|
126
|
-
blobStore.delete(hash);
|
|
127
|
-
// Also expire the push token for this dest hash — if no blobs have
|
|
128
|
-
// arrived within the blob TTL window, the device has likely rotated
|
|
129
|
-
// its dest hashes and the token is stale.
|
|
130
|
-
pushTokens.delete(hash);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
blobStore.set(hash, fresh);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
198
|
+
stmts.pruneBlobs.run(cutoff);
|
|
136
199
|
}
|
|
137
|
-
/** Map from destHash (hex) → push registration for offline wake signals. */
|
|
138
|
-
const pushTokens = new Map();
|
|
139
200
|
function registerPushTokens(destHashes, reg) {
|
|
140
201
|
for (const hash of destHashes) {
|
|
141
|
-
|
|
202
|
+
stmts.upsertPush.run(hash, reg.token, reg.platform, reg.topic ?? null, reg.pushSubscription ?? null);
|
|
142
203
|
}
|
|
143
204
|
}
|
|
144
|
-
function
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
205
|
+
function getPushRegistration(destHash) {
|
|
206
|
+
const row = stmts.getPush.get(destHash);
|
|
207
|
+
if (!row)
|
|
208
|
+
return null;
|
|
209
|
+
return {
|
|
210
|
+
token: row.token,
|
|
211
|
+
platform: row.platform,
|
|
212
|
+
...(row.topic ? { topic: row.topic } : {}),
|
|
213
|
+
...(row.push_subscription ? { pushSubscription: row.push_subscription } : {}),
|
|
214
|
+
};
|
|
148
215
|
}
|
|
149
216
|
/**
|
|
150
217
|
* Fire-and-forget POST to the configured push webhook.
|
|
@@ -180,21 +247,21 @@ function notifyPush(destHash, reg) {
|
|
|
180
247
|
}
|
|
181
248
|
}
|
|
182
249
|
// ============================================================
|
|
183
|
-
// Prekey directory —
|
|
250
|
+
// Prekey directory — SQLite-backed, namespace-scoped
|
|
184
251
|
// ============================================================
|
|
185
|
-
/** Map from `${namespace}:${publicKeyHex}` → serialized bundle (base64). */
|
|
186
|
-
const prekeyDirectory = new Map();
|
|
187
252
|
function directoryKey(namespace, publicKey) {
|
|
188
253
|
return `${namespace}:${publicKey}`;
|
|
189
254
|
}
|
|
190
255
|
function registerPrekey(namespace, publicKey, bundle) {
|
|
191
|
-
|
|
256
|
+
stmts.upsertPrekey.run(directoryKey(namespace, publicKey), bundle);
|
|
192
257
|
}
|
|
193
258
|
function lookupPrekey(namespace, publicKey) {
|
|
194
|
-
|
|
259
|
+
const row = stmts.getPrekey.get(directoryKey(namespace, publicKey));
|
|
260
|
+
return row?.bundle ?? null;
|
|
195
261
|
}
|
|
196
|
-
|
|
197
|
-
|
|
262
|
+
// ============================================================
|
|
263
|
+
// Media store — SQLite-backed, TTL-based encrypted blob storage
|
|
264
|
+
// ============================================================
|
|
198
265
|
function generateMediaId() {
|
|
199
266
|
const bytes = new Uint8Array(16);
|
|
200
267
|
globalThis.crypto.getRandomValues(bytes);
|
|
@@ -203,36 +270,33 @@ function generateMediaId() {
|
|
|
203
270
|
function storeMedia(data) {
|
|
204
271
|
const id = generateMediaId();
|
|
205
272
|
const storedAt = Date.now();
|
|
206
|
-
|
|
273
|
+
stmts.insertMedia.run(id, data, storedAt);
|
|
207
274
|
return { id, expiresAt: storedAt + MEDIA_TTL_HOURS * 60 * 60 * 1000 };
|
|
208
275
|
}
|
|
209
276
|
function fetchMedia(id) {
|
|
210
|
-
const
|
|
211
|
-
if (!
|
|
277
|
+
const row = stmts.getMedia.get(id);
|
|
278
|
+
if (!row)
|
|
212
279
|
return null;
|
|
213
|
-
const expiresAt =
|
|
280
|
+
const expiresAt = row.stored_at + MEDIA_TTL_HOURS * 60 * 60 * 1000;
|
|
214
281
|
if (Date.now() > expiresAt) {
|
|
215
|
-
|
|
282
|
+
stmts.deleteMedia.run(id);
|
|
216
283
|
return null;
|
|
217
284
|
}
|
|
218
|
-
return
|
|
285
|
+
return row.data;
|
|
219
286
|
}
|
|
220
287
|
function pruneExpiredMedia() {
|
|
221
288
|
const cutoff = Date.now() - MEDIA_TTL_HOURS * 60 * 60 * 1000;
|
|
222
|
-
|
|
223
|
-
if (entry.storedAt < cutoff)
|
|
224
|
-
mediaStore.delete(id);
|
|
225
|
-
}
|
|
289
|
+
stmts.pruneMedia.run(cutoff);
|
|
226
290
|
}
|
|
227
291
|
// ============================================================
|
|
228
292
|
// Connected clients — map from destHash (hex) → WebSocket
|
|
293
|
+
// (connection state is ephemeral by nature, always in-memory)
|
|
229
294
|
// ============================================================
|
|
230
295
|
/** A client may register multiple dest hashes (current + previous epoch). */
|
|
231
296
|
const clientsByHash = new Map();
|
|
232
297
|
/** Reverse map so we can clean up on disconnect. */
|
|
233
298
|
const hashesPerClient = new Map();
|
|
234
299
|
function registerClient(ws, destHashes) {
|
|
235
|
-
// Remove any previous registrations for this socket
|
|
236
300
|
const existing = hashesPerClient.get(ws);
|
|
237
301
|
if (existing) {
|
|
238
302
|
for (const h of existing)
|
|
@@ -250,9 +314,8 @@ function deregisterClient(ws) {
|
|
|
250
314
|
if (hashes) {
|
|
251
315
|
for (const h of hashes)
|
|
252
316
|
clientsByHash.delete(h);
|
|
253
|
-
// Push
|
|
254
|
-
// to wake the device when it is offline.
|
|
255
|
-
// the blobs in the prune cycle.
|
|
317
|
+
// Push registrations are intentionally kept after disconnect — they are
|
|
318
|
+
// needed to wake the device when it is offline.
|
|
256
319
|
hashesPerClient.delete(ws);
|
|
257
320
|
}
|
|
258
321
|
}
|
|
@@ -284,7 +347,7 @@ function handleRelayPacket(data, sender) {
|
|
|
284
347
|
// Recipient offline (or same socket) — store for later delivery
|
|
285
348
|
storeBlob(destHash, data);
|
|
286
349
|
// Wake the recipient via push if they have a registered token
|
|
287
|
-
const pushReg =
|
|
350
|
+
const pushReg = getPushRegistration(destHash);
|
|
288
351
|
if (pushReg)
|
|
289
352
|
notifyPush(destHash, pushReg);
|
|
290
353
|
}
|
|
@@ -308,23 +371,20 @@ function handleWebSocketConnection(ws) {
|
|
|
308
371
|
if (msg.type === 'hello' && Array.isArray(msg.destHashes)) {
|
|
309
372
|
const hashes = msg.destHashes.filter((h) => typeof h === 'string' && /^[0-9a-f]{16}$/.test(h));
|
|
310
373
|
registerClient(ws, hashes);
|
|
311
|
-
// Register push token/subscription if provided
|
|
312
374
|
if (msg.pushPlatform === 'webpush' && typeof msg.pushSubscription === 'string') {
|
|
313
|
-
|
|
314
|
-
token: msg.pushSubscription,
|
|
375
|
+
registerPushTokens(hashes, {
|
|
376
|
+
token: msg.pushSubscription,
|
|
315
377
|
platform: 'webpush',
|
|
316
378
|
pushSubscription: msg.pushSubscription,
|
|
317
|
-
};
|
|
318
|
-
registerPushTokens(hashes, reg);
|
|
379
|
+
});
|
|
319
380
|
}
|
|
320
381
|
else if (typeof msg.pushToken === 'string' && msg.pushToken &&
|
|
321
382
|
(msg.pushPlatform === 'apns' || msg.pushPlatform === 'fcm')) {
|
|
322
|
-
|
|
383
|
+
registerPushTokens(hashes, {
|
|
323
384
|
token: msg.pushToken,
|
|
324
385
|
platform: msg.pushPlatform,
|
|
325
386
|
...(typeof msg.pushTopic === 'string' && msg.pushTopic ? { topic: msg.pushTopic } : {}),
|
|
326
|
-
};
|
|
327
|
-
registerPushTokens(hashes, reg);
|
|
387
|
+
});
|
|
328
388
|
}
|
|
329
389
|
deliverQueuedBlobs(ws, hashes);
|
|
330
390
|
return;
|
|
@@ -340,12 +400,8 @@ function handleWebSocketConnection(ws) {
|
|
|
340
400
|
// Not JSON or malformed — ignore
|
|
341
401
|
}
|
|
342
402
|
});
|
|
343
|
-
ws.on('close', () =>
|
|
344
|
-
|
|
345
|
-
});
|
|
346
|
-
ws.on('error', () => {
|
|
347
|
-
deregisterClient(ws);
|
|
348
|
-
});
|
|
403
|
+
ws.on('close', () => deregisterClient(ws));
|
|
404
|
+
ws.on('error', () => deregisterClient(ws));
|
|
349
405
|
}
|
|
350
406
|
// ============================================================
|
|
351
407
|
// HTTP handler — health check and prekey directory
|
|
@@ -385,10 +441,10 @@ async function handleHttp(req, res) {
|
|
|
385
441
|
sendJson(res, 200, {
|
|
386
442
|
status: 'ok',
|
|
387
443
|
clients: clientsByHash.size,
|
|
388
|
-
storedBlobs:
|
|
389
|
-
prekeyEntries:
|
|
390
|
-
pushRegistrations:
|
|
391
|
-
mediaEntries:
|
|
444
|
+
storedBlobs: stmts.countBlobs.get().cnt,
|
|
445
|
+
prekeyEntries: stmts.countPrekeys.get().cnt,
|
|
446
|
+
pushRegistrations: stmts.countPush.get().cnt,
|
|
447
|
+
mediaEntries: stmts.countMedia.get().cnt,
|
|
392
448
|
});
|
|
393
449
|
return;
|
|
394
450
|
}
|
|
@@ -519,13 +575,14 @@ const pruneInterval = setInterval(() => {
|
|
|
519
575
|
pruneExpiredMedia();
|
|
520
576
|
pruneRateLimitState();
|
|
521
577
|
}, PRUNE_INTERVAL_MS);
|
|
522
|
-
pruneInterval.unref();
|
|
578
|
+
pruneInterval.unref();
|
|
523
579
|
httpServer.listen(PORT, () => {
|
|
524
580
|
console.log(`MeshWhisper Node listening on port ${PORT}`);
|
|
525
581
|
console.log(` Relay: ws://localhost:${PORT}`);
|
|
526
582
|
console.log(` Directory: http://localhost:${PORT}/directory`);
|
|
527
583
|
console.log(` Media: http://localhost:${PORT}/media`);
|
|
528
584
|
console.log(` Health: http://localhost:${PORT}/health`);
|
|
585
|
+
console.log(` Database: ${DB_PATH}`);
|
|
529
586
|
console.log(` Blob TTL: ${BLOB_TTL_HOURS}h`);
|
|
530
587
|
console.log(` Media TTL: ${MEDIA_TTL_HOURS}h (max ${MAX_MEDIA_SIZE / (1024 * 1024)}MB per file)`);
|
|
531
588
|
console.log(` Base URL: ${BASE_URL || '(inferred from Host header — set BASE_URL in production)'}`);
|
|
@@ -539,8 +596,14 @@ function shutdown() {
|
|
|
539
596
|
clearInterval(pruneInterval);
|
|
540
597
|
wss.clients.forEach((ws) => ws.close(1001, 'Node shutting down'));
|
|
541
598
|
wss.close();
|
|
542
|
-
httpServer.close(() =>
|
|
543
|
-
|
|
599
|
+
httpServer.close(() => {
|
|
600
|
+
db.close();
|
|
601
|
+
process.exit(0);
|
|
602
|
+
});
|
|
603
|
+
setTimeout(() => {
|
|
604
|
+
db.close();
|
|
605
|
+
process.exit(1);
|
|
606
|
+
}, 3000).unref();
|
|
544
607
|
}
|
|
545
608
|
process.on('SIGINT', shutdown);
|
|
546
609
|
process.on('SIGTERM', shutdown);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshwhisper/node",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "MeshWhisper Node — relay, push forwarding, media storage, and prekey directory in a single binary",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"meshwhisper-node": "dist/index.js"
|
|
9
9
|
},
|
|
10
|
-
"files": [
|
|
11
|
-
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
12
16
|
"scripts": {
|
|
13
17
|
"prepublishOnly": "npm run build",
|
|
14
18
|
"build": "tsc",
|
|
@@ -16,9 +20,11 @@
|
|
|
16
20
|
"dev": "tsx src/index.ts"
|
|
17
21
|
},
|
|
18
22
|
"dependencies": {
|
|
23
|
+
"better-sqlite3": "^12.8.0",
|
|
19
24
|
"ws": "^8.18.0"
|
|
20
25
|
},
|
|
21
26
|
"devDependencies": {
|
|
27
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
22
28
|
"@types/node": "^22.0.0",
|
|
23
29
|
"@types/ws": "^8.5.0",
|
|
24
30
|
"tsx": "^4.21.0",
|