swarm-deploy 0.1.0 → 0.3.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 (87) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +780 -50
  3. package/RELEASING.md +2 -2
  4. package/SECURITY.md +2 -3
  5. package/dist/cli.d.ts +2 -0
  6. package/dist/cli.js +182 -25
  7. package/dist/cli.js.map +1 -1
  8. package/dist/client.d.ts +32 -27
  9. package/dist/client.js +103 -54
  10. package/dist/client.js.map +1 -1
  11. package/dist/errors.d.ts +6 -0
  12. package/dist/errors.js +6 -0
  13. package/dist/errors.js.map +1 -1
  14. package/dist/files.d.ts +13 -28
  15. package/dist/files.js +13 -78
  16. package/dist/files.js.map +1 -1
  17. package/dist/hooks-module.d.ts +9 -0
  18. package/dist/hooks-module.js +118 -0
  19. package/dist/hooks-module.js.map +1 -0
  20. package/dist/hooks.d.ts +69 -0
  21. package/dist/hooks.js +88 -0
  22. package/dist/hooks.js.map +1 -0
  23. package/dist/index.d.ts +8 -4
  24. package/dist/index.js +3 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/release.d.ts +26 -0
  27. package/dist/release.js +419 -0
  28. package/dist/release.js.map +1 -0
  29. package/dist/server.d.ts +97 -0
  30. package/dist/server.js +527 -53
  31. package/dist/server.js.map +1 -1
  32. package/dist/storage/commit-journal.d.ts +39 -2
  33. package/dist/storage/commit-journal.js +140 -2
  34. package/dist/storage/commit-journal.js.map +1 -1
  35. package/dist/storage/commit-store.d.ts +69 -8
  36. package/dist/storage/commit-store.js +374 -22
  37. package/dist/storage/commit-store.js.map +1 -1
  38. package/dist/storage/layout.js +7 -1
  39. package/dist/storage/layout.js.map +1 -1
  40. package/dist/storage/link-store.d.ts +88 -0
  41. package/dist/storage/link-store.js +448 -0
  42. package/dist/storage/link-store.js.map +1 -0
  43. package/dist/storage/recovery.d.ts +2 -1
  44. package/dist/storage/recovery.js +8 -1
  45. package/dist/storage/recovery.js.map +1 -1
  46. package/dist/storage/retention.d.ts +41 -21
  47. package/dist/storage/retention.js +162 -8
  48. package/dist/storage/retention.js.map +1 -1
  49. package/dist/storage/tar-session-store.d.ts +36 -5
  50. package/dist/storage/tar-session-store.js +283 -55
  51. package/dist/storage/tar-session-store.js.map +1 -1
  52. package/dist/storage/tree-fs.d.ts +44 -0
  53. package/dist/storage/tree-fs.js +580 -0
  54. package/dist/storage/tree-fs.js.map +1 -0
  55. package/dist/storage/tree-staging.d.ts +9 -0
  56. package/dist/storage/tree-staging.js +64 -0
  57. package/dist/storage/tree-staging.js.map +1 -0
  58. package/dist/storage/types.d.ts +15 -0
  59. package/dist/symlinks.d.ts +44 -0
  60. package/dist/symlinks.js +153 -0
  61. package/dist/symlinks.js.map +1 -0
  62. package/dist/tar-protocol/controls.d.ts +52 -0
  63. package/dist/tar-protocol/controls.js +160 -2
  64. package/dist/tar-protocol/controls.js.map +1 -1
  65. package/dist/tar-protocol/direct-wire.d.ts +8 -3
  66. package/dist/tar-protocol/direct-wire.js +14 -3
  67. package/dist/tar-protocol/direct-wire.js.map +1 -1
  68. package/dist/tar-protocol/manifest.d.ts +13 -1
  69. package/dist/tar-protocol/manifest.js +26 -1
  70. package/dist/tar-protocol/manifest.js.map +1 -1
  71. package/dist/tar-protocol/tree-extract.d.ts +37 -0
  72. package/dist/tar-protocol/tree-extract.js +240 -0
  73. package/dist/tar-protocol/tree-extract.js.map +1 -0
  74. package/dist/tar-protocol/tree-manifest.d.ts +45 -0
  75. package/dist/tar-protocol/tree-manifest.js +277 -0
  76. package/dist/tar-protocol/tree-manifest.js.map +1 -0
  77. package/dist/tar-protocol/tree-path.d.ts +15 -0
  78. package/dist/tar-protocol/tree-path.js +68 -0
  79. package/dist/tar-protocol/tree-path.js.map +1 -0
  80. package/dist/tar-protocol/tree.d.ts +68 -0
  81. package/dist/tar-protocol/tree.js +269 -0
  82. package/dist/tar-protocol/tree.js.map +1 -0
  83. package/dist/tar-protocol/ustar.d.ts +14 -0
  84. package/dist/tar-protocol/ustar.js +81 -1
  85. package/dist/tar-protocol/ustar.js.map +1 -1
  86. package/dist/types.d.ts +3 -0
  87. package/package.json +3 -1
