burnledger 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +11 -4
  2. package/dist/cjs/anchor.d.ts +71 -0
  3. package/dist/cjs/anchor.d.ts.map +1 -0
  4. package/dist/cjs/anchor.js +279 -0
  5. package/dist/cjs/anchor.js.map +1 -0
  6. package/dist/cjs/client.d.ts +26 -2
  7. package/dist/cjs/client.d.ts.map +1 -1
  8. package/dist/cjs/client.js +27 -5
  9. package/dist/cjs/client.js.map +1 -1
  10. package/dist/cjs/enclave-seal.d.ts +101 -0
  11. package/dist/cjs/enclave-seal.d.ts.map +1 -0
  12. package/dist/cjs/enclave-seal.js +479 -0
  13. package/dist/cjs/enclave-seal.js.map +1 -0
  14. package/dist/cjs/errors.d.ts +42 -1
  15. package/dist/cjs/errors.d.ts.map +1 -1
  16. package/dist/cjs/errors.js +44 -2
  17. package/dist/cjs/errors.js.map +1 -1
  18. package/dist/cjs/http.d.ts +21 -1
  19. package/dist/cjs/http.d.ts.map +1 -1
  20. package/dist/cjs/http.js +76 -12
  21. package/dist/cjs/http.js.map +1 -1
  22. package/dist/cjs/index.browser.d.ts +2 -4
  23. package/dist/cjs/index.browser.d.ts.map +1 -1
  24. package/dist/cjs/index.browser.js.map +1 -1
  25. package/dist/cjs/index.d.ts +16 -11
  26. package/dist/cjs/index.d.ts.map +1 -1
  27. package/dist/cjs/index.js +20 -1
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/keys.d.ts +66 -0
  30. package/dist/cjs/keys.d.ts.map +1 -1
  31. package/dist/cjs/keys.js +128 -3
  32. package/dist/cjs/keys.js.map +1 -1
  33. package/dist/cjs/models.d.ts +41 -3
  34. package/dist/cjs/models.d.ts.map +1 -1
  35. package/dist/cjs/models.js +25 -4
  36. package/dist/cjs/models.js.map +1 -1
  37. package/dist/cjs/verify.d.ts +72 -6
  38. package/dist/cjs/verify.d.ts.map +1 -1
  39. package/dist/cjs/verify.js +392 -62
  40. package/dist/cjs/verify.js.map +1 -1
  41. package/dist/cjs/web-verifier.d.ts +54 -5
  42. package/dist/cjs/web-verifier.d.ts.map +1 -1
  43. package/dist/cjs/web-verifier.js +36 -3
  44. package/dist/cjs/web-verifier.js.map +1 -1
  45. package/dist/esm/anchor.d.ts +71 -0
  46. package/dist/esm/anchor.d.ts.map +1 -0
  47. package/dist/esm/anchor.js +275 -0
  48. package/dist/esm/anchor.js.map +1 -0
  49. package/dist/esm/cli.d.ts +45 -14
  50. package/dist/esm/cli.d.ts.map +1 -1
  51. package/dist/esm/cli.js +357 -50
  52. package/dist/esm/cli.js.map +1 -1
  53. package/dist/esm/client.d.ts +26 -2
  54. package/dist/esm/client.d.ts.map +1 -1
  55. package/dist/esm/client.js +27 -5
  56. package/dist/esm/client.js.map +1 -1
  57. package/dist/esm/enclave-seal.d.ts +101 -0
  58. package/dist/esm/enclave-seal.d.ts.map +1 -0
  59. package/dist/esm/enclave-seal.js +472 -0
  60. package/dist/esm/enclave-seal.js.map +1 -0
  61. package/dist/esm/errors.d.ts +42 -1
  62. package/dist/esm/errors.d.ts.map +1 -1
  63. package/dist/esm/errors.js +43 -1
  64. package/dist/esm/errors.js.map +1 -1
  65. package/dist/esm/http.d.ts +21 -1
  66. package/dist/esm/http.d.ts.map +1 -1
  67. package/dist/esm/http.js +75 -12
  68. package/dist/esm/http.js.map +1 -1
  69. package/dist/esm/index.browser.d.ts +2 -4
  70. package/dist/esm/index.browser.d.ts.map +1 -1
  71. package/dist/esm/index.browser.js.map +1 -1
  72. package/dist/esm/index.d.ts +16 -11
  73. package/dist/esm/index.d.ts.map +1 -1
  74. package/dist/esm/index.js +11 -2
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/keys.d.ts +66 -0
  77. package/dist/esm/keys.d.ts.map +1 -1
  78. package/dist/esm/keys.js +125 -3
  79. package/dist/esm/keys.js.map +1 -1
  80. package/dist/esm/models.d.ts +41 -3
  81. package/dist/esm/models.d.ts.map +1 -1
  82. package/dist/esm/models.js +24 -4
  83. package/dist/esm/models.js.map +1 -1
  84. package/dist/esm/verify.d.ts +72 -6
  85. package/dist/esm/verify.d.ts.map +1 -1
  86. package/dist/esm/verify.js +390 -63
  87. package/dist/esm/verify.js.map +1 -1
  88. package/dist/esm/web-verifier.d.ts +54 -5
  89. package/dist/esm/web-verifier.d.ts.map +1 -1
  90. package/dist/esm/web-verifier.js +40 -3
  91. package/dist/esm/web-verifier.js.map +1 -1
  92. package/package.json +1 -1
  93. package/src/anchor.ts +330 -0
  94. package/src/cli.ts +389 -54
  95. package/src/client.ts +46 -4
  96. package/src/enclave-seal.ts +582 -0
  97. package/src/errors.ts +47 -2
  98. package/src/http.ts +79 -12
  99. package/src/index.browser.ts +2 -2
  100. package/src/index.ts +28 -9
  101. package/src/keys.ts +176 -3
  102. package/src/models.ts +72 -7
  103. package/src/verify.ts +467 -72
  104. package/src/web-verifier.ts +58 -5
