burnledger 0.1.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 (99) hide show
  1. package/README.md +166 -0
  2. package/dist/cjs/client.d.ts +84 -0
  3. package/dist/cjs/client.d.ts.map +1 -0
  4. package/dist/cjs/client.js +275 -0
  5. package/dist/cjs/client.js.map +1 -0
  6. package/dist/cjs/crypto-browser.d.ts +7 -0
  7. package/dist/cjs/crypto-browser.d.ts.map +1 -0
  8. package/dist/cjs/crypto-browser.js +37 -0
  9. package/dist/cjs/crypto-browser.js.map +1 -0
  10. package/dist/cjs/crypto-node.d.ts +4 -0
  11. package/dist/cjs/crypto-node.d.ts.map +1 -0
  12. package/dist/cjs/crypto-node.js +30 -0
  13. package/dist/cjs/crypto-node.js.map +1 -0
  14. package/dist/cjs/crypto.d.ts +6 -0
  15. package/dist/cjs/crypto.d.ts.map +1 -0
  16. package/dist/cjs/crypto.js +4 -0
  17. package/dist/cjs/crypto.js.map +1 -0
  18. package/dist/cjs/errors.d.ts +76 -0
  19. package/dist/cjs/errors.d.ts.map +1 -0
  20. package/dist/cjs/errors.js +119 -0
  21. package/dist/cjs/errors.js.map +1 -0
  22. package/dist/cjs/http.d.ts +35 -0
  23. package/dist/cjs/http.d.ts.map +1 -0
  24. package/dist/cjs/http.js +136 -0
  25. package/dist/cjs/http.js.map +1 -0
  26. package/dist/cjs/index.browser.d.ts +31 -0
  27. package/dist/cjs/index.browser.d.ts.map +1 -0
  28. package/dist/cjs/index.browser.js +54 -0
  29. package/dist/cjs/index.browser.js.map +1 -0
  30. package/dist/cjs/index.d.ts +26 -0
  31. package/dist/cjs/index.d.ts.map +1 -0
  32. package/dist/cjs/index.js +50 -0
  33. package/dist/cjs/index.js.map +1 -0
  34. package/dist/cjs/models.d.ts +119 -0
  35. package/dist/cjs/models.d.ts.map +1 -0
  36. package/dist/cjs/models.js +144 -0
  37. package/dist/cjs/models.js.map +1 -0
  38. package/dist/cjs/package.json +1 -0
  39. package/dist/cjs/pagination.d.ts +21 -0
  40. package/dist/cjs/pagination.d.ts.map +1 -0
  41. package/dist/cjs/pagination.js +50 -0
  42. package/dist/cjs/pagination.js.map +1 -0
  43. package/dist/cjs/verify.d.ts +47 -0
  44. package/dist/cjs/verify.d.ts.map +1 -0
  45. package/dist/cjs/verify.js +471 -0
  46. package/dist/cjs/verify.js.map +1 -0
  47. package/dist/cjs/webhooks.d.ts +17 -0
  48. package/dist/cjs/webhooks.d.ts.map +1 -0
  49. package/dist/cjs/webhooks.js +39 -0
  50. package/dist/cjs/webhooks.js.map +1 -0
  51. package/dist/esm/client.d.ts +84 -0
  52. package/dist/esm/client.d.ts.map +1 -0
  53. package/dist/esm/client.js +238 -0
  54. package/dist/esm/client.js.map +1 -0
  55. package/dist/esm/crypto-browser.d.ts +7 -0
  56. package/dist/esm/crypto-browser.d.ts.map +1 -0
  57. package/dist/esm/crypto-browser.js +34 -0
  58. package/dist/esm/crypto-browser.js.map +1 -0
  59. package/dist/esm/crypto-node.d.ts +4 -0
  60. package/dist/esm/crypto-node.d.ts.map +1 -0
  61. package/dist/esm/crypto-node.js +27 -0
  62. package/dist/esm/crypto-node.js.map +1 -0
  63. package/dist/esm/crypto.d.ts +6 -0
  64. package/dist/esm/crypto.d.ts.map +1 -0
  65. package/dist/esm/crypto.js +3 -0
  66. package/dist/esm/crypto.js.map +1 -0
  67. package/dist/esm/errors.d.ts +76 -0
  68. package/dist/esm/errors.d.ts.map +1 -0
  69. package/dist/esm/errors.js +105 -0
  70. package/dist/esm/errors.js.map +1 -0
  71. package/dist/esm/http.d.ts +35 -0
  72. package/dist/esm/http.d.ts.map +1 -0
  73. package/dist/esm/http.js +132 -0
  74. package/dist/esm/http.js.map +1 -0
  75. package/dist/esm/index.browser.d.ts +31 -0
  76. package/dist/esm/index.browser.d.ts.map +1 -0
  77. package/dist/esm/index.browser.js +31 -0
  78. package/dist/esm/index.browser.js.map +1 -0
  79. package/dist/esm/index.d.ts +26 -0
  80. package/dist/esm/index.d.ts.map +1 -0
  81. package/dist/esm/index.js +26 -0
  82. package/dist/esm/index.js.map +1 -0
  83. package/dist/esm/models.d.ts +119 -0
  84. package/dist/esm/models.d.ts.map +1 -0
  85. package/dist/esm/models.js +132 -0
  86. package/dist/esm/models.js.map +1 -0
  87. package/dist/esm/pagination.d.ts +21 -0
  88. package/dist/esm/pagination.d.ts.map +1 -0
  89. package/dist/esm/pagination.js +46 -0
  90. package/dist/esm/pagination.js.map +1 -0
  91. package/dist/esm/verify.d.ts +47 -0
  92. package/dist/esm/verify.d.ts.map +1 -0
  93. package/dist/esm/verify.js +462 -0
  94. package/dist/esm/verify.js.map +1 -0
  95. package/dist/esm/webhooks.d.ts +17 -0
  96. package/dist/esm/webhooks.d.ts.map +1 -0
  97. package/dist/esm/webhooks.js +36 -0
  98. package/dist/esm/webhooks.js.map +1 -0
  99. package/package.json +62 -0
