usertrust 1.4.0 → 2.0.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 +17 -1
- package/dist/anomaly/detector.d.ts.map +1 -1
- package/dist/anomaly/detector.js +36 -11
- package/dist/anomaly/detector.js.map +1 -1
- package/dist/anomaly/index.d.ts +2 -2
- package/dist/anomaly/index.d.ts.map +1 -1
- package/dist/anomaly/index.js +1 -1
- package/dist/anomaly/index.js.map +1 -1
- package/dist/anomaly/signals/spend-velocity.d.ts +39 -12
- package/dist/anomaly/signals/spend-velocity.d.ts.map +1 -1
- package/dist/anomaly/signals/spend-velocity.js +66 -43
- package/dist/anomaly/signals/spend-velocity.js.map +1 -1
- package/dist/anomaly/signals/token-rate.d.ts +33 -13
- package/dist/anomaly/signals/token-rate.d.ts.map +1 -1
- package/dist/anomaly/signals/token-rate.js +124 -38
- package/dist/anomaly/signals/token-rate.js.map +1 -1
- package/dist/anomaly/types.d.ts +28 -6
- package/dist/anomaly/types.d.ts.map +1 -1
- package/dist/audit/anchor-doctor.d.ts +42 -0
- package/dist/audit/anchor-doctor.d.ts.map +1 -0
- package/dist/audit/anchor-doctor.js +285 -0
- package/dist/audit/anchor-doctor.js.map +1 -0
- package/dist/audit/anchor-verify.d.ts +229 -0
- package/dist/audit/anchor-verify.d.ts.map +1 -0
- package/dist/audit/anchor-verify.js +809 -0
- package/dist/audit/anchor-verify.js.map +1 -0
- package/dist/audit/anchor.d.ts +177 -0
- package/dist/audit/anchor.d.ts.map +1 -0
- package/dist/audit/anchor.js +922 -0
- package/dist/audit/anchor.js.map +1 -0
- package/dist/audit/canonical.js +1 -1
- package/dist/audit/canonical.js.map +1 -1
- package/dist/audit/chain.d.ts.map +1 -1
- package/dist/audit/chain.js +21 -7
- package/dist/audit/chain.js.map +1 -1
- package/dist/audit/read.d.ts +19 -0
- package/dist/audit/read.d.ts.map +1 -0
- package/dist/audit/read.js +94 -0
- package/dist/audit/read.js.map +1 -0
- package/dist/audit/rekor-verify.d.ts +116 -0
- package/dist/audit/rekor-verify.d.ts.map +1 -0
- package/dist/audit/rekor-verify.js +533 -0
- package/dist/audit/rekor-verify.js.map +1 -0
- package/dist/audit/rekor.d.ts +71 -0
- package/dist/audit/rekor.d.ts.map +1 -0
- package/dist/audit/rekor.js +556 -0
- package/dist/audit/rekor.js.map +1 -0
- package/dist/audit/rotation.js +1 -1
- package/dist/audit/rotation.js.map +1 -1
- package/dist/audit/sigv4.d.ts +44 -0
- package/dist/audit/sigv4.d.ts.map +1 -0
- package/dist/audit/sigv4.js +134 -0
- package/dist/audit/sigv4.js.map +1 -0
- package/dist/audit/verify.d.ts +78 -0
- package/dist/audit/verify.d.ts.map +1 -1
- package/dist/audit/verify.js +195 -1
- package/dist/audit/verify.js.map +1 -1
- package/dist/cli/anchor.d.ts +3 -0
- package/dist/cli/anchor.d.ts.map +1 -0
- package/dist/cli/anchor.js +626 -0
- package/dist/cli/anchor.js.map +1 -0
- package/dist/cli/completions.js +1 -1
- package/dist/cli/export.d.ts +3 -0
- package/dist/cli/export.d.ts.map +1 -0
- package/dist/cli/export.js +58 -0
- package/dist/cli/export.js.map +1 -0
- package/dist/cli/health.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +99 -2
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +4 -34
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/main.d.ts +2 -2
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +20 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/pricing.js +1 -1
- package/dist/cli/pricing.js.map +1 -1
- package/dist/cli/ui.d.ts +3 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +35 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/cli/verify.d.ts.map +1 -1
- package/dist/cli/verify.js +342 -3
- package/dist/cli/verify.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/detect.d.ts +71 -16
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js +141 -6
- package/dist/detect.js.map +1 -1
- package/dist/export/markdown.d.ts +12 -0
- package/dist/export/markdown.d.ts.map +1 -0
- package/dist/export/markdown.js +142 -0
- package/dist/export/markdown.js.map +1 -0
- package/dist/govern.d.ts +67 -3
- package/dist/govern.d.ts.map +1 -1
- package/dist/govern.js +1011 -219
- package/dist/govern.js.map +1 -1
- package/dist/headless.d.ts +41 -2
- package/dist/headless.d.ts.map +1 -1
- package/dist/headless.js +58 -7
- package/dist/headless.js.map +1 -1
- package/dist/index.d.ts +33 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -23
- package/dist/index.js.map +1 -1
- package/dist/ledger/client.d.ts.map +1 -1
- package/dist/ledger/client.js +57 -46
- package/dist/ledger/client.js.map +1 -1
- package/dist/ledger/engine.d.ts.map +1 -1
- package/dist/ledger/engine.js +22 -13
- package/dist/ledger/engine.js.map +1 -1
- package/dist/ledger/pricing.d.ts +54 -0
- package/dist/ledger/pricing.d.ts.map +1 -1
- package/dist/ledger/pricing.js +128 -8
- package/dist/ledger/pricing.js.map +1 -1
- package/dist/shared/types.d.ts +154 -340
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +67 -17
- package/dist/shared/types.js.map +1 -1
- package/dist/snapshot/checkpoint.d.ts.map +1 -1
- package/dist/snapshot/checkpoint.js +20 -2
- package/dist/snapshot/checkpoint.js.map +1 -1
- package/dist/streaming.d.ts +13 -3
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js +88 -30
- package/dist/streaming.js.map +1 -1
- package/dist/supply-chain/sign.d.ts.map +1 -1
- package/dist/supply-chain/sign.js +3 -0
- package/dist/supply-chain/sign.js.map +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface SigV4Credentials {
|
|
2
|
+
accessKeyId: string;
|
|
3
|
+
secretAccessKey: string;
|
|
4
|
+
sessionToken?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SigV4Request {
|
|
7
|
+
method: string;
|
|
8
|
+
/** Virtual-host or path-style host, no scheme. Signed as the `host` header. */
|
|
9
|
+
host: string;
|
|
10
|
+
/** Already URI-encoded absolute path, e.g. `/bucket/key`. */
|
|
11
|
+
path: string;
|
|
12
|
+
/** Canonical (sorted, encoded) query string; empty when absent. */
|
|
13
|
+
query?: string;
|
|
14
|
+
/** Lowercase-normalized on the way in; `host` is supplied by `host` above. */
|
|
15
|
+
headers: Record<string, string>;
|
|
16
|
+
payload: Buffer;
|
|
17
|
+
region: string;
|
|
18
|
+
service: string;
|
|
19
|
+
/** `YYYYMMDDTHHMMSSZ` — injected rather than read from the clock. */
|
|
20
|
+
amzDate: string;
|
|
21
|
+
}
|
|
22
|
+
/** sha256 hex of the request payload — S3 requires it as `x-amz-content-sha256`. */
|
|
23
|
+
export declare function hashPayload(payload: Buffer): string;
|
|
24
|
+
/**
|
|
25
|
+
* `METHOD\n<path>\n<query>\n<canonicalHeaders>\n<signedHeaders>\n<payloadHash>`
|
|
26
|
+
* — canonicalHeaders is a sorted `name:value\n` block, hence the blank line
|
|
27
|
+
* before the signed-header list.
|
|
28
|
+
*/
|
|
29
|
+
export declare function canonicalRequest(req: SigV4Request, payloadHash: string): string;
|
|
30
|
+
/** `AWS4-HMAC-SHA256\n<amzDate>\n<scope>\n<sha256hex(canonicalRequest)>`. */
|
|
31
|
+
export declare function stringToSign(req: SigV4Request, canonicalReqSha256: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* The date/region/service-scoped derived key. Scoping is what keeps a leaked
|
|
34
|
+
* signature from being replayable outside its day, region and service.
|
|
35
|
+
*/
|
|
36
|
+
export declare function signingKey(secret: string, date8: string, region: string, service: string): Buffer;
|
|
37
|
+
/**
|
|
38
|
+
* Headers to add to the outbound request: `host`, `x-amz-date`,
|
|
39
|
+
* `x-amz-content-sha256`, `authorization`, and `x-amz-security-token` when the
|
|
40
|
+
* credentials are temporary. Caller-supplied headers are signed but not
|
|
41
|
+
* returned — the caller already has them and must send them verbatim.
|
|
42
|
+
*/
|
|
43
|
+
export declare function sigV4Headers(req: SigV4Request, creds: SigV4Credentials): Record<string, string>;
|
|
44
|
+
//# sourceMappingURL=sigv4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sigv4.d.ts","sourceRoot":"","sources":["../../src/audit/sigv4.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,gBAAgB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CAChB;AAwBD,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAqCD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAQlF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKjG;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0B/F"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright 2026 Usertools, Inc.
|
|
3
|
+
/**
|
|
4
|
+
* AWS Signature Version 4 — pure signer for the S3 anchor sink.
|
|
5
|
+
*
|
|
6
|
+
* Node built-ins only: pulling an AWS SDK in for four HMACs would put a
|
|
7
|
+
* multi-megabyte transitive dependency tree behind the audit trail, which is
|
|
8
|
+
* exactly what the anchoring design refuses to do.
|
|
9
|
+
*
|
|
10
|
+
* Every function here is pure — `amzDate` is supplied by the caller rather than
|
|
11
|
+
* read from the clock, so signatures are reproducible in tests and validated
|
|
12
|
+
* against AWS's published test vector (see tests/audit/sigv4.test.ts).
|
|
13
|
+
*
|
|
14
|
+
* Scope: SigV4 for requests whose payload is fully in memory (anchor records
|
|
15
|
+
* are a few hundred bytes). No streaming/chunked signing, no multipart.
|
|
16
|
+
*
|
|
17
|
+
* Credentials are never logged, echoed into errors, or returned — only the
|
|
18
|
+
* derived `authorization` header leaves this module.
|
|
19
|
+
*/
|
|
20
|
+
import { createHash, createHmac } from "node:crypto";
|
|
21
|
+
const ALGORITHM = "AWS4-HMAC-SHA256";
|
|
22
|
+
const TERMINATOR = "aws4_request";
|
|
23
|
+
const AMZ_DATE = /^\d{8}T\d{6}Z$/;
|
|
24
|
+
// ── Primitives ──
|
|
25
|
+
function hmac(key, data) {
|
|
26
|
+
return createHmac("sha256", key).update(data, "utf8").digest();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The `YYYYMMDD` half of an amz date. A malformed date would otherwise be
|
|
30
|
+
* signed into a credential scope AWS cannot resolve, surfacing as an opaque
|
|
31
|
+
* 403 at publish time; fail here instead, where the cause is visible.
|
|
32
|
+
*/
|
|
33
|
+
function date8Of(amzDate) {
|
|
34
|
+
if (!AMZ_DATE.test(amzDate)) {
|
|
35
|
+
throw new Error(`sigv4: amzDate must be YYYYMMDDTHHMMSSZ, got "${amzDate.slice(0, 32)}"`);
|
|
36
|
+
}
|
|
37
|
+
return amzDate.slice(0, 8);
|
|
38
|
+
}
|
|
39
|
+
function credentialScope(date8, region, service) {
|
|
40
|
+
return `${date8}/${region}/${service}/${TERMINATOR}`;
|
|
41
|
+
}
|
|
42
|
+
/** sha256 hex of the request payload — S3 requires it as `x-amz-content-sha256`. */
|
|
43
|
+
export function hashPayload(payload) {
|
|
44
|
+
return createHash("sha256").update(payload).digest("hex");
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Canonical request plus the `;`-joined list of header names it signs.
|
|
48
|
+
*
|
|
49
|
+
* Header values are normalized the way AWS re-normalizes them server-side
|
|
50
|
+
* (trimmed, inner runs of spaces collapsed) so a value carrying incidental
|
|
51
|
+
* whitespace still verifies.
|
|
52
|
+
*/
|
|
53
|
+
function canonicalParts(req, payloadHash) {
|
|
54
|
+
const merged = new Map();
|
|
55
|
+
for (const [name, value] of Object.entries(req.headers)) {
|
|
56
|
+
merged.set(name.trim().toLowerCase(), value.trim().replace(/ {2,}/g, " "));
|
|
57
|
+
}
|
|
58
|
+
// These three are ours: a caller-supplied `host` header must never decide
|
|
59
|
+
// what the signature covers, and the digest must match the bytes we send.
|
|
60
|
+
merged.set("host", req.host);
|
|
61
|
+
merged.set("x-amz-date", req.amzDate);
|
|
62
|
+
merged.set("x-amz-content-sha256", payloadHash);
|
|
63
|
+
// Map keys are unique, so a comparator that never returns 0 is still total.
|
|
64
|
+
const entries = [...merged].sort((a, b) => (a[0] < b[0] ? -1 : 1));
|
|
65
|
+
const signedHeaders = entries.map(([name]) => name).join(";");
|
|
66
|
+
const canonical = [
|
|
67
|
+
req.method.toUpperCase(),
|
|
68
|
+
req.path,
|
|
69
|
+
req.query ?? "",
|
|
70
|
+
entries.map(([name, value]) => `${name}:${value}\n`).join(""),
|
|
71
|
+
signedHeaders,
|
|
72
|
+
payloadHash,
|
|
73
|
+
].join("\n");
|
|
74
|
+
return { canonical, signedHeaders };
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* `METHOD\n<path>\n<query>\n<canonicalHeaders>\n<signedHeaders>\n<payloadHash>`
|
|
78
|
+
* — canonicalHeaders is a sorted `name:value\n` block, hence the blank line
|
|
79
|
+
* before the signed-header list.
|
|
80
|
+
*/
|
|
81
|
+
export function canonicalRequest(req, payloadHash) {
|
|
82
|
+
return canonicalParts(req, payloadHash).canonical;
|
|
83
|
+
}
|
|
84
|
+
/** `AWS4-HMAC-SHA256\n<amzDate>\n<scope>\n<sha256hex(canonicalRequest)>`. */
|
|
85
|
+
export function stringToSign(req, canonicalReqSha256) {
|
|
86
|
+
const date8 = date8Of(req.amzDate);
|
|
87
|
+
return [
|
|
88
|
+
ALGORITHM,
|
|
89
|
+
req.amzDate,
|
|
90
|
+
credentialScope(date8, req.region, req.service),
|
|
91
|
+
canonicalReqSha256,
|
|
92
|
+
].join("\n");
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The date/region/service-scoped derived key. Scoping is what keeps a leaked
|
|
96
|
+
* signature from being replayable outside its day, region and service.
|
|
97
|
+
*/
|
|
98
|
+
export function signingKey(secret, date8, region, service) {
|
|
99
|
+
const kDate = hmac(`AWS4${secret}`, date8);
|
|
100
|
+
const kRegion = hmac(kDate, region);
|
|
101
|
+
const kService = hmac(kRegion, service);
|
|
102
|
+
return hmac(kService, TERMINATOR);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Headers to add to the outbound request: `host`, `x-amz-date`,
|
|
106
|
+
* `x-amz-content-sha256`, `authorization`, and `x-amz-security-token` when the
|
|
107
|
+
* credentials are temporary. Caller-supplied headers are signed but not
|
|
108
|
+
* returned — the caller already has them and must send them verbatim.
|
|
109
|
+
*/
|
|
110
|
+
export function sigV4Headers(req, creds) {
|
|
111
|
+
const date8 = date8Of(req.amzDate);
|
|
112
|
+
const payloadHash = hashPayload(req.payload);
|
|
113
|
+
// The session token is part of the signature, not just a header alongside it.
|
|
114
|
+
const signReq = creds.sessionToken
|
|
115
|
+
? { ...req, headers: { ...req.headers, "x-amz-security-token": creds.sessionToken } }
|
|
116
|
+
: req;
|
|
117
|
+
const { canonical, signedHeaders } = canonicalParts(signReq, payloadHash);
|
|
118
|
+
const canonicalHash = createHash("sha256").update(canonical, "utf8").digest("hex");
|
|
119
|
+
const key = signingKey(creds.secretAccessKey, date8, req.region, req.service);
|
|
120
|
+
const signature = hmac(key, stringToSign(signReq, canonicalHash)).toString("hex");
|
|
121
|
+
const scope = credentialScope(date8, req.region, req.service);
|
|
122
|
+
const out = {
|
|
123
|
+
host: req.host,
|
|
124
|
+
"x-amz-date": req.amzDate,
|
|
125
|
+
"x-amz-content-sha256": payloadHash,
|
|
126
|
+
authorization: `${ALGORITHM} Credential=${creds.accessKeyId}/${scope}, ` +
|
|
127
|
+
`SignedHeaders=${signedHeaders}, Signature=${signature}`,
|
|
128
|
+
};
|
|
129
|
+
if (creds.sessionToken) {
|
|
130
|
+
out["x-amz-security-token"] = creds.sessionToken;
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=sigv4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sigv4.js","sourceRoot":"","sources":["../../src/audit/sigv4.ts"],"names":[],"mappings":"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"}
|
package/dist/audit/verify.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type AnchorRecord, type AnchorSource, type AnchorState, type AnchorTrust, type WitnessInput, type WitnessStatus } from "./anchor-verify.js";
|
|
2
|
+
export type { AnchorRecord, AnchorSource, AnchorState, AnchorTrust, WitnessInput };
|
|
1
3
|
export interface ChainVerificationResult {
|
|
2
4
|
valid: boolean;
|
|
3
5
|
eventsVerified: number;
|
|
@@ -26,4 +28,80 @@ export declare function verifyChain(logPath: string): ChainVerificationResult;
|
|
|
26
28
|
* "previousHash mismatch"), and checks the `.meta` tail anchor.
|
|
27
29
|
*/
|
|
28
30
|
export declare function verifyVault(vaultPath: string): VaultVerificationResult;
|
|
31
|
+
export interface AnchorVerifyParams {
|
|
32
|
+
/** Raw contents of caller-fetched anchor artifacts (single JSON or JSONL). */
|
|
33
|
+
readonly externalAnchorsRaw?: readonly string[] | undefined;
|
|
34
|
+
/** Raw transparency-log receipts: one receipt JSON, or JSONL of receipts. */
|
|
35
|
+
readonly rekorReceiptsRaw?: readonly string[] | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Caller-pinned transparency-log keys. Supplying none is only meaningful for
|
|
38
|
+
* the one log whose key ships with the verifier (rekor.sigstore.dev); any
|
|
39
|
+
* other log without a pin is refused rather than trusted.
|
|
40
|
+
*/
|
|
41
|
+
readonly rekorLogPubkeysPem?: readonly string[] | undefined;
|
|
42
|
+
/** Caller-pinned trust material — NEVER read from the vault under audit. */
|
|
43
|
+
readonly trust?: AnchorTrust | undefined;
|
|
44
|
+
readonly witness?: WitnessInput | undefined;
|
|
45
|
+
readonly maxAnchorAgeMs?: number | undefined;
|
|
46
|
+
readonly maxUnanchoredEvents?: number | undefined;
|
|
47
|
+
readonly expectedVaultId?: string | undefined;
|
|
48
|
+
readonly nowMs?: number | undefined;
|
|
49
|
+
}
|
|
50
|
+
export interface RekorReport {
|
|
51
|
+
receiptsVerified: number;
|
|
52
|
+
receiptsFailed: number;
|
|
53
|
+
/** Max attested time among verified receipts of the NEWEST anchor (ms). */
|
|
54
|
+
latestAttestedTimeMs: number | null;
|
|
55
|
+
errors: string[];
|
|
56
|
+
}
|
|
57
|
+
export interface AnchoringReport {
|
|
58
|
+
anchorSource: AnchorSource;
|
|
59
|
+
anchorCount: number;
|
|
60
|
+
latestAnchor: {
|
|
61
|
+
anchorSeq: number;
|
|
62
|
+
treeSize: number;
|
|
63
|
+
lastHash: string;
|
|
64
|
+
keyId: string;
|
|
65
|
+
timestamp: string;
|
|
66
|
+
} | null;
|
|
67
|
+
unanchoredTail: {
|
|
68
|
+
events: number;
|
|
69
|
+
sinceTimestampMs: number | null;
|
|
70
|
+
};
|
|
71
|
+
witness: {
|
|
72
|
+
requested: boolean;
|
|
73
|
+
status: WitnessStatus;
|
|
74
|
+
error?: string;
|
|
75
|
+
};
|
|
76
|
+
reasons: string[];
|
|
77
|
+
warnings: string[];
|
|
78
|
+
/** Present only when transparency-log receipts were supplied. */
|
|
79
|
+
rekor?: RekorReport;
|
|
80
|
+
}
|
|
81
|
+
export interface AnchoredVaultVerificationResult extends VaultVerificationResult {
|
|
82
|
+
anchorState: AnchorState;
|
|
83
|
+
anchoring: AnchoringReport;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* verifyVault + the spec §7.2 anchor state machine. Existing chain semantics
|
|
87
|
+
* are UNCHANGED (verifyVault runs as-is); anchor evaluation is layered on
|
|
88
|
+
* top additively. IDENTICAL function body in packages/core/src/audit/verify.ts
|
|
89
|
+
* — the anchor differential test pins the two.
|
|
90
|
+
*/
|
|
91
|
+
export declare function verifyVaultWithAnchors(vaultPath: string, params?: AnchorVerifyParams): AnchoredVaultVerificationResult;
|
|
92
|
+
/**
|
|
93
|
+
* Exit-code policy for anchored verification. Exit codes stay 0/1
|
|
94
|
+
* (constraints §4.3); `--require-anchor` and `--require-external-anchor` are
|
|
95
|
+
* new INPUTS, not changed defaults.
|
|
96
|
+
*/
|
|
97
|
+
export declare function exitCodeForAnchored(result: {
|
|
98
|
+
valid: boolean;
|
|
99
|
+
anchorState: AnchorState;
|
|
100
|
+
anchoring: {
|
|
101
|
+
anchorSource: AnchorSource;
|
|
102
|
+
};
|
|
103
|
+
}, opts?: {
|
|
104
|
+
requireAnchor?: boolean;
|
|
105
|
+
requireExternalAnchor?: boolean;
|
|
106
|
+
}): number;
|
|
29
107
|
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/audit/verify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/audit/verify.ts"],"names":[],"mappings":"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"}
|
package/dist/audit/verify.js
CHANGED
|
@@ -18,11 +18,13 @@
|
|
|
18
18
|
* test pins them together.
|
|
19
19
|
*/
|
|
20
20
|
import { createHash } from "node:crypto";
|
|
21
|
-
import { existsSync,
|
|
21
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
22
22
|
import { basename, join } from "node:path";
|
|
23
23
|
import { GENESIS_HASH } from "../shared/constants.js";
|
|
24
|
+
import { evaluateAnchoredVault, gatherOrderedEventHashes, parseAnchorsContent, readAnchorMirror, worseAnchorState, } from "./anchor-verify.js";
|
|
24
25
|
import { canonicalize } from "./canonical.js";
|
|
25
26
|
import { buildMerkleTree } from "./merkle.js";
|
|
27
|
+
import { parseRekorReceipt, verifyRekorReceipt } from "./rekor-verify.js";
|
|
26
28
|
/**
|
|
27
29
|
* Read the `.meta` head anchor sidecar. Fail-closed:
|
|
28
30
|
* - absent → `null` (unanchored / legacy vault; allowed)
|
|
@@ -281,4 +283,196 @@ export function verifyVault(vaultPath) {
|
|
|
281
283
|
lastEvent,
|
|
282
284
|
};
|
|
283
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Split one raw receipt artifact into receipt documents. A file may hold a
|
|
288
|
+
* single (possibly pretty-printed) receipt or JSONL of many, so the whole-file
|
|
289
|
+
* parse is tried first and line-splitting is the fallback — the reverse would
|
|
290
|
+
* shred a pretty-printed receipt into unparseable fragments.
|
|
291
|
+
*
|
|
292
|
+
* IDENTICAL in packages/core/src/audit/verify.ts.
|
|
293
|
+
*/
|
|
294
|
+
function splitReceiptDocuments(raw) {
|
|
295
|
+
const trimmed = raw.trim();
|
|
296
|
+
if (trimmed.length === 0)
|
|
297
|
+
return [];
|
|
298
|
+
try {
|
|
299
|
+
JSON.parse(trimmed);
|
|
300
|
+
return [trimmed];
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
return trimmed
|
|
304
|
+
.split("\n")
|
|
305
|
+
.map((line) => line.trim())
|
|
306
|
+
.filter((line) => line.length > 0);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Verify every supplied transparency-log receipt against the anchor record it
|
|
311
|
+
* names. Receipts are OPTIONAL evidence, but supplied evidence is not
|
|
312
|
+
* advisory: a receipt is only ever presented to strengthen a claim, so one
|
|
313
|
+
* that does not verify fails the vault closed rather than being dropped.
|
|
314
|
+
*
|
|
315
|
+
* Records are matched by anchorSeq with the external copy governing (the same
|
|
316
|
+
* precedence the evaluator's merge uses). A receipt may bind to ANY record at
|
|
317
|
+
* its anchorSeq: committed-equal twins differ in exactly the timestamp and
|
|
318
|
+
* signature a receipt commits to, so the emitter's published twin must not
|
|
319
|
+
* depend on which copy the auditor happened to fetch first.
|
|
320
|
+
*
|
|
321
|
+
* IDENTICAL in packages/core/src/audit/verify.ts.
|
|
322
|
+
*/
|
|
323
|
+
function verifySuppliedRekorReceipts(receiptsRaw, externalRecords, mirrorRecords, logPubkeysPem) {
|
|
324
|
+
if (receiptsRaw.length === 0)
|
|
325
|
+
return null;
|
|
326
|
+
const bySeq = new Map();
|
|
327
|
+
for (const record of [...externalRecords, ...mirrorRecords]) {
|
|
328
|
+
const twins = bySeq.get(record.anchorSeq);
|
|
329
|
+
if (twins === undefined) {
|
|
330
|
+
bySeq.set(record.anchorSeq, [record]);
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
twins.push(record);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
// The NEWEST anchor by the evaluator's own rule (largest treeSize, earliest
|
|
337
|
+
// anchorSeq on a tie) — only its receipts may speak for freshness.
|
|
338
|
+
const merged = [...bySeq.keys()]
|
|
339
|
+
.sort((a, b) => a - b)
|
|
340
|
+
.map((seq) => bySeq.get(seq)[0]);
|
|
341
|
+
const latestSeq = [...merged].sort((a, b) => b.treeSize - a.treeSize)[0]?.anchorSeq ?? null;
|
|
342
|
+
const errors = [];
|
|
343
|
+
let receiptsVerified = 0;
|
|
344
|
+
let receiptsFailed = 0;
|
|
345
|
+
let latestAttestedTimeMs = null;
|
|
346
|
+
for (const raw of receiptsRaw) {
|
|
347
|
+
const documents = splitReceiptDocuments(raw);
|
|
348
|
+
if (documents.length === 0) {
|
|
349
|
+
// A receipts artifact that holds no receipts is a supply failure, not an
|
|
350
|
+
// absence of evidence: the caller passed --rekor-receipts, so an empty
|
|
351
|
+
// file means the receipt they meant to present never made it here.
|
|
352
|
+
receiptsFailed++;
|
|
353
|
+
errors.push("rekor-receipt-invalid: receipts artifact contained no receipts");
|
|
354
|
+
continue;
|
|
355
|
+
}
|
|
356
|
+
for (const document of documents) {
|
|
357
|
+
const parsed = parseRekorReceipt(document);
|
|
358
|
+
if (parsed.receipt === null) {
|
|
359
|
+
receiptsFailed++;
|
|
360
|
+
errors.push(parsed.error);
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
363
|
+
const receipt = parsed.receipt;
|
|
364
|
+
const candidates = bySeq.get(receipt.anchorSeq) ?? [];
|
|
365
|
+
if (candidates.length === 0) {
|
|
366
|
+
receiptsFailed++;
|
|
367
|
+
errors.push(`rekor-receipt-invalid: receipt for unknown anchorSeq ${receipt.anchorSeq}`);
|
|
368
|
+
continue;
|
|
369
|
+
}
|
|
370
|
+
let verified = null;
|
|
371
|
+
let firstErrors = [];
|
|
372
|
+
for (const candidate of candidates) {
|
|
373
|
+
const result = verifyRekorReceipt(receipt, candidate, logPubkeysPem);
|
|
374
|
+
if (result.ok) {
|
|
375
|
+
verified = result;
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
if (firstErrors.length === 0)
|
|
379
|
+
firstErrors = result.errors;
|
|
380
|
+
}
|
|
381
|
+
if (verified === null) {
|
|
382
|
+
receiptsFailed++;
|
|
383
|
+
errors.push(...firstErrors);
|
|
384
|
+
continue;
|
|
385
|
+
}
|
|
386
|
+
receiptsVerified++;
|
|
387
|
+
if (receipt.anchorSeq === latestSeq && verified.attestedTimeMs !== null) {
|
|
388
|
+
latestAttestedTimeMs =
|
|
389
|
+
latestAttestedTimeMs === null
|
|
390
|
+
? verified.attestedTimeMs
|
|
391
|
+
: Math.max(latestAttestedTimeMs, verified.attestedTimeMs);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return { receiptsVerified, receiptsFailed, latestAttestedTimeMs, errors };
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* verifyVault + the spec §7.2 anchor state machine. Existing chain semantics
|
|
399
|
+
* are UNCHANGED (verifyVault runs as-is); anchor evaluation is layered on
|
|
400
|
+
* top additively. IDENTICAL function body in packages/core/src/audit/verify.ts
|
|
401
|
+
* — the anchor differential test pins the two.
|
|
402
|
+
*/
|
|
403
|
+
export function verifyVaultWithAnchors(vaultPath, params = {}) {
|
|
404
|
+
const base = verifyVault(vaultPath);
|
|
405
|
+
const externalRecords = [];
|
|
406
|
+
const externalErrors = [];
|
|
407
|
+
for (const raw of params.externalAnchorsRaw ?? []) {
|
|
408
|
+
const parsed = parseAnchorsContent(raw);
|
|
409
|
+
externalRecords.push(...parsed.records);
|
|
410
|
+
externalErrors.push(...parsed.errors);
|
|
411
|
+
}
|
|
412
|
+
const mirror = readAnchorMirror(vaultPath);
|
|
413
|
+
const rekor = verifySuppliedRekorReceipts(params.rekorReceiptsRaw ?? [], externalRecords, mirror.records, params.rekorLogPubkeysPem ?? []);
|
|
414
|
+
const evaluation = evaluateAnchoredVault({
|
|
415
|
+
orderedHashes: gatherOrderedEventHashes(vaultPath),
|
|
416
|
+
externalAnchors: externalRecords,
|
|
417
|
+
externalErrors,
|
|
418
|
+
mirrorAnchors: mirror.records,
|
|
419
|
+
mirrorErrors: mirror.errors,
|
|
420
|
+
trust: params.trust ?? null,
|
|
421
|
+
witness: params.witness ?? { requested: false },
|
|
422
|
+
opts: {
|
|
423
|
+
...(params.maxAnchorAgeMs !== undefined ? { maxAnchorAgeMs: params.maxAnchorAgeMs } : {}),
|
|
424
|
+
...(params.maxUnanchoredEvents !== undefined
|
|
425
|
+
? { maxUnanchoredEvents: params.maxUnanchoredEvents }
|
|
426
|
+
: {}),
|
|
427
|
+
...(params.expectedVaultId !== undefined ? { expectedVaultId: params.expectedVaultId } : {}),
|
|
428
|
+
...(params.nowMs !== undefined ? { nowMs: params.nowMs } : {}),
|
|
429
|
+
...(rekor !== null && rekor.latestAttestedTimeMs !== null
|
|
430
|
+
? { attestedTimeMs: rekor.latestAttestedTimeMs }
|
|
431
|
+
: {}),
|
|
432
|
+
},
|
|
433
|
+
});
|
|
434
|
+
// A broken receipt is ANCHOR_INVALID (fail-closed), escalated by the state
|
|
435
|
+
// machine's own severity ordering so MISMATCH still outranks it.
|
|
436
|
+
const rekorFailed = rekor !== null && rekor.receiptsFailed > 0;
|
|
437
|
+
return {
|
|
438
|
+
...base,
|
|
439
|
+
valid: base.valid && evaluation.anchorsValid && !rekorFailed,
|
|
440
|
+
errors: [...base.errors, ...evaluation.errors, ...(rekor?.errors ?? [])],
|
|
441
|
+
anchorState: rekorFailed
|
|
442
|
+
? worseAnchorState(evaluation.anchorState, "ANCHOR_INVALID")
|
|
443
|
+
: evaluation.anchorState,
|
|
444
|
+
anchoring: {
|
|
445
|
+
anchorSource: evaluation.anchorSource,
|
|
446
|
+
anchorCount: evaluation.anchorCount,
|
|
447
|
+
latestAnchor: evaluation.latestAnchor,
|
|
448
|
+
unanchoredTail: evaluation.unanchoredTail,
|
|
449
|
+
witness: evaluation.witness,
|
|
450
|
+
reasons: rekorFailed
|
|
451
|
+
? [...new Set([...evaluation.reasons, "rekor-receipt-invalid"])]
|
|
452
|
+
: evaluation.reasons,
|
|
453
|
+
warnings: evaluation.warnings,
|
|
454
|
+
...(rekor !== null ? { rekor } : {}),
|
|
455
|
+
},
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Exit-code policy for anchored verification. Exit codes stay 0/1
|
|
460
|
+
* (constraints §4.3); `--require-anchor` and `--require-external-anchor` are
|
|
461
|
+
* new INPUTS, not changed defaults.
|
|
462
|
+
*/
|
|
463
|
+
export function exitCodeForAnchored(result, opts) {
|
|
464
|
+
if (!result.valid)
|
|
465
|
+
return 1;
|
|
466
|
+
if (opts?.requireAnchor === true &&
|
|
467
|
+
(result.anchorState === "UNANCHORED" ||
|
|
468
|
+
result.anchorState === "ANCHOR_UNVERIFIABLE" ||
|
|
469
|
+
result.anchorState === "ANCHOR_STALE")) {
|
|
470
|
+
return 1;
|
|
471
|
+
}
|
|
472
|
+
if (opts?.requireExternalAnchor === true &&
|
|
473
|
+
(result.anchorState !== "ANCHORED_VERIFIED" || result.anchoring.anchorSource !== "external")) {
|
|
474
|
+
return 1;
|
|
475
|
+
}
|
|
476
|
+
return 0;
|
|
477
|
+
}
|
|
284
478
|
//# sourceMappingURL=verify.js.map
|
package/dist/audit/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/audit/verify.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA0B9C;;;;;GAKG;AACH,SAAS,UAAU,CAAC,QAAgB;IACnC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAA4B,CAAC;QACtF,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC;IAChD,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,SAAS,CAAC;QACpB,CAAC;IACF,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACpB,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,8CAA8C,MAAM,CAAC,QAAQ,WAAW,CAAC,CAAC;QACvF,CAAC;QACD,OAAO;YACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,MAAM;YACN,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,oBAAoB,GAAG,YAAY,CAAC;IACxC,IAAI,UAAU,GAAG,YAAY,CAAC;IAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QAEhC,IAAI,KAAiB,CAAC;QACtB,IAAI,CAAC;YACJ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC;QACxC,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CACV,IAAI,CAAC,SAAS,CAAC;gBACd,IAAI,EAAE,CAAC,GAAG,CAAC;gBACX,KAAK,EAAE,gBAAgB;gBACvB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;aAC3B,CAAC,CACF,CAAC;YACF,4DAA4D;YAC5D,iEAAiE;YACjE,OAAO,EAAE,CAAC;YACV,SAAS;QACV,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,oBAAoB,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CACV,SAAS,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,4BAA4B;gBACtD,YAAY,oBAAoB,SAAS,KAAK,CAAC,YAAY,EAAE,CAC9D,CAAC;QACH,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,GAAG,KAAK,CAAC;QACxD,MAAM,SAAS,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE1E,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CACV,SAAS,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,oBAAoB;gBAC9C,YAAY,YAAY,SAAS,UAAU,EAAE,CAC9C,CAAC;QACH,CAAC;QAED,oBAAoB,GAAG,UAAU,CAAC;QAClC,UAAU,GAAG,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACZ,IAAI,UAAU,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CACV,uCAAuC,MAAM,CAAC,QAAQ,SAAS,UAAU,oBAAoB,CAC7F,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CACV,6BAA6B,MAAM,CAAC,QAAQ,oBAAoB,KAAK,CAAC,MAAM,wBAAwB,CACpG,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,cAAc,EAAE,KAAK,CAAC,MAAM;QAC5B,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACH,CAAC;AAaD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,2EAA2E;IAC3E,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACJ,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;oBAC1D,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC1C,CAAC;YACF,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,qCAAqC;QACtC,CAAC;IACF,CAAC;IAED,wCAAwC;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC;IAChD,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,SAAS,CAAC;QACpB,CAAC;IACF,CAAC;IAED,uBAAuB;IACvB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CACV,wCAAwC,MAAM,CAAC,QAAQ,+BAA+B,CACtF,CAAC;QACH,CAAC;QACD,OAAO;YACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM;YACN,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;SACf,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACxC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACJ,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACR,mDAAmD;YACnD,SAAS;QACV,CAAC;QACD,IAAI,OAAO,KAAK,EAAE;YAAE,SAAS;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;YAC/B,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;oBAClD,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACxD,YAAY,EAAE,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;oBAChF,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBAC3E,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBAC9E,MAAM;oBACN,UAAU,EAAE,WAAW;oBACvB,IAAI,EAAE,CAAC,GAAG,CAAC;iBACX,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;IACF,CAAC;IAED,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,UAAU;QACzB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,QAAmB,GAAI,CAAC,CAAC,QAAmB,CAAC;QAC7E,CAAC,CAAC,MAAM,CAAC;IAEV,qCAAqC;IACrC,IAAI,YAAY,GAAG,YAAY,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAgB,CAAC;QAEpC,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CACV,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,sCAAsC,YAAY,SAAS,CAAC,CAAC,YAAY,EAAE,CAClG,CAAC;QACH,CAAC;QAED,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,QAAQ,uCAAuC,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,UAAU,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAiB,CAAC,QAAkB,CAAC;YACnE,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CACV,uBAAuB,CAAC,CAAC,QAAQ,YAAY,OAAO,2BAA2B,CAC/E,CAAC;YACH,CAAC;QACF,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,8BAA8B,QAAQ,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACP,WAAW,EAAE,CAAC;QACf,CAAC;QAED,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,UAAU,KAAK,IAAI;gBAAE,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC;YAClD,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QACzB,CAAC;QAED,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,oEAAoE;IACpE,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CACV,uCAAuC,MAAM,CAAC,QAAQ,SAAS,IAAI,CAAC,IAAI,oBAAoB,CAC5F,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CACV,6BAA6B,MAAM,CAAC,QAAQ,oBAAoB,OAAO,CAAC,MAAM,wBAAwB,CACtG,CAAC;QACH,CAAC;IACF,CAAC;IAED,gEAAgE;IAChE,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,MAAM;IACN,OAAO;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,WAAW;QACX,UAAU;QACV,UAAU;QACV,SAAS;KACT,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/audit/verify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/cli/anchor.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAyT5C,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwW/E"}
|