package/dist/client.js CHANGED
@@ -7,7 +7,6 @@ exports.FINGERPRINT_LENGTH = exports.DEFAULT_IDLE_TIMEOUT = exports.MAX_CONNECT_
7
7
  exports.fingerprint = fingerprint;
8
8
  const b4a_1 = __importDefault(require("b4a"));
9
9
  const _events_1 = __importDefault(require("#events"));
10
- const _fs_1 = __importDefault(require("#fs"));
11
10
  const abort_js_1 = require("./abort.js");
12
11
  const direct_dht_js_1 = require("./direct-dht.js");
13
12
  const errors_js_1 = require("./errors.js");
@@ -15,6 +14,8 @@ const files_js_1 = require("./files.js");
15
14
  const identity_js_1 = require("./identity.js");
16
15
  const direct_wire_js_1 = require("./tar-protocol/direct-wire.js");
17
16
  const manifest_js_1 = require("./tar-protocol/manifest.js");
17
+ const tree_manifest_js_1 = require("./tar-protocol/tree-manifest.js");
18
+ const controls_js_1 = require("./tar-protocol/controls.js");
18
19
  const hash_js_1 = require("./tar-protocol/hash.js");
19
20
  const EventEmitter = _events_1.default.EventEmitter;
20
21
  const DEFAULT_CONNECT_TIMEOUT = 30_000;
@@ -64,11 +65,31 @@ function logger(log) {
64
65
  error: (m, d) => call('error', m, d)
65
66
  };
66
67
  }