@@ -0,0 +1,132 @@
1
+ /** HTTP transport layer wrapping native fetch.
2
+ *
3
+ * Handles: Bearer auth, response envelope unwrapping, retry on 5xx/transport
4
+ * errors, Retry-After respect on 429, and raw byte streaming for PDFs.
5
+ */
6
+ import { raiseForError } from "./errors.js";
7
+ export class Transport {
8
+ baseUrl;
9
+ apiKey;
10
+ timeout;
11
+ maxRetries;
12
+ constructor(opts) {
13
+ this.baseUrl = opts.baseUrl.replace(/\/+$/, "");
14
+ this.apiKey = opts.apiKey;
15
+ this.timeout = opts.timeout;
16
+ this.maxRetries = opts.maxRetries;
17
+ }
18
+ /** Make a request and return the unwrapped `data` field. */
19
+ async request(method, path, opts) {
20
+ const envelope = await this.requestRaw(method, path, opts);
21
+ return envelope.data;
22
+ }
23
+ /** Make a request and return the full response envelope (for pagination). */
24
+ async requestRaw(method, path, opts) {
25
+ const authenticated = opts?.authenticated ?? true;
26
+ const headers = {
27
+ Accept: "application/json",
28
+ };
29
+ if (authenticated) {
30
+ headers["Authorization"] = `Bearer ${this.apiKey}`;
31
+ }
32
+ let url = `${this.baseUrl}${path}`;
33
+ if (opts?.params) {
34
+ const qs = new URLSearchParams();
35
+ for (const [k, v] of Object.entries(opts.params)) {
36
+ qs.set(k, String(v));
37
+ }
38
+ url += `?${qs.toString()}`;
39
+ }
40
+ const body = opts?.json !== undefined ? JSON.stringify(opts.json) : undefined;
41
+ if (body !== undefined) {
42
+ headers["Content-Type"] = "application/json";
43
+ }
44
+ let lastError;
45
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
46
+ if (attempt > 0) {
47
+ await sleep(500 * 2 ** (attempt - 1));
48
+ }
49
+ const controller = new AbortController();
50
+ const timer = setTimeout(() => controller.abort(), this.timeout * 1000);
51
+ let resp;
52
+ try {
53
+ resp = await fetch(url, {
54
+ method,
55
+ headers,
56
+ body,
57
+ signal: controller.signal,
58
+ });
59
+ }
60
+ catch (err) {
61
+ clearTimeout(timer);
62
+ lastError = err instanceof Error ? err : new Error(String(err));
63
+ continue;
64
+ }
65
+ finally {
66
+ clearTimeout(timer);
67
+ }
68
+ if (resp.status === 204) {
69
+ return {};
70
+ }
71
+ if (resp.status === 429) {
72
+ const retryAfter = parseRetryAfter(resp);
73
+ const errorBody = await safeJson(resp);
74
+ raiseForError(resp.status, errorBody, retryAfter);
75
+ }
76
+ if (resp.status >= 500 && attempt < this.maxRetries) {
77
+ lastError = new Error(`Server error ${resp.status}`);
78
+ continue;
79
+ }
80
+ if (resp.status >= 400) {
81
+ const errorBody = await safeJson(resp);
82
+ raiseForError(resp.status, errorBody);
83
+ }
84
+ return (await resp.json());
85
+ }
86
+ throw new Error(`Request failed after ${this.maxRetries + 1} attempts: ${lastError?.message}`);
87
+ }
88
+ /** Make a request and return raw bytes (for PDF downloads). */
89
+ async requestBytes(method, path, opts) {
90
+ const authenticated = opts?.authenticated ?? true;
91
+ const headers = {};
92
+ if (authenticated) {
93
+ headers["Authorization"] = `Bearer ${this.apiKey}`;
94
+ }
95
+ const url = `${this.baseUrl}${path}`;
96
+ const controller = new AbortController();
97
+ const timer = setTimeout(() => controller.abort(), this.timeout * 1000);
98
+ let resp;
99
+ try {
100
+ resp = await fetch(url, { method, headers, signal: controller.signal });
101
+ }
102
+ finally {
103
+ clearTimeout(timer);
104
+ }
105
+ if (resp.status >= 400) {
106
+ const errorBody = await safeJson(resp);
107
+ raiseForError(resp.status, errorBody);
108
+ }
109
+ return new Uint8Array(await resp.arrayBuffer());
110
+ }
111
+ }
112
+ function parseRetryAfter(resp) {
113
+ const raw = resp.headers.get("Retry-After");
114
+ if (raw == null)
115
+ return undefined;
116
+ const n = Number(raw);
117
+ return Number.isFinite(n) ? n : undefined;
118
+ }
119
+ async function safeJson(resp) {
120
+ try {
121
+ return (await resp.json());
122
+ }
123
+ catch {
124
+ return {
125
+ error: { code: "UNKNOWN", message: await resp.text(), request_id: "" },
126
+ };
127
+ }
128
+ }
129
+ function sleep(ms) {
130
+ return new Promise((resolve) => setTimeout(resolve, ms));
131
+ }
132
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /** BurnLedger TypeScript SDK — browser entry point.
2
+ *
3
+ * Uses WebCrypto (crypto.subtle) for Ed25519 and SHA-256.
4
+ * Requires Chrome 113+, Firefox 128+, or Safari 17+.
5
+ *
6
+ * Does NOT export verifyWebhookSignature (server-side only, uses node:crypto).
7
+ */
8
+ export { BurnLedger } from "./client.js";
9
+ export type { BurnLedgerOptions } from "./client.js";
10
+ export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, } from "./errors.js";
11
+ export { Transport } from "./http.js";
12
+ export type { TransportOptions } from "./http.js";
13
+ export type { ProofMode, AttestationStatus, CertificateStatus, TransparencyStatus, HealthStatus, ConnectorType, HashScope, LogEntryType, VerificationResult, TransparencyResult, System, SystemAttestation, Attestation, VerificationSystem, VerifyResult, CertificateResponse, RevocationStatus, Webhook, SignedTreeHead, LogEntry, InclusionProof, ConsistencyProof, } from "./models.js";
14
+ export { Paginator } from "./pagination.js";
15
+ export type { CryptoOps } from "./crypto.js";
16
+ export type { PublicKeyInfo } from "./verify.js";
17
+ export { issuanceBytes, hexToBytes, bytesToHex } from "./verify.js";
18
+ import type { PublicKeyInfo } from "./verify.js";
19
+ import type { VerificationResult, TransparencyResult } from "./models.js";
20
+ type Cert = Record<string, unknown>;
21
+ /** Verify all signatures on a deletion certificate offline. */
22
+ export declare function verifyCertificate(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>): Promise<VerificationResult>;
23
+ /** Verify the transparency proof embedded in a certificate. */
24
+ export declare function verifyTransparency(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>): Promise<TransparencyResult>;
25
+ /** Construct a PublicKeyInfo from a hex-encoded Ed25519 public key. */
26
+ export declare function publicKeyFromHex(hexKey: string, opts?: {
27
+ revoked?: boolean;
28
+ }): Promise<PublicKeyInfo>;
29
+ /** Verify a Merkle consistency proof between two tree states (RFC 6962). */
30
+ export declare function verifyConsistency(oldSize: number, newSize: number, oldRoot: Uint8Array, newRoot: Uint8Array, proof: Uint8Array[]): Promise<boolean>;
31
+ //# sourceMappingURL=index.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../src/index.browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,QAAQ,EACR,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1E,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,aAAa,CAAC,CAExB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,OAAO,CAAC,CAElB"}
@@ -0,0 +1,31 @@
1
+ /** BurnLedger TypeScript SDK — browser entry point.
2
+ *
3
+ * Uses WebCrypto (crypto.subtle) for Ed25519 and SHA-256.
4
+ * Requires Chrome 113+, Firefox 128+, or Safari 17+.
5
+ *
6
+ * Does NOT export verifyWebhookSignature (server-side only, uses node:crypto).
7
+ */
8
+ export { BurnLedger } from "./client.js";
9
+ export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, } from "./errors.js";
10
+ export { Transport } from "./http.js";
11
+ export { Paginator } from "./pagination.js";
12
+ export { issuanceBytes, hexToBytes, bytesToHex } from "./verify.js";
13
+ import { browserCrypto } from "./crypto-browser.js";
14
+ import { verifyCertificate as _verifyCertificate, verifyTransparency as _verifyTransparency, verifyConsistency as _verifyConsistency, publicKeyFromHex as _publicKeyFromHex, } from "./verify.js";
15
+ /** Verify all signatures on a deletion certificate offline. */
16
+ export function verifyCertificate(certificate, publicKeys) {
17
+ return _verifyCertificate(browserCrypto, certificate, publicKeys);
18
+ }
19
+ /** Verify the transparency proof embedded in a certificate. */
20
+ export function verifyTransparency(certificate, publicKeys) {
21
+ return _verifyTransparency(browserCrypto, certificate, publicKeys);
22
+ }
23
+ /** Construct a PublicKeyInfo from a hex-encoded Ed25519 public key. */
24
+ export function publicKeyFromHex(hexKey, opts) {
25
+ return _publicKeyFromHex(browserCrypto, hexKey, opts);
26
+ }
27
+ /** Verify a Merkle consistency proof between two tree states (RFC 6962). */
28
+ export function verifyConsistency(oldSize, newSize, oldRoot, newRoot, proof) {
29
+ return _verifyConsistency(browserCrypto, oldSize, newSize, oldRoot, newRoot, proof);
30
+ }
31
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../src/index.browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AA4BtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,kBAAkB,IAAI,mBAAmB,EACzC,iBAAiB,IAAI,kBAAkB,EACvC,gBAAgB,IAAI,iBAAiB,GACtC,MAAM,aAAa,CAAC;AAMrB,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB,CAC/B,WAAiB,EACjB,UAAsC;IAEtC,OAAO,kBAAkB,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,kBAAkB,CAChC,WAAiB,EACjB,UAAsC;IAEtC,OAAO,mBAAmB,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACrE,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,IAA4B;IAE5B,OAAO,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,OAAe,EACf,OAAmB,EACnB,OAAmB,EACnB,KAAmB;IAEnB,OAAO,kBAAkB,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACtF,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** BurnLedger TypeScript SDK — public API (Node.js entry point). */
2
+ export { BurnLedger } from "./client.js";
3
+ export type { BurnLedgerOptions } from "./client.js";
4
+ export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, } from "./errors.js";
5
+ export { Transport } from "./http.js";
6
+ export type { TransportOptions } from "./http.js";
7
+ export type { ProofMode, AttestationStatus, CertificateStatus, TransparencyStatus, HealthStatus, ConnectorType, HashScope, LogEntryType, VerificationResult, TransparencyResult, System, SystemAttestation, Attestation, VerificationSystem, VerifyResult, CertificateResponse, RevocationStatus, Webhook, SignedTreeHead, LogEntry, InclusionProof, ConsistencyProof, } from "./models.js";
8
+ export { Paginator } from "./pagination.js";
9
+ export type { CryptoOps } from "./crypto.js";
10
+ export type { PublicKeyInfo } from "./verify.js";
11
+ export { issuanceBytes, hexToBytes, bytesToHex } from "./verify.js";
12
+ import type { PublicKeyInfo } from "./verify.js";
13
+ import type { VerificationResult, TransparencyResult } from "./models.js";
14
+ type Cert = Record<string, unknown>;
15
+ /** Verify all signatures on a deletion certificate offline. */
16
+ export declare function verifyCertificate(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>): Promise<VerificationResult>;
17
+ /** Verify the transparency proof embedded in a certificate. */
18
+ export declare function verifyTransparency(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>): Promise<TransparencyResult>;
19
+ /** Construct a PublicKeyInfo from a hex-encoded Ed25519 public key. */
20
+ export declare function publicKeyFromHex(hexKey: string, opts?: {
21
+ revoked?: boolean;
22
+ }): Promise<PublicKeyInfo>;
23
+ /** Verify a Merkle consistency proof between two tree states (RFC 6962). */
24
+ export declare function verifyConsistency(oldSize: number, newSize: number, oldRoot: Uint8Array, newRoot: Uint8Array, proof: Uint8Array[]): Promise<boolean>;
25
+ export { verifyWebhookSignature } from "./webhooks.js";
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,QAAQ,EACR,cAAc,EACd,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1E,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,aAAa,CAAC,CAExB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** BurnLedger TypeScript SDK — public API (Node.js entry point). */
2
+ export { BurnLedger } from "./client.js";
3
+ export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, } from "./errors.js";
4
+ export { Transport } from "./http.js";
5
+ export { Paginator } from "./pagination.js";
6
+ export { issuanceBytes, hexToBytes, bytesToHex } from "./verify.js";
7
+ import { nodeCrypto } from "./crypto-node.js";
8
+ import { verifyCertificate as _verifyCertificate, verifyTransparency as _verifyTransparency, verifyConsistency as _verifyConsistency, publicKeyFromHex as _publicKeyFromHex, } from "./verify.js";
9
+ /** Verify all signatures on a deletion certificate offline. */
10
+ export function verifyCertificate(certificate, publicKeys) {
11
+ return _verifyCertificate(nodeCrypto, certificate, publicKeys);
12
+ }
13
+ /** Verify the transparency proof embedded in a certificate. */
14
+ export function verifyTransparency(certificate, publicKeys) {
15
+ return _verifyTransparency(nodeCrypto, certificate, publicKeys);
16
+ }
17
+ /** Construct a PublicKeyInfo from a hex-encoded Ed25519 public key. */
18
+ export function publicKeyFromHex(hexKey, opts) {
19
+ return _publicKeyFromHex(nodeCrypto, hexKey, opts);
20
+ }
21
+ /** Verify a Merkle consistency proof between two tree states (RFC 6962). */
22
+ export function verifyConsistency(oldSize, newSize, oldRoot, newRoot, proof) {
23
+ return _verifyConsistency(nodeCrypto, oldSize, newSize, oldRoot, newRoot, proof);
24
+ }
25
+ export { verifyWebhookSignature } from "./webhooks.js";
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,WAAW,EACX,YAAY,EACZ,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AA4BtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,kBAAkB,IAAI,mBAAmB,EACzC,iBAAiB,IAAI,kBAAkB,EACvC,gBAAgB,IAAI,iBAAiB,GACtC,MAAM,aAAa,CAAC;AAMrB,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB,CAC/B,WAAiB,EACjB,UAAsC;IAEtC,OAAO,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,kBAAkB,CAChC,WAAiB,EACjB,UAAsC;IAEtC,OAAO,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAClE,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,IAA4B;IAE5B,OAAO,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,OAAe,EACf,OAAmB,EACnB,OAAmB,EACnB,KAAmB;IAEnB,OAAO,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,119 @@
1
+ /** Readonly interfaces and parser functions for all BurnLedger API types.
2
+ *
3
+ * String literal unions for enums (no runtime cost).
4
+ * Parser functions are pure — snake_case JSON to camelCase with Date parsing.
5
+ */
6
+ export type ProofMode = "count" | "merkle";
7
+ export type AttestationStatus = "PENDING_VERIFICATION" | "VERIFICATION_FAILED" | "CERTIFIED";
8
+ export type CertificateStatus = "ACTIVE" | "REVOKED";
9
+ export type TransparencyStatus = "INCLUDED" | "PENDING" | "FAILED";
10
+ export type HealthStatus = "HEALTHY" | "UNHEALTHY" | "UNKNOWN";
11
+ export type ConnectorType = "postgresql" | "mongodb" | "s3" | "redis" | "elasticsearch" | "custom";
12
+ export type HashScope = "full" | "existence";
13
+ export type LogEntryType = "CERTIFICATE" | "REVOCATION";
14
+ /** Result of offline certificate signature verification. */
15
+ export type VerificationResult = "VALID" | "INVALID";
16
+ /** Result of transparency proof verification. */
17
+ export type TransparencyResult = "INCLUDED" | "INVALID" | "NOT_AVAILABLE";
18
+ export interface System {
19
+ readonly id: string;
20
+ readonly name: string;
21
+ readonly connectorType: ConnectorType;
22
+ readonly subjectQuery: string;
23
+ readonly hashScope: HashScope;
24
+ readonly maxRecords: number;
25
+ readonly maxBytes: number;
26
+ readonly queryTimeout: string;
27
+ readonly createdAt: Date;
28
+ readonly healthStatus: HealthStatus;
29
+ readonly healthCheckedAt: Date | undefined;
30
+ readonly healthError: string | undefined;
31
+ }
32
+ export interface SystemAttestation {
33
+ readonly systemId: string;
34
+ readonly systemName: string;
35
+ readonly recordCount: number;
36
+ readonly hashScope: HashScope;
37
+ readonly observedAt: Date;
38
+ }
39
+ export interface Attestation {
40
+ readonly id: string;
41
+ readonly subjectHash: string;
42
+ readonly proofMode: ProofMode;
43
+ readonly status: AttestationStatus;
44
+ readonly systems: readonly SystemAttestation[];
45
+ readonly attestedAt: Date;
46
+ readonly expiresAt: Date;
47
+ readonly certificateId: string | undefined;
48
+ }
49
+ export interface VerificationSystem {
50
+ readonly systemId: string;
51
+ readonly systemName: string;
52
+ readonly recordCount: number;
53
+ }
54
+ export interface VerifyResult {
55
+ readonly attestationId: string;
56
+ readonly status: AttestationStatus;
57
+ readonly systems: readonly VerificationSystem[];
58
+ readonly certificate: CertificateResponse | undefined;
59
+ }
60
+ export interface CertificateResponse {
61
+ readonly id: string;
62
+ readonly attestationId: string;
63
+ readonly formatVersion: string;
64
+ readonly issuedAt: Date;
65
+ readonly status: CertificateStatus;
66
+ readonly transparencyStatus: TransparencyStatus;
67
+ readonly revokedAt: Date | undefined;
68
+ readonly revocationReason: string | undefined;
69
+ readonly certificate: Record<string, unknown>;
70
+ }
71
+ export interface RevocationStatus {
72
+ readonly certificateId: string;
73
+ readonly status: CertificateStatus;
74
+ readonly revokedAt: Date | undefined;
75
+ readonly reason: string | undefined;
76
+ }
77
+ export interface Webhook {
78
+ readonly id: string;
79
+ readonly url: string;
80
+ readonly secret: string | undefined;
81
+ readonly createdAt: Date;
82
+ }
83
+ export interface SignedTreeHead {
84
+ readonly treeSize: number;
85
+ readonly rootHash: string;
86
+ readonly timestamp: Date;
87
+ readonly signature: string;
88
+ }
89
+ export interface LogEntry {
90
+ readonly index: number;
91
+ readonly entryType: LogEntryType;
92
+ readonly certificateId: string;
93
+ readonly hash: string;
94
+ readonly appendedAt: Date;
95
+ }
96
+ export interface InclusionProof {
97
+ readonly index: number;
98
+ readonly treeSize: number;
99
+ readonly inclusionProof: readonly string[];
100
+ readonly signedTreeHead: SignedTreeHead;
101
+ }
102
+ export interface ConsistencyProof {
103
+ readonly oldSize: number;
104
+ readonly newSize: number;
105
+ readonly proof: readonly string[];
106
+ }
107
+ type Raw = Record<string, any>;
108
+ export declare function parseSystem(d: Raw): System;
109
+ export declare function parseAttestation(d: Raw): Attestation;
110
+ export declare function parseVerifyResult(d: Raw): VerifyResult;
111
+ export declare function parseCertificateResponse(d: Raw): CertificateResponse;
112
+ export declare function parseRevocationStatus(d: Raw): RevocationStatus;
113
+ export declare function parseWebhook(d: Raw): Webhook;
114
+ export declare function parseSignedTreeHead(d: Raw): SignedTreeHead;
115
+ export declare function parseLogEntry(d: Raw): LogEntry;
116
+ export declare function parseInclusionProof(d: Raw): InclusionProof;
117
+ export declare function parseConsistencyProof(d: Raw): ConsistencyProof;
118
+ export {};
119
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ /** Readonly interfaces and parser functions for all BurnLedger API types.
2
+ *
3
+ * String literal unions for enums (no runtime cost).
4
+ * Parser functions are pure — snake_case JSON to camelCase with Date parsing.
5
+ */
6
+ // ---------------------------------------------------------------------------
7
+ // Timestamp parsing
8
+ // ---------------------------------------------------------------------------
9
+ function parseDt(raw) {
10
+ return new Date(raw);
11
+ }
12
+ function parseDtOpt(raw) {
13
+ if (raw == null)
14
+ return undefined;
15
+ return parseDt(raw);
16
+ }
17
+ export function parseSystem(d) {
18
+ return {
19
+ id: d.id,
20
+ name: d.name,
21
+ connectorType: d.connector_type,
22
+ subjectQuery: d.subject_query,
23
+ hashScope: d.hash_scope,
24
+ maxRecords: d.max_records,
25
+ maxBytes: d.max_bytes,
26
+ queryTimeout: d.query_timeout,
27
+ createdAt: parseDt(d.created_at),
28
+ healthStatus: (d.health_status ?? "UNKNOWN"),
29
+ healthCheckedAt: parseDtOpt(d.health_checked_at),
30
+ healthError: d.health_error ?? undefined,
31
+ };
32
+ }
33
+ function parseSystemAttestation(d) {
34
+ return {
35
+ systemId: d.system_id,
36
+ systemName: d.system_name,
37
+ recordCount: d.record_count,
38
+ hashScope: d.hash_scope,
39
+ observedAt: parseDt(d.observed_at),
40
+ };
41
+ }
42
+ export function parseAttestation(d) {
43
+ return {
44
+ id: d.id,
45
+ subjectHash: d.subject_hash,
46
+ proofMode: d.proof_mode,
47
+ status: d.status,
48
+ systems: (d.systems ?? []).map(parseSystemAttestation),
49
+ attestedAt: parseDt(d.attested_at),
50
+ expiresAt: parseDt(d.expires_at),
51
+ certificateId: d.certificate_id ?? undefined,
52
+ };
53
+ }
54
+ function parseVerificationSystem(d) {
55
+ return {
56
+ systemId: d.system_id,
57
+ systemName: d.system_name,
58
+ recordCount: d.record_count,
59
+ };
60
+ }
61
+ export function parseVerifyResult(d) {
62
+ return {
63
+ attestationId: d.attestation_id,
64
+ status: d.status,
65
+ systems: (d.systems ?? []).map(parseVerificationSystem),
66
+ certificate: d.certificate
67
+ ? parseCertificateResponse(d.certificate)
68
+ : undefined,
69
+ };
70
+ }
71
+ export function parseCertificateResponse(d) {
72
+ return {
73
+ id: d.id,
74
+ attestationId: d.attestation_id,
75
+ formatVersion: d.format_version,
76
+ issuedAt: parseDt(d.issued_at),
77
+ status: d.status,
78
+ transparencyStatus: d.transparency_status,
79
+ revokedAt: parseDtOpt(d.revoked_at),
80
+ revocationReason: d.revocation_reason ?? undefined,
81
+ certificate: d.certificate,
82
+ };
83
+ }
84
+ export function parseRevocationStatus(d) {
85
+ return {
86
+ certificateId: d.certificate_id,
87
+ status: d.status,
88
+ revokedAt: parseDtOpt(d.revoked_at),
89
+ reason: d.reason ?? undefined,
90
+ };
91
+ }
92
+ export function parseWebhook(d) {
93
+ return {
94
+ id: d.id,
95
+ url: d.url,
96
+ secret: d.secret ?? undefined,
97
+ createdAt: parseDt(d.created_at),
98
+ };
99
+ }
100
+ export function parseSignedTreeHead(d) {
101
+ return {
102
+ treeSize: d.tree_size,
103
+ rootHash: d.root_hash,
104
+ timestamp: parseDt(d.timestamp),
105
+ signature: d.signature,
106
+ };
107
+ }
108
+ export function parseLogEntry(d) {
109
+ return {
110
+ index: d.index,
111
+ entryType: d.entry_type,
112
+ certificateId: d.certificate_id,
113
+ hash: d.hash,
114
+ appendedAt: parseDt(d.appended_at),
115
+ };
116
+ }
117
+ export function parseInclusionProof(d) {
118
+ return {
119
+ index: d.index,
120
+ treeSize: d.tree_size,
121
+ inclusionProof: d.inclusion_proof ?? [],
122
+ signedTreeHead: parseSignedTreeHead(d.signed_tree_head),
123
+ };
124
+ }
125
+ export function parseConsistencyProof(d) {
126
+ return {
127
+ oldSize: d.old_size,
128
+ newSize: d.new_size,
129
+ proof: d.proof ?? [],
130
+ };
131
+ }
132
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** Cursor-based auto-pagination using AsyncIterable.
2
+ *
3
+ * Lazily fetches pages on first iteration and follows `next_cursor`
4
+ * until the server omits it.
5
+ */
6
+ import type { Transport } from "./http.js";
7
+ type Raw = Record<string, unknown>;
8
+ export declare class Paginator<T> implements AsyncIterable<T> {
9
+ private readonly transport;
10
+ private readonly path;
11
+ private readonly parser;
12
+ private readonly params;
13
+ private readonly authenticated;
14
+ constructor(transport: Transport, path: string, parser: (d: Raw) => T, opts: {
15
+ params: Record<string, string | number>;
16
+ authenticated?: boolean;
17
+ });
18
+ [Symbol.asyncIterator](): AsyncIterableIterator<T>;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/pagination.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnC,qBAAa,SAAS,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAGtC,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EACrB,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB;IASI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;CA8B1D"}
@@ -0,0 +1,46 @@
1
+ /** Cursor-based auto-pagination using AsyncIterable.
2
+ *
3
+ * Lazily fetches pages on first iteration and follows `next_cursor`
4
+ * until the server omits it.
5
+ */
6
+ export class Paginator {
7
+ transport;
8
+ path;
9
+ parser;
10
+ params;
11
+ authenticated;
12
+ constructor(transport, path, parser, opts) {
13
+ this.transport = transport;
14
+ this.path = path;
15
+ this.parser = parser;
16
+ this.params = opts.params;
17
+ this.authenticated = opts.authenticated ?? true;
18
+ }
19
+ async *[Symbol.asyncIterator]() {
20
+ let cursor;
21
+ let started = false;
22
+ while (true) {
23
+ const params = { ...this.params };
24
+ if (cursor !== undefined) {
25
+ params["cursor"] = cursor;
26
+ }
27
+ else if (started) {
28
+ return;
29
+ }
30
+ const envelope = await this.transport.requestRaw("GET", this.path, {
31
+ params,
32
+ authenticated: this.authenticated,
33
+ });
34
+ const items = (envelope.data ?? []);
35
+ for (const item of items) {
36
+ yield this.parser(item);
37
+ }
38
+ cursor = envelope.next_cursor;
39
+ started = true;
40
+ if (cursor == null) {
41
+ return;
42
+ }
43
+ }
44
+ }
45
+ }
46
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/pagination.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,OAAO,SAAS;IACH,SAAS,CAAY;IACrB,IAAI,CAAS;IACb,MAAM,CAAgB;IACtB,MAAM,CAAkC;IACxC,aAAa,CAAU;IAExC,YACE,SAAoB,EACpB,IAAY,EACZ,MAAqB,EACrB,IAGC;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAoC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACnE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YAC5B,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjE,MAAM;gBACN,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAU,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,GAAG,QAAQ,CAAC,WAAiC,CAAC;YACpD,OAAO,GAAG,IAAI,CAAC;YAEf,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;CACF"}