@wavehouse/chtypes 1.1.0 → 2.0.0-dev.1

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.
Files changed (117) hide show
  1. package/README.md +6 -2
  2. package/dist/{abi1 → abi2}/buildinfo.d.ts.map +1 -1
  3. package/dist/{abi1 → abi2}/buildinfo.js.map +1 -1
  4. package/dist/{abi1 → abi2}/calls.gen.d.ts +10 -5
  5. package/dist/abi2/calls.gen.d.ts.map +1 -0
  6. package/dist/{abi1 → abi2}/calls.gen.js +8 -3
  7. package/dist/abi2/calls.gen.js.map +1 -0
  8. package/dist/{abi1 → abi2}/decls.gen.d.ts +14 -6
  9. package/dist/{abi1 → abi2}/decls.gen.d.ts.map +1 -1
  10. package/dist/{abi1 → abi2}/decls.gen.js +116 -10
  11. package/dist/{abi1 → abi2}/decls.gen.js.map +1 -1
  12. package/dist/{abi1 → abi2}/errmap.gen.d.ts +3 -3
  13. package/dist/{abi1 → abi2}/errmap.gen.d.ts.map +1 -1
  14. package/dist/{abi1 → abi2}/errmap.gen.js +8 -8
  15. package/dist/abi2/errmap.gen.js.map +1 -0
  16. package/dist/{abi1 → abi2}/errors.d.ts +9 -3
  17. package/dist/{abi1 → abi2}/errors.d.ts.map +1 -1
  18. package/dist/{abi1 → abi2}/errors.js +20 -4
  19. package/dist/abi2/errors.js.map +1 -0
  20. package/dist/{abi1 → abi2}/handles.d.ts +3 -3
  21. package/dist/{abi1 → abi2}/handles.d.ts.map +1 -1
  22. package/dist/{abi1 → abi2}/handles.js +5 -5
  23. package/dist/{abi1 → abi2}/handles.js.map +1 -1
  24. package/dist/{abi1 → abi2}/index.d.ts +5 -5
  25. package/dist/abi2/index.d.ts.map +1 -0
  26. package/dist/{abi1 → abi2}/index.js +5 -5
  27. package/dist/abi2/index.js.map +1 -0
  28. package/dist/{abi1 → abi2}/libc.d.ts.map +1 -1
  29. package/dist/{abi1 → abi2}/libc.gen.d.ts.map +1 -1
  30. package/dist/{abi1 → abi2}/libc.gen.js +4 -4
  31. package/dist/{abi1 → abi2}/libc.gen.js.map +1 -1
  32. package/dist/{abi1 → abi2}/libc.js.map +1 -1
  33. package/dist/{abi1 → abi2}/loader.d.ts +10 -8
  34. package/dist/abi2/loader.d.ts.map +1 -0
  35. package/dist/{abi1 → abi2}/loader.js +15 -13
  36. package/dist/abi2/loader.js.map +1 -0
  37. package/dist/{abi1 → abi2}/raw.d.ts +2 -2
  38. package/dist/{abi1 → abi2}/raw.d.ts.map +1 -1
  39. package/dist/{abi1 → abi2}/raw.js +14 -14
  40. package/dist/{abi1 → abi2}/raw.js.map +1 -1
  41. package/dist/{abi1 → abi2}/strictjson.d.ts.map +1 -1
  42. package/dist/{abi1 → abi2}/strictjson.js.map +1 -1
  43. package/dist/abi2/vocab.gen.d.ts +221 -0
  44. package/dist/abi2/vocab.gen.d.ts.map +1 -0
  45. package/dist/abi2/vocab.gen.js +371 -0
  46. package/dist/abi2/vocab.gen.js.map +1 -0
  47. package/dist/cli.d.ts +6 -1
  48. package/dist/cli.d.ts.map +1 -1
  49. package/dist/cli.js +28 -5
  50. package/dist/cli.js.map +1 -1
  51. package/dist/documents.d.ts +11 -5
  52. package/dist/documents.d.ts.map +1 -1
  53. package/dist/documents.js +28 -35
  54. package/dist/documents.js.map +1 -1
  55. package/dist/env.d.ts +6 -0
  56. package/dist/env.d.ts.map +1 -1
  57. package/dist/env.js +12 -4
  58. package/dist/env.js.map +1 -1
  59. package/dist/index.d.ts +7 -3
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +7 -3
  62. package/dist/index.js.map +1 -1
  63. package/dist/library.d.ts +1 -1
  64. package/dist/library.d.ts.map +1 -1
  65. package/dist/library.js +4 -2
  66. package/dist/library.js.map +1 -1
  67. package/dist/ocifetch/channel.d.ts +114 -0
  68. package/dist/ocifetch/channel.d.ts.map +1 -0
  69. package/dist/ocifetch/channel.js +219 -0
  70. package/dist/ocifetch/channel.js.map +1 -0
  71. package/dist/ocifetch/dsse.d.ts.map +1 -1
  72. package/dist/ocifetch/dsse.js +7 -3
  73. package/dist/ocifetch/dsse.js.map +1 -1
  74. package/dist/ocifetch/ensure.d.ts +17 -3
  75. package/dist/ocifetch/ensure.d.ts.map +1 -1
  76. package/dist/ocifetch/ensure.js +57 -13
  77. package/dist/ocifetch/ensure.js.map +1 -1
  78. package/dist/ocifetch/index.d.ts +1 -0
  79. package/dist/ocifetch/index.d.ts.map +1 -1
  80. package/dist/ocifetch/index.js +1 -0
  81. package/dist/ocifetch/index.js.map +1 -1
  82. package/dist/ocifetch/layout.d.ts +20 -7
  83. package/dist/ocifetch/layout.d.ts.map +1 -1
  84. package/dist/ocifetch/layout.js +32 -16
  85. package/dist/ocifetch/layout.js.map +1 -1
  86. package/dist/ocifetch/types.d.ts +2 -1
  87. package/dist/ocifetch/types.d.ts.map +1 -1
  88. package/dist/ocifetch/types.js.map +1 -1
  89. package/dist/registry.d.ts +7 -1
  90. package/dist/registry.d.ts.map +1 -1
  91. package/dist/registry.js +20 -6
  92. package/dist/registry.js.map +1 -1
  93. package/dist/schema.d.ts +2 -2
  94. package/dist/schema.js +1 -1
  95. package/dist/settings.js +1 -1
  96. package/dist/setup.d.ts +1 -1
  97. package/dist/setup.js +2 -2
  98. package/package.json +1 -1
  99. package/dist/abi1/calls.gen.d.ts.map +0 -1
  100. package/dist/abi1/calls.gen.js.map +0 -1
  101. package/dist/abi1/errmap.gen.js.map +0 -1
  102. package/dist/abi1/errors.js.map +0 -1
  103. package/dist/abi1/index.d.ts.map +0 -1
  104. package/dist/abi1/index.js.map +0 -1
  105. package/dist/abi1/loader.d.ts.map +0 -1
  106. package/dist/abi1/loader.js.map +0 -1
  107. package/dist/abi1/vocab.gen.d.ts +0 -169
  108. package/dist/abi1/vocab.gen.d.ts.map +0 -1
  109. package/dist/abi1/vocab.gen.js +0 -306
  110. package/dist/abi1/vocab.gen.js.map +0 -1
  111. /package/dist/{abi1 → abi2}/buildinfo.d.ts +0 -0
  112. /package/dist/{abi1 → abi2}/buildinfo.js +0 -0
  113. /package/dist/{abi1 → abi2}/libc.d.ts +0 -0
  114. /package/dist/{abi1 → abi2}/libc.gen.d.ts +0 -0
  115. /package/dist/{abi1 → abi2}/libc.js +0 -0
  116. /package/dist/{abi1 → abi2}/strictjson.d.ts +0 -0
  117. /package/dist/{abi1 → abi2}/strictjson.js +0 -0
