@shhhum/xftp-web 0.3.0 → 0.5.0

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 (54) hide show
  1. package/README.md +15 -83
  2. package/dist/agent.d.ts +4 -6
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +79 -143
  5. package/dist/agent.js.map +1 -1
  6. package/dist/client.d.ts +0 -2
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +1 -6
  9. package/dist/client.js.map +1 -1
  10. package/dist/crypto/digest.d.ts +0 -1
  11. package/dist/crypto/digest.d.ts.map +1 -1
  12. package/dist/crypto/digest.js.map +1 -1
  13. package/dist/crypto/file.d.ts +0 -1
  14. package/dist/crypto/file.d.ts.map +1 -1
  15. package/dist/crypto/identity.d.ts +0 -1
  16. package/dist/crypto/keys.d.ts +0 -1
  17. package/dist/crypto/keys.js +0 -1
  18. package/dist/crypto/keys.js.map +1 -1
  19. package/dist/crypto/padding.d.ts +0 -1
  20. package/dist/crypto/secretbox.d.ts +0 -1
  21. package/dist/download.d.ts +0 -1
  22. package/dist/protocol/address.d.ts +0 -1
  23. package/dist/protocol/chunks.d.ts +0 -1
  24. package/dist/protocol/client.d.ts +0 -1
  25. package/dist/protocol/commands.d.ts +1 -10
  26. package/dist/protocol/commands.js +1 -15
  27. package/dist/protocol/commands.js.map +1 -1
  28. package/dist/protocol/description.d.ts +0 -1
  29. package/dist/protocol/encoding.d.ts +0 -1
  30. package/dist/protocol/handshake.d.ts +0 -1
  31. package/dist/protocol/transmission.d.ts +0 -1
  32. package/dist-web/assets/__vite-browser-external-9wXp6ZBx.js +1 -0
  33. package/dist-web/assets/__vite-browser-external.js +1 -0
  34. package/dist-web/assets/index.css +1 -0
  35. package/dist-web/assets/index.js +1468 -0
  36. package/dist-web/crypto.worker.js +1413 -0
  37. package/dist-web/index.html +15 -0
  38. package/package.json +4 -5
  39. package/src/agent.ts +85 -156
  40. package/src/client.ts +1 -8
  41. package/src/crypto/digest.ts +2 -2
  42. package/src/crypto/keys.ts +0 -1
  43. package/src/protocol/commands.ts +2 -22
  44. package/web/crypto-backend.ts +122 -0
  45. package/web/crypto.worker.ts +313 -0
  46. package/web/download.ts +140 -0
  47. package/web/index.html +15 -0
  48. package/web/main.ts +30 -0
  49. package/web/progress.ts +52 -0
  50. package/web/servers.json +18 -0
  51. package/web/servers.ts +16 -0
  52. package/web/style.css +103 -0
  53. package/web/upload.ts +171 -0
  54. package/src/index.ts +0 -4
package/README.md CHANGED
@@ -2,81 +2,13 @@
2
2
 
3
3
  Browser-compatible XFTP file transfer client in TypeScript.
4
4
 
