burnledger 0.8.1 → 0.9.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 (124) hide show
  1. package/README.md +139 -2
  2. package/dist/cjs/anchor.d.ts +5 -3
  3. package/dist/cjs/anchor.d.ts.map +1 -1
  4. package/dist/cjs/anchor.js +10 -4
  5. package/dist/cjs/anchor.js.map +1 -1
  6. package/dist/cjs/client.d.ts +95 -0
  7. package/dist/cjs/client.d.ts.map +1 -1
  8. package/dist/cjs/client.js +133 -2
  9. package/dist/cjs/client.js.map +1 -1
  10. package/dist/cjs/customer-keys.d.ts +73 -1
  11. package/dist/cjs/customer-keys.d.ts.map +1 -1
  12. package/dist/cjs/customer-keys.js +329 -3
  13. package/dist/cjs/customer-keys.js.map +1 -1
  14. package/dist/cjs/enclave-registration.d.ts +153 -0
  15. package/dist/cjs/enclave-registration.d.ts.map +1 -0
  16. package/dist/cjs/enclave-registration.js +275 -0
  17. package/dist/cjs/enclave-registration.js.map +1 -0
  18. package/dist/cjs/enclave-seal.d.ts +43 -0
  19. package/dist/cjs/enclave-seal.d.ts.map +1 -1
  20. package/dist/cjs/enclave-seal.js +62 -1
  21. package/dist/cjs/enclave-seal.js.map +1 -1
  22. package/dist/cjs/errors.d.ts +10 -0
  23. package/dist/cjs/errors.d.ts.map +1 -1
  24. package/dist/cjs/errors.js +11 -1
  25. package/dist/cjs/errors.js.map +1 -1
  26. package/dist/cjs/index.browser.d.ts +7 -3
  27. package/dist/cjs/index.browser.d.ts.map +1 -1
  28. package/dist/cjs/index.browser.js +6 -3
  29. package/dist/cjs/index.browser.js.map +1 -1
  30. package/dist/cjs/index.d.ts +22 -10
  31. package/dist/cjs/index.d.ts.map +1 -1
  32. package/dist/cjs/index.js +30 -6
  33. package/dist/cjs/index.js.map +1 -1
  34. package/dist/cjs/key-group.d.ts +80 -0
  35. package/dist/cjs/key-group.d.ts.map +1 -0
  36. package/dist/cjs/key-group.js +136 -0
  37. package/dist/cjs/key-group.js.map +1 -0
  38. package/dist/cjs/models.d.ts +60 -0
  39. package/dist/cjs/models.d.ts.map +1 -1
  40. package/dist/cjs/models.js +63 -0
  41. package/dist/cjs/models.js.map +1 -1
  42. package/dist/cjs/status-document.d.ts +25 -0
  43. package/dist/cjs/status-document.d.ts.map +1 -0
  44. package/dist/cjs/status-document.js +62 -0
  45. package/dist/cjs/status-document.js.map +1 -0
  46. package/dist/cjs/verify.d.ts +108 -3
  47. package/dist/cjs/verify.d.ts.map +1 -1
  48. package/dist/cjs/verify.js +389 -146
  49. package/dist/cjs/verify.js.map +1 -1
  50. package/dist/cjs/web-verifier.d.ts +23 -3
  51. package/dist/cjs/web-verifier.d.ts.map +1 -1
  52. package/dist/cjs/web-verifier.js +31 -5
  53. package/dist/cjs/web-verifier.js.map +1 -1
  54. package/dist/esm/anchor.d.ts +5 -3
  55. package/dist/esm/anchor.d.ts.map +1 -1
  56. package/dist/esm/anchor.js +10 -4
  57. package/dist/esm/anchor.js.map +1 -1
  58. package/dist/esm/cli.d.ts +13 -19
  59. package/dist/esm/cli.d.ts.map +1 -1
  60. package/dist/esm/cli.js +88 -81
  61. package/dist/esm/cli.js.map +1 -1
  62. package/dist/esm/client.d.ts +95 -0
  63. package/dist/esm/client.d.ts.map +1 -1
  64. package/dist/esm/client.js +133 -2
  65. package/dist/esm/client.js.map +1 -1
  66. package/dist/esm/customer-keys.d.ts +73 -1
  67. package/dist/esm/customer-keys.d.ts.map +1 -1
  68. package/dist/esm/customer-keys.js +323 -3
  69. package/dist/esm/customer-keys.js.map +1 -1
  70. package/dist/esm/enclave-registration.d.ts +153 -0
  71. package/dist/esm/enclave-registration.d.ts.map +1 -0
  72. package/dist/esm/enclave-registration.js +265 -0
  73. package/dist/esm/enclave-registration.js.map +1 -0
  74. package/dist/esm/enclave-seal.d.ts +43 -0
  75. package/dist/esm/enclave-seal.d.ts.map +1 -1
  76. package/dist/esm/enclave-seal.js +61 -1
  77. package/dist/esm/enclave-seal.js.map +1 -1
  78. package/dist/esm/errors.d.ts +10 -0
  79. package/dist/esm/errors.d.ts.map +1 -1
  80. package/dist/esm/errors.js +10 -0
  81. package/dist/esm/errors.js.map +1 -1
  82. package/dist/esm/index.browser.d.ts +7 -3
  83. package/dist/esm/index.browser.d.ts.map +1 -1
  84. package/dist/esm/index.browser.js +6 -3
  85. package/dist/esm/index.browser.js.map +1 -1
  86. package/dist/esm/index.d.ts +22 -10
  87. package/dist/esm/index.d.ts.map +1 -1
  88. package/dist/esm/index.js +18 -8
  89. package/dist/esm/index.js.map +1 -1
  90. package/dist/esm/key-group.d.ts +80 -0
  91. package/dist/esm/key-group.d.ts.map +1 -0
  92. package/dist/esm/key-group.js +130 -0
  93. package/dist/esm/key-group.js.map +1 -0
  94. package/dist/esm/models.d.ts +60 -0
  95. package/dist/esm/models.d.ts.map +1 -1
  96. package/dist/esm/models.js +59 -0
  97. package/dist/esm/models.js.map +1 -1
  98. package/dist/esm/status-document.d.ts +25 -0
  99. package/dist/esm/status-document.d.ts.map +1 -0
  100. package/dist/esm/status-document.js +59 -0
  101. package/dist/esm/status-document.js.map +1 -0
  102. package/dist/esm/verify.d.ts +108 -3
  103. package/dist/esm/verify.d.ts.map +1 -1
  104. package/dist/esm/verify.js +386 -146
  105. package/dist/esm/verify.js.map +1 -1
  106. package/dist/esm/web-verifier.d.ts +23 -3
  107. package/dist/esm/web-verifier.d.ts.map +1 -1
  108. package/dist/esm/web-verifier.js +27 -5
  109. package/dist/esm/web-verifier.js.map +1 -1
  110. package/package.json +1 -1
  111. package/src/anchor.ts +10 -4
  112. package/src/cli.ts +96 -79
  113. package/src/client.ts +198 -6
  114. package/src/customer-keys.ts +373 -3
  115. package/src/enclave-registration.ts +390 -0
  116. package/src/enclave-seal.ts +108 -1
  117. package/src/errors.ts +11 -0
  118. package/src/index.browser.ts +9 -3
  119. package/src/index.ts +35 -6
  120. package/src/key-group.ts +181 -0
  121. package/src/models.ts +131 -0
  122. package/src/status-document.ts +59 -0
  123. package/src/verify.ts +499 -151
  124. package/src/web-verifier.ts +36 -3
