@qed-proof/sdk 0.1.3 → 0.1.5
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/CHANGELOG.md +11 -0
- package/dist/index.cjs +12 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/primitives.ts","../src/generated/receipt-validator.js","../src/schema.ts","../src/anchor.ts","../src/abi.ts","../src/verify.ts","../src/client.ts","../src/actions.ts"],"sourcesContent":["export { QedProof } from \"./client.js\";\nexport type {\n QedProofOptions,\n SubmitClaimOptions,\n ClaimStatus,\n WaitOptions,\n Receipt,\n ClaimSummary,\n ListClaimsOptions,\n ClaimPage,\n} from \"./client.js\";\nexport { QedProofError, RateLimitError } from \"./errors.js\";\nexport { verifyReceipt } from \"./verify.js\";\nexport type { VerifyReport, VerifyChecks, VerifyOptions } from \"./verify.js\";\nexport type { Keyset, Proof, AnchorResult } from \"./anchor.js\";\nexport * as actions from \"./actions.js\";\nexport type { ClaimAction } from \"./actions.js\";\nexport {\n b64u,\n b64uDecode,\n jcs,\n sha256,\n keyId,\n claimDigest,\n leafHash,\n rootFromInclusion,\n verifySignature,\n hasFloatValue,\n hasFloatText,\n SPEC_VERSION,\n SIG_DOMAIN,\n} from \"./primitives.js\";\nexport type { PoAWReceiptPoaw01 as GeneratedReceipt } from \"./generated/receipt.js\";\n","export class QedProofError extends Error {\n status: number;\n detail: string;\n\n constructor(status: number, detail: string) {\n super(`QedProof API error ${status}: ${detail}`);\n this.name = \"QedProofError\";\n this.status = status;\n this.detail = detail;\n }\n}\n\nexport class RateLimitError extends QedProofError {\n retryAfter: number | undefined;\n\n constructor(detail: string, retryAfter: number | undefined) {\n super(429, detail);\n this.name = \"RateLimitError\";\n this.retryAfter = retryAfter;\n }\n}\n","/**\n * poaw_core, ported (SPEC.md §3, §5, §8). Deliberately small and dependency-light, mirroring\n * `oss/core-python/src/poaw_core/__init__.py` byte for byte in intent. No Node built-ins: only\n * Web Crypto-free pure JS (`@noble/curves`, `@noble/hashes`, `canonicalize`) so this runs on\n * Node, Deno and in browsers.\n */\nimport { ed25519 } from \"@noble/curves/ed25519\";\nimport { sha256 as nobleSha256 } from \"@noble/hashes/sha2\";\nimport canonicalizeJcs from \"canonicalize\";\n\nexport const SPEC_VERSION = \"poaw/0.1\";\nexport const SIG_DOMAIN = new TextEncoder().encode(\"POAW-RECEIPT-V0\\n\");\n\n// --- encoding (§3) -----------------------------------------------------------------------------\n\nexport function b64u(data: Uint8Array): string {\n let binary = \"\";\n for (let i = 0; i < data.length; i++) binary += String.fromCharCode(data[i]);\n const base64 = btoa(binary);\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\n\nexport function b64uDecode(text: string): Uint8Array {\n const padded = text + \"=\".repeat((4 - (text.length % 4)) % 4);\n const base64 = padded.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const binary = atob(base64);\n const out = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) out[i] = binary.charCodeAt(i);\n return out;\n}\n\n/** RFC 8785 JCS, as UTF-8 bytes (matches Python's `rfc8785.dumps`, which returns bytes). */\nexport function jcs(obj: unknown): Uint8Array {\n const text = canonicalizeJcs(obj as object);\n if (text === undefined) {\n throw new TypeError(\"jcs: value is not JSON-serializable\");\n }\n return new TextEncoder().encode(text);\n}\n\nexport function sha256(data: Uint8Array): Uint8Array {\n return nobleSha256(data);\n}\n\nfunction concatBytes(...parts: Uint8Array[]): Uint8Array {\n const total = parts.reduce((n, p) => n + p.length, 0);\n const out = new Uint8Array(total);\n let offset = 0;\n for (const p of parts) {\n out.set(p, offset);\n offset += p.length;\n }\n return out;\n}\n\n/**\n * §3: receipts carry integers only. JSON.parse collapses the int/float distinction Python's\n * `json.loads` preserves (e.g. `1.0` parses to the same JS number as `1`), so this checks two\n * ways:\n * - `hasFloatValue`: any value that is a non-integer finite number (catches every float that\n * actually matters, e.g. `0.5` in vector 014-float-in-body.json).\n * - `hasFloatText`: scans the raw JSON text (outside string literals) for a numeric token\n * containing `.`, `e` or `E` — the same signal Python's tokenizer used to decide `float` vs\n * `int`, for callers that still have the original text (files, HTTP bodies).\n * `verifyReceipt` OR's both when raw text is available, so nothing is hidden by `JSON.parse`.\n */\nexport function hasFloatValue(value: unknown): boolean {\n if (typeof value === \"boolean\") return false;\n if (typeof value === \"number\") return !Number.isInteger(value);\n if (Array.isArray(value)) return value.some(hasFloatValue);\n if (value !== null && typeof value === \"object\") {\n return Object.values(value as Record<string, unknown>).some(hasFloatValue);\n }\n return false;\n}\n\nexport function hasFloatText(text: string): boolean {\n let i = 0;\n const n = text.length;\n while (i < n) {\n const ch = text[i];\n if (ch === '\"') {\n i++;\n while (i < n) {\n if (text[i] === \"\\\\\") {\n i += 2;\n continue;\n }\n if (text[i] === '\"') {\n i++;\n break;\n }\n i++;\n }\n continue;\n }\n if (ch === \"-\" || (ch >= \"0\" && ch <= \"9\")) {\n const start = i;\n if (ch === \"-\") i++;\n let sawFloatChar = false;\n while (i < n && text[i] >= \"0\" && text[i] <= \"9\") i++;\n if (text[i] === \".\") {\n sawFloatChar = true;\n i++;\n while (i < n && text[i] >= \"0\" && text[i] <= \"9\") i++;\n }\n if (text[i] === \"e\" || text[i] === \"E\") {\n sawFloatChar = true;\n i++;\n if (text[i] === \"+\" || text[i] === \"-\") i++;\n while (i < n && text[i] >= \"0\" && text[i] <= \"9\") i++;\n }\n if (i === start) i++; // safety, should not happen\n if (sawFloatChar) return true;\n continue;\n }\n i++;\n }\n return false;\n}\n\n// --- keys + signatures (§5) ---------------------------------------------------------------------\n\nexport function keyId(pkRaw: Uint8Array): string {\n return \"ed25519:\" + b64u(sha256(pkRaw));\n}\n\nexport function verifySignature(pkRaw: Uint8Array, body: unknown, sigValue: string): boolean {\n try {\n const sig = b64uDecode(sigValue);\n const message = concatBytes(SIG_DOMAIN, jcs(body));\n return ed25519.verify(sig, message, pkRaw);\n } catch {\n return false;\n }\n}\n\nexport function claimDigest(claim: Record<string, unknown>): string {\n const stripped: Record<string, unknown> = {};\n for (const k of Object.keys(claim)) {\n if (k !== \"claim_digest\") stripped[k] = claim[k];\n }\n return b64u(sha256(jcs(stripped)));\n}\n\n// --- Merkle log, RFC 6962 (§8) ------------------------------------------------------------------\n\nexport function leafHash(receipt: { body: unknown; signature: unknown }): Uint8Array {\n return sha256(concatBytes(new Uint8Array([0x00]), jcs({ body: receipt.body, signature: receipt.signature })));\n}\n\nfunction nodeHash(left: Uint8Array, right: Uint8Array): Uint8Array {\n return sha256(concatBytes(new Uint8Array([0x01]), left, right));\n}\n\n/** Largest power of two strictly less than n (RFC 6962 §2.1). */\nfunction split(n: number): number {\n let k = 1;\n while (k << 1 < n) k <<= 1;\n return k;\n}\n\nfunction bytesEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;\n return true;\n}\n\n/**\n * RFC 9162 §2.1.3.2 audit-path verification. Returns the computed root, or null if the path is\n * malformed. Ported line for line from `poaw_core.root_from_inclusion`.\n */\nexport function rootFromInclusion(\n index: number,\n size: number,\n leaf: Uint8Array,\n path: Uint8Array[],\n): Uint8Array | null {\n if (index >= size) return null;\n let fn = index;\n let sn = size - 1;\n let r = leaf;\n for (const p of path) {\n if (sn === 0) return null;\n if ((fn & 1) === 1 || fn === sn) {\n r = nodeHash(p, r);\n if ((fn & 1) === 0) {\n while (fn !== 0 && (fn & 1) === 0) {\n fn >>= 1;\n sn >>= 1;\n }\n }\n } else {\n r = nodeHash(r, p);\n }\n fn >>= 1;\n sn >>= 1;\n }\n return sn === 0 ? r : null;\n}\n\nexport { bytesEqual };\n","// @ts-nocheck\n/* eslint-disable */\n// Generated by scripts/build-validator.mjs from ../../../src/receipt.schema.json. Do not edit by hand.\n\"use strict\";function ucs2length(str) { const len = str.length; let length = 0; let pos = 0; let value; while (pos < len) { length++; value = str.charCodeAt(pos++); if (value >= 0xd800 && value <= 0xdbff && pos < len) { value = str.charCodeAt(pos); if ((value & 0xfc00) === 0xdc00) pos++; } } return length; }export const validate = validate20;export default validate20;const schema31 = {\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"$id\":\"urn:poaw:schema:0.1:receipt\",\"title\":\"PoAW receipt (poaw/0.1)\",\"description\":\"Structural schema for a Proof of Agent Work receipt. Signature, inclusion and anchor checks are defined in SPEC.md and are not expressible in JSON Schema.\",\"type\":\"object\",\"required\":[\"body\",\"signature\"],\"additionalProperties\":false,\"properties\":{\"body\":{\"$ref\":\"#/$defs/body\"},\"signature\":{\"$ref\":\"#/$defs/signature\"},\"proof\":{\"$ref\":\"#/$defs/proof\"}},\"$defs\":{\"timestamp\":{\"type\":\"string\",\"pattern\":\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},\"b64url\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]+$\"},\"keyId\":{\"type\":\"string\",\"pattern\":\"^ed25519:[A-Za-z0-9_-]{43}$\"},\"fingerprint\":{\"type\":\"string\",\"pattern\":\"^sha256:[A-Za-z0-9_-]{43}$\"},\"action\":{\"type\":\"string\",\"pattern\":\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"},\"verdictValue\":{\"enum\":[\"verified\",\"late\",\"mismatch\",\"failed\",\"unverifiable\"]},\"reasonCode\":{\"enum\":[\"not_found\",\"content_mismatch\",\"target_mismatch\",\"observed_after_tolerance\",\"no_connection\",\"permission_denied\",\"rate_limited\",\"destination_unavailable\",\"unsupported_action\",\"claim_ambiguous\",\"verifier_error\"]},\"body\":{\"type\":\"object\",\"required\":[\"spec_version\",\"receipt_id\",\"issued_at\",\"issuer\",\"agent\",\"claim\",\"observation\",\"verdict\",\"trust_level\"],\"properties\":{\"spec_version\":{\"const\":\"poaw/0.1\"},\"receipt_id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"issued_at\":{\"$ref\":\"#/$defs/timestamp\"},\"issuer\":{\"type\":\"object\",\"required\":[\"key_id\"],\"properties\":{\"key_id\":{\"$ref\":\"#/$defs/keyId\"},\"name\":{\"type\":\"string\",\"maxLength\":128}}},\"agent\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"erc8004\":{\"type\":\"object\",\"required\":[\"chain\",\"registry\",\"agent_id\"],\"properties\":{\"chain\":{\"type\":\"string\",\"pattern\":\"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\"},\"registry\":{\"type\":\"string\"},\"agent_id\":{\"type\":\"string\"}}}}},\"operator\":{\"type\":\"string\",\"maxLength\":256},\"claim\":{\"type\":\"object\",\"required\":[\"action\",\"target\",\"params\",\"claimed_at\",\"claim_digest\"],\"properties\":{\"action\":{\"$ref\":\"#/$defs/action\"},\"target\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":512},\"params\":{\"type\":\"object\"},\"claimed_at\":{\"$ref\":\"#/$defs/timestamp\"},\"client_claim_id\":{\"type\":\"string\",\"maxLength\":256},\"claim_digest\":{\"$ref\":\"#/$defs/b64url\"}}},\"observation\":{\"type\":\"object\",\"required\":[\"verifier\",\"observed_at\",\"deadline_at\",\"attempts\",\"facts\"],\"properties\":{\"verifier\":{\"type\":\"object\",\"required\":[\"id\",\"version\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/action\"},\"version\":{\"type\":\"string\",\"pattern\":\"^\\\\d+$\"},\"code_hash\":{\"$ref\":\"#/$defs/fingerprint\"}}},\"observed_at\":{\"$ref\":\"#/$defs/timestamp\"},\"deadline_at\":{\"$ref\":\"#/$defs/timestamp\"},\"attempts\":{\"type\":\"integer\",\"minimum\":1},\"facts\":{\"type\":\"object\"}}},\"verdict\":{\"type\":\"object\",\"required\":[\"value\"],\"properties\":{\"value\":{\"$ref\":\"#/$defs/verdictValue\"},\"reason_code\":{\"$ref\":\"#/$defs/reasonCode\"}},\"if\":{\"properties\":{\"value\":{\"const\":\"unverifiable\"}}},\"then\":{\"required\":[\"value\",\"reason_code\"]}},\"trust_level\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":4},\"attestation\":{\"type\":\"object\",\"required\":[\"type\",\"document\"],\"properties\":{\"type\":{\"type\":\"string\"},\"document\":{\"$ref\":\"#/$defs/b64url\"}}},\"supersedes\":{\"type\":\"string\"}},\"if\":{\"properties\":{\"trust_level\":{\"minimum\":3}}},\"then\":{\"required\":[\"attestation\"],\"properties\":{\"observation\":{\"properties\":{\"verifier\":{\"required\":[\"id\",\"version\",\"code_hash\"]}}}}}},\"signature\":{\"type\":\"object\",\"required\":[\"alg\",\"key_id\",\"value\"],\"additionalProperties\":false,\"properties\":{\"alg\":{\"const\":\"Ed25519\"},\"key_id\":{\"$ref\":\"#/$defs/keyId\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]{86}$\"}}},\"proof\":{\"type\":\"object\",\"required\":[\"log_id\",\"leaf_index\",\"tree_size\",\"root_hash\",\"inclusion\"],\"properties\":{\"log_id\":{\"$ref\":\"#/$defs/b64url\"},\"leaf_index\":{\"type\":\"integer\",\"minimum\":0},\"tree_size\":{\"type\":\"integer\",\"minimum\":1},\"root_hash\":{\"$ref\":\"#/$defs/b64url\"},\"inclusion\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/b64url\"}},\"anchor\":{\"type\":\"object\",\"required\":[\"chain\",\"scheme\",\"uid\",\"tx_hash\",\"tree_size\"],\"properties\":{\"chain\":{\"type\":\"string\"},\"scheme\":{\"const\":\"eas\"},\"uid\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"},\"tx_hash\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"},\"tree_size\":{\"type\":\"integer\",\"minimum\":1}}}}}}};const schema32 = {\"type\":\"object\",\"required\":[\"spec_version\",\"receipt_id\",\"issued_at\",\"issuer\",\"agent\",\"claim\",\"observation\",\"verdict\",\"trust_level\"],\"properties\":{\"spec_version\":{\"const\":\"poaw/0.1\"},\"receipt_id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"issued_at\":{\"$ref\":\"#/$defs/timestamp\"},\"issuer\":{\"type\":\"object\",\"required\":[\"key_id\"],\"properties\":{\"key_id\":{\"$ref\":\"#/$defs/keyId\"},\"name\":{\"type\":\"string\",\"maxLength\":128}}},\"agent\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"erc8004\":{\"type\":\"object\",\"required\":[\"chain\",\"registry\",\"agent_id\"],\"properties\":{\"chain\":{\"type\":\"string\",\"pattern\":\"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\"},\"registry\":{\"type\":\"string\"},\"agent_id\":{\"type\":\"string\"}}}}},\"operator\":{\"type\":\"string\",\"maxLength\":256},\"claim\":{\"type\":\"object\",\"required\":[\"action\",\"target\",\"params\",\"claimed_at\",\"claim_digest\"],\"properties\":{\"action\":{\"$ref\":\"#/$defs/action\"},\"target\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":512},\"params\":{\"type\":\"object\"},\"claimed_at\":{\"$ref\":\"#/$defs/timestamp\"},\"client_claim_id\":{\"type\":\"string\",\"maxLength\":256},\"claim_digest\":{\"$ref\":\"#/$defs/b64url\"}}},\"observation\":{\"type\":\"object\",\"required\":[\"verifier\",\"observed_at\",\"deadline_at\",\"attempts\",\"facts\"],\"properties\":{\"verifier\":{\"type\":\"object\",\"required\":[\"id\",\"version\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/action\"},\"version\":{\"type\":\"string\",\"pattern\":\"^\\\\d+$\"},\"code_hash\":{\"$ref\":\"#/$defs/fingerprint\"}}},\"observed_at\":{\"$ref\":\"#/$defs/timestamp\"},\"deadline_at\":{\"$ref\":\"#/$defs/timestamp\"},\"attempts\":{\"type\":\"integer\",\"minimum\":1},\"facts\":{\"type\":\"object\"}}},\"verdict\":{\"type\":\"object\",\"required\":[\"value\"],\"properties\":{\"value\":{\"$ref\":\"#/$defs/verdictValue\"},\"reason_code\":{\"$ref\":\"#/$defs/reasonCode\"}},\"if\":{\"properties\":{\"value\":{\"const\":\"unverifiable\"}}},\"then\":{\"required\":[\"value\",\"reason_code\"]}},\"trust_level\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":4},\"attestation\":{\"type\":\"object\",\"required\":[\"type\",\"document\"],\"properties\":{\"type\":{\"type\":\"string\"},\"document\":{\"$ref\":\"#/$defs/b64url\"}}},\"supersedes\":{\"type\":\"string\"}},\"if\":{\"properties\":{\"trust_level\":{\"minimum\":3}}},\"then\":{\"required\":[\"attestation\"],\"properties\":{\"observation\":{\"properties\":{\"verifier\":{\"required\":[\"id\",\"version\",\"code_hash\"]}}}}}};const schema33 = {\"type\":\"string\",\"pattern\":\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"};const schema34 = {\"type\":\"string\",\"pattern\":\"^ed25519:[A-Za-z0-9_-]{43}$\"};const schema35 = {\"type\":\"string\",\"pattern\":\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"};const schema37 = {\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]+$\"};const schema39 = {\"type\":\"string\",\"pattern\":\"^sha256:[A-Za-z0-9_-]{43}$\"};const schema42 = {\"enum\":[\"verified\",\"late\",\"mismatch\",\"failed\",\"unverifiable\"]};const schema43 = {\"enum\":[\"not_found\",\"content_mismatch\",\"target_mismatch\",\"observed_after_tolerance\",\"no_connection\",\"permission_denied\",\"rate_limited\",\"destination_unavailable\",\"unsupported_action\",\"claim_ambiguous\",\"verifier_error\"]};const func1 = ucs2length;const pattern4 = new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\", \"u\");const pattern5 = new RegExp(\"^ed25519:[A-Za-z0-9_-]{43}$\", \"u\");const pattern6 = new RegExp(\"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\", \"u\");const pattern7 = new RegExp(\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\", \"u\");const pattern9 = new RegExp(\"^[A-Za-z0-9_-]+$\", \"u\");const pattern11 = new RegExp(\"^\\\\d+$\", \"u\");const pattern12 = new RegExp(\"^sha256:[A-Za-z0-9_-]{43}$\", \"u\");function validate21(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs1 = errors;let valid0 = true;const _errs2 = errors;if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.trust_level !== undefined){let data0 = data.trust_level;if(typeof data0 == \"number\"){if(data0 < 3 || isNaN(data0)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}}}var _valid0 = _errs2 === errors;errors = _errs1;if(vErrors !== null){if(_errs1){vErrors.length = _errs1;}else {vErrors = null;}}if(_valid0){const _errs4 = errors;if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if((data.attestation === undefined) && (missing0 = \"attestation\")){validate21.errors = [{instancePath,schemaPath:\"#/then/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {if(data.observation !== undefined){let data1 = data.observation;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(data1.verifier !== undefined){let data2 = data1.verifier;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){let missing1;if((((data2.id === undefined) && (missing1 = \"id\")) || ((data2.version === undefined) && (missing1 = \"version\"))) || ((data2.code_hash === undefined) && (missing1 = \"code_hash\"))){validate21.errors = [{instancePath:instancePath+\"/observation/verifier\",schemaPath:\"#/then/properties/observation/properties/verifier/required\",keyword:\"required\",params:{missingProperty: missing1},message:\"must have required property '\"+missing1+\"'\"}];return false;}}}}}}}var _valid0 = _errs4 === errors;valid0 = _valid0;if(valid0){var props0 = {};props0.observation = true;props0.trust_level = true;}}if(!valid0){const err1 = {instancePath,schemaPath:\"#/if\",keyword:\"if\",params:{failingKeyword: \"then\"},message:\"must match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate21.errors = vErrors;return false;}if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){let missing2;if((((((((((data.spec_version === undefined) && (missing2 = \"spec_version\")) || ((data.receipt_id === undefined) && (missing2 = \"receipt_id\"))) || ((data.issued_at === undefined) && (missing2 = \"issued_at\"))) || ((data.issuer === undefined) && (missing2 = \"issuer\"))) || ((data.agent === undefined) && (missing2 = \"agent\"))) || ((data.claim === undefined) && (missing2 = \"claim\"))) || ((data.observation === undefined) && (missing2 = \"observation\"))) || ((data.verdict === undefined) && (missing2 = \"verdict\"))) || ((data.trust_level === undefined) && (missing2 = \"trust_level\"))){validate21.errors = [{instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: missing2},message:\"must have required property '\"+missing2+\"'\"}];return false;}else {if(props0 !== true){props0 = props0 || {};props0.spec_version = true;props0.receipt_id = true;props0.issued_at = true;props0.issuer = true;props0.agent = true;props0.operator = true;props0.claim = true;props0.observation = true;props0.verdict = true;props0.trust_level = true;props0.attestation = true;props0.supersedes = true;}if(data.spec_version !== undefined){const _errs7 = errors;if(\"poaw/0.1\" !== data.spec_version){validate21.errors = [{instancePath:instancePath+\"/spec_version\",schemaPath:\"#/properties/spec_version/const\",keyword:\"const\",params:{allowedValue: \"poaw/0.1\"},message:\"must be equal to constant\"}];return false;}var valid4 = _errs7 === errors;}else {var valid4 = true;}if(valid4){if(data.receipt_id !== undefined){let data4 = data.receipt_id;const _errs8 = errors;if(errors === _errs8){if(typeof data4 === \"string\"){if(func1(data4) > 128){validate21.errors = [{instancePath:instancePath+\"/receipt_id\",schemaPath:\"#/properties/receipt_id/maxLength\",keyword:\"maxLength\",params:{limit: 128},message:\"must NOT have more than 128 characters\"}];return false;}else {if(func1(data4) < 1){validate21.errors = [{instancePath:instancePath+\"/receipt_id\",schemaPath:\"#/properties/receipt_id/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"}];return false;}}}else {validate21.errors = [{instancePath:instancePath+\"/receipt_id\",schemaPath:\"#/properties/receipt_id/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid4 = _errs8 === errors;}else {var valid4 = true;}if(valid4){if(data.issued_at !== undefined){let data5 = data.issued_at;const _errs10 = errors;const _errs11 = errors;if(errors === _errs11){if(typeof data5 === \"string\"){if(!pattern4.test(data5)){validate21.errors = [{instancePath:instancePath+\"/issued_at\",schemaPath:\"#/$defs/timestamp/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},message:\"must match pattern \\\"\"+\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/issued_at\",schemaPath:\"#/$defs/timestamp/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid4 = _errs10 === errors;}else {var valid4 = true;}if(valid4){if(data.issuer !== undefined){let data6 = data.issuer;const _errs13 = errors;if(errors === _errs13){if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){let missing3;if((data6.key_id === undefined) && (missing3 = \"key_id\")){validate21.errors = [{instancePath:instancePath+\"/issuer\",schemaPath:\"#/properties/issuer/required\",keyword:\"required\",params:{missingProperty: missing3},message:\"must have required property '\"+missing3+\"'\"}];return false;}else {if(data6.key_id !== undefined){let data7 = data6.key_id;const _errs15 = errors;const _errs16 = errors;if(errors === _errs16){if(typeof data7 === \"string\"){if(!pattern5.test(data7)){validate21.errors = [{instancePath:instancePath+\"/issuer/key_id\",schemaPath:\"#/$defs/keyId/pattern\",keyword:\"pattern\",params:{pattern: \"^ed25519:[A-Za-z0-9_-]{43}$\"},message:\"must match pattern \\\"\"+\"^ed25519:[A-Za-z0-9_-]{43}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/issuer/key_id\",schemaPath:\"#/$defs/keyId/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid6 = _errs15 === errors;}else {var valid6 = true;}if(valid6){if(data6.name !== undefined){let data8 = data6.name;const _errs18 = errors;if(errors === _errs18){if(typeof data8 === \"string\"){if(func1(data8) > 128){validate21.errors = [{instancePath:instancePath+\"/issuer/name\",schemaPath:\"#/properties/issuer/properties/name/maxLength\",keyword:\"maxLength\",params:{limit: 128},message:\"must NOT have more than 128 characters\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/issuer/name\",schemaPath:\"#/properties/issuer/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid6 = _errs18 === errors;}else {var valid6 = true;}}}}else {validate21.errors = [{instancePath:instancePath+\"/issuer\",schemaPath:\"#/properties/issuer/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs13 === errors;}else {var valid4 = true;}if(valid4){if(data.agent !== undefined){let data9 = data.agent;const _errs20 = errors;if(errors === _errs20){if(data9 && typeof data9 == \"object\" && !Array.isArray(data9)){let missing4;if((data9.id === undefined) && (missing4 = \"id\")){validate21.errors = [{instancePath:instancePath+\"/agent\",schemaPath:\"#/properties/agent/required\",keyword:\"required\",params:{missingProperty: missing4},message:\"must have required property '\"+missing4+\"'\"}];return false;}else {if(data9.id !== undefined){let data10 = data9.id;const _errs22 = errors;if(errors === _errs22){if(typeof data10 === \"string\"){if(func1(data10) > 256){validate21.errors = [{instancePath:instancePath+\"/agent/id\",schemaPath:\"#/properties/agent/properties/id/maxLength\",keyword:\"maxLength\",params:{limit: 256},message:\"must NOT have more than 256 characters\"}];return false;}else {if(func1(data10) < 1){validate21.errors = [{instancePath:instancePath+\"/agent/id\",schemaPath:\"#/properties/agent/properties/id/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"}];return false;}}}else {validate21.errors = [{instancePath:instancePath+\"/agent/id\",schemaPath:\"#/properties/agent/properties/id/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid8 = _errs22 === errors;}else {var valid8 = true;}if(valid8){if(data9.erc8004 !== undefined){let data11 = data9.erc8004;const _errs24 = errors;if(errors === _errs24){if(data11 && typeof data11 == \"object\" && !Array.isArray(data11)){let missing5;if((((data11.chain === undefined) && (missing5 = \"chain\")) || ((data11.registry === undefined) && (missing5 = \"registry\"))) || ((data11.agent_id === undefined) && (missing5 = \"agent_id\"))){validate21.errors = [{instancePath:instancePath+\"/agent/erc8004\",schemaPath:\"#/properties/agent/properties/erc8004/required\",keyword:\"required\",params:{missingProperty: missing5},message:\"must have required property '\"+missing5+\"'\"}];return false;}else {if(data11.chain !== undefined){let data12 = data11.chain;const _errs26 = errors;if(errors === _errs26){if(typeof data12 === \"string\"){if(!pattern6.test(data12)){validate21.errors = [{instancePath:instancePath+\"/agent/erc8004/chain\",schemaPath:\"#/properties/agent/properties/erc8004/properties/chain/pattern\",keyword:\"pattern\",params:{pattern: \"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\"},message:\"must match pattern \\\"\"+\"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/agent/erc8004/chain\",schemaPath:\"#/properties/agent/properties/erc8004/properties/chain/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid9 = _errs26 === errors;}else {var valid9 = true;}if(valid9){if(data11.registry !== undefined){const _errs28 = errors;if(typeof data11.registry !== \"string\"){validate21.errors = [{instancePath:instancePath+\"/agent/erc8004/registry\",schemaPath:\"#/properties/agent/properties/erc8004/properties/registry/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid9 = _errs28 === errors;}else {var valid9 = true;}if(valid9){if(data11.agent_id !== undefined){const _errs30 = errors;if(typeof data11.agent_id !== \"string\"){validate21.errors = [{instancePath:instancePath+\"/agent/erc8004/agent_id\",schemaPath:\"#/properties/agent/properties/erc8004/properties/agent_id/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid9 = _errs30 === errors;}else {var valid9 = true;}}}}}else {validate21.errors = [{instancePath:instancePath+\"/agent/erc8004\",schemaPath:\"#/properties/agent/properties/erc8004/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid8 = _errs24 === errors;}else {var valid8 = true;}}}}else {validate21.errors = [{instancePath:instancePath+\"/agent\",schemaPath:\"#/properties/agent/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs20 === errors;}else {var valid4 = true;}if(valid4){if(data.operator !== undefined){let data15 = data.operator;const _errs32 = errors;if(errors === _errs32){if(typeof data15 === \"string\"){if(func1(data15) > 256){validate21.errors = [{instancePath:instancePath+\"/operator\",schemaPath:\"#/properties/operator/maxLength\",keyword:\"maxLength\",params:{limit: 256},message:\"must NOT have more than 256 characters\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/operator\",schemaPath:\"#/properties/operator/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid4 = _errs32 === errors;}else {var valid4 = true;}if(valid4){if(data.claim !== undefined){let data16 = data.claim;const _errs34 = errors;if(errors === _errs34){if(data16 && typeof data16 == \"object\" && !Array.isArray(data16)){let missing6;if((((((data16.action === undefined) && (missing6 = \"action\")) || ((data16.target === undefined) && (missing6 = \"target\"))) || ((data16.params === undefined) && (missing6 = \"params\"))) || ((data16.claimed_at === undefined) && (missing6 = \"claimed_at\"))) || ((data16.claim_digest === undefined) && (missing6 = \"claim_digest\"))){validate21.errors = [{instancePath:instancePath+\"/claim\",schemaPath:\"#/properties/claim/required\",keyword:\"required\",params:{missingProperty: missing6},message:\"must have required property '\"+missing6+\"'\"}];return false;}else {if(data16.action !== undefined){let data17 = data16.action;const _errs36 = errors;const _errs37 = errors;if(errors === _errs37){if(typeof data17 === \"string\"){if(!pattern7.test(data17)){validate21.errors = [{instancePath:instancePath+\"/claim/action\",schemaPath:\"#/$defs/action/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/claim/action\",schemaPath:\"#/$defs/action/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs36 === errors;}else {var valid10 = true;}if(valid10){if(data16.target !== undefined){let data18 = data16.target;const _errs39 = errors;if(errors === _errs39){if(typeof data18 === \"string\"){if(func1(data18) > 512){validate21.errors = [{instancePath:instancePath+\"/claim/target\",schemaPath:\"#/properties/claim/properties/target/maxLength\",keyword:\"maxLength\",params:{limit: 512},message:\"must NOT have more than 512 characters\"}];return false;}else {if(func1(data18) < 1){validate21.errors = [{instancePath:instancePath+\"/claim/target\",schemaPath:\"#/properties/claim/properties/target/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"}];return false;}}}else {validate21.errors = [{instancePath:instancePath+\"/claim/target\",schemaPath:\"#/properties/claim/properties/target/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs39 === errors;}else {var valid10 = true;}if(valid10){if(data16.params !== undefined){let data19 = data16.params;const _errs41 = errors;if(!(data19 && typeof data19 == \"object\" && !Array.isArray(data19))){validate21.errors = [{instancePath:instancePath+\"/claim/params\",schemaPath:\"#/properties/claim/properties/params/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}var valid10 = _errs41 === errors;}else {var valid10 = true;}if(valid10){if(data16.claimed_at !== undefined){let data20 = data16.claimed_at;const _errs43 = errors;const _errs44 = errors;if(errors === _errs44){if(typeof data20 === \"string\"){if(!pattern4.test(data20)){validate21.errors = [{instancePath:instancePath+\"/claim/claimed_at\",schemaPath:\"#/$defs/timestamp/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},message:\"must match pattern \\\"\"+\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/claim/claimed_at\",schemaPath:\"#/$defs/timestamp/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs43 === errors;}else {var valid10 = true;}if(valid10){if(data16.client_claim_id !== undefined){let data21 = data16.client_claim_id;const _errs46 = errors;if(errors === _errs46){if(typeof data21 === \"string\"){if(func1(data21) > 256){validate21.errors = [{instancePath:instancePath+\"/claim/client_claim_id\",schemaPath:\"#/properties/claim/properties/client_claim_id/maxLength\",keyword:\"maxLength\",params:{limit: 256},message:\"must NOT have more than 256 characters\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/claim/client_claim_id\",schemaPath:\"#/properties/claim/properties/client_claim_id/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs46 === errors;}else {var valid10 = true;}if(valid10){if(data16.claim_digest !== undefined){let data22 = data16.claim_digest;const _errs48 = errors;const _errs49 = errors;if(errors === _errs49){if(typeof data22 === \"string\"){if(!pattern9.test(data22)){validate21.errors = [{instancePath:instancePath+\"/claim/claim_digest\",schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/claim/claim_digest\",schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs48 === errors;}else {var valid10 = true;}}}}}}}}else {validate21.errors = [{instancePath:instancePath+\"/claim\",schemaPath:\"#/properties/claim/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs34 === errors;}else {var valid4 = true;}if(valid4){if(data.observation !== undefined){let data23 = data.observation;const _errs51 = errors;if(errors === _errs51){if(data23 && typeof data23 == \"object\" && !Array.isArray(data23)){let missing7;if((((((data23.verifier === undefined) && (missing7 = \"verifier\")) || ((data23.observed_at === undefined) && (missing7 = \"observed_at\"))) || ((data23.deadline_at === undefined) && (missing7 = \"deadline_at\"))) || ((data23.attempts === undefined) && (missing7 = \"attempts\"))) || ((data23.facts === undefined) && (missing7 = \"facts\"))){validate21.errors = [{instancePath:instancePath+\"/observation\",schemaPath:\"#/properties/observation/required\",keyword:\"required\",params:{missingProperty: missing7},message:\"must have required property '\"+missing7+\"'\"}];return false;}else {if(data23.verifier !== undefined){let data24 = data23.verifier;const _errs53 = errors;if(errors === _errs53){if(data24 && typeof data24 == \"object\" && !Array.isArray(data24)){let missing8;if(((data24.id === undefined) && (missing8 = \"id\")) || ((data24.version === undefined) && (missing8 = \"version\"))){validate21.errors = [{instancePath:instancePath+\"/observation/verifier\",schemaPath:\"#/properties/observation/properties/verifier/required\",keyword:\"required\",params:{missingProperty: missing8},message:\"must have required property '\"+missing8+\"'\"}];return false;}else {if(data24.id !== undefined){let data25 = data24.id;const _errs55 = errors;const _errs56 = errors;if(errors === _errs56){if(typeof data25 === \"string\"){if(!pattern7.test(data25)){validate21.errors = [{instancePath:instancePath+\"/observation/verifier/id\",schemaPath:\"#/$defs/action/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/verifier/id\",schemaPath:\"#/$defs/action/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid15 = _errs55 === errors;}else {var valid15 = true;}if(valid15){if(data24.version !== undefined){let data26 = data24.version;const _errs58 = errors;if(errors === _errs58){if(typeof data26 === \"string\"){if(!pattern11.test(data26)){validate21.errors = [{instancePath:instancePath+\"/observation/verifier/version\",schemaPath:\"#/properties/observation/properties/verifier/properties/version/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d+$\"},message:\"must match pattern \\\"\"+\"^\\\\d+$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/verifier/version\",schemaPath:\"#/properties/observation/properties/verifier/properties/version/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid15 = _errs58 === errors;}else {var valid15 = true;}if(valid15){if(data24.code_hash !== undefined){let data27 = data24.code_hash;const _errs60 = errors;const _errs61 = errors;if(errors === _errs61){if(typeof data27 === \"string\"){if(!pattern12.test(data27)){validate21.errors = [{instancePath:instancePath+\"/observation/verifier/code_hash\",schemaPath:\"#/$defs/fingerprint/pattern\",keyword:\"pattern\",params:{pattern: \"^sha256:[A-Za-z0-9_-]{43}$\"},message:\"must match pattern \\\"\"+\"^sha256:[A-Za-z0-9_-]{43}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/verifier/code_hash\",schemaPath:\"#/$defs/fingerprint/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid15 = _errs60 === errors;}else {var valid15 = true;}}}}}else {validate21.errors = [{instancePath:instancePath+\"/observation/verifier\",schemaPath:\"#/properties/observation/properties/verifier/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid14 = _errs53 === errors;}else {var valid14 = true;}if(valid14){if(data23.observed_at !== undefined){let data28 = data23.observed_at;const _errs63 = errors;const _errs64 = errors;if(errors === _errs64){if(typeof data28 === \"string\"){if(!pattern4.test(data28)){validate21.errors = [{instancePath:instancePath+\"/observation/observed_at\",schemaPath:\"#/$defs/timestamp/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},message:\"must match pattern \\\"\"+\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/observed_at\",schemaPath:\"#/$defs/timestamp/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid14 = _errs63 === errors;}else {var valid14 = true;}if(valid14){if(data23.deadline_at !== undefined){let data29 = data23.deadline_at;const _errs66 = errors;const _errs67 = errors;if(errors === _errs67){if(typeof data29 === \"string\"){if(!pattern4.test(data29)){validate21.errors = [{instancePath:instancePath+\"/observation/deadline_at\",schemaPath:\"#/$defs/timestamp/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},message:\"must match pattern \\\"\"+\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/deadline_at\",schemaPath:\"#/$defs/timestamp/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid14 = _errs66 === errors;}else {var valid14 = true;}if(valid14){if(data23.attempts !== undefined){let data30 = data23.attempts;const _errs69 = errors;if(!((typeof data30 == \"number\") && (!(data30 % 1) && !isNaN(data30)))){validate21.errors = [{instancePath:instancePath+\"/observation/attempts\",schemaPath:\"#/properties/observation/properties/attempts/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs69){if(typeof data30 == \"number\"){if(data30 < 1 || isNaN(data30)){validate21.errors = [{instancePath:instancePath+\"/observation/attempts\",schemaPath:\"#/properties/observation/properties/attempts/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"}];return false;}}}var valid14 = _errs69 === errors;}else {var valid14 = true;}if(valid14){if(data23.facts !== undefined){let data31 = data23.facts;const _errs71 = errors;if(!(data31 && typeof data31 == \"object\" && !Array.isArray(data31))){validate21.errors = [{instancePath:instancePath+\"/observation/facts\",schemaPath:\"#/properties/observation/properties/facts/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}var valid14 = _errs71 === errors;}else {var valid14 = true;}}}}}}}else {validate21.errors = [{instancePath:instancePath+\"/observation\",schemaPath:\"#/properties/observation/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs51 === errors;}else {var valid4 = true;}if(valid4){if(data.verdict !== undefined){let data32 = data.verdict;const _errs73 = errors;const _errs75 = errors;let valid20 = true;const _errs76 = errors;if(data32 && typeof data32 == \"object\" && !Array.isArray(data32)){if(data32.value !== undefined){if(\"unverifiable\" !== data32.value){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}}var _valid1 = _errs76 === errors;errors = _errs75;if(vErrors !== null){if(_errs75){vErrors.length = _errs75;}else {vErrors = null;}}if(_valid1){const _errs78 = errors;if(data32 && typeof data32 == \"object\" && !Array.isArray(data32)){let missing9;if(((data32.value === undefined) && (missing9 = \"value\")) || ((data32.reason_code === undefined) && (missing9 = \"reason_code\"))){validate21.errors = [{instancePath:instancePath+\"/verdict\",schemaPath:\"#/properties/verdict/then/required\",keyword:\"required\",params:{missingProperty: missing9},message:\"must have required property '\"+missing9+\"'\"}];return false;}}var _valid1 = _errs78 === errors;valid20 = _valid1;}if(!valid20){const err3 = {instancePath:instancePath+\"/verdict\",schemaPath:\"#/properties/verdict/if\",keyword:\"if\",params:{failingKeyword: \"then\"},message:\"must match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;validate21.errors = vErrors;return false;}if(errors === _errs73){if(data32 && typeof data32 == \"object\" && !Array.isArray(data32)){let missing10;if((data32.value === undefined) && (missing10 = \"value\")){validate21.errors = [{instancePath:instancePath+\"/verdict\",schemaPath:\"#/properties/verdict/required\",keyword:\"required\",params:{missingProperty: missing10},message:\"must have required property '\"+missing10+\"'\"}];return false;}else {if(data32.value !== undefined){let data34 = data32.value;const _errs79 = errors;if(!(((((data34 === \"verified\") || (data34 === \"late\")) || (data34 === \"mismatch\")) || (data34 === \"failed\")) || (data34 === \"unverifiable\"))){validate21.errors = [{instancePath:instancePath+\"/verdict/value\",schemaPath:\"#/$defs/verdictValue/enum\",keyword:\"enum\",params:{allowedValues: schema42.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid22 = _errs79 === errors;}else {var valid22 = true;}if(valid22){if(data32.reason_code !== undefined){let data35 = data32.reason_code;const _errs81 = errors;if(!(((((((((((data35 === \"not_found\") || (data35 === \"content_mismatch\")) || (data35 === \"target_mismatch\")) || (data35 === \"observed_after_tolerance\")) || (data35 === \"no_connection\")) || (data35 === \"permission_denied\")) || (data35 === \"rate_limited\")) || (data35 === \"destination_unavailable\")) || (data35 === \"unsupported_action\")) || (data35 === \"claim_ambiguous\")) || (data35 === \"verifier_error\"))){validate21.errors = [{instancePath:instancePath+\"/verdict/reason_code\",schemaPath:\"#/$defs/reasonCode/enum\",keyword:\"enum\",params:{allowedValues: schema43.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid22 = _errs81 === errors;}else {var valid22 = true;}}}}else {validate21.errors = [{instancePath:instancePath+\"/verdict\",schemaPath:\"#/properties/verdict/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs73 === errors;}else {var valid4 = true;}if(valid4){if(data.trust_level !== undefined){let data36 = data.trust_level;const _errs83 = errors;if(!((typeof data36 == \"number\") && (!(data36 % 1) && !isNaN(data36)))){validate21.errors = [{instancePath:instancePath+\"/trust_level\",schemaPath:\"#/properties/trust_level/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs83){if(typeof data36 == \"number\"){if(data36 > 4 || isNaN(data36)){validate21.errors = [{instancePath:instancePath+\"/trust_level\",schemaPath:\"#/properties/trust_level/maximum\",keyword:\"maximum\",params:{comparison: \"<=\", limit: 4},message:\"must be <= 4\"}];return false;}else {if(data36 < 1 || isNaN(data36)){validate21.errors = [{instancePath:instancePath+\"/trust_level\",schemaPath:\"#/properties/trust_level/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"}];return false;}}}}var valid4 = _errs83 === errors;}else {var valid4 = true;}if(valid4){if(data.attestation !== undefined){let data37 = data.attestation;const _errs85 = errors;if(errors === _errs85){if(data37 && typeof data37 == \"object\" && !Array.isArray(data37)){let missing11;if(((data37.type === undefined) && (missing11 = \"type\")) || ((data37.document === undefined) && (missing11 = \"document\"))){validate21.errors = [{instancePath:instancePath+\"/attestation\",schemaPath:\"#/properties/attestation/required\",keyword:\"required\",params:{missingProperty: missing11},message:\"must have required property '\"+missing11+\"'\"}];return false;}else {if(data37.type !== undefined){const _errs87 = errors;if(typeof data37.type !== \"string\"){validate21.errors = [{instancePath:instancePath+\"/attestation/type\",schemaPath:\"#/properties/attestation/properties/type/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid25 = _errs87 === errors;}else {var valid25 = true;}if(valid25){if(data37.document !== undefined){let data39 = data37.document;const _errs89 = errors;const _errs90 = errors;if(errors === _errs90){if(typeof data39 === \"string\"){if(!pattern9.test(data39)){validate21.errors = [{instancePath:instancePath+\"/attestation/document\",schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/attestation/document\",schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid25 = _errs89 === errors;}else {var valid25 = true;}}}}else {validate21.errors = [{instancePath:instancePath+\"/attestation\",schemaPath:\"#/properties/attestation/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs85 === errors;}else {var valid4 = true;}if(valid4){if(data.supersedes !== undefined){const _errs92 = errors;if(typeof data.supersedes !== \"string\"){validate21.errors = [{instancePath:instancePath+\"/supersedes\",schemaPath:\"#/properties/supersedes/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid4 = _errs92 === errors;}else {var valid4 = true;}}}}}}}}}}}}}}else {validate21.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate21.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate21.evaluated = {\"dynamicProps\":true,\"dynamicItems\":false};const schema45 = {\"type\":\"object\",\"required\":[\"alg\",\"key_id\",\"value\"],\"additionalProperties\":false,\"properties\":{\"alg\":{\"const\":\"Ed25519\"},\"key_id\":{\"$ref\":\"#/$defs/keyId\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]{86}$\"}}};const pattern17 = new RegExp(\"^[A-Za-z0-9_-]{86}$\", \"u\");function validate23(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate23.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if((((data.alg === undefined) && (missing0 = \"alg\")) || ((data.key_id === undefined) && (missing0 = \"key_id\"))) || ((data.value === undefined) && (missing0 = \"value\"))){validate23.errors = [{instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === \"alg\") || (key0 === \"key_id\")) || (key0 === \"value\"))){validate23.errors = [{instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"}];return false;break;}}if(_errs1 === errors){if(data.alg !== undefined){const _errs2 = errors;if(\"Ed25519\" !== data.alg){validate23.errors = [{instancePath:instancePath+\"/alg\",schemaPath:\"#/properties/alg/const\",keyword:\"const\",params:{allowedValue: \"Ed25519\"},message:\"must be equal to constant\"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.key_id !== undefined){let data1 = data.key_id;const _errs3 = errors;const _errs4 = errors;if(errors === _errs4){if(typeof data1 === \"string\"){if(!pattern5.test(data1)){validate23.errors = [{instancePath:instancePath+\"/key_id\",schemaPath:\"#/$defs/keyId/pattern\",keyword:\"pattern\",params:{pattern: \"^ed25519:[A-Za-z0-9_-]{43}$\"},message:\"must match pattern \\\"\"+\"^ed25519:[A-Za-z0-9_-]{43}$\"+\"\\\"\"}];return false;}}else {validate23.errors = [{instancePath:instancePath+\"/key_id\",schemaPath:\"#/$defs/keyId/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.value !== undefined){let data2 = data.value;const _errs6 = errors;if(errors === _errs6){if(typeof data2 === \"string\"){if(!pattern17.test(data2)){validate23.errors = [{instancePath:instancePath+\"/value\",schemaPath:\"#/properties/value/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]{86}$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]{86}$\"+\"\\\"\"}];return false;}}else {validate23.errors = [{instancePath:instancePath+\"/value\",schemaPath:\"#/properties/value/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid0 = _errs6 === errors;}else {var valid0 = true;}}}}}}else {validate23.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate23.errors = vErrors;return errors === 0;}validate23.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema47 = {\"type\":\"object\",\"required\":[\"log_id\",\"leaf_index\",\"tree_size\",\"root_hash\",\"inclusion\"],\"properties\":{\"log_id\":{\"$ref\":\"#/$defs/b64url\"},\"leaf_index\":{\"type\":\"integer\",\"minimum\":0},\"tree_size\":{\"type\":\"integer\",\"minimum\":1},\"root_hash\":{\"$ref\":\"#/$defs/b64url\"},\"inclusion\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/b64url\"}},\"anchor\":{\"type\":\"object\",\"required\":[\"chain\",\"scheme\",\"uid\",\"tx_hash\",\"tree_size\"],\"properties\":{\"chain\":{\"type\":\"string\"},\"scheme\":{\"const\":\"eas\"},\"uid\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"},\"tx_hash\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"},\"tree_size\":{\"type\":\"integer\",\"minimum\":1}}}}};const pattern21 = new RegExp(\"^0x[0-9a-fA-F]{64}$\", \"u\");function validate25(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate25.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if((((((data.log_id === undefined) && (missing0 = \"log_id\")) || ((data.leaf_index === undefined) && (missing0 = \"leaf_index\"))) || ((data.tree_size === undefined) && (missing0 = \"tree_size\"))) || ((data.root_hash === undefined) && (missing0 = \"root_hash\"))) || ((data.inclusion === undefined) && (missing0 = \"inclusion\"))){validate25.errors = [{instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {if(data.log_id !== undefined){let data0 = data.log_id;const _errs1 = errors;const _errs2 = errors;if(errors === _errs2){if(typeof data0 === \"string\"){if(!pattern9.test(data0)){validate25.errors = [{instancePath:instancePath+\"/log_id\",schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/log_id\",schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.leaf_index !== undefined){let data1 = data.leaf_index;const _errs4 = errors;if(!((typeof data1 == \"number\") && (!(data1 % 1) && !isNaN(data1)))){validate25.errors = [{instancePath:instancePath+\"/leaf_index\",schemaPath:\"#/properties/leaf_index/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs4){if(typeof data1 == \"number\"){if(data1 < 0 || isNaN(data1)){validate25.errors = [{instancePath:instancePath+\"/leaf_index\",schemaPath:\"#/properties/leaf_index/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"}];return false;}}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.tree_size !== undefined){let data2 = data.tree_size;const _errs6 = errors;if(!((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2)))){validate25.errors = [{instancePath:instancePath+\"/tree_size\",schemaPath:\"#/properties/tree_size/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs6){if(typeof data2 == \"number\"){if(data2 < 1 || isNaN(data2)){validate25.errors = [{instancePath:instancePath+\"/tree_size\",schemaPath:\"#/properties/tree_size/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"}];return false;}}}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.root_hash !== undefined){let data3 = data.root_hash;const _errs8 = errors;const _errs9 = errors;if(errors === _errs9){if(typeof data3 === \"string\"){if(!pattern9.test(data3)){validate25.errors = [{instancePath:instancePath+\"/root_hash\",schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/root_hash\",schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.inclusion !== undefined){let data4 = data.inclusion;const _errs11 = errors;if(errors === _errs11){if(Array.isArray(data4)){var valid3 = true;const len0 = data4.length;for(let i0=0; i0<len0; i0++){let data5 = data4[i0];const _errs13 = errors;const _errs14 = errors;if(errors === _errs14){if(typeof data5 === \"string\"){if(!pattern9.test(data5)){validate25.errors = [{instancePath:instancePath+\"/inclusion/\" + i0,schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/inclusion/\" + i0,schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid3 = _errs13 === errors;if(!valid3){break;}}}else {validate25.errors = [{instancePath:instancePath+\"/inclusion\",schemaPath:\"#/properties/inclusion/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.anchor !== undefined){let data6 = data.anchor;const _errs16 = errors;if(errors === _errs16){if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){let missing1;if((((((data6.chain === undefined) && (missing1 = \"chain\")) || ((data6.scheme === undefined) && (missing1 = \"scheme\"))) || ((data6.uid === undefined) && (missing1 = \"uid\"))) || ((data6.tx_hash === undefined) && (missing1 = \"tx_hash\"))) || ((data6.tree_size === undefined) && (missing1 = \"tree_size\"))){validate25.errors = [{instancePath:instancePath+\"/anchor\",schemaPath:\"#/properties/anchor/required\",keyword:\"required\",params:{missingProperty: missing1},message:\"must have required property '\"+missing1+\"'\"}];return false;}else {if(data6.chain !== undefined){const _errs18 = errors;if(typeof data6.chain !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/anchor/chain\",schemaPath:\"#/properties/anchor/properties/chain/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid5 = _errs18 === errors;}else {var valid5 = true;}if(valid5){if(data6.scheme !== undefined){const _errs20 = errors;if(\"eas\" !== data6.scheme){validate25.errors = [{instancePath:instancePath+\"/anchor/scheme\",schemaPath:\"#/properties/anchor/properties/scheme/const\",keyword:\"const\",params:{allowedValue: \"eas\"},message:\"must be equal to constant\"}];return false;}var valid5 = _errs20 === errors;}else {var valid5 = true;}if(valid5){if(data6.uid !== undefined){let data9 = data6.uid;const _errs21 = errors;if(errors === _errs21){if(typeof data9 === \"string\"){if(!pattern21.test(data9)){validate25.errors = [{instancePath:instancePath+\"/anchor/uid\",schemaPath:\"#/properties/anchor/properties/uid/pattern\",keyword:\"pattern\",params:{pattern: \"^0x[0-9a-fA-F]{64}$\"},message:\"must match pattern \\\"\"+\"^0x[0-9a-fA-F]{64}$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/anchor/uid\",schemaPath:\"#/properties/anchor/properties/uid/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid5 = _errs21 === errors;}else {var valid5 = true;}if(valid5){if(data6.tx_hash !== undefined){let data10 = data6.tx_hash;const _errs23 = errors;if(errors === _errs23){if(typeof data10 === \"string\"){if(!pattern21.test(data10)){validate25.errors = [{instancePath:instancePath+\"/anchor/tx_hash\",schemaPath:\"#/properties/anchor/properties/tx_hash/pattern\",keyword:\"pattern\",params:{pattern: \"^0x[0-9a-fA-F]{64}$\"},message:\"must match pattern \\\"\"+\"^0x[0-9a-fA-F]{64}$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/anchor/tx_hash\",schemaPath:\"#/properties/anchor/properties/tx_hash/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid5 = _errs23 === errors;}else {var valid5 = true;}if(valid5){if(data6.tree_size !== undefined){let data11 = data6.tree_size;const _errs25 = errors;if(!((typeof data11 == \"number\") && (!(data11 % 1) && !isNaN(data11)))){validate25.errors = [{instancePath:instancePath+\"/anchor/tree_size\",schemaPath:\"#/properties/anchor/properties/tree_size/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs25){if(typeof data11 == \"number\"){if(data11 < 1 || isNaN(data11)){validate25.errors = [{instancePath:instancePath+\"/anchor/tree_size\",schemaPath:\"#/properties/anchor/properties/tree_size/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"}];return false;}}}var valid5 = _errs25 === errors;}else {var valid5 = true;}}}}}}}else {validate25.errors = [{instancePath:instancePath+\"/anchor\",schemaPath:\"#/properties/anchor/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid0 = _errs16 === errors;}else {var valid0 = true;}}}}}}}}else {validate25.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate25.errors = vErrors;return errors === 0;}validate25.evaluated = {\"props\":{\"log_id\":true,\"leaf_index\":true,\"tree_size\":true,\"root_hash\":true,\"inclusion\":true,\"anchor\":true},\"dynamicProps\":false,\"dynamicItems\":false};function validate20(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL=\"urn:poaw:schema:0.1:receipt\" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if(((data.body === undefined) && (missing0 = \"body\")) || ((data.signature === undefined) && (missing0 = \"signature\"))){validate20.errors = [{instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === \"body\") || (key0 === \"signature\")) || (key0 === \"proof\"))){validate20.errors = [{instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"}];return false;break;}}if(_errs1 === errors){if(data.body !== undefined){const _errs2 = errors;if(!(validate21(data.body, {instancePath:instancePath+\"/body\",parentData:data,parentDataProperty:\"body\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.signature !== undefined){const _errs3 = errors;if(!(validate23(data.signature, {instancePath:instancePath+\"/signature\",parentData:data,parentDataProperty:\"signature\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);errors = vErrors.length;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.proof !== undefined){const _errs4 = errors;if(!(validate25(data.proof, {instancePath:instancePath+\"/proof\",parentData:data,parentDataProperty:\"proof\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid0 = _errs4 === errors;}else {var valid0 = true;}}}}}}else {validate20.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};\n","/**\n * Structural validation against the vendored receipt schema (Draft 2020-12), matching\n * `oss/spec/tools/check.py`'s use of `jsonschema.Draft202012Validator`.\n *\n * The validator is precompiled at build time (scripts/build-validator.mjs, ajv \"standalone\"), so nothing is compiled\n * at runtime: no `new Function`, and so it works under a strict Content-Security-Policy without 'unsafe-eval'.\n */\nimport { validate } from \"./generated/receipt-validator.js\";\n\nexport function schemaValid(receipt: unknown): boolean {\n return Boolean(validate(receipt));\n}\n","/**\n * SPEC §8.4: check a receipt's `proof.anchor` (scheme `eas`) against a public JSON-RPC endpoint.\n * Ported from `oss/spec/tools/anchor_check.py`. Any doubt gives `ok: false` — never a pass.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3\";\nimport { b64uDecode, b64u, bytesEqual } from \"./primitives.js\";\nimport { decodeSingleDynamicTupleReturn, decodeTupleWithTrailingDynamic, bytesToHex0x, hexToBytes } from \"./abi.js\";\n\nconst EAS = \"0x4200000000000000000000000000000000000021\"; // OP-stack predeploy (Base mainnet + Base Sepolia)\n\nfunction selector(signature: string): Uint8Array {\n return keccak_256(new TextEncoder().encode(signature)).slice(0, 4);\n}\n\nconst GET_SELECTOR = selector(\"getAttestation(bytes32)\");\nconst ATT_STATIC_KINDS = [\"bytes32\", \"bytes32\", \"uint64\", \"uint64\", \"uint64\", \"bytes32\", \"address\", \"address\", \"bool\"] as const;\nconst DATA_STATIC_KINDS = [\"bytes32\", \"uint64\", \"bytes32\", \"uint64\", \"bytes32\"] as const;\n\nexport interface Proof {\n log_id: string;\n leaf_index: number;\n tree_size: number;\n root_hash: string;\n inclusion: string[];\n anchor?: {\n chain: string;\n scheme: string;\n uid: string;\n tx_hash: string;\n tree_size: number;\n };\n}\n\nexport interface Keyset {\n keys?: Array<{ key_id: string; public_key: string; valid_from: string; revoked_at: string | null }>;\n anchor_addresses?: string[];\n anchor_schemas?: string[];\n}\n\nexport interface AnchorResult {\n ok: boolean;\n reason: string;\n proven_by: number | null;\n}\n\nasync function rpc(url: string, method: string, ...params: unknown[]): Promise<unknown> {\n const res = await fetch(url, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\", \"user-agent\": \"qed-proof-sdk-js/0.1\" },\n body: JSON.stringify({ jsonrpc: \"2.0\", id: 1, method, params }),\n });\n const body = (await res.json()) as { error?: { message?: string }; result?: unknown };\n if (body && body.error) {\n throw new Error(`${method}: ${body.error.message ?? \"rpc error\"}`);\n }\n return body.result;\n}\n\n/** Return {ok, reason, proven_by}. Any doubt → ok false, never a pass. */\nexport async function checkAnchor(proof: Proof, keyset: Keyset, rpcUrl: string): Promise<AnchorResult> {\n const a = proof.anchor;\n if (!a) return { ok: false, reason: \"unknown_scheme\", proven_by: null };\n try {\n if (a.scheme !== \"eas\") return { ok: false, reason: \"unknown_scheme\", proven_by: null };\n\n const chainIdHex = (await rpc(rpcUrl, \"eth_chainId\")) as string;\n const wantChainId = a.chain.split(\":\")[1];\n if (BigInt(chainIdHex) !== BigInt(wantChainId)) {\n return { ok: false, reason: \"rpc_chain_mismatch\", proven_by: null };\n }\n\n const uid = hexToBytes(a.uid);\n const callData = new Uint8Array([...GET_SELECTOR, ...uid]);\n const out = (await rpc(rpcUrl, \"eth_call\", { to: EAS, data: bytesToHex0x(callData) }, \"latest\")) as string;\n const returnData = hexToBytes(out);\n const { statics, dynamic } = decodeSingleDynamicTupleReturn(returnData, [...ATT_STATIC_KINDS], \"bytes\");\n const [uid_, schema, time_, _exp, revokedAt, _ref, _recipient, attester, _revocable] = statics as [\n Uint8Array,\n Uint8Array,\n bigint,\n bigint,\n bigint,\n Uint8Array,\n Uint8Array,\n string,\n boolean,\n ];\n const data = dynamic as Uint8Array;\n\n if (!bytesEqual(uid_, uid) || time_ === 0n) {\n return { ok: false, reason: \"attestation_not_found\", proven_by: null };\n }\n if (revokedAt !== 0n) {\n return { ok: false, reason: \"attestation_revoked\", proven_by: null };\n }\n const attesterLower = (attester as string).toLowerCase();\n const publishedAttesters = new Set((keyset.anchor_addresses ?? []).map((x) => x.toLowerCase()));\n if (!publishedAttesters.has(attesterLower)) {\n return { ok: false, reason: \"attester_not_published\", proven_by: null };\n }\n const schemaHex = \"0x\" + bytesToHex0x(schema).slice(2);\n const publishedSchemas = new Set((keyset.anchor_schemas ?? []).map((x) => x.toLowerCase()));\n if (!publishedSchemas.has(schemaHex.toLowerCase())) {\n return { ok: false, reason: \"schema_not_published\", proven_by: null };\n }\n\n let decodedData: { statics: unknown[]; dynamic: unknown };\n try {\n decodedData = decodeTupleWithTrailingDynamic(data, [...DATA_STATIC_KINDS], \"string\");\n } catch {\n return { ok: false, reason: \"data_undecodable\", proven_by: null };\n }\n const [logId, size, root, _prevSize, _prevRoot] = decodedData.statics as [Uint8Array, bigint, Uint8Array, bigint, Uint8Array];\n\n if (!bytesEqual(logId, b64uDecode(proof.log_id)) || size !== BigInt(a.tree_size)) {\n return { ok: false, reason: \"log_or_size_mismatch\", proven_by: null };\n }\n if (a.tree_size !== proof.tree_size) {\n // this issuer proves at the anchored size\n return { ok: false, reason: \"consistency_proof_required\", proven_by: null };\n }\n if (!bytesEqual(root, b64uDecode(proof.root_hash))) {\n return { ok: false, reason: \"root_mismatch\", proven_by: null };\n }\n return { ok: true, reason: \"anchored\", proven_by: Number(time_) };\n } catch (exc) {\n const name = exc instanceof Error ? exc.constructor.name : \"Error\";\n return { ok: false, reason: `unreadable:${name}`, proven_by: null };\n }\n}\n","/**\n * A tiny hand-written ABI decoder for exactly the two structs SPEC §8.4 needs (ported from\n * `oss/spec/tools/anchor_check.py`, which uses `eth_abi.decode`). Not a general ABI library:\n * it only decodes a tuple of N-1 static 32-byte-word fields followed by one trailing dynamic\n * field (`bytes` or `string`), which is exactly the shape of the EAS `Attestation` struct and\n * its decoded `data` payload.\n */\n\nexport type StaticFieldKind = \"bytes32\" | \"uint64\" | \"address\" | \"bool\";\n\nfunction readWord(data: Uint8Array, wordIndex: number): Uint8Array {\n const start = wordIndex * 32;\n return data.subarray(start, start + 32);\n}\n\nfunction decodeStaticField(word: Uint8Array, kind: StaticFieldKind): Uint8Array | bigint | string | boolean {\n switch (kind) {\n case \"bytes32\":\n return word.slice();\n case \"uint64\": {\n let v = 0n;\n for (let i = 24; i < 32; i++) v = (v << 8n) | BigInt(word[i]);\n return v;\n }\n case \"address\": {\n const bytes = word.subarray(12, 32);\n return \"0x\" + Buffer_toHex(bytes);\n }\n case \"bool\":\n return word[31] !== 0;\n }\n}\n\nfunction Buffer_toHex(bytes: Uint8Array): string {\n let s = \"\";\n for (const b of bytes) s += b.toString(16).padStart(2, \"0\");\n return s;\n}\n\n/**\n * Decodes a tuple made of `staticKinds` (each one 32-byte word), followed by exactly one\n * trailing dynamic field of type `bytes` or `string`. `data` is the tuple's own encoding region\n * (offsets inside it are relative to its start), matching how `eth_abi.decode([_ATT], ...)` and\n * the nested `abi_decode(_DATA, data)` call are used in `anchor_check.py`.\n */\nexport function decodeTupleWithTrailingDynamic(\n data: Uint8Array,\n staticKinds: StaticFieldKind[],\n dynamicKind: \"bytes\" | \"string\",\n): { statics: Array<Uint8Array | bigint | string | boolean>; dynamic: Uint8Array | string } {\n const statics = staticKinds.map((kind, i) => decodeStaticField(readWord(data, i), kind));\n const offsetWord = readWord(data, staticKinds.length);\n let offset = 0n;\n for (const b of offsetWord) offset = (offset << 8n) | BigInt(b);\n const off = Number(offset);\n const lenWord = data.subarray(off, off + 32);\n let len = 0n;\n for (const b of lenWord) len = (len << 8n) | BigInt(b);\n const length = Number(len);\n const raw = data.subarray(off + 32, off + 32 + length);\n const dynamic = dynamicKind === \"string\" ? new TextDecoder().decode(raw) : raw.slice();\n return { statics, dynamic };\n}\n\n/**\n * Decodes the return value of a function whose Solidity signature returns a single dynamic\n * tuple (as `getAttestation(bytes32) returns (Attestation memory)` does): the outer word is an\n * offset to where the tuple's own head+tail encoding begins.\n */\nexport function decodeSingleDynamicTupleReturn(\n returnData: Uint8Array,\n staticKinds: StaticFieldKind[],\n dynamicKind: \"bytes\" | \"string\",\n) {\n const outerOffsetWord = readWord(returnData, 0);\n let outerOffset = 0n;\n for (const b of outerOffsetWord) outerOffset = (outerOffset << 8n) | BigInt(b);\n const tupleStart = Number(outerOffset);\n return decodeTupleWithTrailingDynamic(returnData.subarray(tupleStart), staticKinds, dynamicKind);\n}\n\nexport function bytesToHex0x(bytes: Uint8Array): string {\n return \"0x\" + Buffer_toHex(bytes);\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n const clean = hex.startsWith(\"0x\") ? hex.slice(2) : hex;\n const out = new Uint8Array(clean.length / 2);\n for (let i = 0; i < out.length; i++) out[i] = parseInt(clean.substr(i * 2, 2), 16);\n return out;\n}\n","/**\n * Reference checker for PoAW receipts (SPEC.md §10), ported from `oss/spec/tools/check.py` and\n * `oss/spec/tools/anchor_check.py`. Offline it checks steps 1-4. With `rpcUrl` it also checks the\n * anchor against the chain (§8.4). Any doubt gives a failing check, never a pass.\n */\nimport {\n b64uDecode,\n claimDigest,\n hasFloatValue,\n hasFloatText,\n keyId,\n leafHash,\n rootFromInclusion,\n verifySignature,\n b64u,\n} from \"./primitives.js\";\nimport { schemaValid } from \"./schema.js\";\nimport { checkAnchor, type Keyset, type Proof } from \"./anchor.js\";\n\nexport interface VerifyChecks {\n spec_version: boolean;\n schema: boolean;\n integers_only: boolean;\n key: boolean;\n signature: boolean;\n claim_digest: boolean;\n inclusion: boolean | \"absent\";\n anchor: boolean | \"absent\" | \"not_checked_offline\" | string;\n}\n\nexport interface VerifyReport {\n checks: VerifyChecks;\n valid: boolean;\n verdict: string | null;\n achieved_trust_level: number;\n proven_by?: number | null;\n}\n\nexport interface VerifyOptions {\n keys: Keyset;\n rpcUrl?: string;\n}\n\ninterface ReceiptLike {\n body?: Record<string, unknown>;\n signature?: { key_id?: string; value?: string };\n proof?: Proof;\n [key: string]: unknown;\n}\n\n/**\n * Verify a PoAW receipt. `receipt` may be a parsed object or the raw JSON text — passing the raw\n * text lets the integers-only check catch a float written as e.g. `1.0` (indistinguishable from\n * the integer `1` after `JSON.parse`), matching Python's `json.loads` int/float distinction\n * exactly; a non-integer value like `0.5` is caught either way.\n */\n/**\n * The JSON text each receipt object was parsed from, when the SDK fetched it (`QedProof.getReceipt`). JSON.parse turns\n * `1.0` into `1`, which would hide a float SPEC §3 forbids, so verification reads the original text when it has it.\n * That way a fetched receipt verifies exactly as it does in the Python SDK and the reference checker.\n */\nexport const RECEIPT_TEXT = new WeakMap<object, string>();\n\nexport async function verifyReceipt(receipt: unknown | string, options: VerifyOptions): Promise<VerifyReport> {\n const raw = typeof receipt === \"string\" ? receipt\n : receipt && typeof receipt === \"object\" ? RECEIPT_TEXT.get(receipt as object) : undefined;\n const parsed: ReceiptLike = typeof receipt === \"string\" ? JSON.parse(receipt) : ((receipt as ReceiptLike) ?? {});\n const keyset = options.keys ?? {};\n\n const checks = {} as VerifyChecks;\n\n const body = (parsed && typeof parsed === \"object\" ? parsed.body : undefined) ?? {};\n const version = String((body as Record<string, unknown>).spec_version ?? \"\");\n const parts = version.split(\"/\");\n checks.spec_version = parts[0] === \"poaw\" && (parts[parts.length - 1] ?? \"\").split(\".\")[0] === \"0\";\n\n checks.schema = schemaValid(parsed);\n\n const integerFail = raw !== undefined ? hasFloatText(raw) : hasFloatValue(parsed);\n checks.integers_only = !integerFail;\n\n const sig = (parsed && typeof parsed === \"object\" ? parsed.signature : undefined) ?? ({} as ReceiptLike[\"signature\"]);\n const keys = keyset.keys ?? [];\n const key = keys.find((k) => k.key_id === sig?.key_id);\n const issued = String((body as Record<string, unknown>).issued_at ?? \"\");\n const issuer = (body as Record<string, unknown>).issuer as { key_id?: string } | undefined;\n\n let keyOk = false;\n if (key && sig?.key_id === issuer?.key_id) {\n try {\n const computedKeyId = keyId(b64uDecode(key.public_key));\n keyOk =\n computedKeyId === key.key_id &&\n key.valid_from <= issued &&\n (key.revoked_at === null || key.revoked_at === undefined || issued < key.revoked_at);\n } catch {\n keyOk = false;\n }\n }\n checks.key = keyOk;\n\n let sigOk = false;\n if (keyOk && key) {\n try {\n sigOk = verifySignature(b64uDecode(key.public_key), body, sig?.value ?? \"\");\n } catch {\n sigOk = false;\n }\n }\n checks.signature = sigOk;\n\n const claim = (body as Record<string, unknown>).claim;\n checks.claim_digest =\n Boolean(claim) &&\n typeof claim === \"object\" &&\n (claim as Record<string, unknown>).claim_digest === claimDigest(claim as Record<string, unknown>);\n\n const proof = parsed && typeof parsed === \"object\" ? parsed.proof : undefined;\n let provenBy: number | null | undefined;\n if (!proof) {\n checks.inclusion = \"absent\";\n } else {\n const root = rootFromInclusion(\n proof.leaf_index,\n proof.tree_size,\n leafHash({ body: (parsed as ReceiptLike).body, signature: (parsed as ReceiptLike).signature }),\n proof.inclusion.map((h) => b64uDecode(h)),\n );\n checks.inclusion = root !== null && b64u(root) === proof.root_hash;\n }\n\n if (!(proof && proof.anchor)) {\n checks.anchor = \"absent\";\n } else if (!options.rpcUrl) {\n checks.anchor = \"not_checked_offline\";\n } else {\n const a = await checkAnchor(proof, keyset, options.rpcUrl);\n checks.anchor = a.ok ? true : a.reason;\n provenBy = a.proven_by;\n }\n\n const required: Array<keyof VerifyChecks> = [\n \"spec_version\",\n \"schema\",\n \"integers_only\",\n \"key\",\n \"signature\",\n \"claim_digest\",\n ];\n const valid = required.every((k) => checks[k] === true) && (checks.inclusion === true || checks.inclusion === \"absent\");\n\n const achievedTrustLevel = valid ? (checks.inclusion === true && checks.anchor === true ? 2 : 1) : 0;\n const verdictValue = (body as Record<string, unknown>).verdict as { value?: string } | undefined;\n const verdict = valid ? (verdictValue?.value ?? null) : null;\n\n const report: VerifyReport = {\n checks,\n valid,\n verdict: verdict ?? null,\n achieved_trust_level: achievedTrustLevel,\n };\n if (provenBy !== undefined) {\n report.proven_by = provenBy;\n }\n return report;\n}\n","/**\n * The HTTP client. Shapes follow `oss/node/src/poaw_node/app.py`, `models.py` (`ClaimIn`) and\n * `store.py` (`claim_status`). Uses only `fetch` — no Node built-ins — so it runs on Node, Deno\n * and in browsers.\n */\nimport type { ClaimAction } from \"./actions.js\";\nimport { QedProofError, RateLimitError } from \"./errors.js\";\nimport { RECEIPT_TEXT, verifyReceipt, type VerifyReport } from \"./verify.js\";\nimport type { Keyset } from \"./anchor.js\";\n\nexport interface QedProofOptions {\n apiKey?: string;\n baseUrl?: string;\n fetch?: typeof fetch;\n}\n\nexport interface SubmitClaimOptions {\n agentId: string;\n clientClaimId?: string;\n claimedAt?: string | Date;\n}\n\nexport interface ClaimStatus {\n claim_id: string;\n created?: boolean;\n state: \"queued\" | \"decided\";\n attempts: number;\n receipt_id: string | null;\n verdict: string | null;\n}\n\nexport interface WaitOptions {\n timeoutMs?: number;\n pollIntervalMs?: number;\n}\n\nexport interface Receipt {\n body: Record<string, unknown>;\n signature: Record<string, unknown>;\n proof?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\nexport interface ClaimSummary {\n claim_id: string;\n state: string;\n attempts: number;\n receipt_id: string | null;\n verdict: string | null;\n}\n\nexport interface ListClaimsOptions {\n limit?: number;\n cursor?: string;\n agentId?: string;\n action?: string;\n verdict?: string;\n state?: string;\n}\n\nexport interface ClaimPage {\n claims: ClaimSummary[];\n nextCursor: string | null;\n}\n\nconst LIST_CLAIMS_DEFAULT_LIMIT = 50;\nconst LIST_CLAIMS_MIN_LIMIT = 1;\nconst LIST_CLAIMS_MAX_LIMIT = 200;\n\nconst DEFAULT_BASE_URL = \"https://api.qedproof.site\";\n\nfunction isoNow(): string {\n return new Date().toISOString();\n}\n\nexport class QedProof {\n private readonly apiKey?: string;\n private readonly baseUrl: string;\n private readonly fetchImpl: typeof fetch;\n\n constructor(options: QedProofOptions = {}) {\n this.apiKey = options.apiKey;\n this.baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, \"\");\n this.fetchImpl = options.fetch ?? globalThis.fetch;\n if (!this.fetchImpl) {\n throw new Error(\"QedProof: no fetch implementation available; pass { fetch } explicitly\");\n }\n }\n\n private async request(\n method: string,\n path: string,\n { auth = true, body, text = false }: { auth?: boolean; body?: unknown; text?: boolean } = {},\n ): Promise<unknown> {\n const headers: Record<string, string> = { accept: \"application/json\" };\n if (body !== undefined) headers[\"content-type\"] = \"application/json\";\n if (auth) {\n if (!this.apiKey) {\n throw new QedProofError(401, \"no API key configured\");\n }\n headers[\"authorization\"] = `Bearer ${this.apiKey}`;\n }\n let res: Response;\n try {\n res = await this.fetchImpl(`${this.baseUrl}${path}`, {\n method,\n headers,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n } catch (exc) {\n // Never let a network failure leak the key: the message here never includes `this.apiKey`.\n throw new QedProofError(0, `network error: ${exc instanceof Error ? exc.message : String(exc)}`);\n }\n\n if (res.status === 429) {\n const retryAfterHeader = res.headers.get(\"retry-after\");\n const retryAfter = retryAfterHeader ? Number(retryAfterHeader) : undefined;\n let detail = \"rate limit exceeded\";\n try {\n const parsed = (await res.json()) as { detail?: string };\n if (parsed?.detail) detail = parsed.detail;\n } catch {\n // ignore body parse failure, keep default detail\n }\n throw new RateLimitError(detail, Number.isFinite(retryAfter) ? retryAfter : undefined);\n }\n\n if (!res.ok) {\n let detail = res.statusText;\n try {\n const parsed = (await res.json()) as { detail?: string };\n if (parsed?.detail) detail = parsed.detail;\n } catch {\n // ignore body parse failure, keep statusText\n }\n throw new QedProofError(res.status, detail);\n }\n\n if (res.status === 204) return undefined;\n if (text) return res.text();\n return res.json();\n }\n\n async submitClaim(claim: ClaimAction, options: SubmitClaimOptions): Promise<ClaimStatus> {\n const claimedAt = options.claimedAt instanceof Date ? options.claimedAt.toISOString() : (options.claimedAt ?? isoNow());\n const body = {\n client_claim_id: options.clientClaimId ?? cryptoRandomId(),\n agent_id: options.agentId,\n action: claim.action,\n target: claim.target,\n params: claim.params,\n claimed_at: claimedAt,\n };\n return (await this.request(\"POST\", \"/v1/claims\", { body })) as ClaimStatus;\n }\n\n async getClaim(claimId: string): Promise<ClaimStatus> {\n return (await this.request(\"GET\", `/v1/claims/${encodeURIComponent(claimId)}`)) as ClaimStatus;\n }\n\n async waitForVerdict(claimId: string, options: WaitOptions = {}): Promise<ClaimStatus> {\n const timeoutMs = options.timeoutMs ?? 120_000;\n const pollIntervalMs = options.pollIntervalMs ?? 2_000;\n const deadline = Date.now() + timeoutMs;\n for (;;) {\n let wait = pollIntervalMs;\n try {\n const status = await this.getClaim(claimId);\n if (status.state === \"decided\") return status;\n } catch (exc) {\n if (exc instanceof RateLimitError && exc.retryAfter !== undefined) {\n wait = Math.max(wait, exc.retryAfter * 1000);\n } else {\n throw exc;\n }\n }\n if (Date.now() >= deadline) {\n throw new QedProofError(408, `timed out after ${timeoutMs}ms waiting for claim ${claimId} to decide`);\n }\n await sleep(Math.min(wait, Math.max(0, deadline - Date.now())));\n }\n }\n\n /**\n * `GET /v1/claims`, newest first. `options.limit` (1-200, default 50) is validated locally —\n * out of range throws a `RangeError` before any request is made.\n */\n async listClaims(options: ListClaimsOptions = {}): Promise<ClaimPage> {\n const limit = options.limit ?? LIST_CLAIMS_DEFAULT_LIMIT;\n if (limit < LIST_CLAIMS_MIN_LIMIT || limit > LIST_CLAIMS_MAX_LIMIT) {\n throw new RangeError(`limit must be between ${LIST_CLAIMS_MIN_LIMIT} and ${LIST_CLAIMS_MAX_LIMIT}, got ${limit}`);\n }\n const query: Record<string, string> = { limit: String(limit) };\n if (options.cursor !== undefined) query.cursor = options.cursor;\n if (options.agentId !== undefined) query.agent_id = options.agentId;\n if (options.action !== undefined) query.action = options.action;\n if (options.verdict !== undefined) query.verdict = options.verdict;\n if (options.state !== undefined) query.state = options.state;\n const qs = new URLSearchParams(query).toString();\n const data = (await this.request(\"GET\", `/v1/claims?${qs}`)) as { claims: ClaimSummary[]; next_cursor: string | null };\n return { claims: data.claims, nextCursor: data.next_cursor };\n }\n\n /** Yields every claim matching the filters, following `nextCursor` until exhausted. */\n async *iterClaims(options: Omit<ListClaimsOptions, \"cursor\" | \"limit\"> & { pageSize?: number } = {}): AsyncGenerator<ClaimSummary> {\n const { pageSize, ...filters } = options;\n let cursor: string | undefined;\n for (;;) {\n const page = await this.listClaims({ ...filters, limit: pageSize, cursor });\n yield* page.claims;\n if (page.nextCursor === null) return;\n cursor = page.nextCursor;\n }\n }\n\n /** Receipts are designed to be shared and checked by anyone (SPEC §1): no Authorization header. */\n async getReceipt(receiptId: string): Promise<Receipt> {\n const text = (await this.request(\"GET\", `/v1/receipts/${encodeURIComponent(receiptId)}`, { auth: false, text: true })) as string;\n const receipt = JSON.parse(text) as Receipt;\n RECEIPT_TEXT.set(receipt as object, text);\n return receipt;\n }\n\n /** Public by design: `/.well-known/poaw-keys.json` (SPEC §5.2, §8.4). */\n async getKeys(): Promise<Keyset> {\n return (await this.request(\"GET\", \"/.well-known/poaw-keys.json\", { auth: false })) as Keyset;\n }\n\n async verify(receipt: unknown | string, options: { keys?: Keyset; rpcUrl?: string } = {}): Promise<VerifyReport> {\n const keys = options.keys ?? (await this.getKeys());\n return verifyReceipt(receipt, { keys, rpcUrl: options.rpcUrl });\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction cryptoRandomId(): string {\n const g = globalThis as { crypto?: { randomUUID?: () => string } };\n if (g.crypto?.randomUUID) return g.crypto.randomUUID();\n return `claim-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n}\n","/**\n * Typed helpers for the five live actions plus `http.url.status`, matching the wire shape the\n * node's verifiers expect (`oss/spec/profiles/*.md`, `oss/node/src/poaw_node/verifiers/*.py`).\n * Validation here is cheap and local — it never calls the network — but it fails fast with a\n * clear message before the claim is submitted, since params are copied into public receipts.\n */\n\nexport interface ClaimAction {\n action: string;\n target: string;\n params: Record<string, unknown>;\n}\n\nconst REPO_RE = /^[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+$/;\nconst SHA_RE = /^[0-9a-f]{40}$/;\nconst HANDLE_RE = /^@[A-Za-z0-9_]{1,15}$/;\nconst POST_ID_RE = /^[0-9]{1,20}$/;\nconst HEX64_RE = /^[0-9a-f]{64}$/;\nconst SLACK_TARGET_RE = /^slack:\\/\\/(T[A-Z0-9]{2,20})\\/([CG][A-Z0-9]{2,20})$/;\nconst SLACK_TS_RE = /^[0-9]{10}\\.[0-9]{6}$/;\n\nfunction assert(condition: unknown, message: string): asserts condition {\n if (!condition) throw new TypeError(message);\n}\n\nexport function githubCommitPush(input: { target: string; sha: string; branch: string }): ClaimAction {\n assert(REPO_RE.test(input.target), \"githubCommitPush: target must be 'owner/repo'\");\n assert(SHA_RE.test(input.sha), \"githubCommitPush: sha must be 40 lowercase hex characters\");\n assert(input.branch && input.branch.length > 0, \"githubCommitPush: branch is required\");\n return { action: \"github.commit.push\", target: input.target, params: { sha: input.sha, branch: input.branch } };\n}\n\nexport function githubPrOpen(input: { target: string; number: number; base?: string; headSha?: string }): ClaimAction {\n assert(REPO_RE.test(input.target), \"githubPrOpen: target must be 'owner/repo'\");\n assert(Number.isInteger(input.number) && input.number >= 1, \"githubPrOpen: number must be a positive integer\");\n if (input.headSha !== undefined) {\n assert(SHA_RE.test(input.headSha), \"githubPrOpen: headSha must be 40 lowercase hex characters\");\n }\n const params: Record<string, unknown> = { number: input.number };\n if (input.base !== undefined) params.base = input.base;\n if (input.headSha !== undefined) params.head_sha = input.headSha;\n return { action: \"github.pr.open\", target: input.target, params };\n}\n\nexport function githubChecksPass(input: { target: string; sha: string }): ClaimAction {\n assert(REPO_RE.test(input.target), \"githubChecksPass: target must be 'owner/repo'\");\n assert(SHA_RE.test(input.sha), \"githubChecksPass: sha must be 40 lowercase hex characters\");\n return { action: \"github.checks.pass\", target: input.target, params: { sha: input.sha } };\n}\n\nexport function xPostPublish(input: { target: string; postId: string; textSha256?: string }): ClaimAction {\n assert(HANDLE_RE.test(input.target), \"xPostPublish: target must be an @handle\");\n assert(POST_ID_RE.test(input.postId), \"xPostPublish: postId must be digits\");\n if (input.textSha256 !== undefined) {\n assert(HEX64_RE.test(input.textSha256), \"xPostPublish: textSha256 must be 64 lowercase hex characters\");\n }\n const params: Record<string, unknown> = { post_id: input.postId };\n if (input.textSha256 !== undefined) params.text_sha256 = input.textSha256;\n return { action: \"x.post.publish\", target: input.target, params };\n}\n\nexport function slackMessagePost(input: { target: string; ts: string; textSha256?: string }): ClaimAction {\n assert(SLACK_TARGET_RE.test(input.target), \"slackMessagePost: target must be slack://<team_id>/<channel_id>\");\n assert(SLACK_TS_RE.test(input.ts), \"slackMessagePost: ts must match ^[0-9]{10}\\\\.[0-9]{6}$\");\n if (input.textSha256 !== undefined) {\n assert(HEX64_RE.test(input.textSha256), \"slackMessagePost: textSha256 must be 64 lowercase hex characters\");\n }\n const params: Record<string, unknown> = { ts: input.ts };\n if (input.textSha256 !== undefined) params.text_sha256 = input.textSha256;\n return { action: \"slack.message.post\", target: input.target, params };\n}\n\nexport function httpUrlStatus(input: { target: string; status?: number; contentFingerprint?: string }): ClaimAction {\n let url: URL;\n try {\n url = new URL(input.target);\n } catch {\n throw new TypeError(\"httpUrlStatus: target must be a valid URL\");\n }\n assert(url.protocol === \"https:\", \"httpUrlStatus: target must be an https:// URL\");\n const params: Record<string, unknown> = {};\n if (input.status !== undefined) {\n assert(Number.isInteger(input.status), \"httpUrlStatus: status must be an integer\");\n params.status = input.status;\n }\n if (input.contentFingerprint !== undefined) params.content_fingerprint = input.contentFingerprint;\n return { action: \"http.url.status\", target: input.target, params };\n}\n"],"mappings":"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","names":["canonicalizeJcs","nobleSha256"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/errors.ts","../src/primitives.ts","../src/generated/receipt-validator.js","../src/schema.ts","../src/anchor.ts","../src/abi.ts","../src/verify.ts","../src/client.ts","../src/actions.ts"],"sourcesContent":["export { QedProof } from \"./client.js\";\nexport type {\n QedProofOptions,\n SubmitClaimOptions,\n ClaimStatus,\n WaitOptions,\n Receipt,\n ClaimSummary,\n ListClaimsOptions,\n ClaimPage,\n} from \"./client.js\";\nexport { QedProofError, RateLimitError } from \"./errors.js\";\nexport { verifyReceipt } from \"./verify.js\";\nexport type { VerifyReport, VerifyChecks, VerifyOptions } from \"./verify.js\";\nexport type { Keyset, Proof, AnchorResult } from \"./anchor.js\";\nexport * as actions from \"./actions.js\";\nexport type { ClaimAction } from \"./actions.js\";\nexport {\n b64u,\n b64uDecode,\n jcs,\n sha256,\n keyId,\n claimDigest,\n leafHash,\n rootFromInclusion,\n verifySignature,\n hasFloatValue,\n hasFloatText,\n SPEC_VERSION,\n SIG_DOMAIN,\n} from \"./primitives.js\";\nexport type { PoAWReceiptPoaw01 as GeneratedReceipt } from \"./generated/receipt.js\";\n","export class QedProofError extends Error {\n status: number;\n detail: string;\n\n constructor(status: number, detail: string) {\n super(`QedProof API error ${status}: ${detail}`);\n this.name = \"QedProofError\";\n this.status = status;\n this.detail = detail;\n }\n}\n\nexport class RateLimitError extends QedProofError {\n retryAfter: number | undefined;\n\n constructor(detail: string, retryAfter: number | undefined) {\n super(429, detail);\n this.name = \"RateLimitError\";\n this.retryAfter = retryAfter;\n }\n}\n","/**\n * poaw_core, ported (SPEC.md §3, §5, §8). Deliberately small and dependency-light, mirroring\n * `oss/core-python/src/poaw_core/__init__.py` byte for byte in intent. No Node built-ins: only\n * Web Crypto-free pure JS (`@noble/curves`, `@noble/hashes`, `canonicalize`) so this runs on\n * Node, Deno and in browsers.\n */\nimport { ed25519 } from \"@noble/curves/ed25519\";\nimport { sha256 as nobleSha256 } from \"@noble/hashes/sha2\";\nimport canonicalizeJcs from \"canonicalize\";\n\nexport const SPEC_VERSION = \"poaw/0.1\";\nexport const SIG_DOMAIN = new TextEncoder().encode(\"POAW-RECEIPT-V0\\n\");\n\n// --- encoding (§3) -----------------------------------------------------------------------------\n\nexport function b64u(data: Uint8Array): string {\n let binary = \"\";\n for (let i = 0; i < data.length; i++) binary += String.fromCharCode(data[i]);\n const base64 = btoa(binary);\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\n\nexport function b64uDecode(text: string): Uint8Array {\n const padded = text + \"=\".repeat((4 - (text.length % 4)) % 4);\n const base64 = padded.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const binary = atob(base64);\n const out = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) out[i] = binary.charCodeAt(i);\n return out;\n}\n\n/** RFC 8785 JCS, as UTF-8 bytes (matches Python's `rfc8785.dumps`, which returns bytes). */\nexport function jcs(obj: unknown): Uint8Array {\n const text = canonicalizeJcs(obj as object);\n if (text === undefined) {\n throw new TypeError(\"jcs: value is not JSON-serializable\");\n }\n return new TextEncoder().encode(text);\n}\n\nexport function sha256(data: Uint8Array): Uint8Array {\n return nobleSha256(data);\n}\n\nfunction concatBytes(...parts: Uint8Array[]): Uint8Array {\n const total = parts.reduce((n, p) => n + p.length, 0);\n const out = new Uint8Array(total);\n let offset = 0;\n for (const p of parts) {\n out.set(p, offset);\n offset += p.length;\n }\n return out;\n}\n\n/**\n * §3: receipts carry integers only. JSON.parse collapses the int/float distinction Python's\n * `json.loads` preserves (e.g. `1.0` parses to the same JS number as `1`), so this checks two\n * ways:\n * - `hasFloatValue`: any value that is a non-integer finite number (catches every float that\n * actually matters, e.g. `0.5` in vector 014-float-in-body.json).\n * - `hasFloatText`: scans the raw JSON text (outside string literals) for a numeric token\n * containing `.`, `e` or `E` — the same signal Python's tokenizer used to decide `float` vs\n * `int`, for callers that still have the original text (files, HTTP bodies).\n * `verifyReceipt` OR's both when raw text is available, so nothing is hidden by `JSON.parse`.\n */\nexport function hasFloatValue(value: unknown): boolean {\n if (typeof value === \"boolean\") return false;\n if (typeof value === \"number\") return !Number.isInteger(value);\n if (Array.isArray(value)) return value.some(hasFloatValue);\n if (value !== null && typeof value === \"object\") {\n return Object.values(value as Record<string, unknown>).some(hasFloatValue);\n }\n return false;\n}\n\nexport function hasFloatText(text: string): boolean {\n let i = 0;\n const n = text.length;\n while (i < n) {\n const ch = text[i];\n if (ch === '\"') {\n i++;\n while (i < n) {\n if (text[i] === \"\\\\\") {\n i += 2;\n continue;\n }\n if (text[i] === '\"') {\n i++;\n break;\n }\n i++;\n }\n continue;\n }\n if (ch === \"-\" || (ch >= \"0\" && ch <= \"9\")) {\n const start = i;\n if (ch === \"-\") i++;\n let sawFloatChar = false;\n while (i < n && text[i] >= \"0\" && text[i] <= \"9\") i++;\n if (text[i] === \".\") {\n sawFloatChar = true;\n i++;\n while (i < n && text[i] >= \"0\" && text[i] <= \"9\") i++;\n }\n if (text[i] === \"e\" || text[i] === \"E\") {\n sawFloatChar = true;\n i++;\n if (text[i] === \"+\" || text[i] === \"-\") i++;\n while (i < n && text[i] >= \"0\" && text[i] <= \"9\") i++;\n }\n if (i === start) i++; // safety, should not happen\n if (sawFloatChar) return true;\n continue;\n }\n i++;\n }\n return false;\n}\n\n// --- keys + signatures (§5) ---------------------------------------------------------------------\n\nexport function keyId(pkRaw: Uint8Array): string {\n return \"ed25519:\" + b64u(sha256(pkRaw));\n}\n\nexport function verifySignature(pkRaw: Uint8Array, body: unknown, sigValue: string): boolean {\n try {\n const sig = b64uDecode(sigValue);\n const message = concatBytes(SIG_DOMAIN, jcs(body));\n return ed25519.verify(sig, message, pkRaw);\n } catch {\n return false;\n }\n}\n\nexport function claimDigest(claim: Record<string, unknown>): string {\n const stripped: Record<string, unknown> = {};\n for (const k of Object.keys(claim)) {\n if (k !== \"claim_digest\") stripped[k] = claim[k];\n }\n return b64u(sha256(jcs(stripped)));\n}\n\n// --- Merkle log, RFC 6962 (§8) ------------------------------------------------------------------\n\nexport function leafHash(receipt: { body: unknown; signature: unknown }): Uint8Array {\n return sha256(concatBytes(new Uint8Array([0x00]), jcs({ body: receipt.body, signature: receipt.signature })));\n}\n\nfunction nodeHash(left: Uint8Array, right: Uint8Array): Uint8Array {\n return sha256(concatBytes(new Uint8Array([0x01]), left, right));\n}\n\n/** Largest power of two strictly less than n (RFC 6962 §2.1). */\nfunction split(n: number): number {\n let k = 1;\n while (k << 1 < n) k <<= 1;\n return k;\n}\n\nfunction bytesEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;\n return true;\n}\n\n/**\n * RFC 9162 §2.1.3.2 audit-path verification. Returns the computed root, or null if the path is\n * malformed. Ported line for line from `poaw_core.root_from_inclusion`.\n */\nexport function rootFromInclusion(\n index: number,\n size: number,\n leaf: Uint8Array,\n path: Uint8Array[],\n): Uint8Array | null {\n if (index >= size) return null;\n let fn = index;\n let sn = size - 1;\n let r = leaf;\n for (const p of path) {\n if (sn === 0) return null;\n if ((fn & 1) === 1 || fn === sn) {\n r = nodeHash(p, r);\n if ((fn & 1) === 0) {\n while (fn !== 0 && (fn & 1) === 0) {\n fn >>= 1;\n sn >>= 1;\n }\n }\n } else {\n r = nodeHash(r, p);\n }\n fn >>= 1;\n sn >>= 1;\n }\n return sn === 0 ? r : null;\n}\n\nexport { bytesEqual };\n","// @ts-nocheck\n/* eslint-disable */\n// Generated by scripts/build-validator.mjs from ../../../src/receipt.schema.json. Do not edit by hand.\n\"use strict\";function ucs2length(str) { const len = str.length; let length = 0; let pos = 0; let value; while (pos < len) { length++; value = str.charCodeAt(pos++); if (value >= 0xd800 && value <= 0xdbff && pos < len) { value = str.charCodeAt(pos); if ((value & 0xfc00) === 0xdc00) pos++; } } return length; }export const validate = validate20;export default validate20;const schema31 = {\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"$id\":\"urn:poaw:schema:0.1:receipt\",\"title\":\"PoAW receipt (poaw/0.1)\",\"description\":\"Structural schema for a Proof of Agent Work receipt. Signature, inclusion and anchor checks are defined in SPEC.md and are not expressible in JSON Schema.\",\"type\":\"object\",\"required\":[\"body\",\"signature\"],\"additionalProperties\":false,\"properties\":{\"body\":{\"$ref\":\"#/$defs/body\"},\"signature\":{\"$ref\":\"#/$defs/signature\"},\"proof\":{\"$ref\":\"#/$defs/proof\"}},\"$defs\":{\"timestamp\":{\"type\":\"string\",\"pattern\":\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},\"b64url\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]+$\"},\"keyId\":{\"type\":\"string\",\"pattern\":\"^ed25519:[A-Za-z0-9_-]{43}$\"},\"fingerprint\":{\"type\":\"string\",\"pattern\":\"^sha256:[A-Za-z0-9_-]{43}$\"},\"action\":{\"type\":\"string\",\"pattern\":\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"},\"verdictValue\":{\"enum\":[\"verified\",\"late\",\"mismatch\",\"failed\",\"unverifiable\"]},\"reasonCode\":{\"enum\":[\"not_found\",\"content_mismatch\",\"target_mismatch\",\"observed_after_tolerance\",\"no_connection\",\"permission_denied\",\"rate_limited\",\"destination_unavailable\",\"unsupported_action\",\"claim_ambiguous\",\"verifier_error\"]},\"body\":{\"type\":\"object\",\"required\":[\"spec_version\",\"receipt_id\",\"issued_at\",\"issuer\",\"agent\",\"claim\",\"observation\",\"verdict\",\"trust_level\"],\"properties\":{\"spec_version\":{\"const\":\"poaw/0.1\"},\"receipt_id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"issued_at\":{\"$ref\":\"#/$defs/timestamp\"},\"issuer\":{\"type\":\"object\",\"required\":[\"key_id\"],\"properties\":{\"key_id\":{\"$ref\":\"#/$defs/keyId\"},\"name\":{\"type\":\"string\",\"maxLength\":128}}},\"agent\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"erc8004\":{\"type\":\"object\",\"required\":[\"chain\",\"registry\",\"agent_id\"],\"properties\":{\"chain\":{\"type\":\"string\",\"pattern\":\"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\"},\"registry\":{\"type\":\"string\"},\"agent_id\":{\"type\":\"string\"}}}}},\"operator\":{\"type\":\"string\",\"maxLength\":256},\"claim\":{\"type\":\"object\",\"required\":[\"action\",\"target\",\"params\",\"claimed_at\",\"claim_digest\"],\"properties\":{\"action\":{\"$ref\":\"#/$defs/action\"},\"target\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":512},\"params\":{\"type\":\"object\"},\"claimed_at\":{\"$ref\":\"#/$defs/timestamp\"},\"client_claim_id\":{\"type\":\"string\",\"maxLength\":256},\"claim_digest\":{\"$ref\":\"#/$defs/b64url\"}}},\"observation\":{\"type\":\"object\",\"required\":[\"verifier\",\"observed_at\",\"deadline_at\",\"attempts\",\"facts\"],\"properties\":{\"verifier\":{\"type\":\"object\",\"required\":[\"id\",\"version\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/action\"},\"version\":{\"type\":\"string\",\"pattern\":\"^\\\\d+$\"},\"code_hash\":{\"$ref\":\"#/$defs/fingerprint\"}}},\"observed_at\":{\"$ref\":\"#/$defs/timestamp\"},\"deadline_at\":{\"$ref\":\"#/$defs/timestamp\"},\"attempts\":{\"type\":\"integer\",\"minimum\":1},\"facts\":{\"type\":\"object\"}}},\"verdict\":{\"type\":\"object\",\"required\":[\"value\"],\"properties\":{\"value\":{\"$ref\":\"#/$defs/verdictValue\"},\"reason_code\":{\"$ref\":\"#/$defs/reasonCode\"}},\"if\":{\"properties\":{\"value\":{\"const\":\"unverifiable\"}}},\"then\":{\"required\":[\"value\",\"reason_code\"]}},\"trust_level\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":4},\"attestation\":{\"type\":\"object\",\"required\":[\"type\",\"document\"],\"properties\":{\"type\":{\"type\":\"string\"},\"document\":{\"$ref\":\"#/$defs/b64url\"}}},\"supersedes\":{\"type\":\"string\"}},\"if\":{\"properties\":{\"trust_level\":{\"minimum\":3}}},\"then\":{\"required\":[\"attestation\"],\"properties\":{\"observation\":{\"properties\":{\"verifier\":{\"required\":[\"id\",\"version\",\"code_hash\"]}}}}}},\"signature\":{\"type\":\"object\",\"required\":[\"alg\",\"key_id\",\"value\"],\"additionalProperties\":false,\"properties\":{\"alg\":{\"const\":\"Ed25519\"},\"key_id\":{\"$ref\":\"#/$defs/keyId\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]{86}$\"}}},\"proof\":{\"type\":\"object\",\"required\":[\"log_id\",\"leaf_index\",\"tree_size\",\"root_hash\",\"inclusion\"],\"properties\":{\"log_id\":{\"$ref\":\"#/$defs/b64url\"},\"leaf_index\":{\"type\":\"integer\",\"minimum\":0},\"tree_size\":{\"type\":\"integer\",\"minimum\":1},\"root_hash\":{\"$ref\":\"#/$defs/b64url\"},\"inclusion\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/b64url\"}},\"anchor\":{\"type\":\"object\",\"required\":[\"chain\",\"scheme\",\"uid\",\"tx_hash\",\"tree_size\"],\"properties\":{\"chain\":{\"type\":\"string\"},\"scheme\":{\"const\":\"eas\"},\"uid\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"},\"tx_hash\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"},\"tree_size\":{\"type\":\"integer\",\"minimum\":1}}}}}}};const schema32 = {\"type\":\"object\",\"required\":[\"spec_version\",\"receipt_id\",\"issued_at\",\"issuer\",\"agent\",\"claim\",\"observation\",\"verdict\",\"trust_level\"],\"properties\":{\"spec_version\":{\"const\":\"poaw/0.1\"},\"receipt_id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":128},\"issued_at\":{\"$ref\":\"#/$defs/timestamp\"},\"issuer\":{\"type\":\"object\",\"required\":[\"key_id\"],\"properties\":{\"key_id\":{\"$ref\":\"#/$defs/keyId\"},\"name\":{\"type\":\"string\",\"maxLength\":128}}},\"agent\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":256},\"erc8004\":{\"type\":\"object\",\"required\":[\"chain\",\"registry\",\"agent_id\"],\"properties\":{\"chain\":{\"type\":\"string\",\"pattern\":\"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\"},\"registry\":{\"type\":\"string\"},\"agent_id\":{\"type\":\"string\"}}}}},\"operator\":{\"type\":\"string\",\"maxLength\":256},\"claim\":{\"type\":\"object\",\"required\":[\"action\",\"target\",\"params\",\"claimed_at\",\"claim_digest\"],\"properties\":{\"action\":{\"$ref\":\"#/$defs/action\"},\"target\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":512},\"params\":{\"type\":\"object\"},\"claimed_at\":{\"$ref\":\"#/$defs/timestamp\"},\"client_claim_id\":{\"type\":\"string\",\"maxLength\":256},\"claim_digest\":{\"$ref\":\"#/$defs/b64url\"}}},\"observation\":{\"type\":\"object\",\"required\":[\"verifier\",\"observed_at\",\"deadline_at\",\"attempts\",\"facts\"],\"properties\":{\"verifier\":{\"type\":\"object\",\"required\":[\"id\",\"version\"],\"properties\":{\"id\":{\"$ref\":\"#/$defs/action\"},\"version\":{\"type\":\"string\",\"pattern\":\"^\\\\d+$\"},\"code_hash\":{\"$ref\":\"#/$defs/fingerprint\"}}},\"observed_at\":{\"$ref\":\"#/$defs/timestamp\"},\"deadline_at\":{\"$ref\":\"#/$defs/timestamp\"},\"attempts\":{\"type\":\"integer\",\"minimum\":1},\"facts\":{\"type\":\"object\"}}},\"verdict\":{\"type\":\"object\",\"required\":[\"value\"],\"properties\":{\"value\":{\"$ref\":\"#/$defs/verdictValue\"},\"reason_code\":{\"$ref\":\"#/$defs/reasonCode\"}},\"if\":{\"properties\":{\"value\":{\"const\":\"unverifiable\"}}},\"then\":{\"required\":[\"value\",\"reason_code\"]}},\"trust_level\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":4},\"attestation\":{\"type\":\"object\",\"required\":[\"type\",\"document\"],\"properties\":{\"type\":{\"type\":\"string\"},\"document\":{\"$ref\":\"#/$defs/b64url\"}}},\"supersedes\":{\"type\":\"string\"}},\"if\":{\"properties\":{\"trust_level\":{\"minimum\":3}}},\"then\":{\"required\":[\"attestation\"],\"properties\":{\"observation\":{\"properties\":{\"verifier\":{\"required\":[\"id\",\"version\",\"code_hash\"]}}}}}};const schema33 = {\"type\":\"string\",\"pattern\":\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"};const schema34 = {\"type\":\"string\",\"pattern\":\"^ed25519:[A-Za-z0-9_-]{43}$\"};const schema35 = {\"type\":\"string\",\"pattern\":\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"};const schema37 = {\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]+$\"};const schema39 = {\"type\":\"string\",\"pattern\":\"^sha256:[A-Za-z0-9_-]{43}$\"};const schema42 = {\"enum\":[\"verified\",\"late\",\"mismatch\",\"failed\",\"unverifiable\"]};const schema43 = {\"enum\":[\"not_found\",\"content_mismatch\",\"target_mismatch\",\"observed_after_tolerance\",\"no_connection\",\"permission_denied\",\"rate_limited\",\"destination_unavailable\",\"unsupported_action\",\"claim_ambiguous\",\"verifier_error\"]};const func1 = ucs2length;const pattern4 = new RegExp(\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\", \"u\");const pattern5 = new RegExp(\"^ed25519:[A-Za-z0-9_-]{43}$\", \"u\");const pattern6 = new RegExp(\"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\", \"u\");const pattern7 = new RegExp(\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\", \"u\");const pattern9 = new RegExp(\"^[A-Za-z0-9_-]+$\", \"u\");const pattern11 = new RegExp(\"^\\\\d+$\", \"u\");const pattern12 = new RegExp(\"^sha256:[A-Za-z0-9_-]{43}$\", \"u\");function validate21(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs1 = errors;let valid0 = true;const _errs2 = errors;if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.trust_level !== undefined){let data0 = data.trust_level;if(typeof data0 == \"number\"){if(data0 < 3 || isNaN(data0)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}}}var _valid0 = _errs2 === errors;errors = _errs1;if(vErrors !== null){if(_errs1){vErrors.length = _errs1;}else {vErrors = null;}}if(_valid0){const _errs4 = errors;if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if((data.attestation === undefined) && (missing0 = \"attestation\")){validate21.errors = [{instancePath,schemaPath:\"#/then/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {if(data.observation !== undefined){let data1 = data.observation;if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(data1.verifier !== undefined){let data2 = data1.verifier;if(data2 && typeof data2 == \"object\" && !Array.isArray(data2)){let missing1;if((((data2.id === undefined) && (missing1 = \"id\")) || ((data2.version === undefined) && (missing1 = \"version\"))) || ((data2.code_hash === undefined) && (missing1 = \"code_hash\"))){validate21.errors = [{instancePath:instancePath+\"/observation/verifier\",schemaPath:\"#/then/properties/observation/properties/verifier/required\",keyword:\"required\",params:{missingProperty: missing1},message:\"must have required property '\"+missing1+\"'\"}];return false;}}}}}}}var _valid0 = _errs4 === errors;valid0 = _valid0;if(valid0){var props0 = {};props0.observation = true;props0.trust_level = true;}}if(!valid0){const err1 = {instancePath,schemaPath:\"#/if\",keyword:\"if\",params:{failingKeyword: \"then\"},message:\"must match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate21.errors = vErrors;return false;}if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){let missing2;if((((((((((data.spec_version === undefined) && (missing2 = \"spec_version\")) || ((data.receipt_id === undefined) && (missing2 = \"receipt_id\"))) || ((data.issued_at === undefined) && (missing2 = \"issued_at\"))) || ((data.issuer === undefined) && (missing2 = \"issuer\"))) || ((data.agent === undefined) && (missing2 = \"agent\"))) || ((data.claim === undefined) && (missing2 = \"claim\"))) || ((data.observation === undefined) && (missing2 = \"observation\"))) || ((data.verdict === undefined) && (missing2 = \"verdict\"))) || ((data.trust_level === undefined) && (missing2 = \"trust_level\"))){validate21.errors = [{instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: missing2},message:\"must have required property '\"+missing2+\"'\"}];return false;}else {if(props0 !== true){props0 = props0 || {};props0.spec_version = true;props0.receipt_id = true;props0.issued_at = true;props0.issuer = true;props0.agent = true;props0.operator = true;props0.claim = true;props0.observation = true;props0.verdict = true;props0.trust_level = true;props0.attestation = true;props0.supersedes = true;}if(data.spec_version !== undefined){const _errs7 = errors;if(\"poaw/0.1\" !== data.spec_version){validate21.errors = [{instancePath:instancePath+\"/spec_version\",schemaPath:\"#/properties/spec_version/const\",keyword:\"const\",params:{allowedValue: \"poaw/0.1\"},message:\"must be equal to constant\"}];return false;}var valid4 = _errs7 === errors;}else {var valid4 = true;}if(valid4){if(data.receipt_id !== undefined){let data4 = data.receipt_id;const _errs8 = errors;if(errors === _errs8){if(typeof data4 === \"string\"){if(func1(data4) > 128){validate21.errors = [{instancePath:instancePath+\"/receipt_id\",schemaPath:\"#/properties/receipt_id/maxLength\",keyword:\"maxLength\",params:{limit: 128},message:\"must NOT have more than 128 characters\"}];return false;}else {if(func1(data4) < 1){validate21.errors = [{instancePath:instancePath+\"/receipt_id\",schemaPath:\"#/properties/receipt_id/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"}];return false;}}}else {validate21.errors = [{instancePath:instancePath+\"/receipt_id\",schemaPath:\"#/properties/receipt_id/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid4 = _errs8 === errors;}else {var valid4 = true;}if(valid4){if(data.issued_at !== undefined){let data5 = data.issued_at;const _errs10 = errors;const _errs11 = errors;if(errors === _errs11){if(typeof data5 === \"string\"){if(!pattern4.test(data5)){validate21.errors = [{instancePath:instancePath+\"/issued_at\",schemaPath:\"#/$defs/timestamp/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},message:\"must match pattern \\\"\"+\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/issued_at\",schemaPath:\"#/$defs/timestamp/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid4 = _errs10 === errors;}else {var valid4 = true;}if(valid4){if(data.issuer !== undefined){let data6 = data.issuer;const _errs13 = errors;if(errors === _errs13){if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){let missing3;if((data6.key_id === undefined) && (missing3 = \"key_id\")){validate21.errors = [{instancePath:instancePath+\"/issuer\",schemaPath:\"#/properties/issuer/required\",keyword:\"required\",params:{missingProperty: missing3},message:\"must have required property '\"+missing3+\"'\"}];return false;}else {if(data6.key_id !== undefined){let data7 = data6.key_id;const _errs15 = errors;const _errs16 = errors;if(errors === _errs16){if(typeof data7 === \"string\"){if(!pattern5.test(data7)){validate21.errors = [{instancePath:instancePath+\"/issuer/key_id\",schemaPath:\"#/$defs/keyId/pattern\",keyword:\"pattern\",params:{pattern: \"^ed25519:[A-Za-z0-9_-]{43}$\"},message:\"must match pattern \\\"\"+\"^ed25519:[A-Za-z0-9_-]{43}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/issuer/key_id\",schemaPath:\"#/$defs/keyId/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid6 = _errs15 === errors;}else {var valid6 = true;}if(valid6){if(data6.name !== undefined){let data8 = data6.name;const _errs18 = errors;if(errors === _errs18){if(typeof data8 === \"string\"){if(func1(data8) > 128){validate21.errors = [{instancePath:instancePath+\"/issuer/name\",schemaPath:\"#/properties/issuer/properties/name/maxLength\",keyword:\"maxLength\",params:{limit: 128},message:\"must NOT have more than 128 characters\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/issuer/name\",schemaPath:\"#/properties/issuer/properties/name/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid6 = _errs18 === errors;}else {var valid6 = true;}}}}else {validate21.errors = [{instancePath:instancePath+\"/issuer\",schemaPath:\"#/properties/issuer/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs13 === errors;}else {var valid4 = true;}if(valid4){if(data.agent !== undefined){let data9 = data.agent;const _errs20 = errors;if(errors === _errs20){if(data9 && typeof data9 == \"object\" && !Array.isArray(data9)){let missing4;if((data9.id === undefined) && (missing4 = \"id\")){validate21.errors = [{instancePath:instancePath+\"/agent\",schemaPath:\"#/properties/agent/required\",keyword:\"required\",params:{missingProperty: missing4},message:\"must have required property '\"+missing4+\"'\"}];return false;}else {if(data9.id !== undefined){let data10 = data9.id;const _errs22 = errors;if(errors === _errs22){if(typeof data10 === \"string\"){if(func1(data10) > 256){validate21.errors = [{instancePath:instancePath+\"/agent/id\",schemaPath:\"#/properties/agent/properties/id/maxLength\",keyword:\"maxLength\",params:{limit: 256},message:\"must NOT have more than 256 characters\"}];return false;}else {if(func1(data10) < 1){validate21.errors = [{instancePath:instancePath+\"/agent/id\",schemaPath:\"#/properties/agent/properties/id/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"}];return false;}}}else {validate21.errors = [{instancePath:instancePath+\"/agent/id\",schemaPath:\"#/properties/agent/properties/id/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid8 = _errs22 === errors;}else {var valid8 = true;}if(valid8){if(data9.erc8004 !== undefined){let data11 = data9.erc8004;const _errs24 = errors;if(errors === _errs24){if(data11 && typeof data11 == \"object\" && !Array.isArray(data11)){let missing5;if((((data11.chain === undefined) && (missing5 = \"chain\")) || ((data11.registry === undefined) && (missing5 = \"registry\"))) || ((data11.agent_id === undefined) && (missing5 = \"agent_id\"))){validate21.errors = [{instancePath:instancePath+\"/agent/erc8004\",schemaPath:\"#/properties/agent/properties/erc8004/required\",keyword:\"required\",params:{missingProperty: missing5},message:\"must have required property '\"+missing5+\"'\"}];return false;}else {if(data11.chain !== undefined){let data12 = data11.chain;const _errs26 = errors;if(errors === _errs26){if(typeof data12 === \"string\"){if(!pattern6.test(data12)){validate21.errors = [{instancePath:instancePath+\"/agent/erc8004/chain\",schemaPath:\"#/properties/agent/properties/erc8004/properties/chain/pattern\",keyword:\"pattern\",params:{pattern: \"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\"},message:\"must match pattern \\\"\"+\"^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/agent/erc8004/chain\",schemaPath:\"#/properties/agent/properties/erc8004/properties/chain/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid9 = _errs26 === errors;}else {var valid9 = true;}if(valid9){if(data11.registry !== undefined){const _errs28 = errors;if(typeof data11.registry !== \"string\"){validate21.errors = [{instancePath:instancePath+\"/agent/erc8004/registry\",schemaPath:\"#/properties/agent/properties/erc8004/properties/registry/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid9 = _errs28 === errors;}else {var valid9 = true;}if(valid9){if(data11.agent_id !== undefined){const _errs30 = errors;if(typeof data11.agent_id !== \"string\"){validate21.errors = [{instancePath:instancePath+\"/agent/erc8004/agent_id\",schemaPath:\"#/properties/agent/properties/erc8004/properties/agent_id/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid9 = _errs30 === errors;}else {var valid9 = true;}}}}}else {validate21.errors = [{instancePath:instancePath+\"/agent/erc8004\",schemaPath:\"#/properties/agent/properties/erc8004/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid8 = _errs24 === errors;}else {var valid8 = true;}}}}else {validate21.errors = [{instancePath:instancePath+\"/agent\",schemaPath:\"#/properties/agent/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs20 === errors;}else {var valid4 = true;}if(valid4){if(data.operator !== undefined){let data15 = data.operator;const _errs32 = errors;if(errors === _errs32){if(typeof data15 === \"string\"){if(func1(data15) > 256){validate21.errors = [{instancePath:instancePath+\"/operator\",schemaPath:\"#/properties/operator/maxLength\",keyword:\"maxLength\",params:{limit: 256},message:\"must NOT have more than 256 characters\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/operator\",schemaPath:\"#/properties/operator/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid4 = _errs32 === errors;}else {var valid4 = true;}if(valid4){if(data.claim !== undefined){let data16 = data.claim;const _errs34 = errors;if(errors === _errs34){if(data16 && typeof data16 == \"object\" && !Array.isArray(data16)){let missing6;if((((((data16.action === undefined) && (missing6 = \"action\")) || ((data16.target === undefined) && (missing6 = \"target\"))) || ((data16.params === undefined) && (missing6 = \"params\"))) || ((data16.claimed_at === undefined) && (missing6 = \"claimed_at\"))) || ((data16.claim_digest === undefined) && (missing6 = \"claim_digest\"))){validate21.errors = [{instancePath:instancePath+\"/claim\",schemaPath:\"#/properties/claim/required\",keyword:\"required\",params:{missingProperty: missing6},message:\"must have required property '\"+missing6+\"'\"}];return false;}else {if(data16.action !== undefined){let data17 = data16.action;const _errs36 = errors;const _errs37 = errors;if(errors === _errs37){if(typeof data17 === \"string\"){if(!pattern7.test(data17)){validate21.errors = [{instancePath:instancePath+\"/claim/action\",schemaPath:\"#/$defs/action/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/claim/action\",schemaPath:\"#/$defs/action/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs36 === errors;}else {var valid10 = true;}if(valid10){if(data16.target !== undefined){let data18 = data16.target;const _errs39 = errors;if(errors === _errs39){if(typeof data18 === \"string\"){if(func1(data18) > 512){validate21.errors = [{instancePath:instancePath+\"/claim/target\",schemaPath:\"#/properties/claim/properties/target/maxLength\",keyword:\"maxLength\",params:{limit: 512},message:\"must NOT have more than 512 characters\"}];return false;}else {if(func1(data18) < 1){validate21.errors = [{instancePath:instancePath+\"/claim/target\",schemaPath:\"#/properties/claim/properties/target/minLength\",keyword:\"minLength\",params:{limit: 1},message:\"must NOT have fewer than 1 characters\"}];return false;}}}else {validate21.errors = [{instancePath:instancePath+\"/claim/target\",schemaPath:\"#/properties/claim/properties/target/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs39 === errors;}else {var valid10 = true;}if(valid10){if(data16.params !== undefined){let data19 = data16.params;const _errs41 = errors;if(!(data19 && typeof data19 == \"object\" && !Array.isArray(data19))){validate21.errors = [{instancePath:instancePath+\"/claim/params\",schemaPath:\"#/properties/claim/properties/params/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}var valid10 = _errs41 === errors;}else {var valid10 = true;}if(valid10){if(data16.claimed_at !== undefined){let data20 = data16.claimed_at;const _errs43 = errors;const _errs44 = errors;if(errors === _errs44){if(typeof data20 === \"string\"){if(!pattern4.test(data20)){validate21.errors = [{instancePath:instancePath+\"/claim/claimed_at\",schemaPath:\"#/$defs/timestamp/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},message:\"must match pattern \\\"\"+\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/claim/claimed_at\",schemaPath:\"#/$defs/timestamp/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs43 === errors;}else {var valid10 = true;}if(valid10){if(data16.client_claim_id !== undefined){let data21 = data16.client_claim_id;const _errs46 = errors;if(errors === _errs46){if(typeof data21 === \"string\"){if(func1(data21) > 256){validate21.errors = [{instancePath:instancePath+\"/claim/client_claim_id\",schemaPath:\"#/properties/claim/properties/client_claim_id/maxLength\",keyword:\"maxLength\",params:{limit: 256},message:\"must NOT have more than 256 characters\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/claim/client_claim_id\",schemaPath:\"#/properties/claim/properties/client_claim_id/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs46 === errors;}else {var valid10 = true;}if(valid10){if(data16.claim_digest !== undefined){let data22 = data16.claim_digest;const _errs48 = errors;const _errs49 = errors;if(errors === _errs49){if(typeof data22 === \"string\"){if(!pattern9.test(data22)){validate21.errors = [{instancePath:instancePath+\"/claim/claim_digest\",schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/claim/claim_digest\",schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid10 = _errs48 === errors;}else {var valid10 = true;}}}}}}}}else {validate21.errors = [{instancePath:instancePath+\"/claim\",schemaPath:\"#/properties/claim/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs34 === errors;}else {var valid4 = true;}if(valid4){if(data.observation !== undefined){let data23 = data.observation;const _errs51 = errors;if(errors === _errs51){if(data23 && typeof data23 == \"object\" && !Array.isArray(data23)){let missing7;if((((((data23.verifier === undefined) && (missing7 = \"verifier\")) || ((data23.observed_at === undefined) && (missing7 = \"observed_at\"))) || ((data23.deadline_at === undefined) && (missing7 = \"deadline_at\"))) || ((data23.attempts === undefined) && (missing7 = \"attempts\"))) || ((data23.facts === undefined) && (missing7 = \"facts\"))){validate21.errors = [{instancePath:instancePath+\"/observation\",schemaPath:\"#/properties/observation/required\",keyword:\"required\",params:{missingProperty: missing7},message:\"must have required property '\"+missing7+\"'\"}];return false;}else {if(data23.verifier !== undefined){let data24 = data23.verifier;const _errs53 = errors;if(errors === _errs53){if(data24 && typeof data24 == \"object\" && !Array.isArray(data24)){let missing8;if(((data24.id === undefined) && (missing8 = \"id\")) || ((data24.version === undefined) && (missing8 = \"version\"))){validate21.errors = [{instancePath:instancePath+\"/observation/verifier\",schemaPath:\"#/properties/observation/properties/verifier/required\",keyword:\"required\",params:{missingProperty: missing8},message:\"must have required property '\"+missing8+\"'\"}];return false;}else {if(data24.id !== undefined){let data25 = data24.id;const _errs55 = errors;const _errs56 = errors;if(errors === _errs56){if(typeof data25 === \"string\"){if(!pattern7.test(data25)){validate21.errors = [{instancePath:instancePath+\"/observation/verifier/id\",schemaPath:\"#/$defs/action/pattern\",keyword:\"pattern\",params:{pattern: \"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"},message:\"must match pattern \\\"\"+\"^[a-z0-9]+(\\\\.[a-z0-9_]+){2}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/verifier/id\",schemaPath:\"#/$defs/action/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid15 = _errs55 === errors;}else {var valid15 = true;}if(valid15){if(data24.version !== undefined){let data26 = data24.version;const _errs58 = errors;if(errors === _errs58){if(typeof data26 === \"string\"){if(!pattern11.test(data26)){validate21.errors = [{instancePath:instancePath+\"/observation/verifier/version\",schemaPath:\"#/properties/observation/properties/verifier/properties/version/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d+$\"},message:\"must match pattern \\\"\"+\"^\\\\d+$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/verifier/version\",schemaPath:\"#/properties/observation/properties/verifier/properties/version/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid15 = _errs58 === errors;}else {var valid15 = true;}if(valid15){if(data24.code_hash !== undefined){let data27 = data24.code_hash;const _errs60 = errors;const _errs61 = errors;if(errors === _errs61){if(typeof data27 === \"string\"){if(!pattern12.test(data27)){validate21.errors = [{instancePath:instancePath+\"/observation/verifier/code_hash\",schemaPath:\"#/$defs/fingerprint/pattern\",keyword:\"pattern\",params:{pattern: \"^sha256:[A-Za-z0-9_-]{43}$\"},message:\"must match pattern \\\"\"+\"^sha256:[A-Za-z0-9_-]{43}$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/verifier/code_hash\",schemaPath:\"#/$defs/fingerprint/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid15 = _errs60 === errors;}else {var valid15 = true;}}}}}else {validate21.errors = [{instancePath:instancePath+\"/observation/verifier\",schemaPath:\"#/properties/observation/properties/verifier/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid14 = _errs53 === errors;}else {var valid14 = true;}if(valid14){if(data23.observed_at !== undefined){let data28 = data23.observed_at;const _errs63 = errors;const _errs64 = errors;if(errors === _errs64){if(typeof data28 === \"string\"){if(!pattern4.test(data28)){validate21.errors = [{instancePath:instancePath+\"/observation/observed_at\",schemaPath:\"#/$defs/timestamp/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},message:\"must match pattern \\\"\"+\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/observed_at\",schemaPath:\"#/$defs/timestamp/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid14 = _errs63 === errors;}else {var valid14 = true;}if(valid14){if(data23.deadline_at !== undefined){let data29 = data23.deadline_at;const _errs66 = errors;const _errs67 = errors;if(errors === _errs67){if(typeof data29 === \"string\"){if(!pattern4.test(data29)){validate21.errors = [{instancePath:instancePath+\"/observation/deadline_at\",schemaPath:\"#/$defs/timestamp/pattern\",keyword:\"pattern\",params:{pattern: \"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"},message:\"must match pattern \\\"\"+\"^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d{1,3})?Z$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/observation/deadline_at\",schemaPath:\"#/$defs/timestamp/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid14 = _errs66 === errors;}else {var valid14 = true;}if(valid14){if(data23.attempts !== undefined){let data30 = data23.attempts;const _errs69 = errors;if(!((typeof data30 == \"number\") && (!(data30 % 1) && !isNaN(data30)))){validate21.errors = [{instancePath:instancePath+\"/observation/attempts\",schemaPath:\"#/properties/observation/properties/attempts/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs69){if(typeof data30 == \"number\"){if(data30 < 1 || isNaN(data30)){validate21.errors = [{instancePath:instancePath+\"/observation/attempts\",schemaPath:\"#/properties/observation/properties/attempts/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"}];return false;}}}var valid14 = _errs69 === errors;}else {var valid14 = true;}if(valid14){if(data23.facts !== undefined){let data31 = data23.facts;const _errs71 = errors;if(!(data31 && typeof data31 == \"object\" && !Array.isArray(data31))){validate21.errors = [{instancePath:instancePath+\"/observation/facts\",schemaPath:\"#/properties/observation/properties/facts/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}var valid14 = _errs71 === errors;}else {var valid14 = true;}}}}}}}else {validate21.errors = [{instancePath:instancePath+\"/observation\",schemaPath:\"#/properties/observation/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs51 === errors;}else {var valid4 = true;}if(valid4){if(data.verdict !== undefined){let data32 = data.verdict;const _errs73 = errors;const _errs75 = errors;let valid20 = true;const _errs76 = errors;if(data32 && typeof data32 == \"object\" && !Array.isArray(data32)){if(data32.value !== undefined){if(\"unverifiable\" !== data32.value){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}}var _valid1 = _errs76 === errors;errors = _errs75;if(vErrors !== null){if(_errs75){vErrors.length = _errs75;}else {vErrors = null;}}if(_valid1){const _errs78 = errors;if(data32 && typeof data32 == \"object\" && !Array.isArray(data32)){let missing9;if(((data32.value === undefined) && (missing9 = \"value\")) || ((data32.reason_code === undefined) && (missing9 = \"reason_code\"))){validate21.errors = [{instancePath:instancePath+\"/verdict\",schemaPath:\"#/properties/verdict/then/required\",keyword:\"required\",params:{missingProperty: missing9},message:\"must have required property '\"+missing9+\"'\"}];return false;}}var _valid1 = _errs78 === errors;valid20 = _valid1;}if(!valid20){const err3 = {instancePath:instancePath+\"/verdict\",schemaPath:\"#/properties/verdict/if\",keyword:\"if\",params:{failingKeyword: \"then\"},message:\"must match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;validate21.errors = vErrors;return false;}if(errors === _errs73){if(data32 && typeof data32 == \"object\" && !Array.isArray(data32)){let missing10;if((data32.value === undefined) && (missing10 = \"value\")){validate21.errors = [{instancePath:instancePath+\"/verdict\",schemaPath:\"#/properties/verdict/required\",keyword:\"required\",params:{missingProperty: missing10},message:\"must have required property '\"+missing10+\"'\"}];return false;}else {if(data32.value !== undefined){let data34 = data32.value;const _errs79 = errors;if(!(((((data34 === \"verified\") || (data34 === \"late\")) || (data34 === \"mismatch\")) || (data34 === \"failed\")) || (data34 === \"unverifiable\"))){validate21.errors = [{instancePath:instancePath+\"/verdict/value\",schemaPath:\"#/$defs/verdictValue/enum\",keyword:\"enum\",params:{allowedValues: schema42.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid22 = _errs79 === errors;}else {var valid22 = true;}if(valid22){if(data32.reason_code !== undefined){let data35 = data32.reason_code;const _errs81 = errors;if(!(((((((((((data35 === \"not_found\") || (data35 === \"content_mismatch\")) || (data35 === \"target_mismatch\")) || (data35 === \"observed_after_tolerance\")) || (data35 === \"no_connection\")) || (data35 === \"permission_denied\")) || (data35 === \"rate_limited\")) || (data35 === \"destination_unavailable\")) || (data35 === \"unsupported_action\")) || (data35 === \"claim_ambiguous\")) || (data35 === \"verifier_error\"))){validate21.errors = [{instancePath:instancePath+\"/verdict/reason_code\",schemaPath:\"#/$defs/reasonCode/enum\",keyword:\"enum\",params:{allowedValues: schema43.enum},message:\"must be equal to one of the allowed values\"}];return false;}var valid22 = _errs81 === errors;}else {var valid22 = true;}}}}else {validate21.errors = [{instancePath:instancePath+\"/verdict\",schemaPath:\"#/properties/verdict/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs73 === errors;}else {var valid4 = true;}if(valid4){if(data.trust_level !== undefined){let data36 = data.trust_level;const _errs83 = errors;if(!((typeof data36 == \"number\") && (!(data36 % 1) && !isNaN(data36)))){validate21.errors = [{instancePath:instancePath+\"/trust_level\",schemaPath:\"#/properties/trust_level/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs83){if(typeof data36 == \"number\"){if(data36 > 4 || isNaN(data36)){validate21.errors = [{instancePath:instancePath+\"/trust_level\",schemaPath:\"#/properties/trust_level/maximum\",keyword:\"maximum\",params:{comparison: \"<=\", limit: 4},message:\"must be <= 4\"}];return false;}else {if(data36 < 1 || isNaN(data36)){validate21.errors = [{instancePath:instancePath+\"/trust_level\",schemaPath:\"#/properties/trust_level/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"}];return false;}}}}var valid4 = _errs83 === errors;}else {var valid4 = true;}if(valid4){if(data.attestation !== undefined){let data37 = data.attestation;const _errs85 = errors;if(errors === _errs85){if(data37 && typeof data37 == \"object\" && !Array.isArray(data37)){let missing11;if(((data37.type === undefined) && (missing11 = \"type\")) || ((data37.document === undefined) && (missing11 = \"document\"))){validate21.errors = [{instancePath:instancePath+\"/attestation\",schemaPath:\"#/properties/attestation/required\",keyword:\"required\",params:{missingProperty: missing11},message:\"must have required property '\"+missing11+\"'\"}];return false;}else {if(data37.type !== undefined){const _errs87 = errors;if(typeof data37.type !== \"string\"){validate21.errors = [{instancePath:instancePath+\"/attestation/type\",schemaPath:\"#/properties/attestation/properties/type/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid25 = _errs87 === errors;}else {var valid25 = true;}if(valid25){if(data37.document !== undefined){let data39 = data37.document;const _errs89 = errors;const _errs90 = errors;if(errors === _errs90){if(typeof data39 === \"string\"){if(!pattern9.test(data39)){validate21.errors = [{instancePath:instancePath+\"/attestation/document\",schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate21.errors = [{instancePath:instancePath+\"/attestation/document\",schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid25 = _errs89 === errors;}else {var valid25 = true;}}}}else {validate21.errors = [{instancePath:instancePath+\"/attestation\",schemaPath:\"#/properties/attestation/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid4 = _errs85 === errors;}else {var valid4 = true;}if(valid4){if(data.supersedes !== undefined){const _errs92 = errors;if(typeof data.supersedes !== \"string\"){validate21.errors = [{instancePath:instancePath+\"/supersedes\",schemaPath:\"#/properties/supersedes/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid4 = _errs92 === errors;}else {var valid4 = true;}}}}}}}}}}}}}}else {validate21.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate21.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate21.evaluated = {\"dynamicProps\":true,\"dynamicItems\":false};const schema45 = {\"type\":\"object\",\"required\":[\"alg\",\"key_id\",\"value\"],\"additionalProperties\":false,\"properties\":{\"alg\":{\"const\":\"Ed25519\"},\"key_id\":{\"$ref\":\"#/$defs/keyId\"},\"value\":{\"type\":\"string\",\"pattern\":\"^[A-Za-z0-9_-]{86}$\"}}};const pattern17 = new RegExp(\"^[A-Za-z0-9_-]{86}$\", \"u\");function validate23(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate23.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if((((data.alg === undefined) && (missing0 = \"alg\")) || ((data.key_id === undefined) && (missing0 = \"key_id\"))) || ((data.value === undefined) && (missing0 = \"value\"))){validate23.errors = [{instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === \"alg\") || (key0 === \"key_id\")) || (key0 === \"value\"))){validate23.errors = [{instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"}];return false;break;}}if(_errs1 === errors){if(data.alg !== undefined){const _errs2 = errors;if(\"Ed25519\" !== data.alg){validate23.errors = [{instancePath:instancePath+\"/alg\",schemaPath:\"#/properties/alg/const\",keyword:\"const\",params:{allowedValue: \"Ed25519\"},message:\"must be equal to constant\"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.key_id !== undefined){let data1 = data.key_id;const _errs3 = errors;const _errs4 = errors;if(errors === _errs4){if(typeof data1 === \"string\"){if(!pattern5.test(data1)){validate23.errors = [{instancePath:instancePath+\"/key_id\",schemaPath:\"#/$defs/keyId/pattern\",keyword:\"pattern\",params:{pattern: \"^ed25519:[A-Za-z0-9_-]{43}$\"},message:\"must match pattern \\\"\"+\"^ed25519:[A-Za-z0-9_-]{43}$\"+\"\\\"\"}];return false;}}else {validate23.errors = [{instancePath:instancePath+\"/key_id\",schemaPath:\"#/$defs/keyId/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.value !== undefined){let data2 = data.value;const _errs6 = errors;if(errors === _errs6){if(typeof data2 === \"string\"){if(!pattern17.test(data2)){validate23.errors = [{instancePath:instancePath+\"/value\",schemaPath:\"#/properties/value/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]{86}$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]{86}$\"+\"\\\"\"}];return false;}}else {validate23.errors = [{instancePath:instancePath+\"/value\",schemaPath:\"#/properties/value/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid0 = _errs6 === errors;}else {var valid0 = true;}}}}}}else {validate23.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate23.errors = vErrors;return errors === 0;}validate23.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};const schema47 = {\"type\":\"object\",\"required\":[\"log_id\",\"leaf_index\",\"tree_size\",\"root_hash\",\"inclusion\"],\"properties\":{\"log_id\":{\"$ref\":\"#/$defs/b64url\"},\"leaf_index\":{\"type\":\"integer\",\"minimum\":0},\"tree_size\":{\"type\":\"integer\",\"minimum\":1},\"root_hash\":{\"$ref\":\"#/$defs/b64url\"},\"inclusion\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/b64url\"}},\"anchor\":{\"type\":\"object\",\"required\":[\"chain\",\"scheme\",\"uid\",\"tx_hash\",\"tree_size\"],\"properties\":{\"chain\":{\"type\":\"string\"},\"scheme\":{\"const\":\"eas\"},\"uid\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"},\"tx_hash\":{\"type\":\"string\",\"pattern\":\"^0x[0-9a-fA-F]{64}$\"},\"tree_size\":{\"type\":\"integer\",\"minimum\":1}}}}};const pattern21 = new RegExp(\"^0x[0-9a-fA-F]{64}$\", \"u\");function validate25(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate25.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if((((((data.log_id === undefined) && (missing0 = \"log_id\")) || ((data.leaf_index === undefined) && (missing0 = \"leaf_index\"))) || ((data.tree_size === undefined) && (missing0 = \"tree_size\"))) || ((data.root_hash === undefined) && (missing0 = \"root_hash\"))) || ((data.inclusion === undefined) && (missing0 = \"inclusion\"))){validate25.errors = [{instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {if(data.log_id !== undefined){let data0 = data.log_id;const _errs1 = errors;const _errs2 = errors;if(errors === _errs2){if(typeof data0 === \"string\"){if(!pattern9.test(data0)){validate25.errors = [{instancePath:instancePath+\"/log_id\",schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/log_id\",schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.leaf_index !== undefined){let data1 = data.leaf_index;const _errs4 = errors;if(!((typeof data1 == \"number\") && (!(data1 % 1) && !isNaN(data1)))){validate25.errors = [{instancePath:instancePath+\"/leaf_index\",schemaPath:\"#/properties/leaf_index/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs4){if(typeof data1 == \"number\"){if(data1 < 0 || isNaN(data1)){validate25.errors = [{instancePath:instancePath+\"/leaf_index\",schemaPath:\"#/properties/leaf_index/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 0},message:\"must be >= 0\"}];return false;}}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.tree_size !== undefined){let data2 = data.tree_size;const _errs6 = errors;if(!((typeof data2 == \"number\") && (!(data2 % 1) && !isNaN(data2)))){validate25.errors = [{instancePath:instancePath+\"/tree_size\",schemaPath:\"#/properties/tree_size/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs6){if(typeof data2 == \"number\"){if(data2 < 1 || isNaN(data2)){validate25.errors = [{instancePath:instancePath+\"/tree_size\",schemaPath:\"#/properties/tree_size/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"}];return false;}}}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.root_hash !== undefined){let data3 = data.root_hash;const _errs8 = errors;const _errs9 = errors;if(errors === _errs9){if(typeof data3 === \"string\"){if(!pattern9.test(data3)){validate25.errors = [{instancePath:instancePath+\"/root_hash\",schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/root_hash\",schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.inclusion !== undefined){let data4 = data.inclusion;const _errs11 = errors;if(errors === _errs11){if(Array.isArray(data4)){var valid3 = true;const len0 = data4.length;for(let i0=0; i0<len0; i0++){let data5 = data4[i0];const _errs13 = errors;const _errs14 = errors;if(errors === _errs14){if(typeof data5 === \"string\"){if(!pattern9.test(data5)){validate25.errors = [{instancePath:instancePath+\"/inclusion/\" + i0,schemaPath:\"#/$defs/b64url/pattern\",keyword:\"pattern\",params:{pattern: \"^[A-Za-z0-9_-]+$\"},message:\"must match pattern \\\"\"+\"^[A-Za-z0-9_-]+$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/inclusion/\" + i0,schemaPath:\"#/$defs/b64url/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid3 = _errs13 === errors;if(!valid3){break;}}}else {validate25.errors = [{instancePath:instancePath+\"/inclusion\",schemaPath:\"#/properties/inclusion/type\",keyword:\"type\",params:{type: \"array\"},message:\"must be array\"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.anchor !== undefined){let data6 = data.anchor;const _errs16 = errors;if(errors === _errs16){if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){let missing1;if((((((data6.chain === undefined) && (missing1 = \"chain\")) || ((data6.scheme === undefined) && (missing1 = \"scheme\"))) || ((data6.uid === undefined) && (missing1 = \"uid\"))) || ((data6.tx_hash === undefined) && (missing1 = \"tx_hash\"))) || ((data6.tree_size === undefined) && (missing1 = \"tree_size\"))){validate25.errors = [{instancePath:instancePath+\"/anchor\",schemaPath:\"#/properties/anchor/required\",keyword:\"required\",params:{missingProperty: missing1},message:\"must have required property '\"+missing1+\"'\"}];return false;}else {if(data6.chain !== undefined){const _errs18 = errors;if(typeof data6.chain !== \"string\"){validate25.errors = [{instancePath:instancePath+\"/anchor/chain\",schemaPath:\"#/properties/anchor/properties/chain/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}var valid5 = _errs18 === errors;}else {var valid5 = true;}if(valid5){if(data6.scheme !== undefined){const _errs20 = errors;if(\"eas\" !== data6.scheme){validate25.errors = [{instancePath:instancePath+\"/anchor/scheme\",schemaPath:\"#/properties/anchor/properties/scheme/const\",keyword:\"const\",params:{allowedValue: \"eas\"},message:\"must be equal to constant\"}];return false;}var valid5 = _errs20 === errors;}else {var valid5 = true;}if(valid5){if(data6.uid !== undefined){let data9 = data6.uid;const _errs21 = errors;if(errors === _errs21){if(typeof data9 === \"string\"){if(!pattern21.test(data9)){validate25.errors = [{instancePath:instancePath+\"/anchor/uid\",schemaPath:\"#/properties/anchor/properties/uid/pattern\",keyword:\"pattern\",params:{pattern: \"^0x[0-9a-fA-F]{64}$\"},message:\"must match pattern \\\"\"+\"^0x[0-9a-fA-F]{64}$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/anchor/uid\",schemaPath:\"#/properties/anchor/properties/uid/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid5 = _errs21 === errors;}else {var valid5 = true;}if(valid5){if(data6.tx_hash !== undefined){let data10 = data6.tx_hash;const _errs23 = errors;if(errors === _errs23){if(typeof data10 === \"string\"){if(!pattern21.test(data10)){validate25.errors = [{instancePath:instancePath+\"/anchor/tx_hash\",schemaPath:\"#/properties/anchor/properties/tx_hash/pattern\",keyword:\"pattern\",params:{pattern: \"^0x[0-9a-fA-F]{64}$\"},message:\"must match pattern \\\"\"+\"^0x[0-9a-fA-F]{64}$\"+\"\\\"\"}];return false;}}else {validate25.errors = [{instancePath:instancePath+\"/anchor/tx_hash\",schemaPath:\"#/properties/anchor/properties/tx_hash/type\",keyword:\"type\",params:{type: \"string\"},message:\"must be string\"}];return false;}}var valid5 = _errs23 === errors;}else {var valid5 = true;}if(valid5){if(data6.tree_size !== undefined){let data11 = data6.tree_size;const _errs25 = errors;if(!((typeof data11 == \"number\") && (!(data11 % 1) && !isNaN(data11)))){validate25.errors = [{instancePath:instancePath+\"/anchor/tree_size\",schemaPath:\"#/properties/anchor/properties/tree_size/type\",keyword:\"type\",params:{type: \"integer\"},message:\"must be integer\"}];return false;}if(errors === _errs25){if(typeof data11 == \"number\"){if(data11 < 1 || isNaN(data11)){validate25.errors = [{instancePath:instancePath+\"/anchor/tree_size\",schemaPath:\"#/properties/anchor/properties/tree_size/minimum\",keyword:\"minimum\",params:{comparison: \">=\", limit: 1},message:\"must be >= 1\"}];return false;}}}var valid5 = _errs25 === errors;}else {var valid5 = true;}}}}}}}else {validate25.errors = [{instancePath:instancePath+\"/anchor\",schemaPath:\"#/properties/anchor/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}var valid0 = _errs16 === errors;}else {var valid0 = true;}}}}}}}}else {validate25.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate25.errors = vErrors;return errors === 0;}validate25.evaluated = {\"props\":{\"log_id\":true,\"leaf_index\":true,\"tree_size\":true,\"root_hash\":true,\"inclusion\":true,\"anchor\":true},\"dynamicProps\":false,\"dynamicItems\":false};function validate20(data, {instancePath=\"\", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL=\"urn:poaw:schema:0.1:receipt\" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == \"object\" && !Array.isArray(data)){let missing0;if(((data.body === undefined) && (missing0 = \"body\")) || ((data.signature === undefined) && (missing0 = \"signature\"))){validate20.errors = [{instancePath,schemaPath:\"#/required\",keyword:\"required\",params:{missingProperty: missing0},message:\"must have required property '\"+missing0+\"'\"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === \"body\") || (key0 === \"signature\")) || (key0 === \"proof\"))){validate20.errors = [{instancePath,schemaPath:\"#/additionalProperties\",keyword:\"additionalProperties\",params:{additionalProperty: key0},message:\"must NOT have additional properties\"}];return false;break;}}if(_errs1 === errors){if(data.body !== undefined){const _errs2 = errors;if(!(validate21(data.body, {instancePath:instancePath+\"/body\",parentData:data,parentDataProperty:\"body\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.signature !== undefined){const _errs3 = errors;if(!(validate23(data.signature, {instancePath:instancePath+\"/signature\",parentData:data,parentDataProperty:\"signature\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);errors = vErrors.length;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.proof !== undefined){const _errs4 = errors;if(!(validate25(data.proof, {instancePath:instancePath+\"/proof\",parentData:data,parentDataProperty:\"proof\",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid0 = _errs4 === errors;}else {var valid0 = true;}}}}}}else {validate20.errors = [{instancePath,schemaPath:\"#/type\",keyword:\"type\",params:{type: \"object\"},message:\"must be object\"}];return false;}}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {\"props\":true,\"dynamicProps\":false,\"dynamicItems\":false};\n","/**\n * Structural validation against the vendored receipt schema (Draft 2020-12), matching\n * `oss/spec/tools/check.py`'s use of `jsonschema.Draft202012Validator`.\n *\n * The validator is precompiled at build time (scripts/build-validator.mjs, ajv \"standalone\"), so nothing is compiled\n * at runtime: no `new Function`, and so it works under a strict Content-Security-Policy without 'unsafe-eval'.\n */\nimport { validate } from \"./generated/receipt-validator.js\";\n\nexport function schemaValid(receipt: unknown): boolean {\n return Boolean(validate(receipt));\n}\n","/**\n * SPEC §8.4: check a receipt's `proof.anchor` (scheme `eas`) against a public JSON-RPC endpoint.\n * Ported from `oss/spec/tools/anchor_check.py`. Any doubt gives `ok: false` — never a pass.\n */\nimport { keccak_256 } from \"@noble/hashes/sha3\";\nimport { b64uDecode, b64u, bytesEqual } from \"./primitives.js\";\nimport { decodeSingleDynamicTupleReturn, decodeTupleWithTrailingDynamic, bytesToHex0x, hexToBytes } from \"./abi.js\";\n\nconst EAS = \"0x4200000000000000000000000000000000000021\"; // OP-stack predeploy (Base mainnet + Base Sepolia)\n\nfunction selector(signature: string): Uint8Array {\n return keccak_256(new TextEncoder().encode(signature)).slice(0, 4);\n}\n\nconst GET_SELECTOR = selector(\"getAttestation(bytes32)\");\nconst ATT_STATIC_KINDS = [\"bytes32\", \"bytes32\", \"uint64\", \"uint64\", \"uint64\", \"bytes32\", \"address\", \"address\", \"bool\"] as const;\nconst DATA_STATIC_KINDS = [\"bytes32\", \"uint64\", \"bytes32\", \"uint64\", \"bytes32\"] as const;\n\nexport interface Proof {\n log_id: string;\n leaf_index: number;\n tree_size: number;\n root_hash: string;\n inclusion: string[];\n anchor?: {\n chain: string;\n scheme: string;\n uid: string;\n tx_hash: string;\n tree_size: number;\n };\n}\n\nexport interface Keyset {\n keys?: Array<{ key_id: string; public_key: string; valid_from: string; revoked_at: string | null }>;\n anchor_addresses?: string[];\n anchor_schemas?: string[];\n}\n\nexport interface AnchorResult {\n ok: boolean;\n reason: string;\n proven_by: number | null;\n}\n\nasync function rpc(url: string, method: string, ...params: unknown[]): Promise<unknown> {\n const res = await fetch(url, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\", \"user-agent\": \"qed-proof-sdk-js/0.1\" },\n body: JSON.stringify({ jsonrpc: \"2.0\", id: 1, method, params }),\n });\n const body = (await res.json()) as { error?: { message?: string }; result?: unknown };\n if (body && body.error) {\n throw new Error(`${method}: ${body.error.message ?? \"rpc error\"}`);\n }\n return body.result;\n}\n\n/** Return {ok, reason, proven_by}. Any doubt → ok false, never a pass. */\nexport async function checkAnchor(proof: Proof, keyset: Keyset, rpcUrl: string): Promise<AnchorResult> {\n const a = proof.anchor;\n if (!a) return { ok: false, reason: \"unknown_scheme\", proven_by: null };\n try {\n if (a.scheme !== \"eas\") return { ok: false, reason: \"unknown_scheme\", proven_by: null };\n\n const chainIdHex = (await rpc(rpcUrl, \"eth_chainId\")) as string;\n const wantChainId = a.chain.split(\":\")[1];\n if (BigInt(chainIdHex) !== BigInt(wantChainId)) {\n return { ok: false, reason: \"rpc_chain_mismatch\", proven_by: null };\n }\n\n const uid = hexToBytes(a.uid);\n const callData = new Uint8Array([...GET_SELECTOR, ...uid]);\n const out = (await rpc(rpcUrl, \"eth_call\", { to: EAS, data: bytesToHex0x(callData) }, \"latest\")) as string;\n const returnData = hexToBytes(out);\n const { statics, dynamic } = decodeSingleDynamicTupleReturn(returnData, [...ATT_STATIC_KINDS], \"bytes\");\n const [uid_, schema, time_, _exp, revokedAt, _ref, _recipient, attester, _revocable] = statics as [\n Uint8Array,\n Uint8Array,\n bigint,\n bigint,\n bigint,\n Uint8Array,\n Uint8Array,\n string,\n boolean,\n ];\n const data = dynamic as Uint8Array;\n\n if (!bytesEqual(uid_, uid) || time_ === 0n) {\n return { ok: false, reason: \"attestation_not_found\", proven_by: null };\n }\n if (revokedAt !== 0n) {\n return { ok: false, reason: \"attestation_revoked\", proven_by: null };\n }\n const attesterLower = (attester as string).toLowerCase();\n const publishedAttesters = new Set((keyset.anchor_addresses ?? []).map((x) => x.toLowerCase()));\n if (!publishedAttesters.has(attesterLower)) {\n return { ok: false, reason: \"attester_not_published\", proven_by: null };\n }\n const schemaHex = \"0x\" + bytesToHex0x(schema).slice(2);\n const publishedSchemas = new Set((keyset.anchor_schemas ?? []).map((x) => x.toLowerCase()));\n if (!publishedSchemas.has(schemaHex.toLowerCase())) {\n return { ok: false, reason: \"schema_not_published\", proven_by: null };\n }\n\n let decodedData: { statics: unknown[]; dynamic: unknown };\n try {\n decodedData = decodeTupleWithTrailingDynamic(data, [...DATA_STATIC_KINDS], \"string\");\n } catch {\n return { ok: false, reason: \"data_undecodable\", proven_by: null };\n }\n const [logId, size, root, _prevSize, _prevRoot] = decodedData.statics as [Uint8Array, bigint, Uint8Array, bigint, Uint8Array];\n\n if (!bytesEqual(logId, b64uDecode(proof.log_id)) || size !== BigInt(a.tree_size)) {\n return { ok: false, reason: \"log_or_size_mismatch\", proven_by: null };\n }\n if (a.tree_size !== proof.tree_size) {\n // this issuer proves at the anchored size\n return { ok: false, reason: \"consistency_proof_required\", proven_by: null };\n }\n if (!bytesEqual(root, b64uDecode(proof.root_hash))) {\n return { ok: false, reason: \"root_mismatch\", proven_by: null };\n }\n return { ok: true, reason: \"anchored\", proven_by: Number(time_) };\n } catch (exc) {\n const name = exc instanceof Error ? exc.constructor.name : \"Error\";\n return { ok: false, reason: `unreadable:${name}`, proven_by: null };\n }\n}\n","/**\n * A tiny hand-written ABI decoder for exactly the two structs SPEC §8.4 needs (ported from\n * `oss/spec/tools/anchor_check.py`, which uses `eth_abi.decode`). Not a general ABI library:\n * it only decodes a tuple of N-1 static 32-byte-word fields followed by one trailing dynamic\n * field (`bytes` or `string`), which is exactly the shape of the EAS `Attestation` struct and\n * its decoded `data` payload.\n */\n\nexport type StaticFieldKind = \"bytes32\" | \"uint64\" | \"address\" | \"bool\";\n\nfunction readWord(data: Uint8Array, wordIndex: number): Uint8Array {\n const start = wordIndex * 32;\n return data.subarray(start, start + 32);\n}\n\nfunction decodeStaticField(word: Uint8Array, kind: StaticFieldKind): Uint8Array | bigint | string | boolean {\n switch (kind) {\n case \"bytes32\":\n return word.slice();\n case \"uint64\": {\n let v = 0n;\n for (let i = 24; i < 32; i++) v = (v << 8n) | BigInt(word[i]);\n return v;\n }\n case \"address\": {\n const bytes = word.subarray(12, 32);\n return \"0x\" + Buffer_toHex(bytes);\n }\n case \"bool\":\n return word[31] !== 0;\n }\n}\n\nfunction Buffer_toHex(bytes: Uint8Array): string {\n let s = \"\";\n for (const b of bytes) s += b.toString(16).padStart(2, \"0\");\n return s;\n}\n\n/**\n * Decodes a tuple made of `staticKinds` (each one 32-byte word), followed by exactly one\n * trailing dynamic field of type `bytes` or `string`. `data` is the tuple's own encoding region\n * (offsets inside it are relative to its start), matching how `eth_abi.decode([_ATT], ...)` and\n * the nested `abi_decode(_DATA, data)` call are used in `anchor_check.py`.\n */\nexport function decodeTupleWithTrailingDynamic(\n data: Uint8Array,\n staticKinds: StaticFieldKind[],\n dynamicKind: \"bytes\" | \"string\",\n): { statics: Array<Uint8Array | bigint | string | boolean>; dynamic: Uint8Array | string } {\n const statics = staticKinds.map((kind, i) => decodeStaticField(readWord(data, i), kind));\n const offsetWord = readWord(data, staticKinds.length);\n let offset = 0n;\n for (const b of offsetWord) offset = (offset << 8n) | BigInt(b);\n const off = Number(offset);\n const lenWord = data.subarray(off, off + 32);\n let len = 0n;\n for (const b of lenWord) len = (len << 8n) | BigInt(b);\n const length = Number(len);\n const raw = data.subarray(off + 32, off + 32 + length);\n const dynamic = dynamicKind === \"string\" ? new TextDecoder().decode(raw) : raw.slice();\n return { statics, dynamic };\n}\n\n/**\n * Decodes the return value of a function whose Solidity signature returns a single dynamic\n * tuple (as `getAttestation(bytes32) returns (Attestation memory)` does): the outer word is an\n * offset to where the tuple's own head+tail encoding begins.\n */\nexport function decodeSingleDynamicTupleReturn(\n returnData: Uint8Array,\n staticKinds: StaticFieldKind[],\n dynamicKind: \"bytes\" | \"string\",\n) {\n const outerOffsetWord = readWord(returnData, 0);\n let outerOffset = 0n;\n for (const b of outerOffsetWord) outerOffset = (outerOffset << 8n) | BigInt(b);\n const tupleStart = Number(outerOffset);\n return decodeTupleWithTrailingDynamic(returnData.subarray(tupleStart), staticKinds, dynamicKind);\n}\n\nexport function bytesToHex0x(bytes: Uint8Array): string {\n return \"0x\" + Buffer_toHex(bytes);\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n const clean = hex.startsWith(\"0x\") ? hex.slice(2) : hex;\n const out = new Uint8Array(clean.length / 2);\n for (let i = 0; i < out.length; i++) out[i] = parseInt(clean.substr(i * 2, 2), 16);\n return out;\n}\n","/**\n * Reference checker for PoAW receipts (SPEC.md §10), ported from `oss/spec/tools/check.py` and\n * `oss/spec/tools/anchor_check.py`. Offline it checks steps 1-4. With `rpcUrl` it also checks the\n * anchor against the chain (§8.4). Any doubt gives a failing check, never a pass.\n */\nimport {\n b64uDecode,\n claimDigest,\n hasFloatValue,\n hasFloatText,\n keyId,\n leafHash,\n rootFromInclusion,\n verifySignature,\n b64u,\n} from \"./primitives.js\";\nimport { schemaValid } from \"./schema.js\";\nimport { checkAnchor, type Keyset, type Proof } from \"./anchor.js\";\n\nexport interface VerifyChecks {\n spec_version: boolean;\n schema: boolean;\n integers_only: boolean;\n key: boolean;\n signature: boolean;\n claim_digest: boolean;\n inclusion: boolean | \"absent\";\n anchor: boolean | \"absent\" | \"not_checked_offline\" | string;\n}\n\nexport interface VerifyReport {\n checks: VerifyChecks;\n valid: boolean;\n verdict: string | null;\n achieved_trust_level: number;\n proven_by?: number | null;\n}\n\nexport interface VerifyOptions {\n keys: Keyset;\n rpcUrl?: string;\n}\n\ninterface ReceiptLike {\n body?: Record<string, unknown>;\n signature?: { key_id?: string; value?: string };\n proof?: Proof;\n [key: string]: unknown;\n}\n\n/**\n * Verify a PoAW receipt. `receipt` may be a parsed object or the raw JSON text — passing the raw\n * text lets the integers-only check catch a float written as e.g. `1.0` (indistinguishable from\n * the integer `1` after `JSON.parse`), matching Python's `json.loads` int/float distinction\n * exactly; a non-integer value like `0.5` is caught either way.\n */\n/**\n * The JSON text each receipt object was parsed from, when the SDK fetched it (`QedProof.getReceipt`). JSON.parse turns\n * `1.0` into `1`, which would hide a float SPEC §3 forbids, so verification reads the original text when it has it.\n * That way a fetched receipt verifies exactly as it does in the Python SDK and the reference checker.\n */\nexport const RECEIPT_TEXT = new WeakMap<object, string>();\n\nexport async function verifyReceipt(receipt: unknown | string, options: VerifyOptions): Promise<VerifyReport> {\n const raw = typeof receipt === \"string\" ? receipt\n : receipt && typeof receipt === \"object\" ? RECEIPT_TEXT.get(receipt as object) : undefined;\n const parsed: ReceiptLike = typeof receipt === \"string\" ? JSON.parse(receipt) : ((receipt as ReceiptLike) ?? {});\n const keyset = options.keys ?? {};\n\n const checks = {} as VerifyChecks;\n\n const body = (parsed && typeof parsed === \"object\" ? parsed.body : undefined) ?? {};\n const version = String((body as Record<string, unknown>).spec_version ?? \"\");\n const parts = version.split(\"/\");\n checks.spec_version = parts[0] === \"poaw\" && (parts[parts.length - 1] ?? \"\").split(\".\")[0] === \"0\";\n\n checks.schema = schemaValid(parsed);\n\n const integerFail = raw !== undefined ? hasFloatText(raw) : hasFloatValue(parsed);\n checks.integers_only = !integerFail;\n\n const sig = (parsed && typeof parsed === \"object\" ? parsed.signature : undefined) ?? ({} as ReceiptLike[\"signature\"]);\n const keys = keyset.keys ?? [];\n const key = keys.find((k) => k.key_id === sig?.key_id);\n const issued = String((body as Record<string, unknown>).issued_at ?? \"\");\n const issuer = (body as Record<string, unknown>).issuer as { key_id?: string } | undefined;\n\n let keyOk = false;\n if (key && sig?.key_id === issuer?.key_id) {\n try {\n const computedKeyId = keyId(b64uDecode(key.public_key));\n keyOk =\n computedKeyId === key.key_id &&\n key.valid_from <= issued &&\n (key.revoked_at === null || key.revoked_at === undefined || issued < key.revoked_at);\n } catch {\n keyOk = false;\n }\n }\n checks.key = keyOk;\n\n let sigOk = false;\n if (keyOk && key) {\n try {\n sigOk = verifySignature(b64uDecode(key.public_key), body, sig?.value ?? \"\");\n } catch {\n sigOk = false;\n }\n }\n checks.signature = sigOk;\n\n const claim = (body as Record<string, unknown>).claim;\n checks.claim_digest =\n Boolean(claim) &&\n typeof claim === \"object\" &&\n (claim as Record<string, unknown>).claim_digest === claimDigest(claim as Record<string, unknown>);\n\n const proof = parsed && typeof parsed === \"object\" ? parsed.proof : undefined;\n let provenBy: number | null | undefined;\n if (!proof) {\n checks.inclusion = \"absent\";\n } else {\n const root = rootFromInclusion(\n proof.leaf_index,\n proof.tree_size,\n leafHash({ body: (parsed as ReceiptLike).body, signature: (parsed as ReceiptLike).signature }),\n proof.inclusion.map((h) => b64uDecode(h)),\n );\n checks.inclusion = root !== null && b64u(root) === proof.root_hash;\n }\n\n if (!(proof && proof.anchor)) {\n checks.anchor = \"absent\";\n } else if (!options.rpcUrl) {\n checks.anchor = \"not_checked_offline\";\n } else {\n const a = await checkAnchor(proof, keyset, options.rpcUrl);\n checks.anchor = a.ok ? true : a.reason;\n provenBy = a.proven_by;\n }\n\n const required: Array<keyof VerifyChecks> = [\n \"spec_version\",\n \"schema\",\n \"integers_only\",\n \"key\",\n \"signature\",\n \"claim_digest\",\n ];\n const valid = required.every((k) => checks[k] === true) && (checks.inclusion === true || checks.inclusion === \"absent\");\n\n const achievedTrustLevel = valid ? (checks.inclusion === true && checks.anchor === true ? 2 : 1) : 0;\n const verdictValue = (body as Record<string, unknown>).verdict as { value?: string } | undefined;\n const verdict = valid ? (verdictValue?.value ?? null) : null;\n\n const report: VerifyReport = {\n checks,\n valid,\n verdict: verdict ?? null,\n achieved_trust_level: achievedTrustLevel,\n };\n if (provenBy !== undefined) {\n report.proven_by = provenBy;\n }\n return report;\n}\n","/**\n * The HTTP client. Shapes follow `oss/node/src/poaw_node/app.py`, `models.py` (`ClaimIn`) and\n * `store.py` (`claim_status`). Uses only `fetch` — no Node built-ins — so it runs on Node, Deno\n * and in browsers.\n */\nimport type { ClaimAction } from \"./actions.js\";\nimport { QedProofError, RateLimitError } from \"./errors.js\";\nimport { RECEIPT_TEXT, verifyReceipt, type VerifyReport } from \"./verify.js\";\nimport type { Keyset } from \"./anchor.js\";\n\nexport interface QedProofOptions {\n apiKey?: string;\n baseUrl?: string;\n fetch?: typeof fetch;\n}\n\nexport interface SubmitClaimOptions {\n agentId: string;\n clientClaimId?: string;\n claimedAt?: string | Date;\n}\n\nexport interface ClaimStatus {\n claim_id: string;\n created?: boolean;\n state: \"queued\" | \"decided\";\n attempts: number;\n receipt_id: string | null;\n verdict: string | null;\n}\n\nexport interface WaitOptions {\n timeoutMs?: number;\n pollIntervalMs?: number;\n}\n\nexport interface Receipt {\n body: Record<string, unknown>;\n signature: Record<string, unknown>;\n proof?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\nexport interface ClaimSummary {\n claim_id: string;\n state: string;\n attempts: number;\n receipt_id: string | null;\n verdict: string | null;\n}\n\nexport interface ListClaimsOptions {\n limit?: number;\n cursor?: string;\n agentId?: string;\n action?: string;\n verdict?: string;\n state?: string;\n}\n\nexport interface ClaimPage {\n claims: ClaimSummary[];\n nextCursor: string | null;\n}\n\nconst LIST_CLAIMS_DEFAULT_LIMIT = 50;\nconst LIST_CLAIMS_MIN_LIMIT = 1;\nconst LIST_CLAIMS_MAX_LIMIT = 200;\n\nconst DEFAULT_BASE_URL = \"https://api.qedproof.site\";\n\nfunction isoNow(): string {\n return new Date().toISOString();\n}\n\nexport class QedProof {\n private readonly apiKey?: string;\n private readonly baseUrl: string;\n private readonly fetchImpl: typeof fetch;\n\n constructor(options: QedProofOptions = {}) {\n this.apiKey = options.apiKey;\n this.baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, \"\");\n const f = options.fetch ?? globalThis.fetch;\n if (!f) {\n throw new Error(\"QedProof: no fetch implementation available; pass { fetch } explicitly\");\n }\n // Call fetch as a plain function, never as a method of this client: browsers throw \"Illegal invocation\" when\n // fetch's `this` isn't the window (Node doesn't care, so 0.1.0-0.1.3 worked in Node and failed in every browser).\n this.fetchImpl = (input, init) => f(input, init);\n }\n\n private async request(\n method: string,\n path: string,\n { auth = true, body, text = false }: { auth?: boolean; body?: unknown; text?: boolean } = {},\n ): Promise<unknown> {\n const headers: Record<string, string> = { accept: \"application/json\" };\n if (body !== undefined) headers[\"content-type\"] = \"application/json\";\n if (auth) {\n if (!this.apiKey) {\n throw new QedProofError(401, \"no API key configured\");\n }\n headers[\"authorization\"] = `Bearer ${this.apiKey}`;\n }\n let res: Response;\n try {\n res = await this.fetchImpl(`${this.baseUrl}${path}`, {\n method,\n headers,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n });\n } catch (exc) {\n // Never let a network failure leak the key: the message here never includes `this.apiKey`.\n throw new QedProofError(0, `network error: ${exc instanceof Error ? exc.message : String(exc)}`);\n }\n\n if (res.status === 429) {\n const retryAfterHeader = res.headers.get(\"retry-after\");\n const retryAfter = retryAfterHeader ? Number(retryAfterHeader) : undefined;\n let detail = \"rate limit exceeded\";\n try {\n const parsed = (await res.json()) as { detail?: string };\n if (parsed?.detail) detail = parsed.detail;\n } catch {\n // ignore body parse failure, keep default detail\n }\n throw new RateLimitError(detail, Number.isFinite(retryAfter) ? retryAfter : undefined);\n }\n\n if (!res.ok) {\n let detail = res.statusText;\n try {\n const parsed = (await res.json()) as { detail?: string };\n if (parsed?.detail) detail = parsed.detail;\n } catch {\n // ignore body parse failure, keep statusText\n }\n throw new QedProofError(res.status, detail);\n }\n\n if (res.status === 204) return undefined;\n if (text) return res.text();\n return res.json();\n }\n\n async submitClaim(claim: ClaimAction, options: SubmitClaimOptions): Promise<ClaimStatus> {\n const claimedAt = options.claimedAt instanceof Date ? options.claimedAt.toISOString() : (options.claimedAt ?? isoNow());\n const body = {\n client_claim_id: options.clientClaimId ?? cryptoRandomId(),\n agent_id: options.agentId,\n action: claim.action,\n target: claim.target,\n params: claim.params,\n claimed_at: claimedAt,\n };\n return (await this.request(\"POST\", \"/v1/claims\", { body })) as ClaimStatus;\n }\n\n async getClaim(claimId: string): Promise<ClaimStatus> {\n return (await this.request(\"GET\", `/v1/claims/${encodeURIComponent(claimId)}`)) as ClaimStatus;\n }\n\n async waitForVerdict(claimId: string, options: WaitOptions = {}): Promise<ClaimStatus> {\n const timeoutMs = options.timeoutMs ?? 120_000;\n const pollIntervalMs = options.pollIntervalMs ?? 2_000;\n const deadline = Date.now() + timeoutMs;\n let interval = pollIntervalMs;\n for (;;) {\n let wait = interval;\n try {\n const status = await this.getClaim(claimId);\n if (status.state === \"decided\") return status;\n } catch (exc) {\n if (exc instanceof RateLimitError && exc.retryAfter !== undefined) {\n wait = Math.max(wait, exc.retryAfter * 1000);\n } else {\n throw exc;\n }\n }\n if (Date.now() >= deadline) {\n throw new QedProofError(408, `timed out after ${timeoutMs}ms waiting for claim ${claimId} to decide`);\n }\n await sleep(Math.min(wait, Math.max(0, deadline - Date.now())));\n interval = Math.min(interval * 2, 30_000);\n }\n }\n\n /**\n * `GET /v1/claims`, newest first. `options.limit` (1-200, default 50) is validated locally —\n * out of range throws a `RangeError` before any request is made.\n */\n async listClaims(options: ListClaimsOptions = {}): Promise<ClaimPage> {\n const limit = options.limit ?? LIST_CLAIMS_DEFAULT_LIMIT;\n if (limit < LIST_CLAIMS_MIN_LIMIT || limit > LIST_CLAIMS_MAX_LIMIT) {\n throw new RangeError(`limit must be between ${LIST_CLAIMS_MIN_LIMIT} and ${LIST_CLAIMS_MAX_LIMIT}, got ${limit}`);\n }\n const query: Record<string, string> = { limit: String(limit) };\n if (options.cursor !== undefined) query.cursor = options.cursor;\n if (options.agentId !== undefined) query.agent_id = options.agentId;\n if (options.action !== undefined) query.action = options.action;\n if (options.verdict !== undefined) query.verdict = options.verdict;\n if (options.state !== undefined) query.state = options.state;\n const qs = new URLSearchParams(query).toString();\n const data = (await this.request(\"GET\", `/v1/claims?${qs}`)) as { claims: ClaimSummary[]; next_cursor: string | null };\n return { claims: data.claims, nextCursor: data.next_cursor };\n }\n\n /** Yields every claim matching the filters, following `nextCursor` until exhausted. */\n async *iterClaims(options: Omit<ListClaimsOptions, \"cursor\" | \"limit\"> & { pageSize?: number } = {}): AsyncGenerator<ClaimSummary> {\n const { pageSize, ...filters } = options;\n let cursor: string | undefined;\n for (;;) {\n const page = await this.listClaims({ ...filters, limit: pageSize, cursor });\n yield* page.claims;\n if (page.nextCursor === null) return;\n cursor = page.nextCursor;\n }\n }\n\n /** Receipts are designed to be shared and checked by anyone (SPEC §1): no Authorization header. */\n async getReceipt(receiptId: string): Promise<Receipt> {\n const text = (await this.request(\"GET\", `/v1/receipts/${encodeURIComponent(receiptId)}`, { auth: false, text: true })) as string;\n const receipt = JSON.parse(text) as Receipt;\n RECEIPT_TEXT.set(receipt as object, text);\n return receipt;\n }\n\n /** Public by design: `/.well-known/poaw-keys.json` (SPEC §5.2, §8.4). */\n async getKeys(): Promise<Keyset> {\n return (await this.request(\"GET\", \"/.well-known/poaw-keys.json\", { auth: false })) as Keyset;\n }\n\n async verify(receipt: unknown | string, options: { keys?: Keyset; rpcUrl?: string } = {}): Promise<VerifyReport> {\n const keys = options.keys ?? (await this.getKeys());\n return verifyReceipt(receipt, { keys, rpcUrl: options.rpcUrl });\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction cryptoRandomId(): string {\n const g = globalThis as {\n crypto?: {\n randomUUID?: () => string;\n getRandomValues?: <T extends ArrayBufferView | null>(array: T) => T;\n };\n };\n if (g.crypto?.randomUUID) return g.crypto.randomUUID();\n if (g.crypto?.getRandomValues) {\n const bytes = new Uint8Array(16);\n g.crypto.getRandomValues(bytes);\n const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n return `claim-${Date.now()}-${hex}`;\n }\n return `claim-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n}\n","/**\n * Typed helpers for the five live actions plus `http.url.status`, matching the wire shape the\n * node's verifiers expect (`oss/spec/profiles/*.md`, `oss/node/src/poaw_node/verifiers/*.py`).\n * Validation here is cheap and local — it never calls the network — but it fails fast with a\n * clear message before the claim is submitted, since params are copied into public receipts.\n */\n\nexport interface ClaimAction {\n action: string;\n target: string;\n params: Record<string, unknown>;\n}\n\nconst REPO_RE = /^[A-Za-z0-9_.-]+\\/[A-Za-z0-9_.-]+$/;\nconst SHA_RE = /^[0-9a-f]{40}$/;\nconst HANDLE_RE = /^@[A-Za-z0-9_]{1,15}$/;\nconst POST_ID_RE = /^[0-9]{1,20}$/;\nconst HEX64_RE = /^[0-9a-f]{64}$/;\nconst SLACK_TARGET_RE = /^slack:\\/\\/(T[A-Z0-9]{2,20})\\/([CG][A-Z0-9]{2,20})$/;\nconst SLACK_TS_RE = /^[0-9]{10}\\.[0-9]{6}$/;\n\nfunction assert(condition: unknown, message: string): asserts condition {\n if (!condition) throw new TypeError(message);\n}\n\nexport function githubCommitPush(input: { target: string; sha: string; branch: string }): ClaimAction {\n assert(REPO_RE.test(input.target), \"githubCommitPush: target must be 'owner/repo'\");\n assert(SHA_RE.test(input.sha), \"githubCommitPush: sha must be 40 lowercase hex characters\");\n assert(input.branch && input.branch.length > 0, \"githubCommitPush: branch is required\");\n return { action: \"github.commit.push\", target: input.target, params: { sha: input.sha, branch: input.branch } };\n}\n\nexport function githubPrOpen(input: { target: string; number: number; base?: string; headSha?: string }): ClaimAction {\n assert(REPO_RE.test(input.target), \"githubPrOpen: target must be 'owner/repo'\");\n assert(Number.isInteger(input.number) && input.number >= 1, \"githubPrOpen: number must be a positive integer\");\n if (input.headSha !== undefined) {\n assert(SHA_RE.test(input.headSha), \"githubPrOpen: headSha must be 40 lowercase hex characters\");\n }\n const params: Record<string, unknown> = { number: input.number };\n if (input.base !== undefined) params.base = input.base;\n if (input.headSha !== undefined) params.head_sha = input.headSha;\n return { action: \"github.pr.open\", target: input.target, params };\n}\n\nexport function githubChecksPass(input: { target: string; sha: string }): ClaimAction {\n assert(REPO_RE.test(input.target), \"githubChecksPass: target must be 'owner/repo'\");\n assert(SHA_RE.test(input.sha), \"githubChecksPass: sha must be 40 lowercase hex characters\");\n return { action: \"github.checks.pass\", target: input.target, params: { sha: input.sha } };\n}\n\nexport function xPostPublish(input: { target: string; postId: string; textSha256?: string }): ClaimAction {\n assert(HANDLE_RE.test(input.target), \"xPostPublish: target must be an @handle\");\n assert(POST_ID_RE.test(input.postId), \"xPostPublish: postId must be digits\");\n if (input.textSha256 !== undefined) {\n assert(HEX64_RE.test(input.textSha256), \"xPostPublish: textSha256 must be 64 lowercase hex characters\");\n }\n const params: Record<string, unknown> = { post_id: input.postId };\n if (input.textSha256 !== undefined) params.text_sha256 = input.textSha256;\n return { action: \"x.post.publish\", target: input.target, params };\n}\n\nexport function slackMessagePost(input: { target: string; ts: string; textSha256?: string }): ClaimAction {\n assert(SLACK_TARGET_RE.test(input.target), \"slackMessagePost: target must be slack://<team_id>/<channel_id>\");\n assert(SLACK_TS_RE.test(input.ts), \"slackMessagePost: ts must match ^[0-9]{10}\\\\.[0-9]{6}$\");\n if (input.textSha256 !== undefined) {\n assert(HEX64_RE.test(input.textSha256), \"slackMessagePost: textSha256 must be 64 lowercase hex characters\");\n }\n const params: Record<string, unknown> = { ts: input.ts };\n if (input.textSha256 !== undefined) params.text_sha256 = input.textSha256;\n return { action: \"slack.message.post\", target: input.target, params };\n}\n\nexport function httpUrlStatus(input: { target: string; status?: number; contentFingerprint?: string }): ClaimAction {\n let url: URL;\n try {\n url = new URL(input.target);\n } catch {\n throw new TypeError(\"httpUrlStatus: target must be a valid URL\");\n }\n assert(url.protocol === \"https:\", \"httpUrlStatus: target must be an https:// URL\");\n const params: Record<string, unknown> = {};\n if (input.status !== undefined) {\n assert(Number.isInteger(input.status), \"httpUrlStatus: status must be an integer\");\n params.status = input.status;\n }\n if (input.contentFingerprint !== undefined) params.content_fingerprint = input.contentFingerprint;\n return { action: \"http.url.status\", target: input.target, params };\n}\n"],"mappings":"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","names":["canonicalizeJcs","nobleSha256"]}
|