68
+ function isTreeManifest(manifest) {
69
+ return 'kind' in manifest && manifest.kind === 'directory';
70
+ }
71
+ function manifestMetadata(manifest, reset) {
72
+ return isTreeManifest(manifest)
73
+ ? (0, tree_manifest_js_1.treeMetadataFromManifest)(manifest, reset)
74
+ : (0, manifest_js_1.metadataFromManifest)(manifest, reset);
75
+ }
76
+ function manifestPayloadBytes(manifest) {
77
+ return isTreeManifest(manifest) ? manifest.payloadBytes : manifest.fileSize;
78
+ }
79
+ function manifestDigest(manifest) {
80
+ return isTreeManifest(manifest) ? manifest.treeSha256 : manifest.fileSha256;
81
+ }
82
+ function regenerateSuffix(manifest, offset, write, options) {
83
+ return isTreeManifest(manifest)
84
+ ? (0, tree_manifest_js_1.regenerateTreeTarSuffix)(manifest, offset, write, options)
85
+ : (0, manifest_js_1.regenerateTarSuffix)(manifest, offset, write, options);
86
+ }
67
87
  class Client extends EventEmitter {
68
88
  publicKey;
69
89
  serverPublicKey;
70
90
  connectTimeout;
71
91
  idleTimeout;
92
+ includeSourceParent;
72
93
  logger;
73
94
  direct;
74
95
  abort = (0, abort_js_1.createAbortController)();
@@ -85,6 +106,11 @@ class Client extends EventEmitter {
85
106
  this.serverPublicKey = key(options.serverPublicKey, 'server public key', errors_js_1.ERRORS.INVALID_PUBLIC_KEY);
86
107
  this.connectTimeout = duration(options.connectTimeout, 'connect timeout', DEFAULT_CONNECT_TIMEOUT);
87
108
  this.idleTimeout = duration(options.idleTimeout, 'idle timeout', DEFAULT_IDLE_TIMEOUT);
109
+ if (options.includeSourceParent !== undefined &&
110
+ typeof options.includeSourceParent !== 'boolean') {
111
+ throw fail(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Invalid source parent option');
112
+ }
113
+ this.includeSourceParent = options.includeSourceParent !== false;
88
114
  this.publicKey = b4a_1.default.from(keyPair.publicKey);
89
115
  this.direct = new direct_dht_js_1.DirectDhtClient({
90
116
  keyPair,
@@ -100,7 +126,7 @@ class Client extends EventEmitter {
100
126
  }
101
127
  catch { }
102
128
  }
103
- async uploadManifest(manifest, reset = false, emitFinal = true) {
129
+ async uploadManifest(manifest, reset = false) {
104
130
  (0, abort_js_1.throwIfAborted)(this.signal);
105
131
  const socket = await this.direct.connect(this.serverPublicKey, {
106
132
  signal: this.signal,
@@ -115,13 +141,13 @@ class Client extends EventEmitter {
115
141
  const reader = new direct_wire_js_1.DirectWireReader(socket);
116
142
  let verificationStarted = false;
117
143
  try {
118
- const metadata = (0, manifest_js_1.metadataFromManifest)(manifest, reset);
144
+ const metadata = manifestMetadata(manifest, reset);
119
145
  await (0, direct_wire_js_1.writeMetadata)(socket, metadata, { signal: this.signal, timeout: this.idleTimeout });
120
146
  this.emitSafe('offer', { name: manifest.name, status: 'offered' });
121
147
  const admission = await reader.control(direct_wire_js_1.decodeDirectAdmission, this.signal, this.idleTimeout);
122
148
  if (admission.status === 'ALREADY_COMMITTED') {
123
149
  this.emitSafe('offer', { name: manifest.name, status: 'already-committed' });
124
- return this.result(manifest, 'ALREADY_COMMITTED', emitFinal);
150
+ return this.result(manifest, 'ALREADY_COMMITTED');
125
151
  }
126
152
  if (admission.status === 'REJECTED')
127
153
  throw fail(admission.code, 'Server rejected upload');
@@ -133,7 +159,7 @@ class Client extends EventEmitter {
133
159
  throw fail(final.code, 'Server failed verified upload');
134
160
  this.emitSafe('verification', { name: manifest.name, status: 'succeeded' });
135
161
  this.emitSafe('commit', { name: manifest.name, status: 'succeeded' });
136
- return this.result(manifest, 'COMMITTED', emitFinal);
162
+ return this.result(manifest, 'COMMITTED');
137
163
  }
138
164
  const offset = admission.offset;
139
165
  const expected = admission.status === 'RESUME' ? b4a_1.default.from(admission.prefixSha256, 'hex') : null;
@@ -143,7 +169,7 @@ class Client extends EventEmitter {
143
169
  offset
144
170
  });
145
171
  let progress = offset;
146
- const regenerated = await (0, manifest_js_1.regenerateTarSuffix)(manifest, offset, async (chunk) => {
172
+ const regenerated = await regenerateSuffix(manifest, offset, async (chunk) => {
147
173
  await (0, direct_wire_js_1.writeTar)(socket, chunk, { signal: this.signal, timeout: this.idleTimeout });
148
174
  progress += chunk.byteLength;
149
175
  this.emitSafe('progress', {
@@ -158,7 +184,7 @@ class Client extends EventEmitter {
158
184
  this.emitSafe('offer', { name: manifest.name, status: 'reset', offset: 0 });
159
185
  reader.closeReader();
160
186
  socket.destroy();
161
- return this.uploadManifest(manifest, true, emitFinal);
187
+ return this.uploadManifest(manifest, true);
162
188
  }
163
189
  if (regenerated.bytesSent !== manifest.tarSize - offset) {
164
190
  throw fail(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Incomplete deterministic TAR transfer');
@@ -180,7 +206,7 @@ class Client extends EventEmitter {
180
206
  }
181
207
  this.emitSafe('verification', { name: manifest.name, status: 'succeeded' });
182
208
  this.emitSafe('commit', { name: manifest.name, status: 'succeeded' });
183
- return this.result(manifest, 'COMMITTED', emitFinal);
209
+ return this.result(manifest, 'COMMITTED');
184
210
  }
185
211
  catch (error) {
186
212
  const reason = codeOf(error);
@@ -198,63 +224,74 @@ class Client extends EventEmitter {
198
224
  catch { }
199
225
  }
200
226
  }
201
- result(manifest, status, final) {
227
+ result(manifest, status) {
228
+ const kind = isTreeManifest(manifest) ? 'directory' : 'file';
202
229
  const result = {
203
230
  status,
231
+ kind,
204
232
  name: manifest.name,
205
- size: manifest.fileSize,
206
- digest: b4a_1.default.from(manifest.fileSha256),
207
- transferId: b4a_1.default.from(manifest.transferId)
233
+ size: manifestPayloadBytes(manifest),
234
+ digest: b4a_1.default.from(manifestDigest(manifest)),
235
+ transferId: b4a_1.default.from(manifest.transferId),
236
+ ...(isTreeManifest(manifest) ? { entryCount: manifest.entryCount } : {})
208
237
  };
209
238
  this.logger.info('Direct upload completed', { name: result.name, status: result.status });
210
- this.emitSafe('result', { name: result.name, status, final });
239
+ this.emitSafe('result', { name: result.name, kind, status, final: true });
211
240
  return result;
212
241
  }
213
- async perform(inputPath) {
214
- if (typeof inputPath !== 'string' || !inputPath) {
215
- throw fail(errors_js_1.ERRORS.INVALID_FILENAME, 'Invalid upload path');
216
- }
217
- const root = await _fs_1.default.promises.lstat(inputPath);
218
- const selection = await (0, files_js_1.selectUploadPaths)(inputPath, { signal: this.signal });
219
- if (!root.isDirectory()) {
220
- return this.uploadManifest(await (0, manifest_js_1.buildTarManifest)(selection.paths[0], this.publicKey, { signal: this.signal }));
242
+ async performLink(target, name) {
243
+ const request = { v: 1, kind: 'link', target, name };
244
+ // Validate before opening a connection so malformed names never leave the client.
245
+ (0, controls_js_1.encodeLinkRequestRecord)(request);
246
+ (0, abort_js_1.throwIfAborted)(this.signal);
247
+ const socket = await this.direct.connect(this.serverPublicKey, {
248
+ signal: this.signal,
249
+ timeout: this.connectTimeout
250
+ });
251
+ const remote = socket.remotePublicKey;
252
+ this.emitSafe('connection', { fingerprint: remote ? fingerprint(remote) : 'invalid' });
253
+ this.emitSafe('connection-open', { fingerprint: remote ? fingerprint(remote) : 'invalid' });
254
+ socket.once('close', () => this.emitSafe('connection-close', {
255
+ fingerprint: this.serverPublicKey ? fingerprint(this.serverPublicKey) : 'invalid'
256
+ }));
257
+ const reader = new direct_wire_js_1.DirectWireReader(socket);
258
+ try {
259
+ await (0, direct_wire_js_1.writeLinkRequest)(socket, request, { signal: this.signal, timeout: this.idleTimeout });
260
+ this.emitSafe('link', { target, name, status: 'requested', final: false });
261
+ (0, direct_wire_js_1.endWrite)(socket);
262
+ const response = await reader.control(direct_wire_js_1.decodeDirectLinkResult, this.signal, this.idleTimeout);
263
+ if (response.status === 'FAILED')
264
+ throw fail(response.code, 'Server failed link request');
265
+ const result = { target, name, status: response.status };
266
+ this.logger.info('Direct link completed', {
267
+ target: result.target,
268
+ name: result.name,
269
+ status: result.status
270
+ });
271
+ this.emitSafe('link', { ...result, final: true });
272
+ return result;
221
273
  }
222
- const results = [];
223
- for (const skipped of selection.skipped) {
224
- this.emitSafe('skipped', { name: skipped.name, reason: skipped.reason });
274
+ catch (error) {
275
+ this.emitSafe('link', { target, name, status: codeOf(error), final: true });
276
+ throw error;
225
277
  }
226
- for (const entry of selection.entries) {
227
- if (entry.kind === 'skipped')
228
- continue;
229
- if (entry.kind === 'failed') {
230
- results.push({ name: entry.name, status: errors_js_1.ERRORS.PROTOCOL_INVALID, reason: entry.reason });
231
- continue;
232
- }
278
+ finally {
279
+ reader.closeReader();
233
280
  try {
234
- results.push(await this.uploadManifest(await (0, manifest_js_1.buildTarManifest)(entry.path, this.publicKey, { signal: this.signal }), false, false));
235
- }
236
- catch (error) {
237
- const status = codeOf(error);
238
- results.push({ name: entry.name, status });
239
- this.emitSafe('result', { name: entry.name, status, final: false });
281
+ socket.destroy();
240
282
  }
283
+ catch { }
241
284
  }
242
- const failed = results.some((result) => result.status !== 'COMMITTED' && result.status !== 'ALREADY_COMMITTED');
243
- const result = {
244
- status: failed ? 'FAILED' : 'COMMITTED',
245
- results,
246
- skipped: selection.skipped
247
- };
248
- const committed = results.filter((entry) => entry.status === 'COMMITTED' || entry.status === 'ALREADY_COMMITTED').length;
249
- this.emitSafe('result', {
250
- status: result.status,
251
- final: true,
252
- files: results.length,
253
- committed,
254
- failed: results.length - committed,
255
- skipped: selection.skipped.length
256
- });
257
- return result;
285
+ }
286
+ async perform(inputPath) {
287
+ if (typeof inputPath !== 'string' || !inputPath) {
288
+ throw fail(errors_js_1.ERRORS.INVALID_FILENAME, 'Invalid upload path');
289
+ }
290
+ const target = await (0, files_js_1.selectUploadTarget)(inputPath, { signal: this.signal });
291
+ const options = { signal: this.signal, includeSourceParent: this.includeSourceParent };
292
+ return this.uploadManifest(target.kind === 'directory'
293
+ ? await (0, tree_manifest_js_1.buildTreeManifest)(target.path, this.publicKey, options)
294
+ : await (0, manifest_js_1.buildTarManifest)(target.path, this.publicKey, options));
258
295
  }
259
296
  upload(inputPath) {
260
297
  if (this.closed)
@@ -264,7 +301,19 @@ class Client extends EventEmitter {
264
301
  .catch((error) => {
265
302
  const reason = codeOf(error);
266
303
  this.emitSafe('failure', { fingerprint: fingerprint(this.serverPublicKey), reason });
267
- this.emitSafe('result', { status: reason, final: true });
304
+ throw error;
305
+ });
306
+ this.queue = operation.then(() => undefined, () => undefined);
307
+ return operation;
308
+ }
309
+ link(target, name) {
310
+ if (this.closed)
311
+ return Promise.reject(fail(errors_js_1.ERRORS.ABORTED, 'Client is closed'));
312
+ const operation = this.queue
313
+ .then(() => this.performLink(target, name))
314
+ .catch((error) => {
315
+ const reason = codeOf(error);
316
+ this.emitSafe('failure', { fingerprint: fingerprint(this.serverPublicKey), reason });
268
317
  throw error;
269
318
  });
270
319
  this.queue = operation.then(() => undefined, () => undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -16,6 +16,12 @@ export declare const ERRORS: {
16
16
  readonly UPLOAD_IDLE_TIMEOUT: 'UPLOAD_IDLE_TIMEOUT';
17
17
  readonly ABORTED: 'ABORTED';
18
18
  readonly COMMIT_FAILED: 'COMMIT_FAILED';
19
+ readonly LINK_CONFLICT: 'LINK_CONFLICT';
20
+ readonly LINK_FAILED: 'LINK_FAILED';
21
+ readonly LINK_NOT_ALLOWED: 'LINK_NOT_ALLOWED';
22
+ readonly LINK_TARGET_NOT_FOUND: 'LINK_TARGET_NOT_FOUND';
23
+ readonly UNSUPPORTED_STORAGE: 'UNSUPPORTED_STORAGE';
24
+ readonly HOOK_FAILED: 'HOOK_FAILED';
19
25
  readonly CLEANUP_FAILED: 'CLEANUP_FAILED';
20
26
  };
21
27
  export type ErrorCode = (typeof ERRORS)[keyof typeof ERRORS];
package/dist/errors.js CHANGED
@@ -19,6 +19,12 @@ exports.ERRORS = {
19
19
  UPLOAD_IDLE_TIMEOUT: 'UPLOAD_IDLE_TIMEOUT',
20
20
  ABORTED: 'ABORTED',
21
21
  COMMIT_FAILED: 'COMMIT_FAILED',
22
+ LINK_CONFLICT: 'LINK_CONFLICT',
23
+ LINK_FAILED: 'LINK_FAILED',
24
+ LINK_NOT_ALLOWED: 'LINK_NOT_ALLOWED',
25
+ LINK_TARGET_NOT_FOUND: 'LINK_TARGET_NOT_FOUND',
26
+ UNSUPPORTED_STORAGE: 'UNSUPPORTED_STORAGE',
27
+ HOOK_FAILED: 'HOOK_FAILED',
22
28
  CLEANUP_FAILED: 'CLEANUP_FAILED'
23
29
  };
24
30
  class SwarmDeployError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;CACxB,CAAA;AAIV,sBAA8B,SAAQ,KAAK;IAOzC,YAAY,IAAwB,EAAE,OAAe,EAAE,KAAK,GAAmB,IAAI;QACjF,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,qBAAqB,EAAE,uBAAuB;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;CACxB,CAAA;AAIV,sBAA8B,SAAQ,KAAK;IAOzC,YAAY,IAAwB,EAAE,OAAe,EAAE,KAAK,GAAmB,IAAI;QACjF,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF"}
package/dist/files.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import type { ArtifactKind } from './types.js';
1
2
  /** Reserved top-level namespace for server-managed historical artifacts. */
2
3
  export declare const HISTORY_NAME_PREFIX = "history-";
3
- export interface SelectUploadPathsOptions {
4
+ export interface SelectUploadTargetOptions {
4
5
  signal?: {
5
6
  readonly aborted: boolean;
6
7
  addEventListener(event: 'abort', callback: () => void, options?: {
@@ -9,6 +10,12 @@ export interface SelectUploadPathsOptions {
9
10
  removeEventListener(event: 'abort', callback: () => void): void;
10
11
  } | null;
11
12
  }
13
+ export interface UploadTarget {
14
+ kind: ArtifactKind;
15
+ /** The managed artifact basename. */
16
+ name: string;
17
+ path: string;
18
+ }
12
19
  export declare function validateBasename(name: string): string;
13
20
  export declare function isReservedHistoryName(name: unknown): boolean;
14
21
  /** The unique top-level path preserving the inode a replacement superseded. */
@@ -18,30 +25,8 @@ export declare function historyName(oldTransferId: string): string;
18
25
  * the reserved history namespace and duplicate entries are always rejected.
19
26
  */
20
27
  export declare function validateReplaceNames(values?: Iterable<string>): Set<string>;
21
- export type SkippedUploadReason = 'symlink' | 'directory' | 'not-regular-file' | 'invalid-filename' | 'reserved-history';
22
- export interface SelectedUploadPath {
23
- kind: 'selected';
24
- name: string;
25
- path: string;
26
- }
27
- export interface SkippedUploadPath {
28
- kind: 'skipped';
29
- name: string;
30
- path: string;
31
- reason: SkippedUploadReason;
32
- }
33
- export interface FailedUploadPath {
34
- kind: 'failed';
35
- name: string;
36
- path: string;
37
- reason: 'unreadable';
38
- code: string | null;
39
- }
40
- export type UploadPathEntry = SelectedUploadPath | SkippedUploadPath | FailedUploadPath;
41
- export interface UploadPathSelection {
42
- paths: string[];
43
- skipped: Array<Omit<SkippedUploadPath, 'kind'>>;
44
- failed: Array<Omit<FailedUploadPath, 'kind'>>;
45
- entries: UploadPathEntry[];
46
- }
47
- export declare function selectUploadPaths(inputPath: string, { signal }?: SelectUploadPathsOptions): Promise<UploadPathSelection>;
28
+ /**
29
+ * Classifies one upload input. A directory becomes exactly one recursive
30
+ * directory artifact; children are never uploaded independently.
31
+ */
32
+ export declare function selectUploadTarget(inputPath: string, { signal }?: SelectUploadTargetOptions): Promise<UploadTarget>;
package/dist/files.js CHANGED
@@ -8,9 +8,8 @@ exports.validateBasename = validateBasename;
8
8
  exports.isReservedHistoryName = isReservedHistoryName;
9
9
  exports.historyName = historyName;
10
10
  exports.validateReplaceNames = validateReplaceNames;
11
- exports.selectUploadPaths = selectUploadPaths;
11
+ exports.selectUploadTarget = selectUploadTarget;
12
12
  const b4a_1 = __importDefault(require("b4a"));
13
- const error_code_js_1 = require("./error-code.js");
14
13
  const _fs_1 = __importDefault(require("#fs"));
15
14
  const _path_1 = __importDefault(require("#path"));
16
15
  const abort_js_1 = require("./abort.js");
@@ -63,88 +62,24 @@ function validateReplaceNames(values) {
63
62
  }
64
63
  return names;
65
64
  }
66
- function classifyEntry(entryPath, stat) {
67
- if (stat.isSymbolicLink()) {
68
- return { kind: 'skipped', reason: 'symlink' };
69
- }
70
- if (stat.isDirectory()) {
71
- return { kind: 'skipped', reason: 'directory' };
72
- }
73
- if (!stat.isFile()) {
74
- return { kind: 'skipped', reason: 'not-regular-file' };
75
- }
76
- const name = _path_1.default.basename(entryPath);
77
- try {
78
- validateBasename(name);
79
- }
80
- catch {
81
- return { kind: 'skipped', reason: 'invalid-filename' };
82
- }
83
- if (isReservedHistoryName(name)) {
84
- return { kind: 'skipped', reason: 'reserved-history' };
85
- }
86
- return { kind: 'selected', name };
87
- }
88
- async function selectUploadPaths(inputPath, { signal = null } = {}) {
65
+ /**
66
+ * Classifies one upload input. A directory becomes exactly one recursive
67
+ * directory artifact; children are never uploaded independently.
68
+ */
69
+ async function selectUploadTarget(inputPath, { signal = null } = {}) {
89
70
  (0, abort_js_1.throwIfAborted)(signal);
90
- const rootStat = await _fs_1.default.promises.lstat(inputPath);
71
+ const stat = await _fs_1.default.promises.lstat(inputPath);
91
72
  (0, abort_js_1.throwIfAborted)(signal);
92
- if (rootStat.isSymbolicLink()) {
73
+ if (stat.isSymbolicLink()) {
93
74
  throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.INVALID_FILENAME, 'Symlinks are not supported');
94
75
  }
95
- if (rootStat.isFile()) {
96
- const name = validateBasename(_path_1.default.basename(inputPath));
97
- if (isReservedHistoryName(name)) {
98
- throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.INVALID_FILENAME, 'Reserved artifact name');
99
- }
100
- return {
101
- paths: [inputPath],
102
- skipped: [],
103
- failed: [],
104
- entries: [{ kind: 'selected', name, path: inputPath }]
105
- };
106
- }
107
- if (!rootStat.isDirectory()) {
76
+ if (!stat.isFile() && !stat.isDirectory()) {
108
77
  throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.INVALID_FILENAME, 'Path must be a regular file or directory');
109
78
  }
110
- const names = await _fs_1.default.promises.readdir(inputPath);
111
- names.sort();
112
- const paths = [];
113
- const skipped = [];
114
- const failed = [];
115
- const entries = [];
116
- for (const name of names) {
117
- (0, abort_js_1.throwIfAborted)(signal);
118
- const entryPath = _path_1.default.join(inputPath, name);
119
- let entryStat;
120
- try {
121
- entryStat = await _fs_1.default.promises.lstat(entryPath);
122
- }
123
- catch (err) {
124
- (0, abort_js_1.throwIfAborted)(signal);
125
- const entry = {
126
- name,
127
- path: entryPath,
128
- reason: 'unreadable',
129
- code: (0, error_code_js_1.errorCode)(err)
130
- };
131
- failed.push(entry);
132
- entries.push({ kind: 'failed', ...entry });
133
- continue;
134
- }
135
- const classified = classifyEntry(entryPath, entryStat);
136
- if (classified.kind === 'selected') {
137
- paths.push(entryPath);
138
- entries.push({ kind: 'selected', name, path: entryPath });
139
- continue;
140
- }
141
- skipped.push({
142
- name,
143
- path: entryPath,
144
- reason: classified.reason
145
- });
146
- entries.push({ kind: 'skipped', name, path: entryPath, reason: classified.reason });
79
+ const name = validateBasename(_path_1.default.basename(_path_1.default.resolve(inputPath)));
80
+ if (isReservedHistoryName(name)) {
81
+ throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.INVALID_FILENAME, 'Reserved artifact name');
147
82
  }
148
- return { paths, skipped, failed, entries };
83
+ return { kind: stat.isDirectory() ? 'directory' : 'file', name, path: inputPath };
149
84
  }
150
85
  //# sourceMappingURL=files.js.map
package/dist/files.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type ServerHooks } from './hooks.js';
2
+ /**
3
+ * Loads a JavaScript hooks module (`.js`, `.mjs` or `.cjs`) and returns the
4
+ * validated, frozen hook snapshot. Only `beforeCommit`, `afterCommit` and
5
+ * `onFailure` are picked, by own property name; other exports are ignored.
6
+ * Defined named exports take precedence over the default export's callbacks. Every failure is a fixed-message configuration
7
+ * error that never includes module content.
8
+ */
9
+ export declare function loadHooksModule(modulePath: string, cwd: string): Promise<ServerHooks>;