5
- ## Installation
6
-
7
- ```bash
8
- npm install xftp-web
9
- ```
10
-
11
- ## Usage
12
-
13
- ```typescript
14
- import {
15
- newXFTPAgent, closeXFTPAgent,
16
- parseXFTPServer,
17
- encryptFileForUpload, uploadFile, downloadFile, deleteFile,
18
- decodeDescriptionURI, encodeDescriptionURI,
19
- XFTPRetriableError, XFTPPermanentError, isRetriable,
20
- } from "xftp-web"
21
-
22
- // Create agent (manages connections)
23
- const agent = newXFTPAgent()
24
-
25
- // Upload — chunks are distributed randomly across servers
26
- const servers = [
27
- parseXFTPServer("xftp://server1..."),
28
- parseXFTPServer("xftp://server2..."),
29
- parseXFTPServer("xftp://server3..."),
30
- ]
31
- const encrypted = encryptFileForUpload(fileBytes, "photo.jpg")
32
- const {rcvDescriptions, sndDescription, uri} = await uploadFile(agent, servers, encrypted, {
33
- onProgress: (uploaded, total) => console.log(`${uploaded}/${total}`),
34
- })
35
-
36
- // Download (from URI or FileDescription)
37
- const fd = decodeDescriptionURI(uri)
38
- const {header, content} = await downloadFile(agent, fd)
39
-
40
- // Delete (using sender description)
41
- await deleteFile(agent, sndDescription)
42
-
43
- // Cleanup
44
- closeXFTPAgent(agent)
45
- ```
46
-
47
- ### Upload options
48
-
49
- ```typescript
50
- await uploadFile(agent, servers, encrypted, {
51
- onProgress: (uploaded, total) => {}, // progress callback
52
- auth: basicAuthBytes, // BasicAuth for auth-required servers
53
- numRecipients: 3, // multiple independent download credentials (default: 1)
54
- })
55
- ```
56
-
57
- ### Error handling
58
-
59
- ```typescript
60
- try {
61
- await uploadFile(agent, servers, encrypted)
62
- } catch (e) {
63
- if (e instanceof XFTPRetriableError) {
64
- // Network/timeout/session errors — safe to retry
65
- } else if (e instanceof XFTPPermanentError) {
66
- // AUTH, NO_FILE, BLOCKED, etc. — do not retry
67
- }
68
- // or use: isRetriable(e)
69
- }
70
- ```
71
-
72
- ## Development
73
-
74
- ### Prerequisites
5
+ ## Prerequisites
75
6
 
76
7
  - Haskell toolchain with `cabal` (to build `xftp-server`)
77
8
  - Node.js 20+
9
+ - Chromium system dependencies (see below)
78
10
 
79
- ### Setup
11
+ ## Setup
80
12
 
81
13
  ```bash
82
14
  # Build the XFTP server binary (from repo root)
@@ -85,31 +17,31 @@ cabal build xftp-server
85
17
  # Install JS dependencies
86
18
  cd xftp-web
87
19
  npm install
20
+
21
+ # Install Chromium for Playwright (browser tests)
22
+ npx playwright install chromium
88
23
  ```
89
24
 
90
- ### Running tests
25
+ If Chromium fails to launch due to missing system libraries, install them with:
91
26
 
92
27
  ```bash
93
- npm run test
28
+ # Requires root
29
+ npx playwright install-deps chromium
94
30
  ```
95
31
 
96
- The `pretest` script automatically installs Chromium and sets up the libsodium symlink. The browser test starts an `xftp-server` instance on port 7000 via `globalSetup`.
97
-
98
- If Chromium fails to launch due to missing system libraries:
32
+ ## Running tests
99
33
 
100
34
  ```bash
101
- # Requires root
102
- npx playwright install-deps chromium
35
+ # Browser round-trip test (vitest + Playwright headless Chromium)
36
+ npm run test
103
37
  ```
104
38
 
105
- ### Build
39
+ The browser test automatically starts an `xftp-server` instance on port 7000 via `globalSetup`, using certs from `tests/fixtures/`.
40
+
41
+ ## Build
106
42
 
107
43
  ```bash
108
44
  npm run build
109
45
  ```
110
46
 
111
47
  Output goes to `dist/`.
112
-
113
- ## License
114
-
115
- [AGPL-3.0-only](https://www.gnu.org/licenses/agpl-3.0.html)
package/dist/agent.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type FileDescription } from "./protocol/description.js";
2
2
  import { type XFTPClientAgent } from "./client.js";
3
- export { newXFTPAgent, closeXFTPAgent, type XFTPClientAgent, type TransportConfig, XFTPRetriableError, XFTPPermanentError, isRetriable, categorizeError, humanReadableMessage, ackXFTPChunk, addXFTPRecipients } from "./client.js";
3
+ export { newXFTPAgent, closeXFTPAgent, type XFTPClientAgent, type TransportConfig } from "./client.js";
4
4
  import type { XFTPServer } from "./protocol/address.js";
5
5
  import type { FileHeader } from "./crypto/file.js";
