@nocobase/app-cli-client 0.1.0-beta.1 → 0.1.0-beta.3

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/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  A command line for a NocoBase application, branded by the application: it signs in to a server and runs the business commands the server's command manifest (`GET /api/cli/manifest`) publishes for the caller, each a request to one API route. An application declares its brand under `nocobase.cli` in its `package.json` (`AppCliBrand`), and `nocobase cli build` and `nocobase cli link` of `@nocobase/app-cli` package it with an entry that calls `runAppCliPackage`, which reads the brand back from the packaged CLI's own `package.json` and runs it with `selfUpdate` on; an application's `acme` is made this way. A CLI may instead call `runAppCli` with an `AppCliConfig` of its own and add static commands.
4
4
 
5
+ Business commands render lists as tables and object responses as named fields. HTTP(S) URLs remain complete for copying. Ordinary text and structured fields retain their compact display. Use `--json` for complete nested results, including Projects invitation links, and for scripts instead of parsing the text layout.
6
+
5
7
  ```ts
6
8
  import { runAppCli } from '@nocobase/app-cli-client';
7
9
 
@@ -18,7 +20,7 @@ await runAppCli(
18
20
  );
19
21
  ```
20
22
 
21
- An application whose install script (`/api/agents/dist/installScript` of `@nocobase/app-plugin-agents`) installs its CLI names `selfUpdate` in the configuration, with the root of the CLI's package as it runs (`packageRoot`). The CLI then has `<bin> update`, which asks the signed-in server for the newest version it serves for this platform (`selfUpdate.product`, the command name by default), checks its SHA-256 and switches `<prefix>/current` to it, keeping the previous version; business commands and `login` say on stderr when a newer version is served, asking at most every 12 hours (`<state dir>/cache/update.json`). An installation the script made for the runner (`install.json` `mode: runner`) is the runner's, which updates itself, so `update` refuses it. `@nocobase/app-cli-client/install` is that installation layout (`<prefix>/versions/<version>`, `current`, `install.json`) and the update itself, without reading any CLI configuration, so a runner shares it.
23
+ An application whose install script (`/api/agents/dist/installScript` of `@nocobase/app-plugin-agents`) installs its CLI names `selfUpdate` in the configuration, with the root of the CLI's package as it runs (`packageRoot`). The CLI then has `<bin> update`, which asks the signed-in server for the newest version it serves for this platform (`selfUpdate.product`, the command name by default), downloads and checks its SHA-256, or, when the server serves no tarball and names the package on npm (`accept=npm`), installs that exact version with the machine's npm, and switches `<prefix>/current` to it, keeping the previous version; business commands and `login` say on stderr when a newer version is served, asking at most every 12 hours (`<state dir>/cache/update.json`). An installation the script made for the runner (`install.json` `mode: runner`) is the runner's, which updates itself, so `update` refuses it. `@nocobase/app-cli-client/install` is that installation layout (`<prefix>/versions/<version>`, `current`, `<prefix>/node`, `install.json`) and the update itself, without reading any CLI configuration, so a runner shares it. A version directory holds an unpacked tarball, or an npm install (`installNpmVersion`: `npm install --prefix <dir> --no-save --no-audit --no-fund --omit=optional <package>@<version>`, with npm from `NOCOBASE_NPM`, PATH or beside the Node) with the launcher `npmLauncherScript` at `bin/<bin>`, which starts `node_modules/.bin/<bin>` on `<prefix>/node` or the first Node.js 24 it finds; `detectInstallation` takes either root, the version directory or the package inside its `node_modules`, and `applyUpdate` installs an `UpdateTarget` of either kind.
22
24
 
23
25
  `@nocobase/app-cli-client/request` exports `fillRequest`, which turns a manifest command and the values of its parameters into the request it makes. It imports nothing else, so a server that calls its own routes the way the CLI does, such as an online agent's tools in `@nocobase/app-plugin-agents`, builds the same request.
24
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/dynamic/output.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAc3C,mEAAmE;AACnE,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO7D;AAKD,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,CAiBR;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAS5E;AAeD,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAsB3E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAU7D;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,MAAM,GAAE,SAAS,MAAM,EAAO,GAC7B,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,MAAM,GAAG,SAAS,CAEpB"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/dynamic/output.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAiB3C,mEAAmE;AACnE,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO7D;AAKD,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,CAiBR;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAS5E;AAeD,wCAAwC;AACxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAsB3E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAU7D;AAED,wFAAwF;AACxF,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,MAAM,GAAE,SAAS,MAAM,EAAO,GAC7B,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,MAAM,GAAG,SAAS,CAEpB"}
@@ -15,6 +15,9 @@ function cell(value) {
15
15
  ? String(value)
16
16
  : JSON.stringify(value);
17
17
  const line = text.replace(/\s+/gu, ' ').trim();
18
+ // URLs must remain usable when copied, including invitation tokens and query strings.
19
+ if (typeof value === 'string' && /^https?:\/\/\S+$/u.test(value))
20
+ return value;
18
21
  return line.length > 80 ? `${line.slice(0, 79)}…` : line;
19
22
  }