@@ -27,11 +27,12 @@ import { CERTIFICATE_REVOKED, UNSUPPORTED_FORMAT_VERSION } from "./errors.js";
27
27
  import {
28
28
  verifyCertificate as _verifyCertificate,
29
29
  verifyCertificateWithStatus as _verifyCertificateWithStatus,
30
+ verifyStatusStatement as _verifyStatusStatement,
30
31
  verifyTransparency as _verifyTransparency,
31
32
  publicKeyFromHex as _publicKeyFromHex,
32
33
  KNOWN_FORMAT_VERSIONS,
33
34
  } from "./verify.js";
34
- import type { PublicKeyInfo, PublicKeyOptions } from "./verify.js";
35
+ import type { PublicKeyInfo, PublicKeyOptions, VerifyOptions } from "./verify.js";
35
36
  import { parseKeyListDocument, verifyKeyList as _verifyKeyList } from "./keys.js";
36
37
  import type { KeyListDocument, KeyListEvidence } from "./keys.js";
37
38
  import type { VerificationResult, TransparencyResult } from "./models.js";
@@ -42,8 +43,9 @@ type Cert = Record<string, unknown>;
42
43
  export function verifyCertificate(
43
44
  certificate: Cert,
44
45
  publicKeys: Map<string, PublicKeyInfo>,
46
+ options?: VerifyOptions,
45
47
  ): Promise<VerificationResult> {
46
- return _verifyCertificate(browserCrypto, certificate, publicKeys);
48
+ return _verifyCertificate(browserCrypto, certificate, publicKeys, options);
47
49
  }