6
6
  export interface EncryptedFileMetadata {
@@ -13,7 +13,7 @@ export interface EncryptedFileInfo extends EncryptedFileMetadata {
13
13
  encData: Uint8Array;
14
14
  }
15
15
  export interface UploadResult {
16
- rcvDescriptions: FileDescription[];
16
+ rcvDescription: FileDescription;
17
17
  sndDescription: FileDescription;
18
18
  uri: string;
19
19
  }
@@ -28,10 +28,8 @@ export interface UploadOptions {
28
28
  onProgress?: (uploaded: number, total: number) => void;
29
29
  redirectThreshold?: number;
30
30
  readChunk?: (offset: number, size: number) => Promise<Uint8Array>;
31
- auth?: Uint8Array;
32
- numRecipients?: number;
33
31
  }
34
- export declare function uploadFile(agent: XFTPClientAgent, servers: XFTPServer[], encrypted: EncryptedFileMetadata, options?: UploadOptions): Promise<UploadResult>;
32
+ export declare function uploadFile(agent: XFTPClientAgent, server: XFTPServer, encrypted: EncryptedFileMetadata, options?: UploadOptions): Promise<UploadResult>;
35
33
  export interface RawDownloadedChunk {
36
34
  chunkNo: number;
37
35
  dhSecret: Uint8Array;
@@ -41,8 +39,8 @@ export interface RawDownloadedChunk {
41
39
  }
42
40
  export interface DownloadRawOptions {
43
41
  onProgress?: (downloaded: number, total: number) => void;
42
+ concurrency?: number;
44
43
  }
45
44
  export declare function downloadFileRaw(agent: XFTPClientAgent, fd: FileDescription, onRawChunk: (chunk: RawDownloadedChunk) => Promise<void>, options?: DownloadRawOptions): Promise<FileDescription>;
46
45
  export declare function downloadFile(agent: XFTPClientAgent, fd: FileDescription, onProgress?: (downloaded: number, total: number) => void): Promise<DownloadResult>;
47
46
  export declare function deleteFile(agent: XFTPClientAgent, sndDescription: FileDescription): Promise<void>;
48
- //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -8,8 +8,8 @@ import { generateEd25519KeyPair, encodePubKeyEd25519, encodePrivKeyEd25519, deco
8
8
  import { sha512Streaming } from "./crypto/digest.js";
9
9
  import { prepareChunkSizes, prepareChunkSpecs, getChunkDigest, fileSizeLen, authTagSize } from "./protocol/chunks.js";
10
10
  import { encodeFileDescription, decodeFileDescription, validateFileDescription, base64urlEncode, base64urlDecode } from "./protocol/description.js";
11
- import { createXFTPChunk, addXFTPRecipients, uploadXFTPChunk, downloadXFTPChunk, downloadXFTPChunkRaw, deleteXFTPChunk, ackXFTPChunk } from "./client.js";
12
- export { newXFTPAgent, closeXFTPAgent, XFTPRetriableError, XFTPPermanentError, isRetriable, categorizeError, humanReadableMessage, ackXFTPChunk, addXFTPRecipients } from "./client.js";
11
+ import { createXFTPChunk, uploadXFTPChunk, downloadXFTPChunk, downloadXFTPChunkRaw, deleteXFTPChunk } from "./client.js";
12
+ export { newXFTPAgent, closeXFTPAgent } from "./client.js";
13
13
  import { processDownloadedFile, decryptReceivedChunk } from "./download.js";
14
14
  import { formatXFTPServer, parseXFTPServer } from "./protocol/address.js";
15
15
  // -- URI encoding/decoding (RFC section 4.1: DEFLATE + base64url)
@@ -44,11 +44,8 @@ export function encryptFileForUpload(source, fileName) {
44
44
  return { encData, digest, key, nonce, chunkSizes };
45
45
  }
46
46
  const DEFAULT_REDIRECT_THRESHOLD = 400;
47
- const MAX_RECIPIENTS_PER_REQUEST = 200;
48
- export async function uploadFile(agent, servers, encrypted, options) {
49
- if (servers.length === 0)
50
- throw new Error("uploadFile: servers list is empty");
51
- const { onProgress, redirectThreshold, readChunk: readChunkOpt, auth, numRecipients = 1 } = options ?? {};
47
+ export async function uploadFile(agent, server, encrypted, options) {
48
+ const { onProgress, redirectThreshold, readChunk: readChunkOpt } = options ?? {};
52
49
  const readChunk = readChunkOpt
53
50
  ? readChunkOpt
54
51
  : ('encData' in encrypted
@@ -56,72 +53,44 @@ export async function uploadFile(agent, servers, encrypted, options) {
56
53
  : () => { throw new Error("uploadFile: readChunk required when encData is absent"); });
57
54
  const total = encrypted.chunkSizes.reduce((a, b) => a + b, 0);
58
55
  const specs = prepareChunkSpecs(encrypted.chunkSizes);
59
- // Pre-assign servers and group by server (matching Haskell groupAllOn)
60
- const chunkJobs = specs.map((spec, i) => ({
61
- index: i,
62
- spec,
63
- server: servers[Math.floor(Math.random() * servers.length)]
64
- }));
65
- const byServer = new Map();
66
- for (const job of chunkJobs) {
67
- const key = formatXFTPServer(job.server);
68
- if (!byServer.has(key))
69
- byServer.set(key, []);
70
- byServer.get(key).push(job);
71
- }
72
- // Upload groups in parallel, sequential within each group
73
- const sentChunks = new Array(specs.length);
56
+ const sentChunks = [];
74
57
  let uploaded = 0;
75
- await Promise.all([...byServer.values()].map(async (jobs) => {
76
- for (const { index, spec, server } of jobs) {
77
- const chunkNo = index + 1;
78
- const sndKp = generateEd25519KeyPair();
79
- const rcvKps = Array.from({ length: numRecipients }, () => generateEd25519KeyPair());
80
- const chunkData = await readChunk(spec.chunkOffset, spec.chunkSize);
81
- const chunkDigest = getChunkDigest(chunkData);
82
- console.log(`[AGENT-DBG] upload chunk=${chunkNo} offset=${spec.chunkOffset} size=${spec.chunkSize} digest=${_dbgHex(chunkDigest, 32)} data[0..8]=${_dbgHex(chunkData)} data[-8..]=${_dbgHex(chunkData.slice(-8))}`);
83
- const fileInfo = {
84
- sndKey: encodePubKeyEd25519(sndKp.publicKey),
85
- size: spec.chunkSize,
86
- digest: chunkDigest
87
- };
88
- const firstBatch = Math.min(numRecipients, MAX_RECIPIENTS_PER_REQUEST);
89
- const firstBatchKeys = rcvKps.slice(0, firstBatch).map(kp => encodePubKeyEd25519(kp.publicKey));
90
- const { senderId, recipientIds: firstIds } = await createXFTPChunk(agent, server, sndKp.privateKey, fileInfo, firstBatchKeys, auth ?? null);
91
- const allRecipientIds = [...firstIds];
92
- let added = firstBatch;
93
- while (added < numRecipients) {
94
- const batchSize = Math.min(numRecipients - added, MAX_RECIPIENTS_PER_REQUEST);
95
- const batchKeys = rcvKps.slice(added, added + batchSize).map(kp => encodePubKeyEd25519(kp.publicKey));
96
- const moreIds = await addXFTPRecipients(agent, server, sndKp.privateKey, senderId, batchKeys);
97
- allRecipientIds.push(...moreIds);
98
- added += batchSize;
99
- }
100
- await uploadXFTPChunk(agent, server, sndKp.privateKey, senderId, chunkData);
101
- sentChunks[index] = {
102
- chunkNo, senderId, senderKey: sndKp.privateKey,
103
- recipients: allRecipientIds.map((rid, ri) => ({
104
- recipientId: rid, recipientKey: rcvKps[ri].privateKey
105
- })),
106
- chunkSize: spec.chunkSize, digest: chunkDigest, server
107
- };
108
- uploaded += spec.chunkSize;
109
- onProgress?.(uploaded, total);
110
- }
111
- }));
112
- const rcvDescriptions = Array.from({ length: numRecipients }, (_, ri) => buildDescription("recipient", ri, encrypted, sentChunks));
113
- const sndDescription = buildDescription("sender", 0, encrypted, sentChunks);
114
- let uri = encodeDescriptionURI(rcvDescriptions[0]);
115
- let finalRcvDescriptions = rcvDescriptions;
58
+ for (let i = 0; i < specs.length; i++) {
59
+ const spec = specs[i];
60
+ const chunkNo = i + 1;
61
+ const sndKp = generateEd25519KeyPair();
62
+ const rcvKp = generateEd25519KeyPair();
63
+ const chunkData = await readChunk(spec.chunkOffset, spec.chunkSize);
64
+ const chunkDigest = getChunkDigest(chunkData);
65
+ console.log(`[AGENT-DBG] upload chunk=${chunkNo} offset=${spec.chunkOffset} size=${spec.chunkSize} digest=${_dbgHex(chunkDigest, 32)} data[0..8]=${_dbgHex(chunkData)} data[-8..]=${_dbgHex(chunkData.slice(-8))}`);
66
+ const fileInfo = {
67
+ sndKey: encodePubKeyEd25519(sndKp.publicKey),
68
+ size: spec.chunkSize,
69
+ digest: chunkDigest
70
+ };
71
+ const rcvKeysForChunk = [encodePubKeyEd25519(rcvKp.publicKey)];
72
+ const { senderId, recipientIds } = await createXFTPChunk(agent, server, sndKp.privateKey, fileInfo, rcvKeysForChunk);
73
+ await uploadXFTPChunk(agent, server, sndKp.privateKey, senderId, chunkData);
74
+ sentChunks.push({
75
+ chunkNo, senderId, senderKey: sndKp.privateKey,
76
+ recipientId: recipientIds[0], recipientKey: rcvKp.privateKey,
77
+ chunkSize: spec.chunkSize, digest: chunkDigest, server
78
+ });
79
+ uploaded += spec.chunkSize;
80
+ onProgress?.(uploaded, total);
81
+ }
82
+ const rcvDescription = buildDescription("recipient", encrypted, sentChunks);
83
+ const sndDescription = buildDescription("sender", encrypted, sentChunks);
84
+ let uri = encodeDescriptionURI(rcvDescription);
85
+ let finalRcvDescription = rcvDescription;
116
86
  const threshold = redirectThreshold ?? DEFAULT_REDIRECT_THRESHOLD;
117
87
  if (uri.length > threshold && sentChunks.length > 1) {
118
- const redirected = await uploadRedirectDescription(agent, servers, rcvDescriptions[0], auth);
119
- finalRcvDescriptions = [redirected, ...rcvDescriptions.slice(1)];
120
- uri = encodeDescriptionURI(redirected);
88
+ finalRcvDescription = await uploadRedirectDescription(agent, server, rcvDescription);
89
+ uri = encodeDescriptionURI(finalRcvDescription);
121
90
  }
122
- return { rcvDescriptions: finalRcvDescriptions, sndDescription, uri };
91
+ return { rcvDescription: finalRcvDescription, sndDescription, uri };
123
92
  }
124
- function buildDescription(party, recipientIndex, enc, chunks) {
93
+ function buildDescription(party, enc, chunks) {
125
94
  const defChunkSize = enc.chunkSizes[0];
126
95
  return {
127
96
  party,
@@ -136,53 +105,40 @@ function buildDescription(party, recipientIndex, enc, chunks) {
136
105
  digest: c.digest,
137
106
  replicas: [{
138
107
  server: formatXFTPServer(c.server),
139
- replicaId: party === "recipient" ? c.recipients[recipientIndex].recipientId : c.senderId,
140
- replicaKey: encodePrivKeyEd25519(party === "recipient" ? c.recipients[recipientIndex].recipientKey : c.senderKey)
108
+ replicaId: party === "recipient" ? c.recipientId : c.senderId,
109
+ replicaKey: encodePrivKeyEd25519(party === "recipient" ? c.recipientKey : c.senderKey)
141
110
  }]
142
111
  })),
143
112
  redirect: null
144
113
  };
145
114
  }
146
- async function uploadRedirectDescription(agent, servers, innerFd, auth) {
115
+ async function uploadRedirectDescription(agent, server, innerFd) {
147
116
  const yaml = encodeFileDescription(innerFd);
148
117
  const yamlBytes = new TextEncoder().encode(yaml);
149
118
  const enc = encryptFileForUpload(yamlBytes, "");
150
119
  const specs = prepareChunkSpecs(enc.chunkSizes);
151
- const chunkJobs = specs.map((spec, i) => ({
152
- index: i,
153
- spec,
154
- server: servers[Math.floor(Math.random() * servers.length)]
155
- }));
156
- const byServer = new Map();
157
- for (const job of chunkJobs) {
158
- const key = formatXFTPServer(job.server);
159
- if (!byServer.has(key))
160
- byServer.set(key, []);
161
- byServer.get(key).push(job);
120
+ const sentChunks = [];
121
+ for (let i = 0; i < specs.length; i++) {
122
+ const spec = specs[i];
123
+ const chunkNo = i + 1;
124
+ const sndKp = generateEd25519KeyPair();
125
+ const rcvKp = generateEd25519KeyPair();
126
+ const chunkData = enc.encData.subarray(spec.chunkOffset, spec.chunkOffset + spec.chunkSize);
127
+ const chunkDigest = getChunkDigest(chunkData);
128
+ const fileInfo = {
129
+ sndKey: encodePubKeyEd25519(sndKp.publicKey),
130
+ size: spec.chunkSize,
131
+ digest: chunkDigest
132
+ };
133
+ const rcvKeysForChunk = [encodePubKeyEd25519(rcvKp.publicKey)];
134
+ const { senderId, recipientIds } = await createXFTPChunk(agent, server, sndKp.privateKey, fileInfo, rcvKeysForChunk);
135
+ await uploadXFTPChunk(agent, server, sndKp.privateKey, senderId, chunkData);
136
+ sentChunks.push({
137
+ chunkNo, senderId, senderKey: sndKp.privateKey,
138
+ recipientId: recipientIds[0], recipientKey: rcvKp.privateKey,
139
+ chunkSize: spec.chunkSize, digest: chunkDigest, server
140
+ });
162
141
  }
163
- const sentChunks = new Array(specs.length);
164
- await Promise.all([...byServer.values()].map(async (jobs) => {
165
- for (const { index, spec, server } of jobs) {
166
- const chunkNo = index + 1;
167
- const sndKp = generateEd25519KeyPair();
168
- const rcvKp = generateEd25519KeyPair();
169
- const chunkData = enc.encData.subarray(spec.chunkOffset, spec.chunkOffset + spec.chunkSize);
170
- const chunkDigest = getChunkDigest(chunkData);
171
- const fileInfo = {
172
- sndKey: encodePubKeyEd25519(sndKp.publicKey),
173
- size: spec.chunkSize,
174
- digest: chunkDigest
175
- };
176
- const rcvKeysForChunk = [encodePubKeyEd25519(rcvKp.publicKey)];
177
- const { senderId, recipientIds } = await createXFTPChunk(agent, server, sndKp.privateKey, fileInfo, rcvKeysForChunk, auth ?? null);
178
- await uploadXFTPChunk(agent, server, sndKp.privateKey, senderId, chunkData);
179
- sentChunks[index] = {
180
- chunkNo, senderId, senderKey: sndKp.privateKey,
181
- recipients: [{ recipientId: recipientIds[0], recipientKey: rcvKp.privateKey }],
182
- chunkSize: spec.chunkSize, digest: chunkDigest, server
183
- };
184
- }
185
- }));
186
142
  return {
187
143
  party: "recipient",
188
144
  size: enc.chunkSizes.reduce((a, b) => a + b, 0),
@@ -196,8 +152,8 @@ async function uploadRedirectDescription(agent, servers, innerFd, auth) {
196
152
  digest: c.digest,
197
153
  replicas: [{
198
154
  server: formatXFTPServer(c.server),
199
- replicaId: c.recipients[0].recipientId,
200
- replicaKey: encodePrivKeyEd25519(c.recipients[0].recipientKey)
155
+ replicaId: c.recipientId,
156
+ replicaKey: encodePrivKeyEd25519(c.recipientKey)
201
157
  }]
202
158
  })),
203
159
  redirect: { size: innerFd.size, digest: innerFd.digest }
@@ -207,7 +163,7 @@ export async function downloadFileRaw(agent, fd, onRawChunk, options) {
207
163
  const err = validateFileDescription(fd);
208
164
  if (err)
209
165
  throw new Error("downloadFileRaw: " + err);
210
- const { onProgress } = options ?? {};
166
+ const { onProgress, concurrency = 1 } = options ?? {};
211
167
  // Resolve redirect on main thread (redirect data is small)
212
168
  if (fd.redirect !== null) {
213
169
  console.log(`[AGENT-DBG] resolving redirect: outer size=${fd.size} chunks=${fd.chunks.length}`);
@@ -241,7 +197,6 @@ export async function downloadFileRaw(agent, fd, onRawChunk, options) {
241
197
  body: raw.body,
242
198
  digest: chunk.digest
243
199
  });
244
- await ackXFTPChunk(agent, server, kp.privateKey, replica.replicaId);
245
200
  downloaded += chunk.chunkSize;
246
201
  onProgress?.(downloaded, resolvedFd.size);
247
202
  }
@@ -263,26 +218,16 @@ export async function downloadFile(agent, fd, onProgress) {
263
218
  }
264
219
  async function resolveRedirect(agent, fd) {
265
220
  const plaintextChunks = new Array(fd.chunks.length);
266
- const byServer = new Map();
267
221
  for (const chunk of fd.chunks) {
268
- const srv = chunk.replicas[0]?.server ?? "";
269
- if (!byServer.has(srv))
270
- byServer.set(srv, []);
271
- byServer.get(srv).push(chunk);
222
+ const replica = chunk.replicas[0];
223
+ if (!replica)
224
+ throw new Error("resolveRedirect: chunk has no replicas");
225
+ const server = parseXFTPServer(replica.server);
226
+ const seed = decodePrivKeyEd25519(replica.replicaKey);
227
+ const kp = ed25519KeyPairFromSeed(seed);
228
+ const data = await downloadXFTPChunk(agent, server, kp.privateKey, replica.replicaId, chunk.digest);
229
+ plaintextChunks[chunk.chunkNo - 1] = data;
272
230
  }
273
- await Promise.all([...byServer.entries()].map(async ([srv, chunks]) => {
274
- const server = parseXFTPServer(srv);
275
- for (const chunk of chunks) {
276
- const replica = chunk.replicas[0];
277
- if (!replica)
278
- throw new Error("resolveRedirect: chunk has no replicas");
279
- const seed = decodePrivKeyEd25519(replica.replicaKey);
280
- const kp = ed25519KeyPairFromSeed(seed);
281
- const data = await downloadXFTPChunk(agent, server, kp.privateKey, replica.replicaId, chunk.digest);
282
- plaintextChunks[chunk.chunkNo - 1] = data;
283
- await ackXFTPChunk(agent, server, kp.privateKey, replica.replicaId);
284
- }
285
- }));
286
231
  const totalSize = plaintextChunks.reduce((s, c) => s + c.length, 0);
287
232
  if (totalSize !== fd.size)
288
233
  throw new Error("resolveRedirect: redirect file size mismatch");
@@ -303,24 +248,15 @@ async function resolveRedirect(agent, fd) {
303
248
  }
304
249
  // -- Delete
305
250
  export async function deleteFile(agent, sndDescription) {
306
- const byServer = new Map();
307
251
  for (const chunk of sndDescription.chunks) {
308
- const srv = chunk.replicas[0]?.server ?? "";
309
- if (!byServer.has(srv))
310
- byServer.set(srv, []);
311
- byServer.get(srv).push(chunk);
252
+ const replica = chunk.replicas[0];
253
+ if (!replica)
254
+ throw new Error("deleteFile: chunk has no replicas");
255
+ const server = parseXFTPServer(replica.server);
256
+ const seed = decodePrivKeyEd25519(replica.replicaKey);
257
+ const kp = ed25519KeyPairFromSeed(seed);
258
+ await deleteXFTPChunk(agent, server, kp.privateKey, replica.replicaId);
312
259
  }
313
- await Promise.all([...byServer.entries()].map(async ([srv, chunks]) => {
314
- const server = parseXFTPServer(srv);
315
- for (const chunk of chunks) {
316
- const replica = chunk.replicas[0];
317
- if (!replica)
318
- throw new Error("deleteFile: chunk has no replicas");
319
- const seed = decodePrivKeyEd25519(replica.replicaKey);
320
- const kp = ed25519KeyPairFromSeed(seed);
321
- await deleteXFTPChunk(agent, server, kp.privateKey, replica.replicaId);
322
- }
323
- }));
324
260
  }
325
261
  // -- Internal
326
262
  function _dbgHex(b, n = 8) {
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -58,8 +58,6 @@ export interface RawChunkResponse {
58
58
  export declare function downloadXFTPChunkRaw(agent: XFTPClientAgent, server: XFTPServer, rpKey: Uint8Array, fId: Uint8Array): Promise<RawChunkResponse>;
59
59
  export declare function downloadXFTPChunk(agent: XFTPClientAgent, server: XFTPServer, rpKey: Uint8Array, fId: Uint8Array, digest?: Uint8Array): Promise<Uint8Array>;
60
60
  export declare function deleteXFTPChunk(agent: XFTPClientAgent, server: XFTPServer, spKey: Uint8Array, sId: Uint8Array): Promise<void>;
61
- export declare function ackXFTPChunk(agent: XFTPClientAgent, server: XFTPServer, rpKey: Uint8Array, rId: Uint8Array): Promise<void>;
62
61
  export declare function pingXFTP(agent: XFTPClientAgent, server: XFTPServer): Promise<void>;
63
62
  export declare function closeXFTP(c: XFTPClient): void;
64
63
  export {};
65
- //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEW,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EACrE,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAOrD,qBAAa,kBAAmB,SAAQ,KAAK;aACf,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAI9C;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aACf,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI/D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAM/C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAKjD;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAiB9E;AAID,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,UAAU,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,UAAU,SAAS;IACjB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7E,KAAK,IAAI,IAAI,CAAA;CACd;AA0ED,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC1C,iEAAiE;IACjE,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CACxD;AAED,wBAAgB,YAAY,IAAI,eAAe,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAanG;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAY/F;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GACvE,IAAI,CAON;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAOtF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAK3D;AAID,wBAAsB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAoD5G;AAiDD,wBAAsB,eAAe,CACnC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,EACpB,SAAS,CAAC,EAAE,UAAU,EACtB,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,CAAC,CAqBrD;AAID,wBAAsB,eAAe,CACnC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAC7E,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,GAAE,UAAU,GAAG,IAAW,GACpD,OAAO,CAAC;IAAC,QAAQ,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,UAAU,EAAE,CAAA;CAAC,CAAC,CAI7D;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GACpG,OAAO,CAAC,UAAU,EAAE,CAAC,CAIvB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GACpG,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,UAAU,CAAA;IACpB,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAC7E,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,GAClG,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAC7E,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAC7E,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CASxF;AAID,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CAE7C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -8,7 +8,7 @@ import { encodeAuthTransmission, encodeTransmission, decodeTransmission, XFTP_BL
8
8
  import { encodeClientHello, encodeClientHandshake, decodeServerHandshake, compatibleVRange } from "./protocol/handshake.js";
9
9
  import { verifyIdentityProof } from "./crypto/identity.js";
10
10
  import { generateX25519KeyPair, encodePubKeyX25519, dh } from "./crypto/keys.js";
11
- import { encodeFNEW, encodeFADD, encodeFPUT, encodeFGET, encodeFACK, encodeFDEL, encodePING, decodeResponse } from "./protocol/commands.js";
11
+ import { encodeFNEW, encodeFADD, encodeFPUT, encodeFGET, encodeFDEL, encodePING, decodeResponse } from "./protocol/commands.js";
12
12
  import { decryptReceivedChunk } from "./download.js";
13
13
  import { formatXFTPServer } from "./protocol/address.js";
14
14
  import { concatBytes } from "./protocol/encoding.js";
@@ -334,11 +334,6 @@ export async function deleteXFTPChunk(agent, server, spKey, sId) {
334
334
  if (response.type !== "FROk")
335
335
  throw new Error("unexpected response: " + response.type);
336
336
  }
337
- export async function ackXFTPChunk(agent, server, rpKey, rId) {
338
- const { response } = await sendXFTPCommand(agent, server, rpKey, rId, encodeFACK());
339
- if (response.type !== "FROk")
340
- throw new Error("unexpected response: " + response.type);
341
- }
342
337
  export async function pingXFTP(agent, server) {
343
338
  const client = await getXFTPServerClient(agent, server);
344
339
  const corrId = new Uint8Array(0);