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.
- package/README.md +11 -4
- package/dist/cjs/anchor.d.ts +71 -0
- package/dist/cjs/anchor.d.ts.map +1 -0
- package/dist/cjs/anchor.js +279 -0
- package/dist/cjs/anchor.js.map +1 -0
- package/dist/cjs/client.d.ts +26 -2
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +27 -5
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/enclave-seal.d.ts +101 -0
- package/dist/cjs/enclave-seal.d.ts.map +1 -0
- package/dist/cjs/enclave-seal.js +479 -0
- package/dist/cjs/enclave-seal.js.map +1 -0
- package/dist/cjs/errors.d.ts +42 -1
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +44 -2
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/http.d.ts +21 -1
- package/dist/cjs/http.d.ts.map +1 -1
- package/dist/cjs/http.js +76 -12
- package/dist/cjs/http.js.map +1 -1
- package/dist/cjs/index.browser.d.ts +2 -4
- package/dist/cjs/index.browser.d.ts.map +1 -1
- package/dist/cjs/index.browser.js.map +1 -1
- package/dist/cjs/index.d.ts +16 -11
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +20 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/keys.d.ts +66 -0
- package/dist/cjs/keys.d.ts.map +1 -1
- package/dist/cjs/keys.js +128 -3
- package/dist/cjs/keys.js.map +1 -1
- package/dist/cjs/models.d.ts +41 -3
- package/dist/cjs/models.d.ts.map +1 -1
- package/dist/cjs/models.js +25 -4
- package/dist/cjs/models.js.map +1 -1
- package/dist/cjs/verify.d.ts +72 -6
- package/dist/cjs/verify.d.ts.map +1 -1
- package/dist/cjs/verify.js +392 -62
- package/dist/cjs/verify.js.map +1 -1
- package/dist/cjs/web-verifier.d.ts +54 -5
- package/dist/cjs/web-verifier.d.ts.map +1 -1
- package/dist/cjs/web-verifier.js +36 -3
- package/dist/cjs/web-verifier.js.map +1 -1
- package/dist/esm/anchor.d.ts +71 -0
- package/dist/esm/anchor.d.ts.map +1 -0
- package/dist/esm/anchor.js +275 -0
- package/dist/esm/anchor.js.map +1 -0
- package/dist/esm/cli.d.ts +45 -14
- package/dist/esm/cli.d.ts.map +1 -1
- package/dist/esm/cli.js +357 -50
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/client.d.ts +26 -2
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +27 -5
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/enclave-seal.d.ts +101 -0
- package/dist/esm/enclave-seal.d.ts.map +1 -0
- package/dist/esm/enclave-seal.js +472 -0
- package/dist/esm/enclave-seal.js.map +1 -0
- package/dist/esm/errors.d.ts +42 -1
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +43 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/http.d.ts +21 -1
- package/dist/esm/http.d.ts.map +1 -1
- package/dist/esm/http.js +75 -12
- package/dist/esm/http.js.map +1 -1
- package/dist/esm/index.browser.d.ts +2 -4
- package/dist/esm/index.browser.d.ts.map +1 -1
- package/dist/esm/index.browser.js.map +1 -1
- package/dist/esm/index.d.ts +16 -11
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/keys.d.ts +66 -0
- package/dist/esm/keys.d.ts.map +1 -1
- package/dist/esm/keys.js +125 -3
- package/dist/esm/keys.js.map +1 -1
- package/dist/esm/models.d.ts +41 -3
- package/dist/esm/models.d.ts.map +1 -1
- package/dist/esm/models.js +24 -4
- package/dist/esm/models.js.map +1 -1
- package/dist/esm/verify.d.ts +72 -6
- package/dist/esm/verify.d.ts.map +1 -1
- package/dist/esm/verify.js +390 -63
- package/dist/esm/verify.js.map +1 -1
- package/dist/esm/web-verifier.d.ts +54 -5
- package/dist/esm/web-verifier.d.ts.map +1 -1
- package/dist/esm/web-verifier.js +40 -3
- package/dist/esm/web-verifier.js.map +1 -1
- package/package.json +1 -1
- package/src/anchor.ts +330 -0
- package/src/cli.ts +389 -54
- package/src/client.ts +46 -4
- package/src/enclave-seal.ts +582 -0
- package/src/errors.ts +47 -2
- package/src/http.ts +79 -12
- package/src/index.browser.ts +2 -2
- package/src/index.ts +28 -9
- package/src/keys.ts +176 -3
- package/src/models.ts +72 -7
- package/src/verify.ts +467 -72
- package/src/web-verifier.ts +58 -5
package/dist/cjs/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,QAAS,SAAQ,eAAe;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,EAQA;CACF;AAED,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C,YAAY,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAGrE;CACF;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,YAAY,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAGrE;CACF;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,YAAY,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAGrE;CACF;AAED,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAGrE;CACF;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,YAAY,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,EAIA;CACF;AAED,qBAAa,WAAY,SAAQ,QAAQ;IACvC,YAAY,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,EAGA;CACF;AAED,qBAAa,YAAa,SAAQ,eAAe;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAK7C;CACF;AAED,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,QAAS,SAAQ,eAAe;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,YAAY,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,EAQA;CACF;AAED,qBAAa,mBAAoB,SAAQ,QAAQ;IAC/C,YAAY,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAGrE;CACF;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,YAAY,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAGrE;CACF;AAED,qBAAa,aAAc,SAAQ,QAAQ;IACzC,YAAY,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAGrE;CACF;AAED,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAGrE;CACF;AAED,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,YAAY,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,EAIA;CACF;AAED,qBAAa,WAAY,SAAQ,QAAQ;IACvC,YAAY,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,EAGA;CACF;AAED,qBAAa,YAAa,SAAQ,eAAe;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAK7C;CACF;AAED,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,YAAY,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAKxC;CACF;AAED,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AAEvE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAkB7D,uEAAuE;AACvE,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,CAAC,EAAE,MAAM,GAClB,KAAK,CAqBP"}
|
package/dist/cjs/errors.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* enough context for log correlation.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.VerificationError = exports.TimeoutError = exports.ServerError = exports.RateLimitError = exports.ValidationError = exports.ConflictError = exports.NotFoundError = exports.AuthenticationError = exports.ApiError = exports.BurnLedgerError = void 0;
|
|
8
|
+
exports.UNSUPPORTED_ALGORITHM = exports.UNSUPPORTED_FORMAT_VERSION = exports.CERTIFICATE_REVOKED = exports.VerificationError = exports.TimeoutError = exports.ServerError = exports.RateLimitError = exports.ValidationError = exports.ConflictError = exports.NotFoundError = exports.AuthenticationError = exports.ApiError = exports.BurnLedgerError = void 0;
|
|
9
9
|
exports.raiseForError = raiseForError;
|
|
10
10
|
class BurnLedgerError extends Error {
|
|
11
11
|
constructor(message) {
|
|
@@ -84,13 +84,55 @@ class TimeoutError extends BurnLedgerError {
|
|
|
84
84
|
exports.TimeoutError = TimeoutError;
|
|
85
85
|
class VerificationError extends BurnLedgerError {
|
|
86
86
|
reason;
|
|
87
|
-
|
|
87
|
+
/**
|
|
88
|
+
* A stable discriminator for the one rejection a caller must be able to tell
|
|
89
|
+
* apart from the rest: an authentic status statement that says REVOKED.
|
|
90
|
+
*
|
|
91
|
+
* Every other rejection on the status path — unknown key, revoked key, bad
|
|
92
|
+
* signature, a statement about a different certificate — means the statement
|
|
93
|
+
* could not be authenticated, which is not the same claim and must not be
|
|
94
|
+
* rendered as one. `reason` is prose and may be reworded; this is not.
|
|
95
|
+
*
|
|
96
|
+
* Undefined on every rejection that is not specifically coded.
|
|
97
|
+
*/
|
|
98
|
+
code;
|
|
99
|
+
constructor(reason, code) {
|
|
88
100
|
super(reason);
|
|
89
101
|
this.name = "VerificationError";
|
|
90
102
|
this.reason = reason;
|
|
103
|
+
this.code = code;
|
|
91
104
|
}
|
|
92
105
|
}
|
|
93
106
|
exports.VerificationError = VerificationError;
|
|
107
|
+
/** {@link VerificationError.code} for a verified statement that says REVOKED. */
|
|
108
|
+
exports.CERTIFICATE_REVOKED = "CERTIFICATE_REVOKED";
|
|
109
|
+
/**
|
|
110
|
+
* The record is in a format this SDK does not know how to read.
|
|
111
|
+
*
|
|
112
|
+
* This is the second rejection a caller must be able to tell apart, for the
|
|
113
|
+
* same reason as the first: it is not a claim about the document. Before this
|
|
114
|
+
* code existed, a record in a newer format fell through to the oldest payload
|
|
115
|
+
* shape, the rebuilt bytes did not match, and the SDK threw "certificate
|
|
116
|
+
* signature is invalid" - telling a holder their genuine evidence had been
|
|
117
|
+
* tampered with when the answer was "upgrade this library".
|
|
118
|
+
*
|
|
119
|
+
* A UI must render it as "cannot check", never as a failure.
|
|
120
|
+
*/
|
|
121
|
+
exports.UNSUPPORTED_FORMAT_VERSION = "UNSUPPORTED_FORMAT_VERSION";
|
|
122
|
+
/**
|
|
123
|
+
* The record names a signature scheme this SDK cannot check.
|
|
124
|
+
*
|
|
125
|
+
* The third rejection a caller must tell apart, for the same reason as the
|
|
126
|
+
* other two: it is not a claim about the document. Records below format 7.0
|
|
127
|
+
* name no algorithm and every verifier simply assumed Ed25519, so had Ed25519
|
|
128
|
+
* needed replacing, a record signed under the replacement would have been fed
|
|
129
|
+
* to an Ed25519 verifier, failed, and been reported as a bad signature — a
|
|
130
|
+
* genuine record accused of forgery for being signed with the algorithm it says
|
|
131
|
+
* it was signed with.
|
|
132
|
+
*
|
|
133
|
+
* A UI must render it as "cannot check", never as a failure.
|
|
134
|
+
*/
|
|
135
|
+
exports.UNSUPPORTED_ALGORITHM = "UNSUPPORTED_ALGORITHM";
|
|
94
136
|
const STATUS_TO_CLASS = {
|
|
95
137
|
401: AuthenticationError,
|
|
96
138
|
404: NotFoundError,
|
package/dist/cjs/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,qBAA6B,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;;AAED,cAAsB,SAAQ,eAAe;IAClC,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,SAAS,CAAS;IAE3B,YAAY,IAKX;QACC,KAAK,CACH,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAC,SAAS,GAAG,CACpF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;CACF;;AAED,yBAAiC,SAAQ,QAAQ;IAC/C,YAAY,IAA0D;QACpE,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;;AAED,mBAA2B,SAAQ,QAAQ;IACzC,YAAY,IAA0D;QACpE,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;;AAED,mBAA2B,SAAQ,QAAQ;IACzC,YAAY,IAA0D;QACpE,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;;AAED,qBAA6B,SAAQ,QAAQ;IAC3C,YAAY,IAA0D;QACpE,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;;AAED,oBAA4B,SAAQ,QAAQ;IACjC,UAAU,CAAqB;IAExC,YAAY,IAKX;QACC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACpC,CAAC;CACF;;AAED,iBAAyB,SAAQ,QAAQ;IACvC,YAAY,IAKX;QACC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;;AAED,kBAA0B,SAAQ,eAAe;IACtC,SAAS,CAAS;IAClB,OAAO,CAAS;IAEzB,YAAY,SAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,GAAG,SAAS,qBAAqB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;;AAED,uBAA+B,SAAQ,eAAe;IAC3C,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/http.d.ts
CHANGED
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
/** HTTP transport layer wrapping native fetch.
|
|
2
2
|
*
|
|
3
3
|
* Handles: Bearer auth, response envelope unwrapping, retry on 5xx/transport
|
|
4
|
-
* errors
|
|
4
|
+
* errors and on 429, and raw byte streaming for PDFs.
|
|
5
|
+
*
|
|
6
|
+
* Retry delay: a `Retry-After` header (delta-seconds or HTTP-date) is honoured
|
|
7
|
+
* when the server sends one and it is at most `MAX_RETRY_AFTER`; otherwise
|
|
8
|
+
* exponential backoff with jitter. A 429 with no usable `Retry-After`, one
|
|
9
|
+
* beyond the cap, or one on the last attempt throws `RateLimitError` with
|
|
10
|
+
* `retryAfter` populated so the caller can decide.
|
|
5
11
|
*/
|
|
12
|
+
/** Longest Retry-After, in seconds, the transport will wait on before
|
|
13
|
+
* throwing instead: a server asking for minutes gets the error and the
|
|
14
|
+
* number rather than a promise nobody can cancel. */
|
|
15
|
+
export declare const MAX_RETRY_AFTER = 30;
|
|
6
16
|
export interface TransportOptions {
|
|
7
17
|
baseUrl: string;
|
|
8
18
|
apiKey: string;
|
|
9
19
|
timeout: number;
|
|
10
20
|
maxRetries: number;
|
|
21
|
+
/** Team to act as. Omit to let the API use the caller's default team. */
|
|
22
|
+
teamId?: string;
|
|
11
23
|
}
|
|
12
24
|
export declare class Transport {
|
|
13
25
|
private readonly baseUrl;
|
|
14
26
|
private readonly apiKey;
|
|
15
27
|
private readonly timeout;
|
|
16
28
|
private readonly maxRetries;
|
|
29
|
+
private readonly teamId?;
|
|
17
30
|
constructor(opts: TransportOptions);
|
|
18
31
|
/** Make a request and return the unwrapped `data` field. */
|
|
19
32
|
request(method: string, path: string, opts?: {
|
|
@@ -32,4 +45,11 @@ export declare class Transport {
|
|
|
32
45
|
authenticated?: boolean;
|
|
33
46
|
}): Promise<Uint8Array>;
|
|
34
47
|
}
|
|
48
|
+
/** Seconds to wait per the Retry-After header (RFC 9110 §10.2.3).
|
|
49
|
+
*
|
|
50
|
+
* Accepts both forms the header allows: non-negative delta-seconds and an
|
|
51
|
+
* HTTP-date, converted to seconds from now (a date already past reads as 0).
|
|
52
|
+
* Anything else is treated as absent.
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseRetryAfter(resp: Response): number | undefined;
|
|
35
55
|
//# sourceMappingURL=http.d.ts.map
|
package/dist/cjs/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;qDAEqD;AACrD,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAKpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IAEjC,YAAY,IAAI,EAAE,gBAAgB,EAMjC;IAED,4DAA4D;IACtD,OAAO,CACX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACzC,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GACA,OAAO,CAAC,OAAO,CAAC,CAGlB;IAED,6EAA6E;IACvE,UAAU,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;QACzC,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA0GlC;IAED,+DAA+D;IACzD,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GACjC,OAAO,CAAC,UAAU,CAAC,CA6BrB;CACF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAYlE"}
|
package/dist/cjs/http.js
CHANGED
|
@@ -2,21 +2,38 @@
|
|
|
2
2
|
/** HTTP transport layer wrapping native fetch.
|
|
3
3
|
*
|
|
4
4
|
* Handles: Bearer auth, response envelope unwrapping, retry on 5xx/transport
|
|
5
|
-
* errors
|
|
5
|
+
* errors and on 429, and raw byte streaming for PDFs.
|
|
6
|
+
*
|
|
7
|
+
* Retry delay: a `Retry-After` header (delta-seconds or HTTP-date) is honoured
|
|
8
|
+
* when the server sends one and it is at most `MAX_RETRY_AFTER`; otherwise
|
|
9
|
+
* exponential backoff with jitter. A 429 with no usable `Retry-After`, one
|
|
10
|
+
* beyond the cap, or one on the last attempt throws `RateLimitError` with
|
|
11
|
+
* `retryAfter` populated so the caller can decide.
|
|
6
12
|
*/
|
|
7
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.Transport = void 0;
|
|
14
|
+
exports.Transport = exports.MAX_RETRY_AFTER = void 0;
|
|
15
|
+
exports.parseRetryAfter = parseRetryAfter;
|
|
9
16
|
const errors_js_1 = require("./errors.js");
|
|
17
|
+
/** Longest Retry-After, in seconds, the transport will wait on before
|
|
18
|
+
* throwing instead: a server asking for minutes gets the error and the
|
|
19
|
+
* number rather than a promise nobody can cancel. */
|
|
20
|
+
exports.MAX_RETRY_AFTER = 30;
|
|
10
21
|
class Transport {
|
|
11
22
|
baseUrl;
|
|
12
23
|
apiKey;
|
|
13
24
|
timeout;
|
|
14
25
|
maxRetries;
|
|
26
|
+
// Which team the caller is acting as. The API resolves scope from this
|
|
27
|
+
// header and otherwise falls back to the caller's default team, so a member
|
|
28
|
+
// of more than one team who does not send it silently acts as whichever they
|
|
29
|
+
// joined first.
|
|
30
|
+
teamId;
|
|
15
31
|
constructor(opts) {
|
|
16
32
|
this.baseUrl = opts.baseUrl.replace(/\/+$/, "");
|
|
17
33
|
this.apiKey = opts.apiKey;
|
|
18
34
|
this.timeout = opts.timeout;
|
|
19
35
|
this.maxRetries = opts.maxRetries;
|
|
36
|
+
this.teamId = opts.teamId;
|
|
20
37
|
}
|
|
21
38
|
/** Make a request and return the unwrapped `data` field. */
|
|
22
39
|
async request(method, path, opts) {
|
|
@@ -31,6 +48,12 @@ class Transport {
|
|
|
31
48
|
};
|
|
32
49
|
if (authenticated) {
|
|
33
50
|
headers["Authorization"] = `Bearer ${this.apiKey}`;
|
|
51
|
+
// Alongside the key, never without it: the header names the scope the
|
|
52
|
+
// caller is acting in, which is meaningless for an unauthenticated
|
|
53
|
+
// request and is not a second credential.
|
|
54
|
+
if (this.teamId) {
|
|
55
|
+
headers["X-Team-ID"] = this.teamId;
|
|
56
|
+
}
|
|
34
57
|
}
|
|
35
58
|
let url = `${this.baseUrl}${path}`;
|
|
36
59
|
if (opts?.params) {
|
|
@@ -51,13 +74,13 @@ class Transport {
|
|
|
51
74
|
headers["Idempotency-Key"] = randomIdempotencyKey();
|
|
52
75
|
}
|
|
53
76
|
let lastError;
|
|
77
|
+
// Delay before the next attempt when the server named one; undefined
|
|
78
|
+
// means fall back to backoff.
|
|
79
|
+
let retryAfter;
|
|
54
80
|
for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
|
|
55
81
|
if (attempt > 0) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const base = 500 * 2 ** (attempt - 1);
|
|
59
|
-
const jitter = base * 0.25 * (Math.random() * 2 - 1);
|
|
60
|
-
await sleep(base + jitter);
|
|
82
|
+
await sleep(retryDelayMs(attempt, retryAfter));
|
|
83
|
+
retryAfter = undefined;
|
|
61
84
|
}
|
|
62
85
|
const controller = new AbortController();
|
|
63
86
|
const timer = setTimeout(() => controller.abort(), this.timeout * 1000);
|
|
@@ -81,8 +104,17 @@ class Transport {
|
|
|
81
104
|
if (resp.status === 204) {
|
|
82
105
|
return {};
|
|
83
106
|
}
|
|
107
|
+
retryAfter = parseRetryAfter(resp);
|
|
84
108
|
if (resp.status === 429) {
|
|
85
|
-
|
|
109
|
+
// Only on the server's say-so: without Retry-After there is no delay
|
|
110
|
+
// known to be enough, and beyond the cap the caller gets the number
|
|
111
|
+
// (RateLimitError.retryAfter) rather than a hung promise.
|
|
112
|
+
if (retryAfter !== undefined &&
|
|
113
|
+
retryAfter <= exports.MAX_RETRY_AFTER &&
|
|
114
|
+
attempt < this.maxRetries) {
|
|
115
|
+
lastError = new Error(`Server error ${resp.status}`);
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
86
118
|
const errorBody = await safeJson(resp);
|
|
87
119
|
(0, errors_js_1.raiseForError)(resp.status, errorBody, retryAfter);
|
|
88
120
|
}
|
|
@@ -104,6 +136,11 @@ class Transport {
|
|
|
104
136
|
const headers = {};
|
|
105
137
|
if (authenticated) {
|
|
106
138
|
headers["Authorization"] = `Bearer ${this.apiKey}`;
|
|
139
|
+
// A downloaded certificate is as team-scoped as the JSON one; omitting
|
|
140
|
+
// the header here would hand a member their default team's PDF.
|
|
141
|
+
if (this.teamId) {
|
|
142
|
+
headers["X-Team-ID"] = this.teamId;
|
|
143
|
+
}
|
|
107
144
|
}
|
|
108
145
|
const url = `${this.baseUrl}${path}`;
|
|
109
146
|
const controller = new AbortController();
|
|
@@ -123,12 +160,39 @@ class Transport {
|
|
|
123
160
|
}
|
|
124
161
|
}
|
|
125
162
|
exports.Transport = Transport;
|
|
163
|
+
/** Seconds to wait per the Retry-After header (RFC 9110 §10.2.3).
|
|
164
|
+
*
|
|
165
|
+
* Accepts both forms the header allows: non-negative delta-seconds and an
|
|
166
|
+
* HTTP-date, converted to seconds from now (a date already past reads as 0).
|
|
167
|
+
* Anything else is treated as absent.
|
|
168
|
+
*/
|
|
126
169
|
function parseRetryAfter(resp) {
|
|
127
|
-
const raw = resp.headers.get("Retry-After");
|
|
128
|
-
if (raw
|
|
170
|
+
const raw = resp.headers.get("Retry-After")?.trim();
|
|
171
|
+
if (!raw)
|
|
129
172
|
return undefined;
|
|
130
|
-
|
|
131
|
-
|
|
173
|
+
if (/^\d+(\.\d+)?$/.test(raw)) {
|
|
174
|
+
return Number(raw);
|
|
175
|
+
}
|
|
176
|
+
// Every HTTP-date form (IMF-fixdate, RFC 850, asctime) opens with a weekday
|
|
177
|
+
// name; Date.parse alone would also read "-3" or "2099" as a year.
|
|
178
|
+
if (!/^[A-Za-z]{3}/.test(raw))
|
|
179
|
+
return undefined;
|
|
180
|
+
const when = Date.parse(raw);
|
|
181
|
+
if (Number.isNaN(when))
|
|
182
|
+
return undefined;
|
|
183
|
+
return Math.max(0, (when - Date.now()) / 1000);
|
|
184
|
+
}
|
|
185
|
+
/** Milliseconds to sleep before retry `attempt` (1-based). A server-supplied
|
|
186
|
+
* delay within the cap wins; otherwise exponential backoff with ±25% jitter so
|
|
187
|
+
* coordinated 5xx events don't produce a synchronized retry storm from every
|
|
188
|
+
* client at the same instant. */
|
|
189
|
+
function retryDelayMs(attempt, retryAfter) {
|
|
190
|
+
if (retryAfter !== undefined && retryAfter <= exports.MAX_RETRY_AFTER) {
|
|
191
|
+
return retryAfter * 1000;
|
|
192
|
+
}
|
|
193
|
+
const base = Math.min(500 * 2 ** (attempt - 1), exports.MAX_RETRY_AFTER * 1000);
|
|
194
|
+
const jitter = base * 0.25 * (Math.random() * 2 - 1);
|
|
195
|
+
return base + jitter;
|
|
132
196
|
}
|
|
133
197
|
async function safeJson(resp) {
|
|
134
198
|
// Read once. resp.json() consumes the stream on failure too — calling
|
package/dist/cjs/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":";AAAA;;;;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export { Paginator } from "./pagination.js";
|
|
|
16
16
|
export type { CryptoOps } from "./crypto.js";
|
|
17
17
|
export type { PublicKeyInfo } from "./verify.js";
|
|
18
18
|
export { issuanceBytes, hexToBytes, bytesToHex } from "./verify.js";
|
|
19
|
-
import type { PublicKeyInfo } from "./verify.js";
|
|
19
|
+
import type { PublicKeyInfo, PublicKeyOptions } from "./verify.js";
|
|
20
20
|
import type { VerificationResult, TransparencyResult } from "./models.js";
|
|
21
21
|
type Cert = Record<string, unknown>;
|
|
22
22
|
/** Verify all signatures on a deletion certificate offline. */
|
|
@@ -24,9 +24,7 @@ export declare function verifyCertificate(certificate: Cert, publicKeys: Map<str
|
|
|
24
24
|
/** Verify the transparency proof embedded in a certificate. */
|
|
25
25
|
export declare function verifyTransparency(certificate: Cert, publicKeys: Map<string, PublicKeyInfo>): Promise<TransparencyResult>;
|
|
26
26
|
/** Construct a PublicKeyInfo from a hex-encoded Ed25519 public key. */
|
|
27
|
-
export declare function publicKeyFromHex(hexKey: string, opts?:
|
|
28
|
-
revoked?: boolean;
|
|
29
|
-
}): Promise<PublicKeyInfo>;
|
|
27
|
+
export declare function publicKeyFromHex(hexKey: string, opts?: PublicKeyOptions): Promise<PublicKeyInfo>;
|
|
30
28
|
/** Verify a Merkle consistency proof between two tree states (RFC 6962). */
|
|
31
29
|
export declare function verifyConsistency(oldSize: number, newSize: number, oldRoot: Uint8Array, newRoot: Uint8Array, proof: Uint8Array[]): Promise<boolean>;
|
|
32
30
|
//# sourceMappingURL=index.browser.d.ts.map
|
|
@@ -1 +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,iBAAiB,EACjB,mBAAmB,EACnB,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;AAIrB,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF,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;
|
|
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,iBAAiB,EACjB,mBAAmB,EACnB,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;AAIrB,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF,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,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACnE,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,gBAAgB,GACtB,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../src/index.browser.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;AAEH,yCAAyC;AAAhC,uGAAA,UAAU,OAAA;AAGnB,yCAWqB;AAVnB,4GAAA,eAAe,OAAA;AACf,qGAAA,QAAQ,OAAA;AACR,gHAAA,mBAAmB,OAAA;AACnB,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,wGAAA,WAAW,OAAA;AACX,yGAAA,YAAY,OAAA;AACZ,8GAAA,iBAAiB,OAAA;AAGnB,qCAAsC;AAA7B,oGAAA,SAAS,OAAA;AA8BlB,2EAA2E;AAC3E,0EAA0E;AAC1E,yCAAkF;AAAzE,wGAAA,WAAW,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAE5D,iDAA4C;AAAnC,0GAAA,SAAS,OAAA;AAIlB,yCAAoE;AAA3D,0GAAA,aAAa,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,uGAAA,UAAU,OAAA;AAE9C,2DAAoD;AACpD,2CAKqB;AAMrB,+DAA+D;AAC/D,2BACE,WAAiB,EACjB,UAAsC;IAEtC,OAAO,IAAA,6BAAkB,EAAC,iCAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAED,+DAA+D;AAC/D,4BACE,WAAiB,EACjB,UAAsC;IAEtC,OAAO,IAAA,8BAAmB,EAAC,iCAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACrE,CAAC;AAED,uEAAuE;AACvE,0BACE,MAAc,EACd,
|
|
1
|
+
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../src/index.browser.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;AAEH,yCAAyC;AAAhC,uGAAA,UAAU,OAAA;AAGnB,yCAWqB;AAVnB,4GAAA,eAAe,OAAA;AACf,qGAAA,QAAQ,OAAA;AACR,gHAAA,mBAAmB,OAAA;AACnB,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,wGAAA,WAAW,OAAA;AACX,yGAAA,YAAY,OAAA;AACZ,8GAAA,iBAAiB,OAAA;AAGnB,qCAAsC;AAA7B,oGAAA,SAAS,OAAA;AA8BlB,2EAA2E;AAC3E,0EAA0E;AAC1E,yCAAkF;AAAzE,wGAAA,WAAW,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAE5D,iDAA4C;AAAnC,0GAAA,SAAS,OAAA;AAIlB,yCAAoE;AAA3D,0GAAA,aAAa,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,uGAAA,UAAU,OAAA;AAE9C,2DAAoD;AACpD,2CAKqB;AAMrB,+DAA+D;AAC/D,2BACE,WAAiB,EACjB,UAAsC;IAEtC,OAAO,IAAA,6BAAkB,EAAC,iCAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;AAED,+DAA+D;AAC/D,4BACE,WAAiB,EACjB,UAAsC;IAEtC,OAAO,IAAA,8BAAmB,EAAC,iCAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACrE,CAAC;AAED,uEAAuE;AACvE,0BACE,MAAc,EACd,IAAuB;IAEvB,OAAO,IAAA,4BAAiB,EAAC,iCAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,4EAA4E;AAC5E,2BACE,OAAe,EACf,OAAe,EACf,OAAmB,EACnB,OAAmB,EACnB,KAAmB;IAEnB,OAAO,IAAA,6BAAkB,EAAC,iCAAa,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACtF,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/** BurnLedger TypeScript SDK — public API (Node.js entry point). */
|
|
2
|
-
export { BurnLedger } from "./client.js";
|
|
2
|
+
export { BurnLedger, MAX_BATCH_REVOKE } from "./client.js";
|
|
3
3
|
export type { BurnLedgerOptions } from "./client.js";
|
|
4
|
-
export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, } from "./errors.js";
|
|
4
|
+
export { BurnLedgerError, ApiError, AuthenticationError, NotFoundError, ConflictError, ValidationError, RateLimitError, ServerError, TimeoutError, VerificationError, CERTIFICATE_REVOKED, UNSUPPORTED_FORMAT_VERSION, } from "./errors.js";
|
|
5
5
|
export { Transport } from "./http.js";
|
|
6
6
|
export type { TransportOptions } from "./http.js";
|
|
7
|
-
export type {
|
|
7
|
+
export type { PublicKeyOptions } from "./verify.js";
|
|
8
|
+
export type { ProofMode, AttestationStatus, CertificateStatus, TransparencyStatus, HealthStatus, TransportSecurity, ReadOnlyEnforcement, ConnectorType, HashScope, LogEntryType, VerificationResult, TransparencyResult, ApiKeyRole, System, SystemAttestation, Attestation, VerificationSystem, VerifyResult, CertificateResponse, RevocationStatus, Webhook, SignedTreeHead, LogEntry, InclusionProof, ConsistencyProof, BatchAttestationResponse, BatchAttestationError, BatchRevokeResponse, BatchRevokeError, MonthlyCount, CertificateStats, WebhookRotateResponse, WebhookDelivery, ApiKeyListItem, ApiKeyResponse, PlanUsage, Profile, SystemHealth, } from "./models.js";
|
|
8
9
|
export { parseSystem, parseCertificateResponse, parseWebhook } from "./models.js";
|
|
9
10
|
export { Paginator } from "./pagination.js";
|
|
10
11
|
export type { CryptoOps } from "./crypto.js";
|
|
11
12
|
export type { PublicKeyInfo } from "./verify.js";
|
|
12
13
|
export { issuanceBytes, hexToBytes, bytesToHex } from "./verify.js";
|
|
13
|
-
import type { PublicKeyInfo } from "./verify.js";
|
|
14
|
+
import type { PublicKeyInfo, PublicKeyOptions } from "./verify.js";
|
|
14
15
|
import type { VerificationResult, TransparencyResult } from "./models.js";
|
|
15
16
|
type Cert = Record<string, unknown>;
|
|
16
17
|
/** Verify all signatures on a deletion certificate offline. */
|
|
@@ -33,14 +34,18 @@ export declare function verifyTransparency(certificate: Cert, publicKeys: Map<st
|
|
|
33
34
|
* all, and every key they built looked unconditionally active. Widening only;
|
|
34
35
|
* `revoked` still works and still means "unusable".
|
|
35
36
|
*/
|
|
36
|
-
export declare function publicKeyFromHex(hexKey: string, opts?:
|
|
37
|
-
revoked?: boolean;
|
|
38
|
-
keyStatus?: string;
|
|
39
|
-
notBefore?: string;
|
|
40
|
-
notAfter?: string;
|
|
41
|
-
compromisedFrom?: string;
|
|
42
|
-
}): Promise<PublicKeyInfo>;
|
|
37
|
+
export declare function publicKeyFromHex(hexKey: string, opts?: PublicKeyOptions): Promise<PublicKeyInfo>;
|
|
43
38
|
/** Verify a Merkle consistency proof between two tree states (RFC 6962). */
|
|
44
39
|
export declare function verifyConsistency(oldSize: number, newSize: number, oldRoot: Uint8Array, newRoot: Uint8Array, proof: Uint8Array[]): Promise<boolean>;
|
|
45
40
|
export { verifyWebhookSignature, isTimestampFresh } from "./webhooks.js";
|
|
41
|
+
/**
|
|
42
|
+
* Client-side connection-config sealing.
|
|
43
|
+
*
|
|
44
|
+
* Node only, and absent from the browser entry point on purpose: verifying an
|
|
45
|
+
* attestation document needs X.509 chain building, which browsers do not
|
|
46
|
+
* expose, and sealing a datastore credential is not something a browser should
|
|
47
|
+
* be doing.
|
|
48
|
+
*/
|
|
49
|
+
export { EnclaveAttestationError, ENVELOPE_MAGIC, HEADER_SIZE, NITRO_ROOT_G1_PEM, sealConnectionConfig, sealToKey, verifyEnclaveConfigSealKey, } from "./enclave-seal.js";
|
|
50
|
+
export type { SealOptions } from "./enclave-seal.js";
|
|
46
51
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/** BurnLedger TypeScript SDK — public API (Node.js entry point). */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.isTimestampFresh = exports.verifyWebhookSignature = exports.bytesToHex = exports.hexToBytes = exports.issuanceBytes = exports.Paginator = exports.parseWebhook = exports.parseCertificateResponse = exports.parseSystem = exports.Transport = exports.VerificationError = exports.TimeoutError = exports.ServerError = exports.RateLimitError = exports.ValidationError = exports.ConflictError = exports.NotFoundError = exports.AuthenticationError = exports.ApiError = exports.BurnLedgerError = exports.BurnLedger = void 0;
|
|
4
|
+
exports.verifyEnclaveConfigSealKey = exports.sealToKey = exports.sealConnectionConfig = exports.NITRO_ROOT_G1_PEM = exports.HEADER_SIZE = exports.ENVELOPE_MAGIC = exports.EnclaveAttestationError = exports.isTimestampFresh = exports.verifyWebhookSignature = exports.bytesToHex = exports.hexToBytes = exports.issuanceBytes = exports.Paginator = exports.parseWebhook = exports.parseCertificateResponse = exports.parseSystem = exports.Transport = exports.UNSUPPORTED_FORMAT_VERSION = exports.CERTIFICATE_REVOKED = exports.VerificationError = exports.TimeoutError = exports.ServerError = exports.RateLimitError = exports.ValidationError = exports.ConflictError = exports.NotFoundError = exports.AuthenticationError = exports.ApiError = exports.BurnLedgerError = exports.MAX_BATCH_REVOKE = exports.BurnLedger = void 0;
|
|
5
5
|
exports.verifyCertificate = verifyCertificate;
|
|
6
6
|
exports.verifyCertificateWithStatus = verifyCertificateWithStatus;
|
|
7
7
|
exports.verifyTransparency = verifyTransparency;
|
|
@@ -9,6 +9,7 @@ exports.publicKeyFromHex = publicKeyFromHex;
|
|
|
9
9
|
exports.verifyConsistency = verifyConsistency;
|
|
10
10
|
var client_js_1 = require("./client.js");
|
|
11
11
|
Object.defineProperty(exports, "BurnLedger", { enumerable: true, get: function () { return client_js_1.BurnLedger; } });
|
|
12
|
+
Object.defineProperty(exports, "MAX_BATCH_REVOKE", { enumerable: true, get: function () { return client_js_1.MAX_BATCH_REVOKE; } });
|
|
12
13
|
var errors_js_1 = require("./errors.js");
|
|
13
14
|
Object.defineProperty(exports, "BurnLedgerError", { enumerable: true, get: function () { return errors_js_1.BurnLedgerError; } });
|
|
14
15
|
Object.defineProperty(exports, "ApiError", { enumerable: true, get: function () { return errors_js_1.ApiError; } });
|
|
@@ -20,6 +21,8 @@ Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: functi
|
|
|
20
21
|
Object.defineProperty(exports, "ServerError", { enumerable: true, get: function () { return errors_js_1.ServerError; } });
|
|
21
22
|
Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return errors_js_1.TimeoutError; } });
|
|
22
23
|
Object.defineProperty(exports, "VerificationError", { enumerable: true, get: function () { return errors_js_1.VerificationError; } });
|
|
24
|
+
Object.defineProperty(exports, "CERTIFICATE_REVOKED", { enumerable: true, get: function () { return errors_js_1.CERTIFICATE_REVOKED; } });
|
|
25
|
+
Object.defineProperty(exports, "UNSUPPORTED_FORMAT_VERSION", { enumerable: true, get: function () { return errors_js_1.UNSUPPORTED_FORMAT_VERSION; } });
|
|
23
26
|
var http_js_1 = require("./http.js");
|
|
24
27
|
Object.defineProperty(exports, "Transport", { enumerable: true, get: function () { return http_js_1.Transport; } });
|
|
25
28
|
// Raw-JSON → model parsers, for consumers that fetch API responses outside
|
|
@@ -72,4 +75,20 @@ function verifyConsistency(oldSize, newSize, oldRoot, newRoot, proof) {
|
|
|
72
75
|
var webhooks_js_1 = require("./webhooks.js");
|
|
73
76
|
Object.defineProperty(exports, "verifyWebhookSignature", { enumerable: true, get: function () { return webhooks_js_1.verifyWebhookSignature; } });
|
|
74
77
|
Object.defineProperty(exports, "isTimestampFresh", { enumerable: true, get: function () { return webhooks_js_1.isTimestampFresh; } });
|
|
78
|
+
/**
|
|
79
|
+
* Client-side connection-config sealing.
|
|
80
|
+
*
|
|
81
|
+
* Node only, and absent from the browser entry point on purpose: verifying an
|
|
82
|
+
* attestation document needs X.509 chain building, which browsers do not
|
|
83
|
+
* expose, and sealing a datastore credential is not something a browser should
|
|
84
|
+
* be doing.
|
|
85
|
+
*/
|
|
86
|
+
var enclave_seal_js_1 = require("./enclave-seal.js");
|
|
87
|
+
Object.defineProperty(exports, "EnclaveAttestationError", { enumerable: true, get: function () { return enclave_seal_js_1.EnclaveAttestationError; } });
|
|
88
|
+
Object.defineProperty(exports, "ENVELOPE_MAGIC", { enumerable: true, get: function () { return enclave_seal_js_1.ENVELOPE_MAGIC; } });
|
|
89
|
+
Object.defineProperty(exports, "HEADER_SIZE", { enumerable: true, get: function () { return enclave_seal_js_1.HEADER_SIZE; } });
|
|
90
|
+
Object.defineProperty(exports, "NITRO_ROOT_G1_PEM", { enumerable: true, get: function () { return enclave_seal_js_1.NITRO_ROOT_G1_PEM; } });
|
|
91
|
+
Object.defineProperty(exports, "sealConnectionConfig", { enumerable: true, get: function () { return enclave_seal_js_1.sealConnectionConfig; } });
|
|
92
|
+
Object.defineProperty(exports, "sealToKey", { enumerable: true, get: function () { return enclave_seal_js_1.sealToKey; } });
|
|
93
|
+
Object.defineProperty(exports, "verifyEnclaveConfigSealKey", { enumerable: true, get: function () { return enclave_seal_js_1.verifyEnclaveConfigSealKey; } });
|
|
75
94
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,oEAAoE;;;;;;;;AAEpE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,oEAAoE;;;;;;;;AAEpE,yCAA2D;AAAlD,uGAAA,UAAU,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAGrC,yCAaqB;AAZnB,4GAAA,eAAe,OAAA;AACf,qGAAA,QAAQ,OAAA;AACR,gHAAA,mBAAmB,OAAA;AACnB,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,2GAAA,cAAc,OAAA;AACd,wGAAA,WAAW,OAAA;AACX,yGAAA,YAAY,OAAA;AACZ,8GAAA,iBAAiB,OAAA;AACjB,gHAAA,mBAAmB,OAAA;AACnB,uHAAA,0BAA0B,OAAA;AAG5B,qCAAsC;AAA7B,oGAAA,SAAS,OAAA;AA8ClB,2EAA2E;AAC3E,0EAA0E;AAC1E,yCAAkF;AAAzE,wGAAA,WAAW,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAE5D,iDAA4C;AAAnC,0GAAA,SAAS,OAAA;AAIlB,yCAAoE;AAA3D,0GAAA,aAAa,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,uGAAA,UAAU,OAAA;AAE9C,qDAA8C;AAC9C,2CAMqB;AAMrB,+DAA+D;AAC/D,2BACE,WAAiB,EACjB,UAAsC;IAEtC,OAAO,IAAA,6BAAkB,EAAC,2BAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,qCACE,WAAiB,EACjB,UAAsC,EACtC,MAAuC,EACvC,GAAU;IAEV,OAAO,IAAA,uCAA4B,EAAC,2BAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACxF,CAAC;AAED,+DAA+D;AAC/D,4BACE,WAAiB,EACjB,UAAsC;IAEtC,OAAO,IAAA,8BAAmB,EAAC,2BAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,0BACE,MAAc,EACd,IAAuB;IAEvB,OAAO,IAAA,4BAAiB,EAAC,2BAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,4EAA4E;AAC5E,2BACE,OAAe,EACf,OAAe,EACf,OAAmB,EACnB,OAAmB,EACnB,KAAmB;IAEnB,OAAO,IAAA,6BAAkB,EAAC,2BAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,6CAAyE;AAAhE,qHAAA,sBAAsB,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAEjD;;;;;;;GAOG;AACH,qDAQ2B;AAPzB,0HAAA,uBAAuB,OAAA;AACvB,iHAAA,cAAc,OAAA;AACd,8GAAA,WAAW,OAAA;AACX,oHAAA,iBAAiB,OAAA;AACjB,uHAAA,oBAAoB,OAAA;AACpB,4GAAA,SAAS,OAAA;AACT,6HAAA,0BAA0B,OAAA"}
|
package/dist/cjs/keys.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CryptoOps } from "./crypto.js";
|
|
1
2
|
export type KeyEntry = {
|
|
2
3
|
key_id: string;
|
|
3
4
|
public_key: string;
|
|
@@ -9,6 +10,24 @@ export type KeyEntry = {
|
|
|
9
10
|
not_after?: string | null;
|
|
10
11
|
compromised_from?: string | null;
|
|
11
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* The published key set as /.well-known/burnledger-keys serves it: the `keys`
|
|
15
|
+
* array, and BESIDE it — in the same object — the fields of a signed
|
|
16
|
+
* key_list.v3 statement when the server signs one (ADR-017 §5a). A body with no
|
|
17
|
+
* `signature` is the unsigned list the endpoint has always served; that is not
|
|
18
|
+
* an error, it is the state of the world before §5a is deployed.
|
|
19
|
+
*
|
|
20
|
+
* Mirrors core.KeyListDocument.
|
|
21
|
+
*/
|
|
22
|
+
export type KeyListDocument = {
|
|
23
|
+
keys: KeyEntry[];
|
|
24
|
+
statement_issued_at?: string;
|
|
25
|
+
statement_expires_at?: string;
|
|
26
|
+
sth_tree_size?: number;
|
|
27
|
+
sth_root_hash?: string;
|
|
28
|
+
signature?: string;
|
|
29
|
+
key_id?: string;
|
|
30
|
+
};
|
|
12
31
|
/**
|
|
13
32
|
* Normalize a parsed keys file to an array of key entries. Accepts a bare
|
|
14
33
|
* JSON array (the generated keys.json shape), a { "keys": [...] } envelope,
|
|
@@ -16,4 +35,51 @@ export type KeyEntry = {
|
|
|
16
35
|
* actually publishes. Throws on any other shape.
|
|
17
36
|
*/
|
|
18
37
|
export declare function parseKeyEntries(parsed: unknown): KeyEntry[];
|
|
38
|
+
/**
|
|
39
|
+
* Read a published key set in any shape this project has ever served — a bare
|
|
40
|
+
* array, a {"keys": [...]} object, or either inside the API's {"data": ...}
|
|
41
|
+
* envelope — keeping the statement fields when the object forms carry them.
|
|
42
|
+
* Mirrors core.ParseKeyListDocument, so this CLI, the Go CLI and the browser
|
|
43
|
+
* cannot disagree about which files are key sets.
|
|
44
|
+
*/
|
|
45
|
+
export declare function parseKeyListDocument(parsed: unknown): KeyListDocument;
|
|
46
|
+
/** Verdicts about a key list. Mirrors core.KeyListResult, plus the one the CLI
|
|
47
|
+
* adds (SIGNING_KEY_NOT_IN_LIST) because core never reaches it: VerifyKeyList
|
|
48
|
+
* is told which key to trust, and this is the case where there is none to offer. */
|
|
49
|
+
export declare const KEY_LIST_VALID = "VALID";
|
|
50
|
+
export declare const KEY_LIST_MALFORMED = "MALFORMED_KEY_LIST";
|
|
51
|
+
export declare const KEY_LIST_SIGNING_KEY_UNUSABLE = "KEY_LIST_SIGNING_KEY_UNUSABLE";
|
|
52
|
+
export declare const KEY_LIST_INVALID_SIGNATURE = "INVALID_KEY_LIST_SIGNATURE";
|
|
53
|
+
export declare const KEY_LIST_STALE = "KEY_LIST_STALE";
|
|
54
|
+
export declare const KEY_LIST_SIGNING_KEY_ABSENT = "SIGNING_KEY_NOT_IN_LIST";
|
|
55
|
+
/**
|
|
56
|
+
* What a run learned about where the key statuses and dates came from.
|
|
57
|
+
* Mirrors keyListEvidence in cmd/cli/keys.go: it is not a pass/fail input to
|
|
58
|
+
* certificate verification, it qualifies one. An auditor reading
|
|
59
|
+
* KEY_COMPROMISED needs to know whether that word arrived as evidence they can
|
|
60
|
+
* keep or as JSON from an endpoint trusted for one TCP connection.
|
|
61
|
+
*/
|
|
62
|
+
export interface KeyListEvidence {
|
|
63
|
+
/** Whether the file carried a signed statement at all. */
|
|
64
|
+
present: boolean;
|
|
65
|
+
result?: string;
|
|
66
|
+
/** The trusted key was taken from the list itself — trust-on-first-use, not proof. */
|
|
67
|
+
selfSigned: boolean;
|
|
68
|
+
/** statement_expires_at, normalized to the form Go prints. */
|
|
69
|
+
expiresAt?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check a key-list statement the way cmd/cli/keys.go does, so four verifiers
|
|
73
|
+
* agree: the trusted key is looked up IN THE LIST ITSELF (trust-on-first-use,
|
|
74
|
+
* and selfSigned says so), then core.VerifyKeyList's order — the list parses
|
|
75
|
+
* and has no duplicate, the signing key is usable at `now` under ADR-017's
|
|
76
|
+
* table, the signature verifies over the published entries, and only then
|
|
77
|
+
* freshness. A stale verdict is never returned for a signature never tested.
|
|
78
|
+
*
|
|
79
|
+
* THROWS where the Go CLI exits 2: an entry that does not parse, a key_id that
|
|
80
|
+
* is not sha256(public_key), or a statement whose fields will not read. Someone
|
|
81
|
+
* signed something the reader cannot read, and continuing as though the file
|
|
82
|
+
* were merely unsigned would throw that fact away.
|
|
83
|
+
*/
|
|
84
|
+
export declare function verifyKeyList(crypto: CryptoOps, doc: KeyListDocument, now: Date): Promise<KeyListEvidence>;
|
|
19
85
|
//# sourceMappingURL=keys.d.ts.map
|
package/dist/cjs/keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAU7C,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB;;0BAEsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,CAE3D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAQrE;AAED;;oFAEoF;AACpF,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAC7E,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AACvE,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,UAAU,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,eAAe,CAAC,CAmE1B"}
|