swarm-deploy 0.1.0 → 0.2.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 +44 -0
  2. package/README.md +680 -49
  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 +79 -22
  7. package/dist/cli.js.map +1 -1
  8. package/dist/client.d.ts +19 -29
  9. package/dist/client.js +46 -55
  10. package/dist/client.js.map +1 -1
  11. package/dist/errors.d.ts +4 -0
  12. package/dist/errors.js +4 -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 +7 -3
  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 +86 -0
  30. package/dist/server.js +405 -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 +70 -0
  41. package/dist/storage/link-store.js +363 -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 +36 -0
  60. package/dist/symlinks.js +128 -0
  61. package/dist/symlinks.js.map +1 -0
  62. package/dist/tar-protocol/controls.d.ts +25 -0
  63. package/dist/tar-protocol/controls.js +108 -2
  64. package/dist/tar-protocol/controls.js.map +1 -1
  65. package/dist/tar-protocol/direct-wire.d.ts +3 -3
  66. package/dist/tar-protocol/direct-wire.js +2 -2
  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,7 @@ 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
18
  const hash_js_1 = require("./tar-protocol/hash.js");
19
19
  const EventEmitter = _events_1.default.EventEmitter;
20
20
  const DEFAULT_CONNECT_TIMEOUT = 30_000;
@@ -64,11 +64,31 @@ function logger(log) {
64
64
  error: (m, d) => call('error', m, d)
65
65
  };
66
66
  }