20
23
  /** The value at a dotted path (`owner.name`, `replies.length`). */
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/dynamic/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/dynamic/output.ts"],"names":[],"mappings":"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"}
package/dist/install.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { z } from 'zod';
2
- import { type DistArtifact } from '@nocobase/agent-protocol';
2
+ import { type DistArtifact, type DistResolution } from '@nocobase/agent-protocol';
3
3
  export interface Installation {
4
4
  prefix: string;
5
5
  /** This version's directory, `<prefix>/versions/<version>`. */
@@ -34,12 +34,31 @@ export declare function activateVersion(installation: Pick<Installation, 'prefix
34
34
  export declare function currentVersion(installation: Pick<Installation, 'current'>): Promise<string | undefined>;
35
35
  /** Removes every version but `keep`. */
36
36
  export declare function pruneVersions(installation: Pick<Installation, 'prefix'>, keep: readonly string[]): Promise<string[]>;
37
- /** What to update to: a version, where its tarball is, and its checksum. */
38
- export interface UpdateTarget {
37
+ /**
38
+ * Makes sure `<prefix>/node` is a Node a universal version (one without `bin/node`) can start on, as its launcher looks
39
+ * there before PATH: a user service (launchd, systemd) usually runs without the PATH that finds the shell's `node`.
40
+ * Nothing changes when it is one already. Otherwise it becomes `node`, the Node this process runs on: copied when it is
41
+ * one an installed version bundles, since that version is removed by a later update, and linked when it is the
42
+ * machine's own. Returns what it did.
43
+ */
44
+ export declare function pinNode(installation: Pick<Installation, 'prefix'>, node?: string): Promise<'kept' | 'copied' | 'linked'>;
45
+ /** A version served as a tarball: where it is, and its checksum. */
46
+ export interface ArtifactUpdateTarget {
47
+ kind?: 'artifact';
39
48
  version: string;
40
49
  url: string;
41
50
  sha256: string;
42
51
  }
52
+ /** A version to install from the npm registry: `<package>@<version>`, an exact version. */
53
+ export interface NpmUpdateTarget {
54
+ kind: 'npm';
55
+ version: string;
56
+ package: string;
57
+ }
58
+ /** What to update to. */
59
+ export type UpdateTarget = ArtifactUpdateTarget | NpmUpdateTarget;
60
+ /** The update a resolve answer names. */
61
+ export declare function updateTargetOf(resolution: DistResolution): UpdateTarget;
43
62
  /** Reads a `{ data }` answer of the application, as a JSON client with the caller's credential does. */
44
63
  export interface ArtifactReader {
45
64
  get<T>(route: string, schema: z.ZodType<T>): Promise<T>;
@@ -50,13 +69,60 @@ export interface ArtifactDownloader {
50
69
  }
51
70
  /** The newest version of `product` the application serves for `target`. */
52
71
  export declare function latestArtifact(client: ArtifactReader, product: string, target?: string): Promise<DistArtifact>;
72
+ /**
73
+ * The newest version of `product` the application offers for `target`: its tarball, or, from an application that has
74
+ * none and names the package on npm, that package (`DIST_ACCEPT_NPM`). An application from before npm answers ignores
75
+ * the parameter and answers with the tarball, or 404.
76
+ */
77
+ export declare function latestResolution(client: ArtifactReader, product: string, target?: string): Promise<DistResolution>;
53
78
  export declare function isNewer(candidate: string, running: string): boolean;
79
+ /**
80
+ * The launcher an npm install puts at `<prefix>/versions/<version>/bin/<bin>`, so `current`, the command link and a
81
+ * runner's service start it as they start an unpacked tarball: `node_modules/.bin/<bin>` under the first Node.js 24
82
+ * or newer of `NOCOBASE_NODE`, `<prefix>/node`, `node` on PATH, and a Node an older version of the installation still
83
+ * bundles, the order the universal tarball's launcher follows. It takes `<bin>` from its own name, so one text serves
84
+ * every product; the install script writes the same one.
85
+ */
86
+ export declare function npmLauncherScript(): string;
87
+ export declare class NpmUnavailableError extends Error {
88
+ name: string;
89
+ }
90
+ /**
91
+ * The npm to install with: `NOCOBASE_NPM`, `npm` on `PATH`, or the npm beside one of `nodes` (the Node an
92
+ * installation runs on), where Node.js installs it.
93
+ */
94
+ export declare function findNpm(nodes: readonly string[], env?: NodeJS.ProcessEnv): Promise<string | undefined>;
95
+ export interface InstallNpmVersionOptions {
96
+ installation: Pick<Installation, 'prefix'>;
97
+ /** The command the package provides (`bin` in its package.json), which the launcher starts. */
98
+ bin: string;
99
+ package: string;
100
+ version: string;
101
+ /** The Node.js 24 or newer npm runs on: put first on npm's PATH, for its `#!/usr/bin/env node`. */
102
+ node: string;
103
+ /** The npm to run; `findNpm` by default. */
104
+ npm?: string;
105
+ env?: NodeJS.ProcessEnv;
106
+ log?: (message: string) => void;
107
+ }
108
+ /**
109
+ * Installs `<package>@<version>` from the registry the machine's npm is configured with into
110
+ * `<prefix>/versions/<version>`, through a sibling `.partial` directory so the version directory is either complete
111
+ * or absent: `npm install --prefix <dir> --no-save --no-audit --no-fund --omit=optional`, then the launcher
112
+ * (`npmLauncherScript`) at `bin/<bin>`. Optional dependencies are left out: the coding tools' SDKs list one package per
113
+ * platform, each carrying a binary the runner never starts.
114
+ */
115
+ export declare function installNpmVersion(options: InstallNpmVersionOptions): Promise<void>;
54
116
  export interface ApplyUpdateOptions {
55
117
  installation: Pick<Installation, 'prefix' | 'current'>;
56
- /** The command the tarball carries, `bin/<bin>`; also how the log names it. */
118
+ /** The command the version carries, `bin/<bin>`; also how the log names it. */
57
119
  bin: string;
120
+ /** Downloads a tarball; an npm update does not use it. */
58
121
  client: ArtifactDownloader;
59
122
  update: UpdateTarget;
123
+ /** The npm an npm update runs; `findNpm` by default. */
124
+ npm?: string;
125
+ env?: NodeJS.ProcessEnv;
60
126
  log?: (message: string) => void;
61
127
  }
62
128
  /** What `applyUpdate` replaced: the version `current` pointed at, and the versions it removed. */
@@ -66,7 +132,11 @@ export interface AppliedUpdate {
66
132
  }
67
133
  /**
68
134
  * Installs `update` beside the running version and makes it current; the previous version stays until the next
69
- * update, so a bad one can be switched back by hand. The process has to restart to run it.
135
+ * update, so a bad one can be switched back by hand. The process has to restart to run it. A tarball is downloaded,
136
+ * checked and unpacked; an npm package is installed with npm (`installNpmVersion`). A version without its own Node (a
137
+ * universal tarball, every npm install) gets a Node to run on first (`pinNode`): the one this process runs on, which
138
+ * keeps a runner whose service has no `node` on its PATH starting when it moves from a version that bundles Node to
139
+ * one that does not.
70
140
  */
71
141
  export declare function applyUpdate(options: ApplyUpdateOptions): Promise<AppliedUpdate>;
72
142
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/install.js CHANGED
@@ -1,8 +1,13 @@
1
1
  // Where an application's CLI is installed when it came from the application's install script
2
2
  // (`/api/agents/dist/installScript`), and how a newer version replaces it:
3
3
  //
4
- // <prefix>/versions/<version>/ one unpacked standalone tarball per version (bin/<bin>, bin/node, dist/, …)
4
+ // <prefix>/versions/<version>/ one unpacked tarball per version (bin/<bin>, dist/, …, and bin/node when it
5
+ // bundles its Node), or one npm install of the package the application names
6
+ // (node_modules/<package>, and bin/<bin>, a launcher of node_modules/.bin/<bin>
7
+ // that finds Node as a universal tarball's does: `npmLauncherScript`)
5
8
  // <prefix>/current -> versions/<version>
9
+ // <prefix>/node the Node a universal tarball (one without bin/node) runs on: a link the install
10
+ // script makes to the node it checked, or what an update leaves (`pinNode`)
6
11
  // <prefix>/install.json what the script set up: the command link (`binLink`), and `mode`, `cli` for the
7
12
  // CLI alone or `runner` once the script ran with `--runner` (absent: `runner`)
8
13
  // <bin-dir>/<bin> -> <prefix>/current/bin/<bin>
@@ -13,17 +18,18 @@
13
18
  // This module reads no CLI configuration, so the CLI's `update` and a runner carried by the CLI share it.
14
19
  import { execFile } from 'node:child_process';
15
20
  import { createHash } from 'node:crypto';
16
- import { existsSync, readFileSync } from 'node:fs';
17
- import { mkdir, readdir, readlink, rename, rm, symlink, writeFile, } from 'node:fs/promises';
21
+ import { constants, existsSync, readFileSync } from 'node:fs';
22
+ import { access, copyFile, chmod, mkdir, readdir, readFile, readlink, realpath, rename, rm, symlink, writeFile, } from 'node:fs/promises';
18
23
  import path from 'node:path';
19
24
  import { promisify } from 'node:util';
20
- import { compareVersions, currentTarget, DIST_ROUTES, DistArtifactSchema, routePath, } from '@nocobase/agent-protocol';
25
+ import { compareVersions, currentTarget, DIST_ACCEPT_NPM, DIST_ROUTES, DistArtifactSchema, DistResolutionSchema, EXACT_VERSION_PATTERN, isDistNpmPackage, NPM_PACKAGE_PATTERN, routePath, } from '@nocobase/agent-protocol';
21
26
  const execFileAsync = promisify(execFile);
22
27
  /** The installation whose version directory is `root`, the root of the installed package; undefined for any other. */
23
28
  export function detectInstallation(root) {
24
- const versionsDir = path.dirname(root);
25
- if (path.basename(versionsDir) !== 'versions')
29
+ const versionDir = versionDirOf(root);
30
+ if (versionDir === undefined)
26
31
  return undefined;
32
+ const versionsDir = path.dirname(versionDir);
27
33
  const prefix = path.dirname(versionsDir);
28
34
  const current = path.join(prefix, 'current');
29
35
  if (!existsSync(current))
@@ -42,13 +48,23 @@ export function detectInstallation(root) {
42
48
  }
43
49
  return {
44
50
  prefix,
45
- versionDir: root,
46
- version: path.basename(root),
51
+ versionDir,
52
+ version: path.basename(versionDir),
47
53
  current,
48
54
  ...(binLink === undefined ? {} : { binLink }),
49
55
  mode,
50
56
  };
51
57
  }
58
+ /**
59
+ * The version directory `root` belongs to: `root` itself when it is `…/versions/<version>` (an unpacked tarball), or the
60
+ * one holding the `node_modules` it sits in (`…/versions/<version>/node_modules/<package>`, an npm install).
61
+ */
62
+ function versionDirOf(root) {
63
+ const marker = `${path.sep}node_modules${path.sep}`;
64
+ const index = root.indexOf(marker);
65
+ const dir = index === -1 ? root : root.slice(0, index);
66
+ return path.basename(path.dirname(dir)) === 'versions' ? dir : undefined;
67
+ }
52
68
  /** The command that starts whichever version is current. */
53
69
  export function launcherOf(installation, bin) {
54
70
  return path.join(installation.current, 'bin', bin);
@@ -115,16 +131,219 @@ export async function pruneVersions(installation, keep) {
115
131
  }
116
132
  return removed;
117
133
  }
134
+ async function isExecutable(file) {
135
+ try {
136
+ await access(file, constants.X_OK);
137
+ return true;
138
+ }
139
+ catch {
140
+ return false;
141
+ }
142
+ }
143
+ /**
144
+ * Makes sure `<prefix>/node` is a Node a universal version (one without `bin/node`) can start on, as its launcher looks
145
+ * there before PATH: a user service (launchd, systemd) usually runs without the PATH that finds the shell's `node`.
146
+ * Nothing changes when it is one already. Otherwise it becomes `node`, the Node this process runs on: copied when it is
147
+ * one an installed version bundles, since that version is removed by a later update, and linked when it is the
148
+ * machine's own. Returns what it did.
149
+ */
150
+ export async function pinNode(installation, node = process.execPath) {
151
+ const pinned = path.join(installation.prefix, 'node');
152
+ if (await isExecutable(pinned))
153
+ return 'kept';
154
+ const temporary = path.join(installation.prefix, `.node-${process.pid}-${Date.now()}`);
155
+ const inside = path.relative(path.join(installation.prefix, 'versions'), node);
156
+ const bundled = !inside.startsWith('..') && !path.isAbsolute(inside);
157
+ try {
158
+ if (bundled) {
159
+ await copyFile(node, temporary);
160
+ await chmod(temporary, 0o755);
161
+ }
162
+ else
163
+ await symlink(node, temporary);
164
+ await rename(temporary, pinned);
165
+ }
166
+ finally {
167
+ await rm(temporary, { force: true });
168
+ }
169
+ return bundled ? 'copied' : 'linked';
170
+ }
171
+ /** The update a resolve answer names. */
172
+ export function updateTargetOf(resolution) {
173
+ if (isDistNpmPackage(resolution))
174
+ return {
175
+ kind: 'npm',
176
+ version: resolution.version,
177
+ package: resolution.package,
178
+ };
179
+ return {
180
+ version: resolution.version,
181
+ url: resolution.url,
182
+ sha256: resolution.sha256,
183
+ };
184
+ }
118
185
  /** The newest version of `product` the application serves for `target`. */
119
186
  export async function latestArtifact(client, product, target = currentTarget()) {
120
187
  return client.get(routePath(DIST_ROUTES.resolve, { product, target }), DistArtifactSchema);
121
188
  }
189
+ /**
190
+ * The newest version of `product` the application offers for `target`: its tarball, or, from an application that has
191
+ * none and names the package on npm, that package (`DIST_ACCEPT_NPM`). An application from before npm answers ignores
192
+ * the parameter and answers with the tarball, or 404.
193
+ */
194
+ export async function latestResolution(client, product, target = currentTarget()) {
195
+ return client.get(`${routePath(DIST_ROUTES.resolve, { product, target })}?accept=${DIST_ACCEPT_NPM}`, DistResolutionSchema);
196
+ }
122
197
  export function isNewer(candidate, running) {
123
198
  return compareVersions(candidate, running) > 0;
124
199
  }
200
+ /**
201
+ * The launcher an npm install puts at `<prefix>/versions/<version>/bin/<bin>`, so `current`, the command link and a
202
+ * runner's service start it as they start an unpacked tarball: `node_modules/.bin/<bin>` under the first Node.js 24
203
+ * or newer of `NOCOBASE_NODE`, `<prefix>/node`, `node` on PATH, and a Node an older version of the installation still
204
+ * bundles, the order the universal tarball's launcher follows. It takes `<bin>` from its own name, so one text serves
205
+ * every product; the install script writes the same one.
206
+ */
207
+ export function npmLauncherScript() {
208
+ return [
209
+ '#!/bin/sh',
210
+ '# Starts the command of this name that npm installed, with a Node.js 24 or newer of this machine.',
211
+ 'self="$0"',
212
+ 'while [ -h "$self" ]; do',
213
+ ' link="$(readlink "$self")"',
214
+ ' case "$link" in',
215
+ ' /*) self="$link" ;;',
216
+ ' *) self="$(dirname "$self")/$link" ;;',
217
+ ' esac',
218
+ 'done',
219
+ 'bin="$(basename "$self")"',
220
+ 'root="$(cd "$(dirname "$self")/.." && pwd -P)"',
221
+ 'entry="$root/node_modules/.bin/$bin"',
222
+ 'prefix=""',
223
+ 'case "$(dirname "$root")" in',
224
+ ' */versions) prefix="$(dirname "$(dirname "$root")")" ;;',
225
+ 'esac',
226
+ 'usable() {',
227
+ ` [ -n "$1" ] && [ -x "$1" ] && "$1" -e 'process.exit(Number(process.versions.node.split(".")[0]) >= 24 ? 0 : 1)' >/dev/null 2>&1`,
228
+ '}',
229
+ 'for node in "${NOCOBASE_NODE:-}" "${prefix:+$prefix/node}" "$(command -v node 2>/dev/null || true)"; do',
230
+ ' if usable "$node"; then exec "$node" "$entry" "$@"; fi',
231
+ 'done',
232
+ 'if [ -n "$prefix" ]; then',
233
+ ' for node in "$prefix"/versions/*/bin/node; do',
234
+ ' if usable "$node"; then exec "$node" "$entry" "$@"; fi',
235
+ ' done',
236
+ 'fi',
237
+ `echo "$bin needs Node.js 24 or newer, and found none. Install it (https://nodejs.org/en/download), make sure node is on PATH, or set NOCOBASE_NODE to its path." >&2`,
238
+ 'exit 1',
239
+ '',
240
+ ].join('\n');
241
+ }
242
+ export class NpmUnavailableError extends Error {
243
+ name = 'NpmUnavailableError';
244
+ }
245
+ /**
246
+ * The npm to install with: `NOCOBASE_NPM`, `npm` on `PATH`, or the npm beside one of `nodes` (the Node an
247
+ * installation runs on), where Node.js installs it.
248
+ */
249
+ export async function findNpm(nodes, env = process.env) {
250
+ const candidates = [];
251
+ if (env.NOCOBASE_NPM)
252
+ candidates.push(env.NOCOBASE_NPM);
253
+ for (const dir of (env.PATH ?? '').split(path.delimiter))
254
+ if (dir !== '')
255
+ candidates.push(path.join(dir, 'npm'));
256
+ for (const node of nodes) {
257
+ candidates.push(path.join(path.dirname(node), 'npm'));
258
+ try {
259
+ candidates.push(path.join(path.dirname(await realpath(node)), 'npm'));
260
+ }
261
+ catch {
262
+ // A Node that is not there has no npm beside it.
263
+ }
264
+ }
265
+ for (const candidate of candidates)
266
+ if (await isExecutable(candidate))
267
+ return candidate;
268
+ return undefined;
269
+ }
270
+ /**
271
+ * Installs `<package>@<version>` from the registry the machine's npm is configured with into
272
+ * `<prefix>/versions/<version>`, through a sibling `.partial` directory so the version directory is either complete
273
+ * or absent: `npm install --prefix <dir> --no-save --no-audit --no-fund --omit=optional`, then the launcher
274
+ * (`npmLauncherScript`) at `bin/<bin>`. Optional dependencies are left out: the coding tools' SDKs list one package per
275
+ * platform, each carrying a binary the runner never starts.
276
+ */
277
+ export async function installNpmVersion(options) {
278
+ const { installation, bin, version } = options;
279
+ if (!NPM_PACKAGE_PATTERN.test(options.package))
280
+ throw new Error(`Not an npm package name: ${options.package}`);
281
+ if (!EXACT_VERSION_PATTERN.test(version))
282
+ throw new Error(`Not an exact version: ${version}`);
283
+ const env = options.env ?? process.env;
284
+ const npm = options.npm ?? (await findNpm([options.node], env));
285
+ if (npm === undefined)
286
+ throw new NpmUnavailableError(`${bin} ${version} is installed with npm, and none was found on PATH or beside ${options.node}. npm comes ` +
287
+ 'with Node.js (https://nodejs.org/en/download); put it on PATH, or set NOCOBASE_NPM to its path.');
288
+ const dest = path.join(installation.prefix, 'versions', version);
289
+ const partial = `${dest}.partial`;
290
+ await rm(partial, { recursive: true, force: true });
291
+ await mkdir(partial, { recursive: true, mode: 0o755 });
292
+ try {
293
+ options.log?.(`update: installing ${options.package}@${version} with npm`);
294
+ try {
295
+ await execFileAsync(npm, [
296
+ 'install',
297
+ '--prefix',
298
+ partial,
299
+ '--no-save',
300
+ '--no-audit',
301
+ '--no-fund',
302
+ '--omit=optional',
303
+ `${options.package}@${version}`,
304
+ ], {
305
+ cwd: partial,
306
+ env: {
307
+ ...env,
308
+ PATH: [path.dirname(options.node), env.PATH ?? '']
309
+ .filter((entry) => entry !== '')
310
+ .join(path.delimiter),
311
+ },
312
+ maxBuffer: 16 * 1024 * 1024,
313
+ });
314
+ }
315
+ catch (error) {
316
+ const stderr = error.stderr;
317
+ const detail = typeof stderr === 'string' && stderr.trim() !== ''
318
+ ? stderr.trim().split('\n').slice(-5).join('\n')
319
+ : error instanceof Error
320
+ ? error.message
321
+ : String(error);
322
+ throw new Error(`npm could not install ${options.package}@${version}: ${detail}`, { cause: error });
323
+ }
324
+ const installed = JSON.parse(await readFile(path.join(partial, 'node_modules', options.package, 'package.json'), 'utf8'));
325
+ if (installed.version !== version)
326
+ throw new Error(`npm installed ${options.package}@${String(installed.version)}, not ${version}.`);
327
+ if (!existsSync(path.join(partial, 'node_modules', '.bin', bin)))
328
+ throw new Error(`${options.package}@${version} provides no ${bin} command.`);
329
+ await mkdir(path.join(partial, 'bin'), { recursive: true, mode: 0o755 });
330
+ await writeFile(path.join(partial, 'bin', bin), npmLauncherScript(), {
331
+ mode: 0o755,
332
+ });
333
+ await rm(dest, { recursive: true, force: true });
334
+ await rename(partial, dest);
335
+ }
336
+ finally {
337
+ await rm(partial, { recursive: true, force: true });
338
+ }
339
+ }
125
340
  /**
126
341
  * Installs `update` beside the running version and makes it current; the previous version stays until the next
127
- * update, so a bad one can be switched back by hand. The process has to restart to run it.
342
+ * update, so a bad one can be switched back by hand. The process has to restart to run it. A tarball is downloaded,
343
+ * checked and unpacked; an npm package is installed with npm (`installNpmVersion`). A version without its own Node (a
344
+ * universal tarball, every npm install) gets a Node to run on first (`pinNode`): the one this process runs on, which
345
+ * keeps a runner whose service has no `node` on its PATH starting when it moves from a version that bundles Node to
346
+ * one that does not.
128
347
  */
129
348
  export async function applyUpdate(options) {
130
349
  const { installation, client, update, bin } = options;
@@ -132,10 +351,34 @@ export async function applyUpdate(options) {
132
351
  throw new Error(`Not a version: ${update.version}`);
133
352
  const previous = await currentVersion(installation);
134
353
  const dest = path.join(installation.prefix, 'versions', update.version);
135
- if (!existsSync(path.join(dest, 'bin', bin))) {
136
- options.log?.(`update: downloading ${bin} ${update.version}`);
137
- const bytes = await client.download(update.url);
138
- await unpackTarball(bytes, update.sha256, dest);
354
+ const pin = async () => {
355
+ const pinned = await pinNode(installation);
356
+ if (pinned !== 'kept')
357
+ options.log?.(`update: ${bin} ${update.version} runs on ${path.join(installation.prefix, 'node')} (${pinned} from ${process.execPath})`);
358
+ };
359
+ if (update.kind === 'npm') {
360
+ // npm runs on the Node the new version will run on, so that one is pinned first.
361
+ await pin();
362
+ if (!existsSync(path.join(dest, 'bin', bin)))
363
+ await installNpmVersion({
364
+ installation,
365
+ bin,
366
+ package: update.package,
367
+ version: update.version,
368
+ node: path.join(installation.prefix, 'node'),
369
+ ...(options.npm === undefined ? {} : { npm: options.npm }),
370
+ ...(options.env === undefined ? {} : { env: options.env }),
371
+ ...(options.log === undefined ? {} : { log: options.log }),
372
+ });
373
+ }
374
+ else {
375
+ if (!existsSync(path.join(dest, 'bin', bin))) {
376
+ options.log?.(`update: downloading ${bin} ${update.version}`);
377
+ const bytes = await client.download(update.url);
378
+ await unpackTarball(bytes, update.sha256, dest);
379
+ }
380
+ if (!existsSync(path.join(dest, 'bin', 'node')))
381
+ await pin();
139
382
  }
140
383
  await activateVersion(installation, update.version);
141
384
  options.log?.(`update: ${bin} ${update.version} is current (was ${previous ?? 'none'})`);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/update.d.ts CHANGED
@@ -20,6 +20,8 @@ export interface UpdateEnvironment {
20
20
  readonly cacheFile?: string;
21
21
  readonly now?: () => number;
22
22
  readonly fetch?: typeof fetch;
23
+ /** The environment npm runs in, and where it is looked for (`findNpm`), for a version installed from npm. */
24
+ readonly env?: NodeJS.ProcessEnv;
23
25
  }
24
26
  /** Who updates the installation `environment` describes. */
25
27
  export declare function updatedBy(environment: UpdateEnvironment): UpdatedBy;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAcA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAQlD,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEhF,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAGtB,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,EAAE,MAAyB,CAAC;AACzD,8CAA8C;AAC9C,eAAO,MAAM,eAAe,EAAE,MAAa,CAAC;AAE5C,wGAAwG;AACxG,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CAC/B;AAED,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,WAAW,EAAE,iBAAiB,GAAG,SAAS,CAInE;AA4CD,uGAAuG;AACvG,wBAAsB,UAAU,CAC9B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgC7B;AAED,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,yGAAyG;AACzG,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC3E,OAAO,CAAC,eAAe,CAAC,CAuD1B;AAYD,uGAAuG;AACvG,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,GACnB,iBAAiB,GAAG,SAAS,CAS/B;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAsC9D"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAeA,OAAO,EAAS,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAQlD,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEhF,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAGtB,0CAA0C;AAC1C,eAAO,MAAM,gBAAgB,EAAE,MAAyB,CAAC;AACzD,8CAA8C;AAC9C,eAAO,MAAM,eAAe,EAAE,MAAa,CAAC;AAE5C,wGAAwG;AACxG,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,6GAA6G;IAC7G,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,WAAW,EAAE,iBAAiB,GAAG,SAAS,CAInE;AA4CD,uGAAuG;AACvG,wBAAsB,UAAU,CAC9B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgC7B;AAED,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,yGAAyG;AACzG,wBAAsB,SAAS,CAC7B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC3E,OAAO,CAAC,eAAe,CAAC,CAoD1B;AAYD,uGAAuG;AACvG,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,GACnB,iBAAiB,GAAG,SAAS,CAS/B;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,KAAK,CAsC9D"}
package/dist/update.js CHANGED
@@ -3,8 +3,9 @@
3
3
  // A CLI installed alone by the install script (`install.json` says `mode: cli`) updates itself from the server the
4
4
  // person is signed in to, with their key: it resolves the newest version the server serves for this platform, downloads
5
5
  // it, checks its SHA-256, unpacks it beside the running version and switches `current`, keeping the previous version
6
- // for a rollback (`install.ts`). An installation the script made for a runner (`mode: runner`) is the runner's, which
7
- // updates itself.
6
+ // for a rollback (`install.ts`). A server that serves no tarball and names the CLI on npm instead (`accept=npm`) is
7
+ // followed the same way, with `npm install` of that exact version in place of the download. An installation the
8
+ // script made for a runner (`mode: runner`) is the runner's, which updates itself.
8
9
  //
9
10
  // The hint asks at most every `HINT_INTERVAL_MS` per server and remembers the answer in `<state dir>/cache/update.json`,
10
11
  // so a command waits for the network at most once in that time, and never longer than `HINT_TIMEOUT_MS`.
@@ -15,7 +16,7 @@ import { Flags } from '@oclif/core';
15
16
  import { currentTarget, EXIT_CODES, } from '@nocobase/agent-protocol';
16
17
  import { appCliHome } from "./config.js";
17
18
  import { currentSession } from "./dynamic/session.js";
18
- import { applyUpdate, detectInstallation, isNewer, latestArtifact, } from "./install.js";
19
+ import { applyUpdate, detectInstallation, isNewer, latestResolution, updateTargetOf, } from "./install.js";
19
20
  import { AppCommand, UsageError } from "./lib/command.js";
20
21
  import { ApiClient } from "./lib/http.js";
21
22
  /** How often the hint asks the server. */
@@ -69,7 +70,7 @@ export async function updateHint(session, environment) {
69
70
  latest = cached.latest;
70
71
  else {
71
72
  try {
72
- latest = (await latestArtifact(clientOf(session, environment, HINT_TIMEOUT_MS), environment.product ?? environment.bin, environment.target ?? currentTarget())).version;
73
+ latest = (await latestResolution(clientOf(session, environment, HINT_TIMEOUT_MS), environment.product ?? environment.bin, environment.target ?? currentTarget())).version;
73
74
  }
74
75
  catch {
75
76
  latest = null;
@@ -94,7 +95,7 @@ export async function updateCli(session, environment, options) {
94
95
  if (by === 'runner')
95
96
  throw new UsageError(`This ${bin} was installed for a runner, which keeps it up to date itself.`);
96
97
  const client = clientOf(session, environment);
97
- const latest = await latestArtifact(client, environment.product ?? bin, environment.target ?? currentTarget());
98
+ const latest = await latestResolution(client, environment.product ?? bin, environment.target ?? currentTarget());
98
99
  const result = {
99
100
  current: environment.running,
100
101
  latest: latest.version,
@@ -113,11 +114,8 @@ export async function updateCli(session, environment, options) {
113
114
  installation,
114
115
  bin,
115
116
  client,
116
- update: {
117
- version: latest.version,
118
- url: latest.url,
119
- sha256: latest.sha256,
120
- },
117
+ update: updateTargetOf(latest),
118
+ ...(environment.env === undefined ? {} : { env: environment.env }),
121
119
  });
122
120
  options.log?.(`Updated ${bin} ${environment.running} → ${latest.version}; ${previous ?? 'the previous version'} stays in ` +
123
121
  `${path.join(installation.prefix, 'versions')}.`);
@@ -145,9 +143,9 @@ export function updateEnvironment(config) {
145
143
  export function updateCommand(app) {
146
144
  return class Update extends AppCommand {
147
145
  static summary = `Update ${app.bin} to the newest version the server serves.`;
148
- static description = `Asks the server you are signed in to for the newest ${app.bin} it serves for this platform, downloads it, ` +
149
- `checks its SHA-256 and switches to it, keeping the previous version beside it. For ${app.bin} installed alone ` +
150
- 'by the install script.';
146
+ static description = `Asks the server you are signed in to for the newest ${app.bin} it serves for this platform, downloads it ` +
147
+ `and checks its SHA-256 (or installs the exact version it names on npm), and switches to it, keeping the ` +
148
+ `previous version beside it. For ${app.bin} installed alone by the install script.`;
151
149
  static examples = [
152
150
  '<%= config.bin %> update',
153
151
  '<%= config.bin %> update --check',
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAC7G,EAAE;AACF,mHAAmH;AACnH,wHAAwH;AACxH,qHAAqH;AACrH,oHAAoH;AACpH,gHAAgH;AAChH,mFAAmF;AACnF,EAAE;AACF,yHAAyH;AACzH,yGAAyG;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAElD,OAAO,EACL,aAAa,EACb,UAAU,GAEX,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,UAAU,EAAyC,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,gBAAgB,EAChB,cAAc,GAEf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,0CAA0C;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAW,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AACzD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAW,IAAI,CAAC;AAsB5C,4DAA4D;AAC5D,MAAM,UAAU,SAAS,CAAC,WAA8B;IACtD,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;IACrC,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9C,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CACf,OAAsB,EACtB,WAA8B,EAC9B,SAAkB;IAElB,OAAO,IAAI,SAAS,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;QAC/B,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;KACzE,CAAC,CAAC;AACL,CAAC;AAQD,KAAK,UAAU,SAAS,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAc,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,KAAgB;IACtD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IAC7D,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QAChE,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,WAA8B;IACjD,OAAO,CACL,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAsB,EACtB,WAA8B;IAE9B,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IACvD,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,MAAqB,CAAC;IAC1B,IACE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM;QACjC,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,gBAAgB;QAEzC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;SACpB,CAAC;QACJ,IAAI,CAAC;YACH,MAAM,GAAG,CACP,MAAM,gBAAgB,CACpB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,CAAC,EAC/C,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EACtC,WAAW,CAAC,MAAM,IAAI,aAAa,EAAE,CACtC,CACF,CAAC,OAAO,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,UAAU,CAAC,SAAS,EAAE;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,GAAG;YACd,MAAM;SACP,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;QAC5D,CAAC,CAAC,WAAW,WAAW,CAAC,GAAG,KAAK,MAAM,yBAAyB,WAAW,CAAC,GAAG,YAAY;QAC3F,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAWD,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAsB,EACtB,WAA8B,EAC9B,OAA4E;IAE5E,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;IAC5B,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,IAAI,EAAE,KAAK,MAAM;QACf,MAAM,IAAI,UAAU,CAClB,QAAQ,GAAG,mGAAmG;YAC5G,yDAAyD,CAC5D,CAAC;IACJ,IAAI,EAAE,KAAK,QAAQ;QACjB,MAAM,IAAI,UAAU,CAClB,QAAQ,GAAG,gEAAgE,CAC5E,CAAC;IACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAmB,MAAM,gBAAgB,CACnD,MAAM,EACN,WAAW,CAAC,OAAO,IAAI,GAAG,EAC1B,WAAW,CAAC,MAAM,IAAI,aAAa,EAAE,CACtC,CAAC;IACF,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,MAAM,EAAE,MAAM,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK;KACf,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,EAAE,CACX,GAAG,GAAG,IAAI,WAAW,CAAC,OAAO,mBAAmB,OAAO,CAAC,MAAM,WAAW,MAAM,CAAC,OAAO,IAAI,CAC5F,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,EAAE,CACX,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,0BAA0B,WAAW,CAAC,OAAO,YAAY,GAAG,YAAY,CACjG,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,YAAa,CAAC;IAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC;QACrC,YAAY;QACZ,GAAG;QACH,MAAM;QACN,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;QAC9B,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;KACnE,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,EAAE,CACX,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,MAAM,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,sBAAsB,YAAY;QAC1G,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CACnD,CAAC;IACF,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,WAAW,GACf,IAAI,CAAC,KAAK,CACR,YAAY,CACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,EACvD,MAAM,CACP,CAEJ,CAAC,OAAO,CAAC;AAEV,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAC/B,MAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,WAAW;QACtC,YAAY,EAAE,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,GAAiB;IAC7C,OAAO,MAAM,MAAO,SAAQ,UAAU;QACpC,MAAM,CAAU,OAAO,GAAG,UAAU,GAAG,CAAC,GAAG,2CAA2C,CAAC;QACvF,MAAM,CAAU,WAAW,GACzB,uDAAuD,GAAG,CAAC,GAAG,6CAA6C;YAC3G,0GAA0G;YAC1G,mCAAmC,GAAG,CAAC,GAAG,yCAAyC,CAAC;QACtF,MAAM,CAAU,QAAQ,GAAG;YACzB,0BAA0B;YAC1B,kCAAkC;SACnC,CAAC;QACF,MAAM,CAAU,KAAK,GAAG;YACtB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;gBACnB,WAAW,EAAE,6CAA6C;aAC3D,CAAC;SACH,CAAC;QAEF,KAAK,CAAC,GAAG;YACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,WAAW,KAAK,SAAS;gBAC3B,MAAM,IAAI,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,0BAA0B,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;YACvC,IAAI,OAAO,KAAK,SAAS;gBACvB,MAAM,IAAI,UAAU,CAClB,oBAAoB,GAAG,CAAC,GAAG,0BAA0B,EACrD,UAAU,CAAC,IAAI,CAChB,CAAC;YACJ,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;gBACxB,MAAM,IAAI,UAAU,CAClB,QAAQ,GAAG,CAAC,GAAG,6DAA6D,CAC7E,CAAC;YACJ,OAAO,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE;gBACrC,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI;gBAC3B,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/app-cli-client",
3
- "version": "0.1.0-beta.1",
3
+ "version": "0.1.0-beta.3",
4
4
  "description": "A branded command line for a NocoBase application: signs in, and runs the business commands the application's command manifest publishes over its API",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@oclif/core": "^4.14.0",
40
40
  "zod": "^4.6.5",
41
- "@nocobase/agent-protocol": "^0.1.0-beta.1",
41
+ "@nocobase/agent-protocol": "0.1.0-beta.4",
42
42
  "@nocobase/cli-envelope": "^0.1.0-beta.0"
43
43
  },
44
44
  "devDependencies": {
@@ -49,7 +49,7 @@
49
49
  "prettier": "^3.9.6",
50
50
  "typescript": "^6.0.3",
51
51
  "vitest": "^4.1.10",
52
- "@nocobase/dev-config": "0.1.0-beta.20"
52
+ "@nocobase/dev-config": "0.1.0-beta.21"
53
53
  },
54
54
  "repository": {
55
55
  "type": "git",