@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.
Files changed (145) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.md +5 -1
  3. package/dist/abi2/buildinfo.d.ts +1 -1
  4. package/dist/abi2/buildinfo.js +3 -3
  5. package/dist/abi2/buildinfo.js.map +1 -1
  6. package/dist/abi2/calls.gen.d.ts +5 -5
  7. package/dist/abi2/calls.gen.d.ts.map +1 -1
  8. package/dist/abi2/calls.gen.js +11 -11
  9. package/dist/abi2/calls.gen.js.map +1 -1
  10. package/dist/abi2/decls.gen.d.ts +2 -1
  11. package/dist/abi2/decls.gen.d.ts.map +1 -1
  12. package/dist/abi2/decls.gen.js +78 -20
  13. package/dist/abi2/decls.gen.js.map +1 -1
  14. package/dist/abi2/errmap.gen.js +1 -1
  15. package/dist/abi2/errors.d.ts +21 -40
  16. package/dist/abi2/errors.d.ts.map +1 -1
  17. package/dist/abi2/errors.js +20 -44
  18. package/dist/abi2/errors.js.map +1 -1
  19. package/dist/abi2/index.d.ts +2 -2
  20. package/dist/abi2/index.d.ts.map +1 -1
  21. package/dist/abi2/index.js +1 -1
  22. package/dist/abi2/index.js.map +1 -1
  23. package/dist/abi2/libc.gen.d.ts +2 -0
  24. package/dist/abi2/libc.gen.d.ts.map +1 -1
  25. package/dist/abi2/libc.gen.js +11 -1
  26. package/dist/abi2/libc.gen.js.map +1 -1
  27. package/dist/abi2/loader.d.ts +4 -2
  28. package/dist/abi2/loader.d.ts.map +1 -1
  29. package/dist/abi2/loader.js +2 -2
  30. package/dist/abi2/loader.js.map +1 -1
  31. package/dist/abi2/raw.d.ts.map +1 -1
  32. package/dist/abi2/raw.js +4 -1
  33. package/dist/abi2/raw.js.map +1 -1
  34. package/dist/abi2/vocab.gen.d.ts +90 -1
  35. package/dist/abi2/vocab.gen.d.ts.map +1 -1
  36. package/dist/abi2/vocab.gen.js +144 -4
  37. package/dist/abi2/vocab.gen.js.map +1 -1
  38. package/dist/cli.d.ts +11 -5
  39. package/dist/cli.d.ts.map +1 -1
  40. package/dist/cli.js +130 -20
  41. package/dist/cli.js.map +1 -1
  42. package/dist/documents.d.ts +100 -7
  43. package/dist/documents.d.ts.map +1 -1
  44. package/dist/documents.js +135 -8
  45. package/dist/documents.js.map +1 -1
  46. package/dist/env.d.ts +8 -1
  47. package/dist/env.d.ts.map +1 -1
  48. package/dist/env.js +17 -8
  49. package/dist/env.js.map +1 -1
  50. package/dist/index.d.ts +10 -7
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +8 -5
  53. package/dist/index.js.map +1 -1
  54. package/dist/library.d.ts +13 -2
  55. package/dist/library.d.ts.map +1 -1
  56. package/dist/library.js +24 -5
  57. package/dist/library.js.map +1 -1
  58. package/dist/ocifetch/channel.d.ts +84 -0
  59. package/dist/ocifetch/channel.d.ts.map +1 -1
  60. package/dist/ocifetch/channel.js +157 -2
  61. package/dist/ocifetch/channel.js.map +1 -1
  62. package/dist/ocifetch/constants.gen.d.ts +28 -0
  63. package/dist/ocifetch/constants.gen.d.ts.map +1 -1
  64. package/dist/ocifetch/constants.gen.js +30 -1
  65. package/dist/ocifetch/constants.gen.js.map +1 -1
  66. package/dist/ocifetch/dsse.d.ts +5 -1
  67. package/dist/ocifetch/dsse.d.ts.map +1 -1
  68. package/dist/ocifetch/dsse.js +10 -3
  69. package/dist/ocifetch/dsse.js.map +1 -1
  70. package/dist/ocifetch/ensure.d.ts +68 -8
  71. package/dist/ocifetch/ensure.d.ts.map +1 -1
  72. package/dist/ocifetch/ensure.js +305 -66
  73. package/dist/ocifetch/ensure.js.map +1 -1
  74. package/dist/ocifetch/errors.d.ts +101 -25
  75. package/dist/ocifetch/errors.d.ts.map +1 -1
  76. package/dist/ocifetch/errors.js +74 -36
  77. package/dist/ocifetch/errors.js.map +1 -1
  78. package/dist/ocifetch/hold.d.ts +66 -0
  79. package/dist/ocifetch/hold.d.ts.map +1 -0
  80. package/dist/ocifetch/hold.js +150 -0
  81. package/dist/ocifetch/hold.js.map +1 -0
  82. package/dist/ocifetch/http.d.ts +10 -2
  83. package/dist/ocifetch/http.d.ts.map +1 -1
  84. package/dist/ocifetch/http.js +31 -12
  85. package/dist/ocifetch/http.js.map +1 -1
  86. package/dist/ocifetch/index.d.ts +10 -5
  87. package/dist/ocifetch/index.d.ts.map +1 -1
  88. package/dist/ocifetch/index.js +8 -3
  89. package/dist/ocifetch/index.js.map +1 -1
  90. package/dist/ocifetch/localverify.d.ts +3 -1
  91. package/dist/ocifetch/localverify.d.ts.map +1 -1
  92. package/dist/ocifetch/localverify.js +6 -1
  93. package/dist/ocifetch/localverify.js.map +1 -1
  94. package/dist/ocifetch/lock.d.ts +2 -1
  95. package/dist/ocifetch/lock.d.ts.map +1 -1
  96. package/dist/ocifetch/lock.js +7 -5
  97. package/dist/ocifetch/lock.js.map +1 -1
  98. package/dist/ocifetch/oci.d.ts +45 -3
  99. package/dist/ocifetch/oci.d.ts.map +1 -1
  100. package/dist/ocifetch/oci.js +125 -58
  101. package/dist/ocifetch/oci.js.map +1 -1
  102. package/dist/ocifetch/prune.d.ts +48 -0
  103. package/dist/ocifetch/prune.d.ts.map +1 -0
  104. package/dist/ocifetch/prune.js +383 -0
  105. package/dist/ocifetch/prune.js.map +1 -0
  106. package/dist/ocifetch/referrers.d.ts +24 -0
  107. package/dist/ocifetch/referrers.d.ts.map +1 -1
  108. package/dist/ocifetch/referrers.js +92 -5
  109. package/dist/ocifetch/referrers.js.map +1 -1
  110. package/dist/ocifetch/resolve.d.ts +37 -0
  111. package/dist/ocifetch/resolve.d.ts.map +1 -0
  112. package/dist/ocifetch/resolve.js +90 -0
  113. package/dist/ocifetch/resolve.js.map +1 -0
  114. package/dist/ocifetch/retired.d.ts +61 -0
  115. package/dist/ocifetch/retired.d.ts.map +1 -0
  116. package/dist/ocifetch/retired.js +236 -0
  117. package/dist/ocifetch/retired.js.map +1 -0
  118. package/dist/ocifetch/revocation.d.ts +151 -0
  119. package/dist/ocifetch/revocation.d.ts.map +1 -0
  120. package/dist/ocifetch/revocation.js +481 -0
  121. package/dist/ocifetch/revocation.js.map +1 -0
  122. package/dist/ocifetch/types.d.ts +18 -2
  123. package/dist/ocifetch/types.d.ts.map +1 -1
  124. package/dist/ocifetch/types.js.map +1 -1
  125. package/dist/registry.d.ts +80 -3
  126. package/dist/registry.d.ts.map +1 -1
  127. package/dist/registry.js +168 -9
  128. package/dist/registry.js.map +1 -1
  129. package/dist/schema.d.ts +52 -9
  130. package/dist/schema.d.ts.map +1 -1
  131. package/dist/schema.js +6 -6
  132. package/dist/schema.js.map +1 -1
  133. package/dist/server.d.ts +27 -0
  134. package/dist/server.d.ts.map +1 -0
  135. package/dist/server.js +35 -0
  136. package/dist/server.js.map +1 -0
  137. package/dist/settings.d.ts +101 -9
  138. package/dist/settings.d.ts.map +1 -1
  139. package/dist/settings.js +201 -27
  140. package/dist/settings.js.map +1 -1
  141. package/dist/setup.d.ts +3 -2
  142. package/dist/setup.d.ts.map +1 -1
  143. package/dist/setup.js +2 -3
  144. package/dist/setup.js.map +1 -1
  145. 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAYH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,0DAA0D,CAAC;AACxF,qEAAqE;AACrE,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,kHAAkH;AAClH,eAAO,MAAM,WAAW,qEAAqE,CAAC;AAC9F,yHAAyH;AACzH,eAAO,MAAM,aAAa,WAAW,CAAC;AACtC,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,8GAA8G;AAC9G,eAAO,MAAM,eAAe,QAEyE,CAAC;AAEtG,0BAA0B;AAC1B,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAgCD,gGAAgG;AAChG,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,0GAA0G;AAC1G,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAqBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,IAAI,CAG/C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,IAAI,CAGnD;AAED,uJAAuJ;AACvJ,wBAAgB,qBAAqB,IAAI,MAAM,IAAI,CAGlD;AASD,uHAAuH;AACvH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED,gDAAgD;AAChD,wBAAgB,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAEzD;AAED,0IAA0I;AAC1I,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAW/E;AAOD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAQlE;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAE9D;AAID,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAQ3E;AAED,8JAA8J;AAC9J,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAEtC,YAAY,SAAS,EAAE,SAAS,MAAM,EAAE,EAIvC;CACF;AAED,2JAA2J;AAC3J,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAI3D"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/ocifetch/channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAqBH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7D,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,0DAA0D,CAAC;AACxF,qEAAqE;AACrE,eAAO,MAAM,UAAU,qBAAqB,CAAC;AAC7C,kHAAkH;AAClH,eAAO,MAAM,WAAW,qEAAqE,CAAC;AAC9F,yHAAyH;AACzH,eAAO,MAAM,aAAa,WAAW,CAAC;AACtC,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,qIAAqI;AACrI,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,+JAA+J;AAC/J,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAEhE;AAED,8GAA8G;AAC9G,eAAO,MAAM,eAAe,QAEyE,CAAC;AAEtG,0BAA0B;AAC1B,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,yBAAyB;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8PAA8P;IAC9P,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,wLAAwL;IACxL,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AA4DD,gGAAgG;AAChG,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,0GAA0G;AAC1G,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAOD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI3C;AAUD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,IAAI,CAG/C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,IAAI,CAG9C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,IAAI,CAGnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,IAAI,CAMzE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAyB,GAAG,MAAM,GAAG,SAAS,CAG5F;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE;IAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,OAAO,GAAE,OAAyB,GAAG,OAAO,CAG/H;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE;IAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3E,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,EAClD,OAAO,GAAE,OAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAMf;AA4BD,uJAAuJ;AACvJ,wBAAgB,qBAAqB,IAAI,MAAM,IAAI,CAGlD;AASD,uHAAuH;AACvH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED,gDAAgD;AAChD,wBAAgB,qBAAqB,IAAI,SAAS,MAAM,EAAE,CAEzD;AAED,0IAA0I;AAC1I,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAW/E;AAOD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAQlE;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAE9D;AAID,qDAAqD;AACrD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,MAAM,EAAE,CAQ3E;AAED,8JAA8J;AAC9J,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAEtC,YAAY,SAAS,EAAE,SAAS,MAAM,EAAE,EAIvC;CACF;AAED,2JAA2J;AAC3J,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAI3D"}
@@ -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 { 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';
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":"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"}
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":"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"}
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:163dbaa1e5173aa65de7d46f1eac27c02f862e96b5c8160a23fee8cfabd77a2a). DO NOT EDIT.
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":"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"}
1
+ {"version":3,"file":"constants.gen.js","sourceRoot":"","sources":["../../src/ocifetch/constants.gen.ts"],"names":[],"mappings":"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"}
@@ -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;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"}
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"}