67
+ function isTreeManifest(manifest) {
68
+ return 'kind' in manifest && manifest.kind === 'directory';
69
+ }
70
+ function manifestMetadata(manifest, reset) {
71
+ return isTreeManifest(manifest)
72
+ ? (0, tree_manifest_js_1.treeMetadataFromManifest)(manifest, reset)
73
+ : (0, manifest_js_1.metadataFromManifest)(manifest, reset);
74
+ }
75
+ function manifestPayloadBytes(manifest) {
76
+ return isTreeManifest(manifest) ? manifest.payloadBytes : manifest.fileSize;
77
+ }
78
+ function manifestDigest(manifest) {
79
+ return isTreeManifest(manifest) ? manifest.treeSha256 : manifest.fileSha256;
80
+ }
81
+ function regenerateSuffix(manifest, offset, write, options) {
82
+ return isTreeManifest(manifest)
83
+ ? (0, tree_manifest_js_1.regenerateTreeTarSuffix)(manifest, offset, write, options)
84
+ : (0, manifest_js_1.regenerateTarSuffix)(manifest, offset, write, options);
85
+ }
67
86
  class Client extends EventEmitter {
68
87
  publicKey;
69
88
  serverPublicKey;
70
89
  connectTimeout;
71
90
  idleTimeout;
91
+ includeSourceParent;
72
92
  logger;
73
93
  direct;
74
94
  abort = (0, abort_js_1.createAbortController)();
@@ -85,6 +105,11 @@ class Client extends EventEmitter {
85
105
  this.serverPublicKey = key(options.serverPublicKey, 'server public key', errors_js_1.ERRORS.INVALID_PUBLIC_KEY);
86
106
  this.connectTimeout = duration(options.connectTimeout, 'connect timeout', DEFAULT_CONNECT_TIMEOUT);
87
107
  this.idleTimeout = duration(options.idleTimeout, 'idle timeout', DEFAULT_IDLE_TIMEOUT);
108
+ if (options.includeSourceParent !== undefined &&
109
+ typeof options.includeSourceParent !== 'boolean') {
110
+ throw fail(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Invalid source parent option');
111
+ }
112
+ this.includeSourceParent = options.includeSourceParent !== false;
88
113
  this.publicKey = b4a_1.default.from(keyPair.publicKey);
89
114
  this.direct = new direct_dht_js_1.DirectDhtClient({
90
115
  keyPair,
@@ -100,7 +125,7 @@ class Client extends EventEmitter {
100
125
  }
101
126
  catch { }
102
127
  }
103
- async uploadManifest(manifest, reset = false, emitFinal = true) {
128
+ async uploadManifest(manifest, reset = false) {
104
129
  (0, abort_js_1.throwIfAborted)(this.signal);
105
130
  const socket = await this.direct.connect(this.serverPublicKey, {
106
131
  signal: this.signal,
@@ -115,13 +140,13 @@ class Client extends EventEmitter {
115
140
  const reader = new direct_wire_js_1.DirectWireReader(socket);
116
141
  let verificationStarted = false;
117
142
  try {
118
- const metadata = (0, manifest_js_1.metadataFromManifest)(manifest, reset);
143
+ const metadata = manifestMetadata(manifest, reset);
119
144
  await (0, direct_wire_js_1.writeMetadata)(socket, metadata, { signal: this.signal, timeout: this.idleTimeout });
120
145
  this.emitSafe('offer', { name: manifest.name, status: 'offered' });
121
146
  const admission = await reader.control(direct_wire_js_1.decodeDirectAdmission, this.signal, this.idleTimeout);
122
147
  if (admission.status === 'ALREADY_COMMITTED') {
123
148
  this.emitSafe('offer', { name: manifest.name, status: 'already-committed' });
124
- return this.result(manifest, 'ALREADY_COMMITTED', emitFinal);
149
+ return this.result(manifest, 'ALREADY_COMMITTED');
125
150
  }
126
151
  if (admission.status === 'REJECTED')
127
152
  throw fail(admission.code, 'Server rejected upload');
@@ -133,7 +158,7 @@ class Client extends EventEmitter {
133
158
  throw fail(final.code, 'Server failed verified upload');
134
159
  this.emitSafe('verification', { name: manifest.name, status: 'succeeded' });
135
160
  this.emitSafe('commit', { name: manifest.name, status: 'succeeded' });
136
- return this.result(manifest, 'COMMITTED', emitFinal);
161
+ return this.result(manifest, 'COMMITTED');
137
162
  }
138
163
  const offset = admission.offset;
139
164
  const expected = admission.status === 'RESUME' ? b4a_1.default.from(admission.prefixSha256, 'hex') : null;
@@ -143,7 +168,7 @@ class Client extends EventEmitter {
143
168
  offset
144
169
  });
145
170
  let progress = offset;
146
- const regenerated = await (0, manifest_js_1.regenerateTarSuffix)(manifest, offset, async (chunk) => {
171
+ const regenerated = await regenerateSuffix(manifest, offset, async (chunk) => {
147
172
  await (0, direct_wire_js_1.writeTar)(socket, chunk, { signal: this.signal, timeout: this.idleTimeout });
148
173
  progress += chunk.byteLength;
149
174
  this.emitSafe('progress', {
@@ -158,7 +183,7 @@ class Client extends EventEmitter {
158
183
  this.emitSafe('offer', { name: manifest.name, status: 'reset', offset: 0 });
159
184
  reader.closeReader();
160
185
  socket.destroy();
161
- return this.uploadManifest(manifest, true, emitFinal);
186
+ return this.uploadManifest(manifest, true);
162
187
  }
163
188
  if (regenerated.bytesSent !== manifest.tarSize - offset) {
164
189
  throw fail(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Incomplete deterministic TAR transfer');
@@ -180,7 +205,7 @@ class Client extends EventEmitter {
180
205
  }
181
206
  this.emitSafe('verification', { name: manifest.name, status: 'succeeded' });
182
207
  this.emitSafe('commit', { name: manifest.name, status: 'succeeded' });
183
- return this.result(manifest, 'COMMITTED', emitFinal);
208
+ return this.result(manifest, 'COMMITTED');
184
209
  }
185
210
  catch (error) {
186
211
  const reason = codeOf(error);
@@ -198,63 +223,30 @@ class Client extends EventEmitter {
198
223
  catch { }
199
224
  }
200
225
  }
201
- result(manifest, status, final) {
226
+ result(manifest, status) {
227
+ const kind = isTreeManifest(manifest) ? 'directory' : 'file';
202
228
  const result = {
203
229
  status,
230
+ kind,
204
231
  name: manifest.name,
205
- size: manifest.fileSize,
206
- digest: b4a_1.default.from(manifest.fileSha256),
207
- transferId: b4a_1.default.from(manifest.transferId)
232
+ size: manifestPayloadBytes(manifest),
233
+ digest: b4a_1.default.from(manifestDigest(manifest)),
234
+ transferId: b4a_1.default.from(manifest.transferId),
235
+ ...(isTreeManifest(manifest) ? { entryCount: manifest.entryCount } : {})
208
236
  };
209
237
  this.logger.info('Direct upload completed', { name: result.name, status: result.status });
210
- this.emitSafe('result', { name: result.name, status, final });
238
+ this.emitSafe('result', { name: result.name, kind, status, final: true });
211
239
  return result;
212
240
  }
213
241
  async perform(inputPath) {
214
242
  if (typeof inputPath !== 'string' || !inputPath) {
215
243
  throw fail(errors_js_1.ERRORS.INVALID_FILENAME, 'Invalid upload path');
216
244
  }
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 }));
221
- }
222
- const results = [];
223
- for (const skipped of selection.skipped) {
224
- this.emitSafe('skipped', { name: skipped.name, reason: skipped.reason });
225
- }
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
- }
233
- 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 });
240
- }
241
- }
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;
245
+ const target = await (0, files_js_1.selectUploadTarget)(inputPath, { signal: this.signal });
246
+ const options = { signal: this.signal, includeSourceParent: this.includeSourceParent };
247
+ return this.uploadManifest(target.kind === 'directory'
248
+ ? await (0, tree_manifest_js_1.buildTreeManifest)(target.path, this.publicKey, options)
249
+ : await (0, manifest_js_1.buildTarManifest)(target.path, this.publicKey, options));
258
250
  }
259
251
  upload(inputPath) {
260
252
  if (this.closed)
@@ -264,7 +256,6 @@ class Client extends EventEmitter {
264
256
  .catch((error) => {
265
257
  const reason = codeOf(error);
266
258
  this.emitSafe('failure', { fingerprint: fingerprint(this.serverPublicKey), reason });
267
- this.emitSafe('result', { status: reason, final: true });
268
259
  throw error;
269
260
  });
270
261
  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,10 @@ 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 UNSUPPORTED_STORAGE: 'UNSUPPORTED_STORAGE';
22
+ readonly HOOK_FAILED: 'HOOK_FAILED';
19
23
  readonly CLEANUP_FAILED: 'CLEANUP_FAILED';
20
24
  };
21
25
  export type ErrorCode = (typeof ERRORS)[keyof typeof ERRORS];
package/dist/errors.js CHANGED
@@ -19,6 +19,10 @@ 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
+ UNSUPPORTED_STORAGE: 'UNSUPPORTED_STORAGE',
25
+ HOOK_FAILED: 'HOOK_FAILED',
22
26
  CLEANUP_FAILED: 'CLEANUP_FAILED'
23
27
  };
24
28
  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,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>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadHooksModule = loadHooksModule;
7
+ const _path_1 = __importDefault(require("#path"));
8
+ const errors_js_1 = require("./errors.js");
9
+ const hooks_js_1 = require("./hooks.js");
10
+ const HOOK_NAMES = ['beforeCommit', 'afterCommit', 'onFailure'];
11
+ const HOOK_EXTENSIONS = ['.js', '.mjs', '.cjs'];
12
+ function rejected(modulePath, reason) {
13
+ // Only the basename and a fixed reason: module text, stack traces, causes and
14
+ // directory names can carry secrets and must never reach the operator log.
15
+ return new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, `Unable to load hooks module ${_path_1.default.basename(modulePath)}: ${reason}`);
16
+ }
17
+ function fileUrl(file) {
18
+ if (/^[A-Za-z]:[\\/]/.test(file)) {
19
+ return `file:///${encodeURI(file.replace(/\\/g, '/')).replace(/[?#]/g, encodeURIComponent)}`;
20
+ }
21
+ return `file://${encodeURI(file).replace(/[?#]/g, encodeURIComponent)}`;
22
+ }
23
+ function isRecord(value) {
24
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
25
+ }
26
+ function hasOwn(value, name) {
27
+ return Object.prototype.hasOwnProperty.call(value, name);
28
+ }
29
+ /** Reads an error's string `code` without ever letting a hostile getter or proxy throw. */
30
+ function errorCode(error) {
31
+ try {
32
+ if ((typeof error !== 'object' && typeof error !== 'function') || error === null) {
33
+ return undefined;
34
+ }
35
+ const code = error.code;
36
+ return typeof code === 'string' ? code : undefined;
37
+ }
38
+ catch {
39
+ return undefined;
40
+ }
41
+ }
42
+ /**
43
+ * The default export's hook object, or `undefined` when the default is absent or not
44
+ * a plain object (function, primitive, null, array). Unwraps exactly one explicit
45
+ * `__esModule` interop level (TypeScript-compiled CommonJS).
46
+ */
47
+ function defaultHooks(namespace) {
48
+ if (!hasOwn(namespace, 'default'))
49
+ return undefined;
50
+ const fallback = namespace.default;
51
+ if (fallback === undefined)
52
+ return undefined;
53
+ if (!isRecord(fallback))
54
+ return undefined;
55
+ if (hasOwn(fallback, '__esModule') &&
56
+ fallback.__esModule === true &&
57
+ hasOwn(fallback, 'default')) {
58
+ const inner = fallback.default;
59
+ return isRecord(inner) ? inner : undefined;
60
+ }
61
+ return fallback;
62
+ }
63
+ /**
64
+ * Loads a JavaScript hooks module (`.js`, `.mjs` or `.cjs`) and returns the
65
+ * validated, frozen hook snapshot. Only `beforeCommit`, `afterCommit` and
66
+ * `onFailure` are picked, by own property name; other exports are ignored.
67
+ * Defined named exports take precedence over the default export's callbacks. Every failure is a fixed-message configuration
68
+ * error that never includes module content.
69
+ */
70
+ async function loadHooksModule(modulePath, cwd) {
71
+ if (typeof modulePath !== 'string' || modulePath.length === 0) {
72
+ throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Invalid hooks module path');
73
+ }
74
+ if (typeof cwd !== 'string' || cwd.length === 0) {
75
+ throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Invalid working directory');
76
+ }
77
+ const resolved = _path_1.default.resolve(cwd, modulePath);
78
+ // Checked before the import so an unsupported extension gives a precise
79
+ // startup error instead of whatever the runtime's loader happens to say.
80
+ if (!HOOK_EXTENSIONS.includes(_path_1.default.extname(resolved))) {
81
+ throw rejected(modulePath, 'unsupported module extension');
82
+ }
83
+ let namespace;
84
+ try {
85
+ namespace = (await import(fileUrl(resolved)));
86
+ }
87
+ catch (error) {
88
+ const code = errorCode(error);
89
+ if (code === 'ERR_MODULE_NOT_FOUND' || code === 'MODULE_NOT_FOUND') {
90
+ throw rejected(modulePath, 'module not found');
91
+ }
92
+ throw rejected(modulePath, 'module failed to load');
93
+ }
94
+ try {
95
+ const merged = Object.create(null);
96
+ const fallback = defaultHooks(namespace);
97
+ for (const name of HOOK_NAMES) {
98
+ if (fallback !== undefined && hasOwn(fallback, name)) {
99
+ const value = fallback[name];
100
+ if (value !== undefined)
101
+ merged[name] = value;
102
+ }
103
+ if (hasOwn(namespace, name)) {
104
+ const value = namespace[name];
105
+ if (value !== undefined)
106
+ merged[name] = value;
107
+ }
108
+ }
109
+ const snapshot = (0, hooks_js_1.snapshotHooks)(merged);
110
+ if (Reflect.ownKeys(snapshot).length === 0)
111
+ throw new Error('empty');
112
+ return snapshot;
113
+ }
114
+ catch {
115
+ throw rejected(modulePath, 'invalid hooks exports');
116
+ }
117
+ }
118
+ //# sourceMappingURL=hooks-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks-module.js","sourceRoot":"","sources":["../src/hooks-module.ts"],"names":[],"mappings":"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"}