@wavehouse/chtypes 0.5.2 → 1.0.2
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 +34 -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 +101 -0
- package/dist/abi1/loader.d.ts.map +1 -0
- package/dist/abi1/loader.js +274 -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 +95 -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 +46 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +79 -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/library.js
CHANGED
|
@@ -1,339 +1,101 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* `Library`: one loaded image (`docs/reference/bindings-v1.md` §2, "The
|
|
3
|
+
* library"). Every method is one ABI call over the generated, typed layer,
|
|
4
|
+
* decoded without computing anything. There is no `close`: an image is never
|
|
5
|
+
* unloaded, so nothing is owed. TypeScript runs one isolate, so every method
|
|
6
|
+
* is trivially safe to call in any order.
|
|
4
7
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { schemaErrorFor } from './errors.js';
|
|
8
|
+
import { openUnverified as loadUnverified } from './abi1/index.js';
|
|
9
|
+
import { decodeDiscovery, decodeErrorCodes, decodeLiveHandles, } from './documents.js';
|
|
8
10
|
import { Schema } from './schema.js';
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
* The minor line: the first two dot-separated components of the reported
|
|
12
|
-
* version. `25.10` is a *later* minor than `25.8`, so string comparison of minor
|
|
13
|
-
* lines is meaningless and must not be used for ordering.
|
|
14
|
-
*
|
|
15
|
-
* @param version - an exact patch (`"25.8.28.1-lts"`) or already a minor line.
|
|
16
|
-
* @returns the minor line (`"25.8"`); a string with fewer than two components
|
|
17
|
-
* is returned unchanged. Never throws.
|
|
18
|
-
*/
|
|
19
|
-
export function minorOf(version) {
|
|
20
|
-
const parts = version.split('.');
|
|
21
|
-
if (parts.length < 2)
|
|
22
|
-
return version;
|
|
23
|
-
return `${parts[0]}.${parts[1]}`;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* The compile MODE — how the profile handed to `compileDdl` relates to the
|
|
27
|
-
* settings this build compiles under. Numeric values are part of the C ABI
|
|
28
|
-
* (bindings pass an int), exactly like `Format`.
|
|
29
|
-
*/
|
|
30
|
-
export const CompileMode = {
|
|
31
|
-
/**
|
|
32
|
-
* The only defined mode: every setting the profile names takes the
|
|
33
|
-
* caller's value, every setting it does not name keeps the library's own
|
|
34
|
-
* permissive compile base. A partial profile can admit a schema the server
|
|
35
|
-
* might refuse, but can never fabricate a rejection. Any other value is
|
|
36
|
-
* refused loudly (an `UnsupportedError`), reserved for a future
|
|
37
|
-
* COMPLETE-profile mode.
|
|
38
|
-
*/
|
|
39
|
-
Declared: 0,
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* One loaded ClickHouse build — the entry point for compiling schemas and
|
|
43
|
-
* canonicalizing types under that release's exact semantics. Obtained from
|
|
44
|
-
* `Registry#for`; never constructed directly.
|
|
45
|
-
*
|
|
46
|
-
* Thread-safety: every call here is synchronous on the JS thread, so ordinary
|
|
47
|
-
* single-threaded Node code needs no locking. `setDefaultSettings` and
|
|
48
|
-
* `shutdown` mutate per-library process state and refuse loudly if called from
|
|
49
|
-
* inside another chtypes call (a reentrancy guard, not a lock). Two
|
|
50
|
-
* `worker_threads` share one dlopen'd image and one set of C globals, which no
|
|
51
|
-
* per-isolate guard can see — seed settings before starting workers, or
|
|
52
|
-
* serialize the seed yourself (docs/reference/bindings.md §Concurrency).
|
|
53
|
-
*/
|
|
11
|
+
import { commitSetup, settleSetup } from './setup.js';
|
|
12
|
+
import { bytesIn, encodeSettings } from './settings.js';
|
|
54
13
|
export class Library {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
/** The
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
* or 0 — a different nonzero revision is refused at load (the C ABI contract
|
|
66
|
-
* §ABI identity).
|
|
67
|
-
*/
|
|
68
|
-
abiRevision;
|
|
69
|
-
/**
|
|
70
|
-
* This library's own error-code table, once built (see `errorCodes`). Per
|
|
71
|
-
* Library and never shared: the table is a property of the build.
|
|
72
|
-
*/
|
|
73
|
-
errorCodeCache = new ErrorCodeCache();
|
|
74
|
-
/** @internal — obtained from a `Registry`. */
|
|
75
|
-
constructor(native) {
|
|
76
|
-
this.native = native;
|
|
77
|
-
this.version = native.version;
|
|
78
|
-
this.minor = minorOf(native.version);
|
|
79
|
-
this.path = native.path;
|
|
80
|
-
this.abiRevision = native.abiRevision;
|
|
14
|
+
#image;
|
|
15
|
+
#calls;
|
|
16
|
+
#errorCodes;
|
|
17
|
+
/** The fetch record this library was opened by; undefined when opened unverified. */
|
|
18
|
+
resolved;
|
|
19
|
+
/** Not for callers: use `Registry.for` or `openUnverified`. */
|
|
20
|
+
constructor(image, resolved) {
|
|
21
|
+
this.#image = image;
|
|
22
|
+
this.#calls = image.calls;
|
|
23
|
+
this.resolved = resolved;
|
|
81
24
|
}
|
|
82
|
-
/**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
* verbatim and never normalize its whitespace.
|
|
86
|
-
*
|
|
87
|
-
* Note that this alone is insufficient for a schema — `x Int64 DEFAULT NULL`
|
|
88
|
-
* canonicalizes the *column* to `Nullable(Int64)`, which only `compileDdl` sees.
|
|
89
|
-
*
|
|
90
|
-
* @param typeExpr - a ClickHouse type expression, e.g. `"Nullable(Decimal(18,4))"`.
|
|
91
|
-
* @returns the canonical spelling, e.g. `"Nullable(Decimal(18, 4))"`.
|
|
92
|
-
* @throws {SchemaError} when ClickHouse itself refuses the expression —
|
|
93
|
-
* `code` is its own code (`50` `Unknown data type family` for a typo) and
|
|
94
|
-
* the message its own text.
|
|
95
|
-
* @throws {UnsupportedError} when this build declines to construct the type
|
|
96
|
-
* (an unsafe family), or the artifact predates `chs_validate_type`.
|
|
97
|
-
*/
|
|
98
|
-
validateType(typeExpr) {
|
|
99
|
-
const r = this.native.validateType(typeExpr);
|
|
100
|
-
if (!r.ok)
|
|
101
|
-
throw schemaErrorFor(r.code, r.message);
|
|
102
|
-
return r.canonical;
|
|
25
|
+
/** What the library is, read once by the loader. */
|
|
26
|
+
get buildInfo() {
|
|
27
|
+
return this.#image.buildInfo;
|
|
103
28
|
}
|
|
104
|
-
/**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
* It is parsed by ClickHouse's own `ParserColumnDeclarationList`, so DEFAULT
|
|
108
|
-
* expressions are validated as real SQL. Column-level TTL clauses belong here.
|
|
109
|
-
*
|
|
110
|
-
* With `options.settings` the schema is compiled under that DECLARED profile,
|
|
111
|
-
* exactly as a real CREATE TABLE under those settings: `{ flatten_nested: '0' }`
|
|
112
|
-
* keeps `n Nested(a,b)` ONE column `n` of type `Nested(…)` where the default
|
|
113
|
-
* flattens it to the `n.a`/`n.b` Array columns, and every downstream shape —
|
|
114
|
-
* `columns`, JSONEachRow name lookup, positional arity, the RowBinary wire —
|
|
115
|
-
* follows the compiled shape. The profile is compile-time only and immutable
|
|
116
|
-
* for the schema's life; per-call settings still govern row parsing, and only
|
|
117
|
-
* row parsing.
|
|
118
|
-
*
|
|
119
|
-
* Absent/empty settings are structurally the plain compile: `chs_schema_compile`
|
|
120
|
-
* takes settings "{}" and `mode` `CompileMode.Declared` (0) either way. An
|
|
121
|
-
* unknown setting name fails the compile with the server's own code 115.
|
|
122
|
-
*
|
|
123
|
-
* @param ddl - a column-declaration list, e.g. `"x UInt8, s String DEFAULT 'x'"`.
|
|
124
|
-
* @param options - the declared settings profile and compile mode.
|
|
125
|
-
* @returns the compiled `Schema`. Release it with `close()` (or `using`).
|
|
126
|
-
* @throws {SchemaError} when the compile is REFUSED with a positive code: a
|
|
127
|
-
* bad type or DEFAULT carries ClickHouse's own code and message; an
|
|
128
|
-
* unknown setting name in `options.settings` carries the server's own 115
|
|
129
|
-
* (with its did-you-mean hint), and nothing is compiled; a type gate
|
|
130
|
-
* declared at a refusing value fails with the server's own 455/44, exactly
|
|
131
|
-
* as that server's CREATE; an Enum DEFAULT outside the declared domain
|
|
132
|
-
* follows that server's CREATE too — 691 (or 70 for an out-of-range
|
|
133
|
-
* literal) where it refuses the table (26.x); on 24.8–25.10 it compiles,
|
|
134
|
-
* and a row relying on the default answers `accepted_poisoned`.
|
|
135
|
-
* @throws {UnsupportedError} when this build DECLINES rather than guesses —
|
|
136
|
-
* a `mode` other than `CompileMode.Declared`, or a DEFAULT it refuses to
|
|
137
|
-
* evaluate (server-property functions like `hostName()`, `sleep`, an
|
|
138
|
-
* admission-budget overrun). Validate cautiously; do not blame the tenant.
|
|
139
|
-
*/
|
|
140
|
-
compileDdl(ddl, options) {
|
|
141
|
-
const settingsJson = encodeSettings(options?.settings);
|
|
142
|
-
const mode = options?.mode ?? CompileMode.Declared;
|
|
143
|
-
return new Schema(this.native, this.native.schemaCompile(ddl, settingsJson, mode), ddl);
|
|
29
|
+
/** `clickhouse_version` from the build info, read rather than derived: four parts, no channel. */
|
|
30
|
+
get version() {
|
|
31
|
+
return this.#image.buildInfo.clickhouseVersion;
|
|
144
32
|
}
|
|
145
|
-
/**
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
* symbol is one of the mandatory four. Kept for a `Registry` that may
|
|
149
|
-
* someday load a third-party-built artifact that lacks it, in which case
|
|
150
|
-
* `compileDdl` with a non-empty `settings` and `setEngine` with non-empty
|
|
151
|
-
* `mergeTreeSettings` throw an `UnsupportedError` instead of
|
|
152
|
-
* crashing.
|
|
153
|
-
*/
|
|
154
|
-
hasCompileSettings() {
|
|
155
|
-
return this.native.hasCompileSettings();
|
|
33
|
+
/** `clickhouse_minor` from the build info, read rather than derived. */
|
|
34
|
+
get minor() {
|
|
35
|
+
return this.#image.buildInfo.clickhouseMinor;
|
|
156
36
|
}
|
|
157
|
-
/**
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
* `allow_experimental_json_type`, …); those are properties of the server the
|
|
161
|
-
* table lives on, not of the row, so a gateway sets them once here. Anything a
|
|
162
|
-
* per-call settings map sets still wins.
|
|
163
|
-
*
|
|
164
|
-
* Prefer `compileDdl(ddl, { settings })` for a gate that belongs to a
|
|
165
|
-
* particular tenant's table: a gate declared in the compile profile binds
|
|
166
|
-
* where a real server binds it — once, at CREATE — and then outranks the
|
|
167
|
-
* per-call map for that handle (measured on live 25.10.7.6 and 26.7.3.19;
|
|
168
|
-
* the C ABI contract, "Server-level type gates"). This process-wide seed stays the
|
|
169
|
-
* right channel only for gateway-uniform policy.
|
|
170
|
-
*
|
|
171
|
-
* @param settings - the seed. An unknown name refuses the WHOLE payload with
|
|
172
|
-
* the server's own 115 and nothing is committed — a gateway can never
|
|
173
|
-
* believe a default profile is in force when part of it never applied.
|
|
174
|
-
* @throws {ChtypesError} when the payload is refused (the message carries
|
|
175
|
-
* the server's own text, did-you-mean hint included), when a value is a JS
|
|
176
|
-
* `number`, or when called from inside another chtypes call — it replaces
|
|
177
|
-
* process-global state the row path reads by reference, so it must never
|
|
178
|
-
* overlap another call on this library. In a `worker_threads` setup, seed
|
|
179
|
-
* BEFORE starting workers; the guard cannot see across isolates.
|
|
180
|
-
* @throws {UnsupportedError} when the artifact predates
|
|
181
|
-
* `chs_set_default_settings`.
|
|
182
|
-
*/
|
|
183
|
-
setDefaultSettings(settings) {
|
|
184
|
-
this.native.setDefaultSettings(encodeSettings(settings));
|
|
37
|
+
/** The loaded file's path. */
|
|
38
|
+
get path() {
|
|
39
|
+
return this.#image.path;
|
|
185
40
|
}
|
|
186
|
-
/**
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
* function (the reference parse is already applied inside `row`/`rows` and
|
|
190
|
-
* reported per column); it makes transformation findings explainable.
|
|
191
|
-
*
|
|
192
|
-
* @param typeExpr - a ClickHouse type expression.
|
|
193
|
-
* @returns the reference type, or `''` for a type with no wider type to
|
|
194
|
-
* compare against (`String`, `Float64`).
|
|
195
|
-
* @throws {UnsupportedError} when the artifact predates `chs_reference_type`.
|
|
196
|
-
*/
|
|
197
|
-
referenceType(typeExpr) {
|
|
198
|
-
return this.native.referenceType(typeExpr);
|
|
41
|
+
/** ClickHouse's own canonical spelling of a type expression, or its own refusal. */
|
|
42
|
+
validateType(typeExpr) {
|
|
43
|
+
return this.#calls.typeValidate(bytesIn(typeExpr));
|
|
199
44
|
}
|
|
200
|
-
/**
|
|
201
|
-
* Spell `name` as a back-quoted identifier — ALWAYS quoted, which is the
|
|
202
|
-
* safe default and the one to reach for without thinking
|
|
203
|
-
* (`chs_quote_identifier`, the vendored `backQuote`).
|
|
204
|
-
*
|
|
205
|
-
* The bytes are this library's own: an embedded back-quote comes back in the
|
|
206
|
-
* spelling the server's formatter prints, not in a spelling of ours. Reach
|
|
207
|
-
* for `quoteIdentifierIfNeeded` only when the bare spelling matters to
|
|
208
|
-
* something downstream.
|
|
209
|
-
*
|
|
210
|
-
* @param name - a table, column or alias name.
|
|
211
|
-
* @returns the quoted identifier.
|
|
212
|
-
* @throws {UnsupportedError} when the artifact predates
|
|
213
|
-
* `chs_quote_identifier`.
|
|
214
|
-
*/
|
|
45
|
+
/** A name quoted the way ClickHouse's own `backQuote` quotes it: always quoted. */
|
|
215
46
|
quoteIdentifier(name) {
|
|
216
|
-
return this.
|
|
47
|
+
return this.#calls.backQuote(bytesIn(name));
|
|
217
48
|
}
|
|
218
|
-
/**
|
|
219
|
-
* Spell `name` bare where THIS library's ClickHouse says a bare spelling is
|
|
220
|
-
* legal, and back-quote it otherwise (`chs_quote_identifier_if_needed`, the
|
|
221
|
-
* vendored `backQuoteIfNeed`).
|
|
222
|
-
*
|
|
223
|
-
* Which names it leaves bare is a property of the vendored build, not of
|
|
224
|
-
* this package, and it CHANGES between builds — ask the library you will
|
|
225
|
-
* compile against rather than caching an answer across versions.
|
|
226
|
-
*
|
|
227
|
-
* @param name - a table, column or alias name.
|
|
228
|
-
* @returns the identifier, bare or quoted.
|
|
229
|
-
* @throws {UnsupportedError} when the artifact predates
|
|
230
|
-
* `chs_quote_identifier_if_needed`.
|
|
231
|
-
*/
|
|
49
|
+
/** A name quoted only where this build says it must be. */
|
|
232
50
|
quoteIdentifierIfNeeded(name) {
|
|
233
|
-
return this.
|
|
51
|
+
return this.#calls.backQuoteIfNeeded(bytesIn(name));
|
|
234
52
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Spell `text` as a ClickHouse string literal, quotes and escapes included
|
|
237
|
-
* (`chs_quote_literal`, the vendored `quoteString`) — the call to reach for
|
|
238
|
-
* when a value is spliced into DDL, e.g. a DEFAULT expression.
|
|
239
|
-
*
|
|
240
|
-
* The input is counted, so a value carrying a NUL byte is quoted correctly;
|
|
241
|
-
* the answer is escaped and therefore NUL-free.
|
|
242
|
-
*
|
|
243
|
-
* @param text - the string value.
|
|
244
|
-
* @returns the ClickHouse string literal.
|
|
245
|
-
* @throws {UnsupportedError} when the artifact predates `chs_quote_literal`.
|
|
246
|
-
*/
|
|
53
|
+
/** A string literal quoted the way ClickHouse quotes one. */
|
|
247
54
|
quoteLiteral(text) {
|
|
248
|
-
return this.
|
|
55
|
+
return this.#calls.quoteString(bytesIn(text));
|
|
249
56
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
return r.quoted;
|
|
57
|
+
/** This build's error-code table, built on the first call and kept for the library's life on success only. */
|
|
58
|
+
errorCodes() {
|
|
59
|
+
this.#errorCodes ??= decodeErrorCodes(this.#calls.errorCodes());
|
|
60
|
+
return this.#errorCodes;
|
|
255
61
|
}
|
|
256
|
-
/**
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
*
|
|
260
|
-
* It hangs off a Library because the one thing it spells — the column NAME —
|
|
261
|
-
* is spelled by this library's own `quoteIdentifier`; see `discover.ts` for
|
|
262
|
-
* what reconstruction does and does not promise.
|
|
263
|
-
*
|
|
264
|
-
* @param cols - the discovered columns, e.g. from `parseColumnsResult`.
|
|
265
|
-
* @returns the column-declaration list for `compileDdl`.
|
|
266
|
-
* @throws {ChtypesError} when a column is inconsistent, or there are none.
|
|
267
|
-
* @throws {UnsupportedError} when the artifact predates
|
|
268
|
-
* `chs_quote_identifier`.
|
|
269
|
-
*/
|
|
270
|
-
reconstructDdl(cols) {
|
|
271
|
-
return reconstructDdlWith(cols, (name) => this.quoteIdentifier(name));
|
|
62
|
+
/** The discovery query, which the caller runs against its server with its own client, binding `{database:String}` and `{table:String}`. */
|
|
63
|
+
discoverQuery() {
|
|
64
|
+
return this.#calls.discoverQuery();
|
|
272
65
|
}
|
|
273
|
-
/**
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
* without a hand-maintained table. Part of the three-question introspection
|
|
277
|
-
* surface every SDK exposes (docs/reference/bindings.md §Introspection).
|
|
278
|
-
*
|
|
279
|
-
* @returns the family names, one per registry entry.
|
|
280
|
-
* @throws {UnsupportedError} when the artifact predates
|
|
281
|
-
* `chs_registered_families`.
|
|
282
|
-
*/
|
|
283
|
-
registeredFamilies() {
|
|
284
|
-
return this.native.registeredFamilies();
|
|
66
|
+
/** Read a server's `system.columns` answer (`FORMAT JSONEachRow`) into column declarations. */
|
|
67
|
+
discoverColumns(rows) {
|
|
68
|
+
return decodeDiscovery(this.#calls.discoverColumns(rows));
|
|
285
69
|
}
|
|
286
|
-
/**
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
* the server's `system.errors` enumerates and the name it prints after
|
|
290
|
-
* "Code: N." in an exception message.
|
|
291
|
-
*
|
|
292
|
-
* The table belongs to the build, not to this package: codes join and leave
|
|
293
|
-
* between lines, and one number can name different errors on two lines (903
|
|
294
|
-
* differs between 25.8 and 26.2). Ask the library whose line you are
|
|
295
|
-
* answering for; there is no package-level table.
|
|
296
|
-
*
|
|
297
|
-
* Built on the first call and kept for this library's life — the answer never
|
|
298
|
-
* changes for a loaded library. Only a table that was actually built is kept.
|
|
299
|
-
*
|
|
300
|
-
* @returns the table; `name(code)` / `code(name)` answer `undefined` for
|
|
301
|
-
* anything the build's own table does not hold.
|
|
302
|
-
* @throws {ChtypesError} when the library could not build the document (a
|
|
303
|
-
* guarded exception) — nothing is cached, and the next call asks again.
|
|
304
|
-
* @throws {UnsupportedError} when the artifact predates `chs_error_codes`.
|
|
305
|
-
*/
|
|
306
|
-
errorCodes() {
|
|
307
|
-
return this.errorCodeCache.get(() => this.native.errorCodes());
|
|
70
|
+
/** Live handle counts per kind in this image: a diagnostic. */
|
|
71
|
+
liveHandles() {
|
|
72
|
+
return decodeLiveHandles(this.#calls.liveHandles());
|
|
308
73
|
}
|
|
309
|
-
/**
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
* tab-separated fields — `name`, `deterministic`, `deterministic_in_query`,
|
|
313
|
-
* `server_constant`, `stateful`, `resolver_error_code`. ClickHouse's own
|
|
314
|
-
* answers off this build's own registry, and the input to the statelessness
|
|
315
|
-
* gate (the build's function-flags generator). Part of the three-question
|
|
316
|
-
* introspection surface every SDK exposes (docs/reference/bindings.md
|
|
317
|
-
* §Introspection).
|
|
318
|
-
*
|
|
319
|
-
* @returns the audit text, verbatim.
|
|
320
|
-
* @throws {UnsupportedError} when the artifact predates
|
|
321
|
-
* `chs_function_flags`.
|
|
322
|
-
*/
|
|
323
|
-
functionFlags() {
|
|
324
|
-
return this.native.functionFlags();
|
|
74
|
+
/** Compile exactly one `CREATE TABLE` statement. */
|
|
75
|
+
compileTable(createTable, options = {}) {
|
|
76
|
+
return new Schema(this.#calls, this.#calls.schemaCreate(bytesIn(createTable), encodeSettings(options.settings, options.sessionTimezone)));
|
|
325
77
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
*/
|
|
335
|
-
shutdown() {
|
|
336
|
-
this.native.shutdown();
|
|
78
|
+
}
|
|
79
|
+
const libraries = new Map();
|
|
80
|
+
/** The one `Library` of an image: two registries, two spellings or a hardlink of one artifact share one image and one object. */
|
|
81
|
+
export function libraryOf(image, resolved) {
|
|
82
|
+
let lib = libraries.get(image);
|
|
83
|
+
if (lib === undefined) {
|
|
84
|
+
lib = new Library(image, resolved);
|
|
85
|
+
libraries.set(image, lib);
|
|
337
86
|
}
|
|
87
|
+
return lib;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Open a local build with no signed statement, such as an unpublished library
|
|
91
|
+
* under test. It refuses with a `UsageError` unless the caller passes
|
|
92
|
+
* `{ allow: true }` AND `CHTYPES_ALLOW_UNVERIFIED_LIBRARY=1` is set, warns once
|
|
93
|
+
* per path, skips loader steps 1 and 5, and runs step 7 under the process setup
|
|
94
|
+
* like any open. It is not reachable through a registry, and its `Library` has
|
|
95
|
+
* no `resolved`, unless a registry had already opened the same image.
|
|
96
|
+
*/
|
|
97
|
+
export function openUnverified(path, options) {
|
|
98
|
+
const setup = commitSetup();
|
|
99
|
+
return libraryOf(loadUnverified(path, { allow: options.allow, timezone: setup.timezone, defaults: setup.defaults, settle: settleSetup }), undefined);
|
|
338
100
|
}
|
|
339
101
|
//# sourceMappingURL=library.js.map
|
package/dist/library.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../src/library.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../src/library.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAgD,cAAc,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,MAAM,EAAuB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAgB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,OAAO,OAAO;IACT,MAAM,CAAc;IACpB,MAAM,CAAQ;IACvB,WAAW,CAA6B;IAExC,qFAAqF;IAC5E,QAAQ,CAAuB;IAExC,+DAA+D;IAC/D,YAAY,KAAkB,EAAE,QAA8B;QAC5D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,oDAAoD;IACpD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,kGAAkG;IAClG,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC;IACjD,CAAC;IAED,wEAAwE;IACxE,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;IAC/C,CAAC;IAED,8BAA8B;IAC9B,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,oFAAoF;IACpF,YAAY,CAAC,QAAiB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,mFAAmF;IACnF,eAAe,CAAC,IAAa;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,2DAA2D;IAC3D,uBAAuB,CAAC,IAAa;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,IAAa;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,8GAA8G;IAC9G,UAAU;QACR,IAAI,CAAC,WAAW,KAAK,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,2IAA2I;IAC3I,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAED,+FAA+F;IAC/F,eAAe,CAAC,IAAgB;QAC9B,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,+DAA+D;IAC/D,WAAW;QACT,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,oDAAoD;IACpD,YAAY,CAAC,WAAoB,EAAE,OAAO,GAAmB,EAAE;QAC7D,OAAO,IAAI,MAAM,CACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAC1G,CAAC;IACJ,CAAC;CACF;AAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;AAElD,iIAAiI;AACjI,MAAM,UAAU,SAAS,CAAC,KAAkB,EAAE,QAA8B;IAC1E,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAoC;IAC/E,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AACvJ,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export declare const SCHEMA_VERSION: 1;
|
|
2
|
+
export declare const ABI_GENERATION: 1;
|
|
3
|
+
export declare const ENV_BASES_NAME: "CHTYPES_ARTIFACTS_URL";
|
|
4
|
+
export declare const BASE_SEPARATOR: ",";
|
|
5
|
+
export declare const FIXTURES_REPO_SUFFIX: "/sdk-fetch-fixtures";
|
|
6
|
+
export declare const DEFAULT_BASES: readonly ["https://registry.wavehouse.dev/chtypes/v1"];
|
|
7
|
+
export declare const ALLOWED_SCHEMES: readonly ["https", "http", "file"];
|
|
8
|
+
export declare const ENV_CACHE_NAME: "CHTYPES_CACHE";
|
|
9
|
+
export declare const ENV_TOKEN_NAME: "CHTYPES_DOWNLOAD_TOKEN";
|
|
10
|
+
export declare const ENV_TRUSTED_KEYS_NAME: "CHTYPES_TRUSTED_KEYS";
|
|
11
|
+
export declare const ENV_ALLOW_UNSIGNED_NAME: "CHTYPES_ALLOW_UNSIGNED";
|
|
12
|
+
export declare const ENV_AUTOFETCH_NAME: "CHTYPES_AUTOFETCH";
|
|
13
|
+
export declare const ENV_TARGET_NAME: "CHTYPES_TARGET";
|
|
14
|
+
export declare const ENV_RETIRED: readonly ["CHTYPES_REGISTRY"];
|
|
15
|
+
export declare const SPELLING_REGEX: "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*))?)?$";
|
|
16
|
+
export declare const SPELLING_REFUSE_HINT_REGEX: "^v|-(lts|stable)$";
|
|
17
|
+
export declare const PLATFORMS: readonly [{
|
|
18
|
+
readonly key: "linux-amd64";
|
|
19
|
+
readonly os: "linux";
|
|
20
|
+
readonly architecture: "amd64";
|
|
21
|
+
}, {
|
|
22
|
+
readonly key: "linux-arm64";
|
|
23
|
+
readonly os: "linux";
|
|
24
|
+
readonly architecture: "arm64";
|
|
25
|
+
}, {
|
|
26
|
+
readonly key: "darwin-arm64";
|
|
27
|
+
readonly os: "darwin";
|
|
28
|
+
readonly architecture: "arm64";
|
|
29
|
+
}];
|
|
30
|
+
export declare const MEDIA_TYPE_INDEX: "application/vnd.oci.image.index.v1+json";
|
|
31
|
+
export declare const MEDIA_TYPE_MANIFEST: "application/vnd.oci.image.manifest.v1+json";
|
|
32
|
+
export declare const MEDIA_TYPE_EMPTY_CONFIG: "application/vnd.oci.empty.v1+json";
|
|
33
|
+
export declare const MEDIA_TYPE_CONFIG: "application/vnd.wavehouse.chtypes.config.v1+json";
|
|
34
|
+
export declare const MEDIA_TYPE_LAYER: "application/vnd.oci.image.layer.v1.tar+zstd";
|
|
35
|
+
export declare const MEDIA_TYPE_BUNDLE: "application/vnd.dev.sigstore.bundle.v0.3+json";
|
|
36
|
+
export declare const ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.artifact.v1";
|
|
37
|
+
export declare const GOLDENS_ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.goldens.v1";
|
|
38
|
+
export declare const FIXTURES_ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.sdk-fetch-fixtures.v1";
|
|
39
|
+
export declare const CHANNEL_ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.channel.v1";
|
|
40
|
+
export declare const DSSE_PAYLOAD_TYPE: "application/vnd.in-toto+json";
|
|
41
|
+
export declare const DSSE_MAX_SIGNATURES: 4;
|
|
42
|
+
export declare const STATEMENT_TYPE: "https://in-toto.io/Statement/v1";
|
|
43
|
+
export declare const PREDICATE_TYPE_ARTIFACT: "https://artifacts.wavehouse.dev/spec/artifact/v1";
|
|
44
|
+
export declare const PREDICATE_TYPE_GOLDENS: "https://artifacts.wavehouse.dev/spec/goldens/v1";
|
|
45
|
+
export declare const PREDICATE_TYPE_FIXTURES: "https://artifacts.wavehouse.dev/spec/sdk-fetch-fixtures/v1";
|
|
46
|
+
export declare const PREDICATE_TYPE_CHANNEL: "https://artifacts.wavehouse.dev/spec/channel/v1";
|
|
47
|
+
export declare const KEYID_ALGORITHM: "sha256-first16hex";
|
|
48
|
+
export declare const RELEASE_KEYS: readonly [{
|
|
49
|
+
readonly keyid: "deb275922dbff76e";
|
|
50
|
+
readonly ed25519Hex: "fdb5f06a8d4c9918d049a5f1748fa2e3b3238c3f2000986d5bb9e31beff778fc";
|
|
51
|
+
}];
|
|
52
|
+
export declare const TEST_KEYS: readonly [{
|
|
53
|
+
readonly keyid: "6c3468e4ec653ac0";
|
|
54
|
+
readonly ed25519Hex: "b9b314491f92f6c4b93fc69f932164739a619965ed79dbbcea7a4ae2da611ce2";
|
|
55
|
+
readonly trustedByDefault: false;
|
|
56
|
+
}];
|
|
57
|
+
export declare const RETRY_ATTEMPTS: 5;
|
|
58
|
+
export declare const RETRY_FIRST_WAIT_S: 4;
|
|
59
|
+
export declare const RETRY_MULTIPLIER: 2;
|
|
60
|
+
export declare const RETRY_STATUSES: number[];
|
|
61
|
+
export declare const RETRY_AFTER_STATUSES: number[];
|
|
62
|
+
export declare const RETRY_AFTER_OVER_BUDGET: "refuse";
|
|
63
|
+
export declare const DIGEST_404_POLICY: "next_base_then_retry_on_last";
|
|
64
|
+
export declare const TAG_404_POLICY: "next_base_then_unpublished";
|
|
65
|
+
export declare const CONNECT_TIMEOUT_S: 30;
|
|
66
|
+
export declare const IDLE_READ_TIMEOUT_S: 60;
|
|
67
|
+
export declare const MANIFEST_MAX_BYTES: 4194304;
|
|
68
|
+
export declare const BUNDLE_MAX_BYTES: 1048576;
|
|
69
|
+
export declare const TAGS_LIST_MAX_BYTES: 8388608;
|
|
70
|
+
export declare const LAYOUT_INDEX_MAX_BYTES: 8388608;
|
|
71
|
+
export declare const MAX_REFERRERS: 16;
|
|
72
|
+
export declare const MAX_REDIRECTS: 5;
|
|
73
|
+
export declare const MAX_UNPACKED_BYTES: 4294967296;
|
|
74
|
+
export declare const ZSTD_WINDOW_LOG_MAX: 27;
|
|
75
|
+
export declare const CACHE_ROOT_TEMPLATE: "${XDG_CACHE_HOME:-$HOME/.cache}/chtypes/v1";
|
|
76
|
+
export declare const SYSTEM_CACHE_DIRS: readonly ["/usr/local/share/chtypes/v1", "/opt/chtypes/v1"];
|
|
77
|
+
export declare const CACHE_UNPACKED_DIR: "unpacked/sha256";
|
|
78
|
+
export declare const CACHE_VERIFIED_RECORD: "verified.json";
|
|
79
|
+
export declare const CACHE_ANNOTATION_PREFIX: "dev.wavehouse.chtypes.";
|
|
80
|
+
export declare const LOCK_SCHEMA: 3;
|
|
81
|
+
export declare const LOCK_DEFAULT_FILE: "chtypes.lock";
|
|
82
|
+
export declare const AUTOFETCH_UNPUBLISHED_MEMO_S: 300;
|
|
83
|
+
export declare const ERROR_EXIT_CODES: Readonly<Record<string, number>>;
|
|
84
|
+
//# sourceMappingURL=constants.gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.gen.d.ts","sourceRoot":"","sources":["../../src/ocifetch/constants.gen.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,EAAG,CAAU,CAAC;AACzC,eAAO,MAAM,cAAc,EAAG,CAAU,CAAC;AAEzC,eAAO,MAAM,cAAc,EAAG,uBAAgC,CAAC;AAC/D,eAAO,MAAM,cAAc,EAAG,GAAY,CAAC;AAC3C,eAAO,MAAM,oBAAoB,EAAG,qBAA8B,CAAC;AACnE,eAAO,MAAM,aAAa,YAAI,2CAA2C,CAAU,CAAC;AACpF,eAAO,MAAM,eAAe,YAAI,OAAO,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAElE,eAAO,MAAM,cAAc,EAAG,eAAwB,CAAC;AACvD,eAAO,MAAM,cAAc,EAAG,wBAAiC,CAAC;AAChE,eAAO,MAAM,qBAAqB,EAAG,sBAA+B,CAAC;AACrE,eAAO,MAAM,uBAAuB,EAAG,wBAAiC,CAAC;AACzE,eAAO,MAAM,kBAAkB,EAAG,mBAA4B,CAAC;AAC/D,eAAO,MAAM,eAAe,EAAG,gBAAyB,CAAC;AACzD,eAAO,MAAM,WAAW,YAAI,kBAAkB,CAAU,CAAC;AAEzD,eAAO,MAAM,cAAc,EAAG,+EAAwF,CAAC;AACvH,eAAO,MAAM,0BAA0B,EAAG,mBAA4B,CAAC;AAEvE,eAAO,MAAM,SAAS;aAClB,GAAG,EAAE,aAAa;aAAE,EAAE,EAAE,OAAO;aAAE,YAAY,EAAE,OAAO;;aACtD,GAAG,EAAE,aAAa;aAAE,EAAE,EAAE,OAAO;aAAE,YAAY,EAAE,OAAO;;aACtD,GAAG,EAAE,cAAc;aAAE,EAAE,EAAE,QAAQ;aAAE,YAAY,EAAE,OAAO;EAClD,CAAC;AAEX,eAAO,MAAM,gBAAgB,EAAG,yCAAkD,CAAC;AACnF,eAAO,MAAM,mBAAmB,EAAG,4CAAqD,CAAC;AACzF,eAAO,MAAM,uBAAuB,EAAG,mCAA4C,CAAC;AACpF,eAAO,MAAM,iBAAiB,EAAG,kDAA2D,CAAC;AAC7F,eAAO,MAAM,gBAAgB,EAAG,6CAAsD,CAAC;AACvF,eAAO,MAAM,iBAAiB,EAAG,+CAAwD,CAAC;AAC1F,eAAO,MAAM,aAAa,EAAG,+CAAwD,CAAC;AACtF,eAAO,MAAM,qBAAqB,EAAG,8CAAuD,CAAC;AAC7F,eAAO,MAAM,sBAAsB,EAAG,yDAAkE,CAAC;AACzG,eAAO,MAAM,qBAAqB,EAAG,8CAAuD,CAAC;AAE7F,eAAO,MAAM,iBAAiB,EAAG,8BAAuC,CAAC;AACzE,eAAO,MAAM,mBAAmB,EAAG,CAAU,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAG,iCAA0C,CAAC;AAEzE,eAAO,MAAM,uBAAuB,EAAG,kDAA2D,CAAC;AACnG,eAAO,MAAM,sBAAsB,EAAG,iDAA0D,CAAC;AACjG,eAAO,MAAM,uBAAuB,EAAG,4DAAqE,CAAC;AAC7G,eAAO,MAAM,sBAAsB,EAAG,iDAA0D,CAAC;AAEjG,eAAO,MAAM,eAAe,EAAG,mBAA4B,CAAC;AAC5D,eAAO,MAAM,YAAY;aACrB,KAAK,EAAE,kBAAkB;aAAE,UAAU,EAAE,kEAAkE;EACnG,CAAC;AAIX,eAAO,MAAM,SAAS;aAClB,KAAK,EAAE,kBAAkB;aAAE,UAAU,EAAE,kEAAkE;aAAE,gBAAgB;EACrH,CAAC;AAEX,eAAO,MAAM,cAAc,EAAG,CAAU,CAAC;AACzC,eAAO,MAAM,kBAAkB,EAAG,CAAY,CAAC;AAC/C,eAAO,MAAM,gBAAgB,EAAG,CAAY,CAAC;AAC7C,eAAO,MAAM,cAAc,UAAiC,CAAC;AAC7D,eAAO,MAAM,oBAAoB,UAAa,CAAC;AAC/C,eAAO,MAAM,uBAAuB,EAAG,QAAiB,CAAC;AACzD,eAAO,MAAM,iBAAiB,EAAG,8BAAuC,CAAC;AACzE,eAAO,MAAM,cAAc,EAAG,4BAAqC,CAAC;AAEpE,eAAO,MAAM,iBAAiB,EAAG,EAAa,CAAC;AAC/C,eAAO,MAAM,mBAAmB,EAAG,EAAa,CAAC;AAEjD,eAAO,MAAM,kBAAkB,EAAG,OAAgB,CAAC;AACnD,eAAO,MAAM,gBAAgB,EAAG,OAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,EAAG,OAAgB,CAAC;AACpD,eAAO,MAAM,sBAAsB,EAAG,OAAgB,CAAC;AACvD,eAAO,MAAM,aAAa,EAAG,EAAW,CAAC;AACzC,eAAO,MAAM,aAAa,EAAG,CAAU,CAAC;AACxC,eAAO,MAAM,kBAAkB,EAAG,UAAmB,CAAC;AACtD,eAAO,MAAM,mBAAmB,EAAG,EAAW,CAAC;AAG/C,eAAO,MAAM,mBAAmB,EAAG,4CAAqD,CAAC;AACzF,eAAO,MAAM,iBAAiB,YAAI,6BAA6B,EAAE,iBAAiB,CAAU,CAAC;AAC7F,eAAO,MAAM,kBAAkB,EAAG,iBAA0B,CAAC;AAC7D,eAAO,MAAM,qBAAqB,EAAG,eAAwB,CAAC;AAC9D,eAAO,MAAM,uBAAuB,EAAG,wBAAiC,CAAC;AAEzE,eAAO,MAAM,WAAW,EAAG,CAAU,CAAC;AACtC,eAAO,MAAM,iBAAiB,EAAG,cAAuB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,EAAG,GAAc,CAAC;AAK3D,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAW7D,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// Code generated by scripts/fetch-v1/gen-constants.py from
|
|
2
|
+
// spec/fetch-v1/constants.json (sha256:bf19d75118f2d10a1aac28e7e4e44022d59d36d7bbea2f9c7b0c327dcc5a73fc). DO NOT EDIT.
|
|
3
|
+
export const SCHEMA_VERSION = 1;
|
|
4
|
+
export const ABI_GENERATION = 1;
|
|
5
|
+
export const ENV_BASES_NAME = "CHTYPES_ARTIFACTS_URL";
|
|
6
|
+
export const BASE_SEPARATOR = ",";
|
|
7
|
+
export const FIXTURES_REPO_SUFFIX = "/sdk-fetch-fixtures";
|
|
8
|
+
export const DEFAULT_BASES = ["https://registry.wavehouse.dev/chtypes/v1"];
|
|
9
|
+
export const ALLOWED_SCHEMES = ["https", "http", "file"];
|
|
10
|
+
export const ENV_CACHE_NAME = "CHTYPES_CACHE";
|
|
11
|
+
export const ENV_TOKEN_NAME = "CHTYPES_DOWNLOAD_TOKEN";
|
|
12
|
+
export const ENV_TRUSTED_KEYS_NAME = "CHTYPES_TRUSTED_KEYS";
|
|
13
|
+
export const ENV_ALLOW_UNSIGNED_NAME = "CHTYPES_ALLOW_UNSIGNED";
|
|
14
|
+
export const ENV_AUTOFETCH_NAME = "CHTYPES_AUTOFETCH";
|
|
15
|
+
export const ENV_TARGET_NAME = "CHTYPES_TARGET";
|
|
16
|
+
export const ENV_RETIRED = ["CHTYPES_REGISTRY"];
|
|
17
|
+
export const SPELLING_REGEX = "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*)(\\.(0|[1-9][0-9]*))?)?$";
|
|
18
|
+
export const SPELLING_REFUSE_HINT_REGEX = "^v|-(lts|stable)$";
|
|
19
|
+
export const PLATFORMS = [
|
|
20
|
+
{ key: "linux-amd64", os: "linux", architecture: "amd64" },
|
|
21
|
+
{ key: "linux-arm64", os: "linux", architecture: "arm64" },
|
|
22
|
+
{ key: "darwin-arm64", os: "darwin", architecture: "arm64" },
|
|
23
|
+
];
|
|
24
|
+
export const MEDIA_TYPE_INDEX = "application/vnd.oci.image.index.v1+json";
|
|
25
|
+
export const MEDIA_TYPE_MANIFEST = "application/vnd.oci.image.manifest.v1+json";
|
|
26
|
+
export const MEDIA_TYPE_EMPTY_CONFIG = "application/vnd.oci.empty.v1+json";
|
|
27
|
+
export const MEDIA_TYPE_CONFIG = "application/vnd.wavehouse.chtypes.config.v1+json";
|
|
28
|
+
export const MEDIA_TYPE_LAYER = "application/vnd.oci.image.layer.v1.tar+zstd";
|
|
29
|
+
export const MEDIA_TYPE_BUNDLE = "application/vnd.dev.sigstore.bundle.v0.3+json";
|
|
30
|
+
export const ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.artifact.v1";
|
|
31
|
+
export const GOLDENS_ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.goldens.v1";
|
|
32
|
+
export const FIXTURES_ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.sdk-fetch-fixtures.v1";
|
|
33
|
+
export const CHANNEL_ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.channel.v1";
|
|
34
|
+
export const DSSE_PAYLOAD_TYPE = "application/vnd.in-toto+json";
|
|
35
|
+
export const DSSE_MAX_SIGNATURES = 4;
|
|
36
|
+
export const STATEMENT_TYPE = "https://in-toto.io/Statement/v1";
|
|
37
|
+
export const PREDICATE_TYPE_ARTIFACT = "https://artifacts.wavehouse.dev/spec/artifact/v1";
|
|
38
|
+
export const PREDICATE_TYPE_GOLDENS = "https://artifacts.wavehouse.dev/spec/goldens/v1";
|
|
39
|
+
export const PREDICATE_TYPE_FIXTURES = "https://artifacts.wavehouse.dev/spec/sdk-fetch-fixtures/v1";
|
|
40
|
+
export const PREDICATE_TYPE_CHANNEL = "https://artifacts.wavehouse.dev/spec/channel/v1";
|
|
41
|
+
export const KEYID_ALGORITHM = "sha256-first16hex";
|
|
42
|
+
export const RELEASE_KEYS = [
|
|
43
|
+
{ keyid: "deb275922dbff76e", ed25519Hex: "fdb5f06a8d4c9918d049a5f1748fa2e3b3238c3f2000986d5bb9e31beff778fc" },
|
|
44
|
+
];
|
|
45
|
+
// Fixture-only keys. A conformance case trusts one only by explicitly naming
|
|
46
|
+
// it; trustedByDefault is always false and never consulted for real trust.
|
|
47
|
+
export const TEST_KEYS = [
|
|
48
|
+
{ keyid: "6c3468e4ec653ac0", ed25519Hex: "b9b314491f92f6c4b93fc69f932164739a619965ed79dbbcea7a4ae2da611ce2", trustedByDefault: false },
|
|
49
|
+
];
|
|
50
|
+
export const RETRY_ATTEMPTS = 5;
|
|
51
|
+
export const RETRY_FIRST_WAIT_S = 4.0;
|
|
52
|
+
export const RETRY_MULTIPLIER = 2.0;
|
|
53
|
+
export const RETRY_STATUSES = [408, 429, 500, 502, 503, 504];
|
|
54
|
+
export const RETRY_AFTER_STATUSES = [429, 503];
|
|
55
|
+
export const RETRY_AFTER_OVER_BUDGET = "refuse";
|
|
56
|
+
export const DIGEST_404_POLICY = "next_base_then_retry_on_last";
|
|
57
|
+
export const TAG_404_POLICY = "next_base_then_unpublished";
|
|
58
|
+
export const CONNECT_TIMEOUT_S = 30.0;
|
|
59
|
+
export const IDLE_READ_TIMEOUT_S = 60.0;
|
|
60
|
+
export const MANIFEST_MAX_BYTES = 4194304;
|
|
61
|
+
export const BUNDLE_MAX_BYTES = 1048576;
|
|
62
|
+
export const TAGS_LIST_MAX_BYTES = 8388608;
|
|
63
|
+
export const LAYOUT_INDEX_MAX_BYTES = 8388608;
|
|
64
|
+
export const MAX_REFERRERS = 16;
|
|
65
|
+
export const MAX_REDIRECTS = 5;
|
|
66
|
+
export const MAX_UNPACKED_BYTES = 4294967296;
|
|
67
|
+
export const ZSTD_WINDOW_LOG_MAX = 27;
|
|
68
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: a shell path template, not JS
|
|
69
|
+
export const CACHE_ROOT_TEMPLATE = "${XDG_CACHE_HOME:-$HOME/.cache}/chtypes/v1";
|
|
70
|
+
export const SYSTEM_CACHE_DIRS = ["/usr/local/share/chtypes/v1", "/opt/chtypes/v1"];
|
|
71
|
+
export const CACHE_UNPACKED_DIR = "unpacked/sha256";
|
|
72
|
+
export const CACHE_VERIFIED_RECORD = "verified.json";
|
|
73
|
+
export const CACHE_ANNOTATION_PREFIX = "dev.wavehouse.chtypes.";
|
|
74
|
+
export const LOCK_SCHEMA = 3;
|
|
75
|
+
export const LOCK_DEFAULT_FILE = "chtypes.lock";
|
|
76
|
+
export const AUTOFETCH_UNPUBLISHED_MEMO_S = 300.0;
|
|
77
|
+
// docs/guides/fetch-v1.md §8: the six v0 codes carry v0's own real, measured
|
|
78
|
+
// mapping (ts/src/cli.ts EXIT / errorToExitCode; Go, Python and Rust agree);
|
|
79
|
+
// the four new v1-only codes are assigned here, not inherited.
|
|
80
|
+
export const ERROR_EXIT_CODES = {
|
|
81
|
+
"CHTYPES_ARTIFACT_MISSING": 1,
|
|
82
|
+
"CHTYPES_ARTIFACT_UNTRUSTED": 1,
|
|
83
|
+
"CHTYPES_ARTIFACT_CORRUPT": 1,
|
|
84
|
+
"CHTYPES_ARTIFACT_PINNED": 1,
|
|
85
|
+
"CHTYPES_ARTIFACT_UNPUBLISHED": 4,
|
|
86
|
+
"CHTYPES_SOURCE_UNREACHABLE": 3,
|
|
87
|
+
"CHTYPES_SOURCE_UNAUTHORIZED": 5,
|
|
88
|
+
"CHTYPES_SOURCE_FORBIDDEN": 6,
|
|
89
|
+
"CHTYPES_SOURCE_INCOMPATIBLE": 7,
|
|
90
|
+
"CHTYPES_ARTIFACT_INCOMPATIBLE": 8,
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=constants.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.gen.js","sourceRoot":"","sources":["../../src/ocifetch/constants.gen.ts"],"names":[],"mappings":"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"}
|