aqta-verify-receipt 1.0.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -8
- package/dist/cli.js +69 -17
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +48 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -18,8 +18,8 @@ Same algorithm on npm and PyPI. Reference implementation, not a platform SDK.
|
|
|
18
18
|
## 30-second check
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
npx aqta-verify-receipt
|
|
22
|
-
--key
|
|
21
|
+
npx aqta-verify-receipt receipt.json \
|
|
22
|
+
--key 9Y3Eiq6V8QjRDUM5nPqSwKIOPQaoEU4SbagfYFdvWa4
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Default output is one compact line (words carry meaning; colour is optional):
|
|
@@ -37,7 +37,7 @@ Invalid:
|
|
|
37
37
|
Optional flourish (never the proof):
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
npx aqta-verify-receipt
|
|
40
|
+
npx aqta-verify-receipt receipt.json --key <pinned> --pretty
|
|
41
41
|
# …
|
|
42
42
|
◈ seal intact · verified offline
|
|
43
43
|
```
|
|
@@ -45,8 +45,8 @@ npx aqta-verify-receipt@1.0.8 receipt.json --key <pinned> --pretty
|
|
|
45
45
|
Automation:
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
npx aqta-verify-receipt
|
|
49
|
-
npx aqta-verify-receipt
|
|
48
|
+
npx aqta-verify-receipt receipt.json --key <pinned> --json
|
|
49
|
+
npx aqta-verify-receipt receipt.json --key <pinned> -q; echo $?
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
| Exit | Meaning |
|
|
@@ -57,13 +57,17 @@ npx aqta-verify-receipt@1.0.8 receipt.json --key <pinned> -q; echo $?
|
|
|
57
57
|
|
|
58
58
|
Production public key (also at
|
|
59
59
|
[`/v1/attestation/public-key`](https://api.aqta.ai/v1/attestation/public-key),
|
|
60
|
-
key id `aqta-att-
|
|
60
|
+
key id `aqta-att-01269bb4b6a7d950`):
|
|
61
61
|
|
|
62
62
|
```
|
|
63
|
-
|
|
63
|
+
9Y3Eiq6V8QjRDUM5nPqSwKIOPQaoEU4SbagfYFdvWa4
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
Pin that string
|
|
66
|
+
Pin that string; do not re-fetch it inside a verify loop. Keys rotate and
|
|
67
|
+
receipts do not: a receipt verifies against the key current when it was
|
|
68
|
+
signed, and the permanent key record (with retired keys and their validity
|
|
69
|
+
windows) is at
|
|
70
|
+
[`app.aqta.ai/security/issuer-keys.txt`](https://app.aqta.ai/security/issuer-keys.txt).
|
|
67
71
|
|
|
68
72
|
## Install
|
|
69
73
|
|
package/dist/cli.js
CHANGED
|
@@ -47,6 +47,7 @@ Options:
|
|
|
47
47
|
--key <key> pin the issuer public key (required for counsel-grade)
|
|
48
48
|
--integrity-only check signature vs embedded key only (anyone can self-sign)
|
|
49
49
|
--envelope <name> opt in to a non-ATTESTATION-v1 envelope (e.g. anchor-v1)
|
|
50
|
+
--profile <name> verify under a named profile (action-1 for ACTION-v1 records)
|
|
50
51
|
--no-strict allow unknown top-level fields
|
|
51
52
|
--json machine JSON on stdout (one object)
|
|
52
53
|
--pretty optional human flourish after the compact line
|
|
@@ -71,14 +72,31 @@ function compactLine(valid, outcome, id, trustOrReason) {
|
|
|
71
72
|
}
|
|
72
73
|
return `${paint('31', `${no} invalid`)} ${trustOrReason} ${mid(id)}`;
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
+
/**
|
|
76
|
+
* The optional human lines under the compact verdict.
|
|
77
|
+
*
|
|
78
|
+
* Says what was established and what was not, because a receipt that verifies
|
|
79
|
+
* still does not prove which model ran, and someone reading this at the end of
|
|
80
|
+
* an audit should not have to already know that. Never changes the exit code.
|
|
81
|
+
*
|
|
82
|
+
* Must stay word-for-word identical to _pretty_extra in the Python CLI.
|
|
83
|
+
*/
|
|
84
|
+
function prettyExtra(valid, keySource) {
|
|
75
85
|
const utf8 = useUtf8();
|
|
76
86
|
const mark = utf8 ? '◈' : '*';
|
|
77
87
|
const dot = utf8 ? '·' : '-';
|
|
78
|
-
if (valid) {
|
|
79
|
-
return `${mark} seal
|
|
88
|
+
if (!valid) {
|
|
89
|
+
return (`${mark} seal broken ${dot} do not rely on this receipt\n` +
|
|
90
|
+
' these bytes are not what the issuer signed');
|
|
91
|
+
}
|
|
92
|
+
if (keySource !== 'pinned') {
|
|
93
|
+
return (`${mark} signature checks out, against a key this receipt supplied itself\n` +
|
|
94
|
+
' anyone can self-sign, so this shows only that the file is internally consistent\n' +
|
|
95
|
+
' pin the issuer key with --key before you rely on it');
|
|
80
96
|
}
|
|
81
|
-
return `${mark} seal
|
|
97
|
+
return (`${mark} seal intact ${dot} checked offline, nothing was sent to Aqta\n` +
|
|
98
|
+
' the issuer signed these exact bytes and no one has altered them since\n' +
|
|
99
|
+
' it does not prove which model actually ran');
|
|
82
100
|
}
|
|
83
101
|
function main() {
|
|
84
102
|
const args = process.argv.slice(2);
|
|
@@ -88,6 +106,7 @@ function main() {
|
|
|
88
106
|
let trustedKey;
|
|
89
107
|
let integrityOnly = false;
|
|
90
108
|
let envelope;
|
|
109
|
+
let profile;
|
|
91
110
|
let strict = true;
|
|
92
111
|
let quiet = false;
|
|
93
112
|
let asJson = false;
|
|
@@ -107,6 +126,11 @@ function main() {
|
|
|
107
126
|
if (!envelope)
|
|
108
127
|
usage();
|
|
109
128
|
}
|
|
129
|
+
else if (a === '--profile') {
|
|
130
|
+
profile = args[++i];
|
|
131
|
+
if (!profile)
|
|
132
|
+
usage();
|
|
133
|
+
}
|
|
110
134
|
else if (a === '--no-strict') {
|
|
111
135
|
strict = false;
|
|
112
136
|
}
|
|
@@ -136,6 +160,16 @@ function main() {
|
|
|
136
160
|
process.stderr.write('aqta-verify-receipt: use --key or --integrity-only, not both\n');
|
|
137
161
|
process.exit(2);
|
|
138
162
|
}
|
|
163
|
+
// The flag takes the wire tag ("action-1"), the library takes the profile
|
|
164
|
+
// name ("ACTION-v1"); the mapping is fixed here and nowhere else.
|
|
165
|
+
if (profile !== undefined && profile !== 'action-1') {
|
|
166
|
+
process.stderr.write(`aqta-verify-receipt: unknown profile ${profile} (only: action-1)\n`);
|
|
167
|
+
process.exit(2);
|
|
168
|
+
}
|
|
169
|
+
if (profile !== undefined && envelope !== undefined) {
|
|
170
|
+
process.stderr.write('aqta-verify-receipt: use --profile or --envelope, not both\n');
|
|
171
|
+
process.exit(2);
|
|
172
|
+
}
|
|
139
173
|
if (quiet && (asJson || pretty)) {
|
|
140
174
|
process.stderr.write('aqta-verify-receipt: -q cannot be combined with --json or --pretty\n');
|
|
141
175
|
process.exit(2);
|
|
@@ -175,38 +209,56 @@ function main() {
|
|
|
175
209
|
process.stderr.write(`aqta-verify-receipt: duplicate member name: ${duplicate}\n`);
|
|
176
210
|
process.exit(2);
|
|
177
211
|
}
|
|
212
|
+
const actionProfile = profile === 'action-1';
|
|
178
213
|
const result = (0, index_1.verifyReceipt)(receipt, {
|
|
179
214
|
trustedPublicKey: trustedKey,
|
|
180
215
|
allowUntrustedEmbeddedKey: integrityOnly,
|
|
181
216
|
envelope,
|
|
182
217
|
strictFields: strict,
|
|
218
|
+
profile: actionProfile ? 'ACTION-v1' : undefined,
|
|
183
219
|
});
|
|
184
|
-
const
|
|
220
|
+
const idField = actionProfile
|
|
221
|
+
? receipt.action_id
|
|
222
|
+
: receipt.attestation_id;
|
|
223
|
+
const id = typeof idField === 'string' ? idField : '?';
|
|
185
224
|
const outcome = typeof receipt.outcome === 'string' ? receipt.outcome : '?';
|
|
186
225
|
const trust = result.keySource === 'pinned'
|
|
187
226
|
? 'pinned issuer key'
|
|
188
227
|
: 'untrusted embedded key (integrity only)';
|
|
189
228
|
if (!quiet) {
|
|
190
229
|
if (asJson) {
|
|
191
|
-
process.stdout.write(JSON.stringify(
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
230
|
+
process.stdout.write(JSON.stringify(actionProfile
|
|
231
|
+
? {
|
|
232
|
+
valid: result.valid,
|
|
233
|
+
outcome,
|
|
234
|
+
action_id: id,
|
|
235
|
+
key_source: result.keySource ?? null,
|
|
236
|
+
profile: 'ACTION-v1',
|
|
237
|
+
reason: result.valid ? null : result.reason ?? 'verification failed',
|
|
238
|
+
}
|
|
239
|
+
: {
|
|
240
|
+
valid: result.valid,
|
|
241
|
+
outcome,
|
|
242
|
+
attestation_id: id,
|
|
243
|
+
key_source: result.keySource ?? null,
|
|
244
|
+
envelope: result.envelope ?? null,
|
|
245
|
+
reason: result.valid ? null : result.reason ?? 'verification failed',
|
|
246
|
+
}) + '\n');
|
|
199
247
|
}
|
|
200
248
|
else {
|
|
201
249
|
let detail = result.valid ? trust : result.reason ?? 'verification failed';
|
|
202
|
-
// Name the envelope when it is not the default, so a valid
|
|
203
|
-
// leaves the reader assuming ATTESTATION-v1 rules were
|
|
204
|
-
|
|
250
|
+
// Name the profile or envelope when it is not the default, so a valid
|
|
251
|
+
// line never leaves the reader assuming ATTESTATION-v1 rules were
|
|
252
|
+
// applied.
|
|
253
|
+
if (result.valid && actionProfile) {
|
|
254
|
+
detail = `${detail}, profile ACTION-v1`;
|
|
255
|
+
}
|
|
256
|
+
else if (result.valid && result.envelope && result.envelope !== 'ATTESTATION-v1') {
|
|
205
257
|
detail = `${detail}, envelope ${result.envelope}`;
|
|
206
258
|
}
|
|
207
259
|
process.stdout.write(compactLine(result.valid, outcome, id, detail) + '\n');
|
|
208
260
|
if (pretty) {
|
|
209
|
-
process.stdout.write(prettyExtra(result.valid) + '\n');
|
|
261
|
+
process.stdout.write(prettyExtra(result.valid, result.keySource) + '\n');
|
|
210
262
|
}
|
|
211
263
|
}
|
|
212
264
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA;;;;;;;;;;;;;;GAcG;AACH,2BAAkC;AAClC,mCAA4E;AAE5E,MAAM,YAAY,GAAG,+CAA+C,CAAC;AAErE,SAAS,OAAO;IACd,OAAO,SAAS,CAAC,IAAI,CACnB,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CACrE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CACL,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;QAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAC5B,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,CAAS;IACpC,IAAI,CAAC,SAAS,EAAE;QAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;AACpC,CAAC;AAED,SAAS,GAAG,CAAC,CAAS,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IACpC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,KAAK;IACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,28 @@ export interface AttestationReceipt {
|
|
|
22
22
|
public_key: string;
|
|
23
23
|
signature: string;
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Required top-level fields of an ACTION-v1 record (spec/ACTION-v1.md §4).
|
|
27
|
+
*
|
|
28
|
+
* Every field is a string or an array of strings by design: the profile has
|
|
29
|
+
* no numeric fields, so the number-canonicalisation divergence class cannot
|
|
30
|
+
* occur here.
|
|
31
|
+
*/
|
|
32
|
+
export interface ActionRecord {
|
|
33
|
+
v: string;
|
|
34
|
+
action_id: string;
|
|
35
|
+
org_id: string;
|
|
36
|
+
session_id: string;
|
|
37
|
+
intent_hash: string;
|
|
38
|
+
agent: string;
|
|
39
|
+
tool: string;
|
|
40
|
+
args_hash: string;
|
|
41
|
+
outcome: 'ALLOWED' | 'BLOCKED';
|
|
42
|
+
policy_applied: string[];
|
|
43
|
+
timestamp: string;
|
|
44
|
+
public_key: string;
|
|
45
|
+
signature: string;
|
|
46
|
+
}
|
|
25
47
|
export interface VerifyOptions {
|
|
26
48
|
/**
|
|
27
49
|
* Trusted issuer public key (base64url, no padding). Required for a
|
|
@@ -51,6 +73,14 @@ export interface VerifyOptions {
|
|
|
51
73
|
* rejected rather than silently verified under weaker rules.
|
|
52
74
|
*/
|
|
53
75
|
envelope?: EnvelopeFormat;
|
|
76
|
+
/**
|
|
77
|
+
* Verification profile to apply. ACTION-v1 §7 forbids auto-detection by
|
|
78
|
+
* field shape, so the caller must name the profile explicitly; without it,
|
|
79
|
+
* an ACTION-v1 record is rejected by the ATTESTATION-v1 rules. Mutually
|
|
80
|
+
* exclusive with `envelope`: a profile applies the full structural and
|
|
81
|
+
* semantic rule set, never the signature-only foreign-envelope path.
|
|
82
|
+
*/
|
|
83
|
+
profile?: 'ACTION-v1';
|
|
54
84
|
}
|
|
55
85
|
export type KeySource = 'pinned' | 'untrusted';
|
|
56
86
|
export interface VerifyResult {
|
|
@@ -75,7 +105,7 @@ export interface VerifyResult {
|
|
|
75
105
|
*
|
|
76
106
|
* @example
|
|
77
107
|
* const result = verifyReceipt(receipt, {
|
|
78
|
-
* trustedPublicKey: '
|
|
108
|
+
* trustedPublicKey: '9Y3Eiq6V8QjRDUM5nPqSwKIOPQaoEU4SbagfYFdvWa4',
|
|
79
109
|
* });
|
|
80
110
|
* if (!result.valid) throw new Error(`Receipt invalid: ${result.reason}`);
|
|
81
111
|
*/
|
|
@@ -88,10 +118,24 @@ export interface VerifyResult {
|
|
|
88
118
|
* encoding, which `base64urlDecode` already normalises. The canonicalisation
|
|
89
119
|
* rule is the same in both: sorted keys, no whitespace, literal UTF-8.
|
|
90
120
|
*/
|
|
91
|
-
export type EnvelopeFormat = 'ATTESTATION-v1' | 'anchor-v1';
|
|
121
|
+
export type EnvelopeFormat = 'ATTESTATION-v1' | 'anchor-v1' | 'ACTION-v1';
|
|
122
|
+
/**
|
|
123
|
+
* Envelopes the shared signature path can carry. ACTION-v1 is deliberately
|
|
124
|
+
* absent: it is a verification profile with its own structural and semantic
|
|
125
|
+
* rules, never a signature-only envelope, and `detectEnvelope` never
|
|
126
|
+
* returns it. It appears in `EnvelopeFormat` only so `VerifyResult.envelope`
|
|
127
|
+
* can name it on success.
|
|
128
|
+
*/
|
|
129
|
+
type SignedEnvelope = Exclude<EnvelopeFormat, 'ACTION-v1'>;
|
|
92
130
|
/** Identify an envelope by the field names it carries, or null if unrecognised. */
|
|
93
|
-
export declare function detectEnvelope(receipt: unknown):
|
|
131
|
+
export declare function detectEnvelope(receipt: unknown): SignedEnvelope | null;
|
|
94
132
|
export declare function verifyReceipt(receipt: unknown, options?: VerifyOptions): VerifyResult;
|
|
133
|
+
/**
|
|
134
|
+
* Verify a Seal ACTION-v1 action record. Convenience wrapper for
|
|
135
|
+
* `verifyReceipt(record, { ...options, profile: 'ACTION-v1' })`; the profile
|
|
136
|
+
* must be named explicitly because ACTION-v1 §7 forbids auto-detection.
|
|
137
|
+
*/
|
|
138
|
+
export declare function verifyActionRecord(record: unknown, options?: Omit<VerifyOptions, 'profile' | 'envelope'>): VerifyResult;
|
|
95
139
|
/**
|
|
96
140
|
* Fetch the Seal public key from the published URL and return it as a
|
|
97
141
|
* base64url string ready to pass to `verifyReceipt` as `trustedPublicKey`.
|
|
@@ -113,4 +157,5 @@ export declare function verifyReceipt(receipt: unknown, options?: VerifyOptions)
|
|
|
113
157
|
* Re-fetching the key on every verification is a misuse.
|
|
114
158
|
*/
|
|
115
159
|
export declare function fetchPublishedPublicKey(url?: string): Promise<string>;
|
|
160
|
+
export {};
|
|
116
161
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AA+HD;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1E;;;;;;GAMG;AACH,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAO3D,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAUtE;AAmFD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,aAAkB,GAC1B,YAAY,CA+Kd;AAyID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,UAAU,CAAM,GACxD,YAAY,CAEd;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,SAA4C,GAC9C,OAAO,CAAC,MAAM,CAAC,CAMjB"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.detectEnvelope = detectEnvelope;
|
|
16
16
|
exports.verifyReceipt = verifyReceipt;
|
|
17
|
+
exports.verifyActionRecord = verifyActionRecord;
|
|
17
18
|
exports.fetchPublishedPublicKey = fetchPublishedPublicKey;
|
|
18
19
|
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
19
20
|
const tweetnacl_util_1 = __importDefault(require("tweetnacl-util"));
|
|
@@ -37,6 +38,32 @@ const REQUIRED_FIELDS = new Set([
|
|
|
37
38
|
'public_key',
|
|
38
39
|
'signature',
|
|
39
40
|
]);
|
|
41
|
+
/**
|
|
42
|
+
* ACTION-v1 outcomes (spec §5). SUPPRESSED and PASSED are ATTESTATION-v1
|
|
43
|
+
* outcomes only: an action record attests an authorisation decision, which
|
|
44
|
+
* is either granted or refused.
|
|
45
|
+
*/
|
|
46
|
+
const ACTION_OUTCOMES = new Set(['ALLOWED', 'BLOCKED']);
|
|
47
|
+
/**
|
|
48
|
+
* ACTION-v1 required fields (spec §4). Iteration order is the presence-check
|
|
49
|
+
* order shared with the Python verifier; both implementations must emit the
|
|
50
|
+
* same missing-field reason for the same record.
|
|
51
|
+
*/
|
|
52
|
+
const ACTION_REQUIRED_FIELDS = new Set([
|
|
53
|
+
'v',
|
|
54
|
+
'action_id',
|
|
55
|
+
'org_id',
|
|
56
|
+
'session_id',
|
|
57
|
+
'intent_hash',
|
|
58
|
+
'agent',
|
|
59
|
+
'tool',
|
|
60
|
+
'args_hash',
|
|
61
|
+
'outcome',
|
|
62
|
+
'policy_applied',
|
|
63
|
+
'timestamp',
|
|
64
|
+
'public_key',
|
|
65
|
+
'signature',
|
|
66
|
+
]);
|
|
40
67
|
/** Decode a base64url string (no padding) into a Uint8Array. */
|
|
41
68
|
function base64urlDecode(s) {
|
|
42
69
|
const padded = s + '='.repeat((4 - (s.length % 4)) % 4);
|
|
@@ -196,10 +223,32 @@ function verifySignedEnvelope(r, envelope, options) {
|
|
|
196
223
|
}
|
|
197
224
|
}
|
|
198
225
|
function verifyReceipt(receipt, options = {}) {
|
|
226
|
+
// Profile selection is explicit and exclusive. A profile applies a full
|
|
227
|
+
// structural and semantic rule set; a foreign-envelope opt-in skips all of
|
|
228
|
+
// them and checks the signature alone. Naming both is a contradiction, and
|
|
229
|
+
// naming ACTION-v1 as an envelope would route an action record through the
|
|
230
|
+
// signature-only path, which is exactly the bypass §7 forbids.
|
|
231
|
+
if (options.profile !== undefined && options.envelope !== undefined) {
|
|
232
|
+
return { valid: false, reason: 'profile and envelope are mutually exclusive' };
|
|
233
|
+
}
|
|
234
|
+
if (options.envelope === 'ACTION-v1') {
|
|
235
|
+
return {
|
|
236
|
+
valid: false,
|
|
237
|
+
reason: 'ACTION-v1 is a profile, not a foreign envelope; use the profile option',
|
|
238
|
+
};
|
|
239
|
+
}
|
|
199
240
|
if (typeof receipt !== 'object' || receipt === null) {
|
|
200
241
|
return { valid: false, reason: 'receipt is not an object' };
|
|
201
242
|
}
|
|
202
243
|
const r = receipt;
|
|
244
|
+
// The profile branch runs before envelope detection: ACTION-v1 §7 forbids
|
|
245
|
+
// selecting a profile by inspecting the input's fields.
|
|
246
|
+
if (options.profile !== undefined) {
|
|
247
|
+
if (options.profile !== 'ACTION-v1') {
|
|
248
|
+
return { valid: false, reason: `unknown profile: ${String(options.profile)}` };
|
|
249
|
+
}
|
|
250
|
+
return verifyActionV1(r, options);
|
|
251
|
+
}
|
|
203
252
|
const envelope = detectEnvelope(r);
|
|
204
253
|
if (envelope === null) {
|
|
205
254
|
return {
|
|
@@ -336,6 +385,139 @@ function verifyReceipt(receipt, options = {}) {
|
|
|
336
385
|
return { valid: false, reason: `signature decode error: ${String(e)}` };
|
|
337
386
|
}
|
|
338
387
|
}
|
|
388
|
+
/**
|
|
389
|
+
* ACTION-v1 profile verification (spec/ACTION-v1.md §4-§7).
|
|
390
|
+
*
|
|
391
|
+
* Same key family, same canonicalisation, same signature construction as
|
|
392
|
+
* ATTESTATION-v1; different subject and different structural rules. The
|
|
393
|
+
* check order below is a shared cross-implementation contract with the
|
|
394
|
+
* Python verifier: first failure wins, and both implementations must emit
|
|
395
|
+
* the same reason for the same record.
|
|
396
|
+
*/
|
|
397
|
+
function verifyActionV1(r, options) {
|
|
398
|
+
// Structural checks
|
|
399
|
+
for (const field of ACTION_REQUIRED_FIELDS) {
|
|
400
|
+
if (!(field in r)) {
|
|
401
|
+
return { valid: false, reason: `missing required field: ${field}` };
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
if (options.strictFields !== false) {
|
|
405
|
+
for (const k of Object.keys(r)) {
|
|
406
|
+
if (!ACTION_REQUIRED_FIELDS.has(k)) {
|
|
407
|
+
return { valid: false, reason: `unknown top-level field: ${k}` };
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
// Version tag. ATTESTATION-v1 uses the integer 1; this profile uses the
|
|
412
|
+
// string "action-1", so the two record types are structurally disjoint.
|
|
413
|
+
if (r.v !== 'action-1') {
|
|
414
|
+
return { valid: false, reason: "v must be the string 'action-1'" };
|
|
415
|
+
}
|
|
416
|
+
// Type checks: every field except policy_applied is a string.
|
|
417
|
+
for (const field of ACTION_REQUIRED_FIELDS) {
|
|
418
|
+
if (field === 'v')
|
|
419
|
+
continue; // exact value already checked above
|
|
420
|
+
if (field === 'policy_applied') {
|
|
421
|
+
if (!Array.isArray(r.policy_applied)) {
|
|
422
|
+
return { valid: false, reason: 'policy_applied must be an array' };
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
else if (typeof r[field] !== 'string') {
|
|
426
|
+
return { valid: false, reason: `${field} must be a string` };
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
// Semantic sanity (spec §5, §7)
|
|
430
|
+
if (!ACTION_OUTCOMES.has(r.outcome)) {
|
|
431
|
+
return { valid: false, reason: 'outcome must be ALLOWED or BLOCKED' };
|
|
432
|
+
}
|
|
433
|
+
if (r.tool.length === 0) {
|
|
434
|
+
return { valid: false, reason: 'tool must be a non-empty string' };
|
|
435
|
+
}
|
|
436
|
+
if (!/^[0-9a-f]{64}$/.test(r.args_hash)) {
|
|
437
|
+
return { valid: false, reason: 'args_hash must be 64 lowercase hex characters' };
|
|
438
|
+
}
|
|
439
|
+
const intentHash = r.intent_hash;
|
|
440
|
+
if (intentHash !== '' && !/^[0-9a-f]{64}$/.test(intentHash)) {
|
|
441
|
+
return { valid: false, reason: "intent_hash must be '' or 64 lowercase hex characters" };
|
|
442
|
+
}
|
|
443
|
+
if (intentHash !== '' && r.session_id === '') {
|
|
444
|
+
return { valid: false, reason: 'intent_hash requires a non-empty session_id' };
|
|
445
|
+
}
|
|
446
|
+
if (!r.policy_applied.every((p) => typeof p === 'string')) {
|
|
447
|
+
return { valid: false, reason: 'policy_applied must contain only strings' };
|
|
448
|
+
}
|
|
449
|
+
const sorted = [...r.policy_applied].sort();
|
|
450
|
+
if (r.policy_applied.some((p, i) => p !== sorted[i])) {
|
|
451
|
+
return { valid: false, reason: 'policy_applied must be in lexicographic order' };
|
|
452
|
+
}
|
|
453
|
+
if (!RFC3339_OFFSET.test(r.timestamp)) {
|
|
454
|
+
return {
|
|
455
|
+
valid: false,
|
|
456
|
+
reason: 'timestamp must be an RFC 3339 datetime with an explicit offset',
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
const pinned = options.trustedPublicKey;
|
|
460
|
+
const allowUntrusted = options.allowUntrustedEmbeddedKey === true;
|
|
461
|
+
if (pinned === undefined && !allowUntrusted) {
|
|
462
|
+
return {
|
|
463
|
+
valid: false,
|
|
464
|
+
reason: 'trustedPublicKey required (pass allowUntrustedEmbeddedKey for integrity-only)',
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
// Public-key pinning
|
|
468
|
+
if (pinned !== undefined && pinned !== r.public_key) {
|
|
469
|
+
return {
|
|
470
|
+
valid: false,
|
|
471
|
+
reason: 'public_key does not match trusted key',
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
// Canonical payload (all fields except signature). No numeric fields exist
|
|
475
|
+
// in this profile, so the number-canonicalisation path is never exercised,
|
|
476
|
+
// but the shared canonicalise function is used unchanged.
|
|
477
|
+
const payload = { ...r };
|
|
478
|
+
delete payload.signature;
|
|
479
|
+
let canonical;
|
|
480
|
+
try {
|
|
481
|
+
canonical = canonicalise(payload);
|
|
482
|
+
}
|
|
483
|
+
catch (e) {
|
|
484
|
+
return { valid: false, reason: `failed to canonicalise: ${String(e)}` };
|
|
485
|
+
}
|
|
486
|
+
// Ed25519 verification
|
|
487
|
+
try {
|
|
488
|
+
const sig = base64urlDecode(r.signature);
|
|
489
|
+
const pub = base64urlDecode(r.public_key);
|
|
490
|
+
if (sig.length !== 64) {
|
|
491
|
+
return { valid: false, reason: 'signature length != 64 bytes' };
|
|
492
|
+
}
|
|
493
|
+
if (pub.length !== 32) {
|
|
494
|
+
return { valid: false, reason: 'public key length != 32 bytes' };
|
|
495
|
+
}
|
|
496
|
+
if (!canonicalScalar(sig)) {
|
|
497
|
+
return { valid: false, reason: 'non-canonical signature scalar' };
|
|
498
|
+
}
|
|
499
|
+
const ok = tweetnacl_1.default.sign.detached.verify(canonical, sig, pub);
|
|
500
|
+
if (!ok) {
|
|
501
|
+
return { valid: false, reason: 'signature check failed' };
|
|
502
|
+
}
|
|
503
|
+
return {
|
|
504
|
+
valid: true,
|
|
505
|
+
envelope: 'ACTION-v1',
|
|
506
|
+
keySource: pinned !== undefined ? 'pinned' : 'untrusted',
|
|
507
|
+
};
|
|
508
|
+
}
|
|
509
|
+
catch (e) {
|
|
510
|
+
return { valid: false, reason: `signature decode error: ${String(e)}` };
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Verify a Seal ACTION-v1 action record. Convenience wrapper for
|
|
515
|
+
* `verifyReceipt(record, { ...options, profile: 'ACTION-v1' })`; the profile
|
|
516
|
+
* must be named explicitly because ACTION-v1 §7 forbids auto-detection.
|
|
517
|
+
*/
|
|
518
|
+
function verifyActionRecord(record, options = {}) {
|
|
519
|
+
return verifyReceipt(record, { ...options, profile: 'ACTION-v1' });
|
|
520
|
+
}
|
|
339
521
|
/**
|
|
340
522
|
* Fetch the Seal public key from the published URL and return it as a
|
|
341
523
|
* base64url string ready to pass to `verifyReceipt` as `trustedPublicKey`.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;AA2QH,wCAUC;AAmFD,sCAkLC;AA8ID,gDAKC;AAsBD,0DAQC;AAzsBD,0DAA6B;AAC7B,oEAAsC;AA+FtC,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,SAAS;IACT,SAAS;IACT,YAAY;IACZ,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACnD,GAAG;IACH,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,cAAc;IACd,OAAO;IACP,SAAS;IACT,gBAAgB;IAChB,oBAAoB;IACpB,WAAW;IACX,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAE7E;;;;GAIG;AACH,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,GAAG;IACH,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,OAAO;IACP,MAAM;IACN,WAAW;IACX,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC;AAEH,gEAAgE;AAChE,SAAS,eAAe,CAAC,CAAS;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,wBAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,OAAgC;IACpD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,cAAc,GAClB,kIAAkI,CAAC;AAErI,kEAAkE;AAClE,MAAM,cAAc,GAAG,wEAAwE,CAAC;AAEhG,SAAS,cAAc,CAAC,CAAU;IAChC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9D,wEAAwE;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,qDAAqD;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,2EAA2E;QAC3E,0EAA0E;QAC1E,gEAAgE;QAChE,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,0EAA0E;QAC1E,0EAA0E;QAC1E,oBAAoB;QACpB,MAAM,CAAC,GAAG,CAA4B,CAAC;QACvC,OAAO,CACL,GAAG;YACH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;iBACX,IAAI,EAAE;iBACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1D,IAAI,CAAC,GAAG,CAAC;YACZ,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC;AAwCD,MAAM,eAAe,GAAqE;IACxF,gBAAgB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE;IACrE,WAAW,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE;CACzE,CAAC;AAEF,mFAAmF;AACnF,SAAgB,cAAc,CAAC,OAAgB;IAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,CAAC,GAAG,OAAkC,CAAC;IAC7C,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACxE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAChF,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uDAAuD;AACvD,MAAM,SAAS,GACb,6EAA6E,CAAC;AAEhF;;;;;;;;;GASG;AACH,SAAS,eAAe,CAAC,GAAe;IACtC,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,SAAS,CAAC;AACvB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAC3B,CAA0B,EAC1B,QAAwB,EACxB,OAAsB;IAEtB,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,yBAAyB,KAAK,IAAI,CAAC;IAElE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EACJ,+EAA+E;SAClF,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAW,CAAC;IAClD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QACnD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,OAAO,GAA4B,EAAE,GAAG,CAAC,EAAE,CAAC;IAClD,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEjC,IAAI,SAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAW,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;QACvF,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;QACxF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,mBAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO;YACL,KAAK,EAAE,IAAI;YACX,QAAQ;YACR,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;SACzD,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAC3B,OAAgB,EAChB,UAAyB,EAAE;IAE3B,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;IACjF,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,wEAAwE;SACjF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,GAAG,OAAkC,CAAC;IAE7C,0EAA0E;IAC1E,wDAAwD;IACxD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACjF,CAAC;QACD,OAAO,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EACJ,sFAAsF;SACzF,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,qEAAqE;IACrE,EAAE;IACF,4EAA4E;IAC5E,qEAAqE;IACrE,4EAA4E;IAC5E,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,YAAY,QAAQ,8CAA8C,QAAQ,6CAA6C;aAChI,CAAC;QACJ,CAAC;QACD,OAAO,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,oBAAoB;IACpB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,KAAK,EAAE,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,CAAC,EAAE,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;IACjF,CAAC;IACD,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,qEAAqE;IACrE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAI,CAAC,CAAC,cAA2B,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAK,CAAC,CAAC,cAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;IACnF,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,kBAAkB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,CAAC,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,yCAAyC,EAAE,CAAC;IAC7E,CAAC;IACD,2EAA2E;IAC3E,4EAA4E;IAC5E,iEAAiE;IACjE,EAAE;IACF,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,qEAAqE;IACrE,IACE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAC/B,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EACjC,CAAC;QACD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,gEAAgE;SACzE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,yBAAyB,KAAK,IAAI,CAAC;IAElE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EACJ,+EAA+E;SAClF,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,uCAAuC;SAChD,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,OAAO,GAA4B,EAAE,GAAG,CAAC,EAAE,CAAC;IAClD,OAAO,OAAO,CAAC,SAAS,CAAC;IAEzB,IAAI,SAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,SAAmB,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,UAAoB,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,EAAE,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO;YACL,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;SACzD,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CACrB,CAA0B,EAC1B,OAAsB;IAEtB,oBAAoB;IACpB,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE,CAAC;QAC3C,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,KAAK,EAAE,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,CAAC,EAAE,EAAE,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;IACrE,CAAC;IAED,8DAA8D;IAC9D,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE,CAAC;QAC3C,IAAI,KAAK,KAAK,GAAG;YAAE,SAAS,CAAC,oCAAoC;QACjE,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,mBAAmB,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,OAAiB,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;IACxE,CAAC;IACD,IAAK,CAAC,CAAC,IAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAmB,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;IACnF,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,CAAC,WAAqB,CAAC;IAC3C,IAAI,UAAU,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uDAAuD,EAAE,CAAC;IAC3F,CAAC;IACD,IAAI,UAAU,KAAK,EAAE,IAAK,CAAC,CAAC,UAAqB,KAAK,EAAE,EAAE,CAAC;QACzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;IACjF,CAAC;IACD,IAAI,CAAE,CAAC,CAAC,cAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,0CAA0C,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAI,CAAC,CAAC,cAA2B,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAK,CAAC,CAAC,cAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,SAAmB,CAAC,EAAE,CAAC;QAChD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,gEAAgE;SACzE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,yBAAyB,KAAK,IAAI,CAAC;IAElE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EACJ,+EAA+E;SAClF,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QACpD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,uCAAuC;SAChD,CAAC;IACJ,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,0DAA0D;IAC1D,MAAM,OAAO,GAA4B,EAAE,GAAG,CAAC,EAAE,CAAC;IAClD,OAAO,OAAO,CAAC,SAAS,CAAC;IAEzB,IAAI,SAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,SAAmB,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,UAAoB,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,EAAE,GAAG,mBAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO;YACL,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW;SACzD,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,MAAe,EACf,UAAuD,EAAE;IAEzD,OAAO,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACI,KAAK,UAAU,uBAAuB,CAC3C,GAAG,GAAG,yCAAyC;IAE/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aqta-verify-receipt",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Offline CLI and library for Seal ATTESTATION-v1 receipts. Ed25519 check of a signed model call; no account, no Aqta server required.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
],
|
|
23
23
|
"scripts": {
|
|
24
24
|
"build": "tsc",
|
|
25
|
-
"test": "node --test dist/index.test.js dist/envelope.test.js",
|
|
25
|
+
"test": "node --test dist/index.test.js dist/envelope.test.js dist/action.test.js",
|
|
26
26
|
"prepublishOnly": "npm run build"
|
|
27
27
|
},
|
|
28
28
|
"keywords": [
|