@@ -0,0 +1,219 @@
1
+ /**
2
+ * The fetch contract this build speaks. A 2.0.0-dev SDK speaks the ABI v2 dev
3
+ * channel (`spec/abi-v2/docs.md`, rules r5 and r6), which is the v1 fetch
4
+ * contract (`docs/guides/fetch-v1.md`) narrowed in five ways:
5
+ *
6
+ * - it fetches ONLY from `DEV_CHANNEL_BASE` and trusts ONLY the staging key
7
+ * (`DEV_KEY_HEX`, id `DEV_KEY_ID`); the release key is not in its trust
8
+ * list;
9
+ * - it has no override: `CHTYPES_ARTIFACTS_URL`, `CHTYPES_TRUSTED_KEYS` and
10
+ * `CHTYPES_ALLOW_UNSIGNED`, and the options that set a base, a trust list
11
+ * or an unsigned fetch (`bases`, `trustedKeys`, `allowUnsigned`, and
12
+ * `fetchSigned`'s repository), are ignored, each with one loud warning per
13
+ * process;
14
+ * - it refuses `frozen`, `lockWrite`, `lockPath` and `update` (`--frozen`,
15
+ * `--lock`, `--update`) before any network call: a dev build is
16
+ * replaceable and a superseded one expires, so nothing may pin one;
17
+ * - its cache is one no released 1.x reader ever reads: `verified.json`
18
+ * records are schema 2, the default root is
19
+ * `${XDG_CACHE_HOME:-~/.cache}/chtypes/v2-dev`, and an explicit cache
20
+ * (`CHTYPES_CACHE`, `--cache`, the `cacheDir` option) is used through its
21
+ * subroot `<cache>/v2-dev`, never as a whole layout;
22
+ * - a signed predicate must say abi 2.
23
+ *
24
+ * The v1 contract itself stays in this module, unchanged, because the
25
+ * fetch-v1 conformance cases (`tests/fixtures/fetch-v1`) are its
26
+ * specification and the dev channel shares every other rule with it. Only a
27
+ * test reaches it: `useFetchV1ForTests` and `allowOverridesForTests` throw
28
+ * anywhere but inside a vitest worker, and neither is exported from the
29
+ * package's entry point, so neither is an override a user can reach.
30
+ */
31
+ import { ABI_GENERATION, DEFAULT_BASES, ENV_ALLOW_UNSIGNED_NAME, ENV_BASES_NAME, ENV_TRUSTED_KEYS_NAME, RELEASE_KEYS, SCHEMA_VERSION, SYSTEM_CACHE_DIRS, } from './constants.gen.js';
32
+ /** The only base a 2.0.0-dev SDK fetches from (rule r6). */
33
+ export const DEV_CHANNEL_BASE = 'https://registry-staging.wavehouse.dev/chtypes/v2-dev';
34
+ /** The staging key's id (`sha256-first16hex` over `DEV_KEY_HEX`). */
35
+ export const DEV_KEY_ID = '824345f9bcf8e5bf';
36
+ /** The staging key, the only key a 2.0.0-dev SDK trusts: an ed25519 public key, raw 32 bytes as lowercase hex. */
37
+ export const DEV_KEY_HEX = '5cd30c53c65a1ebc2d85836a41deb06661bb0ae7b658adb9eb116ec2db8e9b1c';
38
+ /** The dev channel's cache directory name: the default root's last element and an explicit cache's subroot (rule r5). */
39
+ export const DEV_CACHE_DIR = 'v2-dev';
40
+ /** The `verified.json` schema the dev channel writes, and the only one it reads (rule r5). */
41
+ export const DEV_RECORD_SCHEMA = 2;
42
+ /** The abi a dev predicate must carry. */
43
+ export const DEV_ABI_GENERATION = 2;
44
+ /** What every lock, frozen or update request gets from a 2.0.0-dev SDK, before any network call (rule r6). */
45
+ export const PINNING_REFUSED = '--lock, --frozen and --update are refused by a 2.0.0-dev SDK: a dev build is replaceable, ' +
46
+ 'and a superseded one expires after 14 days, so nothing may pin one (spec/abi-v2/docs.md, rule r6)';
47
+ /** What a 2.0.0-dev SDK speaks, and what every process speaks unless a test selected another contract. */
48
+ const DEV_CHANNEL = {
49
+ name: DEV_CACHE_DIR,
50
+ abi: DEV_ABI_GENERATION,
51
+ recordSchema: DEV_RECORD_SCHEMA,
52
+ rootLeaf: DEV_CACHE_DIR,
53
+ subroot: DEV_CACHE_DIR,
54
+ systemDirs: [`/usr/local/share/chtypes/${DEV_CACHE_DIR}`, `/opt/chtypes/${DEV_CACHE_DIR}`],
55
+ bases: [DEV_CHANNEL_BASE],
56
+ keys: [{ keyid: DEV_KEY_ID, ed25519Hex: DEV_KEY_HEX }],
57
+ overridable: false,
58
+ pinnable: false,
59
+ };
60
+ /** The v1 contract the fetch-v1 conformance cases specify, from the generated constants. Only `useFetchV1ForTests` selects it. */
61
+ const FETCH_V1_CHANNEL = {
62
+ name: 'v1',
63
+ abi: ABI_GENERATION,
64
+ recordSchema: SCHEMA_VERSION,
65
+ rootLeaf: 'v1',
66
+ subroot: '',
67
+ systemDirs: SYSTEM_CACHE_DIRS,
68
+ bases: DEFAULT_BASES,
69
+ keys: RELEASE_KEYS.map((k) => ({ keyid: k.keyid, ed25519Hex: k.ed25519Hex })),
70
+ overridable: true,
71
+ pinnable: true,
72
+ };
73
+ let current;
74
+ /** The contract this process fetches under: the dev channel, unless a test selected another. */
75
+ export function activeChannel() {
76
+ return current ?? DEV_CHANNEL;
77
+ }
78
+ /** The fetch contract this process speaks: `v2-dev` in every process but a test that selected another. */
79
+ export function channelName() {
80
+ return activeChannel().name;
81
+ }
82
+ /** Whether this process is a vitest worker: the only place a test seam may run. */
83
+ function inTestRunner() {
84
+ return process.env['VITEST'] === 'true' && process.env['VITEST_WORKER_ID'] !== undefined;
85
+ }
86
+ function testOnly(what) {
87
+ if (!inTestRunner()) {
88
+ 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
+ }
90
+ }
91
+ function use(c) {
92
+ const prev = current;
93
+ current = c;
94
+ return () => {
95
+ current = prev;
96
+ };
97
+ }
98
+ /**
99
+ * Makes this TEST process speak the v1 fetch contract (`docs/guides/fetch-v1.md`):
100
+ * overrides, locks, schema-1 records and abi-1 predicates. The fetch-v1
101
+ * conformance cases and the v1-protocol tests run under it; every case names
102
+ * its own fixture registry and the test key. Returns the function that
103
+ * restores the previous contract; throws outside a vitest worker.
104
+ */
105
+ export function useFetchV1ForTests() {
106
+ testOnly('useFetchV1ForTests');
107
+ return use(FETCH_V1_CHANNEL);
108
+ }
109
+ /**
110
+ * Makes this TEST process's dev channel honor the base, trust and unsigned
111
+ * overrides, so a test can reach a fixture registry signed with the test key;
112
+ * everything else stays the dev channel's (abi 2, schema-2 records, the
113
+ * v2-dev cache, no pinning). Returns the restore function; throws outside a
114
+ * vitest worker.
115
+ */
116
+ export function allowOverridesForTests() {
117
+ testOnly('allowOverridesForTests');
118
+ return use({ ...DEV_CHANNEL, overridable: true });
119
+ }
120
+ /** Makes this TEST process speak the dev channel exactly as every other process does (undoing either function above). Returns the restore function. */
121
+ export function useDevChannelForTests() {
122
+ testOnly('useDevChannelForTests');
123
+ return use(DEV_CHANNEL);
124
+ }
125
+ // ------------------------------------------------------------ the warnings
126
+ const warned = new Set();
127
+ let warnSink = (text) => {
128
+ process.stderr.write(text);
129
+ };
130
+ /** Prints, once per process per setting, that a dev SDK ignores it (rule r6: "a dev SDK says so, once and loudly"). */
131
+ export function warnIgnored(setting) {
132
+ if (warned.has(setting))
133
+ return;
134
+ warned.add(setting);
135
+ warnSink(`chtypes: WARNING: ${setting} is set and IGNORED: this is a 2.0.0-dev SDK, which fetches only from ${DEV_CHANNEL_BASE} ` +
136
+ `and trusts only the staging key ${DEV_KEY_ID} (spec/abi-v2/docs.md, rule r6)\n`);
137
+ }
138
+ /** The settings warned about so far, sorted. */
139
+ export function ignoredSettingsWarned() {
140
+ return [...warned].sort();
141
+ }
142
+ /** Test-only: sends the warnings to `sink` and forgets which were given, so a test sees exactly its own. Returns the restore function. */
143
+ export function captureIgnoredForTests(sink) {
144
+ testOnly('captureIgnoredForTests');
145
+ const prevSink = warnSink;
146
+ const prevWarned = [...warned];
147
+ warnSink = sink;
148
+ warned.clear();
149
+ return () => {
150
+ warnSink = prevSink;
151
+ warned.clear();
152
+ for (const s of prevWarned)
153
+ warned.add(s);
154
+ };
155
+ }
156
+ function envSet(name, trim) {
157
+ const v = process.env[name];
158
+ return v !== undefined && (trim ? v.trim() : v) !== '';
159
+ }
160
+ /**
161
+ * Names, once each and loudly, every base, trust and unsigned override
162
+ * `options` or the environment sets, when the active contract has none (rule
163
+ * r6). Every seam entry point calls it first, so an ignored setting is named
164
+ * whatever the command does with the network.
165
+ */
166
+ export function noteIgnoredOverrides(options) {
167
+ if (activeChannel().overridable)
168
+ return;
169
+ if (options.bases !== undefined && options.bases.length > 0)
170
+ warnIgnored('the bases option');
171
+ if (envSet(ENV_BASES_NAME, true))
172
+ warnIgnored(ENV_BASES_NAME);
173
+ if (options.trustedKeys !== undefined)
174
+ warnIgnored('the trustedKeys option');
175
+ if (envSet(ENV_TRUSTED_KEYS_NAME, true))
176
+ warnIgnored(ENV_TRUSTED_KEYS_NAME);
177
+ if (options.allowUnsigned === true)
178
+ warnIgnored('the allowUnsigned option');
179
+ if (envSet(ENV_ALLOW_UNSIGNED_NAME, false))
180
+ warnIgnored(ENV_ALLOW_UNSIGNED_NAME);
181
+ }
182
+ /** Whether an unsigned fetch was asked for and the active contract honors it. */
183
+ export function allowUnsigned(options) {
184
+ return activeChannel().overridable && options.allowUnsigned === true;
185
+ }
186
+ // ------------------------------------------------------------ the pinning
187
+ /** The pinning requests `options` makes, by name. */
188
+ export function pinningRequested(options) {
189
+ const set = [];
190
+ if (options.frozen === true)
191
+ set.push('frozen');
192
+ if (options.lockWrite === true)
193
+ set.push('lock');
194
+ if (options.update === true)
195
+ set.push('update');
196
+ if (options.lockPath !== undefined && options.lockPath !== '')
197
+ set.push('a lock path');
198
+ if (options.lockAllPlatforms === true)
199
+ set.push('lock all platforms');
200
+ return set;
201
+ }
202
+ /** A lock, frozen or update request refused by a 2.0.0-dev SDK. It is the caller's misuse, never an artifact failure: the CLI exits with the usage status. */
203
+ export class PinningRefusedError extends Error {
204
+ requested;
205
+ constructor(requested) {
206
+ super(`chtypes: ${PINNING_REFUSED} (requested: ${requested.join(', ')})`);
207
+ this.name = new.target.name;
208
+ this.requested = requested;
209
+ }
210
+ }
211
+ /** Throws `PinningRefusedError` when the active contract refuses the pinning `options` asks for: before anything else, the network above all (rule r6). */
212
+ export function refusePinning(options) {
213
+ if (activeChannel().pinnable)
214
+ return;
215
+ const set = pinningRequested(options);
216
+ if (set.length > 0)
217
+ throw new PinningRefusedError(set);
218
+ }
219
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/ocifetch/channel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dsse.d.ts","sourceRoot":"","sources":["../../src/ocifetch/dsse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,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,CA+BnB;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;;;;;;;;;;;;;;;;;;;;;GAqBG;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,GACtB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAkBlC"}
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;AAEhD,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;;;;;;;;;;;;;;;;;;;;;GAqBG;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,GACtB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAkBlC"}
@@ -17,7 +17,8 @@
17
17
  */
