@cardanowall/poe-standard 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +213 -0
- package/dist/encoder.cjs +1693 -0
- package/dist/encoder.cjs.map +1 -0
- package/dist/encoder.d.cts +7 -0
- package/dist/encoder.d.ts +7 -0
- package/dist/encoder.js +1690 -0
- package/dist/encoder.js.map +1 -0
- package/dist/error-codes.cjs +175 -0
- package/dist/error-codes.cjs.map +1 -0
- package/dist/error-codes.d.cts +11 -0
- package/dist/error-codes.d.ts +11 -0
- package/dist/error-codes.js +169 -0
- package/dist/error-codes.js.map +1 -0
- package/dist/index.cjs +3530 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +60 -0
- package/dist/index.d.ts +60 -0
- package/dist/index.js +3498 -0
- package/dist/index.js.map +1 -0
- package/dist/schema.cjs +128 -0
- package/dist/schema.cjs.map +1 -0
- package/dist/schema.d.cts +93 -0
- package/dist/schema.d.ts +93 -0
- package/dist/schema.js +109 -0
- package/dist/schema.js.map +1 -0
- package/dist/validator.cjs +3283 -0
- package/dist/validator.cjs.map +1 -0
- package/dist/validator.d.cts +23 -0
- package/dist/validator.d.ts +23 -0
- package/dist/validator.js +3280 -0
- package/dist/validator.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const STRUCTURAL_ERROR_CODES: readonly ["MALFORMED_CBOR", "SCHEMA_TYPE_MISMATCH", "SCHEMA_MISSING_REQUIRED", "SCHEMA_UNKNOWN_FIELD", "SCHEMA_INVALID_LITERAL", "SCHEMA_EMPTY_RECORD", "HASH_DIGEST_LENGTH_MISMATCH", "UNSUPPORTED_HASH_ALG", "UNSUPPORTED_MERKLE_COMMIT_ALG", "INVALID_URI", "CHUNK_TOO_LARGE", "UNAUTHENTICATED_CIPHER_FORBIDDEN", "UNSUPPORTED_AEAD_ALG", "NONCE_LENGTH_MISMATCH", "UNSUPPORTED_ENVELOPE_SCHEME", "ENC_SLOTS_EMPTY", "ENC_SLOT_INVALID_SHAPE", "UNSUPPORTED_KEM_ALG", "ENC_KEM_REQUIRED", "KEM_EPK_LENGTH_MISMATCH", "KEM_CT_LENGTH_MISMATCH", "WRAP_LENGTH_MISMATCH", "ENC_SLOTS_MAC_INVALID_LENGTH", "ENC_SLOTS_MAC_REQUIRED", "ENC_SLOTS_REQUIRED", "ENC_EXCLUSIVITY_VIOLATION", "ENC_NO_KEY_PATH", "ENC_REQUIRES_CONTENT_HASH", "ENC_PASSPHRASE_ALG_UNSUPPORTED", "ENC_PASSPHRASE_SALT_TOO_SHORT", "ENC_PASSPHRASE_SALT_TOO_LONG", "ENC_PASSPHRASE_ARGON2_PARAMS_TOO_LOW", "ENC_PASSPHRASE_PARAMS_EXCEED_POLICY", "MALFORMED_SIG_COSE_SIGN1", "SIGNATURE_UNSUPPORTED", "SIG_ENTRY_INVALID_SHAPE", "SIG_ENTRY_KID_COSE_KEY_CONFLICT", "SIG_PRIVATE_KEY_LEAKED", "SUPERSEDES_TX_INVALID_LENGTH", "EXTENSION_UNSUPPORTED_CRITICAL", "CRIT_SHAPE_INVALID"];
|
|
2
|
+
declare const VERIFIER_ERROR_CODES: readonly ["METADATA_NOT_FOUND", "INSUFFICIENT_CONFIRMATIONS", "SIGNATURE_INVALID", "SIGNER_KEY_UNRESOLVED", "WALLET_ADDRESS_MISMATCH", "URI_TARGET_FORBIDDEN", "URI_INTEGRITY_MISMATCH", "URI_FETCH_FAILED", "CONTENT_UNAVAILABLE", "CIPHERTEXT_UNAVAILABLE", "PROVIDER_UNAVAILABLE", "SERVICE_INDEPENDENCE_VIOLATION", "WRONG_DECRYPTION_INPUT_SHAPE", "WRONG_RECIPIENT_KEY", "TAMPERED_HEADER", "TAMPERED_CIPHERTEXT", "KDF_DERIVATION_FAILED", "SCHEMA_MERKLE_LEAF_COUNT_MISMATCH", "SCHEMA_MERKLE_LEAVES_FORMAT_UNSUPPORTED", "SCHEMA_MERKLE_LEAVES_MALFORMED", "MERKLE_ROOT_MISMATCH", "MERKLE_LEAVES_UNAVAILABLE", "MERKLE_LEAVES_INFORMATIVE_FORM", "MERKLE_UNSUPPORTED", "OUT_OF_PROFILE_SKIPPED"];
|
|
3
|
+
declare const ERROR_CODES: readonly ["MALFORMED_CBOR", "SCHEMA_TYPE_MISMATCH", "SCHEMA_MISSING_REQUIRED", "SCHEMA_UNKNOWN_FIELD", "SCHEMA_INVALID_LITERAL", "SCHEMA_EMPTY_RECORD", "HASH_DIGEST_LENGTH_MISMATCH", "UNSUPPORTED_HASH_ALG", "UNSUPPORTED_MERKLE_COMMIT_ALG", "INVALID_URI", "CHUNK_TOO_LARGE", "UNAUTHENTICATED_CIPHER_FORBIDDEN", "UNSUPPORTED_AEAD_ALG", "NONCE_LENGTH_MISMATCH", "UNSUPPORTED_ENVELOPE_SCHEME", "ENC_SLOTS_EMPTY", "ENC_SLOT_INVALID_SHAPE", "UNSUPPORTED_KEM_ALG", "ENC_KEM_REQUIRED", "KEM_EPK_LENGTH_MISMATCH", "KEM_CT_LENGTH_MISMATCH", "WRAP_LENGTH_MISMATCH", "ENC_SLOTS_MAC_INVALID_LENGTH", "ENC_SLOTS_MAC_REQUIRED", "ENC_SLOTS_REQUIRED", "ENC_EXCLUSIVITY_VIOLATION", "ENC_NO_KEY_PATH", "ENC_REQUIRES_CONTENT_HASH", "ENC_PASSPHRASE_ALG_UNSUPPORTED", "ENC_PASSPHRASE_SALT_TOO_SHORT", "ENC_PASSPHRASE_SALT_TOO_LONG", "ENC_PASSPHRASE_ARGON2_PARAMS_TOO_LOW", "ENC_PASSPHRASE_PARAMS_EXCEED_POLICY", "MALFORMED_SIG_COSE_SIGN1", "SIGNATURE_UNSUPPORTED", "SIG_ENTRY_INVALID_SHAPE", "SIG_ENTRY_KID_COSE_KEY_CONFLICT", "SIG_PRIVATE_KEY_LEAKED", "SUPERSEDES_TX_INVALID_LENGTH", "EXTENSION_UNSUPPORTED_CRITICAL", "CRIT_SHAPE_INVALID", "METADATA_NOT_FOUND", "INSUFFICIENT_CONFIRMATIONS", "SIGNATURE_INVALID", "SIGNER_KEY_UNRESOLVED", "WALLET_ADDRESS_MISMATCH", "URI_TARGET_FORBIDDEN", "URI_INTEGRITY_MISMATCH", "URI_FETCH_FAILED", "CONTENT_UNAVAILABLE", "CIPHERTEXT_UNAVAILABLE", "PROVIDER_UNAVAILABLE", "SERVICE_INDEPENDENCE_VIOLATION", "WRONG_DECRYPTION_INPUT_SHAPE", "WRONG_RECIPIENT_KEY", "TAMPERED_HEADER", "TAMPERED_CIPHERTEXT", "KDF_DERIVATION_FAILED", "SCHEMA_MERKLE_LEAF_COUNT_MISMATCH", "SCHEMA_MERKLE_LEAVES_FORMAT_UNSUPPORTED", "SCHEMA_MERKLE_LEAVES_MALFORMED", "MERKLE_ROOT_MISMATCH", "MERKLE_LEAVES_UNAVAILABLE", "MERKLE_LEAVES_INFORMATIVE_FORM", "MERKLE_UNSUPPORTED", "OUT_OF_PROFILE_SKIPPED"];
|
|
4
|
+
type StructuralErrorCode = (typeof STRUCTURAL_ERROR_CODES)[number];
|
|
5
|
+
type VerifierErrorCode = (typeof VERIFIER_ERROR_CODES)[number];
|
|
6
|
+
type ErrorCode = (typeof ERROR_CODES)[number];
|
|
7
|
+
type Severity = 'error' | 'warning' | 'info';
|
|
8
|
+
declare const SEVERITY: Readonly<Record<ErrorCode, Severity>>;
|
|
9
|
+
declare function severityOf(code: ErrorCode): Severity;
|
|
10
|
+
|
|
11
|
+
export { ERROR_CODES, type ErrorCode, SEVERITY, STRUCTURAL_ERROR_CODES, type Severity, type StructuralErrorCode, VERIFIER_ERROR_CODES, type VerifierErrorCode, severityOf };
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// src/error-codes.ts
|
|
2
|
+
var STRUCTURAL_ERROR_CODES = [
|
|
3
|
+
// CBOR decode layer. A single code covers every canonical-decode failure —
|
|
4
|
+
// malformed/truncated bytes, indefinite-length encodings, non-canonical
|
|
5
|
+
// (unsorted) map-key ordering, duplicate map keys, non-minimal integers, and
|
|
6
|
+
// invalid UTF-8 — by design (no separate duplicate-key code).
|
|
7
|
+
"MALFORMED_CBOR",
|
|
8
|
+
// Generic schema-layer
|
|
9
|
+
"SCHEMA_TYPE_MISMATCH",
|
|
10
|
+
"SCHEMA_MISSING_REQUIRED",
|
|
11
|
+
"SCHEMA_UNKNOWN_FIELD",
|
|
12
|
+
"SCHEMA_INVALID_LITERAL",
|
|
13
|
+
"SCHEMA_EMPTY_RECORD",
|
|
14
|
+
// Hash-map
|
|
15
|
+
"HASH_DIGEST_LENGTH_MISMATCH",
|
|
16
|
+
"UNSUPPORTED_HASH_ALG",
|
|
17
|
+
// Top-level `merkle[]`
|
|
18
|
+
"UNSUPPORTED_MERKLE_COMMIT_ALG",
|
|
19
|
+
// URI / chunking. A chunk whose bytes do not reconstruct to valid UTF-8
|
|
20
|
+
// surfaces as MALFORMED_CBOR at decode (cbor2 rejects invalid-UTF-8 tstr)
|
|
21
|
+
// or, in the residual reconstruct guard, as INVALID_URI — there is no
|
|
22
|
+
// separate codepoint-split code.
|
|
23
|
+
"INVALID_URI",
|
|
24
|
+
"CHUNK_TOO_LARGE",
|
|
25
|
+
// Encryption envelope
|
|
26
|
+
"UNAUTHENTICATED_CIPHER_FORBIDDEN",
|
|
27
|
+
"UNSUPPORTED_AEAD_ALG",
|
|
28
|
+
"NONCE_LENGTH_MISMATCH",
|
|
29
|
+
"UNSUPPORTED_ENVELOPE_SCHEME",
|
|
30
|
+
"ENC_SLOTS_EMPTY",
|
|
31
|
+
"ENC_SLOT_INVALID_SHAPE",
|
|
32
|
+
"UNSUPPORTED_KEM_ALG",
|
|
33
|
+
"ENC_KEM_REQUIRED",
|
|
34
|
+
"KEM_EPK_LENGTH_MISMATCH",
|
|
35
|
+
"KEM_CT_LENGTH_MISMATCH",
|
|
36
|
+
"WRAP_LENGTH_MISMATCH",
|
|
37
|
+
"ENC_SLOTS_MAC_INVALID_LENGTH",
|
|
38
|
+
"ENC_SLOTS_MAC_REQUIRED",
|
|
39
|
+
"ENC_SLOTS_REQUIRED",
|
|
40
|
+
"ENC_EXCLUSIVITY_VIOLATION",
|
|
41
|
+
"ENC_NO_KEY_PATH",
|
|
42
|
+
"ENC_REQUIRES_CONTENT_HASH",
|
|
43
|
+
"ENC_PASSPHRASE_ALG_UNSUPPORTED",
|
|
44
|
+
"ENC_PASSPHRASE_SALT_TOO_SHORT",
|
|
45
|
+
"ENC_PASSPHRASE_SALT_TOO_LONG",
|
|
46
|
+
"ENC_PASSPHRASE_ARGON2_PARAMS_TOO_LOW",
|
|
47
|
+
"ENC_PASSPHRASE_PARAMS_EXCEED_POLICY",
|
|
48
|
+
// Signatures
|
|
49
|
+
"MALFORMED_SIG_COSE_SIGN1",
|
|
50
|
+
"SIGNATURE_UNSUPPORTED",
|
|
51
|
+
"SIG_ENTRY_INVALID_SHAPE",
|
|
52
|
+
"SIG_ENTRY_KID_COSE_KEY_CONFLICT",
|
|
53
|
+
"SIG_PRIVATE_KEY_LEAKED",
|
|
54
|
+
// Supersedence
|
|
55
|
+
"SUPERSEDES_TX_INVALID_LENGTH",
|
|
56
|
+
// Forward-compat critical extensions
|
|
57
|
+
"EXTENSION_UNSUPPORTED_CRITICAL",
|
|
58
|
+
"CRIT_SHAPE_INVALID"
|
|
59
|
+
];
|
|
60
|
+
var VERIFIER_ERROR_CODES = [
|
|
61
|
+
"METADATA_NOT_FOUND",
|
|
62
|
+
"INSUFFICIENT_CONFIRMATIONS",
|
|
63
|
+
"SIGNATURE_INVALID",
|
|
64
|
+
"SIGNER_KEY_UNRESOLVED",
|
|
65
|
+
"WALLET_ADDRESS_MISMATCH",
|
|
66
|
+
"URI_TARGET_FORBIDDEN",
|
|
67
|
+
"URI_INTEGRITY_MISMATCH",
|
|
68
|
+
"URI_FETCH_FAILED",
|
|
69
|
+
"CONTENT_UNAVAILABLE",
|
|
70
|
+
"CIPHERTEXT_UNAVAILABLE",
|
|
71
|
+
"PROVIDER_UNAVAILABLE",
|
|
72
|
+
"SERVICE_INDEPENDENCE_VIOLATION",
|
|
73
|
+
"WRONG_DECRYPTION_INPUT_SHAPE",
|
|
74
|
+
"WRONG_RECIPIENT_KEY",
|
|
75
|
+
"TAMPERED_HEADER",
|
|
76
|
+
"TAMPERED_CIPHERTEXT",
|
|
77
|
+
"KDF_DERIVATION_FAILED",
|
|
78
|
+
"SCHEMA_MERKLE_LEAF_COUNT_MISMATCH",
|
|
79
|
+
"SCHEMA_MERKLE_LEAVES_FORMAT_UNSUPPORTED",
|
|
80
|
+
"SCHEMA_MERKLE_LEAVES_MALFORMED",
|
|
81
|
+
"MERKLE_ROOT_MISMATCH",
|
|
82
|
+
"MERKLE_LEAVES_UNAVAILABLE",
|
|
83
|
+
"MERKLE_LEAVES_INFORMATIVE_FORM",
|
|
84
|
+
"MERKLE_UNSUPPORTED",
|
|
85
|
+
"OUT_OF_PROFILE_SKIPPED"
|
|
86
|
+
];
|
|
87
|
+
var ERROR_CODES = [...STRUCTURAL_ERROR_CODES, ...VERIFIER_ERROR_CODES];
|
|
88
|
+
var SEVERITY = Object.freeze({
|
|
89
|
+
// --- Part A ---
|
|
90
|
+
MALFORMED_CBOR: "error",
|
|
91
|
+
SCHEMA_TYPE_MISMATCH: "error",
|
|
92
|
+
SCHEMA_MISSING_REQUIRED: "error",
|
|
93
|
+
SCHEMA_UNKNOWN_FIELD: "error",
|
|
94
|
+
SCHEMA_INVALID_LITERAL: "error",
|
|
95
|
+
SCHEMA_EMPTY_RECORD: "error",
|
|
96
|
+
HASH_DIGEST_LENGTH_MISMATCH: "error",
|
|
97
|
+
UNSUPPORTED_HASH_ALG: "error",
|
|
98
|
+
UNSUPPORTED_MERKLE_COMMIT_ALG: "error",
|
|
99
|
+
INVALID_URI: "error",
|
|
100
|
+
CHUNK_TOO_LARGE: "error",
|
|
101
|
+
UNAUTHENTICATED_CIPHER_FORBIDDEN: "error",
|
|
102
|
+
UNSUPPORTED_AEAD_ALG: "error",
|
|
103
|
+
NONCE_LENGTH_MISMATCH: "error",
|
|
104
|
+
UNSUPPORTED_ENVELOPE_SCHEME: "error",
|
|
105
|
+
ENC_SLOTS_EMPTY: "error",
|
|
106
|
+
ENC_SLOT_INVALID_SHAPE: "error",
|
|
107
|
+
UNSUPPORTED_KEM_ALG: "error",
|
|
108
|
+
ENC_KEM_REQUIRED: "error",
|
|
109
|
+
KEM_EPK_LENGTH_MISMATCH: "error",
|
|
110
|
+
KEM_CT_LENGTH_MISMATCH: "error",
|
|
111
|
+
WRAP_LENGTH_MISMATCH: "error",
|
|
112
|
+
ENC_SLOTS_MAC_INVALID_LENGTH: "error",
|
|
113
|
+
ENC_SLOTS_MAC_REQUIRED: "error",
|
|
114
|
+
ENC_SLOTS_REQUIRED: "error",
|
|
115
|
+
ENC_EXCLUSIVITY_VIOLATION: "error",
|
|
116
|
+
ENC_NO_KEY_PATH: "error",
|
|
117
|
+
ENC_REQUIRES_CONTENT_HASH: "error",
|
|
118
|
+
ENC_PASSPHRASE_ALG_UNSUPPORTED: "error",
|
|
119
|
+
ENC_PASSPHRASE_SALT_TOO_SHORT: "error",
|
|
120
|
+
ENC_PASSPHRASE_SALT_TOO_LONG: "error",
|
|
121
|
+
ENC_PASSPHRASE_ARGON2_PARAMS_TOO_LOW: "error",
|
|
122
|
+
ENC_PASSPHRASE_PARAMS_EXCEED_POLICY: "error",
|
|
123
|
+
MALFORMED_SIG_COSE_SIGN1: "error",
|
|
124
|
+
SIGNATURE_UNSUPPORTED: "info",
|
|
125
|
+
SIG_ENTRY_INVALID_SHAPE: "error",
|
|
126
|
+
SIG_ENTRY_KID_COSE_KEY_CONFLICT: "error",
|
|
127
|
+
SIG_PRIVATE_KEY_LEAKED: "error",
|
|
128
|
+
SUPERSEDES_TX_INVALID_LENGTH: "error",
|
|
129
|
+
EXTENSION_UNSUPPORTED_CRITICAL: "error",
|
|
130
|
+
CRIT_SHAPE_INVALID: "error",
|
|
131
|
+
// --- Part B ---
|
|
132
|
+
METADATA_NOT_FOUND: "error",
|
|
133
|
+
INSUFFICIENT_CONFIRMATIONS: "info",
|
|
134
|
+
SIGNATURE_INVALID: "error",
|
|
135
|
+
SIGNER_KEY_UNRESOLVED: "error",
|
|
136
|
+
WALLET_ADDRESS_MISMATCH: "error",
|
|
137
|
+
URI_TARGET_FORBIDDEN: "error",
|
|
138
|
+
URI_INTEGRITY_MISMATCH: "error",
|
|
139
|
+
URI_FETCH_FAILED: "warning",
|
|
140
|
+
CONTENT_UNAVAILABLE: "error",
|
|
141
|
+
CIPHERTEXT_UNAVAILABLE: "error",
|
|
142
|
+
PROVIDER_UNAVAILABLE: "error",
|
|
143
|
+
SERVICE_INDEPENDENCE_VIOLATION: "error",
|
|
144
|
+
WRONG_DECRYPTION_INPUT_SHAPE: "error",
|
|
145
|
+
WRONG_RECIPIENT_KEY: "error",
|
|
146
|
+
TAMPERED_HEADER: "error",
|
|
147
|
+
TAMPERED_CIPHERTEXT: "error",
|
|
148
|
+
KDF_DERIVATION_FAILED: "error",
|
|
149
|
+
SCHEMA_MERKLE_LEAF_COUNT_MISMATCH: "error",
|
|
150
|
+
SCHEMA_MERKLE_LEAVES_FORMAT_UNSUPPORTED: "error",
|
|
151
|
+
SCHEMA_MERKLE_LEAVES_MALFORMED: "error",
|
|
152
|
+
MERKLE_ROOT_MISMATCH: "error",
|
|
153
|
+
MERKLE_LEAVES_UNAVAILABLE: "warning",
|
|
154
|
+
MERKLE_LEAVES_INFORMATIVE_FORM: "info",
|
|
155
|
+
// Dual-severity — default reading is `info`; the verifier promotes to
|
|
156
|
+
// `error` for merkle-only records (no `items[]` content claim was
|
|
157
|
+
// validated in the same record).
|
|
158
|
+
MERKLE_UNSUPPORTED: "info",
|
|
159
|
+
// Dual-severity — default reading is `info` (render mode); strict
|
|
160
|
+
// end-to-end verifiers promote to `error`.
|
|
161
|
+
OUT_OF_PROFILE_SKIPPED: "info"
|
|
162
|
+
});
|
|
163
|
+
function severityOf(code) {
|
|
164
|
+
return SEVERITY[code];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export { ERROR_CODES, SEVERITY, STRUCTURAL_ERROR_CODES, VERIFIER_ERROR_CODES, severityOf };
|
|
168
|
+
//# sourceMappingURL=error-codes.js.map
|
|
169
|
+
//# sourceMappingURL=error-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/error-codes.ts"],"names":[],"mappings":"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","file":"error-codes.js","sourcesContent":["// CIP-309 v1 error-code catalogue — single source of truth for the\n// structural-validator codes (Part A) and the verifier-layer codes (Part B)\n// that downstream verifiers re-export from this package.\n//\n// The structural validator emits ONLY Part A codes. Part B codes are\n// re-exported so consumers can `import { ErrorCode } from '@cardanowall/poe-standard'`\n// and dispatch on a single union type without round-tripping through the\n// verifier package.\n//\n// Codes are SCREAMING_SNAKE_CASE and MUST match the canonical taxonomy\n// byte-exact across the TS/PY/RS implementations — no lowercase synonyms,\n// no `schema_*`-prefixed parser-internal codes.\n\n// =============================================================================\n// Part A — structural validator codes\n// =============================================================================\nexport const STRUCTURAL_ERROR_CODES = [\n // CBOR decode layer. A single code covers every canonical-decode failure —\n // malformed/truncated bytes, indefinite-length encodings, non-canonical\n // (unsorted) map-key ordering, duplicate map keys, non-minimal integers, and\n // invalid UTF-8 — by design (no separate duplicate-key code).\n 'MALFORMED_CBOR',\n // Generic schema-layer\n 'SCHEMA_TYPE_MISMATCH',\n 'SCHEMA_MISSING_REQUIRED',\n 'SCHEMA_UNKNOWN_FIELD',\n 'SCHEMA_INVALID_LITERAL',\n 'SCHEMA_EMPTY_RECORD',\n // Hash-map\n 'HASH_DIGEST_LENGTH_MISMATCH',\n 'UNSUPPORTED_HASH_ALG',\n // Top-level `merkle[]`\n 'UNSUPPORTED_MERKLE_COMMIT_ALG',\n // URI / chunking. A chunk whose bytes do not reconstruct to valid UTF-8\n // surfaces as MALFORMED_CBOR at decode (cbor2 rejects invalid-UTF-8 tstr)\n // or, in the residual reconstruct guard, as INVALID_URI — there is no\n // separate codepoint-split code.\n 'INVALID_URI',\n 'CHUNK_TOO_LARGE',\n // Encryption envelope\n 'UNAUTHENTICATED_CIPHER_FORBIDDEN',\n 'UNSUPPORTED_AEAD_ALG',\n 'NONCE_LENGTH_MISMATCH',\n 'UNSUPPORTED_ENVELOPE_SCHEME',\n 'ENC_SLOTS_EMPTY',\n 'ENC_SLOT_INVALID_SHAPE',\n 'UNSUPPORTED_KEM_ALG',\n 'ENC_KEM_REQUIRED',\n 'KEM_EPK_LENGTH_MISMATCH',\n 'KEM_CT_LENGTH_MISMATCH',\n 'WRAP_LENGTH_MISMATCH',\n 'ENC_SLOTS_MAC_INVALID_LENGTH',\n 'ENC_SLOTS_MAC_REQUIRED',\n 'ENC_SLOTS_REQUIRED',\n 'ENC_EXCLUSIVITY_VIOLATION',\n 'ENC_NO_KEY_PATH',\n 'ENC_REQUIRES_CONTENT_HASH',\n 'ENC_PASSPHRASE_ALG_UNSUPPORTED',\n 'ENC_PASSPHRASE_SALT_TOO_SHORT',\n 'ENC_PASSPHRASE_SALT_TOO_LONG',\n 'ENC_PASSPHRASE_ARGON2_PARAMS_TOO_LOW',\n 'ENC_PASSPHRASE_PARAMS_EXCEED_POLICY',\n // Signatures\n 'MALFORMED_SIG_COSE_SIGN1',\n 'SIGNATURE_UNSUPPORTED',\n 'SIG_ENTRY_INVALID_SHAPE',\n 'SIG_ENTRY_KID_COSE_KEY_CONFLICT',\n 'SIG_PRIVATE_KEY_LEAKED',\n // Supersedence\n 'SUPERSEDES_TX_INVALID_LENGTH',\n // Forward-compat critical extensions\n 'EXTENSION_UNSUPPORTED_CRITICAL',\n 'CRIT_SHAPE_INVALID',\n] as const;\n\n// =============================================================================\n// Part B — verifier-layer codes\n// Re-exported so downstream verifiers can dispatch on a single union.\n// The structural validator NEVER emits these.\n// =============================================================================\nexport const VERIFIER_ERROR_CODES = [\n 'METADATA_NOT_FOUND',\n 'INSUFFICIENT_CONFIRMATIONS',\n 'SIGNATURE_INVALID',\n 'SIGNER_KEY_UNRESOLVED',\n 'WALLET_ADDRESS_MISMATCH',\n 'URI_TARGET_FORBIDDEN',\n 'URI_INTEGRITY_MISMATCH',\n 'URI_FETCH_FAILED',\n 'CONTENT_UNAVAILABLE',\n 'CIPHERTEXT_UNAVAILABLE',\n 'PROVIDER_UNAVAILABLE',\n 'SERVICE_INDEPENDENCE_VIOLATION',\n 'WRONG_DECRYPTION_INPUT_SHAPE',\n 'WRONG_RECIPIENT_KEY',\n 'TAMPERED_HEADER',\n 'TAMPERED_CIPHERTEXT',\n 'KDF_DERIVATION_FAILED',\n 'SCHEMA_MERKLE_LEAF_COUNT_MISMATCH',\n 'SCHEMA_MERKLE_LEAVES_FORMAT_UNSUPPORTED',\n 'SCHEMA_MERKLE_LEAVES_MALFORMED',\n 'MERKLE_ROOT_MISMATCH',\n 'MERKLE_LEAVES_UNAVAILABLE',\n 'MERKLE_LEAVES_INFORMATIVE_FORM',\n 'MERKLE_UNSUPPORTED',\n 'OUT_OF_PROFILE_SKIPPED',\n] as const;\n\nexport const ERROR_CODES = [...STRUCTURAL_ERROR_CODES, ...VERIFIER_ERROR_CODES] as const;\n\nexport type StructuralErrorCode = (typeof STRUCTURAL_ERROR_CODES)[number];\nexport type VerifierErrorCode = (typeof VERIFIER_ERROR_CODES)[number];\nexport type ErrorCode = (typeof ERROR_CODES)[number];\n\n// Severity classification. Codes not listed are `error` by default.\n//\n// `info` — a deliberate non-check (algorithm out of profile, unrecognised\n// signature algorithm at the opt-in informational tier).\n//\n// `warning` — a non-fatal anomaly that occurred at runtime but did not\n// invalidate the record (e.g. a transient gateway failure, partial leaves\n// availability).\n//\n// `MERKLE_UNSUPPORTED` / `OUT_OF_PROFILE_SKIPPED` carry dual severity\n// (`info` when another commitment was validated; `error` for the\n// merkle-only / strict-mode case). The verifier emits the resolved severity\n// per-issue; this map records the default `info` reading.\nexport type Severity = 'error' | 'warning' | 'info';\n\nexport const SEVERITY: Readonly<Record<ErrorCode, Severity>> = Object.freeze({\n // --- Part A ---\n MALFORMED_CBOR: 'error',\n SCHEMA_TYPE_MISMATCH: 'error',\n SCHEMA_MISSING_REQUIRED: 'error',\n SCHEMA_UNKNOWN_FIELD: 'error',\n SCHEMA_INVALID_LITERAL: 'error',\n SCHEMA_EMPTY_RECORD: 'error',\n HASH_DIGEST_LENGTH_MISMATCH: 'error',\n UNSUPPORTED_HASH_ALG: 'error',\n UNSUPPORTED_MERKLE_COMMIT_ALG: 'error',\n INVALID_URI: 'error',\n CHUNK_TOO_LARGE: 'error',\n UNAUTHENTICATED_CIPHER_FORBIDDEN: 'error',\n UNSUPPORTED_AEAD_ALG: 'error',\n NONCE_LENGTH_MISMATCH: 'error',\n UNSUPPORTED_ENVELOPE_SCHEME: 'error',\n ENC_SLOTS_EMPTY: 'error',\n ENC_SLOT_INVALID_SHAPE: 'error',\n UNSUPPORTED_KEM_ALG: 'error',\n ENC_KEM_REQUIRED: 'error',\n KEM_EPK_LENGTH_MISMATCH: 'error',\n KEM_CT_LENGTH_MISMATCH: 'error',\n WRAP_LENGTH_MISMATCH: 'error',\n ENC_SLOTS_MAC_INVALID_LENGTH: 'error',\n ENC_SLOTS_MAC_REQUIRED: 'error',\n ENC_SLOTS_REQUIRED: 'error',\n ENC_EXCLUSIVITY_VIOLATION: 'error',\n ENC_NO_KEY_PATH: 'error',\n ENC_REQUIRES_CONTENT_HASH: 'error',\n ENC_PASSPHRASE_ALG_UNSUPPORTED: 'error',\n ENC_PASSPHRASE_SALT_TOO_SHORT: 'error',\n ENC_PASSPHRASE_SALT_TOO_LONG: 'error',\n ENC_PASSPHRASE_ARGON2_PARAMS_TOO_LOW: 'error',\n ENC_PASSPHRASE_PARAMS_EXCEED_POLICY: 'error',\n MALFORMED_SIG_COSE_SIGN1: 'error',\n SIGNATURE_UNSUPPORTED: 'info',\n SIG_ENTRY_INVALID_SHAPE: 'error',\n SIG_ENTRY_KID_COSE_KEY_CONFLICT: 'error',\n SIG_PRIVATE_KEY_LEAKED: 'error',\n SUPERSEDES_TX_INVALID_LENGTH: 'error',\n EXTENSION_UNSUPPORTED_CRITICAL: 'error',\n CRIT_SHAPE_INVALID: 'error',\n // --- Part B ---\n METADATA_NOT_FOUND: 'error',\n INSUFFICIENT_CONFIRMATIONS: 'info',\n SIGNATURE_INVALID: 'error',\n SIGNER_KEY_UNRESOLVED: 'error',\n WALLET_ADDRESS_MISMATCH: 'error',\n URI_TARGET_FORBIDDEN: 'error',\n URI_INTEGRITY_MISMATCH: 'error',\n URI_FETCH_FAILED: 'warning',\n CONTENT_UNAVAILABLE: 'error',\n CIPHERTEXT_UNAVAILABLE: 'error',\n PROVIDER_UNAVAILABLE: 'error',\n SERVICE_INDEPENDENCE_VIOLATION: 'error',\n WRONG_DECRYPTION_INPUT_SHAPE: 'error',\n WRONG_RECIPIENT_KEY: 'error',\n TAMPERED_HEADER: 'error',\n TAMPERED_CIPHERTEXT: 'error',\n KDF_DERIVATION_FAILED: 'error',\n SCHEMA_MERKLE_LEAF_COUNT_MISMATCH: 'error',\n SCHEMA_MERKLE_LEAVES_FORMAT_UNSUPPORTED: 'error',\n SCHEMA_MERKLE_LEAVES_MALFORMED: 'error',\n MERKLE_ROOT_MISMATCH: 'error',\n MERKLE_LEAVES_UNAVAILABLE: 'warning',\n MERKLE_LEAVES_INFORMATIVE_FORM: 'info',\n // Dual-severity — default reading is `info`; the verifier promotes to\n // `error` for merkle-only records (no `items[]` content claim was\n // validated in the same record).\n MERKLE_UNSUPPORTED: 'info',\n // Dual-severity — default reading is `info` (render mode); strict\n // end-to-end verifiers promote to `error`.\n OUT_OF_PROFILE_SKIPPED: 'info',\n});\n\nexport function severityOf(code: ErrorCode): Severity {\n return SEVERITY[code];\n}\n"]}
|