@wavehouse/chtypes 2.0.0-dev.1 → 2.0.0-dev.11
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 +97 -0
- package/README.md +5 -1
- package/dist/abi2/buildinfo.d.ts +1 -1
- package/dist/abi2/buildinfo.js +3 -3
- package/dist/abi2/buildinfo.js.map +1 -1
- package/dist/abi2/calls.gen.d.ts +5 -5
- package/dist/abi2/calls.gen.d.ts.map +1 -1
- package/dist/abi2/calls.gen.js +11 -11
- package/dist/abi2/calls.gen.js.map +1 -1
- package/dist/abi2/decls.gen.d.ts +2 -1
- package/dist/abi2/decls.gen.d.ts.map +1 -1
- package/dist/abi2/decls.gen.js +78 -20
- package/dist/abi2/decls.gen.js.map +1 -1
- package/dist/abi2/errmap.gen.js +1 -1
- package/dist/abi2/errors.d.ts +21 -40
- package/dist/abi2/errors.d.ts.map +1 -1
- package/dist/abi2/errors.js +20 -44
- package/dist/abi2/errors.js.map +1 -1
- package/dist/abi2/index.d.ts +2 -2
- package/dist/abi2/index.d.ts.map +1 -1
- package/dist/abi2/index.js +1 -1
- package/dist/abi2/index.js.map +1 -1
- package/dist/abi2/libc.gen.d.ts +2 -0
- package/dist/abi2/libc.gen.d.ts.map +1 -1
- package/dist/abi2/libc.gen.js +11 -1
- package/dist/abi2/libc.gen.js.map +1 -1
- package/dist/abi2/loader.d.ts +4 -2
- package/dist/abi2/loader.d.ts.map +1 -1
- package/dist/abi2/loader.js +2 -2
- package/dist/abi2/loader.js.map +1 -1
- package/dist/abi2/raw.d.ts.map +1 -1
- package/dist/abi2/raw.js +4 -1
- package/dist/abi2/raw.js.map +1 -1
- package/dist/abi2/vocab.gen.d.ts +90 -1
- package/dist/abi2/vocab.gen.d.ts.map +1 -1
- package/dist/abi2/vocab.gen.js +144 -4
- package/dist/abi2/vocab.gen.js.map +1 -1
- package/dist/cli.d.ts +11 -5
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +130 -20
- package/dist/cli.js.map +1 -1
- package/dist/documents.d.ts +100 -7
- package/dist/documents.d.ts.map +1 -1
- package/dist/documents.js +135 -8
- package/dist/documents.js.map +1 -1
- package/dist/env.d.ts +8 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +17 -8
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/library.d.ts +13 -2
- package/dist/library.d.ts.map +1 -1
- package/dist/library.js +24 -5
- package/dist/library.js.map +1 -1
- package/dist/ocifetch/channel.d.ts +84 -0
- package/dist/ocifetch/channel.d.ts.map +1 -1
- package/dist/ocifetch/channel.js +157 -2
- package/dist/ocifetch/channel.js.map +1 -1
- package/dist/ocifetch/constants.gen.d.ts +28 -0
- package/dist/ocifetch/constants.gen.d.ts.map +1 -1
- package/dist/ocifetch/constants.gen.js +30 -1
- package/dist/ocifetch/constants.gen.js.map +1 -1
- package/dist/ocifetch/dsse.d.ts +5 -1
- package/dist/ocifetch/dsse.d.ts.map +1 -1
- package/dist/ocifetch/dsse.js +10 -3
- package/dist/ocifetch/dsse.js.map +1 -1
- package/dist/ocifetch/ensure.d.ts +68 -8
- package/dist/ocifetch/ensure.d.ts.map +1 -1
- package/dist/ocifetch/ensure.js +305 -66
- package/dist/ocifetch/ensure.js.map +1 -1
- package/dist/ocifetch/errors.d.ts +101 -25
- package/dist/ocifetch/errors.d.ts.map +1 -1
- package/dist/ocifetch/errors.js +74 -36
- package/dist/ocifetch/errors.js.map +1 -1
- package/dist/ocifetch/hold.d.ts +66 -0
- package/dist/ocifetch/hold.d.ts.map +1 -0
- package/dist/ocifetch/hold.js +150 -0
- package/dist/ocifetch/hold.js.map +1 -0
- package/dist/ocifetch/http.d.ts +10 -2
- package/dist/ocifetch/http.d.ts.map +1 -1
- package/dist/ocifetch/http.js +31 -12
- package/dist/ocifetch/http.js.map +1 -1
- package/dist/ocifetch/index.d.ts +10 -5
- package/dist/ocifetch/index.d.ts.map +1 -1
- package/dist/ocifetch/index.js +8 -3
- package/dist/ocifetch/index.js.map +1 -1
- package/dist/ocifetch/localverify.d.ts +3 -1
- package/dist/ocifetch/localverify.d.ts.map +1 -1
- package/dist/ocifetch/localverify.js +6 -1
- package/dist/ocifetch/localverify.js.map +1 -1
- package/dist/ocifetch/lock.d.ts +2 -1
- package/dist/ocifetch/lock.d.ts.map +1 -1
- package/dist/ocifetch/lock.js +7 -5
- package/dist/ocifetch/lock.js.map +1 -1
- package/dist/ocifetch/oci.d.ts +45 -3
- package/dist/ocifetch/oci.d.ts.map +1 -1
- package/dist/ocifetch/oci.js +125 -58
- package/dist/ocifetch/oci.js.map +1 -1
- package/dist/ocifetch/prune.d.ts +48 -0
- package/dist/ocifetch/prune.d.ts.map +1 -0
- package/dist/ocifetch/prune.js +383 -0
- package/dist/ocifetch/prune.js.map +1 -0
- package/dist/ocifetch/referrers.d.ts +24 -0
- package/dist/ocifetch/referrers.d.ts.map +1 -1
- package/dist/ocifetch/referrers.js +92 -5
- package/dist/ocifetch/referrers.js.map +1 -1
- package/dist/ocifetch/resolve.d.ts +37 -0
- package/dist/ocifetch/resolve.d.ts.map +1 -0
- package/dist/ocifetch/resolve.js +90 -0
- package/dist/ocifetch/resolve.js.map +1 -0
- package/dist/ocifetch/retired.d.ts +61 -0
- package/dist/ocifetch/retired.d.ts.map +1 -0
- package/dist/ocifetch/retired.js +236 -0
- package/dist/ocifetch/retired.js.map +1 -0
- package/dist/ocifetch/revocation.d.ts +151 -0
- package/dist/ocifetch/revocation.d.ts.map +1 -0
- package/dist/ocifetch/revocation.js +481 -0
- package/dist/ocifetch/revocation.js.map +1 -0
- package/dist/ocifetch/types.d.ts +18 -2
- package/dist/ocifetch/types.d.ts.map +1 -1
- package/dist/ocifetch/types.js.map +1 -1
- package/dist/registry.d.ts +80 -3
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +168 -9
- package/dist/registry.js.map +1 -1
- package/dist/schema.d.ts +52 -9
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +6 -6
- package/dist/schema.js.map +1 -1
- package/dist/server.d.ts +27 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +35 -0
- package/dist/server.js.map +1 -0
- package/dist/settings.d.ts +101 -9
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +201 -27
- package/dist/settings.js.map +1 -1
- package/dist/setup.d.ts +3 -2
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +2 -3
- package/dist/setup.js.map +1 -1
- package/package.json +2 -2
|
@@ -21,6 +21,19 @@
|
|
|
21
21
|
* subroot `<cache>/v2-dev`, never as a whole layout;
|
|
22
22
|
* - a signed predicate must say abi 2.
|
|
23
23
|
*
|
|
24
|
+
* It also resolves one tag the v1 contract never asks for: a version request
|
|
25
|
+
* fetches `<tag>--fp-<its own fingerprint>` first, the newest dev build of the
|
|
26
|
+
* ABI this binding speaks, and falls back to `<tag>` only when no base has that
|
|
27
|
+
* alias (`docs/guides/fetch-v1.md` §3, "The dev channel's alias step"), so a
|
|
28
|
+
* dev build of a newer fingerprint never strands this one. Its cache lookups
|
|
29
|
+
* (`resolveInstalled`, and `ensure`'s offline answer and its monotonic rule)
|
|
30
|
+
* see only the records whose signed `abi_fingerprint` is its own: a build of
|
|
31
|
+
* another fingerprint in a shared cache is never returned and never kept over
|
|
32
|
+
* this one's own, and it is never removed or rewritten either. It is
|
|
33
|
+
* automatic, with no override; the trust checks are unchanged, and a listing
|
|
34
|
+
* never shows an alias. The fingerprint is the ABI layer's generated `ABI_FINGERPRINT`,
|
|
35
|
+
* never a hand-written copy.
|
|
36
|
+
*
|
|
24
37
|
* The v1 contract itself stays in this module, unchanged, because the
|
|
25
38
|
* fetch-v1 conformance cases (`tests/fixtures/fetch-v1`) are its
|
|
26
39
|
* specification and the dev channel shares every other rule with it. Only a
|
|
@@ -41,6 +54,16 @@ export declare const DEV_CACHE_DIR = "v2-dev";
|
|
|
41
54
|
export declare const DEV_RECORD_SCHEMA = 2;
|
|
42
55
|
/** The abi a dev predicate must carry. */
|
|
43
56
|
export declare const DEV_ABI_GENERATION = 2;
|
|
57
|
+
/** Joins a tag and a fingerprint into the dev channel's alias tag: `<tag>--fp-<64 lowercase hex>` (`docs/guides/fetch-v1.md` §3). */
|
|
58
|
+
export declare const ALIAS_SEPARATOR = "--fp-";
|
|
59
|
+
/**
|
|
60
|
+
* The environment twin of the `offline` option (public issue #528): `CHTYPES_OFFLINE=1` reads the cache only and
|
|
61
|
+
* makes no request. It names no source, so rule r6 holds. Not a generated constant: the generated set is the v1
|
|
62
|
+
* fetch contract's.
|
|
63
|
+
*/
|
|
64
|
+
export declare const ENV_OFFLINE_NAME = "CHTYPES_OFFLINE";
|
|
65
|
+
/** Whether offline mode is on: the option is true OR `CHTYPES_OFFLINE=1`; neither turns the other off. Read per call, with the other environment variables. */
|
|
66
|
+
export declare function offlineMode(option: boolean | undefined): boolean;
|
|
44
67
|
/** What every lock, frozen or update request gets from a 2.0.0-dev SDK, before any network call (rule r6). */
|
|
45
68
|
export declare const PINNING_REFUSED: string;
|
|
46
69
|
/** One fetch contract. */
|
|
@@ -64,11 +87,16 @@ export interface Channel {
|
|
|
64
87
|
readonly overridable: boolean;
|
|
65
88
|
/** Whether lock, frozen and update are honored. */
|
|
66
89
|
readonly pinnable: boolean;
|
|
90
|
+
/** The fingerprint, 64 lowercase hex, this contract's SDK speaks: a version request resolves its alias tag before the tag itself, and the cache lookups see only records signed with it. `''` does neither (the v1 contract and every production channel). */
|
|
91
|
+
readonly ownFingerprint: string;
|
|
92
|
+
/** Whether build-level revocation is on (`docs/guides/fetch-v1.md`, "Build-level revocation"): generation 2, the dev channel and the production one. The v1 contract has none of it. */
|
|
93
|
+
readonly revocation: boolean;
|
|
67
94
|
}
|
|
68
95
|
/** The contract this process fetches under: the dev channel, unless a test selected another. */
|
|
69
96
|
export declare function activeChannel(): Channel;
|
|
70
97
|
/** The fetch contract this process speaks: `v2-dev` in every process but a test that selected another. */
|
|
71
98
|
export declare function channelName(): string;
|
|
99
|
+
export declare function testOnly(what: string): void;
|
|
72
100
|
/**
|
|
73
101
|
* Makes this TEST process speak the v1 fetch contract (`docs/guides/fetch-v1.md`):
|
|
74
102
|
* overrides, locks, schema-1 records and abi-1 predicates. The fetch-v1
|
|
@@ -77,6 +105,12 @@ export declare function channelName(): string;
|
|
|
77
105
|
* restores the previous contract; throws outside a vitest worker.
|
|
78
106
|
*/
|
|
79
107
|
export declare function useFetchV1ForTests(): () => void;
|
|
108
|
+
/**
|
|
109
|
+
* Makes this TEST process speak the production generation-2 channel: the v1
|
|
110
|
+
* contract with abi 2, schema-2 records and the `v2` subroot. Returns the
|
|
111
|
+
* restore function; throws outside a vitest worker.
|
|
112
|
+
*/
|
|
113
|
+
export declare function useProdV2ForTests(): () => void;
|
|
80
114
|
/**
|
|
81
115
|
* Makes this TEST process's dev channel honor the base, trust and unsigned
|
|
82
116
|
* overrides, so a test can reach a fixture registry signed with the test key;
|
|
@@ -85,6 +119,56 @@ export declare function useFetchV1ForTests(): () => void;
|
|
|
85
119
|
* vitest worker.
|
|
86
120
|
*/
|
|
87
121
|
export declare function allowOverridesForTests(): () => void;
|
|
122
|
+
/**
|
|
123
|
+
* Makes this TEST process's active contract speak `fingerprint` (64 lowercase
|
|
124
|
+
* hex) as the dev channel speaks its own: a version request resolves that
|
|
125
|
+
* fingerprint's alias tag first, and the cache lookups see only records signed
|
|
126
|
+
* with it. The fetch-v1 conformance cases that carry `request.own_fingerprint`
|
|
127
|
+
* run under it, against fixtures that name a fixture fingerprint. Everything
|
|
128
|
+
* else stays the active contract's. Returns the restore function; throws
|
|
129
|
+
* outside a vitest worker or on a fingerprint that is not 64 lowercase hex.
|
|
130
|
+
*/
|
|
131
|
+
export declare function useOwnFingerprintForTests(fingerprint: string): () => void;
|
|
132
|
+
/**
|
|
133
|
+
* The alias a version request for `tag` resolves first under a contract with
|
|
134
|
+
* an own fingerprint, or `undefined` when it resolves `tag` alone: under the
|
|
135
|
+
* v1 contract and every production channel, and for a request that is not a
|
|
136
|
+
* version spelling (an arbitrary tag has no alias).
|
|
137
|
+
*/
|
|
138
|
+
export declare function aliasTag(tag: string, channel?: Channel): string | undefined;
|
|
139
|
+
/**
|
|
140
|
+
* Whether a cache record (or a pre-seeded entry) whose SIGNED predicate is
|
|
141
|
+
* `predicate` may answer a request under the active contract: under one with
|
|
142
|
+
* an own fingerprint (the dev channel), only when the predicate's
|
|
143
|
+
* `abi_fingerprint` is that fingerprint; under every other, always. A record
|
|
144
|
+
* it cannot see is never returned and never kept by the monotonic rule, and
|
|
145
|
+
* nothing removes or rewrites it: another SDK of another fingerprint owns it.
|
|
146
|
+
*/
|
|
147
|
+
export declare function visibleToChannel(predicate: {
|
|
148
|
+
readonly abi_fingerprint?: unknown;
|
|
149
|
+
}, channel?: Channel): boolean;
|
|
150
|
+
/**
|
|
151
|
+
* The dev channel's answer for an SDK whose fingerprint no published build
|
|
152
|
+
* carries yet (`docs/guides/fetch-v1.md` §3; public issue #578): when every
|
|
153
|
+
* base answered its own alias 404 (`aliasAbsent`) and the build the tag names
|
|
154
|
+
* is signed for another fingerprint (`predicate`, the SIGNED predicate, the
|
|
155
|
+
* field `visibleToChannel` keys on), it throws `ArtifactUnpublishedError`, the
|
|
156
|
+
* code a request no build answers gets, naming both fingerprints. Nothing is
|
|
157
|
+
* installed and an install of that build is never reported, because the
|
|
158
|
+
* lookup this SDK opens through would refuse it. It returns in every other
|
|
159
|
+
* case: the alias answered, the tag's build is this SDK's own, or the contract
|
|
160
|
+
* has no own fingerprint.
|
|
161
|
+
*
|
|
162
|
+
* The expired alias with a usable cache (public issue #581): `cachedOwnBuild`
|
|
163
|
+
* looks up, through the filter open uses, the cache's verified record of this
|
|
164
|
+
* SDK's OWN fingerprint for the request, and resolves to its build id (`''`
|
|
165
|
+
* for a record that names none) or `undefined` for no record. When there is
|
|
166
|
+
* one the message grows by `cachedOwnSuffix`; the code does not change.
|
|
167
|
+
*/
|
|
168
|
+
export declare function aheadOfRegistry(aliasAbsent: boolean, predicate: {
|
|
169
|
+
readonly abi_fingerprint?: unknown;
|
|
170
|
+
readonly build?: unknown;
|
|
171
|
+
}, cachedOwnBuild?: () => Promise<string | undefined>, channel?: Channel): Promise<void>;
|
|
88
172
|
/** Makes this TEST process speak the dev channel exactly as every other process does (undoing either function above). Returns the restore function. */
|
|
89
173
|
export declare function useDevChannelForTests(): () => void;
|
|
90
174
|
/** Prints, once per process per setting, that a dev SDK ignores it (rule r6: "a dev SDK says so, once and loudly"). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/ocifetch/channel.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/ocifetch/channel.ts"],"names":[],"mappings":"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"}
|
package/dist/ocifetch/channel.js
CHANGED
|
@@ -21,6 +21,19 @@
|
|
|
21
21
|
* subroot `<cache>/v2-dev`, never as a whole layout;
|
|
22
22
|
* - a signed predicate must say abi 2.
|
|
23
23
|
*
|
|
24
|
+
* It also resolves one tag the v1 contract never asks for: a version request
|
|
25
|
+
* fetches `<tag>--fp-<its own fingerprint>` first, the newest dev build of the
|
|
26
|
+
* ABI this binding speaks, and falls back to `<tag>` only when no base has that
|
|
27
|
+
* alias (`docs/guides/fetch-v1.md` §3, "The dev channel's alias step"), so a
|
|
28
|
+
* dev build of a newer fingerprint never strands this one. Its cache lookups
|
|
29
|
+
* (`resolveInstalled`, and `ensure`'s offline answer and its monotonic rule)
|
|
30
|
+
* see only the records whose signed `abi_fingerprint` is its own: a build of
|
|
31
|
+
* another fingerprint in a shared cache is never returned and never kept over
|
|
32
|
+
* this one's own, and it is never removed or rewritten either. It is
|
|
33
|
+
* automatic, with no override; the trust checks are unchanged, and a listing
|
|
34
|
+
* never shows an alias. The fingerprint is the ABI layer's generated `ABI_FINGERPRINT`,
|
|
35
|
+
* never a hand-written copy.
|
|
36
|
+
*
|
|
24
37
|
* The v1 contract itself stays in this module, unchanged, because the
|
|
25
38
|
* fetch-v1 conformance cases (`tests/fixtures/fetch-v1`) are its
|
|
26
39
|
* specification and the dev channel shares every other rule with it. Only a
|
|
@@ -28,7 +41,9 @@
|
|
|
28
41
|
* anywhere but inside a vitest worker, and neither is exported from the
|
|
29
42
|
* package's entry point, so neither is an override a user can reach.
|
|
30
43
|
*/
|
|
31
|
-
import {
|
|
44
|
+
import { ABI_FINGERPRINT } from '../abi2/decls.gen.js';
|
|
45
|
+
import { ABI_GENERATION, DEFAULT_BASES, ENV_ALLOW_UNSIGNED_NAME, ENV_BASES_NAME, ENV_TRUSTED_KEYS_NAME, PROD_V2_ABI_GENERATION, PROD_V2_BASES, PROD_V2_CACHE_DIR, PROD_V2_NAME, PROD_V2_RECORD_SCHEMA, PROD_V2_SYSTEM_DIRS, RELEASE_KEYS, SCHEMA_VERSION, SPELLING_REGEX, SYSTEM_CACHE_DIRS, } from './constants.gen.js';
|
|
46
|
+
import { ArtifactUnpublishedError } from './errors.js';
|
|
32
47
|
/** The only base a 2.0.0-dev SDK fetches from (rule r6). */
|
|
33
48
|
export const DEV_CHANNEL_BASE = 'https://registry-staging.wavehouse.dev/chtypes/v2-dev';
|
|
34
49
|
/** The staging key's id (`sha256-first16hex` over `DEV_KEY_HEX`). */
|
|
@@ -41,6 +56,18 @@ export const DEV_CACHE_DIR = 'v2-dev';
|
|
|
41
56
|
export const DEV_RECORD_SCHEMA = 2;
|
|
42
57
|
/** The abi a dev predicate must carry. */
|
|
43
58
|
export const DEV_ABI_GENERATION = 2;
|
|
59
|
+
/** Joins a tag and a fingerprint into the dev channel's alias tag: `<tag>--fp-<64 lowercase hex>` (`docs/guides/fetch-v1.md` §3). */
|
|
60
|
+
export const ALIAS_SEPARATOR = '--fp-';
|
|
61
|
+
/**
|
|
62
|
+
* The environment twin of the `offline` option (public issue #528): `CHTYPES_OFFLINE=1` reads the cache only and
|
|
63
|
+
* makes no request. It names no source, so rule r6 holds. Not a generated constant: the generated set is the v1
|
|
64
|
+
* fetch contract's.
|
|
65
|
+
*/
|
|
66
|
+
export const ENV_OFFLINE_NAME = 'CHTYPES_OFFLINE';
|
|
67
|
+
/** Whether offline mode is on: the option is true OR `CHTYPES_OFFLINE=1`; neither turns the other off. Read per call, with the other environment variables. */
|
|
68
|
+
export function offlineMode(option) {
|
|
69
|
+
return option === true || process.env[ENV_OFFLINE_NAME] === '1';
|
|
70
|
+
}
|
|
44
71
|
/** What every lock, frozen or update request gets from a 2.0.0-dev SDK, before any network call (rule r6). */
|
|
45
72
|
export const PINNING_REFUSED = '--lock, --frozen and --update are refused by a 2.0.0-dev SDK: a dev build is replaceable, ' +
|
|
46
73
|
'and a superseded one expires after 14 days, so nothing may pin one (spec/abi-v2/docs.md, rule r6)';
|
|
@@ -56,6 +83,9 @@ const DEV_CHANNEL = {
|
|
|
56
83
|
keys: [{ keyid: DEV_KEY_ID, ed25519Hex: DEV_KEY_HEX }],
|
|
57
84
|
overridable: false,
|
|
58
85
|
pinnable: false,
|
|
86
|
+
// The generated constant (src/abi2/decls.gen.ts), never a hand-written one.
|
|
87
|
+
ownFingerprint: ABI_FINGERPRINT.slice('sha256:'.length),
|
|
88
|
+
revocation: true,
|
|
59
89
|
};
|
|
60
90
|
/** The v1 contract the fetch-v1 conformance cases specify, from the generated constants. Only `useFetchV1ForTests` selects it. */
|
|
61
91
|
const FETCH_V1_CHANNEL = {
|
|
@@ -69,6 +99,30 @@ const FETCH_V1_CHANNEL = {
|
|
|
69
99
|
keys: RELEASE_KEYS.map((k) => ({ keyid: k.keyid, ed25519Hex: k.ed25519Hex })),
|
|
70
100
|
overridable: true,
|
|
71
101
|
pinnable: true,
|
|
102
|
+
ownFingerprint: '',
|
|
103
|
+
revocation: false,
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* The production generation-2 channel a 2.0.0 SDK speaks after the lock: the v1
|
|
107
|
+
* contract with v2 values, from the generated constants (`docs/guides/fetch-v1.md`,
|
|
108
|
+
* "Generation 2 after the lock"). It trusts the release key, honors every
|
|
109
|
+
* override and pin, and has no alias step. NOT the default: only
|
|
110
|
+
* `useProdV2ForTests` selects it, until the lock change makes it
|
|
111
|
+
* `activeChannel()`'s fallback.
|
|
112
|
+
*/
|
|
113
|
+
const PROD_V2_CHANNEL = {
|
|
114
|
+
name: PROD_V2_NAME,
|
|
115
|
+
abi: PROD_V2_ABI_GENERATION,
|
|
116
|
+
recordSchema: PROD_V2_RECORD_SCHEMA,
|
|
117
|
+
rootLeaf: PROD_V2_CACHE_DIR,
|
|
118
|
+
subroot: PROD_V2_CACHE_DIR,
|
|
119
|
+
systemDirs: PROD_V2_SYSTEM_DIRS,
|
|
120
|
+
bases: PROD_V2_BASES,
|
|
121
|
+
keys: RELEASE_KEYS.map((k) => ({ keyid: k.keyid, ed25519Hex: k.ed25519Hex })),
|
|
122
|
+
overridable: true,
|
|
123
|
+
pinnable: true,
|
|
124
|
+
ownFingerprint: '',
|
|
125
|
+
revocation: true,
|
|
72
126
|
};
|
|
73
127
|
let current;
|
|
74
128
|
/** The contract this process fetches under: the dev channel, unless a test selected another. */
|
|
@@ -83,7 +137,7 @@ export function channelName() {
|
|
|
83
137
|
function inTestRunner() {
|
|
84
138
|
return process.env['VITEST'] === 'true' && process.env['VITEST_WORKER_ID'] !== undefined;
|
|
85
139
|
}
|
|
86
|
-
function testOnly(what) {
|
|
140
|
+
export function testOnly(what) {
|
|
87
141
|
if (!inTestRunner()) {
|
|
88
142
|
throw new Error(`chtypes: ${what} is test-only; a 2.0.0-dev SDK has no override (spec/abi-v2/docs.md, rule r6)`);
|
|
89
143
|
}
|
|
@@ -106,6 +160,15 @@ export function useFetchV1ForTests() {
|
|
|
106
160
|
testOnly('useFetchV1ForTests');
|
|
107
161
|
return use(FETCH_V1_CHANNEL);
|
|
108
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Makes this TEST process speak the production generation-2 channel: the v1
|
|
165
|
+
* contract with abi 2, schema-2 records and the `v2` subroot. Returns the
|
|
166
|
+
* restore function; throws outside a vitest worker.
|
|
167
|
+
*/
|
|
168
|
+
export function useProdV2ForTests() {
|
|
169
|
+
testOnly('useProdV2ForTests');
|
|
170
|
+
return use(PROD_V2_CHANNEL);
|
|
171
|
+
}
|
|
109
172
|
/**
|
|
110
173
|
* Makes this TEST process's dev channel honor the base, trust and unsigned
|
|
111
174
|
* overrides, so a test can reach a fixture registry signed with the test key;
|
|
@@ -117,6 +180,98 @@ export function allowOverridesForTests() {
|
|
|
117
180
|
testOnly('allowOverridesForTests');
|
|
118
181
|
return use({ ...DEV_CHANNEL, overridable: true });
|
|
119
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Makes this TEST process's active contract speak `fingerprint` (64 lowercase
|
|
185
|
+
* hex) as the dev channel speaks its own: a version request resolves that
|
|
186
|
+
* fingerprint's alias tag first, and the cache lookups see only records signed
|
|
187
|
+
* with it. The fetch-v1 conformance cases that carry `request.own_fingerprint`
|
|
188
|
+
* run under it, against fixtures that name a fixture fingerprint. Everything
|
|
189
|
+
* else stays the active contract's. Returns the restore function; throws
|
|
190
|
+
* outside a vitest worker or on a fingerprint that is not 64 lowercase hex.
|
|
191
|
+
*/
|
|
192
|
+
export function useOwnFingerprintForTests(fingerprint) {
|
|
193
|
+
testOnly('useOwnFingerprintForTests');
|
|
194
|
+
if (!/^[0-9a-f]{64}$/.test(fingerprint)) {
|
|
195
|
+
throw new Error(`chtypes: useOwnFingerprintForTests: ${JSON.stringify(fingerprint)} is not 64 lowercase hex`);
|
|
196
|
+
}
|
|
197
|
+
return use({ ...activeChannel(), ownFingerprint: fingerprint });
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* The alias a version request for `tag` resolves first under a contract with
|
|
201
|
+
* an own fingerprint, or `undefined` when it resolves `tag` alone: under the
|
|
202
|
+
* v1 contract and every production channel, and for a request that is not a
|
|
203
|
+
* version spelling (an arbitrary tag has no alias).
|
|
204
|
+
*/
|
|
205
|
+
export function aliasTag(tag, channel = activeChannel()) {
|
|
206
|
+
if (channel.ownFingerprint === '' || !new RegExp(SPELLING_REGEX).test(tag))
|
|
207
|
+
return undefined;
|
|
208
|
+
return `${tag}${ALIAS_SEPARATOR}${channel.ownFingerprint}`;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Whether a cache record (or a pre-seeded entry) whose SIGNED predicate is
|
|
212
|
+
* `predicate` may answer a request under the active contract: under one with
|
|
213
|
+
* an own fingerprint (the dev channel), only when the predicate's
|
|
214
|
+
* `abi_fingerprint` is that fingerprint; under every other, always. A record
|
|
215
|
+
* it cannot see is never returned and never kept by the monotonic rule, and
|
|
216
|
+
* nothing removes or rewrites it: another SDK of another fingerprint owns it.
|
|
217
|
+
*/
|
|
218
|
+
export function visibleToChannel(predicate, channel = activeChannel()) {
|
|
219
|
+
if (channel.ownFingerprint === '')
|
|
220
|
+
return true;
|
|
221
|
+
return predicate.abi_fingerprint === `sha256:${channel.ownFingerprint}`;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* The dev channel's answer for an SDK whose fingerprint no published build
|
|
225
|
+
* carries yet (`docs/guides/fetch-v1.md` §3; public issue #578): when every
|
|
226
|
+
* base answered its own alias 404 (`aliasAbsent`) and the build the tag names
|
|
227
|
+
* is signed for another fingerprint (`predicate`, the SIGNED predicate, the
|
|
228
|
+
* field `visibleToChannel` keys on), it throws `ArtifactUnpublishedError`, the
|
|
229
|
+
* code a request no build answers gets, naming both fingerprints. Nothing is
|
|
230
|
+
* installed and an install of that build is never reported, because the
|
|
231
|
+
* lookup this SDK opens through would refuse it. It returns in every other
|
|
232
|
+
* case: the alias answered, the tag's build is this SDK's own, or the contract
|
|
233
|
+
* has no own fingerprint.
|
|
234
|
+
*
|
|
235
|
+
* The expired alias with a usable cache (public issue #581): `cachedOwnBuild`
|
|
236
|
+
* looks up, through the filter open uses, the cache's verified record of this
|
|
237
|
+
* SDK's OWN fingerprint for the request, and resolves to its build id (`''`
|
|
238
|
+
* for a record that names none) or `undefined` for no record. When there is
|
|
239
|
+
* one the message grows by `cachedOwnSuffix`; the code does not change.
|
|
240
|
+
*/
|
|
241
|
+
export async function aheadOfRegistry(aliasAbsent, predicate, cachedOwnBuild, channel = activeChannel()) {
|
|
242
|
+
if (!aliasAbsent || visibleToChannel(predicate, channel))
|
|
243
|
+
return;
|
|
244
|
+
let message = aheadMessage(channel.ownFingerprint, predicate);
|
|
245
|
+
const cached = cachedOwnBuild === undefined ? undefined : await cachedOwnBuild();
|
|
246
|
+
if (cached !== undefined)
|
|
247
|
+
message += cachedOwnSuffix(cached);
|
|
248
|
+
throw new ArtifactUnpublishedError(`chtypes: ${message}`);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* The clause `aheadOfRegistry` appends when the cache holds an own-fingerprint
|
|
252
|
+
* build: "; a cached build for this fingerprint (build <id>) is still usable
|
|
253
|
+
* by open; upgrade the SDK to get newer builds", the parenthesis dropped when
|
|
254
|
+
* the record names no build.
|
|
255
|
+
*/
|
|
256
|
+
function cachedOwnSuffix(build) {
|
|
257
|
+
const named = build === '' ? '' : ` (build ${build})`;
|
|
258
|
+
return `; a cached build for this fingerprint${named} is still usable by open; upgrade the SDK to get newer builds`;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* `aheadOfRegistry`'s message: "no published build for this SDK's fingerprint
|
|
262
|
+
* <own>; newest published on this channel is <fp> (build <id>)", each
|
|
263
|
+
* fingerprint 64 lowercase hex without its `sha256:` prefix, the parenthesis
|
|
264
|
+
* dropped when the predicate names no build, and "unnamed" for a predicate
|
|
265
|
+
* that names no fingerprint.
|
|
266
|
+
*/
|
|
267
|
+
function aheadMessage(own, predicate) {
|
|
268
|
+
const named = typeof predicate.abi_fingerprint === 'string' ? predicate.abi_fingerprint : '';
|
|
269
|
+
const theirs = named.startsWith('sha256:') ? named.slice('sha256:'.length) : named;
|
|
270
|
+
let message = `no published build for this SDK's fingerprint ${own}; newest published on this channel is ${theirs === '' ? 'unnamed' : theirs}`;
|
|
271
|
+
if (typeof predicate.build === 'string' && predicate.build !== '')
|
|
272
|
+
message += ` (build ${predicate.build})`;
|
|
273
|
+
return message;
|
|
274
|
+
}
|
|
120
275
|
/** Makes this TEST process speak the dev channel exactly as every other process does (undoing either function above). Returns the restore function. */
|
|
121
276
|
export function useDevChannelForTests() {
|
|
122
277
|
testOnly('useDevChannelForTests');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/ocifetch/channel.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/ocifetch/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ export declare const ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.artifact.
|
|
|
38
38
|
export declare const GOLDENS_ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.goldens.v1";
|
|
39
39
|
export declare const FIXTURES_ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.sdk-fetch-fixtures.v1";
|
|
40
40
|
export declare const CHANNEL_ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.channel.v1";
|
|
41
|
+
export declare const REVOCATION_ARTIFACT_TYPE: "application/vnd.wavehouse.chtypes.revocation.v1";
|
|
41
42
|
export declare const DSSE_PAYLOAD_TYPE: "application/vnd.in-toto+json";
|
|
42
43
|
export declare const DSSE_MAX_SIGNATURES: 4;
|
|
43
44
|
export declare const STATEMENT_TYPE: "https://in-toto.io/Statement/v1";
|
|
@@ -45,6 +46,7 @@ export declare const PREDICATE_TYPE_ARTIFACT: "https://artifacts.wavehouse.dev/s
|
|
|
45
46
|
export declare const PREDICATE_TYPE_GOLDENS: "https://artifacts.wavehouse.dev/spec/goldens/v1";
|
|
46
47
|
export declare const PREDICATE_TYPE_FIXTURES: "https://artifacts.wavehouse.dev/spec/sdk-fetch-fixtures/v1";
|
|
47
48
|
export declare const PREDICATE_TYPE_CHANNEL: "https://artifacts.wavehouse.dev/spec/channel/v1";
|
|
49
|
+
export declare const PREDICATE_TYPE_REVOCATION: "https://artifacts.wavehouse.dev/spec/revocation/v1";
|
|
48
50
|
export declare const KEYID_ALGORITHM: "sha256-first16hex";
|
|
49
51
|
export declare const RELEASE_KEYS: readonly [{
|
|
50
52
|
readonly keyid: "deb275922dbff76e";
|
|
@@ -63,8 +65,10 @@ export declare const RETRY_AFTER_STATUSES: number[];
|
|
|
63
65
|
export declare const RETRY_AFTER_OVER_BUDGET: "refuse";
|
|
64
66
|
export declare const DIGEST_404_POLICY: "next_base_then_retry_on_last";
|
|
65
67
|
export declare const TAG_404_POLICY: "next_base_then_unpublished";
|
|
68
|
+
export declare const RETIRED_STATUSES: number[];
|
|
66
69
|
export declare const CONNECT_TIMEOUT_S: 30;
|
|
67
70
|
export declare const IDLE_READ_TIMEOUT_S: 60;
|
|
71
|
+
export declare const REVOCATION_CHECK_S: 5;
|
|
68
72
|
export declare const MANIFEST_MAX_BYTES: 4194304;
|
|
69
73
|
export declare const BUNDLE_MAX_BYTES: 1048576;
|
|
70
74
|
export declare const TAGS_LIST_MAX_BYTES: 8388608;
|
|
@@ -73,13 +77,37 @@ export declare const MAX_REFERRERS: 16;
|
|
|
73
77
|
export declare const MAX_REDIRECTS: 5;
|
|
74
78
|
export declare const MAX_UNPACKED_BYTES: 4294967296;
|
|
75
79
|
export declare const ZSTD_WINDOW_LOG_MAX: 27;
|
|
80
|
+
export declare const RETIRED_BODY_MAX_BYTES: 65536;
|
|
81
|
+
export declare const RETIRED_MESSAGE_MAX_CODE_POINTS: 256;
|
|
76
82
|
export declare const CACHE_ROOT_TEMPLATE: "${XDG_CACHE_HOME:-$HOME/.cache}/chtypes/v1";
|
|
77
83
|
export declare const SYSTEM_CACHE_DIRS: readonly ["/usr/local/share/chtypes/v1", "/opt/chtypes/v1"];
|
|
84
|
+
export declare const PROD_V2_NAME: "v2";
|
|
85
|
+
export declare const PROD_V2_ABI_GENERATION: 2;
|
|
86
|
+
export declare const PROD_V2_RECORD_SCHEMA: 2;
|
|
87
|
+
export declare const PROD_V2_CACHE_DIR: "v2";
|
|
88
|
+
export declare const PROD_V2_BASES: readonly ["https://registry.wavehouse.dev/chtypes/v2"];
|
|
89
|
+
export declare const PROD_V2_SYSTEM_DIRS: readonly ["/usr/local/share/chtypes/v2", "/opt/chtypes/v2"];
|
|
78
90
|
export declare const CACHE_UNPACKED_DIR: "unpacked/sha256";
|
|
79
91
|
export declare const CACHE_VERIFIED_RECORD: "verified.json";
|
|
92
|
+
export declare const CACHE_REVOCATION_RECORD: "revocation.json";
|
|
80
93
|
export declare const CACHE_ANNOTATION_PREFIX: "dev.wavehouse.chtypes.";
|
|
81
94
|
export declare const LOCK_SCHEMA: 3;
|
|
82
95
|
export declare const LOCK_DEFAULT_FILE: "chtypes.lock";
|
|
83
96
|
export declare const AUTOFETCH_UNPUBLISHED_MEMO_S: 300;
|
|
84
97
|
export declare const ERROR_EXIT_CODES: Readonly<Record<string, number>>;
|
|
98
|
+
/** One of the shared error codes (docs/guides/fetch-v1.md §8): the `code` of every `ArtifactError`. */
|
|
99
|
+
export type ErrorCode = "CHTYPES_ARTIFACT_MISSING" | "CHTYPES_ARTIFACT_UNTRUSTED" | "CHTYPES_ARTIFACT_CORRUPT" | "CHTYPES_ARTIFACT_PINNED" | "CHTYPES_ARTIFACT_UNPUBLISHED" | "CHTYPES_SOURCE_UNREACHABLE" | "CHTYPES_SOURCE_UNAUTHORIZED" | "CHTYPES_SOURCE_FORBIDDEN" | "CHTYPES_SOURCE_INCOMPATIBLE" | "CHTYPES_ARTIFACT_INCOMPATIBLE" | "CHTYPES_CACHE_UNUSABLE" | "CHTYPES_SOURCE_RETIRED" | "CHTYPES_ARTIFACT_REVOKED";
|
|
100
|
+
export declare const CODE_ARTIFACT_MISSING = "CHTYPES_ARTIFACT_MISSING";
|
|
101
|
+
export declare const CODE_ARTIFACT_UNTRUSTED = "CHTYPES_ARTIFACT_UNTRUSTED";
|
|
102
|
+
export declare const CODE_ARTIFACT_CORRUPT = "CHTYPES_ARTIFACT_CORRUPT";
|
|
103
|
+
export declare const CODE_ARTIFACT_PINNED = "CHTYPES_ARTIFACT_PINNED";
|
|
104
|
+
export declare const CODE_ARTIFACT_UNPUBLISHED = "CHTYPES_ARTIFACT_UNPUBLISHED";
|
|
105
|
+
export declare const CODE_SOURCE_UNREACHABLE = "CHTYPES_SOURCE_UNREACHABLE";
|
|
106
|
+
export declare const CODE_SOURCE_UNAUTHORIZED = "CHTYPES_SOURCE_UNAUTHORIZED";
|
|
107
|
+
export declare const CODE_SOURCE_FORBIDDEN = "CHTYPES_SOURCE_FORBIDDEN";
|
|
108
|
+
export declare const CODE_SOURCE_INCOMPATIBLE = "CHTYPES_SOURCE_INCOMPATIBLE";
|
|
109
|
+
export declare const CODE_ARTIFACT_INCOMPATIBLE = "CHTYPES_ARTIFACT_INCOMPATIBLE";
|
|
110
|
+
export declare const CODE_CACHE_UNUSABLE = "CHTYPES_CACHE_UNUSABLE";
|
|
111
|
+
export declare const CODE_SOURCE_RETIRED = "CHTYPES_SOURCE_RETIRED";
|
|
112
|
+
export declare const CODE_ARTIFACT_REVOKED = "CHTYPES_ARTIFACT_REVOKED";
|
|
85
113
|
//# sourceMappingURL=constants.gen.d.ts.map
|
|
@@ -1 +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,qBAAqB,EAAG,sBAA+B,CAAC;AACrE,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;
|
|
1
|
+
{"version":3,"file":"constants.gen.d.ts","sourceRoot":"","sources":["../../src/ocifetch/constants.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Code generated by scripts/fetch-v1/gen-constants.py from
|
|
2
|
-
// spec/fetch-v1/constants.json (sha256:
|
|
2
|
+
// spec/fetch-v1/constants.json (sha256:5aa3d14a5d8b60399040a8242f003135fa5f6c2c402de7d4e2db4c768a3366ae). DO NOT EDIT.
|
|
3
3
|
export const SCHEMA_VERSION = 1;
|
|
4
4
|
export const ABI_GENERATION = 1;
|
|
5
5
|
export const ENV_BASES_NAME = "CHTYPES_ARTIFACTS_URL";
|
|
@@ -32,6 +32,7 @@ export const ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.artifact.v1";
|
|
|
32
32
|
export const GOLDENS_ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.goldens.v1";
|
|
33
33
|
export const FIXTURES_ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.sdk-fetch-fixtures.v1";
|
|
34
34
|
export const CHANNEL_ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.channel.v1";
|
|
35
|
+
export const REVOCATION_ARTIFACT_TYPE = "application/vnd.wavehouse.chtypes.revocation.v1";
|
|
35
36
|
export const DSSE_PAYLOAD_TYPE = "application/vnd.in-toto+json";
|
|
36
37
|
export const DSSE_MAX_SIGNATURES = 4;
|
|
37
38
|
export const STATEMENT_TYPE = "https://in-toto.io/Statement/v1";
|
|
@@ -39,6 +40,7 @@ export const PREDICATE_TYPE_ARTIFACT = "https://artifacts.wavehouse.dev/spec/art
|
|
|
39
40
|
export const PREDICATE_TYPE_GOLDENS = "https://artifacts.wavehouse.dev/spec/goldens/v1";
|
|
40
41
|
export const PREDICATE_TYPE_FIXTURES = "https://artifacts.wavehouse.dev/spec/sdk-fetch-fixtures/v1";
|
|
41
42
|
export const PREDICATE_TYPE_CHANNEL = "https://artifacts.wavehouse.dev/spec/channel/v1";
|
|
43
|
+
export const PREDICATE_TYPE_REVOCATION = "https://artifacts.wavehouse.dev/spec/revocation/v1";
|
|
42
44
|
export const KEYID_ALGORITHM = "sha256-first16hex";
|
|
43
45
|
export const RELEASE_KEYS = [
|
|
44
46
|
{ keyid: "deb275922dbff76e", ed25519Hex: "fdb5f06a8d4c9918d049a5f1748fa2e3b3238c3f2000986d5bb9e31beff778fc" },
|
|
@@ -56,8 +58,10 @@ export const RETRY_AFTER_STATUSES = [429, 503];
|
|
|
56
58
|
export const RETRY_AFTER_OVER_BUDGET = "refuse";
|
|
57
59
|
export const DIGEST_404_POLICY = "next_base_then_retry_on_last";
|
|
58
60
|
export const TAG_404_POLICY = "next_base_then_unpublished";
|
|
61
|
+
export const RETIRED_STATUSES = [410];
|
|
59
62
|
export const CONNECT_TIMEOUT_S = 30.0;
|
|
60
63
|
export const IDLE_READ_TIMEOUT_S = 60.0;
|
|
64
|
+
export const REVOCATION_CHECK_S = 5.0;
|
|
61
65
|
export const MANIFEST_MAX_BYTES = 4194304;
|
|
62
66
|
export const BUNDLE_MAX_BYTES = 1048576;
|
|
63
67
|
export const TAGS_LIST_MAX_BYTES = 8388608;
|
|
@@ -66,11 +70,20 @@ export const MAX_REFERRERS = 16;
|
|
|
66
70
|
export const MAX_REDIRECTS = 5;
|
|
67
71
|
export const MAX_UNPACKED_BYTES = 4294967296;
|
|
68
72
|
export const ZSTD_WINDOW_LOG_MAX = 27;
|
|
73
|
+
export const RETIRED_BODY_MAX_BYTES = 65536;
|
|
74
|
+
export const RETIRED_MESSAGE_MAX_CODE_POINTS = 256;
|
|
69
75
|
// biome-ignore lint/suspicious/noTemplateCurlyInString: a shell path template, not JS
|
|
70
76
|
export const CACHE_ROOT_TEMPLATE = "${XDG_CACHE_HOME:-$HOME/.cache}/chtypes/v1";
|
|
71
77
|
export const SYSTEM_CACHE_DIRS = ["/usr/local/share/chtypes/v1", "/opt/chtypes/v1"];
|
|
78
|
+
export const PROD_V2_NAME = "v2";
|
|
79
|
+
export const PROD_V2_ABI_GENERATION = 2;
|
|
80
|
+
export const PROD_V2_RECORD_SCHEMA = 2;
|
|
81
|
+
export const PROD_V2_CACHE_DIR = "v2";
|
|
82
|
+
export const PROD_V2_BASES = ["https://registry.wavehouse.dev/chtypes/v2"];
|
|
83
|
+
export const PROD_V2_SYSTEM_DIRS = ["/usr/local/share/chtypes/v2", "/opt/chtypes/v2"];
|
|
72
84
|
export const CACHE_UNPACKED_DIR = "unpacked/sha256";
|
|
73
85
|
export const CACHE_VERIFIED_RECORD = "verified.json";
|
|
86
|
+
export const CACHE_REVOCATION_RECORD = "revocation.json";
|
|
74
87
|
export const CACHE_ANNOTATION_PREFIX = "dev.wavehouse.chtypes.";
|
|
75
88
|
export const LOCK_SCHEMA = 3;
|
|
76
89
|
export const LOCK_DEFAULT_FILE = "chtypes.lock";
|
|
@@ -90,5 +103,21 @@ export const ERROR_EXIT_CODES = {
|
|
|
90
103
|
"CHTYPES_SOURCE_INCOMPATIBLE": 7,
|
|
91
104
|
"CHTYPES_ARTIFACT_INCOMPATIBLE": 8,
|
|
92
105
|
"CHTYPES_CACHE_UNUSABLE": 9,
|
|
106
|
+
"CHTYPES_SOURCE_RETIRED": 10,
|
|
107
|
+
"CHTYPES_ARTIFACT_REVOKED": 11,
|
|
93
108
|
};
|
|
109
|
+
// The shared error codes, one per entry of ERROR_EXIT_CODES, in its order.
|
|
110
|
+
export const CODE_ARTIFACT_MISSING = "CHTYPES_ARTIFACT_MISSING";
|
|
111
|
+
export const CODE_ARTIFACT_UNTRUSTED = "CHTYPES_ARTIFACT_UNTRUSTED";
|
|
112
|
+
export const CODE_ARTIFACT_CORRUPT = "CHTYPES_ARTIFACT_CORRUPT";
|
|
113
|
+
export const CODE_ARTIFACT_PINNED = "CHTYPES_ARTIFACT_PINNED";
|
|
114
|
+
export const CODE_ARTIFACT_UNPUBLISHED = "CHTYPES_ARTIFACT_UNPUBLISHED";
|
|
115
|
+
export const CODE_SOURCE_UNREACHABLE = "CHTYPES_SOURCE_UNREACHABLE";
|
|
116
|
+
export const CODE_SOURCE_UNAUTHORIZED = "CHTYPES_SOURCE_UNAUTHORIZED";
|
|
117
|
+
export const CODE_SOURCE_FORBIDDEN = "CHTYPES_SOURCE_FORBIDDEN";
|
|
118
|
+
export const CODE_SOURCE_INCOMPATIBLE = "CHTYPES_SOURCE_INCOMPATIBLE";
|
|
119
|
+
export const CODE_ARTIFACT_INCOMPATIBLE = "CHTYPES_ARTIFACT_INCOMPATIBLE";
|
|
120
|
+
export const CODE_CACHE_UNUSABLE = "CHTYPES_CACHE_UNUSABLE";
|
|
121
|
+
export const CODE_SOURCE_RETIRED = "CHTYPES_SOURCE_RETIRED";
|
|
122
|
+
export const CODE_ARTIFACT_REVOKED = "CHTYPES_ARTIFACT_REVOKED";
|
|
94
123
|
//# sourceMappingURL=constants.gen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.gen.js","sourceRoot":"","sources":["../../src/ocifetch/constants.gen.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,uHAAuH;AAEvH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAU,CAAC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAU,CAAC;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,uBAAgC,CAAC;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,GAAY,CAAC;AAC3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAA8B,CAAC;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,2CAA2C,CAAU,CAAC;AACpF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,eAAwB,CAAC;AACvD,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAiC,CAAC;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAA+B,CAAC;AACrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAiC,CAAC;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAA4B,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAyB,CAAC;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAA+B,CAAC;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,kBAAkB,CAAU,CAAC;AAEzD,MAAM,CAAC,MAAM,cAAc,GAAG,+EAAwF,CAAC;AACvH,MAAM,CAAC,MAAM,0BAA0B,GAAG,mBAA4B,CAAC;AAEvE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;IAC1D,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;IAC1D,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE;CACpD,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,yCAAkD,CAAC;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAAqD,CAAC;AACzF,MAAM,CAAC,MAAM,uBAAuB,GAAG,mCAA4C,CAAC;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,kDAA2D,CAAC;AAC7F,MAAM,CAAC,MAAM,gBAAgB,GAAG,6CAAsD,CAAC;AACvF,MAAM,CAAC,MAAM,iBAAiB,GAAG,+CAAwD,CAAC;AAC1F,MAAM,CAAC,MAAM,aAAa,GAAG,+CAAwD,CAAC;AACtF,MAAM,CAAC,MAAM,qBAAqB,GAAG,8CAAuD,CAAC;AAC7F,MAAM,CAAC,MAAM,sBAAsB,GAAG,yDAAkE,CAAC;AACzG,MAAM,CAAC,MAAM,qBAAqB,GAAG,8CAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.gen.js","sourceRoot":"","sources":["../../src/ocifetch/constants.gen.ts"],"names":[],"mappings":"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"}
|
package/dist/ocifetch/dsse.d.ts
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* inconsistency, never something to paper over by trying another referrer.
|
|
17
17
|
*/
|
|
18
18
|
import type { RequestOptions } from './http.js';
|
|
19
|
+
import { type ReferrerDescriptor } from './referrers.js';
|
|
19
20
|
import type { ArtifactPredicate, Statement, TrustedKey } from './types.js';
|
|
20
21
|
/**
|
|
21
22
|
* `bytes` as a plain JS value, refusing a duplicate key **anywhere** in the
|
|
@@ -106,9 +107,12 @@ export interface TrustResult {
|
|
|
106
107
|
* aborting the whole search — a dangling or unreachable referrer on one
|
|
107
108
|
* mirror should not prevent trying another.
|
|
108
109
|
*
|
|
110
|
+
* `listed`, when given, is the candidate list already read (`readListing`'s
|
|
111
|
+
* signatures, so one listing serves the trust check and the revocation check).
|
|
112
|
+
*
|
|
109
113
|
* Returns `undefined` when no candidate's signature verified under any
|
|
110
114
|
* trusted key at all — the caller raises `ArtifactUntrustedError` (or
|
|
111
115
|
* honors allow-unsigned).
|
|
112
116
|
*/
|
|
113
|
-
export declare function verifyAnyReferrerBundle(repositoryRoot: string, subjectDigest: string, bundleArtifactType: string, trustedKeys: readonly TrustedKey[], checkContent: (statement: Statement) => void, options: RequestOptions): Promise<TrustResult | undefined>;
|
|
117
|
+
export declare function verifyAnyReferrerBundle(repositoryRoot: string, subjectDigest: string, bundleArtifactType: string, trustedKeys: readonly TrustedKey[], checkContent: (statement: Statement) => void, options: RequestOptions, listed?: readonly ReferrerDescriptor[]): Promise<TrustResult | undefined>;
|
|
114
118
|
//# sourceMappingURL=dsse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsse.d.ts","sourceRoot":"","sources":["../../src/ocifetch/dsse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dsse.d.ts","sourceRoot":"","sources":["../../src/ocifetch/dsse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK3E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI5D;AAkCD,8FAA8F;AAC9F,wKAAwK;AACxK,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAYpE;AAED,mGAAmG;AACnG,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAiB/F;AAqDD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,SAAS,UAAU,EAAE,GACjC;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAarE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAmCzD;AAID,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAQ9F;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,qBAAqB,EAAE,MAAM,EAC7B,mBAAmB,EAAE,MAAM,EAC3B,KAAK,EAAE,sBAAsB,GAC5B,iBAAiB,CAkCnB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAU5H;AAID,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,+FAA+F;IAC/F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0HAA0H;IAC1H,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,SAAS,UAAU,EAAE,EAClC,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,EAC5C,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,SAAS,kBAAkB,EAAE,GACrC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAoBlC"}
|