swarm-deploy 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,33 @@
2
2
 
3
3
  All notable changes to this package are documented here.
4
4
 
5
+ ## 0.3.1
6
+
7
+ - Normalize verified published artifact permissions before they become visible:
8
+ directory roots and members are `0755`, and regular files (including
9
+ single-file artifacts) are `0644`, independent of restrictive staging modes
10
+ or the server process umask. Storage adapters without descriptor mode support
11
+ now fail closed before publication.
12
+ - **Operator note.** Artifacts published by 0.3.0 are not repaired
13
+ retroactively; apply a one-time manual `chmod` or re-upload them after
14
+ upgrading.
15
+
16
+ ## 0.3.0
17
+
18
+ - Add authenticated client-managed symlinks: one-argument
19
+ `--symlink <selector>` rules authorize current managed file or directory
20
+ targets, `Client.link(target, name)` and `swarm-deploy link` create or
21
+ idempotently repoint durable manual links, and `LINKED`/`UNCHANGED` results,
22
+ typed link events, stable policy/target errors, retention pinning, and v2
23
+ mode-aware ledger records preserve fail-closed managed ownership.
24
+ - **Rollback warning.** After an upgraded server creates, repairs, or repoints
25
+ any managed link, its v2 ledger record is unreadable by v0.2.0. Rollback
26
+ requires restoring the complete pre-upgrade storage backup or staying on the
27
+ upgraded server. `swarm-deploy link` also requires an upgraded server.
28
+ - **Type change.** `SymlinkRule` is now a closed union of automatic
29
+ `{ selector, name }` and manual `{ selector }` rule shapes, rather than an
30
+ extendable interface.
31
+
5
32
  ## 0.2.0
6
33
 
7
34
  - **Behavior change.** A directory upload now commits exactly one recursive managed directory artifact instead of a batch of immediate-child file uploads. `BatchUploadResult`, `BatchUploadFailure`, `SkippedUploadEntry`, `SkippedUploadReason`, and the client `skipped` event are removed, `ClientUploadResult` is now `UploadResult`, and `UploadResult` gains `kind` and, for a directory, `entryCount`. Direct file upload stays byte-compatible. Automation that relied on per-child results must now treat the directory as one artifact.
package/README.md CHANGED
@@ -159,7 +159,7 @@ swarm-deploy server \
159
159
  [--artifact-pattern <template>]... \
160
160
  [--max-count <count>] \
161
161
  [--max-versions <count> --version-granularity <major|minor>] \
162
- [--symlink <selector> <link-name>]... \
162
+ [--symlink <selector> [<link-name>]]... \
163
163
  [--hooks <module>]
