burnledger 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +182 -0
  2. package/dist/cjs/cli.d.ts +16 -0
  3. package/dist/cjs/cli.d.ts.map +1 -0
  4. package/dist/cjs/cli.js +168 -0
  5. package/dist/cjs/cli.js.map +1 -0
  6. package/dist/cjs/client.d.ts +116 -0
  7. package/dist/cjs/client.d.ts.map +1 -0
  8. package/dist/cjs/client.js +353 -0
  9. package/dist/cjs/client.js.map +1 -0
  10. package/dist/cjs/crypto-browser.d.ts +7 -0
  11. package/dist/cjs/crypto-browser.d.ts.map +1 -0
  12. package/dist/cjs/crypto-browser.js +37 -0
  13. package/dist/cjs/crypto-browser.js.map +1 -0
  14. package/dist/cjs/crypto-node.d.ts +4 -0
  15. package/dist/cjs/crypto-node.d.ts.map +1 -0
  16. package/dist/cjs/crypto-node.js +30 -0
  17. package/dist/cjs/crypto-node.js.map +1 -0
  18. package/dist/cjs/crypto.d.ts +6 -0
  19. package/dist/cjs/crypto.d.ts.map +1 -0
  20. package/dist/cjs/crypto.js +4 -0
  21. package/dist/cjs/crypto.js.map +1 -0
  22. package/dist/cjs/errors.d.ts +76 -0
  23. package/dist/cjs/errors.d.ts.map +1 -0
  24. package/dist/cjs/errors.js +119 -0
  25. package/dist/cjs/errors.js.map +1 -0
  26. package/dist/cjs/http.d.ts +35 -0
  27. package/dist/cjs/http.d.ts.map +1 -0
  28. package/dist/cjs/http.js +160 -0
  29. package/dist/cjs/http.js.map +1 -0
  30. package/dist/cjs/index.browser.d.ts +31 -0
  31. package/dist/cjs/index.browser.d.ts.map +1 -0
  32. package/dist/cjs/index.browser.js +54 -0
  33. package/dist/cjs/index.browser.js.map +1 -0
  34. package/dist/cjs/index.d.ts +26 -0
  35. package/dist/cjs/index.d.ts.map +1 -0
  36. package/dist/cjs/index.js +50 -0
  37. package/dist/cjs/index.js.map +1 -0
  38. package/dist/cjs/keys.d.ts +12 -0
  39. package/dist/cjs/keys.d.ts.map +1 -0
  40. package/dist/cjs/keys.js +17 -0
  41. package/dist/cjs/keys.js.map +1 -0
  42. package/dist/cjs/models.d.ts +197 -0
  43. package/dist/cjs/models.d.ts.map +1 -0
  44. package/dist/cjs/models.js +246 -0
  45. package/dist/cjs/models.js.map +1 -0
  46. package/dist/cjs/package.json +1 -0
  47. package/dist/cjs/pagination.d.ts +21 -0
  48. package/dist/cjs/pagination.d.ts.map +1 -0
  49. package/dist/cjs/pagination.js +50 -0
  50. package/dist/cjs/pagination.js.map +1 -0
  51. package/dist/cjs/verify.d.ts +50 -0
  52. package/dist/cjs/verify.d.ts.map +1 -0
  53. package/dist/cjs/verify.js +500 -0
  54. package/dist/cjs/verify.js.map +1 -0
  55. package/dist/cjs/webhooks.d.ts +36 -0
  56. package/dist/cjs/webhooks.d.ts.map +1 -0
  57. package/dist/cjs/webhooks.js +71 -0
  58. package/dist/cjs/webhooks.js.map +1 -0
  59. package/dist/esm/cli.d.ts +16 -0
  60. package/dist/esm/cli.d.ts.map +1 -0
  61. package/dist/esm/cli.js +164 -0
  62. package/dist/esm/cli.js.map +1 -0
  63. package/dist/esm/client.d.ts +116 -0
  64. package/dist/esm/client.d.ts.map +1 -0
  65. package/dist/esm/client.js +316 -0
  66. package/dist/esm/client.js.map +1 -0
  67. package/dist/esm/crypto-browser.d.ts +7 -0
  68. package/dist/esm/crypto-browser.d.ts.map +1 -0
  69. package/dist/esm/crypto-browser.js +34 -0
  70. package/dist/esm/crypto-browser.js.map +1 -0
  71. package/dist/esm/crypto-node.d.ts +4 -0
  72. package/dist/esm/crypto-node.d.ts.map +1 -0
  73. package/dist/esm/crypto-node.js +27 -0
  74. package/dist/esm/crypto-node.js.map +1 -0
  75. package/dist/esm/crypto.d.ts +6 -0
  76. package/dist/esm/crypto.d.ts.map +1 -0
  77. package/dist/esm/crypto.js +3 -0
  78. package/dist/esm/crypto.js.map +1 -0
  79. package/dist/esm/errors.d.ts +76 -0
  80. package/dist/esm/errors.d.ts.map +1 -0
  81. package/dist/esm/errors.js +105 -0
  82. package/dist/esm/errors.js.map +1 -0
  83. package/dist/esm/http.d.ts +35 -0
  84. package/dist/esm/http.d.ts.map +1 -0
  85. package/dist/esm/http.js +156 -0
  86. package/dist/esm/http.js.map +1 -0
  87. package/dist/esm/index.browser.d.ts +31 -0
  88. package/dist/esm/index.browser.d.ts.map +1 -0
  89. package/dist/esm/index.browser.js +31 -0
  90. package/dist/esm/index.browser.js.map +1 -0
  91. package/dist/esm/index.d.ts +26 -0
  92. package/dist/esm/index.d.ts.map +1 -0
  93. package/dist/esm/index.js +26 -0
  94. package/dist/esm/index.js.map +1 -0
  95. package/dist/esm/keys.d.ts +12 -0
  96. package/dist/esm/keys.d.ts.map +1 -0
  97. package/dist/esm/keys.js +14 -0
  98. package/dist/esm/keys.js.map +1 -0
  99. package/dist/esm/models.d.ts +197 -0
  100. package/dist/esm/models.d.ts.map +1 -0
  101. package/dist/esm/models.js +226 -0
  102. package/dist/esm/models.js.map +1 -0
  103. package/dist/esm/pagination.d.ts +21 -0
  104. package/dist/esm/pagination.d.ts.map +1 -0
  105. package/dist/esm/pagination.js +46 -0
  106. package/dist/esm/pagination.js.map +1 -0
  107. package/dist/esm/verify.d.ts +50 -0
  108. package/dist/esm/verify.d.ts.map +1 -0
  109. package/dist/esm/verify.js +491 -0
  110. package/dist/esm/verify.js.map +1 -0
  111. package/dist/esm/webhooks.d.ts +36 -0
  112. package/dist/esm/webhooks.d.ts.map +1 -0
  113. package/dist/esm/webhooks.js +67 -0
  114. package/dist/esm/webhooks.js.map +1 -0
  115. package/package.json +65 -0