48
50
 
49
51
  /**
@@ -57,8 +59,9 @@ export function verifyCertificateWithStatus(
57
59
  publicKeys: Map<string, PublicKeyInfo>,
58
60
  status?: Record<string, unknown> | null,
59
61
  now?: Date,
62
+ options?: VerifyOptions,
60
63
  ): Promise<string> {
61
- return _verifyCertificateWithStatus(browserCrypto, certificate, publicKeys, status, now);
64
+ return _verifyCertificateWithStatus(browserCrypto, certificate, publicKeys, status, now, options);
62
65
  }
63
66
 
64
67
  /**
@@ -88,6 +91,29 @@ export function checkStatementAnchor(
88
91
 
89
92
  export { ANCHOR_CONFIRMED, ANCHOR_INCONSISTENT, ANCHOR_UNVERIFIED };
90
93
 
94
+ /**
95
+ * The CLIs' reading of a fetched status reply: throws unless it is a statement
96
+ * at all. The status button uses it so a reply that is not one reads as
97
+ * silence, as `burnledger check --online` reads it, rather than as a statement
98
+ * that failed.
99
+ */
100
+ export { unwrapStatusStatement } from "./status-document.js";
101
+
102
+ /**
103
+ * Authenticate a status statement about one record id, with no record in hand:
104
+ * the status button's checks, less the record's own. The QR lookup uses it, so
105
+ * it shows what a signed, fresh statement says and never what the endpoint
106
+ * claims.
107
+ */
108
+ export function verifyStatusStatement(
109
+ statement: Record<string, unknown>,
110
+ publicKeys: Map<string, PublicKeyInfo>,
111
+ certificateId: string,
112
+ now?: Date,
113
+ ): Promise<string> {
114
+ return _verifyStatusStatement(browserCrypto, statement, publicKeys, certificateId, now);
115
+ }
116
+
91
117
  /**
92
118
  * Every record format this bundle can read, oldest first.
93
119
  *
@@ -101,6 +127,13 @@ export { ANCHOR_CONFIRMED, ANCHOR_INCONSISTENT, ANCHOR_UNVERIFIED };
101
127
  */
102
128
  export { KNOWN_FORMAT_VERSIONS };
103
129
 
130
+ /**
131
+ * What the registration row says `certified` is evidence of, in the CLIs'
132
+ * words: the image a record names decides it. Exported so the page states it
133
+ * from the SDK's closed list of protocol-11 images rather than from a copy.
134
+ */
135
+ export { issuingImage, registrationQualifier } from "./verify.js";
136
+
104
137
  /** Verify the transparency proof embedded in a certificate. */
105
138
  export function verifyTransparency(
106
139
  certificate: Cert,