package/README.md CHANGED
@@ -133,6 +133,13 @@ new BurnLedger({
133
133
  | `savePdf(id, path)` | `Promise<void>` |
134
134
  | `getRevocationStatus(id)` | `Promise<RevocationStatus>` |
135
135
  | `revokeCertificate(id, opts)` | `Promise<CertificateResponse>` |
136
+ | `batchRevokeCertificates(ids, opts)` | `Promise<BatchRevokeResponse>` |
137
+
138
+ `batchRevokeCertificates` takes up to `MAX_BATCH_REVOKE` (100) ids under one
139
+ reason and resolves whether all, some or none were revoked: the failures are
140
+ in `errors`, each naming the request `index` and `certificateId`, so a
141
+ partially failed batch is inspected, not caught. More than 100 ids throws
142
+ before any request is made; chunk larger sets by `MAX_BATCH_REVOKE`.
136
143
 
137
144
  ### Webhooks
138
145
 
@@ -143,16 +150,16 @@ new BurnLedger({
143
150
  | `deleteWebhook(id)` | `Promise<void>` |
144
151
  | `rotateWebhookSecret(id)` | `Promise<WebhookRotateResponse>` |
145
152
  | `commitWebhookRotation(id)` | `Promise<void>` |
146
- | `listFailedDeliveries(id)` | `Promise<WebhookDelivery[]>` |
147
- | `retryDelivery(webhookId, deliveryId)` | `Promise<void>` |
148
- | `resolveDelivery(webhookId, deliveryId)` | `Promise<void>` |
153
+ | `listFailedDeliveries(opts?)` | `Paginator<WebhookDelivery>` |
154
+ | `retryDelivery(deliveryId)` | `Promise<void>` |
155
+ | `resolveDelivery(deliveryId)` | `Promise<void>` |
149
156
 
150
157
  ### API Keys
151
158
 
152
159
  | Method | Returns |
153
160
  |--------|---------|
154
161
  | `listApiKeys()` | `Promise<ApiKeyListItem[]>` |
155
- | `createApiKey()` | `Promise<ApiKeyResponse>` |
162
+ | `createApiKey({ teamId? })` | `Promise<ApiKeyResponse>` |
156
163
  | `revokeApiKey(id)` | `Promise<void>` |
157
164
 
158
165
  ### Transparency Log
@@ -0,0 +1,71 @@
1
+ /** The statement's log anchor, tested against the log's own signed head.
2
+ *
3
+ * A certificate status statement is an OFF-LOG document. Nothing stops the
4
+ * issuer signing two of them, at the same instant, saying different things
5
+ * about the same record to two different readers — that is the split-view
6
+ * attack on revocation status, and no signature by the issuer can rule out a
7
+ * second signature by the issuer.
8
+ *
9
+ * What the statement DOES carry is an anchor: sth_tree_size and sth_root_hash,
10
+ * signed, naming the log head the issuer had in front of it when it spoke.
11
+ * Until now this CLI PRINTED that anchor and never checked it, so the field was
12
+ * decoration. Checking it does not make the statement append-only, and this
13
+ * file must not be read as claiming it does. What it buys is narrower and real:
14
+ *
15
+ * - A statement can no longer name a tree the log does not have. The anchor
16
+ * must be a PREFIX of the head the log publishes now, proved by an RFC 6962
17
+ * consistency proof, or this CLI refuses the statement.
18
+ * - So an issuer wanting to show two readers different revocation status has
19
+ * two options, and both leave marks. Anchor both statements to the same
20
+ * head, and the two statements are directly comparable signed evidence of
21
+ * equivocation. Anchor them to different heads, and the log itself has
22
+ * forked — which is what the witness's published record exists to catch,
23
+ * and which no amount of re-signing can hide.
24
+ *
25
+ * What it does NOT close: a reader who checks one statement, alone, against a
26
+ * log the issuer also controls learns only that the issuer is self-consistent.
27
+ * Split view is detected by comparing notes — between readers, or against the
28
+ * witness — and this check is what makes the note worth comparing.
29
+ *
30
+ * This is a port of cmd/cli/anchor.go, verdict for verdict and word for word.
31
+ * Three CLIs that disagree about the same record are worse than one that never
32
+ * checked, so the detail strings are copied rather than paraphrased: a reader
33
+ * diffing the Go and the npm output must see the same line.
34
+ */
35
+ import type { CryptoOps } from "./crypto.js";
36
+ import type { PublicKeyInfo } from "./verify.js";
37
+ /** What a reader learns about a statement's log anchor.
38
+ *
39
+ * The three words are the whole point of the feature, and the two that are not
40
+ * CONFIRMED are not interchangeable:
41
+ *
42
+ * - UNVERIFIED — the log could not be asked, or its answer could not be read.
43
+ * NOT a refusal: the statement still verifies on its own signature, and the
44
+ * exit code is what it would have been without this check. But the reader
45
+ * must not be told the anchor was checked.
46
+ * - INCONSISTENT — the log published a head the anchored one cannot be a
47
+ * prefix of. That is the issuer contradicting itself about an append-only
48
+ * structure, proved from its own signatures, and it is a refusal.
49
+ */
50
+ export type AnchorVerdict = "CONFIRMED" | "UNVERIFIED" | "INCONSISTENT";
51
+ export declare const ANCHOR_CONFIRMED = "CONFIRMED";
52
+ export declare const ANCHOR_UNVERIFIED = "UNVERIFIED";
53
+ export declare const ANCHOR_INCONSISTENT = "INCONSISTENT";
54
+ export interface AnchorResult {
55
+ readonly verdict: AnchorVerdict;
56
+ readonly detail: string;
57
+ }
58
+ /** Test the statement's signed anchor against the log's own signed head.
59
+ *
60
+ * `key` is the key that signed the STATEMENT, taken from the reader's --keys
61
+ * file. The head is verified against it before a single field of the head is
62
+ * used: an unverified head is an unattributed one, and letting it decide
63
+ * whether the anchor is consistent would hand that decision to whoever answered
64
+ * the HTTP request.
65
+ *
66
+ * `statement` must already have passed unwrapStatusStatement, which is what
67
+ * guarantees `sth_root_hash` is 32 bytes of hex. That is the boundary check;
68
+ * this function does not repeat it.
69
+ */
70
+ export declare function checkStatementAnchor(crypto: CryptoOps, apiUrl: string, statement: Record<string, unknown>, key: PublicKeyInfo): Promise<AnchorResult>;
71
+ //# sourceMappingURL=anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQ7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;AAExE,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAC5C,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAcD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,GAAG,EAAE,aAAa,GACjB,OAAO,CAAC,YAAY,CAAC,CAqFvB"}
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ /** The statement's log anchor, tested against the log's own signed head.
3
+ *
4
+ * A certificate status statement is an OFF-LOG document. Nothing stops the
5
+ * issuer signing two of them, at the same instant, saying different things
6
+ * about the same record to two different readers — that is the split-view
7
+ * attack on revocation status, and no signature by the issuer can rule out a
8
+ * second signature by the issuer.
9
+ *
10
+ * What the statement DOES carry is an anchor: sth_tree_size and sth_root_hash,
11
+ * signed, naming the log head the issuer had in front of it when it spoke.
12
+ * Until now this CLI PRINTED that anchor and never checked it, so the field was
13
+ * decoration. Checking it does not make the statement append-only, and this
14
+ * file must not be read as claiming it does. What it buys is narrower and real:
15
+ *
16
+ * - A statement can no longer name a tree the log does not have. The anchor
17
+ * must be a PREFIX of the head the log publishes now, proved by an RFC 6962
18
+ * consistency proof, or this CLI refuses the statement.
19
+ * - So an issuer wanting to show two readers different revocation status has
20
+ * two options, and both leave marks. Anchor both statements to the same
21
+ * head, and the two statements are directly comparable signed evidence of
22
+ * equivocation. Anchor them to different heads, and the log itself has
23
+ * forked — which is what the witness's published record exists to catch,
24
+ * and which no amount of re-signing can hide.
25
+ *
26
+ * What it does NOT close: a reader who checks one statement, alone, against a
27
+ * log the issuer also controls learns only that the issuer is self-consistent.
28
+ * Split view is detected by comparing notes — between readers, or against the
29
+ * witness — and this check is what makes the note worth comparing.
30
+ *
31
+ * This is a port of cmd/cli/anchor.go, verdict for verdict and word for word.
32
+ * Three CLIs that disagree about the same record are worse than one that never
33
+ * checked, so the detail strings are copied rather than paraphrased: a reader
34
+ * diffing the Go and the npm output must see the same line.
35
+ */
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.ANCHOR_INCONSISTENT = exports.ANCHOR_UNVERIFIED = exports.ANCHOR_CONFIRMED = void 0;
38
+ exports.checkStatementAnchor = checkStatementAnchor;
39
+ const verify_js_1 = require("./verify.js");
40
+ exports.ANCHOR_CONFIRMED = "CONFIRMED";
41
+ exports.ANCHOR_UNVERIFIED = "UNVERIFIED";
42
+ exports.ANCHOR_INCONSISTENT = "INCONSISTENT";
43
+ /** How much of a log response this will buffer, matching cmd/cli/online.go.
44
+ * A head is a few hundred bytes and a consistency proof is at most 64 hashes;
45
+ * anything near this size is a misbehaving or hostile server, not an answer. */
46
+ const MAX_RESPONSE_BYTES = 1 << 20;
47
+ const REQUEST_TIMEOUT_MS = 10_000;
48
+ /** Test the statement's signed anchor against the log's own signed head.
49
+ *
50
+ * `key` is the key that signed the STATEMENT, taken from the reader's --keys
51
+ * file. The head is verified against it before a single field of the head is
52
+ * used: an unverified head is an unattributed one, and letting it decide
53
+ * whether the anchor is consistent would hand that decision to whoever answered
54
+ * the HTTP request.
55
+ *
56
+ * `statement` must already have passed unwrapStatusStatement, which is what
57
+ * guarantees `sth_root_hash` is 32 bytes of hex. That is the boundary check;
58
+ * this function does not repeat it.
59
+ */
60
+ async function checkStatementAnchor(crypto, apiUrl, statement, key) {
61
+ const treeSize = statement.sth_tree_size;
62
+ if (typeof treeSize !== "number" || !Number.isSafeInteger(treeSize) || treeSize < 0) {
63
+ // Go's uint64 field would have failed to unmarshal, taking the whole
64
+ // document with it; here the document already parsed, so the anchor is what
65
+ // is unusable. Either way nothing was established, which is UNVERIFIED.
66
+ return unverified("the statement's anchored tree size is not a usable integer");
67
+ }
68
+ if (treeSize === 0)
69
+ return unverified("the statement names no log head to anchor to");
70
+ let head;
71
+ try {
72
+ head = await fetchLogHead(apiUrl);
73
+ }
74
+ catch (e) {
75
+ return unverified(`could not read the log head: ${message(e)}`);
76
+ }
77
+ let headPayload;
78
+ try {
79
+ headPayload = (0, verify_js_1.buildTreeHeadPayload)(head);
80
+ }
81
+ catch (e) {
82
+ return unverified(`could not rebuild the log head payload: ${message(e)}`);
83
+ }
84
+ const headSignature = (0, verify_js_1.hexToBytes)(head.signature);
85
+ if (!(await crypto.ed25519Verify(key.keyBytes, headPayload, headSignature))) {
86
+ return unverified("the log head is not signed by the key that signed the statement, so it says nothing about it");
87
+ }
88
+ const headSize = head.tree_size;
89
+ const headRoot = (0, verify_js_1.hexToBytes)(head.root_hash);
90
+ const statementRoot = (0, verify_js_1.hexToBytes)(statement.sth_root_hash);
91
+ // A head SMALLER than one the same issuer signed into a statement means the
92
+ // log went backwards. An append-only structure cannot do that, so this needs
93
+ // no proof to refuse.
94
+ if (headSize < treeSize) {
95
+ return {
96
+ verdict: exports.ANCHOR_INCONSISTENT,
97
+ detail: `the statement is anchored to tree size ${treeSize} but the log now publishes ` +
98
+ `${headSize} — an append-only log does not shrink`,
99
+ };
100
+ }
101
+ if (headSize === treeSize) {
102
+ // Consistency is equality at the same size, and it still has to be checked
103
+ // rather than assumed: two different roots signed for one tree size is the
104
+ // fork, stated as plainly as it can be.
105
+ if (!bytesEqual(headRoot, statementRoot)) {
106
+ return {
107
+ verdict: exports.ANCHOR_INCONSISTENT,
108
+ detail: `two different roots signed for tree size ${treeSize}: ` +
109
+ `${(0, verify_js_1.bytesToHex)(statementRoot.slice(0, 8))} in the statement, ` +
110
+ `${(0, verify_js_1.bytesToHex)(headRoot.slice(0, 8))} from the log`,
111
+ };
112
+ }
113
+ return {
114
+ verdict: exports.ANCHOR_CONFIRMED,
115
+ detail: `statement anchored to the log's current head (tree size ${headSize})`,
116
+ };
117
+ }
118
+ let proof;
119
+ try {
120
+ proof = await fetchConsistencyProof(apiUrl, treeSize, headSize);
121
+ }
122
+ catch (e) {
123
+ return unverified(`could not read a consistency proof: ${message(e)}`);
124
+ }
125
+ if (!(await (0, verify_js_1.verifyConsistency)(crypto, treeSize, headSize, statementRoot, headRoot, proof))) {
126
+ return {
127
+ verdict: exports.ANCHOR_INCONSISTENT,
128
+ detail: `the log cannot prove tree size ${treeSize} is a prefix of its current size ` +
129
+ `${headSize} — the statement is anchored to a different history`,
130
+ };
131
+ }
132
+ return {
133
+ verdict: exports.ANCHOR_CONFIRMED,
134
+ detail: `statement's head (tree size ${treeSize}) proved to be a prefix of the log's ` +
135
+ `current head (tree size ${headSize})`,
136
+ };
137
+ }
138
+ function unverified(detail) {
139
+ return { verdict: exports.ANCHOR_UNVERIFIED, detail };
140
+ }
141
+ function message(e) {
142
+ return e instanceof Error ? e.message : String(e);
143
+ }
144
+ function bytesEqual(a, b) {
145
+ if (a.length !== b.length)
146
+ return false;
147
+ for (let i = 0; i < a.length; i++)
148
+ if (a[i] !== b[i])
149
+ return false;
150
+ return true;
151
+ }
152
+ /** Read GET /v1/log/head and validate every field the signature covers.
153
+ *
154
+ * `log_id` is one of them. The endpoint serves none today (handler/log.go
155
+ * signedTreeHeadResponse) and BurnLedger's signer refuses to issue a head that
156
+ * names a log, but buildTreeHeadPayload picks the signing domain from the
157
+ * field, so a head that carries one has to reach it: dropped, the head rebuilds
158
+ * under burnledger.sth.v3, fails its signature and is reported unattributable —
159
+ * while the record path verifies the very same bytes. cmd/cli/anchor.go reads
160
+ * exactly these five fields, and all three CLIs are held to one fixture,
161
+ * testdata/named_head_anchor.json, so a head from a log that stamps its id gets
162
+ * one verdict rather than three.
163
+ */
164
+ async function fetchLogHead(apiUrl) {
165
+ const envelope = await getJson(`${base(apiUrl)}/v1/log/head`);
166
+ const body = unwrapData(envelope);
167
+ const treeSize = body.tree_size;
168
+ if (typeof treeSize !== "number" || !Number.isSafeInteger(treeSize) || treeSize < 0) {
169
+ throw new Error("log head: tree_size is not an exact non-negative integer");
170
+ }
171
+ requireHex(body, "root_hash", 32);
172
+ requireHex(body, "signature", 64);
173
+ // Absent and null both mean "names no log", as they do for Go's string
174
+ // field; anything else that is not a string is a head this build cannot
175
+ // read, which Go's decoder also refuses.
176
+ if (body.log_id != null && typeof body.log_id !== "string") {
177
+ throw new Error("log head: log_id is not a string");
178
+ }
179
+ // Validated here rather than left to the payload rebuild, so that a head with
180
+ // an unreadable timestamp reports the same thing the Go CLI reports.
181
+ try {
182
+ (0, verify_js_1.formatTimestamp)(body.timestamp);
183
+ }
184
+ catch {
185
+ throw new Error("log head: timestamp is not RFC 3339");
186
+ }
187
+ return body;
188
+ }
189
+ async function fetchConsistencyProof(apiUrl, oldSize, newSize) {
190
+ const url = `${base(apiUrl)}/v1/log/proof/consistency?old_size=${oldSize}&new_size=${newSize}`;
191
+ const body = unwrapData(await getJson(url));
192
+ const raw = body.proof;
193
+ // Go decodes `"proof": null` to an empty slice, and an empty proof is a real
194
+ // answer at some tree sizes. An absent or null field is that, not an error.
195
+ if (raw === null || raw === undefined)
196
+ return [];
197
+ if (!Array.isArray(raw))
198
+ throw new Error("consistency proof: proof is not an array");
199
+ return raw.map((h, i) => {
200
+ if (typeof h !== "string" || !/^[0-9a-fA-F]{64}$/.test(h)) {
201
+ throw new Error(`consistency proof: proof[${i}] is not 32 bytes of hex`);
202
+ }
203
+ return (0, verify_js_1.hexToBytes)(h);
204
+ });
205
+ }
206
+ function base(apiUrl) {
207
+ return apiUrl.replace(/\/+$/, "");
208
+ }
209
+ /** The API wraps every response in {"data": ...}. A body with no data object is
210
+ * an answer this build cannot read — never a finding about the record. */
211
+ function unwrapData(parsed) {
212
+ if (parsed === null || typeof parsed !== "object") {
213
+ throw new Error("response is not a JSON object");
214
+ }
215
+ const doc = parsed;
216
+ const data = doc.data;
217
+ if (data === null || typeof data !== "object") {
218
+ throw new Error("response has no data object");
219
+ }
220
+ return data;
221
+ }
222
+ function requireHex(doc, field, bytes) {
223
+ const v = doc[field];
224
+ if (typeof v !== "string" || !new RegExp(`^[0-9a-fA-F]{${bytes * 2}}$`).test(v)) {
225
+ throw new Error(`log head: ${field} is not ${bytes} bytes of hex`);
226
+ }
227
+ }
228
+ /** Read one public log endpoint under the same size cap and timeout as the
229
+ * status fetch, and with the same absence of credentials: every endpoint this
230
+ * file touches is public by design, and sending an API key to whatever
231
+ * --api-url happens to point at is a credential leak the check never needed. */
232
+ async function getJson(url) {
233
+ const controller = new AbortController();
234
+ const timer = setTimeout(() => { controller.abort(); }, REQUEST_TIMEOUT_MS);
235
+ try {
236
+ const res = await fetch(url, { signal: controller.signal });
237
+ const body = await readCapped(res);
238
+ if (!res.ok)
239
+ throw new Error(`API returned ${res.status}`);
240
+ try {
241
+ return JSON.parse(body);
242
+ }
243
+ catch (e) {
244
+ throw new Error(`parse response: ${message(e)}`);
245
+ }
246
+ }
247
+ finally {
248
+ clearTimeout(timer);
249
+ }
250
+ }
251
+ /** Read a response body, stopping at the cap instead of buffering whatever a
252
+ * hostile server decides to send. The stream is cancelled on the way out, so an
253
+ * endless body costs one megabyte and not the process. */
254
+ async function readCapped(res) {
255
+ const reader = res.body?.getReader();
256
+ if (reader === undefined)
257
+ return "";
258
+ const chunks = [];
259
+ let total = 0;
260
+ for (;;) {
261
+ const { done, value } = await reader.read();
262
+ if (done)
263
+ break;
264
+ total += value.length;
265
+ if (total > MAX_RESPONSE_BYTES) {
266
+ await reader.cancel();
267
+ throw new Error(`read response: body exceeds ${MAX_RESPONSE_BYTES} bytes`);
268
+ }
269
+ chunks.push(value);
270
+ }
271
+ const joined = new Uint8Array(total);
272
+ let at = 0;
273
+ for (const c of chunks) {
274
+ joined.set(c, at);
275
+ at += c.length;
276
+ }
277
+ return new TextDecoder().decode(joined);
278
+ }
279
+ //# sourceMappingURL=anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../src/anchor.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,25 @@
3
3
  * Single class — Node.js is all-async, no sync/async split needed.
4
4
  * Pagination uses AsyncIterable<T> via Paginator.
5
5
  */
6
- import type { ApiKeyListItem, ApiKeyResponse, Attestation, BatchAttestationResponse, CertificateResponse, CertificateStats, ConsistencyProof, InclusionProof, LogEntry, Profile, RevocationStatus, SignedTreeHead, System, SystemHealth, VerifyResult, Webhook, WebhookDelivery, WebhookRotateResponse } from "./models.js";
6
+ import type { ApiKeyListItem, ApiKeyResponse, Attestation, BatchAttestationResponse, BatchRevokeResponse, CertificateResponse, CertificateStats, ConsistencyProof, InclusionProof, LogEntry, Profile, RevocationStatus, SignedTreeHead, System, SystemHealth, VerifyResult, Webhook, WebhookDelivery, WebhookRotateResponse } from "./models.js";
7
7
  import { Paginator } from "./pagination.js";
8
8
  export interface BurnLedgerOptions {
9
9
  apiKey: string;
10
10
  baseUrl?: string;
11
11
  timeout?: number;
12
12
  maxRetries?: number;
13
+ /**
14
+ * Team to act as, sent as X-Team-ID beside the key.
15
+ *
16
+ * Omit it and the API uses the caller's default team — the first one they
17
+ * joined — which is the right answer for a single-team account and the wrong
18
+ * one for anybody else.
19
+ */
20
+ teamId?: string;
13
21
  }
22
+ /** Per-call cap on POST /v1/certificates/batch-revoke, the same 100 the
23
+ * server enforces (service.maxBatchRevoke). Chunk larger sets by this. */
24
+ export declare const MAX_BATCH_REVOKE = 100;
14
25
  export declare class BurnLedger {
15
26
  private readonly transport;
16
27
  constructor(opts: BurnLedgerOptions);
@@ -69,6 +80,11 @@ export declare class BurnLedger {
69
80
  revokeCertificate(certificateId: string, opts: {
70
81
  reason: string;
71
82
  }): Promise<CertificateResponse>;
83
+ /** Revokes up to MAX_BATCH_REVOKE records under one reason. Partial
84
+ * completion is the normal case, not an exception: inspect `errors`. */
85
+ batchRevokeCertificates(certificateIds: string[], opts: {
86
+ reason: string;
87
+ }): Promise<BatchRevokeResponse>;
72
88
  getCertificateStats(): Promise<CertificateStats>;
73
89
  exportCertificates(opts?: {
74
90
  format?: "csv" | "jsonl";
@@ -93,9 +109,17 @@ export declare class BurnLedger {
93
109
  listApiKeys(opts?: {
94
110
  limit?: number;
95
111
  }): Paginator<ApiKeyListItem>;
96
- createApiKey(): Promise<ApiKeyResponse>;
112
+ /** Create an API key. `teamId` pins it to one team the caller belongs to:
113
+ * a pinned key always acts for that team and refuses a conflicting
114
+ * `X-Team-ID` with 403. Omitted means unpinned — the server resolves the
115
+ * team per request, as every key created before pinning existed does. */
116
+ createApiKey(params?: {
117
+ teamId?: string;
118
+ }): Promise<ApiKeyResponse>;
97
119
  revokeApiKey(keyId: string): Promise<void>;
98
120
  getMe(): Promise<Profile>;
121
+ /** Rename the account. `email` must be the current address: changing it
122
+ * needs a dashboard session, and an API key is refused with 403. */
99
123
  updateMe(params: {
100
124
  name: string;
101
125
  email: string;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -38,11 +38,14 @@ var __importStar = (this && this.__importStar) || (function () {
38
38
  };
39
39
  })();
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.BurnLedger = void 0;
41
+ exports.BurnLedger = exports.MAX_BATCH_REVOKE = void 0;
42
42
  const errors_js_1 = require("./errors.js");
43
43
  const http_js_1 = require("./http.js");
44
44
  const models_js_1 = require("./models.js");
45
45
  const pagination_js_1 = require("./pagination.js");
46
+ /** Per-call cap on POST /v1/certificates/batch-revoke, the same 100 the
47
+ * server enforces (service.maxBatchRevoke). Chunk larger sets by this. */
48
+ exports.MAX_BATCH_REVOKE = 100;
46
49
  class BurnLedger {
47
50
  transport;
48
51
  constructor(opts) {
@@ -51,6 +54,7 @@ class BurnLedger {
51
54
  apiKey: opts.apiKey,
52
55
  timeout: opts.timeout ?? 30,
53
56
  maxRetries: opts.maxRetries ?? 2,
57
+ teamId: opts.teamId,
54
58
  });
55
59
  }
56
60
  close() {
@@ -180,6 +184,17 @@ class BurnLedger {
180
184
  const data = await this.transport.request("POST", `/v1/certificates/${certificateId}/revoke`, { json: { reason: opts.reason } });
181
185
  return (0, models_js_1.parseCertificateResponse)(data);
182
186
  }
187
+ /** Revokes up to MAX_BATCH_REVOKE records under one reason. Partial
188
+ * completion is the normal case, not an exception: inspect `errors`. */
189
+ async batchRevokeCertificates(certificateIds, opts) {
190
+ if (certificateIds.length > exports.MAX_BATCH_REVOKE) {
191
+ // The server answers 400 and revokes nothing; failing here spares the
192
+ // caller a rate-limited round trip for a request that cannot succeed.
193
+ throw new Error(`batchRevokeCertificates: ${certificateIds.length} ids exceeds the limit of ${exports.MAX_BATCH_REVOKE} per call`);
194
+ }
195
+ const data = await this.transport.request("POST", "/v1/certificates/batch-revoke", { json: { certificate_ids: certificateIds, reason: opts.reason } });
196
+ return (0, models_js_1.parseBatchRevokeResponse)(data);
197
+ }
183
198
  async getCertificateStats() {
184
199
  const data = await this.transport.request("GET", "/v1/certificates/stats");
185
200
  return (0, models_js_1.parseCertificateStats)(data);
@@ -233,10 +248,15 @@ class BurnLedger {
233
248
  listApiKeys(opts) {
234
249
  return new pagination_js_1.Paginator(this.transport, "/v1/api-keys", models_js_1.parseApiKeyListItem, { params: { limit: opts?.limit ?? 25 } });
235
250
  }
236
- async createApiKey() {
237
- const data = await this.transport.request("POST", "/v1/api-keys", {
238
- json: {},
239
- });
251
+ /** Create an API key. `teamId` pins it to one team the caller belongs to:
252
+ * a pinned key always acts for that team and refuses a conflicting
253
+ * `X-Team-ID` with 403. Omitted means unpinned — the server resolves the
254
+ * team per request, as every key created before pinning existed does. */
255
+ async createApiKey(params) {
256
+ const json = {};
257
+ if (params?.teamId !== undefined)
258
+ json.team_id = params.teamId;
259
+ const data = await this.transport.request("POST", "/v1/api-keys", { json });
240
260
  return (0, models_js_1.parseApiKeyResponse)(data);
241
261
  }
242
262
  async revokeApiKey(keyId) {
@@ -247,6 +267,8 @@ class BurnLedger {
247
267
  const data = await this.transport.request("GET", "/v1/me");
248
268
  return (0, models_js_1.parseProfile)(data);
249
269
  }
270
+ /** Rename the account. `email` must be the current address: changing it
271
+ * needs a dashboard session, and an API key is refused with 403. */
250
272
  async updateMe(params) {
251
273
  const data = await this.transport.request("PATCH", "/v1/me", {
252
274
  json: { name: params.name, email: params.email },
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}