@pkcprotocol/pkc-js 0.0.40 → 0.0.42

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.
Files changed (151) hide show
  1. package/dist/browser/clients/base-client-manager.d.ts +5 -1
  2. package/dist/browser/clients/base-client-manager.js +87 -12
  3. package/dist/browser/clients/base-client-manager.js.map +1 -1
  4. package/dist/browser/clients/rpc-client/pkc-rpc-client.d.ts +5 -1
  5. package/dist/browser/clients/rpc-client/pkc-rpc-client.js +23 -1
  6. package/dist/browser/clients/rpc-client/pkc-rpc-client.js.map +1 -1
  7. package/dist/browser/clients/rpc-client/rpc-schema-util.d.ts +31 -0
  8. package/dist/browser/clients/rpc-client/rpc-schema-util.js +6 -1
  9. package/dist/browser/clients/rpc-client/rpc-schema-util.js.map +1 -1
  10. package/dist/browser/clients/rpc-client/schema.d.ts +27 -0
  11. package/dist/browser/clients/rpc-client/schema.js +12 -1
  12. package/dist/browser/clients/rpc-client/schema.js.map +1 -1
  13. package/dist/browser/clients/rpc-client/types.d.ts +5 -1
  14. package/dist/browser/community/community-client-manager.d.ts +1 -0
  15. package/dist/browser/community/community-client-manager.js +176 -37
  16. package/dist/browser/community/community-client-manager.js.map +1 -1
  17. package/dist/browser/community/community-gateway-selection.d.ts +32 -0
  18. package/dist/browser/community/community-gateway-selection.js +28 -0
  19. package/dist/browser/community/community-gateway-selection.js.map +1 -0
  20. package/dist/browser/community/remote-community.d.ts +13 -1
  21. package/dist/browser/community/remote-community.js +75 -5
  22. package/dist/browser/community/remote-community.js.map +1 -1
  23. package/dist/browser/community/rpc-local-community.d.ts +10 -1
  24. package/dist/browser/community/rpc-local-community.js +102 -0
  25. package/dist/browser/community/rpc-local-community.js.map +1 -1
  26. package/dist/browser/community/rpc-remote-community.js +19 -4
  27. package/dist/browser/community/rpc-remote-community.js.map +1 -1
  28. package/dist/browser/community/schema.d.ts +38 -0
  29. package/dist/browser/community/schema.js +50 -2
  30. package/dist/browser/community/schema.js.map +1 -1
  31. package/dist/browser/community/types.d.ts +4 -1
  32. package/dist/browser/constants.d.ts +2 -1
  33. package/dist/browser/constants.js +2 -1
  34. package/dist/browser/constants.js.map +1 -1
  35. package/dist/browser/errors.d.ts +11 -0
  36. package/dist/browser/errors.js +12 -0
  37. package/dist/browser/errors.js.map +1 -1
  38. package/dist/browser/generated-version.d.ts +1 -1
  39. package/dist/browser/generated-version.js +1 -1
  40. package/dist/browser/helia/helia-for-pkc.js +71 -22
  41. package/dist/browser/helia/helia-for-pkc.js.map +1 -1
  42. package/dist/browser/pkc/pkc-with-rpc-client.js +3 -0
  43. package/dist/browser/pkc/pkc-with-rpc-client.js.map +1 -1
  44. package/dist/browser/pkc/pkc.js +24 -3
  45. package/dist/browser/pkc/pkc.js.map +1 -1
  46. package/dist/browser/pkc-error.d.ts +1 -1
  47. package/dist/browser/rpc/src/index.d.ts +16 -2
  48. package/dist/browser/rpc/src/index.js +276 -6
  49. package/dist/browser/rpc/src/index.js.map +1 -1
  50. package/dist/browser/rpc/src/schema.d.ts +2 -0
  51. package/dist/browser/rpc/src/schema.js +10 -1
  52. package/dist/browser/rpc/src/schema.js.map +1 -1
  53. package/dist/browser/runtime/node/community/db-handler.js.map +1 -1
  54. package/dist/browser/runtime/node/community/local-community/db-state.js +8 -0
  55. package/dist/browser/runtime/node/community/local-community/db-state.js.map +1 -1
  56. package/dist/browser/runtime/node/community/local-community/export.d.ts +15 -0
  57. package/dist/browser/runtime/node/community/local-community/export.js +237 -0
  58. package/dist/browser/runtime/node/community/local-community/export.js.map +1 -0
  59. package/dist/browser/runtime/node/community/local-community/ipns-publishing.js +1 -1
  60. package/dist/browser/runtime/node/community/local-community/ipns-publishing.js.map +1 -1
  61. package/dist/browser/runtime/node/community/local-community/lifecycle.js +1 -0
  62. package/dist/browser/runtime/node/community/local-community/lifecycle.js.map +1 -1
  63. package/dist/browser/runtime/node/community/local-community.d.ts +12 -0
  64. package/dist/browser/runtime/node/community/local-community.js +22 -0
  65. package/dist/browser/runtime/node/community/local-community.js.map +1 -1
  66. package/dist/browser/runtime/node/util.d.ts +15 -0
  67. package/dist/browser/runtime/node/util.js +111 -1
  68. package/dist/browser/runtime/node/util.js.map +1 -1
  69. package/dist/browser/schema/schema-util.d.ts +1 -0
  70. package/dist/browser/test/test-util.d.ts +335 -1
  71. package/dist/browser/test/test-util.js +86 -5
  72. package/dist/browser/test/test-util.js.map +1 -1
  73. package/dist/browser/util.d.ts +8 -1
  74. package/dist/browser/util.js +175 -2
  75. package/dist/browser/util.js.map +1 -1
  76. package/dist/node/clients/base-client-manager.d.ts +5 -1
  77. package/dist/node/clients/base-client-manager.js +87 -12
  78. package/dist/node/clients/base-client-manager.js.map +1 -1
  79. package/dist/node/clients/rpc-client/pkc-rpc-client.d.ts +5 -1
  80. package/dist/node/clients/rpc-client/pkc-rpc-client.js +23 -1
  81. package/dist/node/clients/rpc-client/pkc-rpc-client.js.map +1 -1
  82. package/dist/node/clients/rpc-client/rpc-schema-util.d.ts +31 -0
  83. package/dist/node/clients/rpc-client/rpc-schema-util.js +6 -1
  84. package/dist/node/clients/rpc-client/rpc-schema-util.js.map +1 -1
  85. package/dist/node/clients/rpc-client/schema.d.ts +27 -0
  86. package/dist/node/clients/rpc-client/schema.js +12 -1
  87. package/dist/node/clients/rpc-client/schema.js.map +1 -1
  88. package/dist/node/clients/rpc-client/types.d.ts +5 -1
  89. package/dist/node/community/community-client-manager.d.ts +1 -0
  90. package/dist/node/community/community-client-manager.js +176 -37
  91. package/dist/node/community/community-client-manager.js.map +1 -1
  92. package/dist/node/community/community-gateway-selection.d.ts +32 -0
  93. package/dist/node/community/community-gateway-selection.js +28 -0
  94. package/dist/node/community/community-gateway-selection.js.map +1 -0
  95. package/dist/node/community/remote-community.d.ts +13 -1
  96. package/dist/node/community/remote-community.js +75 -5
  97. package/dist/node/community/remote-community.js.map +1 -1
  98. package/dist/node/community/rpc-local-community.d.ts +10 -1
  99. package/dist/node/community/rpc-local-community.js +102 -0
  100. package/dist/node/community/rpc-local-community.js.map +1 -1
  101. package/dist/node/community/rpc-remote-community.js +19 -4
  102. package/dist/node/community/rpc-remote-community.js.map +1 -1
  103. package/dist/node/community/schema.d.ts +38 -0
  104. package/dist/node/community/schema.js +50 -2
  105. package/dist/node/community/schema.js.map +1 -1
  106. package/dist/node/community/types.d.ts +4 -1
  107. package/dist/node/constants.d.ts +2 -1
  108. package/dist/node/constants.js +2 -1
  109. package/dist/node/constants.js.map +1 -1
  110. package/dist/node/errors.d.ts +11 -0
  111. package/dist/node/errors.js +12 -0
  112. package/dist/node/errors.js.map +1 -1
  113. package/dist/node/generated-version.d.ts +1 -1
  114. package/dist/node/generated-version.js +1 -1
  115. package/dist/node/helia/helia-for-pkc.js +71 -22
  116. package/dist/node/helia/helia-for-pkc.js.map +1 -1
  117. package/dist/node/pkc/pkc-with-rpc-client.js +3 -0
  118. package/dist/node/pkc/pkc-with-rpc-client.js.map +1 -1
  119. package/dist/node/pkc/pkc.js +24 -3
  120. package/dist/node/pkc/pkc.js.map +1 -1
  121. package/dist/node/pkc-error.d.ts +1 -1
  122. package/dist/node/rpc/src/index.d.ts +16 -2
  123. package/dist/node/rpc/src/index.js +276 -6
  124. package/dist/node/rpc/src/index.js.map +1 -1
  125. package/dist/node/rpc/src/schema.d.ts +2 -0
  126. package/dist/node/rpc/src/schema.js +10 -1
  127. package/dist/node/rpc/src/schema.js.map +1 -1
  128. package/dist/node/runtime/node/community/db-handler.js.map +1 -1
  129. package/dist/node/runtime/node/community/local-community/db-state.js +8 -0
  130. package/dist/node/runtime/node/community/local-community/db-state.js.map +1 -1
  131. package/dist/node/runtime/node/community/local-community/export.d.ts +15 -0
  132. package/dist/node/runtime/node/community/local-community/export.js +237 -0
  133. package/dist/node/runtime/node/community/local-community/export.js.map +1 -0
  134. package/dist/node/runtime/node/community/local-community/ipns-publishing.js +1 -1
  135. package/dist/node/runtime/node/community/local-community/ipns-publishing.js.map +1 -1
  136. package/dist/node/runtime/node/community/local-community/lifecycle.js +1 -0
  137. package/dist/node/runtime/node/community/local-community/lifecycle.js.map +1 -1
  138. package/dist/node/runtime/node/community/local-community.d.ts +12 -0
  139. package/dist/node/runtime/node/community/local-community.js +22 -0
  140. package/dist/node/runtime/node/community/local-community.js.map +1 -1
  141. package/dist/node/runtime/node/util.d.ts +15 -0
  142. package/dist/node/runtime/node/util.js +111 -1
  143. package/dist/node/runtime/node/util.js.map +1 -1
  144. package/dist/node/schema/schema-util.d.ts +1 -0
  145. package/dist/node/test/test-util.d.ts +335 -1
  146. package/dist/node/test/test-util.js +86 -5
  147. package/dist/node/test/test-util.js.map +1 -1
  148. package/dist/node/util.d.ts +8 -1
  149. package/dist/node/util.js +175 -2
  150. package/dist/node/util.js.map +1 -1
  151. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