164
164
  ```
165
165
 
@@ -197,11 +197,13 @@ Optional options:
197
197
  - `--version-granularity <major|minor>`: how versions are grouped for
198
198
  `--max-versions`. It is rejected without `--max-versions`, and there is no
199
199
  default.
200
- - `--symlink <selector> <link-name>`: declarative managed symlink rule.
201
- Repeat for multiple links. A selector that begins and ends with `/` is an
202
- unflagged regular expression matched against managed artifact basenames;
203
- anything else is an exact managed basename. The link name must be a safe
204
- single-component basename and must not collide with another rule.
200
+ - `--symlink <selector> [<link-name>]`: repeatable managed-symlink policy.
201
+ With two arguments, the server automatically points `<link-name>` at the
202
+ newest matching managed artifact. With one argument, the rule creates no
203
+ link by itself; it authorizes authenticated clients to choose any matching
204
+ current managed artifact as a manual-link target. A selector that begins and
205
+ ends with `/` is an unflagged regular expression matched against managed
206
+ artifact basenames; anything else is an exact managed basename.
205
207
  - `--hooks <module>`: JavaScript module (`.js`, `.mjs`, or `.cjs`) exporting
206
208
  trusted lifecycle callbacks. The path is resolved against the working
207
209
  directory. See [Deployment hooks](#deployment-hooks).
@@ -256,9 +258,35 @@ If a basename is exactly 64 lowercase hexadecimal characters, pass it with a
256
258
  directory component such as `./<name>` so the CLI does not treat it as an
257
259
  accidentally pasted seed.
258
260
 
261
+ ### `link`
262
+
263
+ ```sh
264
+ swarm-deploy link \
265
+ --seed-file <seed-file> \
266
+ --server-key <64-lower-hex> \
267
+ [--idle-timeout <milliseconds>] \
268
+ <target> <link-name>
269
+ ```
270
+
271
+ Replace `--seed-file <seed-file>` with `--seed <64-lower-hex>`, or use
272
+ `SWARM_DEPLOY_CLIENT_SEED`, exactly as for `upload`. `--server-key` pins the
273
+ server identity, and `--idle-timeout` has the same 60-second default and
274
+ inactivity semantics as upload.
275
+
276
+ The command asks the authenticated server to point `<link-name>` at the
277
+ existing managed file or directory `<target>`. The target must match a
278
+ one-argument `--symlink` rule. Success prints exactly:
279
+
280
+ ```text
281
+ <link-name> -> <target> <LINKED|UNCHANGED>
282
+ ```
283
+
284
+ `LINKED` means the link was created or repointed. `UNCHANGED` means the same
285
+ managed link already points at that target; the operation is idempotent.
286
+
259
287
  ### Seed sources
260
288
 
261
- Server and upload commands accept exactly one of:
289
+ Server, upload, and link commands accept exactly one of:
262
290
 
263
291
  - `--seed-file <seed-file>`
264
292
  - `--seed <64-lower-hex>`
@@ -277,7 +305,8 @@ tooling logs is acceptable.
277
305
 
278
306
  ### CLI exit codes
279
307
 
280
- - `0`: the upload committed or was already committed.
308
+ - `0`: the upload committed or was already committed, or the link is linked or
309
+ unchanged.
281
310
  - `1`: upload, network, protocol, storage, cleanup, or runtime failure.
282
311
  - `2`: usage or configuration error.
283
312
 
@@ -647,6 +676,17 @@ count or version rotated.
647
676
  Roll out the server, then the pattern configuration, then clients that stage
648
677
  into conforming folders.
649
678
 
679
+ #### Managed-link rollback warning
680
+
681
+ **Do not roll a server back to v0.2.0 after an upgraded server has created,
682
+ repaired, or repointed any managed link.** Those operations write a v2
683
+ ownership record, which v0.2.0 cannot read. Rollback requires restoring the
684
+ complete pre-upgrade storage backup (including visible links and
685
+ `.swarm-deploy/links`), or keeping the upgraded server in place.
686
+
687
+ `swarm-deploy link` requires an upgraded server; v0.2.0 does not recognize
688
+ link control requests.
689
+
650
690
  #### Overlapping retries now get `FILE_BUSY`
651
691
 
652
692
  **Behavior change.** A transfer ID may have only one in-flight commit
@@ -696,8 +736,8 @@ the release coordinates this version writes is untested.
696
736
 
697
737
  ## Managed symlinks
698
738
 
699
- Configure repeatable managed symlinks so the server keeps versioned artifacts
700
- and maintains declarative links in the storage root:
739
+ Managed symlinks support both automatic newest-match aliases and explicit
740
+ client promotions. Configure either form with repeatable `--symlink` options:
701
741
 
702
742
  ```sh
703
743
  swarm-deploy server \
@@ -706,17 +746,20 @@ swarm-deploy server \
706
746
  --allow-key <64-lower-hex> \
707
747
  --max-file-bytes 1073741824 \
708
748
  --max-staging-bytes 4294967296 \
709
- --symlink '/^\d+\.\d+\.\d+$/' latest \
710
- --symlink release.tar.gz current.tar.gz
749
+ --symlink '/^\d+\.\d+\.\d+$/' newest \
750
+ --symlink '/^app-\d+\.\d+\.\d+\.tar\.gz$/'
711
751
  ```
712
752
 
713
- Resulting layout:
753
+ The two-argument rule automatically reconciles `newest` to the newest matching
754
+ artifact. The one-argument rule is a target allowlist: it creates no link until
755
+ an authenticated client explicitly chooses a matching current artifact:
714
756
 
715
- ```text
716
- /srv/artifacts/
717
- ├── 0.18.0/
718
- ├── 0.18.1/
719
- └── latest -> 0.18.1
757
+ ```sh
758
+ swarm-deploy link --seed-file ./client.seed --server-key "$SERVER_KEY" \
759
+ app-2.4.1.tar.gz latest-app
760
+
761
+ # app-2.4.1.tar.gz is the tested target
762
+ # output: latest-app -> app-2.4.1.tar.gz LINKED
720
763
  ```
