@wavehouse/chtypes 0.5.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +34 -38
- package/dist/abi1/buildinfo.d.ts +40 -0
- package/dist/abi1/buildinfo.d.ts.map +1 -0
- package/dist/abi1/buildinfo.js +83 -0
- package/dist/abi1/buildinfo.js.map +1 -0
- package/dist/abi1/calls.gen.d.ts +55 -0
- package/dist/abi1/calls.gen.d.ts.map +1 -0
- package/dist/abi1/calls.gen.js +110 -0
- package/dist/abi1/calls.gen.js.map +1 -0
- package/dist/abi1/decls.gen.d.ts +115 -0
- package/dist/abi1/decls.gen.d.ts.map +1 -0
- package/dist/abi1/decls.gen.js +1613 -0
- package/dist/abi1/decls.gen.js.map +1 -0
- package/dist/abi1/errmap.gen.d.ts +18 -0
- package/dist/abi1/errmap.gen.d.ts.map +1 -0
- package/dist/abi1/errmap.gen.js +66 -0
- package/dist/abi1/errmap.gen.js.map +1 -0
- package/dist/abi1/errors.d.ts +107 -0
- package/dist/abi1/errors.d.ts.map +1 -0
- package/dist/abi1/errors.js +134 -0
- package/dist/abi1/errors.js.map +1 -0
- package/dist/abi1/handles.d.ts +31 -0
- package/dist/abi1/handles.d.ts.map +1 -0
- package/dist/abi1/handles.js +76 -0
- package/dist/abi1/handles.js.map +1 -0
- package/dist/abi1/index.d.ts +17 -0
- package/dist/abi1/index.d.ts.map +1 -0
- package/dist/abi1/index.js +17 -0
- package/dist/abi1/index.js.map +1 -0
- package/dist/abi1/libc.d.ts +54 -0
- package/dist/abi1/libc.d.ts.map +1 -0
- package/dist/abi1/libc.gen.d.ts +12 -0
- package/dist/abi1/libc.gen.d.ts.map +1 -0
- package/dist/abi1/libc.gen.js +75 -0
- package/dist/abi1/libc.gen.js.map +1 -0
- package/dist/abi1/libc.js +109 -0
- package/dist/abi1/libc.js.map +1 -0
- package/dist/abi1/loader.d.ts +99 -0
- package/dist/abi1/loader.d.ts.map +1 -0
- package/dist/abi1/loader.js +261 -0
- package/dist/abi1/loader.js.map +1 -0
- package/dist/abi1/raw.d.ts +104 -0
- package/dist/abi1/raw.d.ts.map +1 -0
- package/dist/abi1/raw.js +296 -0
- package/dist/abi1/raw.js.map +1 -0
- package/dist/abi1/strictjson.d.ts +19 -0
- package/dist/abi1/strictjson.d.ts.map +1 -0
- package/dist/abi1/strictjson.js +78 -0
- package/dist/abi1/strictjson.js.map +1 -0
- package/dist/abi1/vocab.gen.d.ts +169 -0
- package/dist/abi1/vocab.gen.d.ts.map +1 -0
- package/dist/abi1/vocab.gen.js +306 -0
- package/dist/abi1/vocab.gen.js.map +1 -0
- package/dist/cli.d.ts +25 -26
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +206 -218
- package/dist/cli.js.map +1 -1
- package/dist/documents.d.ts +195 -0
- package/dist/documents.d.ts.map +1 -0
- package/dist/documents.js +389 -0
- package/dist/documents.js.map +1 -0
- package/dist/env.d.ts +16 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +57 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +19 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -23
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +11 -89
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js +16 -180
- package/dist/json.js.map +1 -1
- package/dist/library.d.ts +53 -309
- package/dist/library.d.ts.map +1 -1
- package/dist/library.js +77 -315
- package/dist/library.js.map +1 -1
- package/dist/ocifetch/constants.gen.d.ts +84 -0
- package/dist/ocifetch/constants.gen.d.ts.map +1 -0
- package/dist/ocifetch/constants.gen.js +92 -0
- package/dist/ocifetch/constants.gen.js.map +1 -0
- package/dist/ocifetch/dsse.d.ts +114 -0
- package/dist/ocifetch/dsse.d.ts.map +1 -0
- package/dist/ocifetch/dsse.js +331 -0
- package/dist/ocifetch/dsse.js.map +1 -0
- package/dist/ocifetch/ensure.d.ts +65 -0
- package/dist/ocifetch/ensure.d.ts.map +1 -0
- package/dist/ocifetch/ensure.js +775 -0
- package/dist/ocifetch/ensure.js.map +1 -0
- package/dist/ocifetch/errors.d.ts +92 -0
- package/dist/ocifetch/errors.d.ts.map +1 -0
- package/dist/ocifetch/errors.js +101 -0
- package/dist/ocifetch/errors.js.map +1 -0
- package/dist/ocifetch/goldens.d.ts +44 -0
- package/dist/ocifetch/goldens.d.ts.map +1 -0
- package/dist/ocifetch/goldens.js +62 -0
- package/dist/ocifetch/goldens.js.map +1 -0
- package/dist/ocifetch/http.d.ts +124 -0
- package/dist/ocifetch/http.d.ts.map +1 -0
- package/dist/ocifetch/http.js +549 -0
- package/dist/ocifetch/http.js.map +1 -0
- package/dist/ocifetch/index.d.ts +17 -0
- package/dist/ocifetch/index.d.ts.map +1 -0
- package/dist/ocifetch/index.js +14 -0
- package/dist/ocifetch/index.js.map +1 -0
- package/dist/ocifetch/layout.d.ts +126 -0
- package/dist/ocifetch/layout.d.ts.map +1 -0
- package/dist/ocifetch/layout.js +375 -0
- package/dist/ocifetch/layout.js.map +1 -0
- package/dist/ocifetch/localverify.d.ts +43 -0
- package/dist/ocifetch/localverify.d.ts.map +1 -0
- package/dist/ocifetch/localverify.js +164 -0
- package/dist/ocifetch/localverify.js.map +1 -0
- package/dist/ocifetch/lock.d.ts +39 -0
- package/dist/ocifetch/lock.d.ts.map +1 -0
- package/dist/ocifetch/lock.js +140 -0
- package/dist/ocifetch/lock.js.map +1 -0
- package/dist/ocifetch/oci.d.ts +100 -0
- package/dist/ocifetch/oci.d.ts.map +1 -0
- package/dist/ocifetch/oci.js +323 -0
- package/dist/ocifetch/oci.js.map +1 -0
- package/dist/ocifetch/referrers.d.ts +55 -0
- package/dist/ocifetch/referrers.d.ts.map +1 -0
- package/dist/ocifetch/referrers.js +132 -0
- package/dist/ocifetch/referrers.js.map +1 -0
- package/dist/ocifetch/types.d.ts +167 -0
- package/dist/ocifetch/types.d.ts.map +1 -0
- package/dist/ocifetch/types.js +88 -0
- package/dist/ocifetch/types.js.map +1 -0
- package/dist/ocifetch/unpack.d.ts +55 -0
- package/dist/ocifetch/unpack.d.ts.map +1 -0
- package/dist/ocifetch/unpack.js +205 -0
- package/dist/ocifetch/unpack.js.map +1 -0
- package/dist/registry.d.ts +38 -387
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +94 -819
- package/dist/registry.js.map +1 -1
- package/dist/schema.d.ts +77 -588
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +87 -549
- package/dist/schema.js.map +1 -1
- package/dist/settings.d.ts +27 -36
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +75 -25
- package/dist/settings.js.map +1 -1
- package/dist/setup.d.ts +37 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +60 -0
- package/dist/setup.js.map +1 -0
- package/dist/tar.d.ts +27 -11
- package/dist/tar.d.ts.map +1 -1
- package/dist/tar.js +54 -32
- package/dist/tar.js.map +1 -1
- package/package.json +2 -2
- package/dist/discover.d.ts +0 -142
- package/dist/discover.d.ts.map +0 -1
- package/dist/discover.js +0 -288
- package/dist/discover.js.map +0 -1
- package/dist/error-codes.d.ts +0 -80
- package/dist/error-codes.d.ts.map +0 -1
- package/dist/error-codes.js +0 -139
- package/dist/error-codes.js.map +0 -1
- package/dist/errors.d.ts +0 -284
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -321
- package/dist/errors.js.map +0 -1
- package/dist/fetch.d.ts +0 -382
- package/dist/fetch.d.ts.map +0 -1
- package/dist/fetch.js +0 -1498
- package/dist/fetch.js.map +0 -1
- package/dist/ffi.d.ts +0 -410
- package/dist/ffi.d.ts.map +0 -1
- package/dist/ffi.js +0 -1154
- package/dist/ffi.js.map +0 -1
- package/dist/format.d.ts +0 -128
- package/dist/format.d.ts.map +0 -1
- package/dist/format.js +0 -132
- package/dist/format.js.map +0 -1
- package/dist/numeric.d.ts +0 -20
- package/dist/numeric.d.ts.map +0 -1
- package/dist/numeric.js +0 -107
- package/dist/numeric.js.map +0 -1
- package/dist/paths.d.ts +0 -55
- package/dist/paths.d.ts.map +0 -1
- package/dist/paths.js +0 -87
- package/dist/paths.js.map +0 -1
- package/dist/results.d.ts +0 -495
- package/dist/results.d.ts.map +0 -1
- package/dist/results.js +0 -406
- package/dist/results.js.map +0 -1
- package/dist/transform.d.ts +0 -73
- package/dist/transform.d.ts.map +0 -1
- package/dist/transform.js +0 -533
- package/dist/transform.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,99 +1,126 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* `chtypes
|
|
4
|
-
* spelled identically in all four:
|
|
3
|
+
* `chtypes`: the one CLI every SDK carries, over the v1 fetch layer
|
|
4
|
+
* (`docs/guides/fetch-v1.md`), spelled identically in all four:
|
|
5
5
|
*
|
|
6
|
-
* chtypes fetch <
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* chtypes
|
|
10
|
-
* chtypes list [--dest <dir>] what is installed, and what the release offers
|
|
11
|
-
* chtypes where the registry directory fetch would write to
|
|
6
|
+
* chtypes fetch <version>... | --all [--frozen] [--offline] [--lock <file>] [--update]
|
|
7
|
+
* chtypes verify re-hash every installed library against its verified record
|
|
8
|
+
* chtypes list what is installed, and the versions the registry publishes
|
|
9
|
+
* chtypes where the v1 cache root
|
|
12
10
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
11
|
+
* Options per cli-common: `fetch` takes `--platform`, `--cache`, `--lock`, `--frozen`,
|
|
12
|
+
* `--offline`, `--update`; `verify`, `list` and `where` take `--cache` (`list` also
|
|
13
|
+
* `--offline`); `-h/--help` anywhere, `--version` at top level. The registry base
|
|
14
|
+
* comes only from `CHTYPES_ARTIFACTS_URL`.
|
|
16
15
|
*
|
|
17
|
-
*
|
|
16
|
+
* Exit statuses: 0 ok, 2 usage, and for every fetch error the status the
|
|
17
|
+
* `errors` table of `spec/fetch-v1/constants.json` gives its code (generated
|
|
18
|
+
* into `ERROR_EXIT_CODES`; no number is repeated here). A failed `verify` exits
|
|
19
|
+
* with `CHTYPES_ARTIFACT_CORRUPT`'s. Progress goes to stderr; `fetch` prints one
|
|
20
|
+
* installed directory per request on stdout alone, so it composes:
|
|
18
21
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
22
|
+
* dir="$(npx @wavehouse/chtypes fetch 26.8)"
|
|
23
|
+
*
|
|
24
|
+
* `runCli` is exported so the suite can drive the command in-process; the file
|
|
25
|
+
* runs `main` only when it is the process's entry point (the `bin`).
|
|
21
26
|
*/
|
|
22
|
-
import { realpathSync
|
|
27
|
+
import { realpathSync } from 'node:fs';
|
|
23
28
|
import { createRequire } from 'node:module';
|
|
24
|
-
import
|
|
29
|
+
import os from 'node:os';
|
|
25
30
|
import { fileURLToPath } from 'node:url';
|
|
26
31
|
import { parseArgs } from 'node:util';
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
};
|
|
32
|
+
import { isChtypesError, UsageError } from './abi1/index.js';
|
|
33
|
+
import { withEnvironment } from './env.js';
|
|
34
|
+
import { ERROR_EXIT_CODES } from './ocifetch/constants.gen.js';
|
|
35
|
+
import { ArtifactUnpublishedError, cacheRoot, ensure, FetchV1Error, hostPlatformKey, isPlatformKey, listInstalled, listTags, verifyInstalled, } from './ocifetch/index.js';
|
|
36
|
+
/** The exit status of a usage error: the one status the error table does not own. */
|
|
37
|
+
export const EXIT_USAGE = 2;
|
|
38
|
+
/** Success. */
|
|
39
|
+
export const EXIT_OK = 0;
|
|
40
|
+
/** An error that is neither a fetch error nor a usage error. */
|
|
41
|
+
const EXIT_OTHER = 1;
|
|
38
42
|
const USAGE = `usage: chtypes <command> [options]
|
|
39
43
|
|
|
40
|
-
chtypes fetch <
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
chtypes
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
chtypes fetch <version>... | --all [--frozen] [--offline] [--lock <file>] [--update]
|
|
45
|
+
chtypes verify
|
|
46
|
+
chtypes list
|
|
47
|
+
chtypes where
|
|
48
|
+
|
|
49
|
+
<version> a ClickHouse version: 26.8, 26.8.15 or 26.8.15.10 (no "v", no channel suffix)
|
|
50
|
+
--all every line (two-part version) the registry publishes for the platform
|
|
51
|
+
--frozen fetch exactly what the lock file pins, by digest; refuse anything it does not (default lock: chtypes.lock)
|
|
52
|
+
--offline never touch the network: an installed, verified build is fine, anything else fails
|
|
53
|
+
--lock record what was installed into this lock file
|
|
54
|
+
--update re-resolve every request the lock holds and rewrite it (requires --lock; not with --frozen or --offline)
|
|
55
|
+
--platform <os>-<arch>: linux-amd64, linux-arm64 or darwin-arm64 (default: this host, or CHTYPES_TARGET)
|
|
56
|
+
--cache the cache root (default: CHTYPES_CACHE, else \${XDG_CACHE_HOME:-~/.cache}/chtypes/v1)
|
|
57
|
+
-h, --help this text; --version "chtypes <version>"
|
|
46
58
|
|
|
47
|
-
|
|
48
|
-
--all every line the release publishes for the platform at this SDK's ABI revision
|
|
49
|
-
--platform <os>-<arch> (linux|darwin)-(arm64|amd64); default: this host
|
|
50
|
-
--dest the registry directory; default: CHTYPES_REGISTRY, else the per-user cache,
|
|
51
|
-
\${XDG_CACHE_HOME:-~/.cache}/chtypes/artifacts/abi<R>/<os>-<arch> (R: this SDK's ABI revision)
|
|
52
|
-
--tag a release tag on the artifacts host (default: the rolling "artifacts")
|
|
53
|
-
--url any other base: https://…, file://…, or a directory
|
|
54
|
-
--lock record what was installed into this lock file (default with --frozen: chtypes.lock)
|
|
55
|
-
--frozen refuse anything the lock file does not pin
|
|
56
|
-
--force re-download an installed line
|
|
57
|
-
--offline never touch the source: installed-and-verified is fine, anything else fails
|
|
58
|
-
-q, --quiet no progress on stderr
|
|
59
|
-
-h, --help this text; -V, --version the package version
|
|
59
|
+
the registry base comes only from CHTYPES_ARTIFACTS_URL (default: the public registry)
|
|
60
60
|
|
|
61
|
-
exit
|
|
62
|
-
environment: CHTYPES_ARTIFACTS_URL,
|
|
63
|
-
|
|
61
|
+
exit status: 0 ok, 2 usage; a fetch error exits with its code's status in spec/fetch-v1/constants.json
|
|
62
|
+
environment: CHTYPES_ARTIFACTS_URL, CHTYPES_CACHE, CHTYPES_DOWNLOAD_TOKEN, CHTYPES_TRUSTED_KEYS,
|
|
63
|
+
CHTYPES_ALLOW_UNSIGNED, CHTYPES_TARGET
|
|
64
64
|
`;
|
|
65
65
|
const defaultIo = {
|
|
66
66
|
stdout: (text) => process.stdout.write(text),
|
|
67
67
|
stderr: (text) => process.stderr.write(text),
|
|
68
|
-
tty: process.stderr.isTTY === true,
|
|
69
68
|
};
|
|
69
|
+
const CONFIG = {
|
|
70
|
+
allowPositionals: true,
|
|
71
|
+
strict: true,
|
|
72
|
+
options: {
|
|
73
|
+
all: { type: 'boolean' },
|
|
74
|
+
frozen: { type: 'boolean' },
|
|
75
|
+
offline: { type: 'boolean' },
|
|
76
|
+
update: { type: 'boolean' },
|
|
77
|
+
lock: { type: 'string' },
|
|
78
|
+
platform: { type: 'string' },
|
|
79
|
+
cache: { type: 'string' },
|
|
80
|
+
help: { type: 'boolean', short: 'h' },
|
|
81
|
+
version: { type: 'boolean' },
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
/** A command-line mistake: exits with the usage status. */
|
|
85
|
+
class CliUsageError extends Error {
|
|
86
|
+
}
|
|
70
87
|
/**
|
|
71
88
|
* Run the command with `argv` (the arguments after the program name) and
|
|
72
|
-
* return its exit
|
|
73
|
-
*
|
|
89
|
+
* return its exit status. Never throws for a user-facing failure: every error
|
|
90
|
+
* is printed to stderr and mapped to its status.
|
|
74
91
|
*/
|
|
75
92
|
export async function runCli(argv, io = defaultIo) {
|
|
93
|
+
// -h and --help print the usage to stdout and exit 0 wherever they appear.
|
|
94
|
+
const dashDash = argv.indexOf('--');
|
|
95
|
+
if ((dashDash < 0 ? argv : argv.slice(0, dashDash)).some((a) => a === '-h' || a === '--help')) {
|
|
96
|
+
io.stdout(USAGE);
|
|
97
|
+
return EXIT_OK;
|
|
98
|
+
}
|
|
76
99
|
let parsed;
|
|
77
100
|
try {
|
|
78
101
|
parsed = parseArgs({ ...CONFIG, args: [...argv] });
|
|
79
102
|
}
|
|
80
103
|
catch (err) {
|
|
81
104
|
io.stderr(`chtypes: ${err instanceof Error ? err.message : String(err)}\n${USAGE}`);
|
|
82
|
-
return
|
|
105
|
+
return EXIT_USAGE;
|
|
83
106
|
}
|
|
84
107
|
const { values, positionals } = parsed;
|
|
85
108
|
if (values.help) {
|
|
86
109
|
io.stdout(USAGE);
|
|
87
|
-
return
|
|
110
|
+
return EXIT_OK;
|
|
88
111
|
}
|
|
89
112
|
if (values.version) {
|
|
90
|
-
|
|
91
|
-
|
|
113
|
+
if (argv[0] !== '--version') {
|
|
114
|
+
io.stderr(`chtypes: --version is a top-level flag\n${USAGE}`);
|
|
115
|
+
return EXIT_USAGE;
|
|
116
|
+
}
|
|
117
|
+
io.stdout(`chtypes ${packageVersion()}\n`);
|
|
118
|
+
return EXIT_OK;
|
|
92
119
|
}
|
|
93
120
|
const [command, ...rest] = positionals;
|
|
94
121
|
if (command === undefined) {
|
|
95
122
|
io.stderr(USAGE);
|
|
96
|
-
return
|
|
123
|
+
return EXIT_USAGE;
|
|
97
124
|
}
|
|
98
125
|
try {
|
|
99
126
|
switch (command) {
|
|
@@ -106,204 +133,165 @@ export async function runCli(argv, io = defaultIo) {
|
|
|
106
133
|
case 'where':
|
|
107
134
|
return cmdWhere(rest, values, io);
|
|
108
135
|
default:
|
|
109
|
-
|
|
110
|
-
return EXIT.usage;
|
|
136
|
+
throw new CliUsageError(`unknown command ${JSON.stringify(command)}`);
|
|
111
137
|
}
|
|
112
138
|
}
|
|
113
139
|
catch (err) {
|
|
114
140
|
return report(err, io);
|
|
115
141
|
}
|
|
116
142
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
platform: { type: 'string' },
|
|
123
|
-
dest: { type: 'string' },
|
|
124
|
-
tag: { type: 'string' },
|
|
125
|
-
url: { type: 'string' },
|
|
126
|
-
lock: { type: 'string' },
|
|
127
|
-
frozen: { type: 'boolean' },
|
|
128
|
-
force: { type: 'boolean' },
|
|
129
|
-
offline: { type: 'boolean' },
|
|
130
|
-
quiet: { type: 'boolean', short: 'q' },
|
|
131
|
-
help: { type: 'boolean', short: 'h' },
|
|
132
|
-
version: { type: 'boolean', short: 'V' },
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
function ensureOptions(values, io) {
|
|
136
|
-
if (values.url !== undefined && values.tag !== undefined) {
|
|
137
|
-
throw new ChtypesError('chtypes: --url names a full base; --tag selects a release on the artifacts host — pass one');
|
|
143
|
+
function fetchOptions(values, forFetch) {
|
|
144
|
+
if (!forFetch && values.platform !== undefined)
|
|
145
|
+
throw new CliUsageError('--platform applies to fetch only');
|
|
146
|
+
if (values.platform !== undefined && !isPlatformKey(values.platform)) {
|
|
147
|
+
throw new CliUsageError(`--platform ${JSON.stringify(values.platform)} is not a platform: use linux-amd64, linux-arm64 or darwin-arm64`);
|
|
138
148
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
if (values.frozen && values.update)
|
|
150
|
+
throw new CliUsageError('--frozen and --update contradict: one reads the lock, the other rewrites it');
|
|
151
|
+
if (values.update && values.offline)
|
|
152
|
+
throw new CliUsageError('--update and --offline contradict: an update must reach the registry');
|
|
153
|
+
if (values.update && values.lock === undefined)
|
|
154
|
+
throw new CliUsageError('--update requires --lock <file>');
|
|
155
|
+
const lockPath = values.lock;
|
|
156
|
+
return withEnvironment({
|
|
157
|
+
...(values.cache !== undefined ? { cacheDir: values.cache } : {}),
|
|
158
|
+
...(values.platform !== undefined ? { platform: values.platform } : {}),
|
|
159
|
+
...(lockPath !== undefined ? { lockPath } : {}),
|
|
160
|
+
...(forFetch
|
|
161
|
+
? {
|
|
162
|
+
offline: values.offline === true,
|
|
163
|
+
frozen: values.frozen === true,
|
|
164
|
+
update: values.update === true,
|
|
165
|
+
lockWrite: lockPath !== undefined && values.frozen !== true && values.update !== true,
|
|
166
|
+
}
|
|
167
|
+
: {}),
|
|
168
|
+
});
|
|
151
169
|
}
|
|
152
|
-
|
|
153
|
-
|
|
170
|
+
function say(io, _values, message) {
|
|
171
|
+
io.stderr(`==> ${message}\n`);
|
|
172
|
+
}
|
|
173
|
+
async function cmdFetch(requests, values, io) {
|
|
174
|
+
const options = fetchOptions(values, true);
|
|
175
|
+
let todo = requests;
|
|
154
176
|
if (values.all) {
|
|
155
|
-
if (
|
|
156
|
-
throw new
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
177
|
+
if (requests.length > 0)
|
|
178
|
+
throw new CliUsageError(`--all fetches every published line; drop the version argument (${requests.join(', ')})`);
|
|
179
|
+
if (values.frozen)
|
|
180
|
+
throw new CliUsageError('--all and --frozen contradict: a frozen fetch makes no discovery, so it fetches only what you name');
|
|
181
|
+
todo = await allLines(options);
|
|
182
|
+
if (todo.length === 0)
|
|
183
|
+
throw new ArtifactUnpublishedError('chtypes: the registry publishes no line to fetch');
|
|
184
|
+
}
|
|
185
|
+
else if (requests.length === 0) {
|
|
186
|
+
throw new CliUsageError('a version is required (or --all)');
|
|
187
|
+
}
|
|
188
|
+
let installed = 0;
|
|
189
|
+
let skipped = 0;
|
|
190
|
+
for (const request of todo) {
|
|
191
|
+
try {
|
|
192
|
+
say(io, values, request);
|
|
193
|
+
const r = await ensure(request, options);
|
|
162
194
|
io.stdout(`${r.dir}\n`);
|
|
163
|
-
|
|
164
|
-
|
|
195
|
+
for (const w of r.warnings)
|
|
196
|
+
io.stderr(`chtypes: warning: ${w}\n`);
|
|
197
|
+
installed += 1;
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
// `--all` walks every line; a line this platform has no build for is a note, not a failure.
|
|
201
|
+
if (values.all && err instanceof ArtifactUnpublishedError) {
|
|
202
|
+
say(io, values, `${request}: no build for this platform (${err.message})`);
|
|
203
|
+
skipped += 1;
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
throw err;
|
|
207
|
+
}
|
|
165
208
|
}
|
|
166
|
-
if (
|
|
167
|
-
|
|
168
|
-
|
|
209
|
+
if (values.all) {
|
|
210
|
+
if (installed === 0)
|
|
211
|
+
throw new ArtifactUnpublishedError('chtypes: no published line has a build for this platform');
|
|
212
|
+
say(io, values, `${installed} line(s) installed, ${skipped} without a build for this platform`);
|
|
169
213
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
214
|
+
return EXIT_OK;
|
|
215
|
+
}
|
|
216
|
+
/** Every line: the two-part spellings the registry publishes (or, offline, the lines already installed for the platform). */
|
|
217
|
+
async function allLines(options) {
|
|
218
|
+
if (options.offline === true) {
|
|
219
|
+
const platform = options.platform ?? hostPlatformKey(os.platform(), os.arch());
|
|
220
|
+
const lines = new Set();
|
|
221
|
+
for (const r of await listInstalled(options))
|
|
222
|
+
if (r.platform === platform)
|
|
223
|
+
lines.add(r.predicate.clickhouse_minor);
|
|
224
|
+
return [...lines];
|
|
173
225
|
}
|
|
174
|
-
return
|
|
226
|
+
return (await listTags(options)).filter((t) => t.split('.').length === 2);
|
|
175
227
|
}
|
|
176
228
|
async function cmdVerify(rest, values, io) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
say(io, `nothing installed in ${dir}`);
|
|
184
|
-
return EXIT.ok;
|
|
185
|
-
}
|
|
229
|
+
noArguments('verify', rest);
|
|
230
|
+
const options = fetchOptions(values, false);
|
|
231
|
+
const root = cacheRoot(options.cacheDir);
|
|
232
|
+
const results = await verifyInstalled(options);
|
|
233
|
+
if (results.length === 0)
|
|
234
|
+
return EXIT_OK;
|
|
186
235
|
let bad = 0;
|
|
187
236
|
for (const r of results) {
|
|
188
|
-
if (r.ok)
|
|
189
|
-
io.stdout(`ok ${r.line.padEnd(6)} ${r.version.padEnd(18)} ${r.library} sha256 ${r.actual}\n`);
|
|
190
|
-
else {
|
|
237
|
+
if (!r.ok) {
|
|
191
238
|
bad += 1;
|
|
192
|
-
io.
|
|
239
|
+
io.stderr(`BAD ${r.platform} ${r.dir} ${r.detail}\n`);
|
|
193
240
|
}
|
|
194
241
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
return bad === 0 ?
|
|
242
|
+
if (bad > 0)
|
|
243
|
+
io.stderr(`${bad} of ${results.length} build(s) FAILED verification in ${root}\n`);
|
|
244
|
+
return bad === 0 ? EXIT_OK : (ERROR_EXIT_CODES['CHTYPES_ARTIFACT_CORRUPT'] ?? EXIT_OTHER);
|
|
198
245
|
}
|
|
199
246
|
async function cmdList(rest, values, io) {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
if (
|
|
206
|
-
|
|
207
|
-
for (const
|
|
208
|
-
io.stdout(`
|
|
209
|
-
|
|
210
|
-
if (listing.offered !== null) {
|
|
211
|
-
const have = new Set(listing.installed.filter((a) => a.ok).map((a) => a.version));
|
|
212
|
-
io.stdout(`release ${listing.source} offers for ${listing.platform}:\n`);
|
|
213
|
-
if (listing.offered.length === 0)
|
|
214
|
-
io.stdout(' (nothing)\n');
|
|
215
|
-
for (const a of listing.offered) {
|
|
216
|
-
io.stdout(` ${a.clickhouse_minor.padEnd(6)} ${a.clickhouse_version.padEnd(18)} b${String(a.build).padEnd(3)} ${a.file} ${a.bytes} bytes${have.has(a.clickhouse_version) ? ' (installed)' : ''}\n`);
|
|
217
|
-
}
|
|
218
|
-
// Only this SDK's own ABI revision is offered (docs/guides/fetch.md §2), and
|
|
219
|
-
// one line names what that hid.
|
|
220
|
-
if (listing.notShown !== undefined)
|
|
221
|
-
io.stdout(` ${listing.notShown}\n`);
|
|
222
|
-
}
|
|
223
|
-
return EXIT.ok;
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* The served golden set sits beside the artifacts, so "where is my registry" and
|
|
227
|
-
* "is my registry sound" are both moments someone wants to know whether it is
|
|
228
|
-
* there — a missing one is why the golden tests skip.
|
|
229
|
-
*/
|
|
230
|
-
function goldensLine(dir, io) {
|
|
231
|
-
const g = path.join(dir, 'sdk-goldens.json');
|
|
232
|
-
let size = null;
|
|
233
|
-
try {
|
|
234
|
-
size = statSync(g).size;
|
|
235
|
-
}
|
|
236
|
-
catch {
|
|
237
|
-
size = null;
|
|
238
|
-
}
|
|
239
|
-
io.stdout(size === null ? `${g} (golden set: not fetched — the golden tests will skip)\n` : `${g} (golden set, ${size} bytes)\n`);
|
|
247
|
+
noArguments('list', rest);
|
|
248
|
+
const options = fetchOptions(values, false);
|
|
249
|
+
const installed = await listInstalled(options);
|
|
250
|
+
for (const r of installed)
|
|
251
|
+
io.stdout(`installed ${r.version} ${r.platform} ${r.dir}\n`);
|
|
252
|
+
if (values.offline)
|
|
253
|
+
return EXIT_OK;
|
|
254
|
+
for (const t of await listTags(options))
|
|
255
|
+
io.stdout(`published ${t} support unknown\n`);
|
|
256
|
+
return EXIT_OK;
|
|
240
257
|
}
|
|
241
258
|
function cmdWhere(rest, values, io) {
|
|
259
|
+
noArguments('where', rest);
|
|
260
|
+
io.stdout(`${cacheRoot(fetchOptions(values, false).cacheDir)}\n`);
|
|
261
|
+
return EXIT_OK;
|
|
262
|
+
}
|
|
263
|
+
function noArguments(command, rest) {
|
|
242
264
|
if (rest.length > 0)
|
|
243
|
-
throw new
|
|
244
|
-
const dir = fetchDestination(values.dest, resolvePlatform(values.platform));
|
|
245
|
-
io.stdout(`${dir}\n`);
|
|
246
|
-
goldensLine(dir, io);
|
|
247
|
-
return EXIT.ok;
|
|
265
|
+
throw new CliUsageError(`${command} takes no positional arguments (${rest.join(', ')})`);
|
|
248
266
|
}
|
|
249
|
-
/**
|
|
267
|
+
/** Print an error and return its exit status. */
|
|
250
268
|
function report(err, io) {
|
|
251
|
-
if (err instanceof
|
|
269
|
+
if (err instanceof CliUsageError) {
|
|
270
|
+
io.stderr(`chtypes: ${err.message}\n${USAGE}`);
|
|
271
|
+
return EXIT_USAGE;
|
|
272
|
+
}
|
|
273
|
+
if (err instanceof FetchV1Error) {
|
|
252
274
|
io.stderr(`${err.message} [${err.code}]\n`);
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
return
|
|
275
|
+
return err.exitStatus;
|
|
276
|
+
}
|
|
277
|
+
if (err instanceof UsageError) {
|
|
278
|
+
io.stderr(`${err.message}\n`);
|
|
279
|
+
return EXIT_USAGE;
|
|
258
280
|
}
|
|
259
|
-
if (err
|
|
281
|
+
if (isChtypesError(err)) {
|
|
260
282
|
io.stderr(`${err.message}\n`);
|
|
261
|
-
return
|
|
283
|
+
return EXIT_OTHER;
|
|
262
284
|
}
|
|
263
285
|
io.stderr(`chtypes: ${err instanceof Error ? (err.stack ?? err.message) : String(err)}\n`);
|
|
264
|
-
return
|
|
265
|
-
}
|
|
266
|
-
function say(io, message) {
|
|
267
|
-
io.stderr(io.tty ? `[1m==> ${message}[0m\n` : `==> ${message}\n`);
|
|
268
|
-
}
|
|
269
|
-
/** Status lines as `==> …`; download progress redrawn in place on a terminal, at 10 % steps otherwise. */
|
|
270
|
-
function progressPrinter(io) {
|
|
271
|
-
let lastStep = -1;
|
|
272
|
-
let drawing = false;
|
|
273
|
-
return (event) => {
|
|
274
|
-
if (event.type === 'status') {
|
|
275
|
-
if (drawing) {
|
|
276
|
-
io.stderr('\n');
|
|
277
|
-
drawing = false;
|
|
278
|
-
}
|
|
279
|
-
say(io, event.message);
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
const pct = event.total > 0 ? Math.min(100, Math.floor((event.received * 100) / event.total)) : 0;
|
|
283
|
-
const mb = (n) => (n / 1e6).toFixed(1);
|
|
284
|
-
if (io.tty) {
|
|
285
|
-
io.stderr(`\r ${event.file} ${mb(event.received)} / ${mb(event.total)} MB ${pct}%`);
|
|
286
|
-
drawing = true;
|
|
287
|
-
if (event.received >= event.total) {
|
|
288
|
-
io.stderr('\n');
|
|
289
|
-
drawing = false;
|
|
290
|
-
}
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
const step = Math.floor(pct / 10);
|
|
294
|
-
if (step !== lastStep) {
|
|
295
|
-
lastStep = step;
|
|
296
|
-
io.stderr(` ${event.file} ${mb(event.received)} / ${mb(event.total)} MB ${pct}%\n`);
|
|
297
|
-
}
|
|
298
|
-
};
|
|
286
|
+
return EXIT_OTHER;
|
|
299
287
|
}
|
|
300
288
|
function packageVersion() {
|
|
301
289
|
try {
|
|
302
290
|
const pkg = createRequire(import.meta.url)('../package.json');
|
|
303
|
-
return pkg.version ?? '0.0.0';
|
|
291
|
+
return pkg.version ?? '0.0.0-dev';
|
|
304
292
|
}
|
|
305
293
|
catch {
|
|
306
|
-
return '0.0.0';
|
|
294
|
+
return '0.0.0-dev';
|
|
307
295
|
}
|
|
308
296
|
}
|
|
309
297
|
function invokedDirectly() {
|
|
@@ -322,7 +310,7 @@ if (invokedDirectly()) {
|
|
|
322
310
|
process.exitCode = code;
|
|
323
311
|
}, (err) => {
|
|
324
312
|
process.stderr.write(`chtypes: ${err instanceof Error ? (err.stack ?? err.message) : String(err)}\n`);
|
|
325
|
-
process.exitCode =
|
|
313
|
+
process.exitCode = EXIT_OTHER;
|
|
326
314
|
});
|
|
327
315
|
}
|
|
328
316
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|