@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 +3 -1
- package/dist/dynamic/output.d.ts.map +1 -1
- package/dist/dynamic/output.js +3 -0
- package/dist/dynamic/output.js.map +1 -1
- package/dist/install.d.ts +75 -5
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +256 -13
- package/dist/install.js.map +1 -1
- package/dist/update.d.ts +2 -0
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +11 -13
- package/dist/update.js.map +1 -1
- package/package.json +3 -3
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;
|
|
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"}
|
package/dist/dynamic/output.js
CHANGED
|
@@ -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
|
-
/**
|
|
38
|
-
|
|
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
|
|
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
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"
|
|
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
|
|
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
|
|
25
|
-
if (
|
|
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
|
|
46
|
-
version: path.basename(
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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'})`);
|
package/dist/install.js.map
CHANGED
|
@@ -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;
|
package/dist/update.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"
|
|
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`).
|
|
7
|
-
//
|
|
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,
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
150
|
-
|
|
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',
|
package/dist/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAC7G,EAAE;AACF,mHAAmH;AACnH,wHAAwH;AACxH,qHAAqH;AACrH,
|
|
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.
|
|
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": "
|
|
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.
|
|
52
|
+
"@nocobase/dev-config": "0.1.0-beta.21"
|
|
53
53
|
},
|
|
54
54
|
"repository": {
|
|
55
55
|
"type": "git",
|