721
764
 
722
765
  Runtime equivalent:
@@ -729,28 +772,52 @@ const server = new Server({
729
772
  maxFileBytes: 1024 ** 3,
730
773
  maxStagingBytes: 4 * 1024 ** 3,
731
774
  symlinks: [
732
- { selector: '/^\\d+\\.\\d+\\.\\d+$/', name: 'latest' },
733
- { selector: 'release.tar.gz', name: 'current.tar.gz' }
775
+ { selector: '/^\\d+\\.\\d+\\.\\d+$/', name: 'newest' },
776
+ { selector: '/^app-\\d+\\.\\d+\\.\\d+\\.tar\\.gz$/' }
734
777
  ]
735
778
  })
736
779
  ```
737
780
 
738
- Selection uses only validated managed commit records. The newest `committedAt`
739
- wins, tie-broken by transfer ID then name. Replacement history names never
740
- match. A rule is dormant until its target exists.
741
-
742
- Safety: an unmanaged file, directory, unrecorded symlink, changed symlink, or
743
- foreign ownership record is never replaced, moved, or deleted and causes a
744
- fail-closed error. An upload whose name equals a configured link name is
745
- rejected before admission.
746
-
747
- Retention pins every selected symlink target against age, count, SemVer, and
748
- quota deletion. Pinned targets still count toward the quota. The desired-link
749
- set is recomputed under the root lease before any deletion, so a repoint always
750
- precedes the old target becoming eligible. Removing a rule removes its ownership
751
- record and visible link only while ownership is still proven.
752
-
753
- `symlinks` requires `StorageAdapter.symlink` and `readlink`. The Node and Bare
781
+ Selectors are exact safe managed-artifact basenames or unflagged `/regex/`
782
+ expressions. Automatic selection uses only validated managed commit records.
783
+ The newest `committedAt` wins, tie-broken by transfer ID then name; replacement
784
+ history never matches, and a rule is dormant until a target exists. Automatic
785
+ link names are unique and reserved even while their rule is dormant, so a
786
+ manual request cannot claim one.
787
+
788
+ Manual targets must be current managed top-level files or directories, must
789
+ match a one-argument rule, and cannot be history names. Manual link names are
790
+ safe top-level basenames and cannot equal the target, an automatic link name,
791
+ or any managed artifact name. A missing destination may be created, and an
792
+ existing manual managed link may be repointed. An unmanaged file, directory,
793
+ unrecorded symlink, changed symlink, or foreign ownership record is never
794
+ replaced, moved, or deleted: the operation fails closed.
795
+
796
+ Manual links retain their selected target across restart and automatic
797
+ reconciliation. Removing their authorization rule prevents future requests
798
+ that need that rule but does not remove or rewrite the existing link.
799
+ Automatic and manual targets are pinned against age, count, SemVer, and quota
800
+ retention and still count toward those limits. Reconciliation and manual
801
+ mutation run under the storage-root lease, and uploads cannot claim any
802
+ persisted managed-link name.
803
+
804
+ There is no unlink RPC. To remove a managed link safely, stop the server,
805
+ remove the visible symlink and its matching
806
+ `.swarm-deploy/links/<sha256(link-name)>.json` ownership record, then restart
807
+ the server. Never edit the ledger while the server runs. Removing all automatic
808
+ rules intentionally reconciles proven stale automatic links away; malformed or
809
+ conflicting ledgers still fail closed on the default symlink-capable storage.
810
+
811
+ A safe promotion workflow is:
812
+
813
+ 1. Upload a versioned artifact such as `app-2.4.1.tar.gz`.
814
+ 2. QA that exact version through its deployed versioned URL.
815
+ 3. Run `swarm-deploy link app-2.4.1.tar.gz latest` to point `latest` at the
816
+ tested artifact.
817
+
818
+ The explicit link operation is a control request, not an upload. It supports
819
+ files and directories, is idempotent, and does not invoke deployment hooks.
820
+ `symlinks` requires `StorageAdapter.symlink` and `readlink`; the Node and Bare
754
821
  default adapters provide them; a custom adapter without symlink rules stays
755
822
  source-compatible.
756
823
 
@@ -1038,6 +1105,9 @@ Optional operational limits and policies:
1038
1105
  - `artifactPatterns?: Iterable<string>`, `maxCount?: number`,
1039
1106
  `maxVersions?: number`, and `versionGranularity?: 'major' | 'minor'`; see
1040
1107
  [Artifact patterns and rotation](#artifact-patterns-and-rotation).
1108
+ - `symlinks?: Iterable<SymlinkRule>` with automatic
1109
+ `{ selector, name }` and manual-authorization `{ selector }` entries; see
1110
+ [Managed symlinks](#managed-symlinks).
1041
1111
  - `hooks?: ServerHooks | null`; see [Deployment hooks](#deployment-hooks).
1042
1112
 
1043
1113
  The root package exports the `ServerHooks`, `BeforeCommitContext`,
@@ -1092,6 +1162,23 @@ values are `connectTimeout`, `idleTimeout`, `includeSourceParent`, `dht`,
1092
1162
  [source parent](#source-parent) for every upload the client makes.
1093
1163
  Calling `close()` aborts pending work, closes active sockets, and is idempotent.
1094
1164
 
1165
+ ### Link results
1166
+
1167
+ `Client.link(target, name)` resolves to:
1168
+
1169
+ ```ts
1170
+ interface ClientLinkResult {
1171
+ target: string
1172
+ name: string
1173
+ status: 'LINKED' | 'UNCHANGED'
1174
+ }
1175
+ ```
1176
+
1177
+ The client validates both names before connecting. Link operations share the
1178
+ client's pinned server identity, authenticated client identity, connection and
1179
+ idle timeouts, serialized operation queue, cancellation, and `close()`
1180
+ behavior with uploads.
1181
+
1095
1182
  ### Upload results
1096
1183
 
1097
1184
  A direct file resolves to:
@@ -1138,6 +1225,9 @@ Server events:
1138
1225
  - `retention`: startup, scheduled, manual, commit, or post-commit outcomes,
1139
1226
  with `expiredSessions`, `scrubbed`, `ageDeleted`, `countDeleted`,
1140
1227
  `versionDeleted`, and `storageDeleted` counters.
1228
+ - `link`: one terminal manual-link outcome with `target`, `name`, client
1229
+ fingerprint, and status `linked`, `unchanged`, `rejected`, or `failed`.
1230
+ Rejected and failed outcomes also include a stable `reason`.
1141
1231
  - `failure`: stable failure code and peer fingerprint.
1142
1232
  - `listening`: local server-key fingerprint.
1143
1233
  - `close`: closed or failed outcome.
@@ -1150,6 +1240,11 @@ Client events:
1150
1240
  durable resume offset.
1151
1241
  - `verification`, `commit`
1152
1242
  - `result`: terminal upload result with artifact `kind`.
1243
+ - `link`: after the request is written, `requested` with `final: false`,
1244
+ followed by exactly one `LINKED`, `UNCHANGED`, or stable error code with
1245
+ `final: true`. A request-write failure after connection can emit only the
1246
+ terminal failed event. Local argument validation, an already closed or
1247
+ cancelled client, and connection failure can reject before any `link` event.
1153
1248
  - `failure`, `close`
1154
1249
 
1155
1250
  Use the exported `ServerEventMap`, `ClientEventMap`, `ServerEventName`, and
@@ -1213,11 +1308,15 @@ Stable codes include authentication and server-key rejection, invalid
1213
1308
  configuration and protocol records, file and staging limits, disk reserve,
1214
1309
  filename and replacement conflicts, checksum failures, connection or upload
1215
1310
  timeouts, aborts, commit failures, cleanup failures, and managed-link failures
1216
- (`LINK_CONFLICT`, `LINK_FAILED`, `UNSUPPORTED_STORAGE`). A link reconciliation
1217
- failure after a durable commit behaves like other post-commit deployment
1218
- failures: the artifact stays committed, the client receives a stable failure,
1219
- and an already-committed retry reruns reconciliation before succeeding. Import
1220
- `ERRORS` rather than matching exception messages.
1311
+ (`LINK_NOT_ALLOWED`, `LINK_TARGET_NOT_FOUND`, `LINK_CONFLICT`, `LINK_FAILED`,
1312
+ `UNSUPPORTED_STORAGE`). Manual requests use `LINK_NOT_ALLOWED` for policy,
1313
+ self-link, and automatic-name rejection; `LINK_TARGET_NOT_FOUND` for an absent
1314
+ current managed target; `LINK_CONFLICT` for managed-namespace or unmanaged-path
1315
+ collisions; and `LINK_FAILED` for other link-operation failures. A link
1316
+ reconciliation failure after a durable commit behaves like other post-commit
1317
+ deployment failures: the artifact stays committed, the client receives a
1318
+ stable failure, and an already-committed retry reruns reconciliation before
1319
+ succeeding. Import `ERRORS` rather than matching exception messages.
1221
1320
 
1222
1321
  ## Production operations
1223
1322
 
package/dist/cli.js CHANGED
@@ -17,8 +17,9 @@ const files_js_1 = require("./files.js");
17
17
  const symlinks_js_1 = require("./symlinks.js");
18
18
  const hooks_module_js_1 = require("./hooks-module.js");
19
19
  const server_js_1 = require("./server.js");
20
+ const controls_js_1 = require("./tar-protocol/controls.js");
20
21
  const client_js_1 = require("./client.js");
21
- const COMMANDS = new Set(['keygen', 'public-key', 'server', 'upload']);
22
+ const COMMANDS = new Set(['keygen', 'public-key', 'server', 'upload', 'link']);
22
23
  const HELP_ARGS = new Set(['--help', '-h']);
23
24
  const MS_PER_DAY = 24 * 60 * 60 * 1000;
24
25
  const MAX_SEED_FILE_BYTES = 65;
@@ -28,8 +29,9 @@ const USAGE = [
28
29
  'Usage:',
29
30
  ' swarm-deploy keygen --out <seed-file>',
30
31
  ' swarm-deploy public-key (--seed-file <seed-file> | --seed <64-lower-hex>)',
31
- ' swarm-deploy server (--seed-file <seed-file> | --seed <64-lower-hex>) --storage <dir> --allow-key <64-lower-hex> --max-file-bytes <bytes> --max-staging-bytes <bytes> [--allow-key <64-lower-hex>]... [--max-storage-bytes <bytes>] [--max-age-days <days>] [--replace-name <safe-basename>]... [--artifact-pattern <template>]... [--max-count <count>] [--max-versions <count> --version-granularity <major|minor>] [--symlink <selector> <link-name>]... [--hooks <module>]',
32
+ ' swarm-deploy server (--seed-file <seed-file> | --seed <64-lower-hex>) --storage <dir> --allow-key <64-lower-hex> --max-file-bytes <bytes> --max-staging-bytes <bytes> [--allow-key <64-lower-hex>]... [--max-storage-bytes <bytes>] [--max-age-days <days>] [--replace-name <safe-basename>]... [--artifact-pattern <template>]... [--max-count <count>] [--max-versions <count> --version-granularity <major|minor>] [--symlink <selector> [<link-name>]]... [--hooks <module>]',
32
33
  ' swarm-deploy upload (--seed-file <seed-file> | --seed <64-lower-hex>) --server-key <64-lower-hex> [--idle-timeout <milliseconds>] [--no-source-parent] <file-or-directory>',
34
+ ' swarm-deploy link (--seed-file <seed-file> | --seed <64-lower-hex>) --server-key <64-lower-hex> [--idle-timeout <milliseconds>] <target> <link-name>',
33
35
  '',
34
36
  'Use exactly one seed source. A command-specific environment variable is also accepted.'
35
37
  ].join('\n');
@@ -287,7 +289,7 @@ function isCanonicalHexToken(value) {
287
289
  function rejectUnexpectedSeed() {
288
290
  throw usageError('Seed strings must be passed with --seed');
289
291
  }
290
- function parseOptions(args, allowed, repeatable = new Set(), keyValues = new Set(), flags = new Set(), pairs = new Set()) {
292
+ function parseOptions(args, allowed, repeatable = new Set(), keyValues = new Set(), flags = new Set(), pairs = new Set(), allowCanonicalHexPositionals = false) {
291
293
  const options = Object.create(null);
292
294
  const repeatedOptions = Object.create(null);
293
295
  const pairOptions = Object.create(null);
@@ -295,7 +297,9 @@ function parseOptions(args, allowed, repeatable = new Set(), keyValues = new Set
295
297
  const positionals = [];
296
298
  for (let i = 0; i < args.length; i++) {
297
299
  const arg = args[i];
298
- if (isCanonicalHexToken(arg) && !keyValues.has(args[i - 1])) {
300
+ if (isCanonicalHexToken(arg) &&
301
+ !keyValues.has(args[i - 1]) &&
302
+ !(allowCanonicalHexPositionals && !arg.startsWith('-'))) {
299
303
  rejectUnexpectedSeed();
300
304
  }
301
305
  if (arg.startsWith('-')) {
@@ -316,18 +320,19 @@ function parseOptions(args, allowed, repeatable = new Set(), keyValues = new Set
316
320
  if (pairs.has(arg)) {
317
321
  const first = args[i + 1];
318
322
  const second = args[i + 2];
319
- if (first === undefined ||
320
- first.startsWith('-') ||
321
- second === undefined ||
322
- second.startsWith('-')) {
323
+ if (first === undefined || first.startsWith('-')) {
323
324
  throw usageError('Missing option value');
324
325
  }
325
- if (isCanonicalHexToken(second) && !keyValues.has(arg))
326
+ const optionalSecond = second === undefined || second.startsWith('-') ? undefined : second;
327
+ if (optionalSecond !== undefined &&
328
+ isCanonicalHexToken(optionalSecond) &&
329
+ !keyValues.has(arg)) {
326
330
  rejectUnexpectedSeed();
331
+ }
327
332
  const values = pairOptions[arg] || [];
328
- values.push([first, second]);
333
+ values.push([first, optionalSecond]);
329
334
  pairOptions[arg] = values;
330
- i += 2;
335
+ i += optionalSecond === undefined ? 1 : 2;
331
336
  continue;
332
337
  }
333
338
  const value = args[i + 1];
@@ -569,7 +574,7 @@ async function runServer(args, env, io) {
569
574
  }
570
575
  }
571
576
  const symlinkPairs = pairOptions['--symlink'] || [];
572
- const symlinks = symlinkPairs.map(([selector, name]) => ({ selector, name }));
577
+ const symlinks = symlinkPairs.map(([selector, name]) => name === undefined ? { selector } : { selector, name });
573
578
  try {
574
579
  (0, symlinks_js_1.compileSymlinkRules)(symlinks);
575
580
  }
@@ -643,6 +648,20 @@ function printUploadResult(result, io) {
643
648
  writeLine(io.stdout, `${result.name} ${result.kind} ${result.status}`);
644
649
  return result.status === 'COMMITTED' || result.status === 'ALREADY_COMMITTED' ? 0 : 1;
645
650
  }
651
+ function printLinkResult(result, io) {
652
+ writeLine(io.stdout, `${result.name} -> ${result.target} ${result.status}`);
653
+ return result.status === 'LINKED' || result.status === 'UNCHANGED' ? 0 : 1;
654
+ }
655
+ function linkErrorMessage(err) {
656
+ if (err instanceof errors_js_1.SwarmDeployError &&
657
+ (err.code === errors_js_1.ERRORS.LINK_NOT_ALLOWED ||
658
+ err.code === errors_js_1.ERRORS.LINK_TARGET_NOT_FOUND ||
659
+ err.code === errors_js_1.ERRORS.LINK_CONFLICT ||
660
+ err.code === errors_js_1.ERRORS.LINK_FAILED)) {
661
+ return err.code;
662
+ }
663
+ return errorMessage(err);
664
+ }
646
665
  async function runUpload(args, env, io) {
647
666
  const { options, flagOptions, positionals } = parseOptions(args, new Set(['--seed-file', '--seed', '--server-key', '--idle-timeout', '--no-source-parent']), new Set(), new Set(['--server-key', '--seed']), new Set(['--no-source-parent']));
648
667
  const [inputPath] = requirePositionals(positionals, 1, 'upload requires a file or directory');
@@ -709,6 +728,85 @@ async function runUpload(args, env, io) {
709
728
  throw runError;
710
729
  return code;
711
730
  }
731
+ async function runLink(args, env, io) {
732
+ const { options, positionals } = parseOptions(args, new Set(['--seed-file', '--seed', '--server-key', '--idle-timeout']), new Set(), new Set(['--server-key', '--seed']), new Set(), new Set(), true);
733
+ const [target, name] = requirePositionals(positionals, 2, 'link requires a target and link name');
734
+ try {
735
+ (0, controls_js_1.encodeLinkRequestRecord)({ v: 1, kind: 'link', target, name });
736
+ }
737
+ catch {
738
+ throw usageError('Invalid link target or link name');
739
+ }
740
+ const seed = await resolveSeed({
741
+ seedFile: options['--seed-file'],
742
+ seedText: options['--seed'],
743
+ env,
744
+ envName: CLIENT_SEED_ENV,
745
+ role: 'client'
746
+ });
747
+ let serverPublicKey;
748
+ try {
749
+ serverPublicKey = (0, identity_js_1.parsePublicKey)(requireOption(options, '--server-key'));
750
+ }
751
+ catch {
752
+ throw usageError('Invalid --server-key');
753
+ }
754
+ const clientSeedHex = b4a_1.default.toString(seed, 'hex');
755
+ const serverKeyHex = b4a_1.default.toString(serverPublicKey, 'hex');
756
+ if (target === clientSeedHex ||
757
+ target === serverKeyHex ||
758
+ name === clientSeedHex ||
759
+ name === serverKeyHex) {
760
+ throw usageError('Invalid link target or link name');
761
+ }
762
+ const idleTimeout = options['--idle-timeout'] === undefined
763
+ ? io.idleTimeout
764
+ : parsePositiveSafeInteger(options['--idle-timeout'], 'idle-timeout');
765
+ const ClientImpl = io.Client || client_js_1.Client;
766
+ let client;
767
+ try {
768
+ client = new ClientImpl({
769
+ seed,
770
+ serverPublicKey,
771
+ dht: io.dht,
772
+ connectTimeout: io.connectTimeout,
773
+ idleTimeout,
774
+ logger: createLogger(io)
775
+ });
776
+ }
777
+ catch (err) {
778
+ throw new CliError(errorMessage(err), 2);
779
+ }
780
+ const proc = io.process || _process_1.default;
781
+ const close = onceClose(client);
782
+ const detach = attachSignals(proc, () => {
783
+ close().then(() => { }, () => { });
784
+ });
785
+ let runError = null;
786
+ let code = 0;
787
+ try {
788
+ try {
789
+ const result = await client.link(target, name);
790
+ code = printLinkResult(result, io);
791
+ }
792
+ catch (err) {
793
+ runError = new CliError(linkErrorMessage(err), 1);
794
+ }
795
+ }
796
+ finally {
797
+ detach();
798
+ try {
799
+ await close();
800
+ }
801
+ catch {
802
+ if (!runError && code === 0)
803
+ runError = new CliError('Cleanup failed', 1);
804
+ }
805
+ }
806
+ if (runError)
807
+ throw runError;
808
+ return code;
809
+ }
712
810
  async function dispatch(argv, env, io) {
713
811
  if (argv.length === 1 && HELP_ARGS.has(argv[0])) {
714
812
  writeLine(io.stdout, USAGE);
@@ -732,7 +830,9 @@ async function dispatch(argv, env, io) {
732
830
  }
733
831
  if (command === 'server')
734
832
  return runServer(args, env, io);
735
- return runUpload(args, env, io);
833
+ if (command === 'upload')
834
+ return runUpload(args, env, io);
835
+ return runLink(args, env, io);
736
836
  }
737
837
  async function main(argv, env, io = {}) {
738
838
  const streams = {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}