@@ -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;AAwCtC,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,12 @@
1
+ export type KeyEntry = {
2
+ key_id: string;
3
+ public_key: string;
4
+ key_status: string;
5
+ };
6
+ /**
7
+ * Normalize a parsed keys file to an array of key entries. Accepts either a bare
8
+ * JSON array (the generated keys.json shape) or a { "keys": [...] } envelope
9
+ * (what the /.well-known endpoint publishes). Throws on any other shape.
10
+ */
11
+ export declare function parseKeyEntries(parsed: unknown): KeyEntry[];
12
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,CAM3D"}
@@ -0,0 +1,14 @@
1
+ // Public-key file parsing shared by the CLI (and unit-testable in isolation).
2
+ /**
3
+ * Normalize a parsed keys file to an array of key entries. Accepts either a bare
4
+ * JSON array (the generated keys.json shape) or a { "keys": [...] } envelope
5
+ * (what the /.well-known endpoint publishes). Throws on any other shape.
6
+ */
7
+ export function parseKeyEntries(parsed) {
8
+ const entries = Array.isArray(parsed) ? parsed : parsed?.keys;
9
+ if (!Array.isArray(entries)) {
10
+ throw new Error('--keys file must be a JSON array of keys or a {"keys": [...]} object');
11
+ }
12
+ return entries;
13
+ }
14
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAI9E;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAe;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAA6B,EAAE,IAAI,CAAC;IACtF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,OAAqB,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,197 @@
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
+ export interface PlanUsage {
108
+ readonly certificatesUsed: number;
109
+ readonly certificatesLimit: number;
110
+ readonly systemsUsed: number;
111
+ readonly systemsLimit: number;
112
+ readonly trialExpiresAt: string | undefined;
113
+ }
114
+ export interface Profile {
115
+ readonly id: string;
116
+ readonly name: string;
117
+ readonly email: string;
118
+ readonly plan: string;
119
+ readonly planStartedAt: string | undefined;
120
+ readonly createdAt: string;
121
+ readonly planUsage: PlanUsage | undefined;
122
+ }
123
+ export interface SystemHealth {
124
+ readonly systemId: string;
125
+ readonly status: HealthStatus;
126
+ readonly lastCheckAt: string | undefined;
127
+ readonly error: string | undefined;
128
+ }
129
+ export interface BatchAttestationResponse {
130
+ readonly attestations: readonly Attestation[];
131
+ readonly errors: readonly BatchAttestationError[];
132
+ }
133
+ export interface BatchAttestationError {
134
+ readonly subjectIdentifier: string;
135
+ readonly error: string;
136
+ }
137
+ export interface MonthlyCount {
138
+ readonly month: string;
139
+ readonly count: number;
140
+ }
141
+ export interface CertificateStats {
142
+ readonly total: number;
143
+ readonly active: number;
144
+ readonly revoked: number;
145
+ readonly transparencyIncluded: number;
146
+ readonly transparencyPending: number;
147
+ readonly issuedLast30Days: number;
148
+ readonly monthlyIssuance: readonly MonthlyCount[];
149
+ }
150
+ export interface WebhookRotateResponse {
151
+ readonly id: string;
152
+ readonly url: string;
153
+ readonly newSecret: string;
154
+ }
155
+ export interface WebhookDelivery {
156
+ readonly id: string;
157
+ readonly webhookId: string;
158
+ readonly eventType: string;
159
+ readonly errorMessage: string;
160
+ readonly attempts: number;
161
+ readonly createdAt: Date;
162
+ }
163
+ export type ApiKeyRole = "read_only" | "read_write";
164
+ export interface ApiKeyListItem {
165
+ readonly id: string;
166
+ readonly prefix: string;
167
+ readonly role: ApiKeyRole;
168
+ readonly createdAt: Date;
169
+ readonly revokedAt: Date | undefined;
170
+ }
171
+ export interface ApiKeyResponse {
172
+ readonly id: string;
173
+ readonly prefix: string;
174
+ readonly key: string;
175
+ readonly createdAt: Date;
176
+ }
177
+ type Raw = Record<string, any>;
178
+ export declare function parseSystem(d: Raw): System;
179
+ export declare function parseAttestation(d: Raw): Attestation;
180
+ export declare function parseVerifyResult(d: Raw): VerifyResult;
181
+ export declare function parseCertificateResponse(d: Raw): CertificateResponse;
182
+ export declare function parseRevocationStatus(d: Raw): RevocationStatus;
183
+ export declare function parseWebhook(d: Raw): Webhook;
184
+ export declare function parseSignedTreeHead(d: Raw): SignedTreeHead;
185
+ export declare function parseLogEntry(d: Raw): LogEntry;
186
+ export declare function parseInclusionProof(d: Raw): InclusionProof;
187
+ export declare function parseConsistencyProof(d: Raw): ConsistencyProof;
188
+ export declare function parseBatchAttestationResponse(d: Raw): BatchAttestationResponse;
189
+ export declare function parseCertificateStats(d: Raw): CertificateStats;
190
+ export declare function parseWebhookRotateResponse(d: Raw): WebhookRotateResponse;
191
+ export declare function parseWebhookDelivery(d: Raw): WebhookDelivery;
192
+ export declare function parseApiKeyListItem(d: Raw): ApiKeyListItem;
193
+ export declare function parseApiKeyResponse(d: Raw): ApiKeyResponse;
194
+ export declare function parseProfile(d: Raw): Profile;
195
+ export declare function parseSystemHealth(d: Raw): SystemHealth;
196
+ export {};
197
+ //# 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,226 @@
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
+ function parseBatchAttestationError(d) {
133
+ return {
134
+ subjectIdentifier: d.subject_identifier,
135
+ error: d.error,
136
+ };
137
+ }
138
+ export function parseBatchAttestationResponse(d) {
139
+ return {
140
+ attestations: (d.attestations ?? []).map(parseAttestation),
141
+ errors: (d.errors ?? []).map(parseBatchAttestationError),
142
+ };
143
+ }
144
+ function parseMonthlyCount(d) {
145
+ return {
146
+ month: d.month,
147
+ count: d.count,
148
+ };
149
+ }
150
+ export function parseCertificateStats(d) {
151
+ return {
152
+ total: d.total,
153
+ active: d.active,
154
+ revoked: d.revoked,
155
+ transparencyIncluded: d.transparency_included,
156
+ transparencyPending: d.transparency_pending,
157
+ issuedLast30Days: d.issued_last_30_days,
158
+ monthlyIssuance: (d.monthly_issuance ?? []).map(parseMonthlyCount),
159
+ };
160
+ }
161
+ export function parseWebhookRotateResponse(d) {
162
+ return {
163
+ id: d.id,
164
+ url: d.url,
165
+ newSecret: d.new_secret,
166
+ };
167
+ }
168
+ export function parseWebhookDelivery(d) {
169
+ return {
170
+ id: d.id,
171
+ webhookId: d.webhook_id,
172
+ eventType: d.event_type,
173
+ errorMessage: d.error_message,
174
+ attempts: d.attempts,
175
+ createdAt: parseDt(d.created_at),
176
+ };
177
+ }
178
+ export function parseApiKeyListItem(d) {
179
+ return {
180
+ id: d.id,
181
+ prefix: d.prefix,
182
+ role: d.role,
183
+ createdAt: parseDt(d.created_at),
184
+ revokedAt: parseDtOpt(d.revoked_at),
185
+ };
186
+ }
187
+ export function parseApiKeyResponse(d) {
188
+ return {
189
+ id: d.id,
190
+ prefix: d.prefix,
191
+ key: d.key,
192
+ createdAt: parseDt(d.created_at),
193
+ };
194
+ }
195
+ // ---------------------------------------------------------------------------
196
+ // Profile / SystemHealth parsers
197
+ // ---------------------------------------------------------------------------
198
+ function parsePlanUsage(d) {
199
+ return {
200
+ certificatesUsed: d.certificates_used,
201
+ certificatesLimit: d.certificates_limit,
202
+ systemsUsed: d.systems_used,
203
+ systemsLimit: d.systems_limit,
204
+ trialExpiresAt: d.trial_expires_at ?? undefined,
205
+ };
206
+ }
207
+ export function parseProfile(d) {
208
+ return {
209
+ id: d.id,
210
+ name: d.name,
211
+ email: d.email,
212
+ plan: d.plan,
213
+ planStartedAt: d.plan_started_at ?? undefined,
214
+ createdAt: d.created_at,
215
+ planUsage: d.plan_usage ? parsePlanUsage(d.plan_usage) : undefined,
216
+ };
217
+ }
218
+ export function parseSystemHealth(d) {
219
+ return {
220
+ systemId: d.system_id,
221
+ status: d.status,
222
+ lastCheckAt: d.last_check_at ?? undefined,
223
+ error: d.error ?? undefined,
224
+ };
225
+ }
226
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiPH,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,UAAU,CAAC,GAA8B;IAChD,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AASD,MAAM,UAAU,WAAW,CAAC,CAAM;IAChC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,aAAa,EAAE,CAAC,CAAC,cAA+B;QAChD,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,SAAS,EAAE,CAAC,CAAC,UAAuB;QACpC,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,YAAY,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,SAAS,CAAiB;QAC5D,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAChD,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,SAAS;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAM;IACpC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,SAAS,EAAE,CAAC,CAAC,UAAuB;QACpC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAM;IACrC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,SAAS,EAAE,CAAC,CAAC,UAAuB;QACpC,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC;QACtD,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QAClC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,aAAa,EAAE,CAAC,CAAC,cAAc,IAAI,SAAS;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,CAAM;IACrC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,WAAW,EAAE,CAAC,CAAC,YAAY;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAM;IACtC,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACvD,WAAW,EAAE,CAAC,CAAC,WAAW;YACxB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,WAAW,CAAC;YACzC,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,CAAM;IAC7C,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,kBAAkB,EAAE,CAAC,CAAC,mBAAyC;QAC/D,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACnC,gBAAgB,EAAE,CAAC,CAAC,iBAAiB,IAAI,SAAS;QAClD,WAAW,EAAE,CAAC,CAAC,WAAW;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAM;IAC1C,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,MAAM,EAAE,CAAC,CAAC,MAA2B;QACrC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACnC,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAM;IACjC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;QAC7B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAM;IACxC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/B,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAM;IAClC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,SAAS,EAAE,CAAC,CAAC,UAA0B;QACvC,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAM;IACxC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,cAAc,EAAE,CAAC,CAAC,eAAe,IAAI,EAAE;QACvC,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAM;IAC1C,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,CAAM;IACxC,OAAO;QACL,iBAAiB,EAAE,CAAC,CAAC,kBAAkB;QACvC,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,CAAM;IAClD,OAAO;QACL,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC1D,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAM;IAC/B,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,CAAM;IAC1C,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,oBAAoB,EAAE,CAAC,CAAC,qBAAqB;QAC7C,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;QAC3C,gBAAgB,EAAE,CAAC,CAAC,mBAAmB;QACvC,eAAe,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,CAAM;IAC/C,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,SAAS,EAAE,CAAC,CAAC,UAAU;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAM;IACzC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAM;IACxC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAkB;QAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAChC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAM;IACxC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E,SAAS,cAAc,CAAC,CAAM;IAC5B,OAAO;QACL,gBAAgB,EAAE,CAAC,CAAC,iBAAiB;QACrC,iBAAiB,EAAE,CAAC,CAAC,kBAAkB;QACvC,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,YAAY,EAAE,CAAC,CAAC,aAAa;QAC7B,cAAc,EAAE,CAAC,CAAC,gBAAgB,IAAI,SAAS;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAM;IACjC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,aAAa,EAAE,CAAC,CAAC,eAAe,IAAI,SAAS;QAC7C,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAAM;IACtC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,MAAM,EAAE,CAAC,CAAC,MAAsB;QAChC,WAAW,EAAE,CAAC,CAAC,aAAa,IAAI,SAAS;QACzC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS;KAC5B,CAAC;AACJ,CAAC"}
@@ -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"}
@@ -0,0 +1,50 @@
1
+ /** Offline certificate and transparency verification.
2
+ *
3
+ * Ports the Go signing payload builders (core/payload.go) and Merkle tree
4
+ * verification (core/merkle.go) to TypeScript. All crypto is delegated to
5
+ * a CryptoOps provider (Node or browser).
6
+ *
7
+ * Critical encoding details:
8
+ * - Go's json.Marshal encodes []byte as base64, [N]byte as number arrays.
9
+ * - The payload builders normalize both formats to lowercase hex strings.
10
+ * - Timestamps in payloads use second-precision UTC: "YYYY-MM-DDTHH:MM:SSZ".
11
+ * - RFC 8785 canonical JSON: sorted keys recursively, no whitespace.
12
+ * - Transparency leaf = SHA-256(0x00 || issuanceBytes(cert)), NOT the
13
+ * certificate signing payload. issuanceBytes reconstructs json.Marshal
14
+ * output at issuance time (transparency_status=PENDING, no transparency).
15
+ */
16
+ import type { CryptoOps } from "./crypto.js";
17
+ import type { TransparencyResult, VerificationResult } from "./models.js";
18
+ export declare function hexToBytes(hex: string): Uint8Array;
19
+ export declare function bytesToHex(bytes: Uint8Array): string;
20
+ export interface PublicKeyInfo {
21
+ readonly keyBytes: Uint8Array;
22
+ readonly keyId: string;
23
+ readonly revoked: boolean;
24
+ }
25
+ export declare function publicKeyFromHex(crypto: CryptoOps, hexKey: string, opts?: {
26
+ revoked?: boolean;
27
+ }): Promise<PublicKeyInfo>;
28
+ type Cert = Record<string, unknown>;
29
+ /** Verify all signatures on a deletion certificate offline. */
30
+ export declare function verifyCertificate(crypto: CryptoOps, certificate: Cert, publicKeys: Map<string, PublicKeyInfo>): Promise<VerificationResult>;
31
+ /** Verify the transparency proof embedded in a certificate. */
32
+ export declare function verifyTransparency(crypto: CryptoOps, certificate: Cert, publicKeys: Map<string, PublicKeyInfo>): Promise<TransparencyResult>;
33
+ /** Reconstruct the certificate JSON as it existed at issuance time.
34
+ *
35
+ * At issuance: transparency_status = "PENDING", transparency = nil (omitted).
36
+ * The leaf preimage is the RFC 8785 canonical JSON of that form — exactly
37
+ * Go's `CanonicalJSON(json.Marshal(cert))` in core.IssuanceBytes. It MUST be
38
+ * canonicalized (sorted keys, recursively), not serialized in insertion order:
39
+ * Go's struct field order is not alphabetical, so insertion-order stringify
40
+ * produces a different leaf hash and every genuine certificate fails inclusion
41
+ * verification (#C-01).
42
+ */
43
+ export declare function issuanceBytes(certificate: Cert): Uint8Array;
44
+ /** Verify a Merkle consistency proof (RFC 6962 Section 2.1.4).
45
+ *
46
+ * Port of Go's VerifyConsistency / Python's _verify_consistency.
47
+ */
48
+ export declare function verifyConsistency(crypto: CryptoOps, oldSize: number, newSize: number, oldRoot: Uint8Array, newRoot: Uint8Array, proof: Uint8Array[]): Promise<boolean>;
49
+ export {};
50
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAe1E,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CASlD;AAYD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQpD;AAoCD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,aAAa,CAAC,CAQxB;AAMD,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC,+DAA+D;AAC/D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAsD7B;AAED,+DAA+D;AAC/D,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GACrC,OAAO,CAAC,kBAAkB,CAAC,CAwC7B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAK3D;AAsSD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,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,CAgDlB"}