18
18
  import { createHash, createPublicKey, verify as cryptoVerify } from 'node:crypto';
19
19
  import { items, parseJsonValue } from '../json.js';
20
- import { ABI_GENERATION, DSSE_MAX_SIGNATURES, DSSE_PAYLOAD_TYPE, SPELLING_REGEX } from './constants.gen.js';
20
+ import { activeChannel } from './channel.js';
21
+ import { DSSE_MAX_SIGNATURES, DSSE_PAYLOAD_TYPE, SPELLING_REGEX } from './constants.gen.js';
21
22
  import { ArtifactCorruptError } from './errors.js';
22
23
  import { fetchBlobBytesByDigest, fetchManifestByDigest } from './oci.js';
23
24
  import { discoverSignatureCandidates } from './referrers.js';
@@ -255,8 +256,11 @@ export function checkArtifactStatement(statement, expectedPredicateType, expecte
255
256
  throw new ArtifactCorruptError(`chtypes: statement subject digest does not match the manifest's own layer digest`);
256
257
  }
257
258
  const p = statement.predicate;
258
- if (p['abi'] !== ABI_GENERATION) {
259
- throw new ArtifactCorruptError(`chtypes: statement predicate.abi is ${JSON.stringify(p['abi'])}, not ${ABI_GENERATION}`);
259
+ // The active contract's generation: 2 on the ABI v2 dev channel (rule r6),
260
+ // so a 1.x build's abi-1 predicate is refused there.
261
+ const abi = activeChannel().abi;
262
+ if (p['abi'] !== abi) {
263
+ throw new ArtifactCorruptError(`chtypes: statement predicate.abi is ${JSON.stringify(p['abi'])}, not ${abi}`);
260
264
  }
261
265
  if (p['os'] !== check.os || p['arch'] !== check.arch) {
262
266
  throw new ArtifactCorruptError(`chtypes: statement predicate is for ${JSON.stringify(p['os'])}-${JSON.stringify(p['arch'])}, not ${check.os}-${check.arch}`);
@@ -1 +1 @@
1
- {"version":3,"file":"dsse.js","sourceRoot":"","sources":["../../src/ocifetch/dsse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dsse.js","sourceRoot":"","sources":["../../src/ocifetch/dsse.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,18 @@
5
5
  * cache (`layout.ts`) and the lock (`lock.ts`) together; nothing outside
6
6
  * `index.ts` calls into those modules directly.
7
7
  */
8
- import type { FetchV1Options, PlatformKey, Resolved, VerifyResult } from './types.js';
8
+ import type { FetchV1Options, PlatformKey, Resolved, TrustedKey, VerifyResult } from './types.js';
9
+ /**
10
+ * The bases, the trust list and the unsigned decision a call with `options`
11
+ * reads under the active contract: exactly what `ensure`, `fetchSigned` and
12
+ * `listTags` use. Not part of the package's entry point; the dev channel's
13
+ * rule r6 tests read it, so they test the derivation rather than restate it.
14
+ */
15
+ export declare function effectiveFetchOptions(options: FetchV1Options): {
16
+ readonly bases: readonly string[];
17
+ readonly trustedKeys: readonly TrustedKey[];
18
+ readonly allowUnsigned: boolean;
19
+ };
9
20
  /**
10
21
  * Never touches the network (guide §9). The source of truth is the
11
22
  * immutable `unpacked/sha256/*\/verified.json` records (guide §6) — never
@@ -44,7 +55,10 @@ export declare function verifyInstalled(options?: FetchV1Options): Promise<reado
44
55
  /**
45
56
  * `ensure(request, options)`: resolve unless `frozen` or `offline`, verify
46
57
  * trust, download and unpack bytes, install into the cache, optionally write
47
- * a lock entry. See `docs/guides/fetch-v1.md` §9 for the full contract.
58
+ * a lock entry. See `docs/guides/fetch-v1.md` §9 for the full contract. On the
59
+ * dev channel (`./channel.ts`) every pinning option is refused first, before
60
+ * any request, and every base, trust or unsigned override is ignored with one
61
+ * warning (spec/abi-v2/docs.md, rule r6).
48
62
  */
49
63
  export declare function ensure(request: string, options?: FetchV1Options): Promise<Resolved>;
50
64
  export interface FetchSignedResult {
@@ -72,7 +86,7 @@ export interface FetchSignedResult {
72
86
  * goldens set is a second goldens referrer of it, and the result is the
73
87
  * highest-`revision` verified one (`goldens.ts`, guide §9).
74
88
  */
75
- export declare function fetchSigned(repository: string, ref: string, predicateType: string, options?: FetchV1Options): Promise<FetchSignedResult>;
89
+ export declare function fetchSigned(callerRepository: string, ref: string, predicateType: string, options?: FetchV1Options): Promise<FetchSignedResult>;
76
90
  /**
77
91
  * The version spellings a repository publishes: `GET tags/list` from the first
78
92
  * base that has the repository, every tag that is not a version spelling
@@ -1 +1 @@
1
- {"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../../src/ocifetch/ensure.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2DH,OAAO,KAAK,EAAqB,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAc,YAAY,EAAE,MAAM,YAAY,CAAC;AA6ErH;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CA4B/B;AAkBD;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAO3F;AAED,uLAAuL;AACvL,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAKzF;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE3E;AAoCD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAG1E;AA0DD,wBAAsB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAU9F;AAID,mGAAmG;AACnG,wBAAsB,eAAe,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAepG;AAID;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQ7F;AAkaD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA+B5B;AA4HD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CA2CvF"}
1
+ {"version":3,"file":"ensure.d.ts","sourceRoot":"","sources":["../../src/ocifetch/ensure.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyDH,OAAO,KAAK,EAAqB,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyBrH;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG;IAC9D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,CAEA;AA2DD;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CA6B/B;AAkBD;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAO3F;AAED,uLAAuL;AACvL,wBAAsB,UAAU,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAKzF;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE3E;AAoCD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAG1E;AA0DD,wBAAsB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAW9F;AAID,mGAAmG;AACnG,wBAAsB,eAAe,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAgBpG;AAID;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAU7F;AAoaD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAC/B,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CAiC5B;AA0ID;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CA4CvF"}
@@ -10,7 +10,8 @@ import { unlink } from 'node:fs/promises';
10
10
  import os from 'node:os';
11
11
  import path from 'node:path';
12
12
  import { asString, field, items, parseJsonValue } from '../json.js';
13
- import { ABI_GENERATION, BASE_SEPARATOR, CACHE_ANNOTATION_PREFIX, DEFAULT_BASES, ENV_BASES_NAME, GOLDENS_ARTIFACT_TYPE, MEDIA_TYPE_BUNDLE, MEDIA_TYPE_MANIFEST, PREDICATE_TYPE_ARTIFACT, PREDICATE_TYPE_GOLDENS, RELEASE_KEYS, SPELLING_REGEX, TAGS_LIST_MAX_BYTES, } from './constants.gen.js';
13
+ import { activeChannel, allowUnsigned, noteIgnoredOverrides, refusePinning, warnIgnored } from './channel.js';
14
+ import { BASE_SEPARATOR, CACHE_ANNOTATION_PREFIX, ENV_BASES_NAME, GOLDENS_ARTIFACT_TYPE, MEDIA_TYPE_BUNDLE, MEDIA_TYPE_MANIFEST, PREDICATE_TYPE_ARTIFACT, PREDICATE_TYPE_GOLDENS, SPELLING_REGEX, TAGS_LIST_MAX_BYTES, } from './constants.gen.js';
14
15
  import { checkArtifactStatement, checkGenericStatement, parseStatement, verifyAnyReferrerBundle, verifyBundleSignature } from './dsse.js';
15
16
  import { ArtifactCorruptError, ArtifactMissingError, ArtifactPinnedError, ArtifactUnpublishedError, ArtifactUntrustedError, FetchV1Error, SourceUnreachableError, } from './errors.js';
16
17
  import { readFileUrl, requestBuffered } from './http.js';
@@ -23,12 +24,18 @@ import { fetchBlobBytesByDigest, fetchManifestByDigest, resolveTag } from './oci
23
24
  import { emptyLock, getPin, readLock, withPin, writeLock } from './lock.js';
24
25
  import { digestOfHex, endpointUrl, hexOfDigest, platformInfo, realClock, resolvePlatformOption } from './types.js';
25
26
  import { fetchVerifyAndUnpackLayer, measureLibrary, verifyInstalledLibrary } from './unpack.js';
27
+ /** The trust list: the caller's when the active contract honors one, else the contract's own (the staging key alone on the dev channel, rule r6). */
26
28
  function defaultTrustedKeys(options) {
27
- if (options.trustedKeys !== undefined)
29
+ const channel = activeChannel();
30
+ if (channel.overridable && options.trustedKeys !== undefined)
28
31
  return options.trustedKeys;
29
- return RELEASE_KEYS.map((k) => ({ keyid: k.keyid, ed25519Hex: k.ed25519Hex }));
32
+ return channel.keys;
30
33
  }
34
+ /** The bases: the caller's or `CHTYPES_ARTIFACTS_URL` when the active contract honors them, else the contract's own (the staging dev channel alone, rule r6). */
31
35
  function resolveBases(options) {
36
+ const channel = activeChannel();
37
+ if (!channel.overridable)
38
+ return channel.bases;
32
39
  if (options.bases !== undefined && options.bases.length > 0)
33
40
  return options.bases;
34
41
  const env = process.env[ENV_BASES_NAME];
@@ -38,7 +45,16 @@ function resolveBases(options) {
38
45
  .map((b) => b.trim())
39
46
  .filter((b) => b !== '');
40
47
  }
41
- return DEFAULT_BASES;
48
+ return channel.bases;
49
+ }
50
+ /**
51
+ * The bases, the trust list and the unsigned decision a call with `options`
52
+ * reads under the active contract: exactly what `ensure`, `fetchSigned` and
53
+ * `listTags` use. Not part of the package's entry point; the dev channel's
54
+ * rule r6 tests read it, so they test the derivation rather than restate it.
55
+ */
56
+ export function effectiveFetchOptions(options) {
57
+ return { bases: resolveBases(options), trustedKeys: defaultTrustedKeys(options), allowUnsigned: allowUnsigned(options) };
42
58
  }
43
59
  function tokenHostsFor(bases) {
44
60
  const hosts = [];
@@ -64,7 +80,7 @@ function requestOptionsFor(options, bases) {
64
80
  /** Builds the `Resolved` the seam promises, from a `verified.json` record plus where it came from. */
65
81
  function resolvedFromRecord(record, platform, request, dir, source, alreadyInstalled, warnings) {
66
82
  return {
67
- abiGeneration: ABI_GENERATION,
83
+ abiGeneration: activeChannel().abi,
68
84
  platform,
69
85
  request,
70
86
  version: record.version,
@@ -99,6 +115,7 @@ function resolvedFromRecord(record, platform, request, dir, source, alreadyInsta
99
115
  * `clickhouse_version` lies within `request`.
100
116
  */
101
117
  export async function resolveInstalled(request, platform, options = {}) {
118
+ noteIgnoredOverrides(options);
102
119
  const root = cacheRoot(options.cacheDir);
103
120
  const warnings = await probeRoots(searchRoots(options).map((r) => r.root), strictMode(options.strictCache));
104
121
  const trustedKeys = defaultTrustedKeys(options);
@@ -262,6 +279,7 @@ async function checkMonotonic(root, platform, request, incoming) {
262
279
  }
263
280
  // ------------------------------------------------------------------ listInstalled
264
281
  export async function listInstalled(options = {}) {
282
+ noteIgnoredOverrides(options);
265
283
  const warnings = await probeCache(options);
266
284
  const out = [];
267
285
  for (const r of searchRoots(options)) {
@@ -275,6 +293,7 @@ export async function listInstalled(options = {}) {
275
293
  // ----------------------------------------------------------------- verifyInstalled
276
294
  /** Re-checks every installed library's bytes against its own `verified.json` record (guide §9). */
277
295
  export async function verifyInstalled(options = {}) {
296
+ noteIgnoredOverrides(options);
278
297
  await probeCache(options);
279
298
  const out = [];
280
299
  for (const r of searchRoots(options)) {
@@ -295,9 +314,14 @@ export async function verifyInstalled(options = {}) {
295
314
  /**
296
315
  * `ensure(request, options)`: resolve unless `frozen` or `offline`, verify
297
316
  * trust, download and unpack bytes, install into the cache, optionally write
298
- * a lock entry. See `docs/guides/fetch-v1.md` §9 for the full contract.
317
+ * a lock entry. See `docs/guides/fetch-v1.md` §9 for the full contract. On the
318
+ * dev channel (`./channel.ts`) every pinning option is refused first, before
319
+ * any request, and every base, trust or unsigned override is ignored with one
320
+ * warning (spec/abi-v2/docs.md, rule r6).
299
321
  */
300
322
  export async function ensure(request, options = {}) {
323
+ refusePinning(options);
324
+ noteIgnoredOverrides(options);
301
325
  try {
302
326
  return await ensureIn(request, options);
303
327
  }
@@ -364,8 +388,10 @@ async function ensureIn(request, options) {
364
388
  let predicate;
365
389
  let signedBy;
366
390
  if (trust === undefined) {
367
- if (options.allowUnsigned !== true) {
368
- throw new ArtifactUntrustedError(`chtypes: no referrer of ${resolveResult.manifest.digest} verified under a trusted key (CHTYPES_ALLOW_UNSIGNED=1 to proceed anyway)`);
391
+ if (!allowUnsigned(options)) {
392
+ throw new ArtifactUntrustedError(activeChannel().overridable
393
+ ? `chtypes: no referrer of ${resolveResult.manifest.digest} verified under a trusted key (CHTYPES_ALLOW_UNSIGNED=1 to proceed anyway)`
394
+ : `chtypes: no referrer of ${resolveResult.manifest.digest} verified under the staging key ${activeChannel().keys.map((k) => k.keyid).join(', ')}`);
369
395
  }
370
396
  predicate = await unsignedPredicateFallback(resolveResult.repositoryRoot, resolveResult.manifest, request, info, baseReqOptions);
371
397
  signedBy = '';
@@ -452,7 +478,7 @@ async function ensureIn(request, options) {
452
478
  async function unsignedPredicateFallback(repositoryRoot, manifest, request, info, baseReqOptions) {
453
479
  const fallbackLibrary = info.os === 'darwin' ? 'libchtypes.dylib' : 'libchtypes.so';
454
480
  const fallback = {
455
- abi: ABI_GENERATION,
481
+ abi: activeChannel().abi,
456
482
  abi_fingerprint: '',
457
483
  clickhouse_version: request,
458
484
  channel: '',
@@ -522,7 +548,7 @@ async function ensureFrozen(request, platform, options) {
522
548
  let signedBy;
523
549
  let warnings = [];
524
550
  if (verified === undefined) {
525
- if (options.allowUnsigned !== true) {
551
+ if (!allowUnsigned(options)) {
526
552
  throw new ArtifactUntrustedError(`chtypes: the locked bundle ${pin.bundle} does not verify under a trusted key`);
527
553
  }
528
554
  predicate = await unsignedPredicateFallback(bases[0], manifest, request, info, baseReqOptions);
@@ -677,18 +703,20 @@ function isLikelyPlatformKey(key) {
677
703
  * goldens set is a second goldens referrer of it, and the result is the
678
704
  * highest-`revision` verified one (`goldens.ts`, guide §9).
679
705
  */
680
- export async function fetchSigned(repository, ref, predicateType, options = {}) {
706
+ export async function fetchSigned(callerRepository, ref, predicateType, options = {}) {
707
+ noteIgnoredOverrides(options);
708
+ const repository = channelRepository(callerRepository);
681
709
  const root = cacheRoot(options.cacheDir);
682
710
  await ensureLayout(root);
683
711
  const baseReqOptions = requestOptionsFor(options, [repository]);
684
712
  const trustedKeys = defaultTrustedKeys(options);
685
713
  if (predicateType === PREDICATE_TYPE_GOLDENS) {
686
- return fetchGoldens(repository, ref, root, trustedKeys, options.allowUnsigned === true, { ...baseReqOptions, maxBytes: 0 });
714
+ return fetchGoldens(repository, ref, root, trustedKeys, allowUnsigned(options), { ...baseReqOptions, maxBytes: 0 });
687
715
  }
688
716
  const manifest = await fetchManifestByDigest([repository], ref, { ...baseReqOptions, maxBytes: 0 });
689
717
  const layerBytes = await fetchBlobBytesByDigest([repository], manifest.layer, { ...baseReqOptions, maxBytes: 0 });
690
718
  const trust = await verifyAnyReferrerBundle(repository, manifest.digest, MEDIA_TYPE_BUNDLE, trustedKeys, (statement) => checkGenericStatement(statement, predicateType, manifest.layer.digest), { ...baseReqOptions, maxBytes: 0 });
691
- if (trust === undefined && options.allowUnsigned !== true) {
719
+ if (trust === undefined && !allowUnsigned(options)) {
692
720
  throw new ArtifactUntrustedError(`chtypes: no referrer of ${manifest.digest} verified under a trusted key`);
693
721
  }
694
722
  const dest = await installBlob(root, hexOfDigest(manifest.layer.digest), layerBytes);
@@ -698,6 +726,21 @@ export async function fetchSigned(repository, ref, predicateType, options = {})
698
726
  digests: { manifest: manifest.digest, layer: manifest.layer.digest },
699
727
  };
700
728
  }
729
+ /**
730
+ * The repository `fetchSigned` reads: the caller's when the active contract
731
+ * honors a base, else the contract's own, with one warning when the caller
732
+ * named another (the dev channel's goldens are its own release's referrers,
733
+ * signed with the staging key; rule r6).
734
+ */
735
+ function channelRepository(callerRepository) {
736
+ const channel = activeChannel();
737
+ if (channel.overridable)
738
+ return callerRepository;
739
+ const own = channel.bases[0];
740
+ if (callerRepository !== '' && callerRepository !== own)
741
+ warnIgnored("fetchSigned's repository argument");
742
+ return own;
743
+ }
701
744
  /**
702
745
  * `fetchSigned` for the goldens predicate type: the highest-revision verified
703
746
  * goldens referrer of the platform manifest `subject`.
@@ -825,6 +868,7 @@ function compareSpellings(a, b) {
825
868
  * resolve reads. A next page is followed through the `Link` header.
826
869
  */
827
870
  export async function listTags(options = {}) {
871
+ noteIgnoredOverrides(options);
828
872
  const bases = resolveBases(options);
829
873
  const reqOptions = { ...requestOptionsFor(options, bases), maxBytes: TAGS_LIST_MAX_BYTES };
830
874
  const spelling = new RegExp(SPELLING_REGEX);