1
  import pLimit from "p-limit";
2
2
  import { Server as RpcWebsocketsServer } from "rpc-websockets";
3
- import { mkdirSync } from "fs";
3
+ import { createReadStream, existsSync, mkdirSync, promises as fsPromises, statSync } from "fs";
4
+ import http from "http";
5
+ import { fileURLToPath } from "node:url";
4
6
  import path from "path";
5
7
  import Database from "better-sqlite3";
6
8
  import PKCJs, { setPKCJs } from "./lib/pkc-js/index.js";
@@ -15,14 +17,14 @@ import { stringify as deterministicStringify } from "safe-stable-stringify";
15
17
  import { TypedEmitter } from "tiny-typed-emitter";
16
18
  import { sanitizeRpcNotificationResult } from "./json-rpc-util.js";
17
19
  import { buildPageRuntimeFields, buildPagesRuntimeFields } from "../../pages/util.js";
18
- import { parseRpcCommunityIdentifierParam, parseRpcAuthorNameParam, parseRpcCidParam, parseRpcCommentRepliesPageParam, parseRpcCommunityPageParam, parseRpcEditCommunityParam, parseRpcPublishChallengeAnswersParam, parseRpcUnsubscribeParam } from "../../clients/rpc-client/rpc-schema-util.js";
20
+ import { parseRpcCommunityIdentifierParam, parseRpcAuthorNameParam, parseRpcCidParam, parseRpcCommentRepliesPageParam, parseRpcCommunityPageParam, parseRpcEditCommunityParam, parseRpcPublishChallengeAnswersParam, parseRpcUnsubscribeParam, parseRpcExportCommunityParam, parseRpcCancelExportParam } from "../../clients/rpc-client/rpc-schema-util.js";
19
21
  import { findStartedCommunity } from "../../pkc/tracked-instance-registry-util.js";
