terminay 4.2.1 → 4.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Mark Wylde
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,161 @@
1
+ # Terminay CLI
2
+
3
+ The command-line interface to [Terminay](https://terminay.com), a local-first
4
+ terminal workspace for software projects.
5
+
6
+ Today it installs and controls **Terminay Server** on a Linux host, under the
7
+ `daemon` command group. One command takes a clean machine to a running,
8
+ pairable server:
9
+
10
+ ```bash
11
+ sudo npx terminay daemon install
12
+ ```
13
+
14
+ Then pair a device with it:
15
+
16
+ ```bash
17
+ sudo npx terminay daemon qr-code
18
+ ```
19
+
20
+ That shows a scannable code, waits for the device that scans it, and asks you
21
+ to approve it after comparing the match code shown on both sides.
22
+
23
+ ## Requirements
24
+
25
+ 64-bit GNU/Linux on x64 or arm64, with systemd, and a Debian 12-compatible
26
+ userspace (glibc 2.36 or newer). The CLI refuses to run `daemon` commands
27
+ anywhere else, naming the requirement rather than failing part-way through.
28
+
29
+ The CLI itself needs Node 20 or newer. The server does not need Node at all:
30
+ each release archive carries its own pinned Node runtime, the native PTY addon,
31
+ and the workspace UI it serves, so the target needs neither Node nor a compiler
32
+ to run the server.
33
+
34
+ ## Commands
35
+
36
+ ```
37
+ terminay daemon install [ref] Resolve, verify, install, start
38
+ terminay daemon upgrade [ref] Follow the installed channel
39
+ terminay daemon uninstall Remove the service; keep the data root
40
+ terminay daemon start | stop
41
+ terminay daemon status Unit state, version, channel, exposure
42
+ terminay daemon qr-code Pairing code and approval, in one terminal
43
+ terminay daemon approvals List devices waiting for approval
44
+ terminay daemon approve <id>
45
+ terminay daemon deny <id>
46
+ terminay daemon reset-identity Rotate the host key; revoke every device
47
+ ```
48
+
49
+ `terminay daemon pairing-url` is an alias for `qr-code`. Run `terminay --help`
50
+ for the full flag list.
51
+
52
+ ## Choosing what to install
53
+
54
+ ```bash
55
+ sudo npx terminay daemon install # the newest tagged release
56
+ sudo npx terminay daemon install v4.2.1 # a specific release
57
+ sudo npx terminay daemon install main # the rolling main channel
58
+ sudo npx terminay daemon install my-branch # built from source on the target
59
+ ```
60
+
61
+ A branch or commit has no published archive, so the CLI builds one on the
62
+ machine. It checks for `git`, `python3`, `make`, and a C++ compiler before
63
+ downloading anything.
64
+
65
+ `upgrade` with no reference re-resolves whatever channel the machine is already
66
+ on, so a host tracking `main` never silently moves onto the tag stream.
67
+
68
+ ## Verification
69
+
70
+ Every downloaded archive is checked against its published SHA-256 and then
71
+ against its Ed25519 signature, using a public key committed to this package's
72
+ source. There is no flag and no environment variable that skips it: the
73
+ boundary crossed is "release pipeline → your machine", and that key is the only
74
+ thing that makes the download trustworthy.
75
+
76
+ This package is published from CI with
77
+ [npm provenance](https://docs.npmjs.com/generating-provenance-statements), so
78
+ you can verify which commit and workflow built the version you installed.
79
+
80
+ ## Install scope and the run-as account
81
+
82
+ With a terminal attached, `install` asks two questions.
83
+
84
+ The first is whether to install a system-wide service or one owned by your
85
+ login. The second is which account the server and its terminals run as — **that
86
+ choice decides whose files, keys, and agents a paired device can reach**. A
87
+ dedicated `terminay` system account is the default.
88
+
89
+ Answer both up front with `--system` or `--user` and `--run-as <user>`, which is
90
+ also required when there is no terminal to ask on.
91
+
92
+ ## Reaching the server
93
+
94
+ Exposure defaults to `hosted,direct`, and the direct origin is derived from the
95
+ machine's primary address. That is right for a host with a routable address and
96
+ wrong for one behind NAT or with a DNS name, so the derived value is printed at
97
+ install and can be overridden:
98
+
99
+ ```bash
100
+ sudo npx terminay daemon install --direct-origin https://box.example.com:8443
101
+ ```
102
+
103
+ `--expose off|hosted|direct|hosted,direct` and `--port` control the rest. For a
104
+ server reachable only at a forwarded address — a container, or a box behind a
105
+ port forward — see [Trying it in a local container](#trying-it-in-a-local-container).
106
+
107
+ ## Trying it in a local container
108
+
109
+ A server in a container on your own machine is not reachable from a client on
110
+ that machine by default. Every address the server can see about itself is one
111
+ the client cannot route to — on macOS and Windows the container runs inside a
112
+ virtual machine, and `--network host` does not change that, because the host is
113
+ the VM. Signalling succeeds and the connection then never forms.
114
+
115
+ `--advertise-address` names an address the client can reach, and offers it as an
116
+ additional connection candidate:
117
+
118
+ ```bash
119
+ docker run -d --name terminay \
120
+ --privileged --tmpfs /run --tmpfs /run/lock \
121
+ --cgroupns=host -v /sys/fs/cgroup:/sys/fs/cgroup:rw \
122
+ -p 51000-51003:51000-51003/udp \
123
+ node:24-bookworm \
124
+ /bin/sh -c 'apt-get update -qq && apt-get install -y -qq systemd dbus && exec /lib/systemd/systemd'
125
+
126
+ docker exec -it terminay bash
127
+ npx terminay daemon install --system --run-as root \
128
+ --advertise-address 127.0.0.1:51000
129
+ npx terminay daemon qr-code
130
+ ```
131
+
132
+ Four consecutive UDP ports are published rather than one, because the WebRTC
133
+ runtime gives each candidate its own socket from the range it is pinned to.
134
+
135
+ This is for a server reachable only at a forwarded address. It is not a general
136
+ answer to NAT — it works because someone forwarded a port.
137
+
138
+ ## Where things live
139
+
140
+ | | System scope | User scope |
141
+ | --- | --- | --- |
142
+ | Versions | `/opt/terminay/versions/<version>` | `~/.local/share/terminay/versions/<version>` |
143
+ | Active version | `/opt/terminay/current` | `~/.local/share/terminay/current` |
144
+ | Configuration | `/etc/terminay/server.env` | `~/.config/terminay/server.env` |
145
+ | Data root | `/var/lib/terminay` | `~/.local/share/terminay/data` |
146
+
147
+ Installed versions are immutable once verified. `current` is a symlink replaced
148
+ atomically, so an upgrade that does not come up healthy puts the previous
149
+ version back. `uninstall` keeps the data root — which holds the host key and
150
+ your paired device records — unless you pass `--purge`.
151
+
152
+ ## Links
153
+
154
+ - [Installation guide](https://terminay.com/docs/installation)
155
+ - [Standalone server runbook](https://github.com/markwylde/terminay/blob/main/docs/operations/standalone-server.md)
156
+ - [Release, install, and update policy](https://github.com/markwylde/terminay/blob/main/docs/operations/release-update-policy.md)
157
+ - [Source and issues](https://github.com/markwylde/terminay)
158
+
159
+ ## License
160
+
161
+ MIT
@@ -0,0 +1,9 @@
1
+ /**
2
+ * How many consecutive UDP ports an advertised address reserves.
3
+ *
4
+ * The WebRTC runtime gives every candidate its own socket from the pinned
5
+ * range, so this is a budget as well as a promise: it is small enough to
6
+ * publish in one `-p` range, and large enough for the advertised address plus a
7
+ * couple of the server's own. It must match the span the server uses.
8
+ */
9
+ export declare const ADVERTISED_PORT_SPAN = 4;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * How many consecutive UDP ports an advertised address reserves.
3
+ *
4
+ * The WebRTC runtime gives every candidate its own socket from the pinned
5
+ * range, so this is a budget as well as a promise: it is small enough to
6
+ * publish in one `-p` range, and large enough for the advertised address plus a
7
+ * couple of the server's own. It must match the span the server uses.
8
+ */
9
+ export const ADVERTISED_PORT_SPAN = 4;
10
+ //# sourceMappingURL=advertise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advertise.js","sourceRoot":"","sources":["../src/advertise.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC"}
package/dist/args.d.ts CHANGED
@@ -14,6 +14,9 @@ export interface DaemonOptions {
14
14
  readonly runAs?: string;
15
15
  readonly port?: number;
16
16
  readonly directOrigin?: string;
17
+ /** An address and UDP port to offer as an additional ICE candidate. Empty
18
+ * string clears a previously configured one. */
19
+ readonly advertiseAddress?: string;
17
20
  readonly hostedDomain?: string;
18
21
  readonly expose?: string;
19
22
  readonly projectRoot?: string;
@@ -34,4 +37,4 @@ export interface ParsedCommandLine {
34
37
  export declare class UsageError extends Error {
35
38
  }
36
39
  export declare function parseCommandLine(argv: readonly string[]): ParsedCommandLine;
37
- export declare const HELP_TEXT = "terminay \u2014 install and control a headless Terminay Server\n\nUsage:\n npx terminay daemon <command> [arguments] [flags]\n\nCommands:\n install [ref] Install and start the server. `ref` is a tag such as\n v4.1.1, `main` for the rolling channel, or a branch or\n commit to build from source. Defaults to the latest tag.\n upgrade [ref] Upgrade, following the installed channel by default.\n uninstall Stop and remove the service and installed versions.\n start | stop Start or stop the service.\n status Report unit state, version, channel, and exposure.\n qr-code Show a scannable pairing code and approve the device\n that scans it. Alias: pairing-url.\n approvals List pending device approvals.\n approve <id> Approve a pending device.\n deny <id> Deny a pending device.\n reset-identity Rotate the host key and revoke every paired device.\n\nFlags:\n --system, --user Install scope. Prompted when a terminal is attached.\n --run-as <user> Account the server and its terminals run as.\n --port <port> Port the server listens on.\n --direct-origin <o> Origin devices reach directly, such as\n https://box.example.com:8443.\n --hosted-domain <d> Hosted signalling domain.\n --expose <modes> off, hosted, direct, or hosted,direct.\n --project-root <p> Directory the server opens projects from.\n --allow-downgrade Permit upgrade to an older version.\n --purge Also remove the data root on uninstall.\n --yes Skip confirmation prompts.\n --no-wait Print pairing URLs and exit without waiting.\n --mode <m> Render the hosted or direct pairing URL.\n --help Show this help.\n";
40
+ export declare const HELP_TEXT = "terminay \u2014 install and control a headless Terminay Server\n\nUsage:\n npx terminay daemon <command> [arguments] [flags]\n\nCommands:\n install [ref] Install and start the server. `ref` is a tag such as\n v4.1.1, `main` for the rolling channel, or a branch or\n commit to build from source. Defaults to the latest tag.\n upgrade [ref] Upgrade, following the installed channel by default.\n uninstall Stop and remove the service and installed versions.\n start | stop Start or stop the service.\n status Report unit state, version, channel, and exposure.\n qr-code Show a scannable pairing code and approve the device\n that scans it. Alias: pairing-url.\n approvals List pending device approvals.\n approve <id> Approve a pending device.\n deny <id> Deny a pending device.\n reset-identity Rotate the host key and revoke every paired device.\n\nFlags:\n --system, --user Install scope. Prompted when a terminal is attached.\n --run-as <user> Account the server and its terminals run as.\n --port <port> Port the server listens on.\n --direct-origin <o> Origin devices reach directly, such as\n https://box.example.com:8443.\n --advertise-address <addr:port>\n An address and UDP port to offer as an extra connection\n candidate, for a server reachable only at a forwarded\n address \u2014 a container, or behind a port forward. That\n port and the three above it must be forwarded to this\n machine. Pass an empty value to remove one set earlier.\n --hosted-domain <d> Hosted signalling domain.\n --expose <modes> off, hosted, direct, or hosted,direct.\n --project-root <p> Directory the server opens projects from.\n --allow-downgrade Permit upgrade to an older version.\n --purge Also remove the data root on uninstall.\n --yes Skip confirmation prompts.\n --no-wait Print pairing URLs and exit without waiting.\n --mode <m> Render the hosted or direct pairing URL.\n --help Show this help.\n";
package/dist/args.js CHANGED
@@ -27,11 +27,14 @@ const VALUE_FLAGS = Object.freeze([
27
27
  '--run-as',
28
28
  '--port',
29
29
  '--direct-origin',
30
+ '--advertise-address',
30
31
  '--hosted-domain',
31
32
  '--expose',
32
33
  '--project-root',
33
34
  '--mode',
34
35
  ]);
36
+ /** Flags whose empty value means "remove what was configured before". */
37
+ const CLEARABLE_FLAGS = Object.freeze(['--advertise-address']);
35
38
  const BOOLEAN_FLAGS = Object.freeze([
36
39
  '--system',
37
40
  '--user',
@@ -52,11 +55,19 @@ const ACCEPTED = Object.freeze({
52
55
  '--run-as',
53
56
  '--port',
54
57
  '--direct-origin',
58
+ '--advertise-address',
55
59
  '--hosted-domain',
56
60
  '--expose',
57
61
  '--project-root',
58
62
  ],
59
- upgrade: ['--system', '--user', '--allow-downgrade'],
63
+ upgrade: [
64
+ '--system',
65
+ '--user',
66
+ '--allow-downgrade',
67
+ // How a server is reached can change without changing its version,
68
+ // and an upgrade is the moment an operator is already editing it.
69
+ '--advertise-address',
70
+ ],
60
71
  uninstall: ['--system', '--user', '--purge', '--yes'],
61
72
  start: ['--system', '--user'],
62
73
  stop: ['--system', '--user'],
@@ -83,6 +94,32 @@ function parsePort(raw) {
83
94
  fail('--port must be a whole number between 1 and 65535');
84
95
  return port;
85
96
  }
97
+ /**
98
+ * Validate `<host>:<port>` before anything is written.
99
+ *
100
+ * Literal addresses only: an ICE candidate is where a peer sends connectivity
101
+ * checks, and a hostname resolves on the peer's machine rather than naming the
102
+ * address an operator forwarded. Empty passes through as the clearing form.
103
+ */
104
+ function parseAdvertiseAddress(raw) {
105
+ if (raw === '')
106
+ return raw;
107
+ const bracketed = /^\[([0-9A-Fa-f:.]+)\]:(\d{1,5})$/u.exec(raw.trim());
108
+ const plain = /^([0-9]{1,3}(?:\.[0-9]{1,3}){3}):(\d{1,5})$/u.exec(raw.trim());
109
+ const match = bracketed ?? plain;
110
+ if (match === null) {
111
+ fail(`--advertise-address must be a literal address and port, such as 127.0.0.1:51000 or [::1]:51000 (got ${raw}). An ICE candidate is a destination for the other side's connectivity checks, so a hostname cannot stand in for it.`);
112
+ }
113
+ const port = Number(match[2]);
114
+ if (port < 1 || port > 65535) {
115
+ fail('--advertise-address port must be between 1 and 65535');
116
+ }
117
+ if (bracketed === null &&
118
+ match[1].split('.').some((octet) => Number(octet) > 255)) {
119
+ fail(`--advertise-address is not a valid IPv4 address: ${match[1]}`);
120
+ }
121
+ return raw.trim();
122
+ }
86
123
  function parseMode(raw) {
87
124
  if (raw !== 'hosted' && raw !== 'direct')
88
125
  fail('--mode must be hosted or direct');
@@ -139,8 +176,11 @@ export function parseCommandLine(argv) {
139
176
  value = next;
140
177
  index += 1;
141
178
  }
142
- if (value.length === 0)
179
+ // An empty value is a usage error everywhere except the advertised
180
+ // address, where it is how an operator removes one they set earlier.
181
+ if (value.length === 0 && !CLEARABLE_FLAGS.includes(name)) {
143
182
  fail(`${name} requires a value`);
183
+ }
144
184
  if (values.has(name))
145
185
  fail(`${name} was given more than once`);
146
186
  values.set(name, value);
@@ -188,6 +228,11 @@ export function parseCommandLine(argv) {
188
228
  ? { runAs: values.get('--run-as') }
189
229
  : {}),
190
230
  ...(port === undefined ? {} : { port: parsePort(port) }),
231
+ ...(values.has('--advertise-address')
232
+ ? {
233
+ advertiseAddress: parseAdvertiseAddress(values.get('--advertise-address')),
234
+ }
235
+ : {}),
191
236
  ...(values.has('--direct-origin')
192
237
  ? { directOrigin: values.get('--direct-origin') }
193
238
  : {}),
@@ -239,6 +284,12 @@ Flags:
239
284
  --port <port> Port the server listens on.
240
285
  --direct-origin <o> Origin devices reach directly, such as
241
286
  https://box.example.com:8443.
287
+ --advertise-address <addr:port>
288
+ An address and UDP port to offer as an extra connection
289
+ candidate, for a server reachable only at a forwarded
290
+ address — a container, or behind a port forward. That
291
+ port and the three above it must be forwarded to this
292
+ machine. Pass an empty value to remove one set earlier.
242
293
  --hosted-domain <d> Hosted signalling domain.
243
294
  --expose <modes> off, hosted, direct, or hosted,direct.
244
295
  --project-root <p> Directory the server opens projects from.
package/dist/args.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ export interface InstallResult {
43
43
  readonly channel: string;
44
44
  readonly revision: string;
45
45
  readonly directOrigin?: string;
46
+ readonly advertiseAddress?: string;
46
47
  readonly ready: boolean;
47
48
  }
48
49
  export declare function runInstall(ref: string | undefined, options: DaemonOptions, dependencies?: InstallDependencies): Promise<InstallResult>;
@@ -3,6 +3,7 @@ import { homedir, hostname } from 'node:os';
3
3
  import { dirname } from 'node:path';
4
4
  import { assertRootForSystemScope, prepareDataRoot, selectRunAs, selectScope, } from '../account.js';
5
5
  import { defaultDirectOrigin } from '../address.js';
6
+ import { ADVERTISED_PORT_SPAN } from '../advertise.js';
6
7
  import { discardDownloads, downloadAsset, downloadBytes, downloadText, } from '../download.js';
7
8
  import { waitForReady } from '../health.js';
8
9
  import { activate, installArchive, installedVersions, retain, } from '../install.js';
@@ -120,6 +121,10 @@ export async function runInstall(ref, options, dependencies = {}) {
120
121
  const directOrigin = wantsDirect
121
122
  ? (options.directOrigin ?? (await defaultDirectOrigin(port)))
122
123
  : options.directOrigin;
124
+ // An empty value clears; undefined means the operator said nothing.
125
+ const advertised = options.advertiseAddress === undefined
126
+ ? undefined
127
+ : options.advertiseAddress;
123
128
  if (wantsDirect && directOrigin === undefined) {
124
129
  throw new Error('direct exposure needs an origin devices can reach, and this machine has no routable address to derive one from. Pass --direct-origin https://<host>:<port>.');
125
130
  }
@@ -136,6 +141,7 @@ export async function runInstall(ref, options, dependencies = {}) {
136
141
  expose,
137
142
  hostedDomain: options.hostedDomain ?? DEFAULT_HOSTED_DOMAIN,
138
143
  ...(directOrigin === undefined ? {} : { directOrigin }),
144
+ ...(advertised === undefined ? {} : { advertiseAddress: advertised }),
139
145
  uiBundle: `${layout.currentLink}/ui`,
140
146
  }), { mode: 0o640 });
141
147
  // Readable only by the account the service runs as.
@@ -173,6 +179,9 @@ export async function runInstall(ref, options, dependencies = {}) {
173
179
  expose,
174
180
  hostedDomain: options.hostedDomain ?? DEFAULT_HOSTED_DOMAIN,
175
181
  ...(directOrigin === undefined ? {} : { directOrigin }),
182
+ ...(advertised === undefined || advertised === ''
183
+ ? {}
184
+ : { advertiseAddress: advertised }),
176
185
  installedAt: new Date().toISOString(),
177
186
  };
178
187
  await writeInstallRecord(layout, record);
@@ -189,6 +198,15 @@ export async function runInstall(ref, options, dependencies = {}) {
189
198
  write(` channel ${resolved.channel}`);
190
199
  write(` data root ${dataRoot}`);
191
200
  write(` exposure ${expose}`);
201
+ if (advertised !== undefined && advertised !== '') {
202
+ const first = Number(advertised.slice(advertised.lastIndexOf(':') + 1));
203
+ const last = first + ADVERTISED_PORT_SPAN - 1;
204
+ write(` advertised ${advertised}`);
205
+ write('');
206
+ write(`UDP ports ${first}-${last} must reach this machine for that address to work.`);
207
+ write('Forwarding them is the one step this command cannot take for you — in');
208
+ write(`Docker, publish them with -p ${first}-${last}:${first}-${last}/udp.`);
209
+ }
192
210
  if (directOrigin !== undefined) {
193
211
  write(` direct URL ${directOrigin}`);
194
212
  write('');
@@ -207,6 +225,9 @@ export async function runInstall(ref, options, dependencies = {}) {
207
225
  channel: resolved.channel,
208
226
  revision: installed.manifest.revision,
209
227
  ...(directOrigin === undefined ? {} : { directOrigin }),
228
+ ...(advertised === undefined || advertised === ''
229
+ ? {}
230
+ : { advertiseAddress: advertised }),
210
231
  ready,
211
232
  });
212
233
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACN,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,WAAW,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACN,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,MAAM,GACN,MAAM,eAAe,CAAC;AACvB,OAAO,EAGN,aAAa,EACb,kBAAkB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAsB,MAAM,cAAc,CAAC;AAClE,OAAO,EAAoB,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AACpD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAsC9C,8EAA8E;AAC9E,KAAK,UAAU,YAAY,CAC1B,QAAqB,EACrB,MAAqB,EACrB,KAA6B,EAC7B,YAAqB;IAErB,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACnC,KAAK,CACJ,YAAY,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO,mCAAmC,CACrF,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;YACnC,GAAG,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO;YAC3C,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACnC,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,KAAK;SACL,CAAC,CAAC;QACH,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,IAAI,MAAM,KAAK,SAAS;QACvB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACtE,KAAK,CACJ,eAAe,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,UAAU,IAAI,CAChG,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9C,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC;KAC/B,CAAC,CAAC;IACH,MAAM,aAAa,CAAC;QACnB,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,OAAO;QACP,SAAS;QACT,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;KACvD,CAAC,CAAC;IACH,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC1C,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,GAAuB,EACvB,OAAsB,EACtB,eAAoC,EAAE;IAEtC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;IACzD,MAAM,KAAK,GACV,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,KAAK,GAAiB,MAAM,WAAW,CAAC;QAC7C,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QACpE,OAAO;KACP,CAAC,CAAC;IACH,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxB,wBAAwB,CACvB,8BAA8B,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,WAAW,EAC3E,YAAY,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CACtC,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC;QACnC,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QACpE,OAAO;KACP,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,gBAAgB,EAAE,CAAC;IACrE,MAAM,QAAQ,GACb,YAAY,CAAC,gBAAgB,KAAK,SAAS;QAC1C,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE;YACtB,YAAY;YACZ,GAAG,CAAC,YAAY,CAAC,UAAU,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC;YAC3C,GAAG,CAAC,YAAY,CAAC,OAAO,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;YACrC,GAAG,CAAC,YAAY,CAAC,OAAO,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;SACrC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpE,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,MAAM,GACX,YAAY,CAAC,gBAAgB,KAAK,SAAS;QAC1C,CAAC,CAAC,MAAM,YAAY,CAClB,QAAQ,EACR,MAAM,EACN,KAAK,EACL,YAAY,CAAC,mBAAmB,CAChC;QACF,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC;QACtC,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE;YACT,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY;YACZ,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;SACnC;KACD,CAAC,CAAC;IACH,MAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;IACxC,MAAM,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAExD,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,oBAAoB,CACpC,MAAM,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAC9D,CAAC;IACF,MAAM,QAAQ,GACb,QAAQ,CAAC,kBAAkB,IAAI,YAAY,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;IAEpE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,WAAW;QAC/B,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACxB,oEAAoE;IACpE,MAAM,UAAU,GACf,OAAO,CAAC,gBAAgB,KAAK,SAAS;QACrC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC7B,IAAI,WAAW,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACd,6JAA6J,CAC7J,CAAC;IACH,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;QAC5C,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,KAAK;KACX,CAAC,CAAC;IACH,MAAM,SAAS,CACd,MAAM,CAAC,eAAe,EACtB,qBAAqB,CAAC;QACrB,QAAQ;QACR,QAAQ;QACR,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI;QAClD,IAAI;QACJ,UAAU,EAAE,mBAAmB;QAC/B,MAAM;QACN,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,qBAAqB;QAC3D,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACvD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;QACrE,QAAQ,EAAE,GAAG,MAAM,CAAC,WAAW,KAAK;KACpC,CAAC,EACF,EAAE,IAAI,EAAE,KAAK,EAAE,CACf,CAAC;IACF,oDAAoD;IACpD,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAE3C,MAAM,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,MAAM,SAAS,CACd,MAAM,CAAC,QAAQ,EACf,UAAU,CAAC;QACV,MAAM;QACN,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,gBAAgB,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI;KACvD,CAAC,EACF,EAAE,IAAI,EAAE,KAAK,EAAE,CACf,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC;QAC7B,KAAK;QACL,GAAG,CAAC,YAAY,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IAC7B,IAAI,KAAK,KAAK,MAAM;QAAE,MAAM,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;IAE1B,MAAM,KAAK,GACV,CAAC,MAAM,YAAY,CAClB,mBAAmB,EACnB,YAAY,CAAC,kBAAkB,CAC/B,CAAC,KAAK,SAAS,CAAC;IAElB,MAAM,MAAM,GAAkB;QAC7B,aAAa,EAAE,CAAC;QAChB,KAAK;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO;QACnC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ;QACrC,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,QAAQ;QACR,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI;QAClD,IAAI;QACJ,UAAU,EAAE,mBAAmB;QAC/B,MAAM;QACN,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,qBAAqB;QAC3D,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACvD,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;YAChD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;QACpC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;IACF,MAAM,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,MAAM,CAAC,MAAM,EAAE;QACpB,SAAS,CAAC,IAAI;QACd,GAAG,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;aAClC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC;aACzC,KAAK,CAAC,CAAC,CAAC,CAAC;KACX,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CACJ,mBAAmB,SAAS,CAAC,QAAQ,CAAC,OAAO,qBAAqB,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAAG,CACnG,CAAC;IACF,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;IACjC,KAAK,CAAC,kBAAkB,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,kBAAkB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,KAAK,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IACpC,KAAK,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;IAClC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,KAAK,GAAG,oBAAoB,GAAG,CAAC,CAAC;QAC9C,KAAK,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,KAAK,CACJ,aAAa,KAAK,IAAI,IAAI,oDAAoD,CAC9E,CAAC;QACF,KAAK,CACJ,uEAAuE,CACvE,CAAC;QACF,KAAK,CACJ,gCAAgC,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,CACrE,CAAC;IACH,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAChC,KAAK,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,KAAK,CACJ,4EAA4E,CAC5E,CAAC;QACF,KAAK,CAAC,kEAAkE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAClE,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO;QACnC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ;QACrC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACvD,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;YAChD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;QACpC,KAAK;KACL,CAAC,CAAC;AACJ,CAAC"}
@@ -19,5 +19,6 @@ export interface StatusReport {
19
19
  readonly ready: boolean;
20
20
  readonly exposure: readonly string[] | 'off';
21
21
  readonly activeVersion?: string;
22
+ readonly advertiseAddress?: string;
22
23
  }
23
24
  export declare function runStatus(context: CommandContext): Promise<StatusReport>;
@@ -54,6 +54,9 @@ export async function runStatus(context) {
54
54
  ready: snapshot?.ready === true,
55
55
  exposure,
56
56
  ...(active === undefined ? {} : { activeVersion: active }),
57
+ ...(context.record.advertiseAddress === undefined
58
+ ? {}
59
+ : { advertiseAddress: context.record.advertiseAddress }),
57
60
  });
58
61
  context.write(`unit ${report.unit}${report.enabled ? ' (enabled)' : ' (not enabled)'}`);
59
62
  context.write(`version ${report.version}`);
@@ -61,6 +64,11 @@ export async function runStatus(context) {
61
64
  context.write(`revision ${report.revision.slice(0, 12)}`);
62
65
  context.write(`ready ${report.ready ? 'yes' : 'no'}`);
63
66
  context.write(`exposure ${report.exposure === 'off' ? 'off' : report.exposure.join(', ') || 'off'}`);
67
+ // Service configuration an operator needs when a connection fails, and it
68
+ // names no workspace, path, account, or device.
69
+ if (report.advertiseAddress !== undefined) {
70
+ context.write(`advertised ${report.advertiseAddress}`);
71
+ }
64
72
  return report;
65
73
  }
66
74
  //# sourceMappingURL=lifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/commands/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/commands/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { readFile, writeFile } from 'node:fs/promises';
1
2
  import { discardDownloads, downloadAsset, downloadBytes, downloadText, } from '../download.js';
2
3
  import { waitForReady } from '../health.js';
3
4
  import { activate, activeVersion, installArchive, retain } from '../install.js';
@@ -5,6 +6,7 @@ import { stagedName, writeInstallRecord } from '../layout.js';
5
6
  import { hostArchitecture } from '../platform.js';
6
7
  import { resolveRef } from '../resolve.js';
7
8
  import { buildFromSource } from '../source.js';
9
+ import { withEnvironmentValue } from '../unit.js';
8
10
  import { verifyArchive } from '../verify.js';
9
11
  export class UpgradeError extends Error {
10
12
  }
@@ -151,8 +153,26 @@ export async function runUpgrade(ref, options, context, dependencies = {}) {
151
153
  write(await systemd.journal(20));
152
154
  throw new UpgradeError(`the upgrade to ${installed.manifest.version} did not become ready, so ${record.version} was restored and ${recovered ? 'is running again' : 'was started, but has not reported ready either'}.`);
153
155
  }
156
+ // An advertised address given here changes how the server is reached, which
157
+ // lives in the environment file rather than in the version that was staged.
158
+ // Absent, the recorded value carries forward with the rest of the record.
159
+ if (options.advertiseAddress !== undefined) {
160
+ const existing = await readFile(layout.environmentFile, 'utf8').catch(() => '');
161
+ await writeFile(layout.environmentFile, withEnvironmentValue(existing, 'TERMINAY_WEBRTC_ADVERTISE_ADDRESS', options.advertiseAddress === '' ? undefined : options.advertiseAddress), { mode: 0o640 });
162
+ }
163
+ // Cleared means the key is absent, not present and undefined, so the record
164
+ // is rebuilt without it rather than assigned over.
165
+ const { advertiseAddress: recorded, ...withoutAdvertised } = record;
166
+ const advertisedFields = options.advertiseAddress === undefined
167
+ ? recorded === undefined
168
+ ? {}
169
+ : { advertiseAddress: recorded }
170
+ : options.advertiseAddress === ''
171
+ ? {}
172
+ : { advertiseAddress: options.advertiseAddress };
154
173
  await writeInstallRecord(layout, {
155
- ...record,
174
+ ...withoutAdvertised,
175
+ ...advertisedFields,
156
176
  channel: resolved.channel,
157
177
  version: installed.manifest.version,
158
178
  revision: installed.manifest.revision,
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
package/dist/layout.d.ts CHANGED
@@ -38,6 +38,8 @@ export interface InstallRecord {
38
38
  readonly expose: string;
39
39
  readonly hostedDomain: string;
40
40
  readonly directOrigin?: string;
41
+ /** An address and UDP port offered as an additional ICE candidate. */
42
+ readonly advertiseAddress?: string;
41
43
  readonly installedAt: string;
42
44
  }
43
45
  export declare function parseInstallRecord(value: unknown): InstallRecord;
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"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"}
package/dist/unit.d.ts CHANGED
@@ -21,6 +21,7 @@ export interface ServiceConfiguration {
21
21
  readonly expose: string;
22
22
  readonly hostedDomain: string;
23
23
  readonly directOrigin?: string;
24
+ readonly advertiseAddress?: string;
24
25
  readonly uiBundle: string;
25
26
  }
26
27
  export declare function renderEnvironmentFile(configuration: ServiceConfiguration): string;
@@ -29,6 +30,15 @@ export declare function renderEnvironmentFile(configuration: ServiceConfiguratio
29
30
  * not being asked to change — the server id above all.
30
31
  */
31
32
  export declare function parseEnvironmentFile(contents: string): Readonly<Record<string, string>>;
33
+ /**
34
+ * Set or remove one variable in an existing environment file, leaving every
35
+ * other line as it was.
36
+ *
37
+ * The file is documented as editable, so an upgrade that only needs to change
38
+ * one value edits that value rather than regenerating the file and discarding
39
+ * whatever the operator put there.
40
+ */
41
+ export declare function withEnvironmentValue(contents: string, key: string, value: string | undefined): string;
32
42
  export interface UnitConfiguration {
33
43
  readonly layout: InstallLayout;
34
44
  readonly runAs: string;
package/dist/unit.js CHANGED
@@ -16,6 +16,13 @@ export function renderEnvironmentFile(configuration) {
16
16
  ...(configuration.directOrigin === undefined
17
17
  ? []
18
18
  : [`TERMINAY_DIRECT_ORIGIN=${configuration.directOrigin}`]),
19
+ // Written even when empty: an empty variable is how a cleared address
20
+ // reaches the server, and it reads as unset there.
21
+ ...(configuration.advertiseAddress === undefined
22
+ ? []
23
+ : [
24
+ `TERMINAY_WEBRTC_ADVERTISE_ADDRESS=${configuration.advertiseAddress}`,
25
+ ]),
19
26
  'TERMINAY_AGENT_INTEGRATION=enabled',
20
27
  'TERMINAY_AI_PROVIDERS=disabled',
21
28
  'TERMINAY_LOG_SINK=journal',
@@ -40,6 +47,28 @@ export function parseEnvironmentFile(contents) {
40
47
  }
41
48
  return Object.freeze(values);
42
49
  }
50
+ /**
51
+ * Set or remove one variable in an existing environment file, leaving every
52
+ * other line as it was.
53
+ *
54
+ * The file is documented as editable, so an upgrade that only needs to change
55
+ * one value edits that value rather than regenerating the file and discarding
56
+ * whatever the operator put there.
57
+ */
58
+ export function withEnvironmentValue(contents, key, value) {
59
+ const lines = contents.split('\n');
60
+ const kept = lines.filter((line) => !line.trimStart().startsWith(`${key}=`));
61
+ if (value === undefined) {
62
+ return kept.join('\n');
63
+ }
64
+ // Appended before the trailing blank the file ends with, so the result keeps
65
+ // exactly one terminating newline.
66
+ const trailing = kept.length > 0 && kept[kept.length - 1] === '' ? kept.pop() : undefined;
67
+ kept.push(`${key}=${value}`);
68
+ if (trailing !== undefined)
69
+ kept.push(trailing);
70
+ return kept.join('\n');
71
+ }
43
72
  export function renderUnit(configuration) {
44
73
  const { layout } = configuration;
45
74
  // System scope names the account explicitly; a user unit already runs as
package/dist/unit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"unit.js","sourceRoot":"","sources":["../src/unit.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,qBAAqB,CACpC,aAAmC;IAEnC,MAAM,KAAK,GAAG;QACb,oFAAoF;QACpF,qEAAqE;QACrE,sBAAsB,aAAa,CAAC,QAAQ,EAAE;QAC9C,sBAAsB,aAAa,CAAC,QAAQ,EAAE;QAC9C,yBAAyB,aAAa,CAAC,WAAW,EAAE;QACpD,4BAA4B;QAC5B,sBAAsB,aAAa,CAAC,IAAI,EAAE;QAC1C,uEAAuE;QACvE,kDAAkD;QAClD,gCAAgC;QAChC,wBAAwB,aAAa,CAAC,UAAU,EAAE;QAClD,mBAAmB,aAAa,CAAC,MAAM,EAAE;QACzC,0BAA0B,aAAa,CAAC,YAAY,EAAE;QACtD,GAAG,CAAC,aAAa,CAAC,YAAY,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,0BAA0B,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5D,oCAAoC;QACpC,gCAAgC;QAChC,2BAA2B;QAC3B,sBAAsB,aAAa,CAAC,QAAQ,EAAE;KAC9C,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CACnC,QAAgB;IAEhB,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,MAAM,IAAI,CAAC;YAAE,SAAS;QAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAQD,MAAM,UAAU,UAAU,CAAC,aAAgC;IAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IACjC,yEAAyE;IACzE,kDAAkD;IAClD,MAAM,OAAO,GACZ,MAAM,CAAC,KAAK,KAAK,QAAQ;QACxB,CAAC,CAAC,CAAC,QAAQ,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,aAAa,CAAC,KAAK,EAAE,CAAC;QACjE,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;;;;;;;;EAQN,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,oBAAoB,aAAa,CAAC,gBAAgB;kBACrF,MAAM,CAAC,eAAe;YAC5B,MAAM,CAAC,WAAW;;;;;;;;;;;WAWnB,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB;CAC5E,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"unit.js","sourceRoot":"","sources":["../src/unit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "terminay",
3
- "version": "4.2.1",
3
+ "version": "4.3.0",
4
4
  "type": "module",
5
- "description": "Installs and controls a headless Terminay Server on Linux.",
5
+ "description": "The Terminay command-line interface. Installs and controls a headless Terminay Server on Linux.",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",