20
22
  // store started communities to be able to stop them
21
23
  // store as a singleton because not possible to start the same community twice at the same time
22
24
  const log = Logger("pkc-js-rpc:pkc-ws-server");
23
25
  // TODO need to think how to update PKC instance of publication after setSettings?
24
26
  class PKCWsServer extends TypedEmitter {
25
- constructor({ port, server, pkc, authKey, startStartedCommunitiesOnStartup, autoStartConcurrency }) {
27
+ constructor({ port, server, pkc, authKey, startStartedCommunitiesOnStartup, autoStartConcurrency, allowPrivateKeyExport, exportFileMaxAgeMs }) {
26
28
  super();
27
29
  this.connections = {};
28
30
  this.subscriptionCleanups = {};
@@ -34,16 +36,49 @@ class PKCWsServer extends TypedEmitter {
34
36
  this._onSettingsChange = {}; // TODO rename this to _afterSettingsChange
35
37
  this._startedCommunities = {};
36
38
  this._autoStartOnBoot = false;
39
+ // Per-address cache of LocalCommunity instances loaded for export purposes when the
40
+ // community isn't currently in _startedCommunities. Keeps `_exports` and the
41
+ // `exportschange` event consistent across exportCommunity / exportsSubscribe / cancelExport
42
+ // calls for the same address.
43
+ this._exportCommunityInstances = new Map();
44
+ this._ownsHttpServer = false;
37
45
  const log = Logger("pkc-js:PKCWsServer");
38
46
  this.authKey = authKey;
39
47
  this._autoStartOnBoot = startStartedCommunitiesOnStartup ?? true;
40
48
  // Clamp to at least 1 since pLimit(0) throws. 0 or 1 means sequential (no parallelism)
41
49
  this._autoStartConcurrency = Math.max(1, autoStartConcurrency ?? 5);
50
+ // Default true — matches private-RPC scope. Public-RPC operators set false.
51
+ this._allowPrivateKeyExport = allowPrivateKeyExport ?? true;
52
+ // Default 24h — orphaned export sqlite files older than this are swept on startup.
53
+ // 0 disables the sweep entirely (export files are kept forever). `??` preserves an explicit 0.
54
+ this._exportFileMaxAgeMs = exportFileMaxAgeMs ?? 24 * 60 * 60 * 1000;
42
55
  // don't instantiate pkc in constructor because it's an async function
43
56
  this._initPKC(pkc);
57
+ // Always operate on an explicit http.Server so we can attach the /exports/<exportId>
58
+ // route alongside the WS upgrade handler. When the caller passed neither `server` nor
59
+ // delegated port-binding to rpc-websockets, we create and own one.
60
+ if (server) {
61
+ this._httpServer = server;
62
+ }
63
+ else {
64
+ this._httpServer = http.createServer();
65
+ this._ownsHttpServer = true;
66
+ if (typeof port === "number")
67
+ this._httpServer.listen(port);
68
+ }
69
+ this._httpServer.on("request", (req, res) => {
70
+ // rpc-websockets does not register request listeners — any HTTP request reaching
71
+ // this http.Server is ours to handle. Currently the only route is GET /exports/<id>.
72
+ this._handleExportsHttpRequest(req, res).catch((e) => {
73
+ log.error("Unhandled error in /exports HTTP handler", e);
74
+ if (!res.headersSent) {
75
+ res.statusCode = 500;
76
+ res.end();
77
+ }
78
+ });
79
+ });
44
80
  this.rpcWebsockets = new RpcWebsocketsServer({
45
- port,
46
- server,
81
+ server: this._httpServer,
47
82
  verifyClient: ({ req }, callback) => {
48
83
  // block non-localhost requests without auth key for security
49
84
  const requestOriginatorIp = this._getIpFromConnectionRequest(req);
@@ -125,6 +160,10 @@ class PKCWsServer extends TypedEmitter {
125
160
  this.rpcWebsocketsRegister("publishCommentModeration", this.publishCommentModeration.bind(this));
126
161
  this.rpcWebsocketsRegister("publishChallengeAnswers", this.publishChallengeAnswers.bind(this));
127
162
  this.rpcWebsocketsRegister("unsubscribe", this.unsubscribe.bind(this));
163
+ // community.export() — see EXPORT_COMMUNITY_SPEC.md
164
+ this.rpcWebsocketsRegister("exportCommunity", this.exportCommunity.bind(this));
165
+ this.rpcWebsocketsRegister("exportsSubscribe", this.exportsSubscribe.bind(this));
166
+ this.rpcWebsocketsRegister("cancelExport", this.cancelExport.bind(this));
128
167
  hideClassPrivateProps(this);
129
168
  }
130
169
  async getStartedCommunity(address) {
@@ -1264,6 +1303,228 @@ class PKCWsServer extends TypedEmitter {
1264
1303
  const pkc = await this._getPKCInstance();
1265
1304
  return pkc.resolveAuthorName(parsedArgs);
1266
1305
  }
1306
+ // community.export() — see src/rpc/EXPORT_COMMUNITY_SPEC.md
1307
+ // Resolves to the canonical LocalCommunity instance for the given identifier so that
1308
+ // exportCommunity / exportsSubscribe / cancelExport all share the same `_exports` array
1309
+ // and `exportschange` event source. Cache-first ordering matters: once the first
1310
+ // export-related call lands on an instance, every subsequent one must reuse it. Otherwise
1311
+ // a subscription attached before community.start() would listen on a different
1312
+ // LocalCommunity than the started instance picked up by a later exportCommunity call
1313
+ // (pkc.createCommunity at src/pkc/pkc.ts:749 constructs a new LocalCommunity per call),
1314
+ // and the export's `exportschange` would never reach the listener.
1315
+ async _resolveLocalCommunityForExport(parsedArgs) {
1316
+ const address = this._findCommunityAddress(parsedArgs);
1317
+ if (!address)
1318
+ throw new PKCError("ERR_COMMUNITY_NOT_FOUND", { name: parsedArgs.name, publicKey: parsedArgs.publicKey });
1319
+ const cached = this._exportCommunityInstances.get(address);
1320
+ if (cached)
1321
+ return cached;
1322
+ // No cache yet — prefer the started instance if one exists, otherwise load fresh.
1323
+ const started = findStartedCommunity(this.pkc, parsedArgs);
1324
+ if (started instanceof LocalCommunity) {
1325
+ this._exportCommunityInstances.set(address, started);
1326
+ return started;
1327
+ }
1328
+ const community = await this.pkc.createCommunity({ address });
1329
+ if (!(community instanceof LocalCommunity))
1330
+ throw new PKCError("ERR_COMMUNITY_NOT_LOCAL", { address });
1331
+ this._exportCommunityInstances.set(address, community);
1332
+ return community;
1333
+ }
1334
+ // Server-side records carry `file://` URLs (the embedded path). Over the wire we emit a
1335
+ // relative `/exports/<exportId>` URL; the RPC client absolutizes against rpcHttpOrigin.
1336
+ _toWireExportRecord(rec) {
1337
+ if (rec.progress === 1 && rec.url)
1338
+ return { ...rec, url: `/exports/${rec.exportId}` };
1339
+ return rec;
1340
+ }
1341
+ async exportCommunity(params, connectionId) {
1342
+ const parsedArgs = parseRpcExportCommunityParam(params[0]);
1343
+ if (parsedArgs.includePrivateKey === true && !this._allowPrivateKeyExport)
1344
+ throw new PKCError("ERR_PRIVATE_KEY_EXPORT_NOT_ALLOWED", {});
1345
+ const community = await this._resolveLocalCommunityForExport(parsedArgs);
1346
+ return community.export({ includePrivateKey: parsedArgs.includePrivateKey });
1347
+ }
1348
+ async exportsSubscribe(params, connectionId) {
1349
+ const parsedArgs = parseRpcCommunityIdentifierParam(params[0]);
1350
+ const subscriptionId = generateSubscriptionId();
1351
+ const community = await this._resolveLocalCommunityForExport(parsedArgs);
1352
+ const sendEvent = (event, result) => this.jsonRpcSendNotification({
1353
+ method: "exportschange",
1354
+ subscription: subscriptionId,
1355
+ event,
1356
+ result,
1357
+ connectionId
1358
+ });
1359
+ const exportschangeListener = (records) => sendEvent("exportschange", { records: records.map((r) => this._toWireExportRecord(r)) });
1360
+ community.on("exportschange", exportschangeListener);
1361
+ this.subscriptionCleanups[connectionId][subscriptionId] = async () => {
1362
+ community.removeListener("exportschange", exportschangeListener);
1363
+ };
1364
+ // Initial notification carries the current exports array. Per spec, tearing down this
1365
+ // subscription does NOT cancel any in-flight exports — exports outlive client connections.
1366
+ sendEvent("exportschange", { records: community.exports.map((r) => this._toWireExportRecord(r)) });
1367
+ return { subscriptionId };
1368
+ }
1369
+ async cancelExport(params, connectionId) {
1370
+ const { exportId } = parseRpcCancelExportParam(params[0]);
1371
+ for (const community of this._exportLoadedCommunities())
1372
+ if (community._activeExports.has(exportId)) {
1373
+ await community._cancelExport(exportId);
1374
+ break;
1375
+ }
1376
+ // Idempotent: unknown exportId returns success without action (per spec).
1377
+ return { success: true };
1378
+ }
1379
+ *_exportLoadedCommunities() {
1380
+ for (const value of Object.values(this._startedCommunities))
1381
+ if (value instanceof LocalCommunity)
1382
+ yield value;
1383
+ for (const value of this._exportCommunityInstances.values())
1384
+ yield value;
1385
+ }
1386
+ _findCommunityOwningExport(exportId) {
1387
+ for (const community of this._exportLoadedCommunities()) {
1388
+ const record = community._exports.find((r) => r.exportId === exportId);
1389
+ if (record)
1390
+ return { community, record };
1391
+ }
1392
+ return undefined;
1393
+ }
1394
+ // GET /exports/<exportId> — streams the sqlite backup over HTTP on the same port as the WS.
1395
+ // After a successful response, deletes the file and prunes the record (per spec).
1396
+ // Deletes export files older than `_exportFileMaxAgeMs` (default 24h, configurable via the
1397
+ // `exportFileMaxAgeMs` server option; 0 disables the sweep). Called once on server startup (per spec). Records
1398
+ // pointing to deleted files get pruned the next time the community loads via
1399
+ // loadAndPruneExportsFromKeyv. We do not eagerly load every community here to avoid the
1400
+ // boot cost; the embedded loader handles cleanup lazily.
1401
+ async _sweepOldExportFiles() {
1402
+ const MAX_AGE_MS = this._exportFileMaxAgeMs;
1403
+ // 0 means "keep export files forever" — never auto-remove anything.
1404
+ if (MAX_AGE_MS === 0)
1405
+ return;
1406
+ if (!this.pkc.dataPath)
1407
+ return;
1408
+ const exportsDir = path.join(this.pkc.dataPath, "exports");
1409
+ if (!existsSync(exportsDir))
1410
+ return;
1411
+ const now = Date.now();
1412
+ let entries = [];
1413
+ try {
1414
+ entries = await fsPromises.readdir(exportsDir);
1415
+ }
1416
+ catch {
1417
+ return;
1418
+ }
1419
+ for (const entry of entries) {
1420
+ if (!entry.endsWith(".sqlite"))
1421
+ continue;
1422
+ const filePath = path.join(exportsDir, entry);
1423
+ try {
1424
+ const stat = await fsPromises.stat(filePath);
1425
+ if (now - stat.mtimeMs > MAX_AGE_MS)
1426
+ await fsPromises.unlink(filePath);
1427
+ }
1428
+ catch {
1429
+ // file may have been removed concurrently — ignore
1430
+ }
1431
+ }
1432
+ }
1433
+ async _handleExportsHttpRequest(req, res) {
1434
+ const httpLog = Logger("pkc-js:PKCWsServer:exports-http");
1435
+ const requestUrl = new URL(req.url ?? "/", "http://localhost");
1436
+ const match = requestUrl.pathname.match(/^\/exports\/([0-9a-fA-F-]{36})$/);
1437
+ if (!match) {
1438
+ // On a caller-supplied server we may be sharing the http.Server with the caller's own
1439
+ // routes. Only the owner of the server is responsible for the catch-all 404 — otherwise
1440
+ // we'd hijack/clobber responses for unrelated routes the caller serves on the same port.
1441
+ if (this._ownsHttpServer) {
1442
+ res.statusCode = 404;
1443
+ res.end();
1444
+ }
1445
+ return;
1446
+ }
1447
+ if (req.method !== "GET") {
1448
+ res.statusCode = 405;
1449
+ res.setHeader("Allow", "GET");
1450
+ res.end();
1451
+ return;
1452
+ }
1453
+ const exportId = match[1];
1454
+ const owner = this._findCommunityOwningExport(exportId);
1455
+ // Resolve the file to stream. Prefer the in-memory record of a loaded community; otherwise
1456
+ // fall back to the persisted file on disk. The disk fallback is what keeps a download URL
1457
+ // valid across a daemon restart, when the owning community has not been loaded back into
1458
+ // memory yet: the export file survives at <dataPath>/exports/<id>.sqlite and exportId is an
1459
+ // unguessable capability. (The `.partial` suffix used for in-flight backups can't match this
1460
+ // exact `<id>.sqlite` route, so a partial is never served.)
1461
+ const community = owner?.community;
1462
+ let candidatePath;
1463
+ if (owner) {
1464
+ const { record } = owner;
1465
+ if (record.progress === 1 && record.url)
1466
+ try {
1467
+ const parsed = new URL(record.url);
1468
+ if (parsed.protocol === "file:")
1469
+ candidatePath = fileURLToPath(parsed);
1470
+ }
1471
+ catch {
1472
+ candidatePath = undefined;
1473
+ }
1474
+ }
1475
+ else if (this.pkc.dataPath) {
1476
+ candidatePath = path.join(this.pkc.dataPath, "exports", `${exportId}.sqlite`);
1477
+ }
1478
+ if (!candidatePath) {
1479
+ httpLog("GET /exports — unknown exportId", exportId);
1480
+ res.statusCode = 404;
1481
+ res.end();
1482
+ return;
1483
+ }
1484
+ const filePath = candidatePath;
1485
+ let size;
1486
+ try {
1487
+ size = statSync(filePath).size;
1488
+ }
1489
+ catch {
1490
+ res.statusCode = 404;
1491
+ res.end();
1492
+ return;
1493
+ }
1494
+ res.statusCode = 200;
1495
+ res.setHeader("Content-Type", "application/vnd.sqlite3");
1496
+ res.setHeader("Content-Length", String(size));
1497
+ const stream = createReadStream(filePath);
1498
+ let streamEnded = false;
1499
+ let streamErrored = false;
1500
+ stream.on("end", () => {
1501
+ streamEnded = true;
1502
+ });
1503
+ stream.on("error", (err) => {
1504
+ streamErrored = true;
1505
+ httpLog.error("Error streaming export file", filePath, err);
1506
+ if (!res.headersSent)
1507
+ res.statusCode = 500;
1508
+ res.end();
1509
+ });
1510
+ res.on("close", () => {
1511
+ // Cleanup only on fully streamed + flushed responses. Client aborts and stream
1512
+ // errors leave the record + file intact so the consumer can retry.
1513
+ if (streamErrored || !streamEnded || !res.writableEnded)
1514
+ return;
1515
+ if (community) {
1516
+ // Loaded community: prune the record and delete the file together.
1517
+ community._deleteExport(exportId).catch((e) => httpLog.error("Failed to cleanup downloaded export", exportId, e));
1518
+ }
1519
+ else {
1520
+ // Served from disk after a restart (no community loaded): just remove the file. The
1521
+ // stale KeyV record is pruned lazily the next time that community loads, via
1522
+ // loadAndPruneExportsFromKeyv (which drops records whose file is missing).
1523
+ fsPromises.unlink(filePath).catch((e) => httpLog.error("Failed to cleanup downloaded export file", exportId, e));
1524
+ }
1525
+ });
1526
+ stream.pipe(res);
1527
+ }
1267
1528
  async unsubscribe(params, connectionId) {
1268
1529
  const { subscriptionId } = parseRpcUnsubscribeParam(params[0]);
1269
1530
  log("Received unsubscribe", { connectionId, subscriptionId });
@@ -1279,11 +1540,14 @@ class PKCWsServer extends TypedEmitter {
1279
1540
  for (const subscriptionId of remeda.keys.strict(this.subscriptionCleanups[connectionId]))
1280
1541
  await this.unsubscribe([{ subscriptionId: Number(subscriptionId) }], connectionId);
1281
1542
  this.ws.close();
1543
+ if (this._ownsHttpServer && this._httpServer)
1544
+ await new Promise((r) => this._httpServer.close(() => r()));
1282
1545
  const pkc = await this._getPKCInstance();
1283
1546
  await pkc.destroy(); // this will stop all started communities
1284
1547
  for (const communityAddress of remeda.keys.strict(this._startedCommunities)) {
1285
1548
  delete this._startedCommunities[communityAddress];
1286
1549
  }
1550
+ this._exportCommunityInstances.clear();
1287
1551
  this._rpcStateDb?.close();
1288
1552
  this._rpcStateDb = undefined;
1289
1553
  this._onSettingsChange = {};
@@ -1298,12 +1562,18 @@ const createPKCWsServer = async (options) => {
1298
1562
  server: parsedOptions.server,
1299
1563
  authKey: parsedOptions.authKey,
1300
1564
  startStartedCommunitiesOnStartup: parsedOptions.startStartedCommunitiesOnStartup,
1301
- autoStartConcurrency: parsedOptions.autoStartConcurrency
1565
+ autoStartConcurrency: parsedOptions.autoStartConcurrency,
1566
+ allowPrivateKeyExport: parsedOptions.allowPrivateKeyExport,
1567
+ exportFileMaxAgeMs: parsedOptions.exportFileMaxAgeMs
1302
1568
  });
1303
1569
  // Auto-start previously started communities (fire-and-forget, non-blocking)
1304
1570
  pkcWss._autoStartPreviousCommunities().catch((e) => {
1305
1571
  log.error("Failed to auto-start previous communities", e);
1306
1572
  });
1573
+ // Delete export files older than exportFileMaxAgeMs (default 24h, fire-and-forget) — see EXPORT_COMMUNITY_SPEC.md
1574
+ pkcWss._sweepOldExportFiles().catch((e) => {
1575
+ log.error("Failed to sweep old export files", e);
1576
+ });
1307
1577
  return pkcWss;
1308
1578
  };
1309
1579
  const PKCRpc = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rpc/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rpc/src/index.ts"],"names":[],"mappings":"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"}